loopforge 3.9.4 → 4.0.7

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 (283) hide show
  1. package/README.md +236 -112
  2. package/dist/audit.d.ts +73 -15
  3. package/dist/audit.d.ts.map +1 -1
  4. package/dist/audit.js +131 -61
  5. package/dist/audit.js.map +1 -1
  6. package/dist/canonical-state.d.ts +114 -40
  7. package/dist/canonical-state.d.ts.map +1 -1
  8. package/dist/canonical-state.js +276 -182
  9. package/dist/canonical-state.js.map +1 -1
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +41 -12
  12. package/dist/cli.js.map +1 -1
  13. package/dist/cognitive-governance.d.ts +0 -2
  14. package/dist/cognitive-governance.d.ts.map +1 -1
  15. package/dist/cognitive-governance.js +0 -4
  16. package/dist/cognitive-governance.js.map +1 -1
  17. package/dist/committed-round.d.ts +97 -156
  18. package/dist/committed-round.d.ts.map +1 -1
  19. package/dist/committed-round.js +223 -419
  20. package/dist/committed-round.js.map +1 -1
  21. package/dist/constraint-lifecycle.d.ts +73 -0
  22. package/dist/constraint-lifecycle.d.ts.map +1 -0
  23. package/dist/constraint-lifecycle.js +174 -0
  24. package/dist/constraint-lifecycle.js.map +1 -0
  25. package/dist/context-boundary.d.ts +83 -0
  26. package/dist/context-boundary.d.ts.map +1 -0
  27. package/dist/context-boundary.js +101 -0
  28. package/dist/context-boundary.js.map +1 -0
  29. package/dist/contract-items.d.ts +12 -8
  30. package/dist/contract-items.d.ts.map +1 -1
  31. package/dist/contract-items.js +31 -26
  32. package/dist/contract-items.js.map +1 -1
  33. package/dist/contract-requirement.d.ts +47 -0
  34. package/dist/contract-requirement.d.ts.map +1 -0
  35. package/dist/contract-requirement.js +51 -0
  36. package/dist/contract-requirement.js.map +1 -0
  37. package/dist/criterion-status.d.ts +35 -0
  38. package/dist/criterion-status.d.ts.map +1 -0
  39. package/dist/criterion-status.js +89 -0
  40. package/dist/criterion-status.js.map +1 -0
  41. package/dist/enforcement-gate.d.ts +26 -38
  42. package/dist/enforcement-gate.d.ts.map +1 -1
  43. package/dist/enforcement-gate.js +196 -319
  44. package/dist/enforcement-gate.js.map +1 -1
  45. package/dist/engine.d.ts +9 -103
  46. package/dist/engine.d.ts.map +1 -1
  47. package/dist/engine.js +27 -897
  48. package/dist/engine.js.map +1 -1
  49. package/dist/errors.d.ts +41 -0
  50. package/dist/errors.d.ts.map +1 -0
  51. package/dist/errors.js +69 -0
  52. package/dist/errors.js.map +1 -0
  53. package/dist/evidence-claims.d.ts +33 -31
  54. package/dist/evidence-claims.d.ts.map +1 -1
  55. package/dist/evidence-claims.js +58 -72
  56. package/dist/evidence-claims.js.map +1 -1
  57. package/dist/evidence-posture-view.d.ts +19 -0
  58. package/dist/evidence-posture-view.d.ts.map +1 -0
  59. package/dist/evidence-posture-view.js +116 -0
  60. package/dist/evidence-posture-view.js.map +1 -0
  61. package/dist/evidence-posture.d.ts +73 -0
  62. package/dist/evidence-posture.d.ts.map +1 -0
  63. package/dist/evidence-posture.js +281 -0
  64. package/dist/evidence-posture.js.map +1 -0
  65. package/dist/evidence-provider.d.ts +55 -37
  66. package/dist/evidence-provider.d.ts.map +1 -1
  67. package/dist/evidence-provider.js +182 -332
  68. package/dist/evidence-provider.js.map +1 -1
  69. package/dist/explain.d.ts +166 -27
  70. package/dist/explain.d.ts.map +1 -1
  71. package/dist/explain.js +372 -58
  72. package/dist/explain.js.map +1 -1
  73. package/dist/field-accounting.d.ts.map +1 -1
  74. package/dist/field-accounting.js +3 -22
  75. package/dist/field-accounting.js.map +1 -1
  76. package/dist/generate-schema.js +13 -8
  77. package/dist/generate-schema.js.map +1 -1
  78. package/dist/git-boundary.d.ts +128 -0
  79. package/dist/git-boundary.d.ts.map +1 -0
  80. package/dist/git-boundary.js +625 -0
  81. package/dist/git-boundary.js.map +1 -0
  82. package/dist/git-facts.d.ts +22 -0
  83. package/dist/git-facts.d.ts.map +1 -0
  84. package/dist/git-facts.js +29 -0
  85. package/dist/git-facts.js.map +1 -0
  86. package/dist/git-motion.d.ts +37 -0
  87. package/dist/git-motion.d.ts.map +1 -0
  88. package/dist/git-motion.js +59 -0
  89. package/dist/git-motion.js.map +1 -0
  90. package/dist/history.d.ts +44 -0
  91. package/dist/history.d.ts.map +1 -0
  92. package/dist/history.js +77 -0
  93. package/dist/history.js.map +1 -0
  94. package/dist/index.d.ts +19 -9
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +12 -4
  97. package/dist/index.js.map +1 -1
  98. package/dist/init.d.ts +16 -0
  99. package/dist/init.d.ts.map +1 -1
  100. package/dist/init.js +80 -14
  101. package/dist/init.js.map +1 -1
  102. package/dist/loop-compiler.d.ts +39 -23
  103. package/dist/loop-compiler.d.ts.map +1 -1
  104. package/dist/loop-compiler.js +368 -565
  105. package/dist/loop-compiler.js.map +1 -1
  106. package/dist/loop-store.d.ts +6 -5
  107. package/dist/loop-store.d.ts.map +1 -1
  108. package/dist/loop-store.js +153 -35
  109. package/dist/loop-store.js.map +1 -1
  110. package/dist/mcp/round-lifecycle.d.ts +255 -81
  111. package/dist/mcp/round-lifecycle.d.ts.map +1 -1
  112. package/dist/mcp/round-lifecycle.js +1552 -539
  113. package/dist/mcp/round-lifecycle.js.map +1 -1
  114. package/dist/mcp/server.d.ts.map +1 -1
  115. package/dist/mcp/server.js +42 -18
  116. package/dist/mcp/server.js.map +1 -1
  117. package/dist/mcp/session.d.ts +81 -39
  118. package/dist/mcp/session.d.ts.map +1 -1
  119. package/dist/mcp/session.js +956 -282
  120. package/dist/mcp/session.js.map +1 -1
  121. package/dist/mcp/submission-boundary.d.ts +23 -31
  122. package/dist/mcp/submission-boundary.d.ts.map +1 -1
  123. package/dist/mcp/submission-boundary.js +242 -92
  124. package/dist/mcp/submission-boundary.js.map +1 -1
  125. package/dist/mcp/submission-handle.d.ts +66 -0
  126. package/dist/mcp/submission-handle.d.ts.map +1 -0
  127. package/dist/mcp/submission-handle.js +173 -0
  128. package/dist/mcp/submission-handle.js.map +1 -0
  129. package/dist/mcp/tools.d.ts +17 -7
  130. package/dist/mcp/tools.d.ts.map +1 -1
  131. package/dist/mcp/tools.js +707 -244
  132. package/dist/mcp/tools.js.map +1 -1
  133. package/dist/open-question.d.ts +7 -0
  134. package/dist/open-question.d.ts.map +1 -0
  135. package/dist/open-question.js +14 -0
  136. package/dist/open-question.js.map +1 -0
  137. package/dist/policy-metrics.d.ts +31 -21
  138. package/dist/policy-metrics.d.ts.map +1 -1
  139. package/dist/policy-metrics.js +117 -64
  140. package/dist/policy-metrics.js.map +1 -1
  141. package/dist/policy.d.ts +11 -39
  142. package/dist/policy.d.ts.map +1 -1
  143. package/dist/policy.js +12 -12
  144. package/dist/policy.js.map +1 -1
  145. package/dist/progress.d.ts +45 -0
  146. package/dist/progress.d.ts.map +1 -0
  147. package/dist/progress.js +136 -0
  148. package/dist/progress.js.map +1 -0
  149. package/dist/prompt-assembler.d.ts +20 -6
  150. package/dist/prompt-assembler.d.ts.map +1 -1
  151. package/dist/prompt-assembler.js +475 -479
  152. package/dist/prompt-assembler.js.map +1 -1
  153. package/dist/prompt-coverage.d.ts +0 -6
  154. package/dist/prompt-coverage.d.ts.map +1 -1
  155. package/dist/prompt-coverage.js +4 -8
  156. package/dist/prompt-coverage.js.map +1 -1
  157. package/dist/prompt-freshness.d.ts +6 -17
  158. package/dist/prompt-freshness.d.ts.map +1 -1
  159. package/dist/prompt-freshness.js +27 -22
  160. package/dist/prompt-freshness.js.map +1 -1
  161. package/dist/prompt-policy.d.ts +14 -7
  162. package/dist/prompt-policy.d.ts.map +1 -1
  163. package/dist/prompt-policy.js +21 -5
  164. package/dist/prompt-policy.js.map +1 -1
  165. package/dist/protocol.d.ts +843 -424
  166. package/dist/protocol.d.ts.map +1 -1
  167. package/dist/protocol.js +73 -102
  168. package/dist/protocol.js.map +1 -1
  169. package/dist/recovery-guidance.d.ts +13 -0
  170. package/dist/recovery-guidance.d.ts.map +1 -0
  171. package/dist/recovery-guidance.js +15 -0
  172. package/dist/recovery-guidance.js.map +1 -0
  173. package/dist/recovery.d.ts +68 -0
  174. package/dist/recovery.d.ts.map +1 -0
  175. package/dist/recovery.js +234 -0
  176. package/dist/recovery.js.map +1 -0
  177. package/dist/replay.d.ts +42 -8
  178. package/dist/replay.d.ts.map +1 -1
  179. package/dist/replay.js +311 -84
  180. package/dist/replay.js.map +1 -1
  181. package/dist/result-facts.d.ts +45 -0
  182. package/dist/result-facts.d.ts.map +1 -0
  183. package/dist/result-facts.js +86 -0
  184. package/dist/result-facts.js.map +1 -0
  185. package/dist/round-contract.d.ts +38 -8
  186. package/dist/round-contract.d.ts.map +1 -1
  187. package/dist/round-contract.js +71 -31
  188. package/dist/round-contract.js.map +1 -1
  189. package/dist/round-coordinator.d.ts +41 -89
  190. package/dist/round-coordinator.d.ts.map +1 -1
  191. package/dist/round-coordinator.js +250 -267
  192. package/dist/round-coordinator.js.map +1 -1
  193. package/dist/round-driver.d.ts +56 -16
  194. package/dist/round-driver.d.ts.map +1 -1
  195. package/dist/round-driver.js +225 -39
  196. package/dist/round-driver.js.map +1 -1
  197. package/dist/round-facts.d.ts +33 -52
  198. package/dist/round-facts.d.ts.map +1 -1
  199. package/dist/round-facts.js +51 -160
  200. package/dist/round-facts.js.map +1 -1
  201. package/dist/round-guidance.d.ts +56 -0
  202. package/dist/round-guidance.d.ts.map +1 -0
  203. package/dist/round-guidance.js +161 -0
  204. package/dist/round-guidance.js.map +1 -0
  205. package/dist/round-outcome.d.ts +21 -0
  206. package/dist/round-outcome.d.ts.map +1 -0
  207. package/dist/round-outcome.js +31 -0
  208. package/dist/round-outcome.js.map +1 -0
  209. package/dist/round-transaction.d.ts +168 -21
  210. package/dist/round-transaction.d.ts.map +1 -1
  211. package/dist/round-transaction.js +837 -38
  212. package/dist/round-transaction.js.map +1 -1
  213. package/dist/self-eval.d.ts +37 -61
  214. package/dist/self-eval.d.ts.map +1 -1
  215. package/dist/self-eval.js +413 -392
  216. package/dist/self-eval.js.map +1 -1
  217. package/dist/storage.d.ts +16 -0
  218. package/dist/storage.d.ts.map +1 -1
  219. package/dist/storage.js +54 -4
  220. package/dist/storage.js.map +1 -1
  221. package/dist/subgoal-state.d.ts +2 -3
  222. package/dist/subgoal-state.d.ts.map +1 -1
  223. package/dist/subgoal-state.js +2 -3
  224. package/dist/subgoal-state.js.map +1 -1
  225. package/dist/submission-guidance.d.ts +29 -21
  226. package/dist/submission-guidance.d.ts.map +1 -1
  227. package/dist/submission-guidance.js +308 -260
  228. package/dist/submission-guidance.js.map +1 -1
  229. package/dist/submission-receipt.d.ts +16 -8
  230. package/dist/submission-receipt.d.ts.map +1 -1
  231. package/dist/submission-receipt.js +145 -51
  232. package/dist/submission-receipt.js.map +1 -1
  233. package/dist/token-utils.d.ts +28 -7
  234. package/dist/token-utils.d.ts.map +1 -1
  235. package/dist/token-utils.js +27 -11
  236. package/dist/token-utils.js.map +1 -1
  237. package/dist/transaction-identity.d.ts +9 -0
  238. package/dist/transaction-identity.d.ts.map +1 -0
  239. package/dist/transaction-identity.js +69 -0
  240. package/dist/transaction-identity.js.map +1 -0
  241. package/dist/verification-actions.d.ts.map +1 -1
  242. package/dist/verification-actions.js +10 -11
  243. package/dist/verification-actions.js.map +1 -1
  244. package/dist/verification-gate.d.ts +23 -47
  245. package/dist/verification-gate.d.ts.map +1 -1
  246. package/dist/verification-gate.js +202 -423
  247. package/dist/verification-gate.js.map +1 -1
  248. package/dist/version.d.ts +1 -1
  249. package/dist/version.js +1 -1
  250. package/dist/working-memory.d.ts +187 -0
  251. package/dist/working-memory.d.ts.map +1 -0
  252. package/dist/working-memory.js +767 -0
  253. package/dist/working-memory.js.map +1 -0
  254. package/dist/workspace-checkpoint.d.ts +88 -0
  255. package/dist/workspace-checkpoint.d.ts.map +1 -0
  256. package/dist/workspace-checkpoint.js +326 -0
  257. package/dist/workspace-checkpoint.js.map +1 -0
  258. package/dist/workspace-restore.d.ts +68 -0
  259. package/dist/workspace-restore.d.ts.map +1 -0
  260. package/dist/workspace-restore.js +604 -0
  261. package/dist/workspace-restore.js.map +1 -0
  262. package/dist/workspace.d.ts +0 -9
  263. package/dist/workspace.d.ts.map +1 -1
  264. package/dist/workspace.js +0 -17
  265. package/dist/workspace.js.map +1 -1
  266. package/loop_policy.json +4 -18
  267. package/package.json +68 -68
  268. package/skills/forge/SKILL.md +212 -0
  269. package/skills/forge/references/evidence-and-contracts.md +204 -0
  270. package/skills/forge/references/recovery-and-views.md +188 -0
  271. package/dist/cognitive-facts.d.ts +0 -30
  272. package/dist/cognitive-facts.d.ts.map +0 -1
  273. package/dist/cognitive-facts.js +0 -113
  274. package/dist/cognitive-facts.js.map +0 -1
  275. package/dist/loop-extras-parser.d.ts +0 -81
  276. package/dist/loop-extras-parser.d.ts.map +0 -1
  277. package/dist/loop-extras-parser.js +0 -213
  278. package/dist/loop-extras-parser.js.map +0 -1
  279. package/dist/loop-projection.d.ts +0 -6
  280. package/dist/loop-projection.d.ts.map +0 -1
  281. package/dist/loop-projection.js +0 -28
  282. package/dist/loop-projection.js.map +0 -1
  283. package/skills/perception/SKILL.md +0 -389
