loopforge 3.0.0 → 3.6.0

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 (194) hide show
  1. package/README.md +126 -143
  2. package/dist/audit.d.ts +50 -0
  3. package/dist/audit.d.ts.map +1 -0
  4. package/dist/audit.js +131 -0
  5. package/dist/audit.js.map +1 -0
  6. package/dist/canonical-state.d.ts +98 -23
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +257 -181
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +40 -33
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-facts.d.ts +17 -0
  14. package/dist/cognitive-facts.d.ts.map +1 -0
  15. package/dist/cognitive-facts.js +99 -0
  16. package/dist/cognitive-facts.js.map +1 -0
  17. package/dist/cognitive-governance.d.ts +25 -33
  18. package/dist/cognitive-governance.d.ts.map +1 -1
  19. package/dist/cognitive-governance.js +38 -138
  20. package/dist/cognitive-governance.js.map +1 -1
  21. package/dist/committed-round.d.ts +59 -0
  22. package/dist/committed-round.d.ts.map +1 -0
  23. package/dist/committed-round.js +222 -0
  24. package/dist/committed-round.js.map +1 -0
  25. package/dist/enforcement-gate.d.ts +78 -0
  26. package/dist/enforcement-gate.d.ts.map +1 -0
  27. package/dist/enforcement-gate.js +1109 -0
  28. package/dist/enforcement-gate.js.map +1 -0
  29. package/dist/engine.d.ts +111 -0
  30. package/dist/engine.d.ts.map +1 -0
  31. package/dist/engine.js +887 -0
  32. package/dist/engine.js.map +1 -0
  33. package/dist/evidence-claims.d.ts +50 -0
  34. package/dist/evidence-claims.d.ts.map +1 -0
  35. package/dist/evidence-claims.js +116 -0
  36. package/dist/evidence-claims.js.map +1 -0
  37. package/dist/evidence-provider.d.ts +50 -23
  38. package/dist/evidence-provider.d.ts.map +1 -1
  39. package/dist/evidence-provider.js +167 -50
  40. package/dist/evidence-provider.js.map +1 -1
  41. package/dist/generate-schema.js +1 -84
  42. package/dist/generate-schema.js.map +1 -1
  43. package/dist/index.d.ts +19 -22
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +16 -15
  46. package/dist/index.js.map +1 -1
  47. package/dist/loop-compiler.d.ts +58 -3
  48. package/dist/loop-compiler.d.ts.map +1 -1
  49. package/dist/loop-compiler.js +841 -304
  50. package/dist/loop-compiler.js.map +1 -1
  51. package/dist/loop-extras-parser.d.ts +2 -2
  52. package/dist/loop-extras-parser.d.ts.map +1 -1
  53. package/dist/loop-extras-parser.js +2 -2
  54. package/dist/loop-extras-parser.js.map +1 -1
  55. package/dist/loop-projection.d.ts +6 -0
  56. package/dist/loop-projection.d.ts.map +1 -0
  57. package/dist/loop-projection.js +26 -0
  58. package/dist/loop-projection.js.map +1 -0
  59. package/dist/loop-store.d.ts +115 -24
  60. package/dist/loop-store.d.ts.map +1 -1
  61. package/dist/loop-store.js +365 -218
  62. package/dist/loop-store.js.map +1 -1
  63. package/dist/mcp/round-lifecycle.d.ts +214 -0
  64. package/dist/mcp/round-lifecycle.d.ts.map +1 -0
  65. package/dist/mcp/round-lifecycle.js +935 -0
  66. package/dist/mcp/round-lifecycle.js.map +1 -0
  67. package/dist/mcp/server.d.ts +2 -1
  68. package/dist/mcp/server.d.ts.map +1 -1
  69. package/dist/mcp/server.js +29 -43
  70. package/dist/mcp/server.js.map +1 -1
  71. package/dist/mcp/session.d.ts +64 -101
  72. package/dist/mcp/session.d.ts.map +1 -1
  73. package/dist/mcp/session.js +433 -1110
  74. package/dist/mcp/session.js.map +1 -1
  75. package/dist/mcp/tools.d.ts +20 -11
  76. package/dist/mcp/tools.d.ts.map +1 -1
  77. package/dist/mcp/tools.js +587 -413
  78. package/dist/mcp/tools.js.map +1 -1
  79. package/dist/policy-metrics.d.ts +12 -24
  80. package/dist/policy-metrics.d.ts.map +1 -1
  81. package/dist/policy-metrics.js +78 -184
  82. package/dist/policy-metrics.js.map +1 -1
  83. package/dist/policy.d.ts +61 -50
  84. package/dist/policy.d.ts.map +1 -1
  85. package/dist/policy.js +48 -146
  86. package/dist/policy.js.map +1 -1
  87. package/dist/prompt-assembler.d.ts +37 -6
  88. package/dist/prompt-assembler.d.ts.map +1 -1
  89. package/dist/prompt-assembler.js +487 -278
  90. package/dist/prompt-assembler.js.map +1 -1
  91. package/dist/prompt-policy.d.ts +1 -8
  92. package/dist/prompt-policy.d.ts.map +1 -1
  93. package/dist/prompt-policy.js +8 -26
  94. package/dist/prompt-policy.js.map +1 -1
  95. package/dist/protocol.d.ts +398 -236
  96. package/dist/protocol.d.ts.map +1 -1
  97. package/dist/protocol.js +147 -17
  98. package/dist/protocol.js.map +1 -1
  99. package/dist/replay.d.ts +5 -13
  100. package/dist/replay.d.ts.map +1 -1
  101. package/dist/replay.js +32 -69
  102. package/dist/replay.js.map +1 -1
  103. package/dist/round-contract.d.ts +64 -0
  104. package/dist/round-contract.d.ts.map +1 -0
  105. package/dist/round-contract.js +80 -0
  106. package/dist/round-contract.js.map +1 -0
  107. package/dist/round-coordinator.d.ts +23 -25
  108. package/dist/round-coordinator.d.ts.map +1 -1
  109. package/dist/round-coordinator.js +103 -92
  110. package/dist/round-coordinator.js.map +1 -1
  111. package/dist/round-driver.d.ts +13 -13
  112. package/dist/round-driver.d.ts.map +1 -1
  113. package/dist/round-driver.js +25 -14
  114. package/dist/round-driver.js.map +1 -1
  115. package/dist/round-transaction.d.ts +14 -18
  116. package/dist/round-transaction.d.ts.map +1 -1
  117. package/dist/round-transaction.js +37 -47
  118. package/dist/round-transaction.js.map +1 -1
  119. package/dist/self-eval.d.ts +48 -0
  120. package/dist/self-eval.d.ts.map +1 -0
  121. package/dist/self-eval.js +248 -0
  122. package/dist/self-eval.js.map +1 -0
  123. package/dist/storage.d.ts +9 -4
  124. package/dist/storage.d.ts.map +1 -1
  125. package/dist/storage.js +18 -6
  126. package/dist/storage.js.map +1 -1
  127. package/dist/token-utils.d.ts +15 -3
  128. package/dist/token-utils.d.ts.map +1 -1
  129. package/dist/token-utils.js +24 -5
  130. package/dist/token-utils.js.map +1 -1
  131. package/dist/verification-gate.d.ts +149 -0
  132. package/dist/verification-gate.d.ts.map +1 -0
  133. package/dist/verification-gate.js +1343 -0
  134. package/dist/verification-gate.js.map +1 -0
  135. package/dist/workspace.d.ts +29 -0
  136. package/dist/workspace.d.ts.map +1 -0
  137. package/dist/workspace.js +61 -0
  138. package/dist/workspace.js.map +1 -0
  139. package/loop_policy.json +37 -16
  140. package/package.json +5 -10
  141. package/skills/perception/SKILL.md +184 -202
  142. package/dist/canonical-event-writer.d.ts +0 -20
  143. package/dist/canonical-event-writer.d.ts.map +0 -1
  144. package/dist/canonical-event-writer.js +0 -131
  145. package/dist/canonical-event-writer.js.map +0 -1
  146. package/dist/compiler-subgoals.d.ts +0 -7
  147. package/dist/compiler-subgoals.d.ts.map +0 -1
  148. package/dist/compiler-subgoals.js +0 -93
  149. package/dist/compiler-subgoals.js.map +0 -1
  150. package/dist/derive-id.d.ts +0 -12
  151. package/dist/derive-id.d.ts.map +0 -1
  152. package/dist/derive-id.js +0 -31
  153. package/dist/derive-id.js.map +0 -1
  154. package/dist/mcp/session-projection.d.ts +0 -5
  155. package/dist/mcp/session-projection.d.ts.map +0 -1
  156. package/dist/mcp/session-projection.js +0 -18
  157. package/dist/mcp/session-projection.js.map +0 -1
  158. package/dist/mcp/session-queue.d.ts +0 -3
  159. package/dist/mcp/session-queue.d.ts.map +0 -1
  160. package/dist/mcp/session-queue.js +0 -18
  161. package/dist/mcp/session-queue.js.map +0 -1
  162. package/dist/mcp/session-types.d.ts +0 -72
  163. package/dist/mcp/session-types.d.ts.map +0 -1
  164. package/dist/mcp/session-types.js +0 -2
  165. package/dist/mcp/session-types.js.map +0 -1
  166. package/dist/round-commit-store.d.ts +0 -12
  167. package/dist/round-commit-store.d.ts.map +0 -1
  168. package/dist/round-commit-store.js +0 -13
  169. package/dist/round-commit-store.js.map +0 -1
  170. package/dist/round-gate.d.ts +0 -31
  171. package/dist/round-gate.d.ts.map +0 -1
  172. package/dist/round-gate.js +0 -259
  173. package/dist/round-gate.js.map +0 -1
  174. package/dist/round-recovery.d.ts +0 -17
  175. package/dist/round-recovery.d.ts.map +0 -1
  176. package/dist/round-recovery.js +0 -117
  177. package/dist/round-recovery.js.map +0 -1
  178. package/dist/round-report.d.ts +0 -16
  179. package/dist/round-report.d.ts.map +0 -1
  180. package/dist/round-report.js +0 -401
  181. package/dist/round-report.js.map +0 -1
  182. package/dist/runtime-services.d.ts +0 -59
  183. package/dist/runtime-services.d.ts.map +0 -1
  184. package/dist/runtime-services.js +0 -460
  185. package/dist/runtime-services.js.map +0 -1
  186. package/dist/vault-format.d.ts +0 -4
  187. package/dist/vault-format.d.ts.map +0 -1
  188. package/dist/vault-format.js +0 -4
  189. package/dist/vault-format.js.map +0 -1
  190. package/dist/vault-types.d.ts +0 -24
  191. package/dist/vault-types.d.ts.map +0 -1
  192. package/dist/vault-types.js +0 -2
  193. package/dist/vault-types.js.map +0 -1
  194. package/loopforge-policy.json +0 -340
