loopforge 1.7.0 → 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 (60) hide show
  1. package/README.md +64 -3
  2. package/dist/engine.d.ts +14 -0
  3. package/dist/engine.d.ts.map +1 -1
  4. package/dist/engine.js +102 -1
  5. package/dist/engine.js.map +1 -1
  6. package/dist/index.d.ts +6 -5
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -2
  9. package/dist/index.js.map +1 -1
  10. package/dist/loop-compiler.d.ts +23 -0
  11. package/dist/loop-compiler.d.ts.map +1 -1
  12. package/dist/loop-compiler.js +185 -19
  13. package/dist/loop-compiler.js.map +1 -1
  14. package/dist/mcp/server.d.ts.map +1 -1
  15. package/dist/mcp/server.js +6 -4
  16. package/dist/mcp/server.js.map +1 -1
  17. package/dist/mcp/session.d.ts +15 -3
  18. package/dist/mcp/session.d.ts.map +1 -1
  19. package/dist/mcp/session.js +199 -5
  20. package/dist/mcp/session.js.map +1 -1
  21. package/dist/mcp/tools.d.ts +32 -1
  22. package/dist/mcp/tools.d.ts.map +1 -1
  23. package/dist/mcp/tools.js +29 -10
  24. package/dist/mcp/tools.js.map +1 -1
  25. package/dist/memory-bridge.d.ts +47 -0
  26. package/dist/memory-bridge.d.ts.map +1 -0
  27. package/dist/memory-bridge.js +290 -0
  28. package/dist/memory-bridge.js.map +1 -0
  29. package/dist/policy.d.ts +57 -0
  30. package/dist/policy.d.ts.map +1 -1
  31. package/dist/policy.js +36 -0
  32. package/dist/policy.js.map +1 -1
  33. package/dist/protocol.d.ts +84 -3
  34. package/dist/protocol.d.ts.map +1 -1
  35. package/dist/protocol.js +5 -3
  36. package/dist/protocol.js.map +1 -1
  37. package/dist/runtime.d.ts +17 -0
  38. package/dist/runtime.d.ts.map +1 -1
  39. package/dist/runtime.js +427 -171
  40. package/dist/runtime.js.map +1 -1
  41. package/dist/tests/generate-schema.test.js +2 -2
  42. package/dist/tests/loop-compiler.test.js +237 -1
  43. package/dist/tests/loop-compiler.test.js.map +1 -1
  44. package/dist/tests/mcp.test.js +95 -95
  45. package/dist/tests/mcp.test.js.map +1 -1
  46. package/dist/tests/memory-bridge.test.d.ts +8 -0
  47. package/dist/tests/memory-bridge.test.d.ts.map +1 -0
  48. package/dist/tests/memory-bridge.test.js +384 -0
  49. package/dist/tests/memory-bridge.test.js.map +1 -0
  50. package/dist/tests/protocol.test.js +12 -1
  51. package/dist/tests/protocol.test.js.map +1 -1
  52. package/loop_policy.json +23 -0
  53. package/package.json +1 -1
  54. package/skills/perception/SKILL.md +52 -1
  55. package/dist/adapter.d.ts +0 -17
  56. package/dist/adapter.d.ts.map +0 -1
  57. package/dist/adapter.js +0 -228
  58. package/dist/adapter.js.map +0 -1
  59. package/dist/tests/adapter.test.d.ts +0 -2
  60. package/dist/tests/adapter.test.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,OAAO;CACjB,CAAC;AAaF,SAAS,aAAa,CAAC,EAA+B,EAAE,IAAY,EAAE,OAAe;IACnF,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,OAAO,EAAE,KAAK;QACd,EAAE,EAAE,EAAE,IAAI,IAAI;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,UAAU,CAAC,EAA+B,EAAE,MAA+B;IAClF,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC,CAAC,6BAA6B;IAC9D,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E,MAAM,OAAO,SAAS;IACZ,GAAG,CAAiB;IAE5B,YAAY,OAAsB;QAChC,IAAI,CAAC,GAAG,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,KAAK;QACH,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAErD,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE;YACnC,IAAI,GAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC7E,OAAO;YACT,CAAC;YAED,iCAAiC;YACjC,IAAI,GAAG,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;gBACtE,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;oBACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,GAAG,IAAI,CAAC,CAAC;gBACjE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,WAAW,CAAC,OAAO,YAAY,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,GAAmB;QACxC,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,YAAY;gBACf,OAAO;oBACL,eAAe,EAAE,YAAY;oBAC7B,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;oBAC3B,UAAU,EAAE,WAAW;iBACxB,CAAC;YAEJ,KAAK,YAAY;gBACf,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YAEjC,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;gBACvC,MAAM,IAAI,GAAI,MAAM,CAAC,SAAqC,IAAI,EAAE,CAAC;gBAEjE,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAC7C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;iBAC1D,CAAC;YACJ,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;CACF"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { LoopForgeEngine } from "../engine.js";
8
8
  import type { VaultBackend } from "../backends/interface.js";
