swarm-engine 1.1.1 → 1.38.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 (339) hide show
  1. package/CLAUDE.md +1 -1
  2. package/README.md +145 -30
  3. package/commands/diff-review.md +27 -15
  4. package/commands/discover.md +102 -0
  5. package/commands/dynamic.md +136 -0
  6. package/commands/fix-pr.md +30 -24
  7. package/commands/postmortem.md +106 -0
  8. package/commands/red-team.md +41 -26
  9. package/commands/research.md +22 -1
  10. package/commands/review-cycle.md +38 -20
  11. package/commands/spike.md +108 -0
  12. package/commands/swarm.md +68 -60
  13. package/commands/tdd.md +44 -24
  14. package/dist/cli/commands/acp.d.ts.map +1 -1
  15. package/dist/cli/commands/acp.js +12 -2
  16. package/dist/cli/commands/acp.js.map +1 -1
  17. package/dist/cli/commands/agents.d.ts.map +1 -1
  18. package/dist/cli/commands/agents.js +16 -13
  19. package/dist/cli/commands/agents.js.map +1 -1
  20. package/dist/cli/commands/completions.d.ts.map +1 -1
  21. package/dist/cli/commands/completions.js +21 -9
  22. package/dist/cli/commands/completions.js.map +1 -1
  23. package/dist/cli/commands/compound.d.ts.map +1 -1
  24. package/dist/cli/commands/compound.js +1 -2
  25. package/dist/cli/commands/compound.js.map +1 -1
  26. package/dist/cli/commands/configure.d.ts.map +1 -1
  27. package/dist/cli/commands/configure.js +24 -8
  28. package/dist/cli/commands/configure.js.map +1 -1
  29. package/dist/cli/commands/convert.d.ts +1 -1
  30. package/dist/cli/commands/convert.d.ts.map +1 -1
  31. package/dist/cli/commands/convert.js +22 -48
  32. package/dist/cli/commands/convert.js.map +1 -1
  33. package/dist/cli/commands/doctor.d.ts.map +1 -1
  34. package/dist/cli/commands/doctor.js +1 -3
  35. package/dist/cli/commands/doctor.js.map +1 -1
  36. package/dist/cli/commands/init.d.ts.map +1 -1
  37. package/dist/cli/commands/init.js +17 -7
  38. package/dist/cli/commands/init.js.map +1 -1
  39. package/dist/cli/commands/install.d.ts.map +1 -1
  40. package/dist/cli/commands/install.js +1 -1
  41. package/dist/cli/commands/install.js.map +1 -1
  42. package/dist/cli/commands/learn.js +6 -6
  43. package/dist/cli/commands/learn.js.map +1 -1
  44. package/dist/cli/commands/mcp.d.ts.map +1 -1
  45. package/dist/cli/commands/mcp.js +1 -2
  46. package/dist/cli/commands/mcp.js.map +1 -1
  47. package/dist/cli/commands/memory.d.ts.map +1 -1
  48. package/dist/cli/commands/memory.js +118 -2
  49. package/dist/cli/commands/memory.js.map +1 -1
  50. package/dist/cli/commands/orchestrate.d.ts.map +1 -1
  51. package/dist/cli/commands/orchestrate.js +20 -7
  52. package/dist/cli/commands/orchestrate.js.map +1 -1
  53. package/dist/cli/commands/plan.d.ts.map +1 -1
  54. package/dist/cli/commands/plan.js.map +1 -1
  55. package/dist/cli/commands/plugin.d.ts.map +1 -1
  56. package/dist/cli/commands/plugin.js +8 -5
  57. package/dist/cli/commands/plugin.js.map +1 -1
  58. package/dist/cli/commands/resume.js +1 -1
  59. package/dist/cli/commands/resume.js.map +1 -1
  60. package/dist/cli/commands/run.d.ts.map +1 -1
  61. package/dist/cli/commands/run.js +20 -6
  62. package/dist/cli/commands/run.js.map +1 -1
  63. package/dist/cli/commands/share.d.ts.map +1 -1
  64. package/dist/cli/commands/share.js +6 -1
  65. package/dist/cli/commands/share.js.map +1 -1
  66. package/dist/cli/commands/status.d.ts.map +1 -1
  67. package/dist/cli/commands/status.js +15 -7
  68. package/dist/cli/commands/status.js.map +1 -1
  69. package/dist/cli/commands/template.d.ts.map +1 -1
  70. package/dist/cli/commands/template.js +14 -6
  71. package/dist/cli/commands/template.js.map +1 -1
  72. package/dist/cli/commands/vault.d.ts.map +1 -1
  73. package/dist/cli/commands/vault.js +14 -9
  74. package/dist/cli/commands/vault.js.map +1 -1
  75. package/dist/cli/commands/verify.d.ts.map +1 -1
  76. package/dist/cli/commands/verify.js +2 -2
  77. package/dist/cli/commands/verify.js.map +1 -1
  78. package/dist/cli/commands/watch.js +1 -1
  79. package/dist/cli/commands/watch.js.map +1 -1
  80. package/dist/cli/index.js +14 -4
  81. package/dist/cli/index.js.map +1 -1
  82. package/dist/core/checkpoint.js +1 -1
  83. package/dist/core/checkpoint.js.map +1 -1
  84. package/dist/core/event-bus.d.ts.map +1 -1
  85. package/dist/core/event-bus.js +9 -3
  86. package/dist/core/event-bus.js.map +1 -1
  87. package/dist/core/lifecycle.js.map +1 -1
  88. package/dist/core/patterns.d.ts.map +1 -1
  89. package/dist/core/patterns.js +31 -8
  90. package/dist/core/patterns.js.map +1 -1
  91. package/dist/core/permissions.d.ts.map +1 -1
  92. package/dist/core/permissions.js +21 -10
  93. package/dist/core/permissions.js.map +1 -1
  94. package/dist/core/registry.d.ts.map +1 -1
  95. package/dist/core/registry.js +10 -6
  96. package/dist/core/registry.js.map +1 -1
  97. package/dist/core/snapshots.d.ts.map +1 -1
  98. package/dist/core/snapshots.js +17 -5
  99. package/dist/core/snapshots.js.map +1 -1
  100. package/dist/core/types.d.ts +33 -0
  101. package/dist/core/types.d.ts.map +1 -1
  102. package/dist/core/types.js.map +1 -1
  103. package/dist/hooks/index.js.map +1 -1
  104. package/dist/index.d.ts +114 -6
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +92 -4
  107. package/dist/index.js.map +1 -1
  108. package/dist/memory/index.d.ts +38 -0
  109. package/dist/memory/index.d.ts.map +1 -1
  110. package/dist/memory/index.js +136 -24
  111. package/dist/memory/index.js.map +1 -1
  112. package/dist/memory/schema.d.ts +1 -0
  113. package/dist/memory/schema.d.ts.map +1 -1
  114. package/dist/memory/schema.js +20 -19
  115. package/dist/memory/schema.js.map +1 -1
  116. package/dist/plugin/index.d.ts.map +1 -1
  117. package/dist/plugin/index.js.map +1 -1
  118. package/dist/runtime/acp.d.ts.map +1 -1
  119. package/dist/runtime/acp.js +71 -41
  120. package/dist/runtime/acp.js.map +1 -1
  121. package/dist/runtime/adaptive.d.ts.map +1 -1
  122. package/dist/runtime/adaptive.js +30 -31
  123. package/dist/runtime/adaptive.js.map +1 -1
  124. package/dist/runtime/agent-runner.d.ts +62 -0
  125. package/dist/runtime/agent-runner.d.ts.map +1 -0
  126. package/dist/runtime/agent-runner.js +224 -0
  127. package/dist/runtime/agent-runner.js.map +1 -0
  128. package/dist/runtime/autonomy.d.ts +1 -0
  129. package/dist/runtime/autonomy.d.ts.map +1 -1
  130. package/dist/runtime/autonomy.js +37 -19
  131. package/dist/runtime/autonomy.js.map +1 -1
  132. package/dist/runtime/backends/claude.d.ts.map +1 -1
  133. package/dist/runtime/backends/claude.js +2 -2
  134. package/dist/runtime/backends/claude.js.map +1 -1
  135. package/dist/runtime/backends/codex.d.ts.map +1 -1
  136. package/dist/runtime/backends/codex.js +8 -11
  137. package/dist/runtime/backends/codex.js.map +1 -1
  138. package/dist/runtime/backends/gemini.d.ts.map +1 -1
  139. package/dist/runtime/backends/gemini.js +11 -7
  140. package/dist/runtime/backends/gemini.js.map +1 -1
  141. package/dist/runtime/backends/index.js +1 -1
  142. package/dist/runtime/backends/index.js.map +1 -1
  143. package/dist/runtime/backends/mock.d.ts.map +1 -1
  144. package/dist/runtime/backends/mock.js +1 -1
  145. package/dist/runtime/backends/mock.js.map +1 -1
  146. package/dist/runtime/backends/vercel-ai.d.ts.map +1 -1
  147. package/dist/runtime/backends/vercel-ai.js +41 -9
  148. package/dist/runtime/backends/vercel-ai.js.map +1 -1
  149. package/dist/runtime/cache-optimizer.d.ts.map +1 -1
  150. package/dist/runtime/cache-optimizer.js +3 -9
  151. package/dist/runtime/cache-optimizer.js.map +1 -1
  152. package/dist/runtime/cascade.d.ts.map +1 -1
  153. package/dist/runtime/cascade.js +34 -7
  154. package/dist/runtime/cascade.js.map +1 -1
  155. package/dist/runtime/chunker.d.ts.map +1 -1
  156. package/dist/runtime/chunker.js +12 -6
  157. package/dist/runtime/chunker.js.map +1 -1
  158. package/dist/runtime/compounder.d.ts +1 -1
  159. package/dist/runtime/compounder.d.ts.map +1 -1
  160. package/dist/runtime/compounder.js +30 -11
  161. package/dist/runtime/compounder.js.map +1 -1
  162. package/dist/runtime/cost-model.d.ts.map +1 -1
  163. package/dist/runtime/cost-model.js +1 -1
  164. package/dist/runtime/cost-model.js.map +1 -1
  165. package/dist/runtime/database.d.ts +16 -0
  166. package/dist/runtime/database.d.ts.map +1 -0
  167. package/dist/runtime/database.js +39 -0
  168. package/dist/runtime/database.js.map +1 -0
  169. package/dist/runtime/distiller.d.ts.map +1 -1
  170. package/dist/runtime/distiller.js +6 -3
  171. package/dist/runtime/distiller.js.map +1 -1
  172. package/dist/runtime/engine.d.ts +25 -9
  173. package/dist/runtime/engine.d.ts.map +1 -1
  174. package/dist/runtime/engine.js +417 -378
  175. package/dist/runtime/engine.js.map +1 -1
  176. package/dist/runtime/execution-graph.d.ts +86 -0
  177. package/dist/runtime/execution-graph.d.ts.map +1 -0
  178. package/dist/runtime/execution-graph.js +441 -0
  179. package/dist/runtime/execution-graph.js.map +1 -0
  180. package/dist/runtime/executor.d.ts +1 -2
  181. package/dist/runtime/executor.d.ts.map +1 -1
  182. package/dist/runtime/executor.js +45 -14
  183. package/dist/runtime/executor.js.map +1 -1
  184. package/dist/runtime/graph-adversarial.d.ts +88 -0
  185. package/dist/runtime/graph-adversarial.d.ts.map +1 -0
  186. package/dist/runtime/graph-adversarial.js +378 -0
  187. package/dist/runtime/graph-adversarial.js.map +1 -0
  188. package/dist/runtime/graph-analyzer.d.ts +106 -0
  189. package/dist/runtime/graph-analyzer.d.ts.map +1 -0
  190. package/dist/runtime/graph-analyzer.js +321 -0
  191. package/dist/runtime/graph-analyzer.js.map +1 -0
  192. package/dist/runtime/graph-causal.d.ts +91 -0
  193. package/dist/runtime/graph-causal.d.ts.map +1 -0
  194. package/dist/runtime/graph-causal.js +292 -0
  195. package/dist/runtime/graph-causal.js.map +1 -0
  196. package/dist/runtime/graph-context-router.d.ts +73 -0
  197. package/dist/runtime/graph-context-router.d.ts.map +1 -0
  198. package/dist/runtime/graph-context-router.js +162 -0
  199. package/dist/runtime/graph-context-router.js.map +1 -0
  200. package/dist/runtime/graph-discovery.d.ts +71 -0
  201. package/dist/runtime/graph-discovery.d.ts.map +1 -0
  202. package/dist/runtime/graph-discovery.js +367 -0
  203. package/dist/runtime/graph-discovery.js.map +1 -0
  204. package/dist/runtime/graph-dropout.d.ts +59 -0
  205. package/dist/runtime/graph-dropout.d.ts.map +1 -0
  206. package/dist/runtime/graph-dropout.js +196 -0
  207. package/dist/runtime/graph-dropout.js.map +1 -0
  208. package/dist/runtime/graph-embeddings.d.ts +58 -0
  209. package/dist/runtime/graph-embeddings.d.ts.map +1 -0
  210. package/dist/runtime/graph-embeddings.js +301 -0
  211. package/dist/runtime/graph-embeddings.js.map +1 -0
  212. package/dist/runtime/graph-feedback.d.ts +30 -0
  213. package/dist/runtime/graph-feedback.d.ts.map +1 -0
  214. package/dist/runtime/graph-feedback.js +82 -0
  215. package/dist/runtime/graph-feedback.js.map +1 -0
  216. package/dist/runtime/graph-gnn.d.ts +120 -0
  217. package/dist/runtime/graph-gnn.d.ts.map +1 -0
  218. package/dist/runtime/graph-gnn.js +524 -0
  219. package/dist/runtime/graph-gnn.js.map +1 -0
  220. package/dist/runtime/graph-learner.d.ts +70 -0
  221. package/dist/runtime/graph-learner.d.ts.map +1 -0
  222. package/dist/runtime/graph-learner.js +265 -0
  223. package/dist/runtime/graph-learner.js.map +1 -0
  224. package/dist/runtime/graph-meta-adversarial.d.ts +113 -0
  225. package/dist/runtime/graph-meta-adversarial.d.ts.map +1 -0
  226. package/dist/runtime/graph-meta-adversarial.js +366 -0
  227. package/dist/runtime/graph-meta-adversarial.js.map +1 -0
  228. package/dist/runtime/graph-meta.d.ts +115 -0
  229. package/dist/runtime/graph-meta.d.ts.map +1 -0
  230. package/dist/runtime/graph-meta.js +437 -0
  231. package/dist/runtime/graph-meta.js.map +1 -0
  232. package/dist/runtime/graph-self-evolve.d.ts +92 -0
  233. package/dist/runtime/graph-self-evolve.d.ts.map +1 -0
  234. package/dist/runtime/graph-self-evolve.js +422 -0
  235. package/dist/runtime/graph-self-evolve.js.map +1 -0
  236. package/dist/runtime/graph-synthesis.d.ts +47 -0
  237. package/dist/runtime/graph-synthesis.d.ts.map +1 -0
  238. package/dist/runtime/graph-synthesis.js +232 -0
  239. package/dist/runtime/graph-synthesis.js.map +1 -0
  240. package/dist/runtime/graph-trajectory.d.ts +88 -0
  241. package/dist/runtime/graph-trajectory.d.ts.map +1 -0
  242. package/dist/runtime/graph-trajectory.js +339 -0
  243. package/dist/runtime/graph-trajectory.js.map +1 -0
  244. package/dist/runtime/heuristics.d.ts +1 -0
  245. package/dist/runtime/heuristics.d.ts.map +1 -1
  246. package/dist/runtime/heuristics.js +44 -22
  247. package/dist/runtime/heuristics.js.map +1 -1
  248. package/dist/runtime/learning-engine.d.ts +63 -0
  249. package/dist/runtime/learning-engine.d.ts.map +1 -0
  250. package/dist/runtime/learning-engine.js +273 -0
  251. package/dist/runtime/learning-engine.js.map +1 -0
  252. package/dist/runtime/living-spec.js +3 -3
  253. package/dist/runtime/living-spec.js.map +1 -1
  254. package/dist/runtime/lsp.d.ts.map +1 -1
  255. package/dist/runtime/lsp.js +41 -14
  256. package/dist/runtime/lsp.js.map +1 -1
  257. package/dist/runtime/mcp.d.ts.map +1 -1
  258. package/dist/runtime/mcp.js +56 -19
  259. package/dist/runtime/mcp.js.map +1 -1
  260. package/dist/runtime/model-router.d.ts +1 -0
  261. package/dist/runtime/model-router.d.ts.map +1 -1
  262. package/dist/runtime/model-router.js +37 -21
  263. package/dist/runtime/model-router.js.map +1 -1
  264. package/dist/runtime/panes.d.ts.map +1 -1
  265. package/dist/runtime/panes.js +50 -49
  266. package/dist/runtime/panes.js.map +1 -1
  267. package/dist/runtime/plan-search.js +2 -2
  268. package/dist/runtime/plan-search.js.map +1 -1
  269. package/dist/runtime/plugins.d.ts +1 -1
  270. package/dist/runtime/plugins.d.ts.map +1 -1
  271. package/dist/runtime/plugins.js +63 -47
  272. package/dist/runtime/plugins.js.map +1 -1
  273. package/dist/runtime/reflexion.d.ts.map +1 -1
  274. package/dist/runtime/reflexion.js +4 -8
  275. package/dist/runtime/reflexion.js.map +1 -1
  276. package/dist/runtime/review-schema.d.ts.map +1 -1
  277. package/dist/runtime/review-schema.js +12 -12
  278. package/dist/runtime/review-schema.js.map +1 -1
  279. package/dist/runtime/rewriter.d.ts.map +1 -1
  280. package/dist/runtime/rewriter.js +29 -9
  281. package/dist/runtime/rewriter.js.map +1 -1
  282. package/dist/runtime/sharing.d.ts +1 -1
  283. package/dist/runtime/sharing.d.ts.map +1 -1
  284. package/dist/runtime/sharing.js +55 -27
  285. package/dist/runtime/sharing.js.map +1 -1
  286. package/dist/runtime/stats.d.ts +1 -0
  287. package/dist/runtime/stats.d.ts.map +1 -1
  288. package/dist/runtime/stats.js +40 -24
  289. package/dist/runtime/stats.js.map +1 -1
  290. package/dist/runtime/templates.d.ts.map +1 -1
  291. package/dist/runtime/templates.js +2 -2
  292. package/dist/runtime/templates.js.map +1 -1
  293. package/dist/runtime/traces.d.ts +1 -0
  294. package/dist/runtime/traces.d.ts.map +1 -1
  295. package/dist/runtime/traces.js +50 -28
  296. package/dist/runtime/traces.js.map +1 -1
  297. package/dist/runtime/verifier.d.ts.map +1 -1
  298. package/dist/runtime/verifier.js +12 -6
  299. package/dist/runtime/verifier.js.map +1 -1
  300. package/dist/runtime/worktree.d.ts.map +1 -1
  301. package/dist/runtime/worktree.js +35 -18
  302. package/dist/runtime/worktree.js.map +1 -1
  303. package/dist/tui/dashboard.d.ts.map +1 -1
  304. package/dist/tui/dashboard.js +20 -16
  305. package/dist/tui/dashboard.js.map +1 -1
  306. package/dist/tui/progress.d.ts +2 -0
  307. package/dist/tui/progress.d.ts.map +1 -1
  308. package/dist/tui/progress.js +105 -33
  309. package/dist/tui/progress.js.map +1 -1
  310. package/dist/tui/renderer.d.ts.map +1 -1
  311. package/dist/tui/renderer.js.map +1 -1
  312. package/dist/utils/compact-format.js +1 -1
  313. package/dist/utils/compact-format.js.map +1 -1
  314. package/dist/utils/config.d.ts.map +1 -1
  315. package/dist/utils/config.js.map +1 -1
  316. package/dist/utils/env.d.ts.map +1 -1
  317. package/dist/utils/env.js +19 -5
  318. package/dist/utils/env.js.map +1 -1
  319. package/dist/utils/errors.d.ts.map +1 -1
  320. package/dist/utils/errors.js +3 -7
  321. package/dist/utils/errors.js.map +1 -1
  322. package/dist/utils/output.d.ts.map +1 -1
  323. package/dist/utils/output.js +6 -2
  324. package/dist/utils/output.js.map +1 -1
  325. package/dist/utils/project-config.d.ts +18 -0
  326. package/dist/utils/project-config.d.ts.map +1 -1
  327. package/dist/utils/project-config.js +14 -6
  328. package/dist/utils/project-config.js.map +1 -1
  329. package/dist/utils/schemas.d.ts.map +1 -1
  330. package/dist/utils/schemas.js +12 -12
  331. package/dist/utils/schemas.js.map +1 -1
  332. package/dist/utils/terminal.d.ts.map +1 -1
  333. package/dist/utils/terminal.js +18 -7
  334. package/dist/utils/terminal.js.map +1 -1
  335. package/dist/utils/tiers.d.ts.map +1 -1
  336. package/dist/utils/tiers.js +14 -6
  337. package/dist/utils/tiers.js.map +1 -1
  338. package/package.json +15 -4
  339. package/skills/swarm-output-style/SKILL.md +154 -48
