cognitive-core 0.0.2 → 0.1.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 (329) hide show
  1. package/README.md +302 -116
  2. package/SKILL.md +193 -0
  3. package/dist/agents/index.d.ts +3 -0
  4. package/dist/agents/index.d.ts.map +1 -0
  5. package/dist/agents/index.js +5 -0
  6. package/dist/agents/index.js.map +1 -0
  7. package/dist/agents/mock-provider.d.ts +23 -0
  8. package/dist/agents/mock-provider.d.ts.map +1 -0
  9. package/dist/agents/mock-provider.js +71 -0
  10. package/dist/agents/mock-provider.js.map +1 -0
  11. package/dist/agents/types.d.ts +98 -0
  12. package/dist/agents/types.d.ts.map +1 -0
  13. package/dist/agents/types.js +44 -0
  14. package/dist/agents/types.js.map +1 -0
  15. package/dist/atlas.d.ts +196 -0
  16. package/dist/atlas.d.ts.map +1 -0
  17. package/dist/atlas.js +373 -0
  18. package/dist/atlas.js.map +1 -0
  19. package/dist/bin/cognitive-core.d.ts +18 -0
  20. package/dist/bin/cognitive-core.d.ts.map +1 -0
  21. package/dist/bin/cognitive-core.js +419 -0
  22. package/dist/bin/cognitive-core.js.map +1 -0
  23. package/dist/embeddings/bm25.d.ts +104 -0
  24. package/dist/embeddings/bm25.d.ts.map +1 -0
  25. package/dist/embeddings/bm25.js +264 -0
  26. package/dist/embeddings/bm25.js.map +1 -0
  27. package/dist/embeddings/index.d.ts +12 -0
  28. package/dist/embeddings/index.d.ts.map +1 -0
  29. package/dist/embeddings/index.js +16 -0
  30. package/dist/embeddings/index.js.map +1 -0
  31. package/dist/embeddings/manager.d.ts +112 -0
  32. package/dist/embeddings/manager.d.ts.map +1 -0
  33. package/dist/embeddings/manager.js +215 -0
  34. package/dist/embeddings/manager.js.map +1 -0
  35. package/dist/embeddings/provider.d.ts +101 -0
  36. package/dist/embeddings/provider.d.ts.map +1 -0
  37. package/dist/embeddings/provider.js +232 -0
  38. package/dist/embeddings/provider.js.map +1 -0
  39. package/dist/embeddings/vector-store.d.ts +101 -0
  40. package/dist/embeddings/vector-store.d.ts.map +1 -0
  41. package/dist/embeddings/vector-store.js +256 -0
  42. package/dist/embeddings/vector-store.js.map +1 -0
  43. package/dist/factory.d.ts +193 -0
  44. package/dist/factory.d.ts.map +1 -0
  45. package/dist/factory.js +109 -0
  46. package/dist/factory.js.map +1 -0
  47. package/dist/index.d.ts +30 -453
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +84 -509
  50. package/dist/index.js.map +1 -0
  51. package/dist/learning/analyzer.d.ts +110 -0
  52. package/dist/learning/analyzer.d.ts.map +1 -0
  53. package/dist/learning/analyzer.js +213 -0
  54. package/dist/learning/analyzer.js.map +1 -0
  55. package/dist/learning/effectiveness.d.ts +158 -0
  56. package/dist/learning/effectiveness.d.ts.map +1 -0
  57. package/dist/learning/effectiveness.js +251 -0
  58. package/dist/learning/effectiveness.js.map +1 -0
  59. package/dist/learning/index.d.ts +8 -0
  60. package/dist/learning/index.d.ts.map +1 -0
  61. package/dist/learning/index.js +11 -0
  62. package/dist/learning/index.js.map +1 -0
  63. package/dist/learning/llm-extractor.d.ts +88 -0
  64. package/dist/learning/llm-extractor.d.ts.map +1 -0
  65. package/dist/learning/llm-extractor.js +372 -0
  66. package/dist/learning/llm-extractor.js.map +1 -0
  67. package/dist/learning/meta-learner.d.ts +80 -0
  68. package/dist/learning/meta-learner.d.ts.map +1 -0
  69. package/dist/learning/meta-learner.js +355 -0
  70. package/dist/learning/meta-learner.js.map +1 -0
  71. package/dist/learning/pipeline.d.ts +65 -0
  72. package/dist/learning/pipeline.d.ts.map +1 -0
  73. package/dist/learning/pipeline.js +170 -0
  74. package/dist/learning/pipeline.js.map +1 -0
  75. package/dist/learning/playbook-extractor.d.ts +113 -0
  76. package/dist/learning/playbook-extractor.d.ts.map +1 -0
  77. package/dist/learning/playbook-extractor.js +523 -0
  78. package/dist/learning/playbook-extractor.js.map +1 -0
  79. package/dist/learning/usage-inference.d.ts +82 -0
  80. package/dist/learning/usage-inference.d.ts.map +1 -0
  81. package/dist/learning/usage-inference.js +261 -0
  82. package/dist/learning/usage-inference.js.map +1 -0
  83. package/dist/mcp/index.d.ts +6 -0
  84. package/dist/mcp/index.d.ts.map +1 -0
  85. package/dist/mcp/index.js +6 -0
  86. package/dist/mcp/index.js.map +1 -0
  87. package/dist/mcp/playbook-server.d.ts +120 -0
  88. package/dist/mcp/playbook-server.d.ts.map +1 -0
  89. package/dist/mcp/playbook-server.js +427 -0
  90. package/dist/mcp/playbook-server.js.map +1 -0
  91. package/dist/memory/curated-loader.d.ts +62 -0
  92. package/dist/memory/curated-loader.d.ts.map +1 -0
  93. package/dist/memory/curated-loader.js +106 -0
  94. package/dist/memory/curated-loader.js.map +1 -0
  95. package/dist/memory/experience.d.ts +122 -0
  96. package/dist/memory/experience.d.ts.map +1 -0
  97. package/dist/memory/experience.js +392 -0
  98. package/dist/memory/experience.js.map +1 -0
  99. package/dist/memory/index.d.ts +6 -0
  100. package/dist/memory/index.d.ts.map +1 -0
  101. package/dist/memory/index.js +9 -0
  102. package/dist/memory/index.js.map +1 -0
  103. package/dist/memory/meta.d.ts +90 -0
  104. package/dist/memory/meta.d.ts.map +1 -0
  105. package/dist/memory/meta.js +362 -0
  106. package/dist/memory/meta.js.map +1 -0
  107. package/dist/memory/playbook.d.ts +133 -0
  108. package/dist/memory/playbook.d.ts.map +1 -0
  109. package/dist/memory/playbook.js +357 -0
  110. package/dist/memory/playbook.js.map +1 -0
  111. package/dist/memory/system.d.ts +167 -0
  112. package/dist/memory/system.d.ts.map +1 -0
  113. package/dist/memory/system.js +383 -0
  114. package/dist/memory/system.js.map +1 -0
  115. package/dist/runtime/backends/acp.d.ts +67 -0
  116. package/dist/runtime/backends/acp.d.ts.map +1 -0
  117. package/dist/runtime/backends/acp.js +290 -0
  118. package/dist/runtime/backends/acp.js.map +1 -0
  119. package/dist/runtime/backends/index.d.ts +5 -0
  120. package/dist/runtime/backends/index.d.ts.map +1 -0
  121. package/dist/runtime/backends/index.js +6 -0
  122. package/dist/runtime/backends/index.js.map +1 -0
  123. package/dist/runtime/backends/mock.d.ts +67 -0
  124. package/dist/runtime/backends/mock.d.ts.map +1 -0
  125. package/dist/runtime/backends/mock.js +153 -0
  126. package/dist/runtime/backends/mock.js.map +1 -0
  127. package/dist/runtime/backends/subprocess.d.ts +56 -0
  128. package/dist/runtime/backends/subprocess.d.ts.map +1 -0
  129. package/dist/runtime/backends/subprocess.js +260 -0
  130. package/dist/runtime/backends/subprocess.js.map +1 -0
  131. package/dist/runtime/flows/learning.d.ts +73 -0
  132. package/dist/runtime/flows/learning.d.ts.map +1 -0
  133. package/dist/runtime/flows/learning.js +116 -0
  134. package/dist/runtime/flows/learning.js.map +1 -0
  135. package/dist/runtime/flows/validation.d.ts +122 -0
  136. package/dist/runtime/flows/validation.d.ts.map +1 -0
  137. package/dist/runtime/flows/validation.js +223 -0
  138. package/dist/runtime/flows/validation.js.map +1 -0
  139. package/dist/runtime/index.d.ts +6 -0
  140. package/dist/runtime/index.d.ts.map +1 -0
  141. package/dist/runtime/index.js +8 -0
  142. package/dist/runtime/index.js.map +1 -0
  143. package/dist/runtime/manager.d.ts +116 -0
  144. package/dist/runtime/manager.d.ts.map +1 -0
  145. package/dist/runtime/manager.js +416 -0
  146. package/dist/runtime/manager.js.map +1 -0
  147. package/dist/runtime/types.d.ts +138 -0
  148. package/dist/runtime/types.d.ts.map +1 -0
  149. package/dist/runtime/types.js +2 -0
  150. package/dist/runtime/types.js.map +1 -0
  151. package/dist/search/evaluator.d.ts +102 -0
  152. package/dist/search/evaluator.d.ts.map +1 -0
  153. package/dist/search/evaluator.js +352 -0
  154. package/dist/search/evaluator.js.map +1 -0
  155. package/dist/search/index.d.ts +7 -0
  156. package/dist/search/index.d.ts.map +1 -0
  157. package/dist/search/index.js +11 -0
  158. package/dist/search/index.js.map +1 -0
  159. package/dist/search/refinement-loop.d.ts +73 -0
  160. package/dist/search/refinement-loop.d.ts.map +1 -0
  161. package/dist/search/refinement-loop.js +245 -0
  162. package/dist/search/refinement-loop.js.map +1 -0
  163. package/dist/search/refinement-types.d.ts +154 -0
  164. package/dist/search/refinement-types.d.ts.map +1 -0
  165. package/dist/search/refinement-types.js +99 -0
  166. package/dist/search/refinement-types.js.map +1 -0
  167. package/dist/search/router.d.ts +61 -0
  168. package/dist/search/router.d.ts.map +1 -0
  169. package/dist/search/router.js +197 -0
  170. package/dist/search/router.js.map +1 -0
  171. package/dist/search/solver.d.ts +75 -0
  172. package/dist/search/solver.d.ts.map +1 -0
  173. package/dist/search/solver.js +216 -0
  174. package/dist/search/solver.js.map +1 -0
  175. package/dist/search/verification-runner.d.ts +125 -0
  176. package/dist/search/verification-runner.d.ts.map +1 -0
  177. package/dist/search/verification-runner.js +440 -0
  178. package/dist/search/verification-runner.js.map +1 -0
  179. package/dist/surfacing/index.d.ts +2 -0
  180. package/dist/surfacing/index.d.ts.map +1 -0
  181. package/dist/surfacing/index.js +2 -0
  182. package/dist/surfacing/index.js.map +1 -0
  183. package/dist/surfacing/skill-library.d.ts +158 -0
  184. package/dist/surfacing/skill-library.d.ts.map +1 -0
  185. package/dist/surfacing/skill-library.js +429 -0
  186. package/dist/surfacing/skill-library.js.map +1 -0
  187. package/dist/types/config.d.ts +1113 -0
  188. package/dist/types/config.d.ts.map +1 -0
  189. package/dist/types/config.js +274 -0
  190. package/dist/types/config.js.map +1 -0
  191. package/dist/types/index.d.ts +9 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +14 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/memory.d.ts +339 -0
  196. package/dist/types/memory.d.ts.map +1 -0
  197. package/dist/types/memory.js +207 -0
  198. package/dist/types/memory.js.map +1 -0
  199. package/dist/types/meta.d.ts +146 -0
  200. package/dist/types/meta.d.ts.map +1 -0
  201. package/dist/types/meta.js +51 -0
  202. package/dist/types/meta.js.map +1 -0
  203. package/dist/types/outcome.d.ts +42 -0
  204. package/dist/types/outcome.d.ts.map +1 -0
  205. package/dist/types/outcome.js +50 -0
  206. package/dist/types/outcome.js.map +1 -0
  207. package/dist/types/playbook.d.ts +119 -0
  208. package/dist/types/playbook.d.ts.map +1 -0
  209. package/dist/types/playbook.js +71 -0
  210. package/dist/types/playbook.js.map +1 -0
  211. package/dist/types/step.d.ts +44 -0
  212. package/dist/types/step.d.ts.map +1 -0
  213. package/dist/types/step.js +32 -0
  214. package/dist/types/step.js.map +1 -0
  215. package/dist/types/task.d.ts +91 -0
  216. package/dist/types/task.d.ts.map +1 -0
  217. package/dist/types/task.js +39 -0
  218. package/dist/types/task.js.map +1 -0
  219. package/dist/types/trajectory.d.ts +221 -0
  220. package/dist/types/trajectory.d.ts.map +1 -0
  221. package/dist/types/trajectory.js +60 -0
  222. package/dist/types/trajectory.js.map +1 -0
  223. package/dist/utils/index.d.ts +4 -0
  224. package/dist/utils/index.d.ts.map +1 -0
  225. package/dist/utils/index.js +4 -0
  226. package/dist/utils/index.js.map +1 -0
  227. package/dist/utils/similarity.d.ts +31 -0
  228. package/dist/utils/similarity.d.ts.map +1 -0
  229. package/dist/utils/similarity.js +107 -0
  230. package/dist/utils/similarity.js.map +1 -0
  231. package/dist/utils/storage.d.ts +106 -0
  232. package/dist/utils/storage.d.ts.map +1 -0
  233. package/dist/utils/storage.js +203 -0
  234. package/dist/utils/storage.js.map +1 -0
  235. package/dist/utils/validation.d.ts +129 -0
  236. package/dist/utils/validation.d.ts.map +1 -0
  237. package/dist/utils/validation.js +171 -0
  238. package/dist/utils/validation.js.map +1 -0
  239. package/package.json +50 -34
  240. package/scripts/migrate-to-playbooks.ts +307 -0
  241. package/src/agents/index.ts +14 -0
  242. package/src/agents/mock-provider.ts +93 -0
  243. package/src/agents/types.ts +137 -0
  244. package/src/atlas.ts +560 -0
  245. package/src/bin/cognitive-core.ts +470 -0
  246. package/src/embeddings/bm25.ts +337 -0
  247. package/src/embeddings/index.ts +39 -0
  248. package/src/embeddings/manager.ts +288 -0
  249. package/src/embeddings/provider.ts +311 -0
  250. package/src/embeddings/vector-store.ts +353 -0
  251. package/src/factory.ts +263 -0
  252. package/src/index.ts +246 -0
  253. package/src/learning/analyzer.ts +335 -0
  254. package/src/learning/effectiveness.ts +428 -0
  255. package/src/learning/index.ts +58 -0
  256. package/src/learning/llm-extractor.ts +542 -0
  257. package/src/learning/meta-learner.ts +516 -0
  258. package/src/learning/pipeline.ts +244 -0
  259. package/src/learning/playbook-extractor.ts +702 -0
  260. package/src/learning/usage-inference.ts +372 -0
  261. package/src/mcp/index.ts +12 -0
  262. package/src/mcp/playbook-server.ts +565 -0
  263. package/src/memory/curated-loader.ts +160 -0
  264. package/src/memory/experience.ts +515 -0
  265. package/src/memory/index.ts +27 -0
  266. package/src/memory/meta.ts +506 -0
  267. package/src/memory/playbook.ts +493 -0
  268. package/src/memory/system.ts +551 -0
  269. package/src/runtime/backends/acp.ts +378 -0
  270. package/src/runtime/backends/index.ts +24 -0
  271. package/src/runtime/backends/mock.ts +218 -0
  272. package/src/runtime/backends/subprocess.ts +356 -0
  273. package/src/runtime/flows/learning.ts +183 -0
  274. package/src/runtime/flows/validation.ts +381 -0
  275. package/src/runtime/index.ts +53 -0
  276. package/src/runtime/manager.ts +541 -0
  277. package/src/runtime/types.ts +157 -0
  278. package/src/search/evaluator.ts +474 -0
  279. package/src/search/index.ts +59 -0
  280. package/src/search/refinement-loop.ts +363 -0
  281. package/src/search/refinement-types.ts +159 -0
  282. package/src/search/router.ts +261 -0
  283. package/src/search/solver.ts +303 -0
  284. package/src/search/verification-runner.ts +570 -0
  285. package/src/surfacing/index.ts +6 -0
  286. package/src/surfacing/skill-library.ts +594 -0
  287. package/src/types/config.ts +333 -0
  288. package/src/types/index.ts +130 -0
  289. package/src/types/memory.ts +270 -0
  290. package/src/types/meta.ts +218 -0
  291. package/src/types/outcome.ts +66 -0
  292. package/src/types/playbook.ts +196 -0
  293. package/src/types/step.ts +40 -0
  294. package/src/types/task.ts +52 -0
  295. package/src/types/trajectory.ts +80 -0
  296. package/src/utils/index.ts +38 -0
  297. package/src/utils/similarity.ts +139 -0
  298. package/src/utils/storage.ts +249 -0
  299. package/src/utils/validation.ts +286 -0
  300. package/tests/embeddings/bm25.test.ts +130 -0
  301. package/tests/embeddings/manager.test.ts +205 -0
  302. package/tests/integration/atlas.test.ts +266 -0
  303. package/tests/integration/e2e.test.ts +929 -0
  304. package/tests/learning/analyzer.test.ts +426 -0
  305. package/tests/learning/effectiveness.test.ts +542 -0
  306. package/tests/learning/pipeline.test.ts +176 -0
  307. package/tests/learning/playbook-extractor-provenance.test.ts +114 -0
  308. package/tests/learning/usage-inference.test.ts +254 -0
  309. package/tests/mcp/playbook-server.test.ts +252 -0
  310. package/tests/memory/experience.test.ts +198 -0
  311. package/tests/memory/playbook.test.ts +338 -0
  312. package/tests/memory/provenance.test.ts +639 -0
  313. package/tests/memory/system.test.ts +325 -0
  314. package/tests/runtime/agent-manager.test.ts +512 -0
  315. package/tests/runtime/mock-backend.test.ts +248 -0
  316. package/tests/search/refinement-loop.test.ts +468 -0
  317. package/tests/search/refinement.test.ts +267 -0
  318. package/tests/search/router.test.ts +427 -0
  319. package/tests/surfacing/skill-library.test.ts +292 -0
  320. package/tests/types/outcome.test.ts +147 -0
  321. package/tests/types/step.test.ts +133 -0
  322. package/tests/types/task.test.ts +158 -0
  323. package/tests/types/trajectory.test.ts +253 -0
  324. package/tests/utils/similarity.test.ts +188 -0
  325. package/tests/utils/validation.test.ts +252 -0
  326. package/tsconfig.json +25 -0
  327. package/vitest.config.ts +22 -0
  328. package/dist/index.d.mts +0 -466
  329. package/dist/index.mjs +0 -478
