swarm-engine 1.3.0 → 1.41.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 (145) hide show
  1. package/README.md +45 -7
  2. package/dist/cli/commands/memory.js +117 -0
  3. package/dist/cli/commands/memory.js.map +1 -1
  4. package/dist/core/patterns.d.ts +7 -1
  5. package/dist/core/patterns.d.ts.map +1 -1
  6. package/dist/core/patterns.js +23 -0
  7. package/dist/core/patterns.js.map +1 -1
  8. package/dist/core/types.d.ts +39 -0
  9. package/dist/core/types.d.ts.map +1 -1
  10. package/dist/core/types.js.map +1 -1
  11. package/dist/index.d.ts +55 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +40 -0
  14. package/dist/index.js.map +1 -1
  15. package/dist/memory/index.d.ts +37 -0
  16. package/dist/memory/index.d.ts.map +1 -1
  17. package/dist/memory/index.js +91 -0
  18. package/dist/memory/index.js.map +1 -1
  19. package/dist/runtime/adaptive.d.ts +1 -0
  20. package/dist/runtime/adaptive.d.ts.map +1 -1
  21. package/dist/runtime/adaptive.js +18 -4
  22. package/dist/runtime/adaptive.js.map +1 -1
  23. package/dist/runtime/agent-runner.d.ts +18 -0
  24. package/dist/runtime/agent-runner.d.ts.map +1 -1
  25. package/dist/runtime/agent-runner.js +147 -4
  26. package/dist/runtime/agent-runner.js.map +1 -1
  27. package/dist/runtime/backends/claude-session.d.ts +49 -0
  28. package/dist/runtime/backends/claude-session.d.ts.map +1 -0
  29. package/dist/runtime/backends/claude-session.js +237 -0
  30. package/dist/runtime/backends/claude-session.js.map +1 -0
  31. package/dist/runtime/backends/claude.d.ts.map +1 -1
  32. package/dist/runtime/backends/claude.js +90 -4
  33. package/dist/runtime/backends/claude.js.map +1 -1
  34. package/dist/runtime/backends/types.d.ts +31 -1
  35. package/dist/runtime/backends/types.d.ts.map +1 -1
  36. package/dist/runtime/compaction.d.ts +7 -1
  37. package/dist/runtime/compaction.d.ts.map +1 -1
  38. package/dist/runtime/compaction.js +12 -2
  39. package/dist/runtime/compaction.js.map +1 -1
  40. package/dist/runtime/distiller.d.ts +1 -0
  41. package/dist/runtime/distiller.d.ts.map +1 -1
  42. package/dist/runtime/distiller.js +8 -2
  43. package/dist/runtime/distiller.js.map +1 -1
  44. package/dist/runtime/engine.d.ts +48 -2
  45. package/dist/runtime/engine.d.ts.map +1 -1
  46. package/dist/runtime/engine.js +600 -8
  47. package/dist/runtime/engine.js.map +1 -1
  48. package/dist/runtime/execution-graph.d.ts +86 -0
  49. package/dist/runtime/execution-graph.d.ts.map +1 -0
  50. package/dist/runtime/execution-graph.js +441 -0
  51. package/dist/runtime/execution-graph.js.map +1 -0
  52. package/dist/runtime/executor.d.ts +7 -1
  53. package/dist/runtime/executor.d.ts.map +1 -1
  54. package/dist/runtime/executor.js +20 -0
  55. package/dist/runtime/executor.js.map +1 -1
  56. package/dist/runtime/graph-adversarial.d.ts +88 -0
  57. package/dist/runtime/graph-adversarial.d.ts.map +1 -0
  58. package/dist/runtime/graph-adversarial.js +378 -0
  59. package/dist/runtime/graph-adversarial.js.map +1 -0
  60. package/dist/runtime/graph-analyzer.d.ts +106 -0
  61. package/dist/runtime/graph-analyzer.d.ts.map +1 -0
  62. package/dist/runtime/graph-analyzer.js +321 -0
  63. package/dist/runtime/graph-analyzer.js.map +1 -0
  64. package/dist/runtime/graph-causal.d.ts +91 -0
  65. package/dist/runtime/graph-causal.d.ts.map +1 -0
  66. package/dist/runtime/graph-causal.js +292 -0
  67. package/dist/runtime/graph-causal.js.map +1 -0
  68. package/dist/runtime/graph-context-router.d.ts +73 -0
  69. package/dist/runtime/graph-context-router.d.ts.map +1 -0
  70. package/dist/runtime/graph-context-router.js +162 -0
  71. package/dist/runtime/graph-context-router.js.map +1 -0
  72. package/dist/runtime/graph-discovery.d.ts +71 -0
  73. package/dist/runtime/graph-discovery.d.ts.map +1 -0
  74. package/dist/runtime/graph-discovery.js +364 -0
  75. package/dist/runtime/graph-discovery.js.map +1 -0
  76. package/dist/runtime/graph-dropout.d.ts +59 -0
  77. package/dist/runtime/graph-dropout.d.ts.map +1 -0
  78. package/dist/runtime/graph-dropout.js +204 -0
  79. package/dist/runtime/graph-dropout.js.map +1 -0
  80. package/dist/runtime/graph-embeddings.d.ts +58 -0
  81. package/dist/runtime/graph-embeddings.d.ts.map +1 -0
  82. package/dist/runtime/graph-embeddings.js +299 -0
  83. package/dist/runtime/graph-embeddings.js.map +1 -0
  84. package/dist/runtime/graph-feedback.d.ts +30 -0
  85. package/dist/runtime/graph-feedback.d.ts.map +1 -0
  86. package/dist/runtime/graph-feedback.js +80 -0
  87. package/dist/runtime/graph-feedback.js.map +1 -0
  88. package/dist/runtime/graph-gnn.d.ts +120 -0
  89. package/dist/runtime/graph-gnn.d.ts.map +1 -0
  90. package/dist/runtime/graph-gnn.js +524 -0
  91. package/dist/runtime/graph-gnn.js.map +1 -0
  92. package/dist/runtime/graph-learner.d.ts +70 -0
  93. package/dist/runtime/graph-learner.d.ts.map +1 -0
  94. package/dist/runtime/graph-learner.js +265 -0
  95. package/dist/runtime/graph-learner.js.map +1 -0
  96. package/dist/runtime/graph-meta-adversarial.d.ts +113 -0
  97. package/dist/runtime/graph-meta-adversarial.d.ts.map +1 -0
  98. package/dist/runtime/graph-meta-adversarial.js +366 -0
  99. package/dist/runtime/graph-meta-adversarial.js.map +1 -0
  100. package/dist/runtime/graph-meta.d.ts +115 -0
  101. package/dist/runtime/graph-meta.d.ts.map +1 -0
  102. package/dist/runtime/graph-meta.js +465 -0
  103. package/dist/runtime/graph-meta.js.map +1 -0
  104. package/dist/runtime/graph-self-evolve.d.ts +92 -0
  105. package/dist/runtime/graph-self-evolve.d.ts.map +1 -0
  106. package/dist/runtime/graph-self-evolve.js +422 -0
  107. package/dist/runtime/graph-self-evolve.js.map +1 -0
  108. package/dist/runtime/graph-synthesis.d.ts +47 -0
  109. package/dist/runtime/graph-synthesis.d.ts.map +1 -0
  110. package/dist/runtime/graph-synthesis.js +232 -0
  111. package/dist/runtime/graph-synthesis.js.map +1 -0
  112. package/dist/runtime/graph-trajectory.d.ts +88 -0
  113. package/dist/runtime/graph-trajectory.d.ts.map +1 -0
  114. package/dist/runtime/graph-trajectory.js +334 -0
  115. package/dist/runtime/graph-trajectory.js.map +1 -0
  116. package/dist/runtime/learning-engine.d.ts +12 -0
  117. package/dist/runtime/learning-engine.d.ts.map +1 -1
  118. package/dist/runtime/learning-engine.js +70 -0
  119. package/dist/runtime/learning-engine.js.map +1 -1
  120. package/dist/runtime/prompt-compressor.d.ts +16 -0
  121. package/dist/runtime/prompt-compressor.d.ts.map +1 -0
  122. package/dist/runtime/prompt-compressor.js +68 -0
  123. package/dist/runtime/prompt-compressor.js.map +1 -0
  124. package/dist/runtime/repo-map.d.ts +40 -0
  125. package/dist/runtime/repo-map.d.ts.map +1 -0
  126. package/dist/runtime/repo-map.js +358 -0
  127. package/dist/runtime/repo-map.js.map +1 -0
  128. package/dist/runtime/sdk-mcp-server.d.ts +44 -0
  129. package/dist/runtime/sdk-mcp-server.d.ts.map +1 -0
  130. package/dist/runtime/sdk-mcp-server.js +133 -0
  131. package/dist/runtime/sdk-mcp-server.js.map +1 -0
  132. package/dist/runtime/structured-handoff.d.ts +41 -0
  133. package/dist/runtime/structured-handoff.d.ts.map +1 -0
  134. package/dist/runtime/structured-handoff.js +279 -0
  135. package/dist/runtime/structured-handoff.js.map +1 -0
  136. package/dist/runtime/token-analytics.d.ts +38 -0
  137. package/dist/runtime/token-analytics.d.ts.map +1 -0
  138. package/dist/runtime/token-analytics.js +59 -0
  139. package/dist/runtime/token-analytics.js.map +1 -0
  140. package/dist/runtime/verifier.d.ts +10 -0
  141. package/dist/runtime/verifier.d.ts.map +1 -1
  142. package/dist/runtime/verifier.js +97 -1
  143. package/dist/runtime/verifier.js.map +1 -1
  144. package/package.json +2 -2
  145. package/skills/swarm-output-style/SKILL.md +71 -33
