loopforge 3.7.0 → 3.8.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.
Files changed (151) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +171 -157
  3. package/dist/audit.d.ts +53 -1
  4. package/dist/audit.d.ts.map +1 -1
  5. package/dist/audit.js +106 -22
  6. package/dist/audit.js.map +1 -1
  7. package/dist/canonical-state.d.ts +75 -69
  8. package/dist/canonical-state.d.ts.map +1 -1
  9. package/dist/canonical-state.js +276 -168
  10. package/dist/canonical-state.js.map +1 -1
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +111 -12
  13. package/dist/cli.js.map +1 -1
  14. package/dist/cognitive-facts.d.ts +13 -0
  15. package/dist/cognitive-facts.d.ts.map +1 -1
  16. package/dist/cognitive-facts.js +30 -16
  17. package/dist/cognitive-facts.js.map +1 -1
  18. package/dist/cognitive-governance.d.ts +30 -6
  19. package/dist/cognitive-governance.d.ts.map +1 -1
  20. package/dist/cognitive-governance.js +74 -18
  21. package/dist/cognitive-governance.js.map +1 -1
  22. package/dist/committed-round.d.ts +109 -24
  23. package/dist/committed-round.d.ts.map +1 -1
  24. package/dist/committed-round.js +235 -52
  25. package/dist/committed-round.js.map +1 -1
  26. package/dist/contract-items.d.ts +55 -0
  27. package/dist/contract-items.d.ts.map +1 -0
  28. package/dist/contract-items.js +180 -0
  29. package/dist/contract-items.js.map +1 -0
  30. package/dist/enforcement-gate.d.ts +43 -20
  31. package/dist/enforcement-gate.d.ts.map +1 -1
  32. package/dist/enforcement-gate.js +269 -378
  33. package/dist/enforcement-gate.js.map +1 -1
  34. package/dist/engine.d.ts +11 -6
  35. package/dist/engine.d.ts.map +1 -1
  36. package/dist/engine.js +102 -67
  37. package/dist/engine.js.map +1 -1
  38. package/dist/evidence-claims.d.ts +4 -4
  39. package/dist/evidence-claims.d.ts.map +1 -1
  40. package/dist/evidence-claims.js +16 -14
  41. package/dist/evidence-claims.js.map +1 -1
  42. package/dist/evidence-provider.d.ts +91 -90
  43. package/dist/evidence-provider.d.ts.map +1 -1
  44. package/dist/evidence-provider.js +349 -160
  45. package/dist/evidence-provider.js.map +1 -1
  46. package/dist/explain.d.ts +76 -0
  47. package/dist/explain.d.ts.map +1 -0
  48. package/dist/explain.js +127 -0
  49. package/dist/explain.js.map +1 -0
  50. package/dist/generate-schema.js +250 -53
  51. package/dist/generate-schema.js.map +1 -1
  52. package/dist/index.d.ts +8 -7
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +7 -6
  55. package/dist/index.js.map +1 -1
  56. package/dist/loop-compiler.d.ts +41 -40
  57. package/dist/loop-compiler.d.ts.map +1 -1
  58. package/dist/loop-compiler.js +275 -515
  59. package/dist/loop-compiler.js.map +1 -1
  60. package/dist/loop-extras-parser.d.ts +0 -1
  61. package/dist/loop-extras-parser.d.ts.map +1 -1
  62. package/dist/loop-extras-parser.js +0 -4
  63. package/dist/loop-extras-parser.js.map +1 -1
  64. package/dist/loop-projection.d.ts.map +1 -1
  65. package/dist/loop-projection.js +3 -1
  66. package/dist/loop-projection.js.map +1 -1
  67. package/dist/mcp/round-lifecycle.d.ts +40 -21
  68. package/dist/mcp/round-lifecycle.d.ts.map +1 -1
  69. package/dist/mcp/round-lifecycle.js +173 -120
  70. package/dist/mcp/round-lifecycle.js.map +1 -1
  71. package/dist/mcp/server.d.ts.map +1 -1
  72. package/dist/mcp/server.js +63 -10
  73. package/dist/mcp/server.js.map +1 -1
  74. package/dist/mcp/session.d.ts +53 -7
  75. package/dist/mcp/session.d.ts.map +1 -1
  76. package/dist/mcp/session.js +240 -139
  77. package/dist/mcp/session.js.map +1 -1
  78. package/dist/mcp/submission-boundary.d.ts +89 -0
  79. package/dist/mcp/submission-boundary.d.ts.map +1 -0
  80. package/dist/mcp/submission-boundary.js +203 -0
  81. package/dist/mcp/submission-boundary.js.map +1 -0
  82. package/dist/mcp/tools.d.ts.map +1 -1
  83. package/dist/mcp/tools.js +377 -125
  84. package/dist/mcp/tools.js.map +1 -1
  85. package/dist/policy-metrics.js +2 -2
  86. package/dist/policy-metrics.js.map +1 -1
  87. package/dist/policy.d.ts +65 -95
  88. package/dist/policy.d.ts.map +1 -1
  89. package/dist/policy.js +151 -39
  90. package/dist/policy.js.map +1 -1
  91. package/dist/prompt-assembler.d.ts +7 -33
  92. package/dist/prompt-assembler.d.ts.map +1 -1
  93. package/dist/prompt-assembler.js +313 -473
  94. package/dist/prompt-assembler.js.map +1 -1
  95. package/dist/prompt-policy.d.ts +1 -4
  96. package/dist/prompt-policy.d.ts.map +1 -1
  97. package/dist/prompt-policy.js +6 -7
  98. package/dist/prompt-policy.js.map +1 -1
  99. package/dist/protocol.d.ts +411 -168
  100. package/dist/protocol.d.ts.map +1 -1
  101. package/dist/protocol.js +23 -69
  102. package/dist/protocol.js.map +1 -1
  103. package/dist/replay.js +2 -2
  104. package/dist/replay.js.map +1 -1
  105. package/dist/round-contract.d.ts +69 -57
  106. package/dist/round-contract.d.ts.map +1 -1
  107. package/dist/round-contract.js +104 -64
  108. package/dist/round-contract.js.map +1 -1
  109. package/dist/round-coordinator.d.ts +55 -16
  110. package/dist/round-coordinator.d.ts.map +1 -1
  111. package/dist/round-coordinator.js +179 -57
  112. package/dist/round-coordinator.js.map +1 -1
  113. package/dist/round-driver.d.ts +7 -5
  114. package/dist/round-driver.d.ts.map +1 -1
  115. package/dist/round-driver.js +2 -1
  116. package/dist/round-driver.js.map +1 -1
  117. package/dist/round-facts.d.ts +96 -0
  118. package/dist/round-facts.d.ts.map +1 -0
  119. package/dist/round-facts.js +216 -0
  120. package/dist/round-facts.js.map +1 -0
  121. package/dist/round-transaction.d.ts +23 -9
  122. package/dist/round-transaction.d.ts.map +1 -1
  123. package/dist/round-transaction.js +99 -22
  124. package/dist/round-transaction.js.map +1 -1
  125. package/dist/self-eval.d.ts +127 -11
  126. package/dist/self-eval.d.ts.map +1 -1
  127. package/dist/self-eval.js +517 -36
  128. package/dist/self-eval.js.map +1 -1
  129. package/dist/subgoal-state.d.ts +77 -0
  130. package/dist/subgoal-state.d.ts.map +1 -0
  131. package/dist/subgoal-state.js +198 -0
  132. package/dist/subgoal-state.js.map +1 -0
  133. package/dist/token-utils.d.ts +52 -19
  134. package/dist/token-utils.d.ts.map +1 -1
  135. package/dist/token-utils.js +83 -72
  136. package/dist/token-utils.js.map +1 -1
  137. package/dist/verification-gate.d.ts +27 -46
  138. package/dist/verification-gate.d.ts.map +1 -1
  139. package/dist/verification-gate.js +308 -557
  140. package/dist/verification-gate.js.map +1 -1
  141. package/dist/version.d.ts +5 -0
  142. package/dist/version.d.ts.map +1 -0
  143. package/dist/version.js +5 -0
  144. package/dist/version.js.map +1 -0
  145. package/dist/workspace.d.ts +9 -0
  146. package/dist/workspace.d.ts.map +1 -1
  147. package/dist/workspace.js +17 -0
  148. package/dist/workspace.js.map +1 -1
  149. package/loop_policy.json +17 -25
  150. package/package.json +7 -7
  151. package/skills/perception/SKILL.md +266 -64
