loopforge 3.9.0 → 3.9.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 (124) hide show
  1. package/README.md +15 -0
  2. package/dist/audit.d.ts +13 -1
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +18 -3
  5. package/dist/audit.js.map +1 -1
  6. package/dist/committed-round.d.ts +29 -32
  7. package/dist/committed-round.d.ts.map +1 -1
  8. package/dist/committed-round.js +164 -157
  9. package/dist/committed-round.js.map +1 -1
  10. package/dist/contract-items.d.ts +3 -2
  11. package/dist/contract-items.d.ts.map +1 -1
  12. package/dist/contract-items.js +18 -7
  13. package/dist/contract-items.js.map +1 -1
  14. package/dist/enforcement-gate.d.ts.map +1 -1
  15. package/dist/enforcement-gate.js +13 -61
  16. package/dist/enforcement-gate.js.map +1 -1
  17. package/dist/engine.d.ts.map +1 -1
  18. package/dist/engine.js +16 -9
  19. package/dist/engine.js.map +1 -1
  20. package/dist/evidence-claims.d.ts +6 -5
  21. package/dist/evidence-claims.d.ts.map +1 -1
  22. package/dist/evidence-claims.js +21 -20
  23. package/dist/evidence-claims.js.map +1 -1
  24. package/dist/evidence-provider.d.ts +73 -42
  25. package/dist/evidence-provider.d.ts.map +1 -1
  26. package/dist/evidence-provider.js +437 -138
  27. package/dist/evidence-provider.js.map +1 -1
  28. package/dist/explain.d.ts +18 -3
  29. package/dist/explain.d.ts.map +1 -1
  30. package/dist/explain.js +26 -5
  31. package/dist/explain.js.map +1 -1
  32. package/dist/field-accounting.d.ts +29 -0
  33. package/dist/field-accounting.d.ts.map +1 -0
  34. package/dist/field-accounting.js +132 -0
  35. package/dist/field-accounting.js.map +1 -0
  36. package/dist/index.d.ts +7 -3
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +4 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/loop-compiler.d.ts +5 -11
  41. package/dist/loop-compiler.d.ts.map +1 -1
  42. package/dist/loop-compiler.js +29 -86
  43. package/dist/loop-compiler.js.map +1 -1
  44. package/dist/loop-store.d.ts +3 -0
  45. package/dist/loop-store.d.ts.map +1 -1
  46. package/dist/loop-store.js +21 -11
  47. package/dist/loop-store.js.map +1 -1
  48. package/dist/mcp/round-lifecycle.d.ts +26 -2
  49. package/dist/mcp/round-lifecycle.d.ts.map +1 -1
  50. package/dist/mcp/round-lifecycle.js +193 -25
  51. package/dist/mcp/round-lifecycle.js.map +1 -1
  52. package/dist/mcp/server.d.ts.map +1 -1
  53. package/dist/mcp/server.js +17 -14
  54. package/dist/mcp/server.js.map +1 -1
  55. package/dist/mcp/session.d.ts +15 -1
  56. package/dist/mcp/session.d.ts.map +1 -1
  57. package/dist/mcp/session.js +34 -1
  58. package/dist/mcp/session.js.map +1 -1
  59. package/dist/mcp/submission-boundary.d.ts +5 -2
  60. package/dist/mcp/submission-boundary.d.ts.map +1 -1
  61. package/dist/mcp/submission-boundary.js +38 -6
  62. package/dist/mcp/submission-boundary.js.map +1 -1
  63. package/dist/mcp/tools.d.ts.map +1 -1
  64. package/dist/mcp/tools.js +73 -39
  65. package/dist/mcp/tools.js.map +1 -1
  66. package/dist/policy-metrics.d.ts +14 -0
  67. package/dist/policy-metrics.d.ts.map +1 -1
  68. package/dist/policy-metrics.js +53 -1
  69. package/dist/policy-metrics.js.map +1 -1
  70. package/dist/prompt-assembler.d.ts.map +1 -1
  71. package/dist/prompt-assembler.js +63 -11
  72. package/dist/prompt-assembler.js.map +1 -1
  73. package/dist/protocol.d.ts +182 -11
  74. package/dist/protocol.d.ts.map +1 -1
  75. package/dist/protocol.js +4 -1
  76. package/dist/protocol.js.map +1 -1
  77. package/dist/replay.d.ts +3 -0
  78. package/dist/replay.d.ts.map +1 -1
  79. package/dist/replay.js +46 -7
  80. package/dist/replay.js.map +1 -1
  81. package/dist/round-contract.d.ts +5 -4
  82. package/dist/round-contract.d.ts.map +1 -1
  83. package/dist/round-contract.js +4 -4
  84. package/dist/round-contract.js.map +1 -1
  85. package/dist/round-coordinator.d.ts +2 -1
  86. package/dist/round-coordinator.d.ts.map +1 -1
  87. package/dist/round-coordinator.js +17 -9
  88. package/dist/round-coordinator.js.map +1 -1
  89. package/dist/round-driver.d.ts +4 -1
  90. package/dist/round-driver.d.ts.map +1 -1
  91. package/dist/round-driver.js +2 -0
  92. package/dist/round-driver.js.map +1 -1
  93. package/dist/round-facts.d.ts +3 -2
  94. package/dist/round-facts.d.ts.map +1 -1
  95. package/dist/round-facts.js +4 -4
  96. package/dist/round-facts.js.map +1 -1
  97. package/dist/round-transaction.d.ts +21 -10
  98. package/dist/round-transaction.d.ts.map +1 -1
  99. package/dist/round-transaction.js +81 -19
  100. package/dist/round-transaction.js.map +1 -1
  101. package/dist/self-eval.d.ts +28 -10
  102. package/dist/self-eval.d.ts.map +1 -1
  103. package/dist/self-eval.js +522 -124
  104. package/dist/self-eval.js.map +1 -1
  105. package/dist/submission-diagnostics.d.ts +12 -0
  106. package/dist/submission-diagnostics.d.ts.map +1 -0
  107. package/dist/submission-diagnostics.js +12 -0
  108. package/dist/submission-diagnostics.js.map +1 -0
  109. package/dist/submission-guidance.d.ts +119 -0
  110. package/dist/submission-guidance.d.ts.map +1 -0
  111. package/dist/submission-guidance.js +766 -0
  112. package/dist/submission-guidance.js.map +1 -0
  113. package/dist/submission-receipt.d.ts +48 -0
  114. package/dist/submission-receipt.d.ts.map +1 -0
  115. package/dist/submission-receipt.js +336 -0
  116. package/dist/submission-receipt.js.map +1 -0
  117. package/dist/verification-gate.d.ts +10 -6
  118. package/dist/verification-gate.d.ts.map +1 -1
  119. package/dist/verification-gate.js +95 -87
  120. package/dist/verification-gate.js.map +1 -1
  121. package/dist/version.d.ts +1 -1
  122. package/dist/version.js +1 -1
  123. package/package.json +2 -1
  124. package/skills/perception/SKILL.md +66 -27