@@ -6,6 +6,8 @@ export interface MemoryEntry {
6
6
  tags?: string[];
7
7
  repo?: string;
8
8
  source?: string;
9
+ created_at?: string;
10
+ updated_at?: string;
9
11
  }
10
12
  export interface SearchResult {
11
13
  id: number;
@@ -98,6 +100,41 @@ export declare class SwarmMemory {
98
100
  byType: Record<string, number>;
99
101
  byRepo: Record<string, number>;
100
102
  };
103
+ /**
104
+ * Bulk delete entries matching criteria.
105
+ * At least one filter is required to prevent accidental wipe-all.
106
+ */
107
+ purge(options: {
108
+ before?: string;
109
+ type?: string;
110
+ repo?: string;
111
+ dryRun?: boolean;
112
+ }): {
113
+ deleted: number;
114
+ entries?: MemoryEntry[];
115
+ };
116
+ /**
117
+ * Find entries with duplicate titles.
118
+ * Returns groups where count > 1, ordered by count descending.
119
+ */
120
+ findDuplicates(options?: {
121
+ type?: string;
122
+ }): Array<{
123
+ title: string;
124
+ count: number;
125
+ ids: number[];
126
+ }>;
127
+ /**
128
+ * Auto-clean duplicates: for each group of entries sharing the same title,
129
+ * keep the newest (highest ID), mark older ones with superseded_by, then delete them.
130
+ */
131
+ prune(options?: {
132
+ type?: string;
133
+ dryRun?: boolean;
134
+ }): {
135
+ pruned: number;
136
+ kept: number;
137
+ };
101
138
  /**
102
139
  * Close the database.
103
140
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB9C;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAuBjC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IA6BvD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAoDnB,OAAO,CAAC,OAAO;IAUf;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,EAAE;IAkDjG;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAiBnC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAiC/E;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA8BtF;;OAEG;IACH,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAsB1F;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;GAQG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB9C;;OAEG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAuBjC;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IA6BvD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAMxB;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAoDnB,OAAO,CAAC,OAAO;IAUf;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,EAAE;IAkDjG;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAmBnC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAiC/E;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAMxD;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA8BtF;;OAEG;IACH,KAAK,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;IAwB1F;;;OAGG;IACH,KAAK,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QACnF,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;KACzB;IAiDD;;;OAGG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAmBnG;;;OAGG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IA2BtF;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
@@ -211,6 +211,8 @@ ${entry.content}
211
211
  tags: JSON.parse(row.tags ?? '[]'),
212
212
  repo: row.repo,
213
213
  source: row.source,
214
+ created_at: row.created_at,
215
+ updated_at: row.updated_at,
214
216
  };
215
217
  }
216
218
  /**
@@ -302,6 +304,95 @@ ${entry.content}
302
304
  }
303
305
  return { total, byType, byRepo };
304
306
  }
307
+ // --- Data Quality --------------------------------------------------------
308
+ /**
309
+ * Bulk delete entries matching criteria.
310
+ * At least one filter is required to prevent accidental wipe-all.
311
+ */
312
+ purge(options) {
313
+ if (!options.before && !options.type && !options.repo) {
314
+ throw new Error('At least one filter (before, type, repo) is required');
315
+ }
316
+ if (options.before && !/^\d{4}-\d{2}-\d{2}/.test(options.before)) {
317
+ throw new Error('Invalid date format for "before" — expected YYYY-MM-DD');
318
+ }
319
+ const conditions = [];
320
+ const params = [];
321
+ if (options.before) {
322
+ conditions.push('created_at < ?');
323
+ params.push(options.before);
324
+ }
325
+ if (options.type) {
326
+ conditions.push('type = ?');
327
+ params.push(options.type);
328
+ }
329
+ if (options.repo) {
330
+ conditions.push('repo = ?');
331
+ params.push(options.repo);
332
+ }
333
+ const where = conditions.join(' AND ');
334
+ if (options.dryRun) {
335
+ const rows = this.db.prepare(`SELECT * FROM memory_entries WHERE ${where}`).all(...params);
336
+ return {
337
+ deleted: rows.length,
338
+ entries: rows.map((row) => ({
339
+ id: row.id,
340
+ type: row.type,
341
+ title: row.title,
342
+ content: row.content,
343
+ tags: JSON.parse(row.tags ?? '[]'),
344
+ repo: row.repo,
345
+ source: row.source,
346
+ })),
347
+ };
348
+ }
349
+ const result = this.db.prepare(`DELETE FROM memory_entries WHERE ${where}`).run(...params);
350
+ return { deleted: result.changes };
351
+ }
352
+ /**
353
+ * Find entries with duplicate titles.
354
+ * Returns groups where count > 1, ordered by count descending.
355
+ */
356
+ findDuplicates(options) {
357
+ let sql = 'SELECT title, COUNT(*) as count, GROUP_CONCAT(id) as ids FROM memory_entries';
358
+ const params = [];
359
+ if (options?.type) {
360
+ sql += ' WHERE type = ?';
361
+ params.push(options.type);
362
+ }
363
+ sql += ' GROUP BY title, type HAVING count > 1 ORDER BY count DESC';
364
+ const rows = this.db.prepare(sql).all(...params);
365
+ return rows.map((row) => ({
366
+ title: row.title,
367
+ count: row.count,
368
+ ids: String(row.ids).split(',').map(Number),
369
+ }));
370
+ }
371
+ /**
372
+ * Auto-clean duplicates: for each group of entries sharing the same title,
373
+ * keep the newest (highest ID), mark older ones with superseded_by, then delete them.
374
+ */
375
+ prune(options) {
376
+ const duplicates = this.findDuplicates({ type: options?.type });
377
+ let pruned = 0;
378
+ let kept = 0;
379
+ for (const group of duplicates) {
380
+ const sorted = [...group.ids].sort((a, b) => b - a);
381
+ const keepId = sorted[0];
382
+ const deleteIds = sorted.slice(1);
383
+ kept++;
384
+ if (!options?.dryRun) {
385
+ for (const id of deleteIds) {
386
+ this.db.prepare('UPDATE memory_entries SET superseded_by = ? WHERE id = ?').run(keepId, id);
387
+ }
388
+ for (const id of deleteIds) {
389
+ this.delete(id);
390
+ }
391
+ }
392
+ pruned += deleteIds.length;
393
+ }
394
+ return { pruned, kept };
395
+ }
305
396
  /**
306
397
  * Close the database.
307
398
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { TraceStore } from './traces.js';
4
4
  export interface PlanAdaptation {
5
5
  skipPhases: string[];
6
6
  modelOverrides: Record<string, string>;
7
+ effortOverrides?: Record<string, 'low' | 'medium' | 'high' | 'max'>;
7
8
  reason: string;
8
9
  }
9
10
  export interface DropoutDecision {
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;gBAE1B,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;IA4InG;;OAEG;IACH,KAAK,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IAqB7E;;;;OAIG;IACH,eAAe,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI;IA+BxG,OAAO,CAAC,aAAa;CAwCtB"}
1
+ {"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,WAAW,EAAmB,MAAM,kBAAkB,CAAC;AAEtG,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;IACpE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;gBAE1B,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;IAKnD;;OAEG;IACH,OAAO,CAAC,aAAa,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,GAAG,cAAc,GAAG,IAAI;IAkJnG;;OAEG;IACH,KAAK,CAAC,aAAa,EAAE,qBAAqB,EAAE,UAAU,EAAE,cAAc,GAAG,IAAI;IA+B7E;;;;OAIG;IACH,eAAe,CAAC,aAAa,EAAE,qBAAqB,EAAE,YAAY,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI;IA+BxG,OAAO,CAAC,aAAa;CAwCtB"}
@@ -13,6 +13,7 @@ export class AdaptiveReplanner {
13
13
  const adaptations = {
14
14
  skipPhases: [],
15
15
  modelOverrides: {},
16
+ effortOverrides: {},
16
17
  reason: '',
17
18
  };
18
19
  let adapted = false;
@@ -21,7 +22,7 @@ export class AdaptiveReplanner {
21
22
  const totalOutput = completedPhase.agents.reduce((sum, a) => sum + (a.result?.output.length ?? 0), 0);
22
23
  const isSmallOutput = totalOutput < 2000; // ~500 tokens
23
24
  if (allHighConfidence && isSmallOutput && completedPhase.config.kind === 'research') {
24
- // Simple task — downgrade remaining models and skip devil's advocate
25
+ // Simple task — downgrade remaining models, reduce effort, and skip devil's advocate
25
26
  const remaining = orchestration.phases.filter((p) => p.status === 'pending');
26
27
  for (const phase of remaining) {
27
28
  for (const agent of phase.config.agents) {
@@ -29,6 +30,7 @@ export class AdaptiveReplanner {
29
30
  adaptations.modelOverrides[agent.name] = 'claude-sonnet-4-6';
30
31
  adapted = true;
31
32
  }
33
+ adaptations.effortOverrides[agent.name] = 'low';
32
34
  }
33
35
  // Skip challenge/devil's advocate phases
34
36
  if (phase.config.kind === 'challenge') {
@@ -38,7 +40,7 @@ export class AdaptiveReplanner {
38
40
  }
39
41
  if (adapted)
40
42
  adaptations.reason =
41
- 'Simple task detected (high confidence, small output) — downgrading models and skipping adversarial phases';
43
+ 'Simple task detected (high confidence, small output) — downgrading models, reducing effort, and skipping adversarial phases';
42
44
  }
43
45
  // Rule 2: Low confidence or blockers → task is complex, upgrade
44
46
  const anyLowConfidence = completedPhase.agents.some((a) => a.result?.confidence === 'low');
@@ -51,10 +53,11 @@ export class AdaptiveReplanner {
51
53
  adaptations.modelOverrides[agent.name] = 'claude-opus-4-6';
52
54
  adapted = true;
53
55
  }
56
+ adaptations.effortOverrides[agent.name] = 'high';
54
57
  }
55
58
  }
56
59
  if (adapted)
57
- adaptations.reason = `Complex task detected (${anyLowConfidence ? 'low confidence' : 'blockers found'}) — upgrading remaining agents to expensive tier`;
60
+ adaptations.reason = `Complex task detected (${anyLowConfidence ? 'low confidence' : 'blockers found'}) — upgrading remaining agents to expensive tier with high effort`;
58
61
  }
59
62
  // Rule 3: Budget overrun — downgrade remaining
60
63
  if (!adapted && orchestration.config.costBudget) {
@@ -120,10 +123,12 @@ export class AdaptiveReplanner {
120
123
  adaptations.modelOverrides[agent.name] = 'claude-opus-4-6';
121
124
  adapted = true;
122
125
  }
126
+ adaptations.effortOverrides[agent.name] = 'max';
123
127
  }
124
128
  }
125
129
  if (adapted)
126
- adaptations.reason = 'Confidence dropped sharply between phases — upgrading remaining agents';
130
+ adaptations.reason =
131
+ 'Confidence dropped sharply between phases — upgrading remaining agents with max effort';
127
132
  }
128
133
  }
129
134
  }
@@ -157,6 +162,15 @@ export class AdaptiveReplanner {
157
162
  }
158
163
  }
159
164
  }
165
+ // Override effort levels
166
+ if (adaptation.effortOverrides) {
167
+ for (const [agentName, effort] of Object.entries(adaptation.effortOverrides)) {
168
+ const agent = orchestration.phases.flatMap((p) => p.agents).find((a) => a.config.name === agentName);
169
+ if (agent) {
170
+ agent.config.effort = effort;
171
+ }
172
+ }
173
+ }
160
174
  }
161
175
  /**
162
176
  * Evaluate whether agents in a pending phase are still needed.
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../../src/runtime/adaptive.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,10 @@ import { Logger } from '../utils/logger.js';
6
6
  import { CompactionManager } from './compaction.js';
7
7
  import { WorktreeManager } from './worktree.js';
8
8
  import type { LivingSpec } from './living-spec.js';
9
+ import type { GraphContextRouter } from './graph-context-router.js';
10
+ import type { GraphAnalyzer } from './graph-analyzer.js';
11
+ import type { GraphLearner } from './graph-learner.js';
12
+ import type { LSPClient } from './lsp.js';
9
13
  /**
10
14
  * Per-orchestration context passed to agent execution methods.
11
15
  */
@@ -14,6 +18,9 @@ export interface AgentRunContext {
14
18
  livingSpec: LivingSpec | null;
15
19
  sharedContextFiles: string[];
16
20
  cwd?: string;
21
+ intraPhaseOutputs?: Map<string, string[]>;
22
+ testResults?: string;
23
+ phaseKind?: string;
17
24
  }
18
25
  export interface AgentRunnerDeps {
19
26
  registry: AgentRegistry;
@@ -22,6 +29,11 @@ export interface AgentRunnerDeps {
22
29
  logger: Logger;
23
30
  compaction: CompactionManager;
24
31
  worktreeManager: WorktreeManager | null;
32
+ contextRouter?: GraphContextRouter;
33
+ graphLearner?: GraphLearner | null;
34
+ graphAnalyzer?: GraphAnalyzer | null;
35
+ projectDir?: string;
36
+ lsp?: LSPClient;
25
37
  }
26
38
  /**
27
39
  * Handles individual agent execution, retry logic, worktree management,
@@ -34,6 +46,12 @@ export declare class AgentRunner {
34
46
  private log;
35
47
  private compaction;
36
48
  private worktreeManager;
49
+ private contextRouter;
50
+ private graphLearner;
51
+ private graphAnalyzer;
52
+ private projectDir;
53
+ private lsp;
54
+ private phaseContextCache;
37
55
  constructor(deps: AgentRunnerDeps);
38
56
  /**
39
57
  * Execute a single agent with retry logic.
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../src/runtime/agent-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAMnD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,IAAI,EAAE,eAAe;IASjC;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,MAAM,YAAI,EACtB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC;IAgCzB;;OAEG;YACW,YAAY;IAqG1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
1
+ {"version":3,"file":"agent-runner.d.ts","sourceRoot":"","sources":["../../src/runtime/agent-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAKhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAK1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,QAAQ,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,SAAS,CAAC;CACjB;AAgBD;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,GAAG,CAAW;IACtB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,GAAG,CAAwB;IAGnC,OAAO,CAAC,iBAAiB,CAA6B;gBAE1C,IAAI,EAAE,eAAe;IAcjC;;OAEG;IACG,qBAAqB,CACzB,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,UAAU,EAAE,MAAM,YAAI,EACtB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC;IAwCzB;;OAEG;YACW,YAAY;IA2N1B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAW3B"}
@@ -1,10 +1,26 @@
1
1
  import { optimizeForCache } from './cache-optimizer.js';
2
- import { classifyTaskComplexity, selectStartingTier } from './cascade.js';
2
+ import { classifyTaskComplexity, selectStartingTier, getNextTier } from './cascade.js';
3
+ import { inferTier } from '../utils/tiers.js';
3
4
  import { formatLivingSpec } from './living-spec.js';
4
5
  import { redactSecrets } from '../utils/redact.js';
6
+ import { extractFileReferences } from './graph-learner.js';
7
+ import { RepoMapGenerator } from './repo-map.js';
5
8
  import { join } from 'path';
6
9
  import { existsSync, mkdirSync, writeFileSync } from 'fs';
7
10
  import { randomUUID } from 'crypto';
11
+ // Default maxTurns by agent type — balances thoroughness vs. cost
12
+ const DEFAULT_MAX_TURNS = {
13
+ researcher: 15,
14
+ implementer: 25,
15
+ reviewer: 10,
16
+ tester: 15,
17
+ debugger: 20,
18
+ documenter: 10,
19
+ planner: 10,
20
+ refactorer: 20,
21
+ integrator: 15,
22
+ 'devils-advocate': 10,
23
+ };
8
24
  /**
9
25
  * Handles individual agent execution, retry logic, worktree management,
10
26
  * and prompt construction with cache-friendly ordering.
@@ -16,6 +32,13 @@ export class AgentRunner {
16
32
  log;
17
33
  compaction;
18
34
  worktreeManager;
35
+ contextRouter;
36
+ graphLearner;
37
+ graphAnalyzer;
38
+ projectDir;
39
+ lsp;
40
+ // Store per-phase orchestration context to ensure reference equality for cache hits
41
+ phaseContextCache = new Map();
19
42
  constructor(deps) {
20
43
  this.registry = deps.registry;
21
44
  this.executor = deps.executor;
@@ -23,12 +46,18 @@ export class AgentRunner {
23
46
  this.log = deps.logger.child('agent-runner');
24
47
  this.compaction = deps.compaction;
25
48
  this.worktreeManager = deps.worktreeManager;
49
+ this.contextRouter = deps.contextRouter;
50
+ this.graphLearner = deps.graphLearner ?? null;
51
+ this.graphAnalyzer = deps.graphAnalyzer ?? null;
52
+ this.projectDir = deps.projectDir;
53
+ this.lsp = deps.lsp;
26
54
  }
27
55
  /**
28
56
  * Execute a single agent with retry logic.
29
57
  */
30
58
  async executeAgentWithRetry(assignment, phase, orchestration, maxRetries = 2, context) {
31
59
  let lastError;
60
+ const originalPrompt = assignment.prompt;
32
61
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
33
62
  try {
34
63
  return await this.executeAgent(assignment, phase, orchestration, context);
@@ -45,6 +74,13 @@ export class AgentRunner {
45
74
  agent: assignment.name,
46
75
  error: lastError.message,
47
76
  });
77
+ // Error-informed retry: inject failure context so the agent tries a different approach
78
+ if (lastError) {
79
+ assignment = {
80
+ ...assignment,
81
+ prompt: `## Previous Attempt Failed\nError: ${lastError.message}\nAvoid the same approach. Try a different strategy.\n\n${originalPrompt || ''}`,
82
+ };
83
+ }
48
84
  await new Promise((resolve) => setTimeout(resolve, delayMs));
49
85
  }
50
86
  }
@@ -62,14 +98,93 @@ export class AgentRunner {
62
98
  backend: assignment.backend,
63
99
  backendModel: assignment.backendModel,
64
100
  });
