loopforge 1.3.1 → 1.8.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 (91) hide show
  1. package/README.md +64 -3
  2. package/dist/backends/fs.d.ts +5 -0
  3. package/dist/backends/fs.d.ts.map +1 -1
  4. package/dist/backends/fs.js +66 -16
  5. package/dist/backends/fs.js.map +1 -1
  6. package/dist/builder.d.ts +0 -1
  7. package/dist/builder.d.ts.map +1 -1
  8. package/dist/builder.js +14 -25
  9. package/dist/builder.js.map +1 -1
  10. package/dist/engine.d.ts +28 -5
  11. package/dist/engine.d.ts.map +1 -1
  12. package/dist/engine.js +303 -105
  13. package/dist/engine.js.map +1 -1
  14. package/dist/index.d.ts +9 -12
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +7 -10
  17. package/dist/index.js.map +1 -1
  18. package/dist/loop-compiler.d.ts +28 -2
  19. package/dist/loop-compiler.d.ts.map +1 -1
  20. package/dist/loop-compiler.js +718 -38
  21. package/dist/loop-compiler.js.map +1 -1
  22. package/dist/mcp/server.d.ts.map +1 -1
  23. package/dist/mcp/server.js +6 -4
  24. package/dist/mcp/server.js.map +1 -1
  25. package/dist/mcp/session.d.ts +24 -4
  26. package/dist/mcp/session.d.ts.map +1 -1
  27. package/dist/mcp/session.js +303 -34
  28. package/dist/mcp/session.js.map +1 -1
  29. package/dist/mcp/tools.d.ts +165 -1
  30. package/dist/mcp/tools.d.ts.map +1 -1
  31. package/dist/mcp/tools.js +144 -15
  32. package/dist/mcp/tools.js.map +1 -1
  33. package/dist/memory-bridge.d.ts +47 -0
  34. package/dist/memory-bridge.d.ts.map +1 -0
  35. package/dist/memory-bridge.js +290 -0
  36. package/dist/memory-bridge.js.map +1 -0
  37. package/dist/observability.d.ts +23 -0
  38. package/dist/observability.d.ts.map +1 -0
  39. package/dist/observability.js +29 -0
  40. package/dist/observability.js.map +1 -0
  41. package/dist/policy.d.ts +72 -0
  42. package/dist/policy.d.ts.map +1 -1
  43. package/dist/policy.js +44 -0
  44. package/dist/policy.js.map +1 -1
  45. package/dist/protocol.d.ts +197 -7
  46. package/dist/protocol.d.ts.map +1 -1
  47. package/dist/protocol.js +48 -5
  48. package/dist/protocol.js.map +1 -1
  49. package/dist/runtime.d.ts +19 -0
  50. package/dist/runtime.d.ts.map +1 -1
  51. package/dist/runtime.js +446 -142
  52. package/dist/runtime.js.map +1 -1
  53. package/dist/tests/builder.test.js +1 -25
  54. package/dist/tests/builder.test.js.map +1 -1
  55. package/dist/tests/engine.test.js +213 -38
  56. package/dist/tests/engine.test.js.map +1 -1
  57. package/dist/tests/generate-schema.test.js +4 -4
  58. package/dist/tests/generate-schema.test.js.map +1 -1
  59. package/dist/tests/loop-compiler.test.js +427 -2
  60. package/dist/tests/loop-compiler.test.js.map +1 -1
  61. package/dist/tests/mcp.test.js +166 -79
  62. package/dist/tests/mcp.test.js.map +1 -1
  63. package/dist/tests/memory-bridge.test.d.ts +8 -0
  64. package/dist/tests/memory-bridge.test.d.ts.map +1 -0
  65. package/dist/tests/memory-bridge.test.js +384 -0
  66. package/dist/tests/memory-bridge.test.js.map +1 -0
  67. package/dist/tests/protocol.test.js +14 -5
  68. package/dist/tests/protocol.test.js.map +1 -1
  69. package/dist/tests/verification-gate.test.d.ts +2 -0
  70. package/dist/tests/verification-gate.test.d.ts.map +1 -0
  71. package/dist/tests/verification-gate.test.js +407 -0
  72. package/dist/tests/verification-gate.test.js.map +1 -0
  73. package/dist/verification-gate.d.ts +26 -0
  74. package/dist/verification-gate.d.ts.map +1 -0
  75. package/dist/verification-gate.js +232 -0
  76. package/dist/verification-gate.js.map +1 -0
  77. package/loop_policy.json +31 -0
  78. package/package.json +1 -2
  79. package/skills/perception/SKILL.md +147 -55
  80. package/dist/adapter.d.ts +0 -17
  81. package/dist/adapter.d.ts.map +0 -1
  82. package/dist/adapter.js +0 -228
  83. package/dist/adapter.js.map +0 -1
  84. package/dist/cli.d.ts +0 -7
  85. package/dist/cli.d.ts.map +0 -1
  86. package/dist/cli.js +0 -458
  87. package/dist/cli.js.map +0 -1
  88. package/dist/tests/adapter.test.d.ts +0 -2
  89. package/dist/tests/adapter.test.d.ts.map +0 -1
  90. package/dist/tests/adapter.test.js +0 -104
  91. package/dist/tests/adapter.test.js.map +0 -1