@@ -10,44 +10,30 @@
10
10
  * session ownership, queues, and leases remain in SessionManager.
11
11
  */
12
12
  import { LoopForgeEngine } from "../engine.js";
13
- import type { LoopForgeRequest, LoopForgeResponse, SelfEvaluation, SubmissionDiagnostic, SubmissionGuidance, SubmissionReceipt, VerificationFlag, ExternalContextProvider, LoopTerminalSink, RoundVerificationStatus } from "../protocol.js";
14
- import type { MachineObservation } from "../protocol.js";
13
+ import type { CheckpointRef, EvidencePosture, LoopCompileRequest, OperatorAcceptance, PromptContextMode, PromptContextReason, RecoveryRequest, RoundOutcome, SelfEvaluation, SubmissionDiagnostic, SubmissionGuidance, SubmissionHandle, SubmissionReceipt, VerificationFlag, LoopTerminalSink, StopReason } from "../protocol.js";
15
14
  import type { RoundTransactionSnapshot } from "../round-transaction.js";
15
+ import { FileWorkspaceCheckpointStore } from "../workspace-checkpoint.js";
16
16
  import type { LoopStore, VaultEntry } from "../loop-store.js";
17
- import type { SessionStateStore } from "../storage.js";
17
+ import type { SessionSaveOptions, SessionStateStore } from "../storage.js";
18
18
  export interface McpSession {
19
+ /** v4.0.4: a LIVE key inside this process. It is persisted and rebuilt by
20
+ * `loopforge_resume`/`autoResumeAll`, but it is not the durable identity:
21
+ * relationships and recovery use `loopId`. */
19
22
  sessionId: string;
23
+ /** The one durable loop identity. */
20
24
  loopId: string;
25
+ /** The compile-time task text; the immutable operator objective is a
26
+ * separate committed fact (`OperatorAcceptance`). */
21
27
  task: string;
22
28
  engine: LoopForgeEngine;
23
29
  currentRound: number;
24
30
  maxRounds: number;
25
- successTrajectory: boolean[];
26
31
  status: "running" | "stopped" | "stalled" | "paused";
27
32
  createdAt: number;
28
- /** Previous round's validated SelfEvaluation — used by verification gate. */
29
- lastSelfEval?: SelfEvaluation;
30
33
  consecutiveRejections: number;
31
34
  /** Which enforcement check triggered the last rejection.
32
35
  * Only same-check rejections accumulate toward the max. */
33
36
  lastRejectionCheck: string;
34
- /** v2.13: Files changed in skipped rounds during the last backtrack.
35
- * The next round's verification gate checks that the agent did not
36
- * continue working on stale files without restoring the workspace.
37
- * Cleared after the first successful post-backtrack round. */
38
- backtrackSkippedFiles: string[];
39
- /** M3 (v3.7.x): git fingerprint of each skipped file at its failed round
40
- * — machine proof for the workspace-restore check. Cleared with
41
- * backtrackSkippedFiles after the restore round. */
42
- backtrackSkippedFingerprints: Record<string, string>;
43
- /** v2.12: Git HEAD of the last backtrack restore point. The verification
44
- * gate checks the workspace returns to this commit before accepting.
45
- * Cleared after the first successful post-backtrack round. */
46
- backtrackTargetGitHead?: string;
47
- /** v3.9: files already dirty at that restore point — the baseline the
48
- * restored workspace is compared against, so unrelated work in progress
49
- * does not read as a failed restore. Cleared with the HEAD above. */
50
- backtrackTargetDirty?: string[];
51
37
  /** v3.8.3: the trusted round-start fingerprint of every enabled command's
52
38
  * entrypoint files, captured when the CURRENT in-flight round was prepared.
53
39
  *
@@ -57,20 +43,12 @@ export interface McpSession {
57
43
  * appears in and a re-derived baseline could launder. Absent means the
58
44
  * round runs without that arm — never a lost round. */
59
45
  entrypointTrust?: Record<string, string>;
60
- /** Evidence baseline captured immediately before the agent receives a prompt. */
61
- evidenceBaseline?: MachineObservation[];
46
+ /** v3.9.7: operator-owned immutable acceptance, carried as a session cursor
47
+ * so a recovery that clears the held snapshot cannot lose it. The root
48
+ * committed round-1 transaction remains the authority. */
49
+ operatorAcceptance?: OperatorAcceptance;
62
50
  /** Schema-versioned transaction for the prompt currently held by the agent. */
63
51
  roundSnapshot?: RoundTransactionSnapshot;
64
- /** Persisted prompt prevents resume from compiling the same round twice. */
65
- currentPrompt?: string | null;
66
- currentLevel?: string;
67
- /** Structured warnings from the most recent compile — preferred over regex parsing. */
68
- currentWarnings?: string[];
69
- /** v3.0.1: The full compile response of the current round, cached so the
70
- * typed projection (getProjection) derives from it instead of recompiling
71
- * the whole vault. Freshness is checked via loop_id + round; rebuilt by
72
- * every compile path. Not persisted — cold sessions fall back to compiling. */
73
- lastCompileResponse?: LoopForgeResponse | null;
74
52
  }