101
+ // Apply default maxTurns by agent type if not explicitly configured
102
+ if (!instance.config.maxTurns) {
103
+ instance.config.maxTurns = DEFAULT_MAX_TURNS[assignment.type] || 20;
104
+ }
65
105
  phase.agents.push(instance);
66
106
  // Build task prompt with cache-friendly ordering:
67
107
  // Shared prefix (orchestration + phase context) comes first for API cache hits,
68
108
  // agent-specific content (definition + task) comes last.
69
- const orchestrationContext = `## Orchestration: ${orchestration.config.name}\nPattern: ${orchestration.config.pattern}`;
70
- const phaseContext = this.compaction.buildContextPrefix(context.phaseOutputs);
109
+ // Generate repo map for structural context (cache-stable prefix)
110
+ let repoMap = '';
111
+ if (this.projectDir) {
112
+ try {
113
+ repoMap = RepoMapGenerator.generateMap(this.projectDir, { maxTokens: 1500 });
114
+ }
115
+ catch {
116
+ /* silent — repo map generation is best-effort */
117
+ }
118
+ }
119
+ // Context dedup: reuse the exact same string object per phase so the SDK's
120
+ // prompt caching can detect the shared prefix across parallel agents
121
+ const orchContextRaw = (repoMap ? repoMap + '\n\n' : '') +
122
+ `## Orchestration: ${orchestration.config.name}\nPattern: ${orchestration.config.pattern}`;
123
+ const phaseKey = phase.config.name;
124
+ const cached = this.phaseContextCache.get(phaseKey);
125
+ const orchestrationContext = cached !== undefined && cached === orchContextRaw ? cached : orchContextRaw;
126
+ if (cached !== orchestrationContext) {
127
+ this.phaseContextCache.set(phaseKey, orchestrationContext);
128
+ }
129
+ // Use graph-routed context — with intra-phase enhancement for sequential agents (Feature 1)
130
+ let phaseContext;
131
+ if (this.contextRouter && context.intraPhaseOutputs?.size) {
132
+ phaseContext = this.contextRouter.buildContextWithIntraPhase(instance.id, assignment.prompt || '', context.phaseOutputs, context.intraPhaseOutputs);
133
+ }
134
+ else if (this.contextRouter) {
135
+ phaseContext = this.contextRouter.buildContext(instance.id, assignment.prompt || '', context.phaseOutputs);
136
+ }
137
+ else {
138
+ phaseContext = this.compaction.buildContextPrefix(context.phaseOutputs);
139
+ }
71
140
  const agentPrompt = instance.config.prompt;