@@ -29,13 +29,22 @@ function agentOutput(opts) {
29
29
  function agentOutputNoEval(body) {
30
30
  return body ?? "## Round Output\n\nTask done. No eval block here.";
31
31
  }
32
+ /** Build a structured evaluation object for the evaluation parameter of loopforge_next. */
33
+ function evalParam(opts) {
34
+ return {
35
+ success: opts.success ?? true,
36
+ output_summary: opts.body ?? "Completed the task successfully.",
37
+ constraint_violations: opts.violations ?? [],
38
+ should_continue: opts.shouldContinue ?? true,
39
+ };
40
+ }
32
41
  import { SessionManager } from "../mcp/session.js";
33
42
  import { TOOL_HANDLERS } from "../mcp/tools.js";
34
43
  import { resetPolicy } from "../policy.js";
35
44
  // ═══════════════════════════════════════════════════════════════════════════
36
45
  // Tests
37
46
  // ═══════════════════════════════════════════════════════════════════════════
38
- describe("MCP — loopforge_start", () => {
47
+ describe("MCP — loopforge_start", async () => {
39
48
  let backend;
40
49
  let mgr;
41
50
  beforeEach(() => {
@@ -43,8 +52,8 @@ describe("MCP — loopforge_start", () => {
43
52
  backend = new MemoryBackend();
44
53
  mgr = new SessionManager(backend);
45
54
  });
46
- it("returns sessionId + Round 1 prompt (L2 compile)", () => {
47
- const result = TOOL_HANDLERS.loopforge_start(mgr, { task: "Audit ERC20 token" });
55
+ it("returns sessionId + Round 1 prompt (L2 compile)", async () => {
56
+ const result = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Audit ERC20 token" });
48
57
  assert.equal(typeof result.sessionId, "string");
49
58
  assert.ok(result.sessionId.length > 0);
50
59
  assert.equal(result.round, 1);
@@ -55,7 +64,7 @@ describe("MCP — loopforge_start", () => {
55
64
  assert.equal(typeof result.level, "string");
56
65
  });
57
66
  });
58
- describe("MCP — multi-round lifecycle", () => {
67
+ describe("MCP — multi-round lifecycle", async () => {
59
68
  let backend;
60
69
  let mgr;
61
70
  beforeEach(() => {
@@ -63,15 +72,15 @@ describe("MCP — multi-round lifecycle", () => {
63
72
  backend = new MemoryBackend();
64
73
  mgr = new SessionManager(backend);
65
74
  });
66
- it("start → next × 3 → task_complete", () => {
75
+ it("start → next × 3 → task_complete", async () => {
67
76
  // Round 1
68
- const start = TOOL_HANDLERS.loopforge_start(mgr, {
77
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, {
69
78
  task: "Audit ERC20",
70
79
  maxRounds: 20,
71
80
  });
72
81
  const sessionId = String(start.sessionId);
73
82
  // Round 1 → 2 (ascending quality [2, ...] avoids breaker)
74
- const r1 = TOOL_HANDLERS.loopforge_next(mgr, {
83
+ const r1 = await TOOL_HANDLERS.loopforge_next(mgr, {
75
84
  sessionId,
76
85
  output: agentOutput({ success: false, violations: ["missed check"], shouldContinue: true }),
77
86
  });
@@ -79,14 +88,14 @@ describe("MCP — multi-round lifecycle", () => {
79
88
  assert.equal(r1.round, 2);
80
89
  assert.ok(typeof r1.prompt === "string");
81
90
  // Round 2 → 3 (quality 5)
82
- const r2 = TOOL_HANDLERS.loopforge_next(mgr, {
91
+ const r2 = await TOOL_HANDLERS.loopforge_next(mgr, {
83
92
  sessionId,
84
93
  output: agentOutput({ success: true, shouldContinue: true }),
85
94
  });
86
95
  assert.equal(r2.stopReason, undefined, "round 3 should not stop");
87
96
  assert.equal(r2.round, 3);
88
97
  // Round 3 → stop (should_continue: false)
89
- const r3 = TOOL_HANDLERS.loopforge_next(mgr, {
98
+ const r3 = await TOOL_HANDLERS.loopforge_next(mgr, {
90
99
  sessionId,
91
100
  output: agentOutput({ success: true, shouldContinue: false }),
92
101
  });
@@ -94,52 +103,52 @@ describe("MCP — multi-round lifecycle", () => {
94
103
  assert.equal(r3.stopReason, "task_complete");
95
104
  assert.equal(r3.round, 3);
96
105
  });
97
- it("next without eval block → stalled", () => {
98
- const start = TOOL_HANDLERS.loopforge_start(mgr, { task: "Test stalled" });
106
+ it("next without eval block → stalled", async () => {
107
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Test stalled" });
99
108
  const sessionId = String(start.sessionId);
100
- const result = TOOL_HANDLERS.loopforge_next(mgr, {
109
+ const result = await TOOL_HANDLERS.loopforge_next(mgr, {
101
110
  sessionId,
102
111
  output: agentOutputNoEval(),
103
112
  });
104
113
  assert.equal(result.prompt, null);
105
114
  assert.equal(result.stopReason, "stalled");
106
115
  });
107
- it("next with consecutive flat quality → circuit_breaker", () => {
108
- const start = TOOL_HANDLERS.loopforge_start(mgr, {
116
+ it("next with consecutive flat quality → circuit_breaker", async () => {
117
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, {
109
118
  task: "Breaker test",
110
119
  maxRounds: 20,
111
120
  });
112
121
  const sessionId = String(start.sessionId);
113
122
  // 3 rounds of identical high quality = [5, 5, 5] → breaker fires
114
- TOOL_HANDLERS.loopforge_next(mgr, {
123
+ await TOOL_HANDLERS.loopforge_next(mgr, {
115
124
  sessionId,
116
125
  output: agentOutput({ success: true, shouldContinue: true }),
117
126
  });
118
- TOOL_HANDLERS.loopforge_next(mgr, {
127
+ await TOOL_HANDLERS.loopforge_next(mgr, {
119
128
  sessionId,
120
129
  output: agentOutput({ success: true, shouldContinue: true }),
121
130
  });
122
- const r3 = TOOL_HANDLERS.loopforge_next(mgr, {
131
+ const r3 = await TOOL_HANDLERS.loopforge_next(mgr, {
123
132
  sessionId,
124
133
  output: agentOutput({ success: true, shouldContinue: true }),
125
134
  });
126
135
  assert.equal(r3.prompt, null);
127
136
  assert.equal(r3.stopReason, "circuit_breaker");
128
137
  });
129
- it("next at maxRounds stops", () => {
130
- const start = TOOL_HANDLERS.loopforge_start(mgr, {
138
+ it("next at maxRounds stops", async () => {
139
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, {
131
140
  task: "Short loop",
132
141
  maxRounds: 2,
133
142
  });
134
143
  const sessionId = String(start.sessionId);
135
144
  // Round 1 → 2 (use ascending quality to avoid breaker)
136
- const r1 = TOOL_HANDLERS.loopforge_next(mgr, {
145
+ const r1 = await TOOL_HANDLERS.loopforge_next(mgr, {
137
146
  sessionId,
138
147
  output: agentOutput({ success: false, violations: ["x"], shouldContinue: true }),
139
148
  });
140
149
  assert.equal(r1.stopReason, undefined);
141
150
  // Round 2 → stop (maxRounds reached)
142
- const r2 = TOOL_HANDLERS.loopforge_next(mgr, {
151
+ const r2 = await TOOL_HANDLERS.loopforge_next(mgr, {
143
152
  sessionId,
144
153
  output: agentOutput({ success: true, shouldContinue: true }),
145
154
  });
@@ -147,8 +156,86 @@ describe("MCP — multi-round lifecycle", () => {
147
156
  assert.equal(r2.stopReason, "max_rounds");
148
157
  assert.equal(r2.round, 2);
149
158
  });
159
+ // ── New: evaluation parameter tests ──────────────────────────────────
160
+ it("next with evaluation parameter (no output) → advances normally", async () => {
161
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Eval param test" });
162
+ const sessionId = String(start.sessionId);
163
+ const r1 = await TOOL_HANDLERS.loopforge_next(mgr, {
164
+ sessionId,
165
+ evaluation: evalParam({ success: true, shouldContinue: true }),
166
+ });
167
+ assert.equal(r1.stopReason, undefined, "should advance without output");
168
+ assert.equal(r1.round, 2);
169
+ assert.ok(typeof r1.prompt === "string");
170
+ });
171
+ it("next with evaluation parameter + output → advances normally", async () => {
172
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Both sources test" });
173
+ const sessionId = String(start.sessionId);
174
+ const r1 = await TOOL_HANDLERS.loopforge_next(mgr, {
175
+ sessionId,
176
+ output: "Some raw output text without eval block",
177
+ evaluation: evalParam({ success: false, violations: ["v1"], shouldContinue: true }),
178
+ });
179
+ assert.equal(r1.stopReason, undefined);
180
+ assert.equal(r1.round, 2);
181
+ });
182
+ it("next with evaluation → task_complete when shouldContinue=false", async () => {
183
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Eval complete test" });
184
+ const sessionId = String(start.sessionId);
185
+ const r1 = await TOOL_HANDLERS.loopforge_next(mgr, {
186
+ sessionId,
187
+ evaluation: evalParam({ success: true, shouldContinue: false }),
188
+ });
189
+ assert.equal(r1.prompt, null);
190
+ assert.equal(r1.stopReason, "task_complete");
191
+ });
192
+ it("next without evaluation or eval block in output → stalled", async () => {
193
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "No eval stall" });
194
+ const sessionId = String(start.sessionId);
195
+ const result = await TOOL_HANDLERS.loopforge_next(mgr, {
196
+ sessionId,
197
+ output: agentOutputNoEval("Just some text without any eval"),
198
+ });
199
+ assert.equal(result.prompt, null);
200
+ assert.equal(result.stopReason, "stalled");
201
+ });
202
+ it("next with evaluation parameter (multi-round with discoveries)", async () => {
203
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Multi-round eval test" });
204
+ const sessionId = String(start.sessionId);
205
+ // Round 1 → 2 with discovered constraints
206
+ const r1 = await TOOL_HANDLERS.loopforge_next(mgr, {
207
+ sessionId,
208
+ evaluation: {
209
+ success: false,
210
+ output_summary: "Found 2 reentrancy bugs, fixed 1.",
211
+ constraint_violations: [],
212
+ should_continue: true,
213
+ discovered_constraints: ["All external calls must use SafeERC20"],
214
+ execution_evidence: {
215
+ files_changed: ["Token.sol"],
216
+ test_results: { passed: 20, failed: 2, skipped: 0 },
217
+ success_criteria_met: ["Reentrancy guard added to withdraw()"],
218
+ success_criteria_remaining: ["Reentrancy guard for deposit()", "Access control audit"],
219
+ progress_estimate: 0.4,
220
+ },
221
+ },
222
+ });
223
+ assert.equal(r1.stopReason, undefined);
224
+ // Round 2 → stop
225
+ const r2 = await TOOL_HANDLERS.loopforge_next(mgr, {
226
+ sessionId,
227
+ evaluation: {
228
+ success: true,
229
+ output_summary: "All reentrancy bugs fixed. 24/24 tests pass.",
230
+ constraint_violations: [],
231
+ should_continue: false,
232
+ },
233
+ });
234
+ assert.equal(r2.prompt, null);
235
+ assert.equal(r2.stopReason, "task_complete");
236
+ });
150
237
  });
151
- describe("MCP — session persistence (save / resume)", () => {
238
+ describe("MCP — session persistence (save / resume)", async () => {
152
239
  let backend;
153
240
  let mgr;
154
241
  beforeEach(() => {
@@ -156,8 +243,8 @@ describe("MCP — session persistence (save / resume)", () => {
156
243
  backend = new MemoryBackend();
157
244
  mgr = new SessionManager(backend);
158
245
  });
159
- it("create() persists session to vault as session_state entry", () => {
160
- const r1 = mgr.create({ task: "Test task", loopId: "persist-test" });
246
+ it("create() persists session to vault as session_state entry", async () => {
247
+ const r1 = await mgr.create({ task: "Test task", loopId: "persist-test" });
161
248
  assert.ok(r1.prompt !== null);
162
249
  const entries = backend.queryEntries({ prefix: "loop:persist-test:session" });
163
250
  const sessionEntry = entries.find((e) => e.task_type === "session_state");
@@ -167,11 +254,11 @@ describe("MCP — session persistence (save / resume)", () => {
167
254
  assert.equal(lineage.current_round, 1);
168
255
  assert.equal(lineage.status, "running");
169
256
  });
170
- it("advance() updates session_state after each round", () => {
171
- const r1 = mgr.create({ task: "Test task", loopId: "advance-persist" });
257
+ it("advance() updates session_state after each round", async () => {
258
+ const r1 = await mgr.create({ task: "Test task", loopId: "advance-persist" });
172
259
  const sessionId = r1.sessionId;
173
260
  // Advance round 1 → compiles round 2
174
- const r2 = mgr.advance(sessionId, agentOutput({
261
+ const r2 = await mgr.advance(sessionId, agentOutput({
175
262
  success: true, shouldContinue: true,
176
263
  }));
177
264
  assert.ok(r2.prompt !== null);
@@ -184,10 +271,10 @@ describe("MCP — session persistence (save / resume)", () => {
184
271
  const qt = lineage.quality_trajectory;
185
272
  assert.ok(qt.length >= 1, "quality trajectory should have at least 1 entry");
186
273
  });
187
- it("advance() saves stopped status when task_complete", () => {
188
- const r1 = mgr.create({ task: "Test task", loopId: "complete-persist" });
274
+ it("advance() saves stopped status when task_complete", async () => {
275
+ const r1 = await mgr.create({ task: "Test task", loopId: "complete-persist" });
189
276
  const sessionId = r1.sessionId;
190
- mgr.advance(sessionId, agentOutput({
277
+ await mgr.advance(sessionId, agentOutput({
191
278
  success: true, shouldContinue: false,
192
279
  }));
193
280
  const entries = backend.queryEntries({ prefix: "loop:complete-persist:session" });
@@ -196,19 +283,19 @@ describe("MCP — session persistence (save / resume)", () => {
196
283
  const lineage = sessionEntry.loop_lineage;
197
284
  assert.equal(lineage.status, "stopped");
198
285
  });
199
- it("advance() saves stalled status when no eval block", () => {
200
- const r1 = mgr.create({ task: "Test task", loopId: "stall-persist" });
286
+ it("advance() saves stalled status when no eval block", async () => {
287
+ const r1 = await mgr.create({ task: "Test task", loopId: "stall-persist" });
201
288
  const sessionId = r1.sessionId;
202
- mgr.advance(sessionId, agentOutputNoEval("Just some text"));
289
+ await mgr.advance(sessionId, agentOutputNoEval("Just some text"));
203
290
  const entries = backend.queryEntries({ prefix: "loop:stall-persist:session" });
204
291
  const sessionEntry = entries.find((e) => e.task_type === "session_state");
205
292
  assert.ok(sessionEntry !== undefined);
206
293
  const lineage = sessionEntry.loop_lineage;
207
294
  assert.equal(lineage.status, "stalled");
208
295
  });
209
- it("resume() returns prompt for next round after create", () => {
296
+ it("resume() returns prompt for next round after create", async () => {
210
297
  // Create session → simulates process dying after round 1 compile
211
- const r1 = mgr.create({ task: "Test task", loopId: "resume-after-create" });
298
+ const r1 = await mgr.create({ task: "Test task", loopId: "resume-after-create" });
212
299
  assert.ok(r1.prompt !== null);
213
300
  // New SessionManager (simulating process restart)
214
301
  const mgr2 = new SessionManager(backend);
@@ -217,10 +304,10 @@ describe("MCP — session persistence (save / resume)", () => {
217
304
  assert.ok(resumed.prompt !== null, "resume should return a compiled prompt");
218
305
  assert.equal(resumed.round, 1, "should compile round 1 again");
219
306
  });
220
- it("resume() recovers mid-loop state after advance", () => {
307
+ it("resume() recovers mid-loop state after advance", async () => {
221
308
  // Create and advance one round → simulates process dying after round 2 compile
222
- const r1 = mgr.create({ task: "Test task", loopId: "resume-mid" });
223
- const r2 = mgr.advance(r1.sessionId, agentOutput({
309
+ const r1 = await mgr.create({ task: "Test task", loopId: "resume-mid" });
310
+ const r2 = await mgr.advance(r1.sessionId, agentOutput({
224
311
  success: true, shouldContinue: true,
225
312
  }));
226
313
  assert.equal(r2.round, 2);
@@ -233,9 +320,9 @@ describe("MCP — session persistence (save / resume)", () => {
233
320
  assert.ok(resumed.prompt !== null);
234
321
  assert.ok(resumed.prompt.length > 0);
235
322
  });
236
- it("resume() returns stopped result for completed loop", () => {
237
- const r1 = mgr.create({ task: "Test task", loopId: "resume-done" });
238
- mgr.advance(r1.sessionId, agentOutput({
323
+ it("resume() returns stopped result for completed loop", async () => {
324
+ const r1 = await mgr.create({ task: "Test task", loopId: "resume-done" });
325
+ await mgr.advance(r1.sessionId, agentOutput({
239
326
  success: true, shouldContinue: false,
240
327
  }));
241
328
  const mgr2 = new SessionManager(backend);
@@ -244,13 +331,13 @@ describe("MCP — session persistence (save / resume)", () => {
244
331
  assert.equal(resumed.prompt, null);
245
332
  assert.ok(resumed.stopReason === "stopped" || resumed.stopReason === "task_complete");
246
333
  });
247
- it("resume() returns null for unknown loop", () => {
334
+ it("resume() returns null for unknown loop", async () => {
248
335
  const mgr2 = new SessionManager(backend);
249
336
  const result = mgr2.resume("nonexistent-loop");
250
337
  assert.equal(result, null);
251
338
  });
252
- it("save() upserts — only one session_state entry per loop", () => {
253
- mgr.create({ task: "Test task", loopId: "upsert-test" });
339
+ it("save() upserts — only one session_state entry per loop", async () => {
340
+ await mgr.create({ task: "Test task", loopId: "upsert-test" });
254
341
  // Create another session for the same loop (simulating multiple sessions)
255
342
  const mgr2 = new SessionManager(backend);
256
343
  mgr2.create({ task: "Test task", loopId: "upsert-test" });
@@ -259,7 +346,7 @@ describe("MCP — session persistence (save / resume)", () => {
259
346
  assert.equal(sessionEntries.length, 1, "should only have one session_state entry per loop");
260
347
  });
261
348
  });
262
- describe("MCP — status / list / stop / replay", () => {
349
+ describe("MCP — status / list / stop / replay", async () => {
263
350
  let backend;
264
351
  let mgr;
265
352
  beforeEach(() => {
@@ -267,60 +354,60 @@ describe("MCP — status / list / stop / replay", () => {
267
354
  backend = new MemoryBackend();
268
355
  mgr = new SessionManager(backend);
269
356
  });
270
- it("status returns correct round, quality, status", () => {
271
- const start = TOOL_HANDLERS.loopforge_start(mgr, { task: "Status test" });
357
+ it("status returns correct round, quality, status", async () => {
358
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Status test" });
272
359
  const sessionId = String(start.sessionId);
273
360
  // Advance once to populate quality
274
- TOOL_HANDLERS.loopforge_next(mgr, {
361
+ await TOOL_HANDLERS.loopforge_next(mgr, {
275
362
  sessionId,
276
363
  output: agentOutput({ success: true, shouldContinue: true }),
277
364
  });
278
- const status = TOOL_HANDLERS.loopforge_status(mgr, { sessionId });
365
+ const status = await TOOL_HANDLERS.loopforge_status(mgr, { sessionId });
279
366
  assert.equal(status.sessionId, sessionId);
280
367
  assert.equal(status.round, 2);
281
368
  assert.equal(status.status, "running");
282
369
  assert.ok(status.qualityTrajectory.length >= 1);
283
370
  });
284
- it("list returns multiple sessions", () => {
285
- TOOL_HANDLERS.loopforge_start(mgr, { task: "Task A" });
286
- TOOL_HANDLERS.loopforge_start(mgr, { task: "Task B" });
287
- const result = TOOL_HANDLERS.loopforge_list(mgr, {});
371
+ it("list returns multiple sessions", async () => {
372
+ await TOOL_HANDLERS.loopforge_start(mgr, { task: "Task A" });
373
+ await TOOL_HANDLERS.loopforge_start(mgr, { task: "Task B" });
374
+ const result = await TOOL_HANDLERS.loopforge_list(mgr, {});
288
375
  const sessions = result.sessions;
289
376
  assert.equal(sessions.length, 2);
290
377
  assert.ok(sessions.every((s) => typeof s.sessionId === "string"));
291
378
  });
292
- it("stop manually returns final trajectory", () => {
293
- const start = TOOL_HANDLERS.loopforge_start(mgr, { task: "Stop test" });
379
+ it("stop manually returns final trajectory", async () => {
380
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Stop test" });
294
381
  const sessionId = String(start.sessionId);
295
382
  // Advance once
296
- TOOL_HANDLERS.loopforge_next(mgr, {
383
+ await TOOL_HANDLERS.loopforge_next(mgr, {
297
384
  sessionId,
298
385
  output: agentOutput({ success: true, shouldContinue: true }),
299
386
  });
300
- const result = TOOL_HANDLERS.loopforge_stop(mgr, { sessionId });
387
+ const result = await TOOL_HANDLERS.loopforge_stop(mgr, { sessionId });
301
388
  assert.equal(result.success, true);
302
389
  assert.equal(result.roundsCompleted, 2);
303
390
  assert.ok(result.qualityTrajectory.length >= 1);
304
391
  // Session should be gone
305
- const status = TOOL_HANDLERS.loopforge_status(mgr, { sessionId });
392
+ const status = await TOOL_HANDLERS.loopforge_status(mgr, { sessionId });
306
393
  assert.ok("error" in status);
307
394
  });
308
- it("replay returns timeline", () => {
309
- const start = TOOL_HANDLERS.loopforge_start(mgr, { task: "Replay test" });
395
+ it("replay returns timeline", async () => {
396
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, { task: "Replay test" });
310
397
  const sessionId = String(start.sessionId);
311
398
  // Advance once to create lineage data
312
- TOOL_HANDLERS.loopforge_next(mgr, {
399
+ await TOOL_HANDLERS.loopforge_next(mgr, {
313
400
  sessionId,
314
401
  output: agentOutput({ success: true, shouldContinue: true }),
315
402
  });
316
- const result = TOOL_HANDLERS.loopforge_replay(mgr, { sessionId });
403
+ const result = await TOOL_HANDLERS.loopforge_replay(mgr, { sessionId });
317
404
  const timeline = result.timeline;
318
405
  assert.ok(timeline.length >= 1, "timeline should have entries");
319
406
  assert.equal(typeof timeline[0].round, "number");
320
407
  assert.equal(typeof timeline[0].technique_used, "string");
321
408
  });
322
409
  });
323
- describe("MCP — resume / list-vault / health", () => {
410
+ describe("MCP — resume / list-vault / health", async () => {
324
411
  let backend;
325
412
  let mgr;
326
413
  beforeEach(() => {
@@ -328,47 +415,47 @@ describe("MCP — resume / list-vault / health", () => {
328
415
  backend = new MemoryBackend();
329
416
  mgr = new SessionManager(backend);
330
417
  });
331
- it("loopforge_resume returns prompt via MCP handler", () => {
418
+ it("loopforge_resume returns prompt via MCP handler", async () => {
332
419
  // Create session → save persists to vault
333
- const start = TOOL_HANDLERS.loopforge_start(mgr, {
420
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, {
334
421
  task: "Resume handler test",
335
422
  loopId: "resume-hdl-test",
336
423
  });
337
424
  assert.ok("sessionId" in start);
338
425
  // Simulate new SessionManager (process restart)
339
426
  const mgr2 = new SessionManager(backend);
340
- const result = TOOL_HANDLERS.loopforge_resume(mgr2, {
427
+ const result = await TOOL_HANDLERS.loopforge_resume(mgr2, {
341
428
  loopId: "resume-hdl-test",
342
429
  });
343
430
  assert.ok("prompt" in result, `expected prompt, got: ${JSON.stringify(result)}`);
344
431
  assert.ok(result.prompt !== null);
345
432
  });
346
- it("loopforge_resume returns error for unknown loop", () => {
347
- const result = TOOL_HANDLERS.loopforge_resume(mgr, {
433
+ it("loopforge_resume returns error for unknown loop", async () => {
434
+ const result = await TOOL_HANDLERS.loopforge_resume(mgr, {
348
435
  loopId: "nonexistent",
349
436
  });
350
437
  assert.ok("error" in result);
351
438
  });
352
- it("loopforge_list includes vault-persisted sessions after restart", () => {
439
+ it("loopforge_list includes vault-persisted sessions after restart", async () => {
353
440
  // Create a session on mgr → saved to vault
354
- TOOL_HANDLERS.loopforge_start(mgr, {
441
+ await TOOL_HANDLERS.loopforge_start(mgr, {
355
442
  task: "Vault list test",
356
443
  loopId: "vault-list-loop",
357
444
  });
358
445
  // Fresh SessionManager (process restart)
359
446
  const mgr2 = new SessionManager(backend);
360
- const result = TOOL_HANDLERS.loopforge_list(mgr2, {});
447
+ const result = await TOOL_HANDLERS.loopforge_list(mgr2, {});
361
448
  const sessions = result.sessions;
362
449
  const found = sessions.find((s) => s.loopId === "vault-list-loop");
363
450
  assert.ok(found !== undefined, "vault-persisted session should appear in list");
364
451
  });
365
- it("loopforge_health returns health data for a started loop", () => {
366
- TOOL_HANDLERS.loopforge_start(mgr, {
452
+ it("loopforge_health returns health data for a started loop", async () => {
453
+ await TOOL_HANDLERS.loopforge_start(mgr, {
367
454
  task: "Health test task",
368
455
  loopId: "health-test",
369
456
  constraints: ["Must use TypeScript"],
370
457
  });
371
- const result = TOOL_HANDLERS.loopforge_health(mgr, {
458
+ const result = await TOOL_HANDLERS.loopforge_health(mgr, {
372
459
  loopId: "health-test",
373
460
  });
374
461
  assert.ok("goal_alignment" in result, `expected goal_alignment, got: ${JSON.stringify(result)}`);
@@ -377,19 +464,19 @@ describe("MCP — resume / list-vault / health", () => {
377
464
  assert.ok("strategy_stability" in result);
378
465
  assert.ok("task_continuity" in result);
379
466
  });
380
- it("loopforge_health returns error for unknown loop", () => {
381
- const result = TOOL_HANDLERS.loopforge_health(mgr, {
467
+ it("loopforge_health returns error for unknown loop", async () => {
468
+ const result = await TOOL_HANDLERS.loopforge_health(mgr, {
382
469
  loopId: "nonexistent",
383
470
  });
384
471
  assert.ok("error" in result);
385
472
  });
386
- it("loopforge_status shows technique after compiling", () => {
387
- const start = TOOL_HANDLERS.loopforge_start(mgr, {
473
+ it("loopforge_status shows technique after compiling", async () => {
474
+ const start = await TOOL_HANDLERS.loopforge_start(mgr, {
388
475
  task: "Technique status test",
389
476
  loopId: "technique-status",
390
477
  });
391
478
  const sessionId = String(start.sessionId);
392
- const status = TOOL_HANDLERS.loopforge_status(mgr, { sessionId });
479
+ const status = await TOOL_HANDLERS.loopforge_status(mgr, { sessionId });
393
480
  const technique = status.technique;
394
481
  assert.ok(typeof technique === "string", "technique should be a string");
395
482
  assert.ok(technique.length > 0, "technique should not be empty");
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../src/tests/mcp.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.test.js","sourceRoot":"","sources":["../../src/tests/mcp.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** Tests for Memory Bridge (v1.8).
2
+ *
3
+ * Covers: detection, computeProjectHash, createMemoryProvider (retrieval),
4
+ * createMemoryWriter (writeback), autoConfigureMemory, tryAutoConfigure,
5
+ * and edge cases (empty dirs, no matches, lock contention).
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=memory-bridge.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-bridge.test.d.ts","sourceRoot":"","sources":["../../src/tests/memory-bridge.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}