@@ -14,19 +14,18 @@
14
14
  */
15
15
  import { randomUUID } from "node:crypto";
16
16
  import { LoopForgeEngine } from "../engine.js";
17
- import { deriveGate } from "../cognitive-governance.js";
18
- import { makeGateDecision, Mode } from "../protocol.js";
17
+ import { canonicalizeGateAction, deriveGate, preflightStructuredGate, } from "../cognitive-governance.js";
18
+ import { makeGateDecision } from "../protocol.js";
19
19
  import { buildLoopProjection } from "../loop-projection.js";
20
20
  import { deriveCognitiveFacts } from "../cognitive-facts.js";
21
+ import { NO_IN_FLIGHT_ROUND, deriveRoundFacts } from "../round-facts.js";
21
22
  import { listVerifiedClaims } from "../evidence-claims.js";
22
23
  import { buildAudit } from "../audit.js";
23
- import { checkLoopHealth } from "../loop-compiler.js";
24
- import { committedRoundsFromEntries } from "../committed-round.js";
25
- import { contractRoundEvaluations, deriveActiveRoundContract, } from "../round-contract.js";
24
+ import { buildExplain } from "../explain.js";
25
+ import { CHECK_CONTRACT_ITEMS_UNVERIFIED } from "../verification-gate.js";
26
+ import { readOnlyRounds } from "../committed-round.js";
26
27
  import { getPolicy, validateLoopId } from "../policy.js";