72
- const baseTask = assignment.prompt || `Execute task as ${assignment.type}`;
141
+ // Risk warning injection (Feature 2): warn agents with high historical failure risk
142
+ let riskWarning = '';
143
+ if (this.graphAnalyzer) {
144
+ try {
145
+ const predictions = this.graphAnalyzer.predictFailures();
146
+ const agentRisk = predictions.find((p) => p.label === assignment.type);
147
+ if (agentRisk && agentRisk.riskScore > 0.4) {
148
+ riskWarning = `\n\n⚠️ RISK WARNING: This agent type (${assignment.type}) has a ${Math.round(agentRisk.riskScore * 100)}% historical failure risk. Common issues: ${agentRisk.reasons?.join(', ') || 'unknown'}. Take extra care with validation and error handling.\n`;
149
+ }
150
+ }
151
+ catch {
152
+ /* Graph prediction failed — continue without warning */
153
+ }
154
+ }
155
+ let baseTask = riskWarning + (assignment.prompt || `Execute task as ${assignment.type}`);
156
+ // Co-modification hints (Feature 5): suggest related files often changed together
157
+ if (this.graphLearner) {
158
+ try {
159
+ const files = extractFileReferences(baseTask);
160
+ if (files.length > 0) {
161
+ const coModHint = this.graphLearner.getCoModHints(files, 3);
162
+ if (coModHint)
163
+ baseTask += coModHint;
164
+ }
165
+ }
166
+ catch {
167
+ /* Graph co-mod hints failed — continue */
168
+ }
169
+ }
170
+ // Test feedback wiring: prepend current test status if available
171
+ if (context.testResults) {
172
+ baseTask = `## Current Test Status\n${context.testResults}\n\n${baseTask}`;
173
+ }
174
+ // LSP type info wiring for implementers and debuggers
175
+ let lspContext = '';
176
+ if (this.lsp && (assignment.type === 'implementer' || assignment.type === 'debugger')) {
177
+ try {
178
+ // TODO: Wire LSP when we can identify relevant symbol positions
179
+ // Currently hover(0,0) always returns info for the first character, which is not useful.
180
+ }
181
+ catch {
182
+ /* silent — LSP may not be running */
183
+ }
184
+ }
185
+ if (lspContext) {
186
+ baseTask += lspContext;
187
+ }
73
188
  const optimized = optimizeForCache(orchestrationContext, phaseContext, agentPrompt, baseTask);