@@ -0,0 +1,149 @@
1
+ /** Verification Gate — Layer 1 cross-round consistency checks.
2
+ *
3
+ * Pure-function module. Validates an agent's SelfEvaluation against the
4
+ * loop's own lineage before it enters the compiler.
5
+ *
6
+ * Verdict semantics:
7
+ * - trusted: all checks passed; flags are informational only.
8
+ * - suspect: one or more warn-level flags; flags become warnings in
9
+ * the next prompt so the agent can clarify.
10
+ * - contradicted: one or more error-level flags; the success flag for
11
+ * this round is excluded from the success trend (NOT
12
+ * modified). Flags become hard constraints — the agent
13
+ * must respond in the next round.
14
+ */
15
+ import type { VaultEntry } from "./loop-store.js";
16
+ import type { ProviderSnapshot } from "./evidence-provider.js";
17
+ import type { SelfEvaluation, VerificationResult } from "./protocol.js";
18
+ export declare const CHECK_PROGRESS_REGRESSION = "progress_regression";
19
+ export declare const CHECK_EMPTY_CHANGE_WITH_PASSING = "empty_change_with_passing";
20
+ export declare const CHECK_SUCCESS_WITH_REMAINING_CRITERIA = "success_with_remaining_criteria";
21
+ export declare const CHECK_SUCCESS_WITHOUT_VERIFIED_EVIDENCE = "success_without_verified_evidence";
22
+ export declare const CHECK_OUTCOME_SUCCESS_CONTRADICTION = "outcome_success_contradiction";
23
+ export declare const CHECK_SUCCESS_CLAIM_CONFLICT = "success_claim_conflict";
24
+ export declare const CHECK_BLOCKED_WITHOUT_BLOCKER = "blocked_without_blocker";
25
+ export declare const CHECK_RETROACTIVE_CLAIM_BAD_ROUND = "retroactive_claim_bad_round";
26
+ export declare const CHECK_RETROACTIVE_CLAIM_UNVERIFIED = "retroactive_claim_unverified";
27
+ export declare const CHECK_DUPLICATE_CONSTRAINT_DISCOVERY = "duplicate_constraint_discovery";
28
+ export declare const CHECK_RECURRING_VIOLATION = "recurring_violation";
29
+ export declare const CHECK_RETRACT_FRESH_CONSTRAINT = "retract_fresh_constraint";
30
+ export declare const CHECK_EVIDENCE_INTEGRITY = "evidence_integrity";
31
+ export declare const CHECK_REQUIRED_COMMAND_FAILED = "required_command_failed";
32
+ export declare const CHECK_COMMAND_EVIDENCE_MISMATCH = "command_evidence_mismatch";
33
+ /** v3.3: Verification domain integrity — a command entrypoint (run-tests.sh,
34
+ * package.json, …) changed in the same round the command ran. The runtime
35
+ * executed a script the agent just rewrote, so the observation has no
36
+ * stable baseline: error. Test-file changes are normal dev activity (TDD):
37
+ * warn-only, see CHECK_TEST_FILES_MODIFIED. */
38
+ export declare const CHECK_VERIFICATION_ENTRYPOINT_MODIFIED = "verification_entrypoint_modified";
39
+ /** v3.3: Test files changed in the same round a verification command passed.
40
+ * Warn-only — the command result stays usable. */
41
+ export declare const CHECK_TEST_FILES_MODIFIED = "test_files_modified";
42
+ export declare const CHECK_INTENT_DRIFT = "intent_drift";
43
+ export declare const CHECK_SUBGOAL_DRIFT = "subgoal_drift";
44
+ export declare const CHECK_BACKTRACK_WORKSPACE_NOT_RESTORED = "backtrack_workspace_not_restored";
45
+ export declare const CHECK_CRITERIA_CLAIMS_UNVERIFIED = "criteria_claims_unverified";
46
+ /** Contract proposed with an empty done_when — nothing is promised, so
47
+ * nothing can be verified at the boundary. Warn: the contract can be fixed
48
+ * by re-declaring next round. */
49
+ export declare const CHECK_ROUND_UNDERSPECIFIED = "round_underspecified";
50
+ /** done_when items exist but verification_plan is empty or names commands
51
+ * that are not configured AND enabled in policy.evidence.commands — the
52
+ * completion claims could never be machine-checked. Warn. */
53
+ export declare const CHECK_ROUND_UNVERIFIABLE = "round_unverifiable";
54
+ /** The round's actual git changes include files outside the ACTIVE
55
+ * contract's declared scope. Warn + drift_clarification exemption
56
+ * (R7-style). */
57
+ export declare const CHECK_ROUND_SCOPE_DRIFT = "round_scope_drift";
58
+ /** success claimed under the ACTIVE contract whose done_when items are
59
+ * either claimed met without machine-verified evidence or silently dropped
60
+ * (not in success_criteria_met NOR success_criteria_remaining). Error. */
61
+ export declare const CHECK_PREMATURE_BOUNDARY = "premature_boundary";
62
+ /** v3.5: Closing a Round Contract is a success-class claim and must be
63
+ * machine-backed. The eval's met claims satisfy every done_when of the
64
+ * ACTIVE contract but its verification_plan commands did not pass this
65
+ * round. Error; warn under evidence.machine_backed_success "warn"; never
66
+ * downgraded by no_change_reason (all done_when met contradicts "no
67
+ * change"). Fail-open: plan names no longer configured+enabled are not
68
+ * required (cannot observe). */
69
+ export declare const CHECK_CONTRACT_COMPLETION_UNVERIFIED = "contract_completion_unverified";
70
+ /** v3.5: The ACTIVE contract is still open (not completed, not blocked)
71
+ * while a different contract was proposed — the proposal is ignored until
72
+ * the active one closes. Warn: the walker still ignores it; this only
73
+ * surfaces the otherwise-silent state. */
74
+ export declare const CHECK_CONTRACT_PREMATURE = "contract_premature";
75
+ /** Extract the round number from a vault entry's loop_lineage.
76
+ * Returns 0 if the entry has no lineage or no round field.
77
+ * In practice, persistLoopLineage always writes round ≥ 1, so 0
78
+ * unambiguously means "not a valid round entry" in this context.
79
+ * Exported for reuse by enforcement-gate.ts. */
80
+ export declare function entryRound(entry: VaultEntry): number;
81
+ /** Normalize a contract scope entry: backslashes → forward slashes, strip
82
+ * leading "./", trim, strip trailing slashes. "." / "./" / "" normalize to
83
+ * "" = the repository root (everything is in scope). */
84
+ export declare function normalizeScopeEntry(path: string): string;
85
+ /** Whether a git-diff file path falls inside any declared scope entry:
86
+ * exact file match, or the file lives under a declared directory. The ""
87
+ * entry (repo root) matches everything. Git paths are always workspace-
88
+ * relative with forward slashes. */
89
+ export declare function isFileInScope(file: string, scope: string[]): boolean;
90
+ /** Git-diff files outside the declared scope (the round_scope_drift signal). */
91
+ export declare function collectOutOfScopeFiles(files: string[], scope: string[]): string[];
92
+ export interface EvidenceStatus {
93
+ /** Whether this round produced a machine-verified observation. */
94
+ providerStatus: "verified" | "unavailable" | "absent";
95
+ /** Git snapshot exists and diffed file changes this round. */
96
+ gitObserved: boolean;
97
+ /** A passed after-phase command snapshot exists. */
98
+ commandVerified: boolean;
99
+ /** Agent-reported test_results agree with a passed command's parsed stdout. */
100
+ testsMachineBacked: boolean;
101
+ /** Agent-reported files_changed equals the git diff set exactly. */
102
+ reportedFilesMatch: boolean;
103
+ }
104
+ /** v3.2: Derive the machine-verification status of a round. The verification
105
+ * capability is modeled explicitly (verified / unavailable / absent) instead
106
+ * of letting evidence-dependent checks silently disappear when snapshots are
107
+ * missing — the fix for the "weakest when it matters most" gap. */
108
+ export declare function deriveEvidenceStatus(selfEval: SelfEvaluation, evidenceSnapshots: ProviderSnapshot[]): EvidenceStatus;
109
+ /** Per-round machine progress over decoded committed history. */
110
+ export declare function machineProgressSeries(vaultEntries: VaultEntry[], currentRound: number, lookback: number): boolean[] | null;
111
+ interface ParsedTestCounts {
112
+ passed: number;
113
+ failed: number;
114
+ skipped: number;
115
+ total: number;
116
+ }
117
+ /** Best-effort parse of test counts from common test-runner output formats.
118
+ *
119
+ * Scans the last 2000 characters of stdout (where summary lines typically
120
+ * appear) and tries patterns in descending specificity order. Returns null
121
+ * when the output format is unrecognized, stdout is empty, or a confident
122
+ * parse cannot be made.
123
+ *
124
+ * Recognized formats: Jest verbose/compact, Mocha, pytest/unittest, Go test,
125
+ * and PHPUnit OK summaries. */
126
+ export declare function parseTestOutput(stdout: string): ParsedTestCounts | null;
127
+ /** Verify a SelfEvaluation against the loop's cross-round lineage.
128
+ *
129
+ * @param selfEval The agent's self-evaluation for the current round.
130
+ * @param currentRound The current round number (1-based).
131
+ * @param vaultEntries Vault entries for this loop (committed lineage
132
+ * entries AND :feedback entries — the feedback
133
+ * entries feed the ACTIVE-contract derivation).
134
+ * @param prevSelfEval The agent's self-evaluation from the previous round
135
+ * (null for round 1).
136
+ * @param evidenceSnapshots v1.18: Evidence snapshots from configured providers.
137
+ * Used by checkEvidenceIntegrity for multi-provider
138
+ * cross-validation. Defaults to empty array. */
139
+ export declare function verifySelfEvaluation(selfEval: SelfEvaluation, currentRound: number, vaultEntries: VaultEntry[], prevSelfEval?: SelfEvaluation | null, evidenceSnapshots?: ProviderSnapshot[],
140
+ /** v2.13: Files from skipped backtrack rounds. If the agent's
141
+ * files_changed overlaps significantly with these, the workspace
142
+ * was not properly restored before working. */
143
+ backtrackSkippedFiles?: string[],
144
+ /** v2.12: Git HEAD commit of the backtrack restore point. When set, the
145
+ * current git snapshot must sit at this commit — otherwise the workspace
146
+ * was not restored and the round cannot be accepted. */
147
+ backtrackTargetGitHead?: string): VerificationResult;
148
+ export {};
149
+ //# sourceMappingURL=verification-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-gate.d.ts","sourceRoot":"","sources":["../src/verification-gate.ts"],"names":[],"mappings":"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"}