27
28
  import { isRecord } from "../token-utils.js";
28
- import { buildSelfEvaluation, validateCoreSelfEvaluation, } from "../self-eval.js";
29
- import { makeLoopCompileRequest } from "../protocol.js";
30
29
  import { ReplayBackend } from "../replay.js";
31
30
  import { FileLoopStore, queryLoopEntries } from "../loop-store.js";
32
31
  import { makeRoundId, prepareRoundTransaction } from "../round-transaction.js";
@@ -36,6 +35,7 @@ import { policyMetrics, derivePolicyMetrics, mergePolicyMetrics, } from "../poli
36
35
  import { SessionLeaseConflictError, VaultSessionStateStore, } from "../storage.js";
37
36
  import { StorageCorruptionError } from "../loop-store.js";
38
37
  import { RoundLifecycle, buildLoopRequest } from "./round-lifecycle.js";
38
+ import { activeContractOf, compileSessionContext, validateSubmission, } from "./submission-boundary.js";
39
39
  // ── SessionManager ─────────────────────────────────────────────────────────
40
40
  export class SessionManager {
41
41
  sessions = new Map();
@@ -193,8 +193,8 @@ export class SessionManager {
193
193
  maxRounds, successTrajectory: [], status: "running", createdAt: Date.now(),
194
194
  consecutiveRejections: 0,
195
195
  lastRejectionCheck: "",
196
- driftClarificationStreak: 0,
197
196
  backtrackSkippedFiles: [],
197
+ backtrackSkippedFingerprints: {},
198
198
  evidenceBaseline: [],
199
199
  });
200
200
  request.domain = input.domain ?? "";