74
189
  // For parallel phases with large shared prefix, use shared context file
75
190
  const sharedContextPath = phase.config.parallel ? this.writeSharedContext(optimized.sharedPrefix, context) : null;
@@ -81,6 +196,34 @@ export class AgentRunner {
81
196
  instance.config.model = startTier;
82
197
  }
83
198
  }
199
+ // Affinity routing (Feature 4): escalate model for agents with poor history on specific files
200
+ if (this.graphLearner && !assignment.model) {
201
+ try {
202
+ const files = extractFileReferences(baseTask);
203
+ if (files.length > 0) {
204
+ const perfs = this.graphLearner.getAgentFilePerformance(assignment.type);
205
+ const dirs = [...new Set(files.map((f) => f.split('/').slice(0, -1).join('/')).filter(Boolean))];
206
+ for (const perf of perfs) {
207
+ if (dirs.some((d) => perf.filePattern.includes(d)) && perf.sampleSize >= 5) {
208
+ if (perf.successRate < 0.5) {
209
+ const currentTier = inferTier(instance.config.model);
210
+ const nextTier = getNextTier(currentTier);
211
+ if (nextTier) {
212
+ this.log.debug(`Affinity routing: escalating model for ${assignment.type} on ${perf.filePattern} (${Math.round(perf.successRate * 100)}% success) — ${currentTier} → ${nextTier}`);
213
+ instance.config.model = selectStartingTier(nextTier === 'expensive' ? 'complex' : 'medium');
214
+ instance.config.affinityEscalated = true;
215
+ instance.config.originalSuccessRate = perf.successRate;
216
+ }
217
+ }
218
+ break;
219
+ }
220
+ }
221
+ }
222
+ }
223
+ catch {
224
+ /* Graph affinity routing failed — continue */
225
+ }
226
+ }
84
227
  // Inject living spec into task context
85
228
  const specPrefix = context.livingSpec ? formatLivingSpec(context.livingSpec) + '\n\n' : '';
86
229
  const task = sharedContextPath