75
53
  export interface McpSessionSummary {
76
54
  sessionId: string;
@@ -82,13 +60,38 @@ export interface StartInput {
82
60
  task: string;
83
61
  loopId?: string;
84
62
  maxRounds?: number;
85
- domain?: string;
86
63
  planSource?: string;
87
64
  constraints?: string[];
88
65
  /** v3.9.4: initial local requirements, each becoming a stable `cr-*` anchor
89
66
  * in the objective. Omit to keep the default criterion. */
90
67
  criteria?: string[];
91
68
  }
69
+ /** v4.0.5: the host's invocation-level input. It is carried into ONE prompt
70
+ * compilation/artifact and never stored as loop task, acceptance, history or
71
+ * Working Memory. The host owns cross-process persistence. */
72
+ export interface InvocationInputs {
73
+ /** Trimmed, non-empty. An empty/whitespace value is `invalid_argument`. */
74
+ currentUserInstruction?: string;
75
+ }
76
+ /** v4.0.5: resume/unpause transport input. `invocationLost` is the host's
77
+ * declaration that the original in-context retry invocation is gone; it is
78
+ * never persisted and only changes the context reason of the SAME attempt. */
79
+ export interface ResumeInputs extends InvocationInputs {
80
+ invocationLost?: boolean;
81
+ }
82
+ /** v4.0.5: a structural defect in invocation input. The MCP handlers map this
83
+ * to `invalid_argument`; it is never a policy or round defect. */
84
+ export declare class InvocationInputError extends Error {
85
+ readonly code = "invalid_argument";
86
+ }
87
+ /** v4.0.5: normalize the invocation instruction at the transport boundary.
88
+ * `undefined`/absent stays absent ("not provided"); non-string or
89
+ * empty/whitespace is a structural defect. The trimmed text is stored
90
+ * verbatim — no case folding, no internal-whitespace folding. */
91
+ export declare function normalizeCurrentUserInstruction(raw: unknown): string | undefined;
92
+ /** v4.0.5: normalize a whole transport input bundle before any state is read
93
+ * or mutated. */
94
+ export declare function normalizeInvocationInputs<T extends InvocationInputs>(inputs?: T): T | undefined;
92
95
  /** v3.9.4: a structural defect in the start criteria argument. The MCP
93
96
  * handler maps this to `invalid_argument`; it is never a policy defect. */
94
97
  export declare class StartCriteriaError extends Error {
@@ -108,39 +111,97 @@ export declare function normalizeStartCriteria(raw: unknown): {
108
111
  criteria: string[];
109
112
  warnings: string[];
110
113
  };
114
+ /** v4.0.4: the terminal reason a manual `loopforge_stop` reports to the
115
+ * terminal sink and in its response. It is never persisted as a committed
116
+ * round fact, so status/resume after a restart still report "no committed
117
+ * terminal reason". One constant keeps the response and the sink aligned. */
118
+ export declare const MANUAL_STOP_REASON: "cancelled";
111
119
  export interface AdvanceResult {
112
120
  sessionId: string;
121
+ /** Durable loop identity, returned with the held prompt so a restarted
122
+ * agent can call `loopforge_resume` without reconstructing IDs. Absent on
123
+ * results that have no session (for example a missing-handle refusal). */
124
+ loopId?: string;
125
+ /** On a continue result this is the NEXT round being prepared; the
126
+ * `agentOutcome` field and the receipt describe the round that was just
127
+ * submitted. Use `submission_receipt.round_id` as the authoritative
128
+ * identity of the submitted round. */
113
129
  round: number;
114
- /** Stable logical identity; unchanged when enforcement retries the round. */
115
- roundId?: string;
130
+ /** v4.0.0: the ONE transport anchor for the held attempt. Derived from the
131
+ * persisted snapshot; never persisted itself. Absent on terminal results. */
132
+ submissionHandle?: SubmissionHandle;
133
+ /** v3.9.7: the held transaction's before-image + mid savepoints. */
134
+ checkpoints?: CheckpointRef[];
135
+ /** v3.9.7: explicit fact when the automatic before-image failed. */
136
+ beforeCheckpointError?: {
137
+ code: string;
138
+ detail: string;
139
+ };
116
140
  prompt: string | null;
117
- stopReason?: string;
141
+ /** v4.0.4: LoopForge's terminal reason. ONLY a `StopReason` — session
142
+ * state, handle/payload/session errors are reported through
143
+ * `sessionStatus`/`submissionError` and never masquerade as a stop reason. */
144
+ stopReason?: StopReason;
145
+ /** v4.0.4: the live session's status when the result is not a loop terminal
146
+ * reason. `paused`/`stopped`/`stalled` describe the SESSION, not a
147
+ * `StopReason`; `running` is present only where the caller needs the
148
+ * distinction. */
149
+ sessionStatus?: "running" | "stopped" | "paused" | "stalled";
118
150
  /** v2.0.1: Human-readable context for why the loop stopped.
119
151
  * Provides facts the agent can use to decide its next action,
120
152
  * without LoopForge prescribing a specific behavior. */
121
153
  stopDetail?: string;
122
154
  level?: string;
123
- roundSuccess?: boolean;
155
+ /** v4.0.2: the context boundary of the delivered prompt. Projected from the
156
+ * PromptArtifact, never re-derived by the lifecycle. Absent when this
157
+ * result carries no prompt. */
158
+ contextMode?: PromptContextMode;
159
+ contextReason?: PromptContextReason;
160
+ agentSuccessClaim?: boolean;
161
+ /** v4.0.6: the Agent-declared outcome of the round this result is about. */
162
+ agentOutcome?: RoundOutcome | null;
163
+ /** v4.0.4: the Agent's declared should_continue of the same round. */
164
+ agentShouldContinue?: boolean;
124
165
  warnings?: string[];
125
166
  /** v1.13: Enforcement action for this round. accept/reject/terminate.
126
167
  * When "reject", the prompt contains a rejection notice and the agent
127
168
  * must redo the same round. Round counter does NOT increment. */
128
- enforcementAction?: "accept" | "reject" | "terminate" | "backtrack";
129
- /** v3.8: The round-level verification posture — `trusted` when everything
130
- * claimed this round is machine-backed, `insufficient` when claims are
131
- * unbacked but nothing is denied, `contradicted` when a machine fact
132
- * denies a claim. Never a verdict about the agent's work quality. */
133
- verificationStatus?: RoundVerificationStatus;
169
+ enforcementAction?: "accept" | "reject" | "terminate" | "backtrack" | "recovery";
170
+ /** v4.0.3: the ONE evidence posture of the round this result is about.
171
+ * Accepted rounds carry the persisted posture; a rejection carries its
172
+ * transient copy. Never a verdict about the agent's work quality. */
173
+ evidencePosture?: EvidencePosture;
134
174
  /** v1.13: When enforcementAction is "reject" or "terminate", the reason
135
175
  * why the round was rejected or the loop was terminated. */
136
176
  enforcementReason?: string;
177
+ /** v3.9.7: the committed rollback directive facts and the verified restore
178
+ * that produced the redo prompt. The Agent does not restore the workspace;
179
+ * LoopForge already did. */
180
+ recovery?: {
181
+ origin: "agent" | "machine";
182
+ reason: string;
183
+ target_checkpoint_id: string;
184
+ redo_round: number;
185
+ restore: {
186
+ status: "verified";
187
+ head?: string;
188
+ previous_head?: string;
189
+ safety_ref?: string;
190
+ files_written: number;
191
+ files_deleted: number;
192
+ verified_at: number;
193
+ };
194
+ };
137
195
  /** v3.8.1: set when the RUNTIME refused the submission before touching any
138
196
  * state — the same `ToolErrorCode` as `stopReason`, plus the structured
139
197
  * details a transport maps onto its error envelope. Produced by
140
198
  * `validateSubmission` in submission-boundary.ts, which SessionManager
141
199
  * runs before its queue and lease heartbeat. */
142
200
  submissionError?: {
143
- code: "evaluation_invalid" | "contract_invalid";
201
+ code: "evaluation_invalid" | "contract_invalid" | "invalid_argument" | "session_not_found" | "submission_handle_required" | "submission_handle_mismatch" | "recovery_invalid" | "recovery_disabled" | "recovery_unavailable" | "checkpoint_invalid" | "checkpoint_unavailable" | "checkpoint_failed" | "checkpoint_limit" | "restore_failed" | "restore_pending"
202
+ /** v4.0.4: another live process owns the session lease; this is a
203
+ * session error, not a loop terminal reason. */
204
+ | "lease_conflict";
144
205
  details: Record<string, unknown>;
145
206
  };
146
207
  /** v3.9.4: a prompt-projection code defect. This is NOT a submission
@@ -175,10 +236,13 @@ export interface RoundLifecycleDeps {
175
236
  ownerId: string;
176
237
  /** Session lease duration; stamped into saved session entries. */
177
238
  leaseMs: number;
178
- /** Live accessor for the mutable contextProvider field on SessionManager. */
179
- getContext: () => ExternalContextProvider | undefined;
239
+ /** v3.9.7: per-loop checkpoint store. Absent disables automatic
240
+ * before-images (the round still runs with an explicit error fact). */
241
+ checkpointStoreFor?: (loopId: string) => FileWorkspaceCheckpointStore | undefined;
180
242
  }
181
- export declare function buildLoopRequest(session: McpSession): LoopForgeRequest;
243
+ export declare function buildLoopRequest(session: McpSession,
244
+ /** v4.0.5: the host's explicit invocation input for THIS compile. */
245
+ inputs?: InvocationInputs): LoopCompileRequest;
182
246
  export declare class RoundLifecycle {
183
247
  private readonly store;
184
248
  private readonly sessionStore;
@@ -186,19 +250,30 @@ export declare class RoundLifecycle {
186
250
  private readonly terminalSinks;
187
251
  private readonly ownerId;
188
252
  private readonly leaseMs;
189
- private readonly getContext;
253
+ private readonly checkpointStoreFor;
190
254
  constructor(deps: RoundLifecycleDeps);
255
+ /** v3.9.7: the one RoundDriver construction site. Every prepare must carry
256
+ * the per-loop checkpoint store, or no round can produce a before-image. */
257
+ private driver;
191
258
  /** v3.9.1: the submission-guidance projection for a session's held round.
192
- * One history window (`derivationRounds`, the compile window), no writes.
259
+ * One history read and one compile window, no writes.
193
260
  * Findings from a rejected/retried attempt are supplied by the caller. */
194
261
  guidanceFor(session: McpSession, extras?: {
195
262
  verificationFlags?: ReadonlyArray<VerificationFlag>;
196
263
  recovery?: {
197
- required: boolean;
198
- restore_point?: number;
199
- target_head?: string;
264
+ pending: boolean;
265
+ redo_round: number;
266
+ checkpoint_id: string;
267
+ restore_verified: boolean;
268
+ origin?: "agent" | "machine";
269
+ reason?: string;
200
270
  } | null;
201
271
  }): SubmissionGuidance;
272
+ /** The operator criteria the held prompt's reference space was built from.
273
+ * The held acceptance wins; committed objective lineage is the fallback for
274
+ * a session whose snapshot predates the acceptance field. Null when neither
275
+ * is observable — callers fail open. */
276
+ private objectiveCriteriaFor;
202
277
  /** v3.9.1: the before facts of the round being submitted, from the SAME
203
278
  * history window the compile uses. Works on a replay too: rounds below the
204
279
  * logical round exclude the round itself. */
@@ -209,7 +284,7 @@ export declare class RoundLifecycle {
209
284
  /** Persist session state to vault for cross-process recovery.
210
285
  * The filtered vault and replacement entry are written once under the
211
286
  * backend lock, so recovery never observes the old two-write gap. */
212
- save(session: McpSession): void;
287
+ save(session: McpSession, options?: SessionSaveOptions): void;
213
288
  /** Reconstruct a McpSession from a vault session_state entry.
214
289
  * Returns null if the entry is not "running" status.
215
290
  * Shared by resume() and autoResumeAll(). */
@@ -240,25 +315,101 @@ export declare class RoundLifecycle {
240
315
  *
241
316
  * Best-effort: an unreadable policy or an unresolvable command must leave
242
317
  * the round without the absolute arm, not fail the preparation. */
243
- private seedEntrypointTrust;
318
+ /** v4.0.3: seed the round-start entrypoint baseline. Public so the start
319
+ * path can seed BEFORE the first prompt is delivered; a missing baseline
320
+ * must never be re-derived from an already-modified workspace. */
321
+ seedEntrypointTrust(session: McpSession): void;
322
+ /** v4.0.3: warnings for a resumed round whose trusted baseline is absent.
323
+ * The workspace may already have been modified; re-capturing it would
324
+ * launder the change, so the round runs with the Git-delta arm only. */
325
+ private resumeWarnings;
326
+ /** v3.9.7: operator acceptance and branch identity travel with the session
327
+ * cursor (not only the held snapshot). Every prepare carries them forward;
328
+ * a recovery that clears the held snapshot must not reset the branch to
329
+ * root or lose the operator's acceptance surface. */
330
+ private prepareOptions;
244
331
  private persistPrepared;
245
- private restoredPromptResult;
332
+ /** v4.0.2: the context boundary carried by a prompt-bearing result. It is
333
+ * a PROJECTION of the artifact that produced the prompt — never a second
334
+ * derivation from live session state. */
335
+ private contextFacts;
336
+ /** v3.9.7: execution metadata attached to every held/prepared prompt. These
337
+ * are transport facts, never prompt governance content. v4.0.0: the anchor
338
+ * itself is the separate `submissionHandle`; this bundle owns only the
339
+ * checkpoint facts. */
340
+ private transactionFacts;
341
+ /** v4.0.0: the transport handle for the current held snapshot, or absent. */
342
+ private heldHandle;
343
+ /** v3.9.7: guidance facts for a redo whose restore is already verified.
344
+ * They are derived from the still-pending committed directive, so a
345
+ * restart returns the same surface as the original recovery response. */
346
+ private pendingRecoveryGuidance;
347
+ /** v4.0.0: return the exact stored prompt plus the CURRENT handle. This is
348
+ * the ONE path that re-delivers a prompt without compiling. It fails closed
349
+ * unless the full held predicate holds (phase, round, attempt, rendered
350
+ * prompt), so a committed/terminated/retrying snapshot can never masquerade
351
+ * as held. The warning is appended without mutating the artifact. Public so
352
+ * SessionManager can use it on its pre-queue stale-handle path. */
353
+ heldPromptResult(session: McpSession, warning?: string): AdvanceResult | null;
246
354
  /** Reconcile the crash window where feedback committed but session_state
247
355
  * still points at the old prompt. Returns null when no commit is pending.
248
356
  * v3.7: async — the continue-after-crash branch compiles through
249
357
  * RoundDriver.prepare (the sync prepareSync fallback was removed). */
250
358
  private reconcileCommittedRound;
359
+ /** v3.9.7: a committed directive with no verified redo snapshot must be
360
+ * completed BEFORE any ordinary compile/held-prompt path. The restore and
361
+ * redo prepare are idempotent; a verified held redo prompt is returned
362
+ * without re-checking the workspace (the Agent may already have worked). */
363
+ private completePendingRecovery;
364
+ /** v4.0.5: the zero-side-effect refusal for a cold handoff whose held retry
365
+ * facts are missing or inconsistent. Nothing is saved, compiled or
366
+ * advanced; the held snapshot and handle are unchanged. */
367
+ private invocationRecoveryUnavailable;
368
+ /** v4.0.5: map a compile failure onto the existing stalled/coverage result.
369
+ * Returns null for an unexpected error so the caller can rethrow it. */
370
+ private compileStalledResult;
371
+ /** v4.0.5: ONE held-prompt entry for resume/unpause/recovery. With no new
372
+ * instruction it re-delivers the stored prompt and handle unchanged; with a
373
+ * new instruction it recompiles the SAME round/attempt and preserves the
374
+ * held context boundary (including an existing invocation recovery). */
375
+ private heldPromptWithInputs;
376
+ /** v4.0.5: the public `loopforge_next` instruction-recompile entry. It only
377
+ * recompiles the held prompt for a new invocation instruction: no
378
+ * submission, no round/attempt change, no evidence collection. The handle
379
+ * was validated by SessionManager before its queue and lease heartbeat. */
380
+ recompileHeldWithInstruction(session: McpSession, instruction: string): Promise<AdvanceResult>;
381
+ /** v4.0.5: compile a held prompt again without collecting evidence, writing
382
+ * the Vault, changing attempt/round or touching retry counters. */
383
+ private recompileHeldPrompt;
384
+ /** v4.0.5: compile the retry prompt for a rejected attempt that has no held
385
+ * prompt (its retry compile failed before). This is the one path that
386
+ * creates the next attempt for such a session. */
387
+ private prepareRetryWithInputs;
388
+ /** v4.0.5: recompile the SAME retry attempt when the host declared the
389
+ * original invocation lost, or when a submitted retry prompt never existed
390
+ * (rejected snapshot). Returns null when this session has no retry material
391
+ * or when the held prompt is already a clean context (idempotent no-op). */
392
+ private recompileRetryAttempt;
393
+ /** A rejected round still owns its original before-image. Recover its next
394
+ * attempt through the same retry preparation used by a live rejection;
395
+ * ordinary prepare would recapture evidence and reset snapshot.attempt.
396
+ * v4.0.5: the instruction travels with the compile and is inherited from
397
+ * the rejected prompt within the same logical round. */
398
+ private prepareMissingPrompt;
251
399
  /** Resume tail: the session has been reconstructed and registered. Reconcile
252
400
  * a committed-but-undelivered round, restore the held prompt, or recover a
253
401
  * missing prompt from current round state. v3.7: async — compilation runs
254
402
  * through RoundDriver.prepare like unpause (the prepareSync fallback was
255
403
  * removed); a failed compile now degrades to the same stalled terminal
256
- * result unpause returns instead of persisting a null prompt. */
257
- resume(session: McpSession): Promise<AdvanceResult>;
404
+ * result unpause returns instead of persisting a null prompt.
405
+ * v4.0.5: an `invocationLost` retry is recompiled as a cold-context prompt
406
+ * for the SAME logical round/attempt, before the ordinary held-prompt path. */
407
+ resume(session: McpSession, inputs?: ResumeInputs): Promise<AdvanceResult>;
258
408
  /** Unpause tail: the session has been reconstructed and registered with
259
- * status "running". Refresh async evidence, reconcile a committed round,
260
- * restore the held prompt, or compile the next prompt. */
261
- unpause(session: McpSession): Promise<AdvanceResult>;
409
+ * status "running". Reconcile a committed round, restore the held prompt,
410
+ * or compile the next prompt from the committed window. v4.0.5: the same
411
+ * invocation inputs and cold-handoff recompile apply here. */
412
+ unpause(session: McpSession, inputs?: ResumeInputs): Promise<AdvanceResult>;
262
413
  /** Record a gate_opened entry when an accepted round reports a high-risk
263
414
  * blocker (USER_RISK hit). Idempotent per gate. The gate is a record
264
415
  * layer — it never blocks the round decision flow. */
@@ -270,20 +421,35 @@ export declare class RoundLifecycle {
270
421
  private extractEvaluation;
271
422
  /** Execute the round transaction and apply per-rule rejection tracking.
272
423
  * MUTATES: session.roundSnapshot, session.consecutiveRejections,
273
- * session.lastRejectionCheck, session.lastSelfEval,
274
- * session.successTrajectory */
424
+ * session.lastRejectionCheck */
275
425
  private executeRoundTransaction;
276
426
  /** Build a rejection result: compile a retry prompt, persist, return.
277
427
  * MUTATES: session.roundSnapshot, session.currentPrompt, session.currentLevel */
278
428
  private buildRejectionResult;
279
- /** v2.10: Build a backtrack result — roll back to last clean round.
280
- * Resets the round counter to the restore target + 1, merges preserved
281
- * discoveries, compiles from the restored state, and injects the
282
- * backtrack prompt at the top.
283
- * MUTATES: session.currentRound, session.roundSnapshot,
284
- * session.currentPrompt, session.currentLevel,
285
- * session.consecutiveRejections, session.lastSelfEval */
429
+ /** v3.9.7: the workspace/state-dir facts shared by restore preflight and
430
+ * execution. The state directory is never part of the restored boundary. */
431
+ private restoreContext;
432
+ /** Execute the committed directive's restore, verify it, then compile the
433
+ * redo from the SAME baseline. The directive is never rewritten. */
434
+ private runRestoreAndPrepare;
435
+ /** Failed restore: the directive remains pending, no prompt exists, and the
436
+ * session is resumable. */
437
+ private restoreFailedResult;
438
+ /** v2.10: Build a backtrack result. The directive is already committed;
439
+ * LoopForge executes and verifies the restore, then compiles the redo from
440
+ * the verified baseline. A failed restore leaves the directive pending and
441
+ * the session stalled — no redo prompt is ever issued unverified. */
286
442
  private buildBacktrackResult;
443
+ /** v4.0.4: the ONE terminal stop-detail formatter. Live stop, termination,
444
+ * crash-recovered stop and resume-of-stopped read the same three fact
445
+ * blocks; a committed fact is described identically on every path. */
446
+ private terminalFacts;
447
+ /** v4.0.4: the terminal result of an already-stopped loop, built from
448
+ * committed history. This is the ONE read path for `resume` of a stopped
449
+ * loop: it reports the committed `StopReason` and renders the same three
450
+ * fact blocks as a live stop. A loop with no committed stop round reports
451
+ * the session status and says so instead of inventing a reason. */
452
+ stoppedLoopResult(loopId: string, currentRound: number): AdvanceResult;
287
453
  /** Build a termination result: persist stopped status, notify sinks.
288
454
  * MUTATES: session.status, session.currentPrompt
289
455
  *
@@ -302,20 +468,28 @@ export declare class RoundLifecycle {
302
468
  * session.evidenceBaseline, session.roundSnapshot */
303
469
  private advanceToNextRound;
304
470
  /** M4: mark a session stalled after its round committed but the next
305
- * prompt could not be prepared/persisted — mirrors the crash-recovery
306
- * siblings (reconcileCommittedRound / resume / reject paths). The
307
- * committed round stays held (roundSnapshot untouched) so a resubmission
308
- * with the same roundId replays it and recompiles the next round. */
471
+ * prompt could not be prepared/persisted. v4.0.0: the committed snapshot is
472
+ * NOT a held prompt, so this result carries no handle; the Agent must call
473
+ * `loopforge_resume`, which reconciles the commit and compiles the next
474
+ * prompt. Re-submitting an old handle can never resurrect the old round. */
309
475
  private stalledAfterCommit;
310
476
  private advanceUnlocked;
477
+ /** v3.9.6: Agent-initiated recovery. The Agent selects the target; this
478
+ * method only validates it against committed facts, records the rollback
479
+ * directive and compiles the redo. It never runs ordinary verification or
480
+ * enforcement on the abandoned work. */
481
+ recover(sessionId: string, recovery: RecoveryRequest, inputs?: InvocationInputs): Promise<AdvanceResult>;
482
+ /** Execute the committed directive's restore and return the redo prompt. */
483
+ private restoreAndPrepareRedo;
311
484
  /** Core cycle entry used by SessionManager.advance after the queue + lease
312
485
  * dance: validate → extract → execute transaction → route disposition
313
486
  * → advance to next round (continue) or return terminal result.
314
- * @param roundId v3.0.1: the roundId of the round this submission reports
315
- * on (from the last start/next/resume response). Anchors the submission;
316
- * a stale or duplicate submission returns the held prompt instead of
317
- * being processed. Optional — when absent the anchor check is skipped. */
318
- advance(sessionId: string, output: string, preExtractedEval?: SelfEvaluation, roundId?: string, normalizationDiagnostics?: SubmissionDiagnostic[], submittedFields?: string[]): Promise<AdvanceResult>;
487
+ * v4.0.0: the submission identity (the exact held transaction) is validated
488
+ * by SessionManager before its queue and lease heartbeat. This entry point
489
+ * owns the round state machine and does not re-check anchors. */
490
+ advance(sessionId: string, output: string, preExtractedEval?: SelfEvaluation, normalizationDiagnostics?: SubmissionDiagnostic[], submittedFields?: string[],
491
+ /** v4.0.5: invocation input for the prompt compiled after this submission. */
492
+ inputs?: InvocationInputs): Promise<AdvanceResult>;
319
493
  /** Write back loop knowledge to long-term memory.
320
494
  * Uses shared base builder from policy.ts. Called when a loop terminates. */
321
495
  notifyTerminal(session: McpSession, stopReason: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"round-lifecycle.d.ts","sourceRoot":"","sources":["../../src/mcp/round-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"round-lifecycle.d.ts","sourceRoot":"","sources":["../../src/mcp/round-lifecycle.ts"],"names":[],"mappings":"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"}