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