9
- import type { SelfEvaluation } from "../protocol.js";
9
+ import type { SelfEvaluation, LoopMemoryWriteback, MemoryProviderContext } from "../protocol.js";
10
10
  export interface McpSession {
11
11
  sessionId: string;
12
12
  loopId: string;
@@ -19,6 +19,11 @@ export interface McpSession {
19
19
  createdAt: number;
20
20
  /** Previous round's validated SelfEvaluation — used by verification gate. */
21
21
  lastSelfEval?: SelfEvaluation;
22
+ injectionCount: number;
23
+ lastInjectionRound: number;
24
+ injectedContexts: string[];
25
+ phase2Triggered: boolean;
26
+ phase3Triggered: boolean;
22
27
  }
23
28
  export interface McpSessionSummary {
24
29
  sessionId: string;
@@ -47,8 +52,12 @@ export interface AdvanceResult {
47
52
  export declare class SessionManager {
48
53
  private sessions;
49
54
  private backend;
55
+ /** Optional provider for long-term memory context retrieval. */
56
+ memoryProvider?: (ctx: MemoryProviderContext) => Promise<string>;
57
+ /** Optional writer for persisting loop knowledge back to long-term memory. */
58
+ memoryWriter?: (payload: LoopMemoryWriteback) => Promise<void>;
50
59
  constructor(backend?: VaultBackend);
51
- create(input: StartInput): AdvanceResult;
60
+ create(input: StartInput): Promise<AdvanceResult>;
52
61
  get(sessionId: string): McpSession | undefined;
53
62
  delete(sessionId: string): boolean;
54
63
  /** Persist session state to vault for cross-process recovery.
@@ -69,7 +78,10 @@ export declare class SessionManager {
69
78
  * @param preExtractedEval Optional pre-built SelfEvaluation from MCP tool parameter.
70
79
  * When provided (MCP path with evaluation parameter), skips regex extraction.
71
80
  * When undefined (runtime/CLI path), falls back to regex extraction from output. */
72
- advance(sessionId: string, output: string, preExtractedEval?: SelfEvaluation): AdvanceResult;
81
+ advance(sessionId: string, output: string, preExtractedEval?: SelfEvaluation): Promise<AdvanceResult>;
82
+ /** Write back loop knowledge to long-term memory.
83
+ * Called when a loop terminates for any reason. */
84
+ private doWriteback;
73
85
  /** Replay timeline for a session — creates ReplayBackend from the stored backend. */
74
86
  replayTimeline(sessionId: string): Record<string, unknown>[] | null;
75
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAkD,MAAM,cAAc,CAAC;AAM/F,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAoB,cAAc,EAAoB,MAAM,gBAAgB,CAAC;AAMzF,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,eAAe,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAoED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,OAAO,CAA2B;gBAE9B,OAAO,CAAC,EAAE,YAAY;IAIlC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa;IA6CxC,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI9C,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAclC;;;;kDAI8C;IAC9C,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,IAAI;IA0C/B;;yEAEqE;IACrE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAkE5C,IAAI,IAAI,iBAAiB,EAAE;IAqC3B;oFACgF;IAChF,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAqDzD;;;2FAGuF;IACvF,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,cAAc,GAAG,aAAa;IA2G5F,qFAAqF;IACrF,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,IAAI;CAQpE"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@
6
6
  */
7
7
  import { randomUUID } from "node:crypto";
8
8
  import { LoopForgeEngine, extractSelfEvaluation, heuristicSelfEvaluation } from "../engine.js";
9
- import { checkLoopHealth } from "../loop-compiler.js";
10
- import { getPolicy } from "../policy.js";
9
+ import { checkLoopHealth, tokenize, jaccard } from "../loop-compiler.js";
10
+ import { getPolicy, resolveAllowedPhases } from "../policy.js";
11
11
  import { Mode, makeLoopCompileRequest, makeVaultConfig } from "../protocol.js";
12
12
  import { ReplayBackend } from "../replay.js";
13
13
  import { FSBackend } from "../backends/fs.js";
@@ -35,7 +35,13 @@ function buildLoopRequest(session, lastEval, lastQuality, verificationFlags) {
35
35
  manual_fixes_needed: "",
36
36
  quality_score: lastQuality,
37
37
  // P0–P2: Forward evolution fields to next compile
38
- discovered_constraints: lastEval.discovered_constraints ?? [],
38
+ // Merge sub-agent discovered constraints into the active set
39
+ discovered_constraints: [
40
+ ...new Set([
41
+ ...(lastEval.discovered_constraints ?? []),
42
+ ...(lastEval.worker_results ?? []).flatMap((w) => w.discoveredConstraints ?? []).filter((c) => c.length > 0),
43
+ ]),
44
+ ],
39
45
  objective_refinement: lastEval.objective_refinement ?? "",
40
46
  emerged_subtasks: lastEval.emerged_subtasks ?? [],
41
47
  // P4: Execution evidence
@@ -44,6 +50,8 @@ function buildLoopRequest(session, lastEval, lastQuality, verificationFlags) {
44
50
  retracted_constraints: lastEval.retracted_constraints ?? [],
45
51
  revised_success_criteria: lastEval.revised_success_criteria ?? [],
46
52
  wrong_assumptions: lastEval.wrong_assumptions ?? [],
53
+ // Multi-agent: Forward delegation results to next compile
54
+ worker_results: lastEval.worker_results ?? [],
47
55
  };
48
56
  }
49
57
  return req;
@@ -75,10 +83,14 @@ function parseWarnings(prompt) {
75
83
  export class SessionManager {
76
84
  sessions = new Map();
77
85
  backend;
86
+ /** Optional provider for long-term memory context retrieval. */
87
+ memoryProvider;
88
+ /** Optional writer for persisting loop knowledge back to long-term memory. */
89
+ memoryWriter;
78
90
  constructor(backend) {
79
91
  this.backend = backend;
80
92
  }
81
- create(input) {
93
+ async create(input) {
82
94
  const sessionId = randomUUID();
83
95
  const loopId = input.loopId ?? randomUUID();
84
96
  const engine = new LoopForgeEngine("skills", this.backend);
@@ -87,15 +99,57 @@ export class SessionManager {
87
99
  const request = buildLoopRequest({
88
100
  sessionId, loopId, task: input.task, engine, currentRound: 1,
89
101
  maxRounds, qualityTrajectory: [], status: "running", createdAt: Date.now(),
102
+ injectionCount: 0, lastInjectionRound: 0, injectedContexts: [],
103
+ phase2Triggered: false, phase3Triggered: false,
90
104
  });
91
105
  request.domain = input.domain ?? "";
92
106
  request.plan_source = input.planSource ?? null;
93
107
  request.constraints_from_plan = input.constraints ?? [];
108
+ // v1.8: Phase 1 memory injection (Round 1) — only if allowed by tier
109
+ const miPolicy = getPolicy().memory_injection;
110
+ const allowedPhases = new Set(resolveAllowedPhases(maxRounds, miPolicy.round_tiers));
111
+ if (miPolicy.enabled && this.memoryProvider && allowedPhases.has(1)) {
112
+ try {
113
+ const ctx = {
114
+ loopId,
115
+ round: 1,
116
+ task: input.task,
117
+ domain: input.domain ?? "",
118
+ phase: 1,
119
+ progressEstimate: 0,
120
+ accumulatedContext: {
121
+ recurringIssues: [],
122
+ failedPatterns: [],
123
+ keyLessons: [],
124
+ remainingCriteria: [],
125
+ },
126
+ };
127
+ const rawContext = await this.memoryProvider(ctx);
128
+ if (rawContext?.trim()) {
129
+ request.external_context = rawContext.trim().slice(0, miPolicy.max_context_length);
130
+ logEvent("memory_injected", {
131
+ loopId, round: 1, phase: 1, injectionCount: 1,
132
+ contextLength: request.external_context.length,
133
+ });
134
+ }
135
+ }
136
+ catch {
137
+ // memoryProvider failed — degrade gracefully
138
+ logEvent("memory_provider_error", { loopId, round: 1 });
139
+ }
140
+ }
94
141
  const result = engine.invokeLoopCompile(request);
142
+ const injectedCtx = request.external_context;
95
143
  const session = {
96
144
  sessionId, loopId, task: input.task, engine,
97
145
  currentRound: 1, maxRounds, qualityTrajectory: [],
98
146
  status: "running", createdAt: Date.now(),
147
+ // v1.7: Memory integration state
148
+ injectionCount: injectedCtx ? 1 : 0,
149
+ lastInjectionRound: injectedCtx ? 1 : 0,
150
+ injectedContexts: injectedCtx ? [injectedCtx] : [],
151
+ phase2Triggered: false,
152
+ phase3Triggered: false,
99
153
  };
100
154
  this.sessions.set(sessionId, session);
101
155
  // Persist to vault for cross-process recovery
@@ -124,6 +178,7 @@ export class SessionManager {
124
178
  if (!session)
125
179
  return false;
126
180
  session.status = "stopped";
181
+ void this.doWriteback(session, "stopped");
127
182
  this.sessions.delete(sessionId);
128
183
  logEvent("session_end", {
129
184
  sessionId,
@@ -161,6 +216,11 @@ export class SessionManager {
161
216
  quality_trajectory: session.qualityTrajectory,
162
217
  status: session.status,
163
218
  created_at: session.createdAt,
219
+ // v1.7: Memory integration state for cross-process recovery
220
+ injection_count: session.injectionCount,
221
+ last_injection_round: session.lastInjectionRound,
222
+ phase2_triggered: session.phase2Triggered,
223
+ phase3_triggered: session.phase3Triggered,
164
224
  },
165
225
  });
166
226
  };
@@ -213,6 +273,12 @@ export class SessionManager {
213
273
  qualityTrajectory,
214
274
  status: "running",
215
275
  createdAt: lineage.created_at ?? Date.now(),
276
+ // v1.7: Memory integration state restored from vault
277
+ injectionCount: lineage.injection_count ?? 0,
278
+ lastInjectionRound: lineage.last_injection_round ?? 0,
279
+ injectedContexts: [],
280
+ phase2Triggered: lineage.phase2_triggered ?? false,
281
+ phase3Triggered: lineage.phase3_triggered ?? false,
216
282
  };
217
283
  this.sessions.set(sessionId, session);
218
284
  // Compile the next round's prompt from vault lineage
@@ -314,7 +380,7 @@ export class SessionManager {
314
380
  * @param preExtractedEval Optional pre-built SelfEvaluation from MCP tool parameter.
315
381
  * When provided (MCP path with evaluation parameter), skips regex extraction.
316
382
  * When undefined (runtime/CLI path), falls back to regex extraction from output. */
317
- advance(sessionId, output, preExtractedEval) {
383
+ async advance(sessionId, output, preExtractedEval) {
318
384
  const session = this.sessions.get(sessionId);
319
385
  if (!session)
320
386
  return { sessionId, round: 0, prompt: null, stopReason: "session_not_found" };
@@ -337,6 +403,7 @@ export class SessionManager {
337
403
  if (!selfEval) {
338
404
  session.status = "stalled";
339
405
  this.save(session);
406
+ void this.doWriteback(session, "stalled");
340
407
  logEvent("session_end", { sessionId, loopId: session.loopId, stopReason: "stalled", round: session.currentRound });
341
408
  return { sessionId, round: session.currentRound, prompt: null, stopReason: "stalled", quality: 0 };
342
409
  }
@@ -369,30 +436,110 @@ export class SessionManager {
369
436
  if (extractionFailed) {
370
437
  session.status = "stalled";
371
438
  this.save(session);
439
+ void this.doWriteback(session, "stalled");
372
440
  logEvent("session_end", { sessionId, loopId: session.loopId, stopReason: "stalled", round: session.currentRound });
373
441
  return { sessionId, round: session.currentRound, prompt: null, stopReason: "stalled", quality };
374
442
  }
375
443
  if (!selfEval.should_continue) {
376
444
  session.status = "stopped";
377
445
  this.save(session);
446
+ void this.doWriteback(session, "task_complete");
378
447
  logEvent("session_end", { sessionId, loopId: session.loopId, stopReason: "task_complete", round: session.currentRound });
379
448
  return { sessionId, round: session.currentRound, prompt: null, stopReason: "task_complete", quality };
380
449
  }
381
450
  if (session.engine.shouldBreak()) {
382
451
  session.status = "stopped";
383
452
  this.save(session);
453
+ void this.doWriteback(session, "circuit_breaker");
384
454
  logEvent("session_end", { sessionId, loopId: session.loopId, stopReason: "circuit_breaker", round: session.currentRound });
385
455
  return { sessionId, round: session.currentRound, prompt: null, stopReason: "circuit_breaker", quality };
386
456
  }
387
457
  if (session.currentRound >= session.maxRounds) {
388
458
  session.status = "stopped";
389
459
  this.save(session);
460
+ void this.doWriteback(session, "max_rounds");
390
461
  logEvent("session_end", { sessionId, loopId: session.loopId, stopReason: "max_rounds", round: session.currentRound });
391
462
  return { sessionId, round: session.currentRound, prompt: null, stopReason: "max_rounds", quality };
392
463
  }
393
464
  // 4. Compile next round
394
465
  session.currentRound++;
466
+ // v1.8: Memory injection for phases 2/3 — tier-aware
467
+ let externalCtx = "";
468
+ const miPolicy = getPolicy().memory_injection;
469
+ if (miPolicy.enabled && this.memoryProvider) {
470
+ const allowedPhases = new Set(resolveAllowedPhases(session.maxRounds, miPolicy.round_tiers));
471
+ if (session.injectionCount < allowedPhases.size &&
472
+ session.currentRound - session.lastInjectionRound >= miPolicy.min_rounds_between_injections) {
473
+ const progress = selfEval.execution_evidence?.progress_estimate;
474
+ const hasProgress = typeof progress === "number" && progress >= 0;
475
+ let phase = null;
476
+ if (allowedPhases.has(2) &&
477
+ !session.phase2Triggered &&
478
+ hasProgress &&
479
+ progress >= miPolicy.phase_thresholds.phase2.threshold) {
480
+ phase = 2;
481
+ session.phase2Triggered = true;
482
+ }
483
+ else if (allowedPhases.has(3) &&
484
+ !session.phase3Triggered &&
485
+ hasProgress &&
486
+ progress >= miPolicy.phase_thresholds.phase3.threshold) {
487
+ phase = 3;
488
+ session.phase3Triggered = true;
489
+ }
490
+ if (phase !== null) {
491
+ try {
492
+ const accCtx = {
493
+ recurringIssues: selfEval.constraint_violations ?? [],
494
+ failedPatterns: [],
495
+ keyLessons: selfEval.emerged_subtasks ?? [],
496
+ remainingCriteria: selfEval.execution_evidence?.success_criteria_remaining ?? [],
497
+ };
498
+ const ctx = {
499
+ loopId: session.loopId,
500
+ round: session.currentRound,
501
+ task: session.task,
502
+ domain: "",
503
+ phase,
504
+ progressEstimate: hasProgress ? progress : -1,
505
+ accumulatedContext: accCtx,
506
+ };
507
+ const rawContext = await this.memoryProvider(ctx);
508
+ if (rawContext?.trim()) {
509
+ // Dedup
510
+ const newTokens = tokenize(rawContext);
511
+ let isDuplicate = false;
512
+ for (const old of session.injectedContexts) {
513
+ if (jaccard(newTokens, tokenize(old)) > miPolicy.dedup_threshold) {
514
+ isDuplicate = true;
515
+ break;
516
+ }
517
+ }
518
+ if (!isDuplicate) {
519
+ externalCtx = rawContext.trim().slice(0, miPolicy.max_context_length);
520
+ session.injectionCount++;
521
+ session.lastInjectionRound = session.currentRound;
522
+ session.injectedContexts.push(externalCtx);
523
+ logEvent("memory_injected", {
524
+ loopId: session.loopId, round: session.currentRound,
525
+ phase, injectionCount: session.injectionCount,
526
+ contextLength: externalCtx.length,
527
+ });
528
+ }
529
+ }
530
+ }
531
+ catch {
532
+ logEvent("memory_provider_error", {
533
+ loopId: session.loopId, round: session.currentRound,
534
+ });
535
+ }
536
+ }
537
+ }
538
+ }
395
539
  const request = buildLoopRequest(session, selfEval, quality, verificationFlags);
540
+ if (externalCtx) {
541
+ request.external_context = externalCtx;
542
+ }
396
543
  const result = session.engine.invokeLoopCompile(request);
397
544
  this.save(session);
398
545
  return {
@@ -405,6 +552,53 @@ export class SessionManager {
405
552
  warnings: parseWarnings(result.response?.prompt ?? null),
406
553
  };
407
554
  }
555
+ /** Write back loop knowledge to long-term memory.
556
+ * Called when a loop terminates for any reason. */
557
+ async doWriteback(session, stopReason) {
558
+ if (!this.memoryWriter)
559
+ return;
560
+ const wp = getPolicy().memory_writeback;
561
+ if (!wp.enabled)
562
+ return;
563
+ if (wp.write_on_outcomes.length > 0 && !wp.write_on_outcomes.includes(stopReason))
564
+ return;
565
+ if (session.currentRound < 1)
566
+ return;
567
+ const outcome = ["completed", "circuit_breaker", "stalled", "max_rounds", "stopped"].find((o) => stopReason === o) ?? "stopped";
568
+ try {
569
+ const payload = {
570
+ loopId: session.loopId,
571
+ task: session.task,
572
+ outcome,
573
+ roundsCompleted: session.currentRound,
574
+ qualityTrajectory: [...session.qualityTrajectory],
575
+ projectEntry: {
576
+ title: `${session.task.slice(0, 80)} — ${outcome}`,
577
+ objective: session.task.slice(0, 200),
578
+ keyOutcome: outcome === "completed"
579
+ ? `Completed successfully in ${session.currentRound} rounds.`
580
+ : `Terminated with reason '${stopReason}' after ${session.currentRound} rounds.`,
581
+ keyDiscoveries: [],
582
+ date: new Date().toISOString().split("T")[0],
583
+ },
584
+ feedbackEntries: [],
585
+ referenceEntry: {
586
+ description: `LoopForge vault data for "${session.task.slice(0, 80)}"`,
587
+ vaultLocation: `.promptcraft/prompt_vault.json → loop:${session.loopId}:*`,
588
+ },
589
+ };
590
+ await this.memoryWriter(payload);
591
+ logEvent("memory_writeback", {
592
+ loopId: session.loopId, stopReason,
593
+ feedbackCount: payload.feedbackEntries.length,
594
+ });
595
+ }
596
+ catch {
597
+ logEvent("memory_writeback_error", {
598
+ loopId: session.loopId, stopReason,
599
+ });
600
+ }
601
+ }
408
602
  /** Replay timeline for a session — creates ReplayBackend from the stored backend. */
409
603
  replayTimeline(sessionId) {
410
604
  const session = this.sessions.get(sessionId);
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAM9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAmD/C,8EAA8E;AAE9E,SAAS,gBAAgB,CACvB,OAAmB,EACnB,QAAyB,EACzB,WAAoB,EACpB,iBAAsC;IAEtC,MAAM,GAAG,GAA4B;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,IAAI,CAAC,YAAY;QACvB,YAAY,EAAE,eAAe,EAAE;QAC/B,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,KAAK,EAAE,OAAO,CAAC,YAAY;QAC3B,kBAAkB,EAAE,iBAAiB,IAAI,EAAE;KAC5C,CAAC;IAEF,IAAI,QAAQ,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC1C,GAAG,CAAC,iBAAiB,GAAG;YACtB,KAAK,EAAE,OAAO,CAAC,YAAY,GAAG,CAAC;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;YACrD,mBAAmB,EAAE,EAAE;YACvB,aAAa,EAAE,WAAW;YAC1B,kDAAkD;YAClD,6DAA6D;YAC7D,sBAAsB,EAAE;gBACtB,GAAG,IAAI,GAAG,CAAC;oBACT,GAAG,CAAC,QAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAC;oBAC1C,GAAG,CAAC,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC7G,CAAC;aACH;YACD,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,EAAE;YACzD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;YACjD,yBAAyB;YACzB,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,IAAI,SAAS;YAC5D,sBAAsB;YACtB,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB,IAAI,EAAE;YAC3D,wBAAwB,EAAE,QAAQ,CAAC,wBAAwB,IAAI,EAAE;YACjE,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,IAAI,EAAE;YACnD,0DAA0D;YAC1D,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;SAC9C,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,UAAU,CAAC,SAAkB;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB;IAC1C,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC/E,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACpC,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8EAA8E;AAE9E,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;IACzC,OAAO,CAA2B;IAC1C,gEAAgE;IAChE,cAAc,CAAmD;IACjE,8EAA8E;IAC9E,YAAY,CAAmD;IAE/D,YAAY,OAAsB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAiB;QAC5B,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;QAEpE,4CAA4C;QAC5C,MAAM,OAAO,GAAG,gBAAgB,CAAC;YAC/B,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;YAC5D,SAAS,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YAC1E,cAAc,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE;YAC9D,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK;SAC/C,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC/C,OAAO,CAAC,qBAAqB,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAExD,qEAAqE;QACrE,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,gBAAgB,CAAC;QAC9C,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CACtD,CAAC;QACF,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC;gBACH,MAAM,GAAG,GAA0B;oBACjC,MAAM;oBACN,KAAK,EAAE,CAAC;oBACR,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;oBAC1B,KAAK,EAAE,CAAC;oBACR,gBAAgB,EAAE,CAAC;oBACnB,kBAAkB,EAAE;wBAClB,eAAe,EAAE,EAAE;wBACnB,cAAc,EAAE,EAAE;wBAClB,UAAU,EAAE,EAAE;wBACd,iBAAiB,EAAE,EAAE;qBACtB;iBACF,CAAC;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;oBACvB,OAAO,CAAC,gBAAgB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;oBACnF,QAAQ,CAAC,iBAAiB,EAAE;wBAC1B,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC;wBAC7C,aAAa,EAAG,OAAO,CAAC,gBAA2B,CAAC,MAAM;qBAC3D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6CAA6C;gBAC7C,QAAQ,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,OAAsC,CAAC,CAAC;QAEhF,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAsC,CAAC;QACnE,MAAM,OAAO,GAAe;YAC1B,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM;YAC3C,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,iBAAiB,EAAE,EAAE;YACjD,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACxC,iCAAiC;YACjC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;YAClD,eAAe,EAAE,KAAK;YACtB,eAAe,EAAE,KAAK;SACvB,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnB,QAAQ,CAAC,eAAe,EAAE;YACxB,SAAS;YACT,MAAM;YACN,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7B,SAAS;SACV,CAAC,CAAC;QAEH,OAAO;YACL,SAAS;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;YACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,IAAI,WAAW;YAC9D,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACvD,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;QAC3B,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,QAAQ,CAAC,aAAa,EAAE;YACtB,SAAS;YACT,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,SAAS;YACrB,eAAe,EAAE,OAAO,CAAC,YAAY;SACtC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;kDAI8C;IAC9C,IAAI,CAAC,OAAmB;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,yDAAyD;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAQ,CAAC,SAAS,EAAE,CAAC;YACxC,MAAM,OAAO,GAAI,KAAK,CAAC,OAAwB,IAAI,EAAE,CAAC;YACtD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAC5B,CAAC,CAAa,EAAE,EAAE,CAChB,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,eAAe,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CACrE,CAAC;YACF,IAAI,CAAC,OAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAEhC,6BAA6B;YAC7B,IAAI,CAAC,OAAQ,CAAC,WAAW,CAAC;gBACxB,OAAO,EAAE,QAAQ,OAAO,CAAC,MAAM,UAAU;gBACzC,SAAS,EAAE,eAAe;gBAC1B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,YAAY,EAAE;oBACZ,UAAU,EAAE,OAAO,CAAC,SAAS;oBAC7B,aAAa,EAAE,OAAO,CAAC,YAAY;oBACnC,UAAU,EAAE,OAAO,CAAC,SAAS;oBAC7B,kBAAkB,EAAE,OAAO,CAAC,iBAAiB;oBAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,UAAU,EAAE,OAAO,CAAC,SAAS;oBAC7B,4DAA4D;oBAC5D,eAAe,EAAE,OAAO,CAAC,cAAc;oBACvC,oBAAoB,EAAE,OAAO,CAAC,kBAAkB;oBAChD,gBAAgB,EAAE,OAAO,CAAC,eAAe;oBACzC,gBAAgB,EAAE,OAAO,CAAC,eAAe;iBAC1C;aACF,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,8EAA8E;QAC9E,IACE,UAAU,IAAI,IAAI,CAAC,OAAO;YAC1B,OAAQ,IAAI,CAAC,OAAqB,CAAC,QAAQ,KAAK,UAAU,EAC1D,CAAC;YACA,IAAI,CAAC,OAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED;;yEAEqE;IACrE,MAAM,CAAC,MAAc;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACxC,MAAM,EAAE,QAAQ,MAAM,UAAU;SACjC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,eAAe,CACvC,CAAC;QACF,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAE/B,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAG/C,CAAC;QACF,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,SAAS,CAAC;QACvD,MAAM,YAAY,GAAI,OAAO,CAAC,aAAwB,IAAI,CAAC,CAAC;QAC5D,MAAM,iBAAiB,GACpB,OAAO,CAAC,kBAA+B,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,GAAI,YAAY,CAAC,IAAe,IAAI,EAAE,CAAC;QACjD,MAAM,SAAS,GACZ,OAAO,CAAC,UAAqB,IAAI,SAAS,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC;QAEnE,iEAAiE;QACjE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO;gBACL,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,MAAM;aACnB,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAe;YAC1B,SAAS;YACT,MAAM;YACN,IAAI;YACJ,MAAM;YACN,YAAY;YACZ,SAAS;YACT,iBAAiB;YACjB,MAAM,EAAE,SAAS;YACjB,SAAS,EAAG,OAAO,CAAC,UAAqB,IAAI,IAAI,CAAC,GAAG,EAAE;YACvD,qDAAqD;YACrD,cAAc,EAAG,OAAO,CAAC,eAA0B,IAAI,CAAC;YACxD,kBAAkB,EAAG,OAAO,CAAC,oBAA+B,IAAI,CAAC;YACjE,gBAAgB,EAAE,EAAE;YACpB,eAAe,EAAG,OAAO,CAAC,gBAA4B,IAAI,KAAK;YAC/D,eAAe,EAAG,OAAO,CAAC,gBAA4B,IAAI,KAAK;SAChE,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEtC,qDAAqD;QACrD,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CACrC,OAAsC,CACvC,CAAC;QAEF,OAAO;YACL,SAAS;YACT,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;YACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,IAAI,WAAW;YAC9D,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACvD,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,IAAI;QACF,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,2CAA2C;QAC3C,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC;gBACV,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,KAAK,EAAE,CAAC,CAAC,YAAY;gBACrB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvC,MAAM,OAAO,GAAI,KAAK,CAAC,OAAwB,IAAI,EAAE,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,SAAS,KAAK,eAAe;oBAAE,SAAS;gBAC9C,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,SAAS;gBACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACd,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAA4B,CAAC;gBAClE,MAAM,CAAC,IAAI,CAAC;oBACV,SAAS,EAAE,EAAE;oBACb,MAAM,EAAE,GAAG;oBACX,KAAK,EAAG,OAAO,CAAC,aAAwB,IAAI,CAAC;oBAC7C,MAAM,EAAE,CAAE,OAAO,CAAC,MAAiB,IAAI,SAAS,CAAyB;iBAC1E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;oFACgF;IAChF,SAAS,CAAC,MAAc;QACtB,6DAA6D;QAC7D,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,MAAM,GAAG,MAAM,CAAC;QAEpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBACxB,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;gBACd,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;oBAC5B,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;gBAClC,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACxC,MAAM,EAAE,QAAQ,MAAM,UAAU;aACjC,CAAC,CAAC;YACH,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,eAAe,CACvC,CAAC;YACF,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,GAAI,YAAY,CAAC,IAAe,IAAI,EAAE,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,wBAAwB;QACxB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAEvD,2CAA2C;QAC3C,MAAM,OAAO,GAAG,sBAAsB,CAAC;YACrC,IAAI;YACJ,OAAO,EAAE,MAAM;YACf,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,CAAC,EAAE,wCAAwC;SACnD,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9D,OAAO;YACL,MAAM;YACN,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;YACjD,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;YAC7C,eAAe,EAAE,MAAM,CAAC,eAAe;SACxC,CAAC;IACJ,CAAC;IAED;;;2FAGuF;IACvF,KAAK,CAAC,OAAO,CAAC,SAAiB,EAAE,MAAc,EAAE,gBAAiC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;QAC5F,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAC9F,CAAC;QAED,8EAA8E;QAC9E,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,QAA+B,CAAC;QACpC,IAAI,gBAAgB,EAAE,CAAC;YACrB,QAAQ,GAAG,gBAAgB,CAAC;YAC5B,gBAAgB,GAAG,KAAK,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACjD,gBAAgB,GAAG,UAAU,KAAK,IAAI,CAAC;YACvC,QAAQ,GAAG,UAAU,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC3D,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1C,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACnH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACrG,CAAC;QAED,gEAAgE;QAChE,IAAI,iBAAiB,GAAuB,EAAE,CAAC;QAC/C,IAAI,WAAW,GAAW,SAAS,CAAC;QACpC,CAAC;YACC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO;gBAC/B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;gBACnE,CAAC,CAAC,EAAE,CAAC;YACP,MAAM,YAAY,GAAG,oBAAoB,CACvC,QAAQ,EACR,OAAO,CAAC,YAAY,EACpB,YAAY,EACZ,OAAO,CAAC,YAAY,IAAI,IAAI,CAC7B,CAAC;YACF,iBAAiB,GAAG,YAAY,CAAC,KAAK,CAAC;YACvC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC;QACrC,CAAC;QAED,uEAAuE;QACvE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CACzC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAC7D,CAAC;QAEF,yEAAyE;QACzE,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;YACnC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,yEAAyE;QACzE,sEAAsE;QAEtE,qDAAqD;QACrD,uEAAuE;QACvE,wEAAwE;QACxE,qEAAqE;QACrE,0EAA0E;QAC1E,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC;QAEhC,2DAA2D;QAC3D,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1C,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACnH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QAClG,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAChD,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACzH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC;QACxG,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAClD,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YAC3H,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC;QAC1G,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,KAAK,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC7C,QAAQ,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;YACtH,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;QACrG,CAAC;QAED,wBAAwB;QACxB,OAAO,CAAC,YAAY,EAAE,CAAC;QAEvB,qDAAqD;QACrD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC,gBAAgB,CAAC;QAC9C,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,MAAM,aAAa,GAAG,IAAI,GAAG,CAC3B,oBAAoB,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAC9D,CAAC;YACF,IAAI,OAAO,CAAC,cAAc,GAAG,aAAa,CAAC,IAAI;gBAC3C,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,IAAI,QAAQ,CAAC,6BAA6B,EAAE,CAAC;gBAChG,MAAM,QAAQ,GAAG,QAAQ,CAAC,kBAAkB,EAAE,iBAAiB,CAAC;gBAChE,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC;gBAClE,IAAI,KAAK,GAAqB,IAAI,CAAC;gBAEnC,IACE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpB,CAAC,OAAO,CAAC,eAAe;oBACxB,WAAW;oBACX,QAAS,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EACvD,CAAC;oBACD,KAAK,GAAG,CAAC,CAAC;oBACV,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBACjC,CAAC;qBAAM,IACL,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpB,CAAC,OAAO,CAAC,eAAe;oBACxB,WAAW;oBACX,QAAS,IAAI,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EACvD,CAAC;oBACD,KAAK,GAAG,CAAC,CAAC;oBACV,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBACjC,CAAC;gBAEH,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG;4BACb,eAAe,EAAE,QAAQ,CAAC,qBAAqB,IAAI,EAAE;4BACrD,cAAc,EAAE,EAAc;4BAC9B,UAAU,EAAE,QAAQ,CAAC,gBAAgB,IAAI,EAAE;4BAC3C,iBAAiB,EAAE,QAAQ,CAAC,kBAAkB,EAAE,0BAA0B,IAAI,EAAE;yBACjF,CAAC;wBACF,MAAM,GAAG,GAA0B;4BACjC,MAAM,EAAE,OAAO,CAAC,MAAM;4BACtB,KAAK,EAAE,OAAO,CAAC,YAAY;4BAC3B,IAAI,EAAE,OAAO,CAAC,IAAI;4BAClB,MAAM,EAAE,EAAE;4BACV,KAAK;4BACL,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,QAAS,CAAC,CAAC,CAAC,CAAC,CAAC;4BAC9C,kBAAkB,EAAE,MAAM;yBAC3B,CAAC;wBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;wBAClD,IAAI,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC;4BACvB,QAAQ;4BACR,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;4BACvC,IAAI,WAAW,GAAG,KAAK,CAAC;4BACxB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gCAC3C,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC;oCACjE,WAAW,GAAG,IAAI,CAAC;oCACnB,MAAM;gCACR,CAAC;4BACH,CAAC;4BACD,IAAI,CAAC,WAAW,EAAE,CAAC;gCACjB,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,kBAAkB,CAAC,CAAC;gCACtE,OAAO,CAAC,cAAc,EAAE,CAAC;gCACzB,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;gCAClD,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCAC3C,QAAQ,CAAC,iBAAiB,EAAE;oCAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY;oCACnD,KAAK,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc;oCAC7C,aAAa,EAAE,WAAW,CAAC,MAAM;iCAClC,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,QAAQ,CAAC,uBAAuB,EAAE;4BAChC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY;yBACpD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACD,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAChF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,gBAAgB,GAAG,WAAW,CAAC;QACzC,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAsC,CAAC,CAAC;QAExF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnB,OAAO;YACL,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,YAAY;YAC3B,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;YACvC,SAAS,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,IAAI,WAAW;YAC9D,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;YACvD,OAAO;YACP,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;SACzD,CAAC;IACJ,CAAC;IAED;wDACoD;IAC5C,KAAK,CAAC,WAAW,CACvB,OAAmB,EACnB,UAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC,gBAAgB,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,OAAO;YAAE,OAAO;QACxB,IAAI,EAAE,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO;QAC1F,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;YAAE,OAAO;QAErC,MAAM,OAAO,GACX,CAAC,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CACpE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,SAAS,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAwB;gBACnC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO;gBACP,eAAe,EAAE,OAAO,CAAC,YAAY;gBACrC,iBAAiB,EAAE,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC;gBACjD,YAAY,EAAE;oBACZ,KAAK,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,OAAO,EAAE;oBAClD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,UAAU,EAAE,OAAO,KAAK,WAAW;wBACjC,CAAC,CAAC,6BAA6B,OAAO,CAAC,YAAY,UAAU;wBAC7D,CAAC,CAAC,2BAA2B,UAAU,WAAW,OAAO,CAAC,YAAY,UAAU;oBAClF,cAAc,EAAE,EAAE;oBAClB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC7C;gBACD,eAAe,EAAE,EAAE;gBACnB,cAAc,EAAE;oBACd,WAAW,EAAE,6BAA6B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG;oBACtE,aAAa,EAAE,yCAAyC,OAAO,CAAC,MAAM,IAAI;iBAC3E;aACF,CAAC;YACF,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACjC,QAAQ,CAAC,kBAAkB,EAAE;gBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU;gBAClC,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM;aAC9C,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,wBAAwB,EAAE;gBACjC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,cAAc,CAAC,SAAiB;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,SAAS,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -184,6 +184,37 @@ export declare const TOOL_SCHEMAS: ({
184
184
  };
185
185
  description: string;
186
186
  };
187
+ worker_results: {
188
+ type: "array";
189
+ description: string;
190
+ items: {
191
+ type: "object";
192
+ properties: {
193
+ agentId: {
194
+ type: "string";
195
+ };
196
+ subAgentType: {
197
+ type: "string";
198
+ };
199
+ subTask: {
200
+ type: "string";
201
+ };
202
+ resultSummary: {
203
+ type: "string";
204
+ };
205
+ success: {
206
+ type: "boolean";
207
+ };
208
+ discoveredConstraints: {
209
+ type: "array";
210
+ items: {
211
+ type: "string";
212
+ };
213
+ };
214
+ };
215
+ required: string[];
216
+ };
217
+ };
187
218
  };
188
219
  };
189
220
  task?: undefined;
@@ -256,6 +287,6 @@ export declare const TOOL_SCHEMAS: ({
256
287
  required: string[];
257
288
  };
258
289
  })[];
259
- export type ToolHandler = (mgr: SessionManager, input: Record<string, unknown>) => Record<string, unknown>;
290
+ export type ToolHandler = (mgr: SessionManager, input: Record<string, unknown>) => Promise<Record<string, unknown>>;
260
291
  export declare const TOOL_HANDLERS: Record<string, ToolHandler>;
261
292
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,cAAc,CAAC;AAO/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4OxB,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3G,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA0HrD,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,cAAc,CAAC;AAO/D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+PxB,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA0HrD,CAAC"}
package/dist/mcp/tools.js CHANGED
@@ -150,6 +150,25 @@ export const TOOL_SCHEMAS = [
150
150
  items: { type: "string" },
151
151
  description: "Optional. Assumptions from earlier rounds that were incorrect.",
152
152
  },
153
+ worker_results: {
154
+ type: "array",
155
+ description: "Optional. Results of sub-agent / Worker delegations this round.",
156
+ items: {
157
+ type: "object",
158
+ properties: {
159
+ agentId: { type: "string" },
160
+ subAgentType: { type: "string" },
161
+ subTask: { type: "string" },
162
+ resultSummary: { type: "string" },
163
+ success: { type: "boolean" },
164
+ discoveredConstraints: {
165
+ type: "array",
166
+ items: { type: "string" },
167
+ },
168
+ },
169
+ required: ["agentId", "subAgentType", "subTask", "resultSummary", "success"],
170
+ },
171
+ },
153
172
  },
154
173
  },
155
174
  },
@@ -237,7 +256,7 @@ export const TOOL_SCHEMAS = [
237
256
  },
238
257
  ];
239
258
  export const TOOL_HANDLERS = {
240
- loopforge_start(mgr, input) {
259
+ async loopforge_start(mgr, input) {
241
260
  const startInput = {
242
261
  task: String(input.task ?? ""),
243
262
  loopId: input.loopId,
@@ -251,10 +270,10 @@ export const TOOL_HANDLERS = {
251
270
  if (!startInput.task.trim()) {
252
271
  return { error: "task is required and must be non-empty" };
253
272
  }
254
- const result = mgr.create(startInput);
273
+ const result = await mgr.create(startInput);
255
274
  return { ...result };
256
275
  },
257
- loopforge_next(mgr, input) {
276
+ async loopforge_next(mgr, input) {
258
277
  const sessionId = String(input.sessionId ?? "");
259
278
  const output = String(input.output ?? "");
260
279
  const rawEval = input.evaluation;
@@ -266,14 +285,14 @@ export const TOOL_HANDLERS = {
266
285
  if (!preExtractedEval && !output.trim()) {
267
286
  return { error: "Either evaluation parameter or output with ---loopforge-eval block is required" };
268
287
  }
269
- const result = mgr.advance(sessionId, output, preExtractedEval);
288
+ const result = await mgr.advance(sessionId, output, preExtractedEval);
270
289
  // Clean up finished sessions
271
290
  if (result.prompt === null) {
272
291
  mgr.delete(sessionId);
273
292
  }
274
293
  return { ...result };
275
294
  },
276
- loopforge_status(mgr, input) {
295
+ async loopforge_status(mgr, input) {
277
296
  const sessionId = String(input.sessionId ?? "");
278
297
  if (!sessionId)
279
298
  return { error: "sessionId is required" };
@@ -299,7 +318,7 @@ export const TOOL_HANDLERS = {
299
318
  },
300
319
  };
301
320
  },
302
- loopforge_stop(mgr, input) {
321
+ async loopforge_stop(mgr, input) {
303
322
  const sessionId = String(input.sessionId ?? "");
304
323
  if (!sessionId)
305
324
  return { error: "sessionId is required" };
@@ -311,11 +330,11 @@ export const TOOL_HANDLERS = {
311
330
  mgr.delete(sessionId);
312
331
  return { success: true, roundsCompleted, qualityTrajectory };
313
332
  },
314
- loopforge_list(mgr, _input) {
333
+ async loopforge_list(mgr, _input) {
315
334
  const sessions = mgr.list();
316
335
  return { sessions };
317
336
  },
318
- loopforge_replay(mgr, input) {
337
+ async loopforge_replay(mgr, input) {
319
338
  const sessionId = String(input.sessionId ?? "");
320
339
  if (!sessionId)
321
340
  return { error: "sessionId is required" };
@@ -325,7 +344,7 @@ export const TOOL_HANDLERS = {
325
344
  const timeline = mgr.replayTimeline(sessionId) ?? [];
326
345
  return { sessionId, loopId: session.loopId, timeline };
327
346
  },
328
- loopforge_resume(mgr, input) {
347
+ async loopforge_resume(mgr, input) {
329
348
  const loopId = String(input.loopId ?? "");
330
349
  if (!loopId)
331
350
  return { error: "loopId is required" };
@@ -334,7 +353,7 @@ export const TOOL_HANDLERS = {
334
353
  return { error: `no saved session found for loop "${loopId}"` };
335
354
  return { ...result };
336
355
  },
337
- loopforge_health(mgr, input) {
356
+ async loopforge_health(mgr, input) {
338
357
  const loopId = String(input.loopId ?? "");
339
358
  if (!loopId)
340
359
  return { error: "loopId is required" };