@@ -0,0 +1,339 @@
1
+ import { GraphLearner } from './graph-learner.js';
2
+ // ─── Helpers ──────────────────────────────────────────────────────
3
+ const FEATURE_DIM = 5;
4
+ const DEFAULT_COST_PER_TOKEN = 0.000015;
5
+ const DEFAULT_TOKENS = 10000;
6
+ const DEFAULT_DURATION_MS = 30000;
7
+ function sigmoid(x) {
8
+ return 1 / (1 + Math.exp(-Math.max(-500, Math.min(500, x))));
9
+ }
10
+ function dot(a, b) {
11
+ let s = 0;
12
+ for (let i = 0; i < Math.min(a.length, b.length); i++)
13
+ s += a[i] * b[i];
14
+ return s;
15
+ }
16
+ function confidenceToScore(c) {
17
+ if (c === 'high')
18
+ return 1.0;
19
+ if (c === 'medium')
20
+ return 0.5;
21
+ if (c === 'low')
22
+ return 0.0;
23
+ return 0.5; // unknown → neutral
24
+ }
25
+ // ─── TrajectoryPredictor ──────────────────────────────────────────
26
+ /**
27
+ * Predicts success probability for an in-progress orchestration based on
28
+ * its current phase trajectory. Uses online logistic regression trained
29
+ * from historical orchestration outcomes stored in the execution graph.
30
+ */
31
+ export class TrajectoryPredictor {
32
+ graph;
33
+ model;
34
+ constructor(graph) {
35
+ this.graph = graph;
36
+ this.model = TrajectoryPredictor.initModel();
37
+ this.loadFromGraph();
38
+ }
39
+ static initModel() {
40
+ return {
41
+ weights: new Array(FEATURE_DIM).fill(0),
42
+ bias: 0.0, // neutral starting point
43
+ learnRate: 0.05,
44
+ positiveCount: 0,
45
+ negativeCount: 0,
46
+ historicalAvgTokens: 50_000,
47
+ };
48
+ }
49
+ /**
50
+ * Extract trajectory features from an in-progress orchestration at the
51
+ * completion of `currentPhase`.
52
+ */
53
+ extractFeatures(orchestration, currentPhase) {
54
+ const phases = orchestration.phases;
55
+ const total = phases.length;
56
+ const completed = phases.filter((p) => p.status === 'completed' || p.status === 'failed').length;
57
+ const failed = phases.filter((p) => p.status === 'failed').length;
58
+ const completionRatio = total > 0 ? completed / total : 0;
59
+ const failedPhaseRatio = completed > 0 ? failed / completed : 0;
60
+ // Average confidence from completed phases' last agents
61
+ const confidenceScores = [];
62
+ for (const phase of phases) {
63
+ if (phase.status !== 'completed')
64
+ continue;
65
+ const lastAgent = phase.agents[phase.agents.length - 1];
66
+ if (lastAgent?.result?.confidence) {
67
+ confidenceScores.push(confidenceToScore(lastAgent.result.confidence));
68
+ }
69
+ }
70
+ const avgConfidence = confidenceScores.length > 0
71
+ ? confidenceScores.reduce((a, b) => a + b, 0) / confidenceScores.length
72
+ : 0.5;
73
+ // Token ratio vs historical average
74
+ const actualTokens = orchestration.phases
75
+ .filter((p) => p.status === 'completed')
76
+ .reduce((s, p) => s + p.usage.totalTokens, 0);
77
+ const tokenRatio = Math.min(3, actualTokens / Math.max(1, this.model.historicalAvgTokens));
78
+ // Structural quality: does the plan include review + test phases?
79
+ const kinds = new Set(phases.map((p) => p.config.kind ?? ''));
80
+ const hasGoodStructure = kinds.has('review') && (kinds.has('test') || kinds.has('integrate'));
81
+ return { completionRatio, avgConfidence, tokenRatio, hasGoodStructure, failedPhaseRatio };
82
+ }
83
+ /** Convert features to numeric vector. */
84
+ featureVector(f) {
85
+ return [
86
+ f.completionRatio,
87
+ f.avgConfidence,
88
+ f.tokenRatio / 3, // normalize to [0,1]
89
+ f.hasGoodStructure ? 1 : 0,
90
+ f.failedPhaseRatio,
91
+ ];
92
+ }
93
+ /**
94
+ * Predict success probability from current trajectory features.
95
+ * Adds human-readable factor explanations.
96
+ */
97
+ predict(features) {
98
+ const x = this.featureVector(features);
99
+ const logit = dot(this.model.weights, x) + this.model.bias;
100
+ const successProbability = sigmoid(logit);
101
+ // Classify trajectory trend
102
+ let trajectory = 'unknown';
103
+ if (features.failedPhaseRatio > 0.3) {
104
+ trajectory = 'degrading';
105
+ }
106
+ else if (features.avgConfidence > 0.7 && features.failedPhaseRatio === 0) {
107
+ trajectory = 'on-track';
108
+ }
109
+ else if (features.failedPhaseRatio > 0 && features.avgConfidence > 0.5) {
110
+ trajectory = 'recovering';
111
+ }
112
+ // Confidence based on training sample size
113
+ const total = this.model.positiveCount + this.model.negativeCount;
114
+ const confidence = total < 10 ? 'low' : total < 50 ? 'medium' : 'high';
115
+ // Explain the key factors
116
+ const factors = [];
117
+ if (features.failedPhaseRatio > 0.2) {
118
+ factors.push(`${Math.round(features.failedPhaseRatio * 100)}% of completed phases failed`);
119
+ }
120
+ if (features.avgConfidence < 0.4) {
121
+ factors.push('low average agent confidence');
122
+ }
123
+ if (features.tokenRatio > 2) {
124
+ factors.push('token consumption 2× above historical average');
125
+ }
126
+ if (!features.hasGoodStructure) {
127
+ factors.push('no review or test phases planned');
128
+ }
129
+ if (features.completionRatio > 0.8) {
130
+ factors.push('near completion');
131
+ }
132
+ if (factors.length === 0) {
133
+ factors.push('trajectory looks nominal');
134
+ }
135
+ return { successProbability, confidence, trajectory, factors };
136
+ }
137
+ /**
138
+ * Record the actual outcome of a completed orchestration, updating the model
139
+ * and historical token average via online SGD.
140
+ */
141
+ recordOutcome(orchestration, succeeded, currentPhase) {
142
+ // Update historical token average
143
+ const totalTokens = orchestration.usage?.totalTokens ?? 0;
144
+ if (totalTokens > 0) {
145
+ const alpha = 0.1; // exponential moving average
146
+ this.model.historicalAvgTokens =
147
+ alpha * totalTokens + (1 - alpha) * this.model.historicalAvgTokens;
148
+ }
149
+ // Extract features from the final state
150
+ const syntheticPhase = currentPhase ?? orchestration.phases[orchestration.phases.length - 1];
151
+ if (!syntheticPhase)
152
+ return;
153
+ const features = this.extractFeatures(orchestration, syntheticPhase);
154
+ const x = this.featureVector(features);
155
+ const label = succeeded ? 1 : 0;
156
+ const classWeight = succeeded ? 1.0 : 2.0; // up-weight failures
157
+ const pred = sigmoid(dot(this.model.weights, x) + this.model.bias);
158
+ const error = (pred - label) * classWeight;
159
+ const lr = this.model.learnRate;
160
+ for (let i = 0; i < FEATURE_DIM; i++) {
161
+ this.model.weights[i] -= lr * error * x[i];
162
+ }
163
+ this.model.bias -= lr * error;
164
+ if (succeeded) {
165
+ this.model.positiveCount++;
166
+ }
167
+ else {
168
+ this.model.negativeCount++;
169
+ }
170
+ this.saveToGraph();
171
+ }
172
+ // ─── Trajectory Forecast ─────────────────────────────────────────
173
+ /**
174
+ * Combine GNN topology features, causal estimates, and historical pattern
175
+ * stats into a unified forecast for remaining phases after each phase completes.
176
+ */
177
+ predictTrajectory(orchestrationId, completedPhases, remainingPhaseNames, patternName) {
178
+ const learner = new GraphLearner(this.graph);
179
+ const patternStatsList = patternName ? learner.getPatternStats(patternName) : [];
180
+ const patternStat = patternStatsList.length > 0 ? patternStatsList[0] : null;
181
+ const completedConfidences = completedPhases.map((p) => p.confidence);
182
+ const lowConfCount = completedConfidences.filter((c) => c === 'low').length;
183
+ const phases = remainingPhaseNames.map((name) => {
184
+ const successProb = this.estimatePhaseSuccess(name, patternName, completedConfidences);
185
+ const estimatedTokens = this.estimatePhaseTokens(name);
186
+ const estimatedDurationMs = this.estimatePhaseDuration(name);
187
+ const risks = [];
188
+ if (lowConfCount > 0) {
189
+ risks.push(`${lowConfCount} completed phase(s) had low confidence`);
190
+ }
191
+ if (successProb < 0.5) {
192
+ risks.push(`Historical success rate for "${name}" is below 50%`);
193
+ }
194
+ return { name, successProb, estimatedTokens, estimatedDurationMs, risks };
195
+ });
196
+ // Overall success = product of phase success probs
197
+ let overallSuccessProb = phases.length > 0
198
+ ? phases.reduce((acc, p) => acc * p.successProb, 1)
199
+ : 1;
200
+ // Adjust downward if any completed phase had low confidence
201
+ if (lowConfCount > 0) {
202
+ overallSuccessProb *= Math.pow(0.8, lowConfCount);
203
+ }
204
+ overallSuccessProb = Math.max(0, Math.min(1, overallSuccessProb));
205
+ // Budget forecast: (completed + estimated remaining) tokens × cost per token
206
+ const costPerToken = this.deriveCostPerToken();
207
+ const completedTokenCost = completedPhases.reduce((sum, p) => sum + p.tokens, 0) * costPerToken;
208
+ const estimatedTokenCost = phases.reduce((sum, p) => sum + p.estimatedTokens, 0) * costPerToken;
209
+ const budgetForecast = completedTokenCost + estimatedTokenCost;
210
+ // Recommendations
211
+ const recommendations = [];
212
+ for (const phase of phases) {
213
+ if (phase.successProb < 0.5) {
214
+ recommendations.push(`Phase "${phase.name}" has low success probability (${(phase.successProb * 100).toFixed(0)}%) — consider escalating model`);
215
+ }
216
+ }
217
+ if (patternStat && patternStat.avgCostUsd > 0 && budgetForecast > 2 * patternStat.avgCostUsd) {
218
+ recommendations.push('Budget forecast exceeds 2x pattern average — consider downgrading models for non-critical phases');
219
+ }
220
+ if (lowConfCount > 0) {
221
+ recommendations.push('Completed research had low confidence — consider adding more researchers');
222
+ }
223
+ // Confidence from pattern sample count
224
+ const sampleCount = patternStat?.totalRuns ?? 0;
225
+ let confidence;
226
+ if (sampleCount < 5)
227
+ confidence = 'low';
228
+ else if (sampleCount <= 20)
229
+ confidence = 'medium';
230
+ else
231
+ confidence = 'high';
232
+ return { phases, overallSuccessProb, budgetForecast, recommendations, confidence };
233
+ }
234
+ /** Estimate phase success probability from historical phase data. */
235
+ estimatePhaseSuccess(phaseKind, patternName, completedPhaseConfidences) {
236
+ const allPhases = this.graph.getNodesByType('phase');
237
+ const matching = allPhases.filter((p) => p.label === phaseKind);
238
+ let baseRate;
239
+ if (matching.length > 0) {
240
+ const succeeded = matching.filter((p) => p.properties.status === 'completed');
241
+ const failed = matching.filter((p) => p.properties.status === 'failed' || p.properties.status === 'error');
242
+ const total = succeeded.length + failed.length;
243
+ baseRate = total > 0 ? succeeded.length / total : 0.5;
244
+ }
245
+ else if (patternName) {
246
+ const learner = new GraphLearner(this.graph);
247
+ const stats = learner.getPatternStats(patternName);
248
+ baseRate = stats.length > 0 ? stats[0].successRate : 0.5;
249
+ }
250
+ else {
251
+ baseRate = 0.5;
252
+ }
253
+ // Degrade by low-confidence completed phases (10% reduction each)
254
+ const lowConfCount = completedPhaseConfidences.filter((c) => c === 'low').length;
255
+ if (lowConfCount > 0) {
256
+ baseRate *= Math.pow(0.9, lowConfCount);
257
+ }
258
+ return Math.max(0, Math.min(1, baseRate));
259
+ }
260
+ /** Estimate token usage for a phase kind based on historical averages. */
261
+ estimatePhaseTokens(phaseKind) {
262
+ const allPhases = this.graph.getNodesByType('phase');
263
+ const matching = allPhases.filter((p) => p.label === phaseKind);
264
+ const tokenValues = matching
265
+ .map((p) => {
266
+ const usage = p.properties.usage;
267
+ return usage?.totalTokens ?? 0;
268
+ })
269
+ .filter((t) => t > 0);
270
+ if (tokenValues.length > 0) {
271
+ return tokenValues.reduce((a, b) => a + b, 0) / tokenValues.length;
272
+ }
273
+ return DEFAULT_TOKENS;
274
+ }
275
+ /** Estimate duration for a phase kind based on historical averages. */
276
+ estimatePhaseDuration(phaseKind) {
277
+ const allPhases = this.graph.getNodesByType('phase');
278
+ const matching = allPhases.filter((p) => p.label === phaseKind);
279
+ const durations = matching
280
+ .map((p) => {
281
+ const usage = p.properties.usage;
282
+ return usage?.durationMs ?? 0;
283
+ })
284
+ .filter((d) => d > 0);
285
+ if (durations.length > 0) {
286
+ return durations.reduce((a, b) => a + b, 0) / durations.length;
287
+ }
288
+ return DEFAULT_DURATION_MS;
289
+ }
290
+ /** Derive cost per token from historical phase data, or use default. */
291
+ deriveCostPerToken() {
292
+ const allPhases = this.graph.getNodesByType('phase');
293
+ let totalTokens = 0;
294
+ let totalCost = 0;
295
+ for (const phase of allPhases) {
296
+ const usage = phase.properties.usage;
297
+ if (usage?.totalTokens && usage.totalTokens > 0 && usage?.costUsd && usage.costUsd > 0) {
298
+ totalTokens += usage.totalTokens;
299
+ totalCost += usage.costUsd;
300
+ }
301
+ }
302
+ if (totalTokens > 0 && totalCost > 0) {
303
+ return totalCost / totalTokens;
304
+ }
305
+ return DEFAULT_COST_PER_TOKEN;
306
+ }
307
+ // ─── Persistence ─────────────────────────────────────────────────
308
+ saveToGraph() {
309
+ this.graph.addNode({
310
+ id: 'trajectory:model',
311
+ type: 'heuristic',
312
+ label: 'Trajectory Predictor Model',
313
+ properties: {
314
+ weights: this.model.weights,
315
+ bias: this.model.bias,
316
+ learnRate: this.model.learnRate,
317
+ positiveCount: this.model.positiveCount,
318
+ negativeCount: this.model.negativeCount,
319
+ historicalAvgTokens: this.model.historicalAvgTokens,
320
+ },
321
+ });
322
+ }
323
+ loadFromGraph() {
324
+ const node = this.graph.getNode('trajectory:model');
325
+ if (!node)
326
+ return;
327
+ const p = node.properties;
328
+ const weights = p.weights;
329
+ if (weights && Array.isArray(weights) && weights.length === FEATURE_DIM) {
330
+ this.model.weights = weights;
331
+ this.model.bias = p.bias ?? 0;
332
+ this.model.learnRate = p.learnRate ?? 0.05;
333
+ this.model.positiveCount = p.positiveCount ?? 0;
334
+ this.model.negativeCount = p.negativeCount ?? 0;
335
+ this.model.historicalAvgTokens = p.historicalAvgTokens ?? 50_000;
336
+ }
337
+ }
338
+ }
339
+ //# sourceMappingURL=graph-trajectory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-trajectory.js","sourceRoot":"","sources":["../../src/runtime/graph-trajectory.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8ClD,qEAAqE;AAErE,MAAM,WAAW,GAAG,CAAC,CAAC;AACtB,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AACxC,MAAM,cAAc,GAAG,KAAK,CAAC;AAC7B,MAAM,mBAAmB,GAAG,KAAK,CAAC;AAElC,SAAS,OAAO,CAAC,CAAS;IACxB,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,GAAG,CAAC,CAAW,EAAE,CAAW;IACnC,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;QAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAqB;IAC9C,IAAI,CAAC,KAAK,MAAM;QAAE,OAAO,GAAG,CAAC;IAC7B,IAAI,CAAC,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC;IAC/B,IAAI,CAAC,KAAK,KAAK;QAAE,OAAO,GAAG,CAAC;IAC5B,OAAO,GAAG,CAAC,CAAC,oBAAoB;AAClC,CAAC;AAED,qEAAqE;AAErE;;;;GAIG;AACH,MAAM,OAAO,mBAAmB;IAGV;IAFZ,KAAK,CAAkB;IAE/B,YAAoB,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;QACvC,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,SAAS,EAAE,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,SAAS;QACd,OAAO;YACL,OAAO,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACvC,IAAI,EAAE,GAAG,EAAE,yBAAyB;YACpC,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,CAAC;YAChB,aAAa,EAAE,CAAC;YAChB,mBAAmB,EAAE,MAAM;SAC5B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe,CAAC,aAAoC,EAAE,YAA2B;QAC/E,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QACjG,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;QAElE,MAAM,eAAe,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhE,wDAAwD;QACxD,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW;gBAAE,SAAS;YAC3C,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxD,IAAI,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;gBAClC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QACD,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC/C,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAAC,MAAM;YACvE,CAAC,CAAC,GAAG,CAAC;QAER,oCAAoC;QACpC,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM;aACtC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAE3F,kEAAkE;QAClE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9D,MAAM,gBAAgB,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;QAE9F,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAC5F,CAAC;IAED,0CAA0C;IAClC,aAAa,CAAC,CAAqB;QACzC,OAAO;YACL,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,qBAAqB;YACvC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC,CAAC,gBAAgB;SACnB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,QAA4B;QAClC,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3D,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE1C,4BAA4B;QAC5B,IAAI,UAAU,GAAuC,SAAS,CAAC;QAC/D,IAAI,QAAQ,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC;YACpC,UAAU,GAAG,WAAW,CAAC;QAC3B,CAAC;aAAM,IAAI,QAAQ,CAAC,aAAa,GAAG,GAAG,IAAI,QAAQ,CAAC,gBAAgB,KAAK,CAAC,EAAE,CAAC;YAC3E,UAAU,GAAG,UAAU,CAAC;QAC1B,CAAC;aAAM,IAAI,QAAQ,CAAC,gBAAgB,GAAG,CAAC,IAAI,QAAQ,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;YACzE,UAAU,GAAG,YAAY,CAAC;QAC5B,CAAC;QAED,2CAA2C;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QAClE,MAAM,UAAU,GACd,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAEtD,0BAA0B;QAC1B,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,QAAQ,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,QAAQ,CAAC,aAAa,GAAG,GAAG,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,QAAQ,CAAC,eAAe,GAAG,GAAG,EAAE,CAAC;YACnC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IAED;;;OAGG;IACH,aAAa,CACX,aAAoC,EACpC,SAAkB,EAClB,YAA4B;QAE5B,kCAAkC;QAClC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;QAC1D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,6BAA6B;YAChD,IAAI,CAAC,KAAK,CAAC,mBAAmB;gBAC5B,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;QACvE,CAAC;QAED,wCAAwC;QACxC,MAAM,cAAc,GAAG,YAAY,IAAI,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,cAAc;YAAE,OAAO;QAE5B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,qBAAqB;QAEhE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC;QAE3C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,GAAG,KAAK,CAAC;QAE9B,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,oEAAoE;IAEpE;;;OAGG;IACH,iBAAiB,CACf,eAAuB,EACvB,eAAgH,EAChH,mBAA6B,EAC7B,WAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE7E,MAAM,oBAAoB,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,YAAY,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;QAE5E,MAAM,MAAM,GAAoB,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC;YACvF,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,wCAAwC,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC;gBACtB,KAAK,CAAC,IAAI,CAAC,gCAAgC,IAAI,gBAAgB,CAAC,CAAC;YACnE,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC;QAC5E,CAAC,CAAC,CAAC;QAEH,mDAAmD;QACnD,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC,CAAC;QAEN,4DAA4D;QAC5D,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,kBAAkB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACpD,CAAC;QACD,kBAAkB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAElE,6EAA6E;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC;QAChG,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,GAAG,YAAY,CAAC;QAChG,MAAM,cAAc,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;QAE/D,kBAAkB;QAClB,MAAM,eAAe,GAAa,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAClB,UAAU,KAAK,CAAC,IAAI,kCAAkC,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAC3H,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,WAAW,IAAI,WAAW,CAAC,UAAU,GAAG,CAAC,IAAI,cAAc,GAAG,CAAC,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC;YAC7F,eAAe,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,eAAe,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACnG,CAAC;QAED,uCAAuC;QACvC,MAAM,WAAW,GAAG,WAAW,EAAE,SAAS,IAAI,CAAC,CAAC;QAChD,IAAI,UAAqC,CAAC;QAC1C,IAAI,WAAW,GAAG,CAAC;YAAE,UAAU,GAAG,KAAK,CAAC;aACnC,IAAI,WAAW,IAAI,EAAE;YAAE,UAAU,GAAG,QAAQ,CAAC;;YAC7C,UAAU,GAAG,MAAM,CAAC;QAEzB,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;IACrF,CAAC;IAED,qEAAqE;IAC7D,oBAAoB,CAC1B,SAAiB,EACjB,WAA+B,EAC/B,yBAAmC;QAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEhE,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,CAC3E,CAAC;YACF,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/C,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;QACxD,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACnD,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,GAAG,CAAC;QACjB,CAAC;QAED,kEAAkE;QAClE,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;QACjF,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACrB,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAClE,mBAAmB,CAAC,SAAiB;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEhE,MAAM,WAAW,GAAG,QAAQ;aACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,KAA6C,CAAC;YACzE,OAAO,KAAK,EAAE,WAAW,IAAI,CAAC,CAAC;QACjC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;QACrE,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,uEAAuE;IAC/D,qBAAqB,CAAC,SAAiB;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;QAEhE,MAAM,SAAS,GAAG,QAAQ;aACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,KAA4C,CAAC;YACxE,OAAO,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAExB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;QACjE,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,wEAAwE;IAChE,kBAAkB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAA+D,CAAC;YAC/F,IAAI,KAAK,EAAE,WAAW,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACvF,WAAW,IAAI,KAAK,CAAC,WAAW,CAAC;gBACjC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,IAAI,WAAW,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,SAAS,GAAG,WAAW,CAAC;QACjC,CAAC;QACD,OAAO,sBAAsB,CAAC;IAChC,CAAC;IAED,oEAAoE;IAE5D,WAAW;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;YACjB,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,4BAA4B;YACnC,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;gBAC/B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACvC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACvC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB;aACpD;SACF,CAAC,CAAC;IACL,CAAC;IAEO,aAAa;QACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAqC,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,CAAC,OAA+B,CAAC;QAClD,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;YAC7B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAI,CAAC,CAAC,IAAe,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAI,CAAC,CAAC,SAAoB,IAAI,IAAI,CAAC;YACvD,IAAI,CAAC,KAAK,CAAC,aAAa,GAAI,CAAC,CAAC,aAAwB,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,aAAa,GAAI,CAAC,CAAC,aAAwB,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAI,CAAC,CAAC,mBAA8B,IAAI,MAAM,CAAC;QAC/E,CAAC;IACH,CAAC;CACF"}
@@ -11,6 +11,7 @@ export interface Heuristic {
11
11
  }