@@ -234,8 +234,8 @@ export class SessionManager {
234
234
  // v1.13: Enforcement gate state
235
235
  consecutiveRejections: 0,
236
236
  lastRejectionCheck: "",
237
- driftClarificationStreak: 0,
238
237
  backtrackSkippedFiles: [],
238
+ backtrackSkippedFingerprints: {},
239
239
  evidenceBaseline,
240
240
  roundSnapshot: prepared?.snapshot ?? prepareRoundTransaction(loopId, 1, evidenceBaseline),
241
241
  currentPrompt: initialPrompt,
@@ -476,22 +476,75 @@ export class SessionManager {
476
476
  return result;
477
477
  }
478
478
  // ── v2.12: User/Agent gates ────────────────────────────────────────────
479
- /** Classify a flat gate text. Read-only — no vault writes. */
480
- checkGate(gateText) {
481
- const { id, gate } = deriveGate(gateText);
479
+ /** Persist a gate_opened record for a structured preflight. Only
480
+ * user_required actions are recorded — agent_allowed needs no human
481
+ * authorization and opens no record. */
482
+ recordOpenedGate(loopId, round, verdict, canonicalAction) {
483
+ this.loopStore.appendEntry({
484
+ id: randomUUID(),
485
+ task_id: `loop:${loopId}:gate:${verdict.gateId}`,
486
+ task_type: "gate_opened",
487
+ loop_id: loopId,
488
+ timestamp: new Date().toISOString(),
489
+ gate_id: verdict.gateId,
490
+ gate_action: canonicalAction,
491
+ gate_kind: "user",
492
+ gate_structured: true,
493
+ loop_lineage: {
494
+ round,
495
+ gate_id: verdict.gateId,
496
+ action_hash: verdict.actionHash,
497
+ },
498
+ });
499
+ }
500
+ /** v3.7.1: structured gate preflight. The agent submits a
501
+ * GateActionDescriptor; the runtime classifies it (conservative:
502
+ * anything not provably safe is user_required with reason codes). A
503
+ * user_required verdict persists a gate_opened record bound to
504
+ * loop + round + actionHash; agent_allowed records nothing and returns
505
+ * the evidence suggestion instead. No action is executed and no round
506
+ * advances from this call. */
507
+ checkGate(sessionId, roundId, action) {
508
+ const session = this.sessions.get(sessionId);
509
+ if (!session) {
510
+ return {
511
+ error: "session_not_found",
512
+ errorMessage: `session not found: ${sessionId}`,
513
+ sessionId,
514
+ };
515
+ }
516
+ const expectedRoundId = session.roundSnapshot?.roundId
517
+ ?? makeRoundId(session.loopId, session.currentRound);
518
+ if (expectedRoundId !== roundId) {
519
+ return {
520
+ error: "round_id_mismatch",
521
+ errorMessage: "roundId does not match the current round — re-run loopforge_gate_check " +
522
+ "with the roundId from the latest response",
523
+ sessionId,
524
+ roundId,
525
+ };
526
+ }
527
+ const verdict = preflightStructuredGate(action);
528
+ if (verdict.kind === "user") {
529
+ this.recordOpenedGate(session.loopId, session.currentRound, verdict, canonicalizeGateAction(action));
530
+ }
482
531
  return {
483
- id,
484
- kind: gate.kind,
485
- ...(gate.kind === "user"
532
+ sessionId,
533
+ gateId: verdict.gateId,
534
+ risk: verdict.risk,
535
+ decision: verdict.decision,
536
+ reasonCodes: verdict.reasonCodes,
537
+ ...(verdict.kind === "user"
486
538
  ? {
487
- question: gate.question,
488
- blockedScope: gate.blockedScope,
489
- allowedWork: gate.allowedWork,
539
+ blockedScope: verdict.blockedScope,
540
+ allowedBeforeApproval: verdict.allowedBeforeApproval,
541
+ requiredEvidence: [],
542
+ approvalQuestion: verdict.approvalQuestion,
490
543
  }
491
544
  : {
492
- problem: gate.problem,
493
- requiredEvidence: gate.requiredEvidence,
494
- suggestedResolution: gate.suggestedResolution,
545
+ blockedScope: [],
546
+ allowedBeforeApproval: [],
547
+ requiredEvidence: verdict.requiredEvidence,
495
548
  }),
496
549
  };
497
550
  }
@@ -516,8 +569,13 @@ export class SessionManager {
516
569
  return lineage.session_id === sessionId;
517
570
  });
518
571
  loopId = persistedEntry?.loop_id;
519
- if (!loopId)
520
- return { error: `session not found: ${sessionId}` };
572
+ if (!loopId) {
573
+ return {
574
+ error: "session_not_found",
575
+ errorMessage: `session not found: ${sessionId}`,
576
+ sessionId,
577
+ };
578
+ }
521
579
  const claimed = this.claimSessionEntry(loopId);
522
580
  if (!claimed) {
523
581
  return { ...this.leaseConflictResult(loopId, persistedEntry) };
@@ -528,32 +586,83 @@ export class SessionManager {
528
586
  ? lineage.current_round
529
587
  : 0;
530
588
  }
531
- if (!loopId)
532
- return { error: `session not found: ${sessionId}` };
589
+ if (!loopId) {
590
+ return {
591
+ error: "session_not_found",
592
+ errorMessage: `session not found: ${sessionId}`,
593
+ sessionId,
594
+ };
595
+ }
533
596
  try {
534
597
  const prefix = `loop:${loopId}:gate:`;
535
598
  const opened = queryLoopEntries(this.loopStore, loopId, { prefix })
536
599
  .find((entry) => entry.task_type === "gate_opened" && entry.gate_id === gateId);
537
600
  if (!opened) {
538
- return { error: `no gate_opened record for gate ${gateId} — the gate may have expired or was never recorded` };
601
+ return {
602
+ error: "state_unavailable",
603
+ errorMessage: `no gate_opened record for gate ${gateId} — the gate may have ` +
604
+ "expired or was never recorded",
605
+ };
539
606
  }
540
607
  const actionText = typeof opened.gate_action === "string" ? opened.gate_action : "";
541
608
  const openedLineage = isRecord(opened.loop_lineage) ? opened.loop_lineage : {};
542
609
  const gateRound = typeof openedLineage.round === "number"
543
610
  ? openedLineage.round
544
611
  : currentRound;
545
- const { id, gate, actionHash } = deriveGate(actionText);
546
- if (id !== gateId) {
547
- return { error: "gateId does not match the recorded action — the action changed, old approvals expire" };
612
+ // v3.7.1: structured records re-derive their id through the structured
613
+ // classifier over the stored canonical action; flat records (blocked-
614
+ // round auto-records) keep the flat classifier. Either way the id
615
+ // embeds the action — a changed action no longer matches and the old
616
+ // approval expires.
617
+ let matchedId;
618
+ let userKind;
619
+ let userScope = [];
620
+ let actionHash = typeof openedLineage.action_hash === "string"
621
+ ? openedLineage.action_hash
622
+ : undefined;
623
+ if (opened.gate_structured === true) {
624
+ let descriptor;
625
+ try {
626
+ descriptor = JSON.parse(actionText);
627
+ }
628
+ catch {
629
+ return {
630
+ error: "state_unavailable",
631
+ errorMessage: `gate ${gateId} has a corrupted structured action — ` +
632
+ "re-run loopforge_gate_check",
633
+ };
634
+ }
635
+ const verdict = preflightStructuredGate(descriptor);
636
+ matchedId = verdict.gateId;
637
+ userKind = verdict.kind === "user";
638
+ userScope = verdict.blockedScope ?? [];
639
+ actionHash = actionHash ?? verdict.actionHash;
640
+ }
641
+ else {
642
+ const derived = deriveGate(actionText);
643
+ matchedId = derived.id;
644
+ userKind = derived.gate.kind === "user";
645
+ userScope = derived.gate.blockedScope ?? [];
548
646
  }
549
- if (gate.kind !== "user") {
550
- return { error: "agent gates are resolved by submitting the required evidence, not by user approval" };
647
+ if (matchedId !== gateId) {
648
+ return {
649
+ error: "invalid_argument",
650
+ errorMessage: "gateId does not match the recorded action — the action changed, " +
651
+ "old approvals expire",
652
+ };
653
+ }
654
+ if (!userKind) {
655
+ return {
656
+ error: "invalid_argument",
657
+ errorMessage: "agent gates are resolved by submitting the required evidence, " +
658
+ "not by user approval",
659
+ };
551
660
  }
552
661
  const decision = makeGateDecision({
553
662
  gateId,
554
663
  kind: "user",
555
664
  approved: approved === true,
556
- scope: gate.blockedScope ?? [],
665
+ scope: userScope,
557
666
  note: typeof note === "string" ? note : "",
558
667
  decidedAt: new Date().toISOString(),
559
668
  actionHash: actionHash ?? "",
@@ -583,6 +692,15 @@ export class SessionManager {
583
692
  }
584
693
  }
585
694
  // ── v2.12: Typed projection + audit ────────────────────────────────────
695
+ /** The compile context for this round.
696
+ *
697
+ * v3.8.1: delegates to the SHARED implementation in round-lifecycle.ts —
698
+ * the runtime's submission boundary reads the same context (the sub-goal
699
+ * reference space is exactly the compiled set the prompt carried), and two
700
+ * copies would let the projection and the boundary disagree about it. */
701
+ compileContext(session) {
702
+ return compileSessionContext(session);
703
+ }
586
704
  /** Typed cognitive state projection for an active session. Derived on
587
705
  * demand — zero persistence. Null when nothing meaningful exists yet. */
588
706
  getProjection(sessionId) {
@@ -594,47 +712,45 @@ export class SessionManager {
594
712
  ...queryLoopEntries(this.loopStore, session.loopId, { prefix }),
595
713
  ...queryLoopEntries(this.loopStore, session.loopId, { prefix, feedbackOnly: true }),
596
714
  ];
597
- let compileResponse = null;
598
- // v3.0.1: the round boundary already compiled this round — derive the
599
- // projection from that response instead of recompiling the whole vault.
600
- // The cache is invalidated by every compile path (it is rebuilt with the
601
- // new round's response); the artifact's deterministic roundId guards
602
- // against stale reuse.
603
- const cached = session.lastCompileResponse;
604
- const expectedRoundId = session.roundSnapshot?.roundId
605
- ?? makeRoundId(session.loopId, session.currentRound);
606
- if (cached?.prompt_artifact && cached.prompt_artifact.roundId === expectedRoundId) {
607
- compileResponse = cached;
608
- }
609
- else {
610
- try {
611
- const request = {
612
- task: session.task,
613
- mode: Mode.LOOP_COMPILE,
614
- feedback: null,
615
- skill_name: null,
616
- task_id: null,
617
- loop_id: session.loopId,
618
- round: session.currentRound,
619
- max_rounds: session.maxRounds,
620
- verification_flags: [],
621
- };
622
- const compiled = session.engine.invokeLoopCompile(request, undefined, { persistLineage: false });
623
- compileResponse = compiled.response ?? null;
624
- }
625
- catch {
626
- compileResponse = null; // projection degrades gracefully
627
- }
628
- }
715
+ const compileResponse = this.compileContext(session);
629
716
  const openGates = this.lifecycle.listOpenGateDescriptions(session.loopId);
717
+ // v3.8: the projection reads the WHOLE committed history. The old
718
+ // `beforeRound: session.currentRound` bound is only correct while the loop
719
+ // is running, where currentRound is always one past the last committed
720
+ // round; a stop / terminate / max_rounds leaves currentRound ON the round
721
+ // it just committed, so the bound silently dropped the loop's final round
722
+ // and the projection disagreed with audit and explain about it.
723
+ // v3.8.1: one window, one decode, one derivation. The contract facts come
724
+ // from the same `deriveRoundFacts` the compile path calls, so the prompt
725
+ // and the projection cannot tell different stories about what the machine
726
+ // verified.
727
+ const rounds = readOnlyRounds(entries);
630
728
  const projection = buildLoopProjection(deriveCognitiveFacts({
631
729
  compileResponse,
632
- rounds: committedRoundsFromEntries(entries, session.currentRound),
730
+ rounds,
731
+ facts: deriveRoundFacts({
732
+ rounds,
733
+ currentRound: (rounds[rounds.length - 1]?.round ?? 0) + 1,
734
+ inFlight: NO_IN_FLIGHT_ROUND,
735
+ subGoals: compileResponse?.sub_goals ?? [],
736
+ commands: getPolicy().evidence.commands ?? [],
737
+ }),
633
738
  verifiedClaims: listVerifiedClaims(entries, session.loopId),
634
739
  openGates,
635
740
  }));
636
741
  return projection ? { ...projection } : null;
637
742
  }
743
+ /** v3.8: Read-only per-round "why" view over committed facts. Never
744
+ * rebuilds history and never writes. */
745
+ getExplain(loopId, round) {
746
+ validateLoopId(loopId);
747
+ const prefix = `loop:${loopId}:`;
748
+ const entries = [
749
+ ...queryLoopEntries(this.loopStore, loopId, { prefix }),
750
+ ...queryLoopEntries(this.loopStore, loopId, { prefix, feedbackOnly: true }),
751
+ ];
752
+ return buildExplain(loopId, entries, round);
753
+ }
638
754
  /** Read-only end-of-loop audit (verification view). Never writes. */
639
755
  getAudit(loopId) {
640
756
  validateLoopId(loopId);
@@ -651,7 +767,7 @@ export class SessionManager {
651
767
  // Zero committed decisions → nothing to audit. Returning null lets the
652
768
  // tools layer report "no audit data" instead of the external auditor
653
769
  // solemnly passing a loop that never ran (or a mistyped loopId).
654
- const hasCommittedDecision = committedRoundsFromEntries(entries).length > 0;
770
+ const hasCommittedDecision = readOnlyRounds(entries).length > 0;
655
771
  if (!hasCommittedDecision)
656
772
  return null;
657
773
  const audit = buildAudit(loopId, entries, this.loopStore);
@@ -665,12 +781,8 @@ export class SessionManager {
665
781
  const session = this.sessions.get(sessionId);
666
782
  if (!session)
667
783
  return null;
668
- const prefix = `loop:${session.loopId}:`;
669
- const entries = [
670
- ...queryLoopEntries(this.loopStore, session.loopId, { prefix }),
671
- ...queryLoopEntries(this.loopStore, session.loopId, { prefix, feedbackOnly: true }),
672
- ];
673
- return deriveActiveRoundContract(contractRoundEvaluations(committedRoundsFromEntries(entries, session.currentRound)));
784
+ // One derivation, shared with the submission boundary.
785
+ return activeContractOf(this.loopStore, session);
674
786
  }
675
787
  /** v2.12: Policy metrics that survive restarts — vault-derived round
676
788
  * statistics (A4 port) folded with this process's live observations.
@@ -692,48 +804,35 @@ export class SessionManager {
692
804
  return live;
693
805
  return mergePolicyMetrics(derived, live);
694
806
  }
695
- /** Get loop health for a loop (in-memory or vault).
696
- * Computes goal alignment, constraint integrity, drift, strategy stability. */
807
+ /** Get machine facts about a loop (in-memory or vault).
808
+ *
809
+ * v3.8.1: this view used to report `goal_alignment`, `drift_detected`,
810
+ * `strategy_stability` and `task_continuity`. Every one was a
811
+ * text-similarity verdict rather than a fact, and two were degenerate in
812
+ * THIS method specifically: `task_continuity` was pinned to 1.0 because the
813
+ * request was built with `round: 1`, so `getPreviousRound(loopId, 0)`
814
+ * returned null and the code took its hardcoded `?? 1` branch; and
815
+ * `strategy_stability` was a literal `true`. What remains is counted
816
+ * directly from committed round flags. */
697
817
  getHealth(loopId) {
698
- // Find the task — check in-memory sessions first, then vault
699
- let task = "";
700
- let goalId = loopId;
701
- for (const s of this.sessions.values()) {
702
- if (s.loopId === loopId) {
703
- task = s.task;
704
- if (s.engine.state?.task_id) {
705
- goalId = s.engine.state.task_id;
706
- }
707
- break;
708
- }
709
- }
710
- // Fall back to vault for task
711
- if (!task) {
712
- const sessionEntry = this.findSessionEntry(loopId);
713
- if (sessionEntry) {
714
- task = sessionEntry.task ?? "";
715
- }
716
- }
717
- if (!task)
718
- return null;
719
- // Hydrate vault context
720
818
  const engine = new LoopForgeEngine(this.loopStore);
721
- const vaultContext = engine.hydrateLoopContext(loopId);
722
- // Build a minimal request for health check
723
- const request = makeLoopCompileRequest({
724
- task,
725
- loop_id: loopId,
726
- goal_id: goalId,
727
- round: 1, // round doesn't matter for health check
728
- });
729
- const health = checkLoopHealth(loopId, request, vaultContext);
819
+ const context = engine.hydrateLoopContext(loopId);
820
+ // No hydratable context at all → unknown loop. A started-but-uncommitted
821
+ // loop DOES have a context (the compile persists a lineage entry), so it
822
+ // still gets a view — with zeros — exactly as it did before.
823
+ if (!context)
824
+ return null;
825
+ const entries = Array.isArray(context.results) ? context.results : [];
826
+ const views = readOnlyRounds(entries);
827
+ const roundsWithUnverifiedItems = views.filter((view) => view.verificationFlags.some((flag) => flag.check === CHECK_CONTRACT_ITEMS_UNVERIFIED)).length;
730
828
  return {
731
829
  loopId,
732
- goal_alignment: health.goal_alignment,
733
- constraint_integrity: health.constraint_integrity,
734
- drift_detected: health.drift_detected,
735
- strategy_stability: health.strategy_stability,
736
- task_continuity: health.task_continuity,
830
+ committed_rounds: views.length,
831
+ rounds_with_unverified_items: roundsWithUnverifiedItems,
832
+ // The policy value the enforcement gate escalates on. The streak itself
833
+ // is derived in the gate — re-deriving it here would be a second
834
+ // implementation of the same rule, which is what this release removes.
835
+ unverified_streak_limit: getPolicy().engine.unverified_claim_streak_limit,
737
836
  policy_metrics: this.getPolicyMetrics(loopId),
738
837
  };
739
838
  }
@@ -745,34 +844,36 @@ export class SessionManager {
745
844
  * (from the last start/next/resume response). Anchors the submission so a
746
845
  * stale or duplicate submission is not processed against a later round.
747
846
  * Optional for library callers — when absent the anchor check is skipped. */
748
- async advance(sessionId, output, preExtractedEval, roundId) {
749
- const current = this.sessions.get(sessionId);
750
- if (current && (current.status === "running" || current.status === "stalled")) {
751
- const rawEvaluation = preExtractedEval;
752
- if (!isRecord(rawEvaluation)) {
753
- return {
754
- sessionId,
755
- round: current.currentRound,
756
- roundId: current.roundSnapshot?.roundId
757
- ?? makeRoundId(current.loopId, current.currentRound),
758
- prompt: null,
759
- stopReason: "evaluation_invalid",
760
- stopDetail: "A structured evaluation object is required. Resubmit the same roundId with success, output_summary, constraint_violations, and should_continue.",
761
- };
762
- }
763
- const validation = validateCoreSelfEvaluation(rawEvaluation);
764
- if (validation.missing.length > 0 || validation.invalid.length > 0) {
765
- return {
766
- sessionId,
767
- round: current.currentRound,
768
- roundId: current.roundSnapshot?.roundId
769
- ?? makeRoundId(current.loopId, current.currentRound),
770
- prompt: null,
771
- stopReason: "evaluation_invalid",
772
- stopDetail: "The structured evaluation has missing or invalid core fields. Correct it and resubmit the same roundId.",
773
- };
774
- }
775
- preExtractedEval = buildSelfEvaluation(rawEvaluation);
847
+ /** \`submission\` is the RAW evaluation payload, not a built one.
848
+ *
849
+ * v3.8.1: this method used to carry a partial copy of the submission
850
+ * boundary (an object check plus core-field validation) while the MCP tool
851
+ * handler carried the rest — one rule, three copies, across two layers.
852
+ * The boundary now lives entirely in the runtime
853
+ * (`RoundLifecycle.submissionBoundary`), so every caller — this manager, a
854
+ * library user, a future CLI command — gets the same strictness. */
855
+ /** \`submission\` is the RAW evaluation payload, not a built one.
856
+ *
857
+ * v3.8.1: this method used to carry a partial copy of the submission
858
+ * boundary (an object check plus core-field validation) while the MCP tool
859
+ * handler carried the rest — one rule, three copies, across two layers.
860
+ * The whole boundary now runs HERE, before the queue and before the lease
861
+ * heartbeat, so every caller of the public API gets it and a rejected
862
+ * payload leaves nothing durable behind. */
863
+ async advance(sessionId, output, submission, roundId) {
864
+ // Judged before the session is even resolved: a malformed evaluation is a
865
+ // payload defect whatever the session's state. See submission-boundary.ts.
866
+ const boundary = validateSubmission(this.loopStore, this.sessions.get(sessionId), submission);
867
+ if (!boundary.ok) {
868
+ return {
869
+ sessionId,
870
+ round: this.sessions.get(sessionId)?.currentRound ?? 0,
871
+ ...(roundId !== undefined ? { roundId } : {}),
872
+ prompt: null,
873
+ stopReason: boundary.submissionError.code,
874
+ stopDetail: boundary.stopDetail,
875
+ submissionError: boundary.submissionError,
876
+ };
776
877
  }
777
878
  return this.withSessionQueue(sessionId, async () => {
778
879
  const session = this.sessions.get(sessionId);
@@ -781,7 +882,7 @@ export class SessionManager {
781
882
  return this.leaseConflictResult(session.loopId, this.findSessionEntry(session.loopId));
782
883
  }
783
884
  try {
784
- return await this.lifecycle.advance(sessionId, output, preExtractedEval, roundId);
885
+ return await this.lifecycle.advance(sessionId, output, boundary.evaluation, roundId);
785
886
  }
786
887
  catch (error) {
787
888
  if (error instanceof SessionLeaseConflictError) {
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}