@@ -4,7 +4,7 @@
4
4
  * place that interprets their transaction envelope or the compiler's merged
5
5
  * lineage representation. Consumers receive one stable, read-only view.
6
6
  */
7
- import { PROMPT_ARTIFACT_SCHEMA_VERSION } from "./protocol.js";
7
+ import { GIT_OBSERVATION_SCHEMA_VERSION, PROMPT_ARTIFACT_SCHEMA_VERSION, } from "./protocol.js";
8
8
  import { ROUND_TRANSACTION_SCHEMA_VERSION, deriveRoundObservationDelta, parseRoundTransactionSnapshot, transactionSchemaVersionOf, } from "./round-transaction.js";
9
9
  import { claimedMetCriteria, claimedRemainingCriteria, effectiveOutcome, parseRoundContract } from "./self-eval.js";
10
10
  import { entryRound, isRecord } from "./token-utils.js";
@@ -98,49 +98,46 @@ function subGoalUpdates(value) {
98
98
  }
99
99
  /** Decode a durable :feedback entry. Reject/terminate/in-flight envelopes are
100
100
  * not committed history and therefore do not produce a view. */
101
- export function decodeCommittedRound(entry) {
102
- if (!String(entry.task_id ?? "").endsWith(":feedback"))
103
- return null;
104
- const lineage = isRecord(entry.loop_lineage) ? entry.loop_lineage : null;
105
- const transaction = lineage && isRecord(lineage.round_transaction)
106
- ? lineage.round_transaction
107
- : null;
108
- if (!transaction)
109
- return null;
110
- // v3.8: the transaction schema is a HARD break — an envelope that does not
111
- // parse (legacy version, malformed observations) is not committed history.
112
- // legacyTransactionRounds() reports the loss explicitly; it is never
113
- // silently decoded into a partial view.
114
- const snapshot = parseRoundTransactionSnapshot(transaction.snapshot);
115
- if (!snapshot)
116
- return null;
101
+ /** v3.9.1: a round is evidence-incomplete when it has no after evidence at
102
+ * all, or when Git was configured/appeared but either boundary is not
103
+ * observable. A command-only round is not incomplete merely because it has
104
+ * no Git observation. */
105
+ function evidenceIncomplete(after, deltas) {
106
+ if (after.length === 0)
107
+ return true;
108
+ // No Git delta means Git was not part of this round. A Git delta whose
109
+ // change set is null means the boundary pair could not be compared —
110
+ // including a missing before baseline.
111
+ return deltas.some((delta) => delta.kind === "git" && delta.changedFiles === null);
112
+ }
113
+ /** v3.9.1: ONE view builder over ONE transaction snapshot. Both the durable
114
+ * feedback entry and the engine's hydrated merged entry call it, so there is
115
+ * no second evaluation/history interpretation. */
116
+ function viewFromSnapshot(input) {
117
+ const { snapshot, result, lineage } = input;
117
118
  if (snapshot.phase !== "committed")
118
119
  return null;
119
- const resultValue = isRecord(transaction.result)
120
- ? transaction.result
121
- : snapshot.result;
122
- if (!isRecord(resultValue))
123
- return null;
124
- const action = committedAction(resultValue.action);
120
+ const action = committedAction(result.action);
125
121
  if (!action)
126
122
  return null;
127
- const result = resultValue;
128
- const round = snapshot?.round ?? entryRound(entry);
129
- const loopId = snapshot?.loopId ?? String(entry.loop_id ?? lineage?.loop_id ?? "");
123
+ const round = snapshot.round;
124
+ const loopId = snapshot.loopId;
130
125
  if (round < 1 || !loopId)
131
126
  return null;
132
- const evaluation = snapshot?.evaluation ?? null;
127
+ const evaluation = snapshot.evaluation ?? null;
133
128
  const outcome = evaluation ? effectiveOutcome(evaluation) : null;
134
- const sequence = typeof entry.sequence === "number" ? entry.sequence : undefined;
129
+ const beforeEvidence = snapshots(snapshot.beforeEvidence);
130
+ const afterEvidence = snapshots(snapshot.afterEvidence);
131
+ const observationDelta = deriveRoundObservationDelta(beforeEvidence, afterEvidence);
135
132
  return {
136
- source: "feedback",
137
- sourceEntry: entry,
133
+ source: input.source,
134
+ sourceEntry: input.sourceEntry,
138
135
  loopId,
139
136
  round,
140
- roundId: snapshot?.roundId ?? String(transaction.round_id ?? `loop:${loopId}:round:${round}`),
141
- sequence,
142
- attempt: snapshot?.attempt ?? 1,
143
- promptArtifact: snapshot?.promptArtifact ?? null,
137
+ roundId: snapshot.roundId,
138
+ sequence: input.sequence,
139
+ attempt: snapshot.attempt,
140
+ promptArtifact: snapshot.promptArtifact ?? null,
144
141
  evaluation,
145
142
  executionReport: evaluation?.execution_report ?? null,
146
143
  verificationFlags: flags(result.verificationFlags),
@@ -151,11 +148,13 @@ export function decodeCommittedRound(entry) {
151
148
  contractProposal: evaluation?.round_contract
152
149
  ? parseRoundContract(evaluation.round_contract) ?? null
153
150
  : null,
154
- contractBinding: snapshot?.contractBinding ?? null,
155
- beforeEvidence: snapshots(snapshot?.beforeEvidence),
156
- afterEvidence: snapshots(snapshot?.afterEvidence),
157
- observationDelta: deriveRoundObservationDelta(snapshots(snapshot?.beforeEvidence), snapshots(snapshot?.afterEvidence)),
158
- evidenceIncomplete: (snapshot?.afterEvidence?.length ?? 0) === 0,
151
+ contractBinding: snapshot.contractBinding ?? null,
152
+ beforeEvidence,
153
+ afterEvidence,
154
+ observationDelta,
155
+ normalizationDiagnostics: snapshot.normalizationDiagnostics ?? [],
156
+ submittedFields: snapshot.submittedFields ?? [],
157
+ evidenceIncomplete: evidenceIncomplete(afterEvidence, observationDelta),
159
158
  outputSummary: evaluation?.output_summary,
160
159
  constraintViolations: strings(evaluation?.constraint_violations),
161
160
  discoveredConstraints: strings(evaluation?.discovered_constraints),
@@ -163,102 +162,76 @@ export function decodeCommittedRound(entry) {
163
162
  retractedConstraints: strings(evaluation?.retracted_constraints),
164
163
  emergedSubtasks: strings(evaluation?.emerged_subtasks),
165
164
  subgoalUpdates: subGoalUpdates(evaluation?.subgoal_updates),
166
- backtrack: action === "backtrack" ? decodeBacktrackRecord(resultValue) : null,
165
+ backtrack: action === "backtrack"
166
+ ? decodeBacktrackRecord(result)
167
+ : null,
167
168
  };
168
169
  }
170
+ export function decodeCommittedRound(entry) {
171
+ if (!String(entry.task_id ?? "").endsWith(":feedback"))
172
+ return null;
173
+ const lineage = isRecord(entry.loop_lineage) ? entry.loop_lineage : null;
174
+ const transaction = lineage && isRecord(lineage.round_transaction)
175
+ ? lineage.round_transaction
176
+ : null;
177
+ if (!transaction)
178
+ return null;
179
+ // v3.8: the transaction schema is a HARD break — an envelope that does not
180
+ // parse (legacy version, malformed observations) is not committed history.
181
+ // legacyTransactionRounds() reports the loss explicitly; it is never
182
+ // silently decoded into a partial view.
183
+ const snapshot = parseRoundTransactionSnapshot(transaction.snapshot);
184
+ if (!snapshot)
185
+ return null;
186
+ const resultValue = isRecord(transaction.result)
187
+ ? transaction.result
188
+ : snapshot.result;
189
+ if (!isRecord(resultValue))
190
+ return null;
191
+ return viewFromSnapshot({
192
+ source: "feedback",
193
+ sourceEntry: entry,
194
+ lineage,
195
+ snapshot,
196
+ result: resultValue,
197
+ sequence: typeof entry.sequence === "number" ? entry.sequence : undefined,
198
+ });
199
+ }
169
200
  /** Decode an in-memory lineage entry after the engine merged its committed
170
- * feedback. The merged shape is intentionally accepted only when stamped
171
- * with committed_action. */
201
+ * feedback. The merged entry MUST carry the embedded transaction snapshot;
202
+ * the old raw top-level evaluation reconstruction is gone, so a partial
203
+ * lineage entry cannot become a second history. */
172
204
  export function decodeMergedRound(entry) {
173
205
  if (!isRecord(entry))
174
206
  return null;
175
207
  const raw = entry;
176
- // v3.7: the legacy top-level `lineage` alias was removed — committed
177
- // entries always carry `loop_lineage`.
178
208
  const lineage = isRecord(raw.loop_lineage) ? raw.loop_lineage : {};
179
209
  const action = committedAction(lineage.committed_action ?? raw.committed_action);
180
210
  if (!action)
181
211
  return null;
182
- const round = entryRound(raw);
183
- if (round < 1)
212
+ const transaction = isRecord(lineage.round_transaction)
213
+ ? lineage.round_transaction
214
+ : isRecord(raw.round_transaction)
215
+ ? raw.round_transaction
216
+ : null;
217
+ if (!transaction)
184
218
  return null;
185
- const loopId = typeof raw.loop_id === "string"
186
- ? raw.loop_id
187
- : typeof lineage.loop_id === "string" ? lineage.loop_id : "";
188
- const roundId = typeof lineage.round_id === "string"
189
- ? lineage.round_id
190
- : `loop:${loopId}:round:${round}`;
191
- const evaluationRaw = {};
192
- const evaluationKeys = [
193
- "success", "output_summary", "constraint_violations", "should_continue",
194
- "discovered_constraints", "objective_refinement", "emerged_subtasks",
195
- "execution_report", "retracted_constraints", "revised_success_criteria",
196
- "wrong_assumptions", "worker_results", "compression_checkpoint",
197
- "checkpoint_label", "subgoal_updates", "stop_reason",
198
- "outcome", "blocker", "gate_ids",
199
- "retroactiveClaims", "no_change_reason",
200
- "prompt_requests", "round_contract",
201
- ];
202
- let hasEvaluation = false;
203
- for (const key of evaluationKeys) {
204
- const value = raw[key] ?? lineage[key];
205
- if (value !== undefined) {
206
- evaluationRaw[key] = value;
207
- hasEvaluation = true;
208
- }
209
- }
210
- const evaluation = hasEvaluation
211
- ? evaluationRaw
212
- : null;
213
- const resultRaw = isRecord(lineage.result) ? lineage.result : null;
214
- const result = resultRaw ? resultRaw : null;
215
- const outcome = roundOutcome(evaluationRaw.outcome) ??
216
- (typeof evaluationRaw.success === "boolean"
217
- ? evaluationRaw.success ? "success" : "failed"
218
- : null);
219
- const proposal = parseRoundContract(evaluationRaw.round_contract) ?? null;
220
- const executionReport = isRecord(evaluationRaw.execution_report)
221
- ? evaluationRaw.execution_report
222
- : null;
223
- return {
219
+ const snapshot = parseRoundTransactionSnapshot(transaction.snapshot);
220
+ if (!snapshot)
221
+ return null;
222
+ const resultValue = isRecord(transaction.result)
223
+ ? transaction.result
224
+ : snapshot.result;
225
+ if (!isRecord(resultValue))
226
+ return null;
227
+ return viewFromSnapshot({
224
228
  source: "merged",
225
229
  sourceEntry: raw,
226
- loopId,
227
- round,
228
- roundId,
230
+ lineage,
231
+ snapshot,
232
+ result: resultValue,
229
233
  sequence: typeof lineage.sequence === "number" ? lineage.sequence : undefined,
230
- attempt: typeof lineage.attempt === "number" ? lineage.attempt : 1,
231
- promptArtifact: isRecord(lineage.prompt_artifact)
232
- ? lineage.prompt_artifact
233
- : null,
234
- evaluation,
235
- executionReport,
236
- verificationFlags: flags(raw.verification_flags ?? lineage.verification_flags),
237
- result,
238
- action,
239
- success: typeof raw.success === "boolean"
240
- ? raw.success
241
- : typeof lineage.success === "boolean" ? lineage.success : false,
242
- outcome,
243
- contractProposal: proposal,
244
- contractBinding: isRecord(lineage.contract_binding)
245
- ? lineage.contract_binding
246
- : null,
247
- beforeEvidence: snapshots(lineage.before_evidence),
248
- afterEvidence: snapshots(lineage.after_evidence),
249
- observationDelta: deriveRoundObservationDelta(snapshots(lineage.before_evidence), snapshots(lineage.after_evidence)),
250
- evidenceIncomplete: snapshots(lineage.after_evidence).length === 0,
251
- outputSummary: typeof evaluationRaw.output_summary === "string"
252
- ? evaluationRaw.output_summary
253
- : undefined,
254
- constraintViolations: strings(evaluationRaw.constraint_violations),
255
- discoveredConstraints: strings(evaluationRaw.discovered_constraints),
256
- activeConstraints: strings(raw.constraints_active ?? lineage.constraints_active),
257
- retractedConstraints: strings(evaluationRaw.retracted_constraints),
258
- emergedSubtasks: strings(evaluationRaw.emerged_subtasks),
259
- subgoalUpdates: subGoalUpdates(evaluationRaw.subgoal_updates),
260
- backtrack: action === "backtrack" ? decodeBacktrackRecord(lineage) : null,
261
- };
234
+ });
262
235
  }
263
236
  /** Normalize committed history: rollback directives disappear, later records
264
237
  * replace earlier records for the same logical round, and output is ascending. */
@@ -452,17 +425,12 @@ export function readOnlyRounds(entries) {
452
425
  return historyRounds(views, persistedFrontier(entries) ?? Number.POSITIVE_INFINITY);
453
426
  }
454
427
  /** The machine-evidence set that best represents a committed round: the
455
- * after-phase observations (captured post-execution), else the derived round
456
- * delta, else the pre-round baseline. Shared selector for the
457
- * evidence-fallback chains that audit, claims, and backtrack-restore each
458
- * used to inline with subtly different tiers. Distinct from
459
- * machineGitMotionSeries, which reads the derived delta plus Git HEAD
460
- * movement so commit-per-slice work remains visible. */
428
+ * after-phase observations (captured post-execution), else the pre-round
429
+ * baseline. The derived delta is never evidence — it is a change-set view
430
+ * over these facts, not a second observation collection. */
461
431
  export function machineEvidenceForRound(view) {
462
432
  if (view.afterEvidence.length > 0)
463
433
  return view.afterEvidence;
464
- if (view.observationDelta.length > 0)
465
- return view.observationDelta;
466
434
  return view.beforeEvidence;
467
435
  }
468
436
  export function legacyTransactionRounds(entries) {
@@ -495,6 +463,30 @@ export function legacyTransactionRounds(entries) {
495
463
  if (typeof artifactVersion === "number" &&
496
464
  artifactVersion !== PROMPT_ARTIFACT_SCHEMA_VERSION) {
497
465
  out.push({ round, schemaVersion: artifactVersion, envelope: "prompt_artifact" });
466
+ continue;
467
+ }
468
+ }
469
+ // v3.9.1: an observation schema mismatch is also a hard break. The
470
+ // transaction parser drops the whole round on it; report the loss here
471
+ // instead of letting the round vanish from history.
472
+ const observations = [
473
+ ...(Array.isArray(snapshot.beforeEvidence) ? snapshot.beforeEvidence : []),
474
+ ...(Array.isArray(snapshot.afterEvidence) ? snapshot.afterEvidence : []),
475
+ ];
476
+ for (const item of observations) {
477
+ if (!isRecord(item) || typeof item.kind !== "string") {
478
+ out.push({ round, schemaVersion: -1, envelope: "observation" });
479
+ break;
480
+ }
481
+ const expected = item.kind === "git" ? GIT_OBSERVATION_SCHEMA_VERSION : 1;
482
+ const observationVersion = item.schemaVersion;
483
+ if (typeof observationVersion !== "number" || observationVersion !== expected) {
484
+ out.push({
485
+ round,
486
+ schemaVersion: typeof observationVersion === "number" ? observationVersion : -1,
487
+ envelope: "observation",
488
+ });
489
+ break;
498
490
  }
499
491
  }
500
492
  }
@@ -513,7 +505,7 @@ export function legacyTransactionRounds(entries) {
513
505
  * short hashes, the rule `checkBacktrackGitHeadRestore` uses; the
514
506
  * before/after arm compares the observations themselves. */
515
507
  export function gitMotionSignal(input) {
516
- if (input.files.length > 0)
508
+ if (input.changedFiles !== null && input.changedFiles.length > 0)
517
509
  return true;
518
510
  const { headBefore, headAfter, restoreTargetHead } = input;
519
511
  if (headAfter && headBefore && headAfter !== headBefore)
@@ -521,6 +513,12 @@ export function gitMotionSignal(input) {
521
513
  if (headAfter && restoreTargetHead &&
522
514
  headAfter.slice(0, 12) === restoreTargetHead.slice(0, 12))
523
515
  return true;
516
+ if (input.changedFiles === null)
517
+ return null;
518
+ // An observed empty change set is no motion only when both HEADs are known;
519
+ // otherwise a commit-only slice could still have moved HEAD.
520
+ if (!headBefore || !headAfter)
521
+ return null;
524
522
  return false;
525
523
  }
526
524
  /** Git HEAD as a machine observation exposes it, or null when it is silent. */
@@ -530,30 +528,34 @@ export function observedGitHead(observation) {
530
528
  ? observation.data.head
531
529
  : null;
532
530
  }
533
- /** The in-flight round's own motion, from its before/after observations.
534
- * null when no Git observation was made at all — an unobservable round gains
535
- * no excuse.
536
- *
537
- * The file list is the AFTER observation's alone, never the before/after
538
- * union a committed round's delta carries: the before side is the state the
539
- * round started from, and counting it as motion would let a submission that
540
- * sat on stale changes excuse its own stall. A round that only reverts work
541
- * is judged by the HEAD it moved and the restore point it returned to. */
542
- export function inFlightGitMotion(before, after, restoreTargetHead) {
543
- const pick = (observations) => observations.find((snapshot) => snapshot.providerId === "git" && snapshot.status === "observed");
544
- const observed = pick(after);
545
- if (!observed)
531
+ function observedGitObservation(observation) {
532
+ return observation && observation.kind === "git" && observation.status === "observed"
533
+ ? observation
534
+ : null;
535
+ }
536
+ function observedGitIn(observations) {
537
+ return observations.find((observation) => observation.kind === "git" && observation.status === "observed") ?? null;
538
+ }
539
+ /** The in-flight round's own motion, from its derived Git delta. A Git
540
+ * boundary that cannot be compared yields `null` unless HEAD movement or the
541
+ * restore point independently proves motion. */
542
+ export function inFlightGitMotion(deltas, restoreTargetHead) {
543
+ const git = deltas.find((delta) => delta.kind === "git");
544
+ if (!git)
546
545
  return null;
546
+ const before = observedGitObservation(git.before);
547
+ const after = observedGitObservation(git.after);
547
548
  return gitMotionSignal({
548
- files: observed.files,
549
- headBefore: observedGitHead(pick(before)),
550
- headAfter: observedGitHead(observed),
549
+ changedFiles: git.changedFiles,
550
+ headBefore: observedGitHead(before ?? undefined),
551
+ headAfter: observedGitHead(after ?? undefined),
551
552
  restoreTargetHead: restoreTargetHead ?? null,
552
553
  });
553
554
  }
554
555
  /** Machine-observed git motion for the most recent contiguous window.
555
556
  * A clean worktree is not the same thing as no progress: commit-per-slice
556
- * workflows leave no file delta even though HEAD advanced. */
557
+ * workflows leave no file delta even though HEAD advanced. Unknown motion in
558
+ * any round makes the window undecidable rather than falsely empty. */
557
559
  export function machineGitMotionSeries(rounds, currentRound, lookback) {
558
560
  if (!Number.isInteger(lookback) || lookback < 1 || currentRound <= lookback)
559
561
  return null;
@@ -566,24 +568,29 @@ export function machineGitMotionSeries(rounds, currentRound, lookback) {
566
568
  const recent = [];
567
569
  for (let number = currentRound - lookback; number < currentRound; number++) {
568
570
  const round = byRound.get(number);
569
- if (!round?.observationDelta.some((snapshot) => snapshot.providerId === "git" && snapshot.status === "observed"))
571
+ if (!round)
572
+ return null;
573
+ if (!round.observationDelta.some((delta) => delta.kind === "git"))
570
574
  return null;
571
575
  recent.push(round);
572
576
  }
573
- const observedGit = (observations) => observations.find((snapshot) => snapshot.providerId === "git" && snapshot.status === "observed");
574
577
  const motion = [];
575
578
  for (const round of recent) {
576
- const git = observedGit(round.observationDelta);
579
+ const git = round.observationDelta.find((delta) => delta.kind === "git");
577
580
  // The round's baseline: its own before observation, else the previous
578
581
  // round's after observation. Older Git observations do not carry a HEAD
579
- // field; their file list is still a valid motion signal.
580
- const baseline = observedGit(round.beforeEvidence)
581
- ?? observedGit(byRound.get(round.round - 1)?.afterEvidence ?? []);
582
- motion.push(gitMotionSignal({
583
- files: git.files,
584
- headBefore: observedGitHead(baseline),
585
- headAfter: observedGitHead(git),
586
- }));
582
+ // field; their change set is still a valid motion signal.
583
+ const baseline = observedGitObservation(git.before)
584
+ ?? observedGitIn(byRound.get(round.round - 1)?.afterEvidence ?? []);
585
+ const after = observedGitObservation(git.after);
586
+ const signal = gitMotionSignal({
587
+ changedFiles: git.changedFiles,
588
+ headBefore: observedGitHead(baseline ?? undefined),
589
+ headAfter: observedGitHead(after ?? undefined),
590
+ });
591
+ if (signal === null)
592
+ return null;
593
+ motion.push(signal);
587
594
  }
588
595
  return motion;
589
596
  }
@@ -1 +1 @@
1
- {"version":3,"file":"committed-round.js","sourceRoot":"","sources":["../src/committed-round.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"committed-round.js","sourceRoot":"","sources":["../src/committed-round.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,10 @@
7
7
  * it is a pure function of the committed round views, the current report,
8
8
  * the current observations, and policy.
9
9
  */
10
- import type { ContractItemStatus, ExecutionReport, MachineObservation } from "./protocol.js";
10
+ import type { ContractItemStatus, ExecutionReport } from "./protocol.js";
11
11
  import type { ActiveContractView } from "./round-contract.js";
12
12
  import type { CommittedRoundView } from "./committed-round.js";
13
+ import type { ObservationDelta } from "./evidence-provider.js";
13
14
  import type { CommandEvidencePolicy } from "./policy.js";
14
15
  export interface ItemStatusHistoryEntry {
15
16
  round: number;
@@ -40,7 +41,7 @@ export interface ContractItemInput {
40
41
  rounds: ReadonlyArray<CommittedRoundView>;
41
42
  currentRound: number;
42
43
  currentReport: ExecutionReport | null;
43
- currentObservations: ReadonlyArray<MachineObservation>;
44
+ currentDeltas: ReadonlyArray<ObservationDelta>;
44
45
  /** The in-flight round's own effective outcome. A `blocked` round CLOSES its
45
46
  * contract, so the closure cannot be derived from the committed slices
46
47
  * alone — the round being decided is not committed yet. Leave null where no
@@ -1 +1 @@
1
- {"version":3,"file":"contract-items.d.ts","sourceRoot":"","sources":["../src/contract-items.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAUzD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kDAAkD;IAClD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,2EAA2E;IAC3E,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IACvD;;;oEAGgE;IAChE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAChD;AAyGD,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,CAkF3F;AAED,kDAAkD;AAClD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,eAAe,GAAG,IAAI,GAC7B,SAAS,GAAG,cAAc,GAAG,cAAc,CAS7C"}
1
+ {"version":3,"file":"contract-items.d.ts","sourceRoot":"","sources":["../src/contract-items.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,qBAAqB,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAUzD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,kDAAkD;IAClD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACpC,2EAA2E;IAC3E,MAAM,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,eAAe,GAAG,IAAI,CAAC;IACtC,aAAa,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC/C;;;oEAGgE;IAChE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,aAAa,CAAC,qBAAqB,CAAC,CAAC;CAChD;AAiHD,oEAAoE;AACpE,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,CAkF3F;AAED,kDAAkD;AAClD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,eAAe,GAAG,IAAI,GAC7B,SAAS,GAAG,cAAc,GAAG,cAAc,CAS7C"}
@@ -7,6 +7,7 @@
7
7
  * it is a pure function of the committed round views, the current report,
8
8
  * the current observations, and policy.
9
9
  */
10
+ import { gitDeltaState } from "./evidence-provider.js";
10
11
  const EMPTY_VIEW = {
11
12
  contractId: "",
12
13
  closure: "open",
@@ -47,7 +48,10 @@ function evaluateCommand(commandId, declaredHash, slices, fromRound, configured)
47
48
  for (const slice of [...slices].reverse()) {
48
49
  if (slice.round < fromRound)
49
50
  continue;
50
- const observation = slice.observations.find((item) => item.kind === "command" &&
51
+ const observation = slice.deltas
52
+ .map((delta) => delta.after)
53
+ .find((item) => item !== null &&
54
+ item.kind === "command" &&
51
55
  item.phase === "after" &&
52
56
  item.data.commandId === commandId);
53
57
  if (!observation || observation.kind !== "command")
@@ -59,16 +63,23 @@ function evaluateCommand(commandId, declaredHash, slices, fromRound, configured)
59
63
  reason: `command "${commandId}" was reconfigured after declaration (round ${slice.round})`,
60
64
  };
61
65
  }
62
- const changed = new Set(slice.observations
63
- .filter((item) => item.providerId === "git")
64
- .flatMap((item) => item.files));
66
+ const git = gitDeltaState(slice.deltas);
65
67
  if (observation.status === "passed") {
68
+ // An unknown boundary cannot rule out entrypoint tampering; it is not
69
+ // an empty change set. The absolute entrypoint-trust arm still runs in
70
+ // the verification gate.
71
+ if (git.state === "unknown") {
72
+ return {
73
+ verdict: "insufficient",
74
+ reason: `command "${commandId}" passed, but the Git boundary is unobservable in round ${slice.round}`,
75
+ };
76
+ }
66
77
  // A malformed observation must not crash the derivation the compile
67
78
  // path, the projection, the coordinator, explain and audit all share:
68
79
  // no entrypoint list means the tamper check simply has nothing to
69
80
  // compare, the same posture as a command with no entrypoint files.
70
81
  const entrypoints = Array.isArray(data.entrypointFiles) ? data.entrypointFiles : [];
71
- if (changed.size > 0 && entrypoints.some((file) => changed.has(file))) {
82
+ if (git.state === "observed" && entrypoints.some((file) => git.changedFiles.has(file))) {
72
83
  return {
73
84
  verdict: "contradicted",
74
85
  reason: `command "${commandId}" passed but its entrypoint changed in round ${slice.round}`,
@@ -102,13 +113,13 @@ export function deriveContractItemStatuses(input) {
102
113
  ...input.rounds.map((round) => ({
103
114
  round: round.round,
104
115
  report: round.executionReport,
105
- observations: round.observationDelta,
116
+ deltas: round.observationDelta,
106
117
  outcome: round.outcome,
107
118
  })),
108
119
  {
109
120
  round: input.currentRound,
110
121
  report: input.currentReport,
111
- observations: input.currentObservations,
122
+ deltas: input.currentDeltas,
112
123
  outcome: input.currentOutcome ?? null,
113
124
  },
114
125
  ].filter((slice) => slice.round < input.currentRound || slice.round === input.currentRound);