12
12
  export declare class HeuristicStore {
13
13
  private db;
14
+ private ownDb;
14
15
  constructor(dbPath?: string);
15
16
  private initSchema;
16
17
  /** Extract heuristics from a completed execution trace */
@@ -1 +1 @@
1
- {"version":3,"file":"heuristics.d.ts","sourceRoot":"","sources":["../../src/runtime/heuristics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGlD,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,CAAC,EAAE,MAAM;IAU3B,OAAO,CAAC,UAAU;IAuBlB,0DAA0D;IAC1D,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE;IAiEpD,wBAAwB;IACxB,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM;IAQ3B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,EAAE;IAkCtD,+EAA+E;IAC/E,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAY7D,6DAA6D;IAC7D,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;IAUjD,yCAAyC;IACzC,QAAQ,CAAC,OAAO,GAAE,MAAW,GAAG,IAAI;IAOpC,sDAAsD;IACtD,OAAO,CAAC,aAAa;IAUrB,KAAK,CAAC,OAAO,GAAE,MAAc,GAAG,IAAI;IAIpC,KAAK,IAAI,IAAI;CACd"}
1
+ {"version":3,"file":"heuristics.d.ts","sourceRoot":"","sources":["../../src/runtime/heuristics.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAIlD,MAAM,WAAW,SAAS;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,KAAK,CAAU;gBAEX,MAAM,CAAC,EAAE,MAAM;IAe3B,OAAO,CAAC,UAAU;IAuBlB,0DAA0D;IAC1D,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,EAAE;IAiEpD,wBAAwB;IACxB,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,MAAM;IAmB3B,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,EAAE;IAwCtD,+EAA+E;IAC/E,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAgB7D,6DAA6D;IAC7D,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;IAUjD,yCAAyC;IACzC,QAAQ,CAAC,OAAO,GAAE,MAAW,GAAG,IAAI;IAWpC,sDAAsD;IACtD,OAAO,CAAC,aAAa;IAUrB,KAAK,CAAC,OAAO,GAAE,MAAc,GAAG,IAAI;IAMpC,KAAK,IAAI,IAAI;CAGd"}
@@ -1,18 +1,25 @@
1
1
  import Database from 'better-sqlite3';
2
2
  import { existsSync, mkdirSync } from 'fs';
3
- import { join, dirname } from 'path';
4
- import { homedir } from 'os';
3
+ import { dirname } from 'path';
5
4
  import { redactSecrets } from '../utils/redact.js';
5
+ import { getDatabase } from './database.js';
6
6
  export class HeuristicStore {
7
7
  db;
8
+ ownDb;
8
9
  constructor(dbPath) {
9
- const path = dbPath ?? join(homedir(), '.swarm', 'data', 'heuristics.db');
10
- const dir = dirname(path);
11
- if (!existsSync(dir))
12
- mkdirSync(dir, { recursive: true, mode: 0o700 });
13
- this.db = new Database(path);
14
- this.db.pragma('journal_mode = WAL');
15
- this.db.pragma('busy_timeout = 5000');
10
+ if (dbPath) {
11
+ const dir = dirname(dbPath);
12
+ if (!existsSync(dir))
13
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
14
+ this.db = new Database(dbPath);
15
+ this.db.pragma('journal_mode = WAL');
16
+ this.db.pragma('busy_timeout = 5000');
17
+ this.ownDb = true;
18
+ }
19
+ else {
20
+ this.db = getDatabase();
21
+ this.ownDb = false;
22
+ }
16
23
  this.initSchema();
17
24
  }
18
25
  initSchema() {
@@ -67,7 +74,7 @@ export class HeuristicStore {
67
74
  }
68
75
  else if (trace.status === 'failed') {
69
76
  // Failure heuristics
70
- const failedPhases = trace.phases.filter(p => p.status === 'failed');
77
+ const failedPhases = trace.phases.filter((p) => p.status === 'failed');
71
78
  for (const phase of failedPhases) {
72
79
  heuristics.push({
73
80
  taskPattern,
@@ -100,10 +107,12 @@ export class HeuristicStore {
100
107
  }
101
108
  /** Store a heuristic */
102
109
  store(h) {
103
- const result = this.db.prepare(`
110
+ const result = this.db
111
+ .prepare(`
104
112
  INSERT INTO heuristics (task_pattern, lesson, source, confidence, use_count, success_when_used)
105
113
  VALUES (?, ?, ?, ?, ?, ?)
106
- `).run(redactSecrets(h.taskPattern), redactSecrets(h.lesson), h.source, h.confidence, h.useCount, h.successWhenUsed);
114
+ `)
115
+ .run(redactSecrets(h.taskPattern), redactSecrets(h.lesson), h.source, h.confidence, h.useCount, h.successWhenUsed);
107
116
  return result.lastInsertRowid;
108
117
  }
109
118
  /** Retrieve relevant heuristics for a task using FTS5 */
@@ -111,20 +120,24 @@ export class HeuristicStore {
111
120
  const normalized = this.normalizeTask(task);
112
121
  const safeQuery = '"' + normalized.replace(/"/g, '') + '"';
113
122
  try {
114
- const rows = this.db.prepare(`
123
+ const rows = this.db
124
+ .prepare(`
115
125
  SELECT h.*, rank
116
126
  FROM heuristics_fts fts
117
127
  JOIN heuristics h ON h.id = fts.rowid
118
128
  WHERE heuristics_fts MATCH ?
119
129
  ORDER BY h.confidence DESC, rank
120
130
  LIMIT ?
121
- `).all(safeQuery, limit);
131
+ `)
132
+ .all(safeQuery, limit);
122
133
  // Batch update use_count instead of N+1 individual updates
123
- const ids = rows.map(r => r.id);
134
+ const ids = rows.map((r) => r.id);
124
135
  if (ids.length > 0) {
125
- this.db.prepare(`UPDATE heuristics SET use_count = use_count + 1 WHERE id IN (${ids.map(() => '?').join(',')})`).run(...ids);
136
+ this.db
137
+ .prepare(`UPDATE heuristics SET use_count = use_count + 1 WHERE id IN (${ids.map(() => '?').join(',')})`)
138
+ .run(...ids);
126
139
  }
127
- return rows.map(r => ({
140
+ return rows.map((r) => ({
128
141
  id: r.id,
129
142
  taskPattern: r.task_pattern,
130
143
  lesson: r.lesson,
@@ -143,7 +156,9 @@ export class HeuristicStore {
143
156
  recordOutcome(heuristicIds, success) {
144
157
  if (success) {
145
158
  for (const id of heuristicIds) {
146
- this.db.prepare('UPDATE heuristics SET success_when_used = success_when_used + 1, confidence = MIN(1.0, confidence + 0.05) WHERE id = ?').run(id);
159
+ this.db
160
+ .prepare('UPDATE heuristics SET success_when_used = success_when_used + 1, confidence = MIN(1.0, confidence + 0.05) WHERE id = ?')
161
+ .run(id);
147
162
  }
148
163
  }
149
164
  else {
@@ -165,10 +180,12 @@ export class HeuristicStore {
165
180
  }
166
181
  /** Decay confidence of old heuristics */
167
182
  decayOld(daysOld = 30) {
168
- this.db.prepare(`
183
+ this.db
184
+ .prepare(`
169
185
  UPDATE heuristics SET confidence = MAX(0.1, confidence - 0.05)
170
186
  WHERE created_at < datetime('now', '-' || ? || ' days')
171
- `).run(daysOld);
187
+ `)
188
+ .run(daysOld);
172
189
  }
173
190
  /** Normalize task description for pattern matching */
174
191
  normalizeTask(task) {
@@ -181,8 +198,13 @@ export class HeuristicStore {
181
198
  .slice(0, 200);
182
199
  }
183
200
  prune(maxRows = 10000) {
184
- this.db.prepare('DELETE FROM heuristics WHERE id NOT IN (SELECT id FROM heuristics ORDER BY created_at DESC LIMIT ?)').run(maxRows);
201
+ this.db
202
+ .prepare('DELETE FROM heuristics WHERE id NOT IN (SELECT id FROM heuristics ORDER BY created_at DESC LIMIT ?)')
203
+ .run(maxRows);
204
+ }
205
+ close() {
206
+ if (this.ownDb)
207
+ this.db.close();
185
208
  }
186
- close() { this.db.close(); }
187
209
  }
188
210
  //# sourceMappingURL=heuristics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heuristics.js","sourceRoot":"","sources":["../../src/runtime/heuristics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heuristics.js","sourceRoot":"","sources":["../../src/runtime/heuristics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { OrchestrationConfig, OrchestrationInstance } from '../core/types.js';
2
+ import { Logger } from '../utils/logger.js';
3
+ import { TraceStore } from './traces.js';
4
+ import { HeuristicStore } from './heuristics.js';
5
+ import { KnowledgeCompounder } from './compounder.js';
6
+ import { ModelRouter } from './model-router.js';
7
+ import { AutonomyTracker } from './autonomy.js';
8
+ import type { ExecutionPlan } from '../core/types.js';
9
+ import type { GraphLearner } from './graph-learner.js';
10
+ import type { MetaPatternSelector } from './graph-meta.js';
11
+ import type { PredictiveDropout } from './graph-dropout.js';
12
+ import type { OrchestrationEmbedder } from './graph-embeddings.js';
13
+ export interface LearningEngineDeps {
14
+ traceStore: TraceStore | null;
15
+ heuristicStore: HeuristicStore | null;
16
+ modelRouter: ModelRouter | null;
17
+ autonomyTracker: AutonomyTracker | null;
18
+ compounder: KnowledgeCompounder | null;
19
+ graphLearner?: GraphLearner | null;
20
+ metaSelector?: MetaPatternSelector | null;
21
+ predictiveDropout?: PredictiveDropout | null;
22
+ orchestrationEmbedder?: OrchestrationEmbedder | null;
23
+ log: Logger;
24
+ }
25
+ /**
26
+ * Handles post-execution learning: trace storage, heuristic extraction,
27
+ * knowledge compounding, model routing outcomes, and autonomy tracking.
28
+ * Also provides plan-time injection of learned heuristics and solutions.
29
+ */
30
+ export declare class LearningEngine {
31
+ private traceStore;
32
+ private heuristicStore;
33
+ private modelRouter;
34
+ private autonomyTracker;
35
+ private compounder;
36
+ private graphLearner;
37
+ private metaSelector;
38
+ private predictiveDropout;
39
+ private orchestrationEmbedder;
40
+ private log;
41
+ constructor(deps: LearningEngineDeps);
42
+ /**
43
+ * Record all learning outcomes after an orchestration completes.
44
+ */
45
+ recordOutcome(orchestration: OrchestrationInstance, config: OrchestrationConfig, reflections: string[]): Promise<void>;
46
+ /**
47
+ * Find similar past traces for a task description.
48
+ */
49
+ findSimilarTraces(task: string, limit?: number): string | null;
50
+ /**
51
+ * Inject learned heuristics into the first phase of a plan.
52
+ */
53
+ injectHeuristics(plan: ExecutionPlan): void;
54
+ /**
55
+ * Inject relevant past solutions into the first phase of a plan.
56
+ */
57
+ injectSolutions(plan: ExecutionPlan): void;
58
+ /**
59
+ * Close all learning resources.
60
+ */
61
+ close(): void;
62
+ }
63
+ //# sourceMappingURL=learning-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-engine.d.ts","sourceRoot":"","sources":["../../src/runtime/learning-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC7C,qBAAqB,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACrD,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,GAAG,CAAS;gBAER,IAAI,EAAE,kBAAkB;IAapC;;OAEG;IACG,aAAa,CACjB,aAAa,EAAE,qBAAqB,EACpC,MAAM,EAAE,mBAAmB,EAC3B,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;IAwIhB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,GAAG,IAAI;IAsBjE;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAiC3C;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAiB1C;;OAEG;IACH,KAAK,IAAI,IAAI;CAcd"}