@@ -0,0 +1,245 @@
1
+ /**
2
+ * Refinement Loop
3
+ *
4
+ * Implements ReMem-style iterative refinement that improves solutions
5
+ * using memory-augmented feedback. The loop:
6
+ * 1. Evaluates solution quality
7
+ * 2. If not acceptable, injects failure context and retries
8
+ * 3. Continues until acceptable or max iterations reached
9
+ */
10
+ import { SolutionEvaluator } from './evaluator.js';
11
+ /**
12
+ * Default refinement configuration
13
+ */
14
+ const DEFAULT_CONFIG = {
15
+ maxIterations: 3,
16
+ minAcceptableScore: 0.7,
17
+ injectFailureContext: true,
18
+ queryFailureMemory: true,
19
+ evaluatorConfig: {},
20
+ triggerOnStrategies: ['explore', 'fallback'],
21
+ confidenceThreshold: 0.85,
22
+ };
23
+ /**
24
+ * RefinementLoop - Iteratively improves solutions using feedback
25
+ */
26
+ export class RefinementLoop {
27
+ agentManager;
28
+ memory;
29
+ evaluator;
30
+ config;
31
+ constructor(agentManager, memory, config = {}) {
32
+ this.agentManager = agentManager;
33
+ this.memory = memory;
34
+ this.config = { ...DEFAULT_CONFIG, ...config };
35
+ this.evaluator = new SolutionEvaluator(agentManager, this.config.evaluatorConfig);
36
+ }
37
+ /**
38
+ * Get the evaluator for registering domain verifiers
39
+ */
40
+ getEvaluator() {
41
+ return this.evaluator;
42
+ }
43
+ /**
44
+ * Check if refinement should be triggered based on strategy and confidence
45
+ */
46
+ shouldTriggerRefinement(strategy, confidence) {
47
+ // Check if strategy is in trigger list
48
+ if (!this.config.triggerOnStrategies.includes(strategy)) {
49
+ return false;
50
+ }
51
+ // If confidence is high enough, skip refinement
52
+ if (confidence !== undefined &&
53
+ confidence >= this.config.confidenceThreshold) {
54
+ return false;
55
+ }
56
+ return true;
57
+ }
58
+ /**
59
+ * Run the refinement loop on an initial trajectory
60
+ */
61
+ async refine(initialTrajectory, spawnConfig) {
62
+ const evaluations = [];
63
+ let currentTrajectory = initialTrajectory;
64
+ let bestTrajectory = initialTrajectory;
65
+ let bestScore = 0;
66
+ let improved = false;
67
+ // Evaluate initial trajectory
68
+ const initialEval = await this.evaluator.evaluate(currentTrajectory, spawnConfig.task);
69
+ evaluations.push(initialEval);
70
+ bestScore = initialEval.score;
71
+ // If initial is acceptable, return early
72
+ if (initialEval.acceptable && initialEval.score >= this.config.minAcceptableScore) {
73
+ return {
74
+ trajectory: currentTrajectory,
75
+ success: true,
76
+ iterations: 0,
77
+ evaluations,
78
+ improved: false,
79
+ bestScore: initialEval.score,
80
+ };
81
+ }
82
+ // Refinement loop
83
+ for (let iteration = 0; iteration < this.config.maxIterations; iteration++) {
84
+ // Build failure context
85
+ const failureContext = {
86
+ attemptedSolution: currentTrajectory.outcome.solution,
87
+ evaluation: evaluations[evaluations.length - 1],
88
+ stepsAttempted: currentTrajectory.steps.length,
89
+ previousAttempts: iteration + 1,
90
+ };
91
+ // Query memory for similar failures if enabled
92
+ let failureMemory;
93
+ if (this.config.queryFailureMemory) {
94
+ failureMemory = await this.queryFailurePatterns(spawnConfig.task, failureContext);
95
+ }
96
+ // Build refinement prompt
97
+ const refinementAdditions = this.buildRefinementPrompt(failureContext, failureMemory);
98
+ // Spawn refined agent
99
+ const refinedConfig = {
100
+ ...spawnConfig,
101
+ systemPromptAdditions: [
102
+ spawnConfig.systemPromptAdditions,
103
+ refinementAdditions,
104
+ ]
105
+ .filter(Boolean)
106
+ .join('\n\n'),
107
+ };
108
+ const result = await this.agentManager.spawn(refinedConfig);
109
+ currentTrajectory = result.trajectory;
110
+ // Evaluate refined trajectory
111
+ const evaluation = await this.evaluator.evaluate(currentTrajectory, spawnConfig.task);
112
+ evaluations.push(evaluation);
113
+ // Track best
114
+ if (evaluation.score > bestScore) {
115
+ bestScore = evaluation.score;
116
+ bestTrajectory = currentTrajectory;
117
+ improved = true;
118
+ }
119
+ // Check if acceptable
120
+ if (evaluation.acceptable && evaluation.score >= this.config.minAcceptableScore) {
121
+ return {
122
+ trajectory: currentTrajectory,
123
+ success: true,
124
+ iterations: iteration + 1,
125
+ evaluations,
126
+ improved,
127
+ bestScore,
128
+ };
129
+ }
130
+ }
131
+ // Return best trajectory after all iterations
132
+ return {
133
+ trajectory: bestTrajectory,
134
+ success: bestScore >= this.config.minAcceptableScore,
135
+ iterations: this.config.maxIterations,
136
+ evaluations,
137
+ improved,
138
+ bestScore,
139
+ };
140
+ }
141
+ /**
142
+ * Query memory for similar failure patterns
143
+ */
144
+ async queryFailurePatterns(task, failureContext) {
145
+ // Build query from task and failure
146
+ const failureDescription = failureContext.evaluation.issues
147
+ .map((issue) => issue.description)
148
+ .join('; ');
149
+ const query = `${task.description} - failed with: ${failureDescription}`;
150
+ // Query memory for similar experiences and playbooks
151
+ const results = await this.memory.queryV2(query, {
152
+ domains: task.domain ? [task.domain] : undefined,
153
+ includeExperiences: true,
154
+ includePlaybooks: true,
155
+ });
156
+ // Filter to experiences that eventually succeeded after similar failures
157
+ // This gives us recovery strategies
158
+ const recoveryExperiences = results.experiences.filter((exp) => exp.experience.success &&
159
+ this.hasSimilarInitialFailure(exp.experience, failureContext));
160
+ return {
161
+ ...results,
162
+ experiences: recoveryExperiences.length > 0 ? recoveryExperiences : results.experiences,
163
+ };
164
+ }
165
+ /**
166
+ * Check if an experience had a similar initial failure pattern
167
+ */
168
+ hasSimilarInitialFailure(experience, failureContext) {
169
+ // Look for similar error patterns in the experience's early steps
170
+ const failureKeywords = failureContext.evaluation.issues
171
+ .map((issue) => issue.description.toLowerCase().split(' '))
172
+ .flat()
173
+ .filter((word) => word.length > 4);
174
+ const experienceText = ((experience.steps ?? [])
175
+ .map((s) => s.observation ?? '')
176
+ .join(' ') +
177
+ ' ' +
178
+ experience.solutionOutput).toLowerCase();
179
+ const matchCount = failureKeywords.filter((kw) => experienceText.includes(kw)).length;
180
+ return matchCount >= Math.min(2, failureKeywords.length / 2);
181
+ }
182
+ /**
183
+ * Build refinement prompt with failure context and memory
184
+ */
185
+ buildRefinementPrompt(failureContext, failureMemory) {
186
+ const parts = [];
187
+ if (this.config.injectFailureContext) {
188
+ parts.push('## Previous Attempt Feedback');
189
+ parts.push('');
190
+ parts.push(`Your previous attempt (iteration ${failureContext.previousAttempts}) had issues:`);
191
+ parts.push('');
192
+ for (const issue of failureContext.evaluation.issues) {
193
+ const severity = issue.severity.toUpperCase();
194
+ parts.push(`- **[${severity}]** ${issue.type}: ${issue.description}`);
195
+ if (issue.suggestion) {
196
+ parts.push(` *Suggestion:* ${issue.suggestion}`);
197
+ }
198
+ }
199
+ parts.push('');
200
+ parts.push(`Quality score: ${(failureContext.evaluation.score * 100).toFixed(0)}%`);
201
+ parts.push(`Assessment: ${failureContext.evaluation.quality}`);
202
+ parts.push('');
203
+ }
204
+ if (failureMemory && this.config.queryFailureMemory) {
205
+ // Add recovery playbooks from memory
206
+ if (failureMemory.playbooks.length > 0) {
207
+ parts.push('## Recovery Playbooks from Memory');
208
+ parts.push('');
209
+ for (const { playbook, score } of failureMemory.playbooks.slice(0, 3)) {
210
+ parts.push(`- **${playbook.name}** (${(score * 100).toFixed(0)}% relevant)`);
211
+ parts.push(` Strategy: ${playbook.guidance.strategy}`);
212
+ if (playbook.guidance.steps && playbook.guidance.steps.length > 0) {
213
+ parts.push(` Steps: ${playbook.guidance.steps.slice(0, 3).join(' → ')}`);
214
+ }
215
+ }
216
+ parts.push('');
217
+ }
218
+ // Add successful recovery experiences
219
+ if (failureMemory.experiences.length > 0) {
220
+ parts.push('## Similar Problems Successfully Solved');
221
+ parts.push('');
222
+ for (const { experience } of failureMemory.experiences.slice(0, 2)) {
223
+ parts.push(`- Task: ${experience.taskInput.slice(0, 150)}...`);
224
+ parts.push(` Solution approach: ${experience.solutionOutput.slice(0, 200)}...`);
225
+ }
226
+ parts.push('');
227
+ }
228
+ }
229
+ parts.push('## Instructions for This Attempt');
230
+ parts.push('');
231
+ parts.push('Please address the issues identified above and try a different approach.');
232
+ parts.push('Focus on:');
233
+ parts.push('1. Avoiding the specific errors from the previous attempt');
234
+ parts.push('2. Using the recovery playbooks if applicable');
235
+ parts.push('3. Taking a more thorough or alternative approach');
236
+ return parts.join('\n');
237
+ }
238
+ }
239
+ /**
240
+ * Create a refinement loop
241
+ */
242
+ export function createRefinementLoop(agentManager, memory, config) {
243
+ return new RefinementLoop(agentManager, memory, config);
244
+ }
245
+ //# sourceMappingURL=refinement-loop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refinement-loop.js","sourceRoot":"","sources":["../../src/search/refinement-loop.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAYH,OAAO,EAAE,iBAAiB,EAAwB,MAAM,gBAAgB,CAAC;AAsBzE;;GAEG;AACH,MAAM,cAAc,GAAmC;IACrD,aAAa,EAAE,CAAC;IAChB,kBAAkB,EAAE,GAAG;IACvB,oBAAoB,EAAE,IAAI;IAC1B,kBAAkB,EAAE,IAAI;IACxB,eAAe,EAAE,EAAE;IACnB,mBAAmB,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAC5C,mBAAmB,EAAE,IAAI;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,YAAY,CAAe;IAC3B,MAAM,CAAe;IACrB,SAAS,CAAoB;IAC7B,MAAM,CAAiC;IAE/C,YACE,YAA0B,EAC1B,MAAoB,EACpB,SAA+B,EAAE;QAEjC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CACpC,YAAY,EACZ,IAAI,CAAC,MAAM,CAAC,eAAe,CAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,uBAAuB,CACrB,QAAqD,EACrD,UAAmB;QAEnB,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,gDAAgD;QAChD,IACE,UAAU,KAAK,SAAS;YACxB,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAC7C,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CACV,iBAA6B,EAC7B,WAA6B;QAE7B,MAAM,WAAW,GAAuB,EAAE,CAAC;QAC3C,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,IAAI,cAAc,GAAG,iBAAiB,CAAC;QACvC,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,8BAA8B;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC/C,iBAAiB,EACjB,WAAW,CAAC,IAAI,CACjB,CAAC;QACF,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC;QAE9B,yCAAyC;QACzC,IAAI,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YAClF,OAAO;gBACL,UAAU,EAAE,iBAAiB;gBAC7B,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,CAAC;gBACb,WAAW;gBACX,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,WAAW,CAAC,KAAK;aAC7B,CAAC;QACJ,CAAC;QAED,kBAAkB;QAClB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC;YAC3E,wBAAwB;YACxB,MAAM,cAAc,GAAmB;gBACrC,iBAAiB,EAAE,iBAAiB,CAAC,OAAO,CAAC,QAAQ;gBACrD,UAAU,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC/C,cAAc,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM;gBAC9C,gBAAgB,EAAE,SAAS,GAAG,CAAC;aAChC,CAAC;YAEF,+CAA+C;YAC/C,IAAI,aAA8C,CAAC;YACnD,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACnC,aAAa,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAC7C,WAAW,CAAC,IAAI,EAChB,cAAc,CACf,CAAC;YACJ,CAAC;YAED,0BAA0B;YAC1B,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,CACpD,cAAc,EACd,aAAa,CACd,CAAC;YAEF,sBAAsB;YACtB,MAAM,aAAa,GAAqB;gBACtC,GAAG,WAAW;gBACd,qBAAqB,EAAE;oBACrB,WAAW,CAAC,qBAAqB;oBACjC,mBAAmB;iBACpB;qBACE,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,MAAM,CAAC;aAChB,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAC5D,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC;YAEtC,8BAA8B;YAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAC9C,iBAAiB,EACjB,WAAW,CAAC,IAAI,CACjB,CAAC;YACF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE7B,aAAa;YACb,IAAI,UAAU,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBACjC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;gBAC7B,cAAc,GAAG,iBAAiB,CAAC;gBACnC,QAAQ,GAAG,IAAI,CAAC;YAClB,CAAC;YAED,sBAAsB;YACtB,IAAI,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBAChF,OAAO;oBACL,UAAU,EAAE,iBAAiB;oBAC7B,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,SAAS,GAAG,CAAC;oBACzB,WAAW;oBACX,QAAQ;oBACR,SAAS;iBACV,CAAC;YACJ,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,OAAO;YACL,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB;YACpD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACrC,WAAW;YACX,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAChC,IAAU,EACV,cAA8B;QAE9B,oCAAoC;QACpC,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM;aACxD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;aACjC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,mBAAmB,kBAAkB,EAAE,CAAC;QAEzE,qDAAqD;QACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE;YAC/C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAChD,kBAAkB,EAAE,IAAI;YACxB,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,yEAAyE;QACzE,oCAAoC;QACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CACpD,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,UAAU,CAAC,OAAO;YACtB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,UAAU,EAAE,cAAc,CAAC,CAChE,CAAC;QAEF,OAAO;YACL,GAAG,OAAO;YACV,WAAW,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW;SACxF,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,wBAAwB,CAC9B,UAA+E,EAC/E,cAA8B;QAE9B,kEAAkE;QAClE,MAAM,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM;aACrD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC1D,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAErC,MAAM,cAAc,GAAG,CACrB,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,CAAC;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC;aAC/B,IAAI,CAAC,GAAG,CAAC;YACZ,GAAG;YACH,UAAU,CAAC,cAAc,CAC1B,CAAC,WAAW,EAAE,CAAC;QAEhB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAC/C,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAC5B,CAAC,MAAM,CAAC;QAET,OAAO,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACK,qBAAqB,CAC3B,cAA8B,EAC9B,aAAmC;QAEnC,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CACR,oCAAoC,cAAc,CAAC,gBAAgB,eAAe,CACnF,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEf,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBACrD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,QAAQ,QAAQ,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBACtE,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oBACrB,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;YAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpF,KAAK,CAAC,IAAI,CAAC,eAAe,cAAc,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QAED,IAAI,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACpD,qCAAqC;YACrC,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;gBAChD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACtE,KAAK,CAAC,IAAI,CACR,OAAO,QAAQ,CAAC,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CACjE,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,eAAe,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAClE,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;YAED,sCAAsC;YACtC,IAAI,aAAa,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,KAAK,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACf,KAAK,MAAM,EAAE,UAAU,EAAE,IAAI,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;oBACnE,KAAK,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC/D,KAAK,CAAC,IAAI,CAAC,wBAAwB,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;gBACnF,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAEhE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,YAA0B,EAC1B,MAAoB,EACpB,MAA6B;IAE7B,OAAO,IAAI,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Refinement Types
3
+ *
4
+ * Types for the ReMem-style refinement loop that iteratively
5
+ * improves solutions using memory-augmented feedback.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Issue type found during evaluation
10
+ */
11
+ export declare const IssueTypeSchema: z.ZodEnum<["incomplete", "incorrect", "inefficient", "off_topic", "error"]>;
12
+ export type IssueType = z.infer<typeof IssueTypeSchema>;
13
+ /**
14
+ * Severity of an issue
15
+ */
16
+ export declare const IssueSeveritySchema: z.ZodEnum<["critical", "major", "minor"]>;
17
+ export type IssueSeverity = z.infer<typeof IssueSeveritySchema>;
18
+ /**
19
+ * An issue found during solution evaluation
20
+ */
21
+ export declare const EvaluationIssueSchema: z.ZodObject<{
22
+ type: z.ZodEnum<["incomplete", "incorrect", "inefficient", "off_topic", "error"]>;
23
+ description: z.ZodString;
24
+ severity: z.ZodEnum<["critical", "major", "minor"]>;
25
+ suggestion: z.ZodOptional<z.ZodString>;
26
+ }, "strip", z.ZodTypeAny, {
27
+ type: "error" | "incomplete" | "incorrect" | "inefficient" | "off_topic";
28
+ description: string;
29
+ severity: "major" | "minor" | "critical";
30
+ suggestion?: string | undefined;
31
+ }, {
32
+ type: "error" | "incomplete" | "incorrect" | "inefficient" | "off_topic";
33
+ description: string;
34
+ severity: "major" | "minor" | "critical";
35
+ suggestion?: string | undefined;
36
+ }>;
37
+ export type EvaluationIssue = z.infer<typeof EvaluationIssueSchema>;
38
+ /**
39
+ * Quality assessment level
40
+ */
41
+ export declare const QualityLevelSchema: z.ZodEnum<["excellent", "good", "needs_work", "poor"]>;
42
+ export type QualityLevel = z.infer<typeof QualityLevelSchema>;
43
+ /**
44
+ * How the evaluation was performed
45
+ */
46
+ export declare const EvaluationMethodSchema: z.ZodEnum<["verification", "agent", "heuristic"]>;
47
+ export type EvaluationMethod = z.infer<typeof EvaluationMethodSchema>;
48
+ /**
49
+ * Result of evaluating a solution's quality
50
+ */
51
+ export declare const EvaluationResultSchema: z.ZodObject<{
52
+ /** Overall quality assessment */
53
+ quality: z.ZodEnum<["excellent", "good", "needs_work", "poor"]>;
54
+ /** Numeric score (0-1) */
55
+ score: z.ZodNumber;
56
+ /** Whether this solution is acceptable */
57
+ acceptable: z.ZodBoolean;
58
+ /** Specific issues found */
59
+ issues: z.ZodArray<z.ZodObject<{
60
+ type: z.ZodEnum<["incomplete", "incorrect", "inefficient", "off_topic", "error"]>;
61
+ description: z.ZodString;
62
+ severity: z.ZodEnum<["critical", "major", "minor"]>;
63
+ suggestion: z.ZodOptional<z.ZodString>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ type: "error" | "incomplete" | "incorrect" | "inefficient" | "off_topic";
66
+ description: string;
67
+ severity: "major" | "minor" | "critical";
68
+ suggestion?: string | undefined;
69
+ }, {
70
+ type: "error" | "incomplete" | "incorrect" | "inefficient" | "off_topic";
71
+ description: string;
72
+ severity: "major" | "minor" | "critical";
73
+ suggestion?: string | undefined;
74
+ }>, "many">;
75
+ /** How the evaluation was performed */
76
+ method: z.ZodEnum<["verification", "agent", "heuristic"]>;
77
+ /** Raw response from evaluator (for debugging) */
78
+ rawResponse: z.ZodOptional<z.ZodString>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ issues: {
81
+ type: "error" | "incomplete" | "incorrect" | "inefficient" | "off_topic";
82
+ description: string;
83
+ severity: "major" | "minor" | "critical";
84
+ suggestion?: string | undefined;
85
+ }[];
86
+ acceptable: boolean;
87
+ score: number;
88
+ quality: "excellent" | "good" | "poor" | "needs_work";
89
+ method: "verification" | "agent" | "heuristic";
90
+ rawResponse?: string | undefined;
91
+ }, {
92
+ issues: {
93
+ type: "error" | "incomplete" | "incorrect" | "inefficient" | "off_topic";
94
+ description: string;
95
+ severity: "major" | "minor" | "critical";
96
+ suggestion?: string | undefined;
97
+ }[];
98
+ acceptable: boolean;
99
+ score: number;
100
+ quality: "excellent" | "good" | "poor" | "needs_work";
101
+ method: "verification" | "agent" | "heuristic";
102
+ rawResponse?: string | undefined;
103
+ }>;
104
+ export type EvaluationResult = z.infer<typeof EvaluationResultSchema>;
105
+ /**
106
+ * Context about why a solution failed
107
+ */
108
+ export interface FailureContext {
109
+ /** The solution that was attempted */
110
+ attemptedSolution: unknown;
111
+ /** Evaluation result */
112
+ evaluation: EvaluationResult;
113
+ /** Number of steps taken in the attempt */
114
+ stepsAttempted: number;
115
+ /** Number of previous refinement attempts */
116
+ previousAttempts: number;
117
+ }
118
+ /**
119
+ * Result of the refinement loop
120
+ */
121
+ export interface RefinementResult {
122
+ /** Final trajectory after refinement */
123
+ trajectory: import('../types/trajectory.js').Trajectory;
124
+ /** Whether the final solution is acceptable */
125
+ success: boolean;
126
+ /** Number of refinement iterations performed */
127
+ iterations: number;
128
+ /** Evaluation results from each iteration */
129
+ evaluations: EvaluationResult[];
130
+ /** Whether refinement improved the solution */
131
+ improved: boolean;
132
+ /** Best score achieved during refinement */
133
+ bestScore: number;
134
+ }
135
+ /**
136
+ * Create an evaluation result
137
+ */
138
+ export declare function createEvaluationResult(params: {
139
+ quality: QualityLevel;
140
+ score: number;
141
+ acceptable: boolean;
142
+ issues?: EvaluationIssue[];
143
+ method: EvaluationMethod;
144
+ rawResponse?: string;
145
+ }): EvaluationResult;
146
+ /**
147
+ * Determine quality level from a numeric score
148
+ */
149
+ export declare function scoreToQuality(score: number): QualityLevel;
150
+ /**
151
+ * Check if a quality level is acceptable
152
+ */
153
+ export declare function isQualityAcceptable(quality: QualityLevel, minAcceptable?: QualityLevel): boolean;
154
+ //# sourceMappingURL=refinement-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refinement-types.d.ts","sourceRoot":"","sources":["../../src/search/refinement-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,eAAe,6EAM1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,mBAAmB,2CAAyC,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,wDAK7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,sBAAsB,mDAIjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,sBAAsB;IACjC,iCAAiC;;IAEjC,0BAA0B;;IAE1B,0CAA0C;;IAE1C,4BAA4B;;;;;;;;;;;;;;;;;IAE5B,uCAAuC;;IAEvC,kDAAkD;;;;;;;;;;;;;;;;;;;;;;;;;;EAElD,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wBAAwB;IACxB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,2CAA2C;IAC3C,cAAc,EAAE,MAAM,CAAC;IACvB,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,UAAU,EAAE,OAAO,wBAAwB,EAAE,UAAU,CAAC;IACxD,+CAA+C;IAC/C,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,gBAAgB,CASnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAK1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,YAAY,EACrB,aAAa,GAAE,YAAqB,GACnC,OAAO,CAKT"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Refinement Types
3
+ *
4
+ * Types for the ReMem-style refinement loop that iteratively
5
+ * improves solutions using memory-augmented feedback.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Issue type found during evaluation
10
+ */
11
+ export const IssueTypeSchema = z.enum([
12
+ 'incomplete',
13
+ 'incorrect',
14
+ 'inefficient',
15
+ 'off_topic',
16
+ 'error',
17
+ ]);
18
+ /**
19
+ * Severity of an issue
20
+ */
21
+ export const IssueSeveritySchema = z.enum(['critical', 'major', 'minor']);
22
+ /**
23
+ * An issue found during solution evaluation
24
+ */
25
+ export const EvaluationIssueSchema = z.object({
26
+ type: IssueTypeSchema,
27
+ description: z.string(),
28
+ severity: IssueSeveritySchema,
29
+ suggestion: z.string().optional(),
30
+ });
31
+ /**
32
+ * Quality assessment level
33
+ */
34
+ export const QualityLevelSchema = z.enum([
35
+ 'excellent',
36
+ 'good',
37
+ 'needs_work',
38
+ 'poor',
39
+ ]);
40
+ /**
41
+ * How the evaluation was performed
42
+ */
43
+ export const EvaluationMethodSchema = z.enum([
44
+ 'verification',
45
+ 'agent',
46
+ 'heuristic',
47
+ ]);
48
+ /**
49
+ * Result of evaluating a solution's quality
50
+ */
51
+ export const EvaluationResultSchema = z.object({
52
+ /** Overall quality assessment */
53
+ quality: QualityLevelSchema,
54
+ /** Numeric score (0-1) */
55
+ score: z.number().min(0).max(1),
56
+ /** Whether this solution is acceptable */
57
+ acceptable: z.boolean(),
58
+ /** Specific issues found */
59
+ issues: z.array(EvaluationIssueSchema),
60
+ /** How the evaluation was performed */
61
+ method: EvaluationMethodSchema,
62
+ /** Raw response from evaluator (for debugging) */
63
+ rawResponse: z.string().optional(),
64
+ });
65
+ /**
66
+ * Create an evaluation result
67
+ */
68
+ export function createEvaluationResult(params) {
69
+ return EvaluationResultSchema.parse({
70
+ quality: params.quality,
71
+ score: params.score,
72
+ acceptable: params.acceptable,
73
+ issues: params.issues ?? [],
74
+ method: params.method,
75
+ rawResponse: params.rawResponse,
76
+ });
77
+ }
78
+ /**
79
+ * Determine quality level from a numeric score
80
+ */
81
+ export function scoreToQuality(score) {
82
+ if (score >= 0.85)
83
+ return 'excellent';
84
+ if (score >= 0.7)
85
+ return 'good';
86
+ if (score >= 0.4)
87
+ return 'needs_work';
88
+ return 'poor';
89
+ }
90
+ /**
91
+ * Check if a quality level is acceptable
92
+ */
93
+ export function isQualityAcceptable(quality, minAcceptable = 'good') {
94
+ const levels = ['poor', 'needs_work', 'good', 'excellent'];
95
+ const qualityIndex = levels.indexOf(quality);
96
+ const minIndex = levels.indexOf(minAcceptable);
97
+ return qualityIndex >= minIndex;
98
+ }
99
+ //# sourceMappingURL=refinement-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refinement-types.js","sourceRoot":"","sources":["../../src/search/refinement-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IACpC,YAAY;IACZ,WAAW;IACX,aAAa;IACb,WAAW;IACX,OAAO;CACR,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAI1E;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,QAAQ,EAAE,mBAAmB;IAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC;IACvC,WAAW;IACX,MAAM;IACN,YAAY;IACZ,MAAM;CACP,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC3C,cAAc;IACd,OAAO;IACP,WAAW;CACZ,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,iCAAiC;IACjC,OAAO,EAAE,kBAAkB;IAC3B,0BAA0B;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,0CAA0C;IAC1C,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,4BAA4B;IAC5B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC;IACtC,uCAAuC;IACvC,MAAM,EAAE,sBAAsB;IAC9B,kDAAkD;IAClD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAoCH;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAOtC;IACC,OAAO,sBAAsB,CAAC,KAAK,CAAC;QAClC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,WAAW,CAAC;IACtC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,YAAY,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAqB,EACrB,gBAA8B,MAAM;IAEpC,MAAM,MAAM,GAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3E,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,OAAO,YAAY,IAAI,QAAQ,CAAC;AAClC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import type { Task, RouterConfig } from '../types/index.js';
2
+ import type { MemorySystem, MemoryQueryResultV2 } from '../memory/system.js';
3
+ import type { MetaLearner } from '../learning/meta-learner.js';
4
+ /**
5
+ * Routing decision with context
6
+ */
7
+ export interface RoutingDecision {
8
+ /** Selected strategy for solving */
9
+ strategy: 'direct' | 'adapt' | 'explore' | 'fallback';
10
+ /** Confidence in this routing (0-1) */
11
+ confidence: number;
12
+ /** Memory query results (playbook format) */
13
+ memoryContext: MemoryQueryResultV2;
14
+ /** Estimated compute budget (LLM calls) */
15
+ estimatedBudget: number;
16
+ /** Reasoning for the decision */
17
+ reasoning: string;
18
+ /** Meta-strategies that were applied */
19
+ appliedMetaStrategies?: string[];
20
+ }
21
+ /**
22
+ * Task Router
23
+ * Determines the best approach for solving a task based on memory
24
+ * Now with meta-learning integration for adaptive routing
25
+ */
26
+ export declare class TaskRouter {
27
+ private memory;
28
+ private config;
29
+ private metaLearner?;
30
+ constructor(memory: MemorySystem, config?: Partial<RouterConfig>, metaLearner?: MetaLearner);
31
+ /**
32
+ * Set the meta learner (can be set after construction)
33
+ */
34
+ setMetaLearner(metaLearner: MetaLearner): void;
35
+ /**
36
+ * Route a task to determine solving strategy
37
+ * Uses playbook-based memory with meta-learning adjustments
38
+ */
39
+ route(task: Task): Promise<RoutingDecision>;
40
+ /**
41
+ * Compute base routing decision from memory results
42
+ */
43
+ private computeBaseRouting;
44
+ /**
45
+ * Extract task characteristics for meta-learning
46
+ */
47
+ private extractTaskCharacteristics;
48
+ /**
49
+ * Summarize memory state for meta-learning
50
+ */
51
+ private summarizeMemoryState;
52
+ /**
53
+ * Update configuration
54
+ */
55
+ updateConfig(config: Partial<RouterConfig>): void;
56
+ }
57
+ /**
58
+ * Create a task router
59
+ */
60
+ export declare function createRouter(memory: MemorySystem, config?: Partial<RouterConfig>, metaLearner?: MetaLearner): TaskRouter;
61
+ //# sourceMappingURL=router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/search/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,QAAQ,EAAE,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IACtD,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,aAAa,EAAE,mBAAmB,CAAC;IACnC,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;CAClC;AAED;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAc;gBAGhC,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,WAAW,CAAC,EAAE,WAAW;IAW3B;;OAEG;IACH,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI9C;;;OAGG;IACG,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;IA6CjD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyD1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAsClC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqC5B;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAGlD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EAC9B,WAAW,CAAC,EAAE,WAAW,GACxB,UAAU,CAEZ"}