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,197 @@
1
+ /**
2
+ * Task Router
3
+ * Determines the best approach for solving a task based on memory
4
+ * Now with meta-learning integration for adaptive routing
5
+ */
6
+ export class TaskRouter {
7
+ memory;
8
+ config;
9
+ metaLearner;
10
+ constructor(memory, config, metaLearner) {
11
+ this.memory = memory;
12
+ this.config = {
13
+ similarityThreshold: config?.similarityThreshold ?? 0.85,
14
+ useDomainRouting: config?.useDomainRouting ?? true,
15
+ defaultStrategy: config?.defaultStrategy ?? 'direct',
16
+ };
17
+ this.metaLearner = metaLearner;
18
+ }
19
+ /**
20
+ * Set the meta learner (can be set after construction)
21
+ */
22
+ setMetaLearner(metaLearner) {
23
+ this.metaLearner = metaLearner;
24
+ }
25
+ /**
26
+ * Route a task to determine solving strategy
27
+ * Uses playbook-based memory with meta-learning adjustments
28
+ */
29
+ async route(task) {
30
+ // Query memory for relevant context
31
+ const memoryContext = await this.memory.queryV2(task.description, {
32
+ domains: task.domain ? [task.domain] : undefined,
33
+ });
34
+ // Compute base routing from playbook memory
35
+ let decision = this.computeBaseRouting(memoryContext);
36
+ // Apply meta-learning adjustments if available
37
+ if (this.metaLearner) {
38
+ const taskCharacteristics = this.extractTaskCharacteristics(task);
39
+ const memoryState = this.summarizeMemoryState(memoryContext);
40
+ try {
41
+ const adjusted = await this.metaLearner.adjustRouting({
42
+ strategy: decision.strategy,
43
+ confidence: decision.confidence,
44
+ estimatedBudget: decision.estimatedBudget,
45
+ reasoning: decision.reasoning,
46
+ }, taskCharacteristics, memoryState);
47
+ // Apply adjustments
48
+ if (adjusted.strategy !== decision.strategy || adjusted.confidence !== decision.confidence) {
49
+ decision.strategy = adjusted.strategy;
50
+ decision.confidence = adjusted.confidence;
51
+ decision.reasoning = adjusted.reasoning;
52
+ decision.appliedMetaStrategies = ['meta-learning adjustment'];
53
+ }
54
+ }
55
+ catch (error) {
56
+ // Meta-learning failed, continue with base routing
57
+ console.error('[TaskRouter] Meta-learning adjustment failed, using base routing:', error instanceof Error ? error.message : String(error));
58
+ }
59
+ }
60
+ return decision;
61
+ }
62
+ /**
63
+ * Compute base routing decision from memory results
64
+ */
65
+ computeBaseRouting(memoryContext) {
66
+ // Check experience memory
67
+ const hasHighSimilarityExperience = memoryContext.experiences.some((e) => e.score >= this.config.similarityThreshold && e.experience.success);
68
+ // Check playbook memory
69
+ const hasHighConfidencePlaybook = memoryContext.playbooks.some((p) => p.score >= this.config.similarityThreshold && p.playbook.confidence >= 0.7);
70
+ const hasApplicablePlaybook = memoryContext.playbooks.some((p) => p.score >= this.config.similarityThreshold * 0.8);
71
+ // Determine routing strategy
72
+ let strategy;
73
+ let confidence;
74
+ let estimatedBudget;
75
+ let reasoning;
76
+ if (hasHighSimilarityExperience) {
77
+ strategy = 'adapt';
78
+ confidence = 0.9;
79
+ estimatedBudget = 1;
80
+ reasoning = 'Found highly similar successful experience to adapt from';
81
+ }
82
+ else if (hasHighConfidencePlaybook) {
83
+ strategy = 'direct';
84
+ confidence = 0.8;
85
+ estimatedBudget = 2;
86
+ reasoning = 'Found high-confidence playbook for guidance';
87
+ }
88
+ else if (hasApplicablePlaybook) {
89
+ strategy = 'direct';
90
+ confidence = 0.6;
91
+ estimatedBudget = 4;
92
+ reasoning = 'Found applicable playbook to guide solving';
93
+ }
94
+ else if (memoryContext.experiences.length > 0) {
95
+ strategy = 'explore';
96
+ confidence = 0.4;
97
+ estimatedBudget = 10;
98
+ reasoning = 'Found some context but need exploration';
99
+ }
100
+ else {
101
+ strategy = 'fallback';
102
+ confidence = 0.2;
103
+ estimatedBudget = 20;
104
+ reasoning = 'No relevant memory found, using fallback strategy';
105
+ }
106
+ return {
107
+ strategy,
108
+ confidence,
109
+ memoryContext,
110
+ estimatedBudget,
111
+ reasoning,
112
+ };
113
+ }
114
+ /**
115
+ * Extract task characteristics for meta-learning
116
+ */
117
+ extractTaskCharacteristics(task) {
118
+ const characteristics = [];
119
+ // Domain
120
+ if (task.domain) {
121
+ characteristics.push(`domain: ${task.domain}`);
122
+ }
123
+ // Analyze description
124
+ const desc = task.description.toLowerCase();
125
+ if (desc.includes('bug') || desc.includes('fix') || desc.includes('error')) {
126
+ characteristics.push('bug fix');
127
+ }
128
+ if (desc.includes('test') || desc.includes('spec')) {
129
+ characteristics.push('testing');
130
+ }
131
+ if (desc.includes('refactor') || desc.includes('clean')) {
132
+ characteristics.push('refactoring');
133
+ }
134
+ if (desc.includes('implement') || desc.includes('create') || desc.includes('add')) {
135
+ characteristics.push('new feature');
136
+ }
137
+ if (desc.includes('multiple') || desc.includes('files') || desc.includes('across')) {
138
+ characteristics.push('multi-file change');
139
+ }
140
+ if (desc.length > 500) {
141
+ characteristics.push('complex task');
142
+ }
143
+ return characteristics;
144
+ }
145
+ /**
146
+ * Summarize memory state for meta-learning
147
+ */
148
+ summarizeMemoryState(memoryContext) {
149
+ const state = [];
150
+ // Experience state
151
+ if (memoryContext.experiences.length === 0) {
152
+ state.push('no similar experiences');
153
+ }
154
+ else {
155
+ const maxScore = Math.max(...memoryContext.experiences.map((e) => e.score), 0);
156
+ if (maxScore >= 0.8) {
157
+ state.push('high similarity experience');
158
+ }
159
+ else if (maxScore >= 0.5) {
160
+ state.push('moderate similarity experience');
161
+ }
162
+ else {
163
+ state.push('low similarity experiences');
164
+ }
165
+ }
166
+ // Playbook state
167
+ if (memoryContext.playbooks.length === 0) {
168
+ state.push('no applicable playbooks');
169
+ }
170
+ else {
171
+ const maxConfidence = Math.max(...memoryContext.playbooks.map((p) => p.playbook.confidence), 0);
172
+ if (maxConfidence >= 0.8) {
173
+ state.push('high confidence playbook');
174
+ }
175
+ else if (maxConfidence >= 0.5) {
176
+ state.push('moderate confidence playbook');
177
+ }
178
+ else {
179
+ state.push('low confidence playbooks');
180
+ }
181
+ }
182
+ return state;
183
+ }
184
+ /**
185
+ * Update configuration
186
+ */
187
+ updateConfig(config) {
188
+ this.config = { ...this.config, ...config };
189
+ }
190
+ }
191
+ /**
192
+ * Create a task router
193
+ */
194
+ export function createRouter(memory, config, metaLearner) {
195
+ return new TaskRouter(memory, config, metaLearner);
196
+ }
197
+ //# sourceMappingURL=router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/search/router.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ import type { Task, Trajectory } from '../types/index.js';
2
+ import type { MemorySystem } from '../memory/system.js';
3
+ import type { LLMProvider } from '../agents/types.js';
4
+ import type { RoutingDecision } from './router.js';
5
+ /**
6
+ * Solver configuration
7
+ */
8
+ export interface SolverConfig {
9
+ maxSteps: number;
10
+ temperature: number;
11
+ agentId: string;
12
+ }
13
+ /**
14
+ * Solver result
15
+ */
16
+ export interface SolverResult {
17
+ trajectory: Trajectory;
18
+ usedMemory: boolean;
19
+ strategy: string;
20
+ }
21
+ /**
22
+ * Direct Solver
23
+ * Solves tasks using memory-augmented LLM calls
24
+ *
25
+ * @deprecated Use AgentManager.spawn() instead. DirectSolver will be removed in v2.0.
26
+ * The AgentManager provides real action execution through configurable backends (ACP, subprocess).
27
+ *
28
+ * Migration example:
29
+ * ```typescript
30
+ * // Before (deprecated):
31
+ * const solver = createSolver(memory, provider);
32
+ * const result = await solver.solve(task, routing);
33
+ *
34
+ * // After (recommended):
35
+ * const manager = createAgentManager(memory);
36
+ * const result = await manager.spawn({
37
+ * agentType: 'claude-code',
38
+ * task,
39
+ * injectedKnowledge: routing.memoryContext,
40
+ * });
41
+ * ```
42
+ */
43
+ export declare class DirectSolver {
44
+ private memory;
45
+ private provider;
46
+ private config;
47
+ constructor(memory: MemorySystem, provider: LLMProvider, config?: Partial<SolverConfig>);
48
+ /**
49
+ * Solve a task using the routing decision
50
+ */
51
+ solve(task: Task, routing: RoutingDecision): Promise<SolverResult>;
52
+ /**
53
+ * Build system prompt with memory context
54
+ */
55
+ private buildSystemPrompt;
56
+ /**
57
+ * Build task prompt
58
+ */
59
+ private buildTaskPrompt;
60
+ /**
61
+ * Parse LLM response into structured components
62
+ */
63
+ private parseResponse;
64
+ /**
65
+ * Update configuration
66
+ */
67
+ updateConfig(config: Partial<SolverConfig>): void;
68
+ }
69
+ /**
70
+ * Create a direct solver
71
+ *
72
+ * @deprecated Use createAgentManager() instead. See DirectSolver for migration guide.
73
+ */
74
+ export declare function createSolver(memory: MemorySystem, provider: LLMProvider, config?: Partial<SolverConfig>): DirectSolver;
75
+ //# sourceMappingURL=solver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solver.d.ts","sourceRoot":"","sources":["../../src/search/solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EAGX,MAAM,mBAAmB,CAAC;AAO3B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAW,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAe;gBAG3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAWhC;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC;IAuGxE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiDzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,aAAa;IA6BrB;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;CAGlD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,YAAY,CAEd"}
@@ -0,0 +1,216 @@
1
+ import { createTrajectory, createStep, successOutcome, failureOutcome, } from '../types/index.js';
2
+ /**
3
+ * Direct Solver
4
+ * Solves tasks using memory-augmented LLM calls
5
+ *
6
+ * @deprecated Use AgentManager.spawn() instead. DirectSolver will be removed in v2.0.
7
+ * The AgentManager provides real action execution through configurable backends (ACP, subprocess).
8
+ *
9
+ * Migration example:
10
+ * ```typescript
11
+ * // Before (deprecated):
12
+ * const solver = createSolver(memory, provider);
13
+ * const result = await solver.solve(task, routing);
14
+ *
15
+ * // After (recommended):
16
+ * const manager = createAgentManager(memory);
17
+ * const result = await manager.spawn({
18
+ * agentType: 'claude-code',
19
+ * task,
20
+ * injectedKnowledge: routing.memoryContext,
21
+ * });
22
+ * ```
23
+ */
24
+ export class DirectSolver {
25
+ memory;
26
+ provider;
27
+ config;
28
+ constructor(memory, provider, config) {
29
+ this.memory = memory;
30
+ this.provider = provider;
31
+ this.config = {
32
+ maxSteps: config?.maxSteps ?? 10,
33
+ temperature: config?.temperature ?? 0.3,
34
+ agentId: config?.agentId ?? 'direct-solver',
35
+ };
36
+ }
37
+ /**
38
+ * Solve a task using the routing decision
39
+ */
40
+ async solve(task, routing) {
41
+ const startTime = Date.now();
42
+ const steps = [];
43
+ let llmCalls = 0;
44
+ let totalTokens = 0;
45
+ try {
46
+ // Build system prompt with memory context
47
+ const systemPrompt = this.buildSystemPrompt(task, routing);
48
+ // Execute solving loop
49
+ const messages = [
50
+ { role: 'system', content: systemPrompt },
51
+ { role: 'user', content: this.buildTaskPrompt(task) },
52
+ ];
53
+ let done = false;
54
+ let outcome = null;
55
+ while (!done && steps.length < this.config.maxSteps) {
56
+ // Get LLM response
57
+ const response = await this.provider.complete(messages, {
58
+ temperature: this.config.temperature,
59
+ });
60
+ llmCalls++;
61
+ // Parse response into thought/action
62
+ const { thought, action, isDone, solution } = this.parseResponse(response);
63
+ // Create step
64
+ const step = createStep({
65
+ thought,
66
+ action,
67
+ observation: isDone
68
+ ? 'Task completed'
69
+ : 'Awaiting next step',
70
+ });
71
+ steps.push(step);
72
+ // Check if done
73
+ if (isDone) {
74
+ done = true;
75
+ outcome = successOutcome(solution);
76
+ }
77
+ // Add to conversation
78
+ messages.push({ role: 'assistant', content: response });
79
+ if (!isDone) {
80
+ // In a real implementation, we'd execute the action and get observation
81
+ messages.push({
82
+ role: 'user',
83
+ content: 'Continue with the next step.',
84
+ });
85
+ }
86
+ }
87
+ // If we hit max steps without completing
88
+ if (!outcome) {
89
+ outcome = failureOutcome('Max steps reached without solution', 0.5);
90
+ }
91
+ const wallTimeSeconds = (Date.now() - startTime) / 1000;
92
+ const trajectory = createTrajectory({
93
+ task,
94
+ steps,
95
+ outcome,
96
+ agentId: this.config.agentId,
97
+ llmCalls,
98
+ totalTokens,
99
+ wallTimeSeconds,
100
+ });
101
+ return {
102
+ trajectory,
103
+ usedMemory: routing.memoryContext.experiences.length > 0,
104
+ strategy: routing.strategy,
105
+ };
106
+ }
107
+ catch (error) {
108
+ const wallTimeSeconds = (Date.now() - startTime) / 1000;
109
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
110
+ const trajectory = createTrajectory({
111
+ task,
112
+ steps,
113
+ outcome: failureOutcome(errorMessage),
114
+ agentId: this.config.agentId,
115
+ llmCalls,
116
+ totalTokens,
117
+ wallTimeSeconds,
118
+ });
119
+ return {
120
+ trajectory,
121
+ usedMemory: routing.memoryContext.experiences.length > 0,
122
+ strategy: routing.strategy,
123
+ };
124
+ }
125
+ }
126
+ /**
127
+ * Build system prompt with memory context
128
+ */
129
+ buildSystemPrompt(_task, routing) {
130
+ const parts = [
131
+ 'You are a problem-solving agent. Your goal is to solve the given task step by step.',
132
+ '',
133
+ 'For each step, provide:',
134
+ '1. THOUGHT: Your reasoning about what to do next',
135
+ '2. ACTION: The action to take',
136
+ '',
137
+ 'When you have the final solution, output:',
138
+ 'DONE: [your solution]',
139
+ '',
140
+ ];
141
+ // Add memory context
142
+ const memoryContext = this.memory.formatForPromptV2(routing.memoryContext);
143
+ if (memoryContext) {
144
+ parts.push('## Relevant Memory');
145
+ parts.push(memoryContext);
146
+ parts.push('');
147
+ }
148
+ // Add strategy-specific guidance
149
+ switch (routing.strategy) {
150
+ case 'adapt':
151
+ parts.push('## Guidance', 'A similar task has been solved successfully before. Adapt the previous solution to this task.', '');
152
+ break;
153
+ case 'direct':
154
+ parts.push('## Guidance', 'Use the applicable strategies and skills from memory to guide your solution.', '');
155
+ break;
156
+ case 'explore':
157
+ parts.push('## Guidance', 'Limited relevant memory found. Explore different approaches carefully.', '');
158
+ break;
159
+ }
160
+ return parts.join('\n');
161
+ }
162
+ /**
163
+ * Build task prompt
164
+ */
165
+ buildTaskPrompt(task) {
166
+ const parts = [
167
+ `## Task`,
168
+ task.description,
169
+ ];
170
+ if (Object.keys(task.context).length > 0) {
171
+ parts.push('');
172
+ parts.push('## Context');
173
+ parts.push(JSON.stringify(task.context, null, 2));
174
+ }
175
+ return parts.join('\n');
176
+ }
177
+ /**
178
+ * Parse LLM response into structured components
179
+ */
180
+ parseResponse(response) {
181
+ // Check for DONE
182
+ const doneMatch = response.match(/DONE:\s*(.+)/is);
183
+ if (doneMatch) {
184
+ return {
185
+ thought: undefined,
186
+ action: 'complete',
187
+ isDone: true,
188
+ solution: doneMatch[1].trim(),
189
+ };
190
+ }
191
+ // Parse THOUGHT and ACTION
192
+ const thoughtMatch = response.match(/THOUGHT:\s*(.+?)(?=ACTION:|$)/is);
193
+ const actionMatch = response.match(/ACTION:\s*(.+?)(?=THOUGHT:|$)/is);
194
+ return {
195
+ thought: thoughtMatch?.[1]?.trim(),
196
+ action: actionMatch?.[1]?.trim() ?? response.trim(),
197
+ isDone: false,
198
+ solution: null,
199
+ };
200
+ }
201
+ /**
202
+ * Update configuration
203
+ */
204
+ updateConfig(config) {
205
+ this.config = { ...this.config, ...config };
206
+ }
207
+ }
208
+ /**
209
+ * Create a direct solver
210
+ *
211
+ * @deprecated Use createAgentManager() instead. See DirectSolver for migration guide.
212
+ */
213
+ export function createSolver(memory, provider, config) {
214
+ return new DirectSolver(memory, provider, config);
215
+ }
216
+ //# sourceMappingURL=solver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solver.js","sourceRoot":"","sources":["../../src/search/solver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Verification Runner
3
+ *
4
+ * Provides common verification patterns for evaluating solutions:
5
+ * - Command execution (bash/shell)
6
+ * - Test runner integration
7
+ * - Code linting/type checking
8
+ * - Custom verification functions
9
+ *
10
+ * Used with SolutionEvaluator to verify trajectory outcomes.
11
+ */
12
+ import type { VerificationFunction } from './evaluator.js';
13
+ /**
14
+ * Configuration for a verification command
15
+ */
16
+ export interface CommandVerificationConfig {
17
+ /** Command to run (can include placeholders like {{solution}}, {{taskId}}) */
18
+ command: string;
19
+ /** Working directory for the command */
20
+ cwd?: string;
21
+ /** Environment variables to set */
22
+ env?: Record<string, string>;
23
+ /** Timeout in milliseconds (default: 30000) */
24
+ timeout?: number;
25
+ /** Whether exit code 0 indicates success (default: true) */
26
+ successOnZeroExit?: boolean;
27
+ /** Pattern to search for in output to indicate success */
28
+ successPattern?: RegExp;
29
+ /** Pattern to search for in output to indicate failure */
30
+ failurePattern?: RegExp;
31
+ /** Function to extract issues from output */
32
+ issueExtractor?: (output: string, exitCode: number) => VerificationIssue[];
33
+ }
34
+ /**
35
+ * Issue found during verification
36
+ */
37
+ export interface VerificationIssue {
38
+ type: 'incomplete' | 'incorrect' | 'error';
39
+ description: string;
40
+ severity?: 'critical' | 'major' | 'minor';
41
+ line?: number;
42
+ file?: string;
43
+ }
44
+ /**
45
+ * Result of running a command
46
+ */
47
+ export interface CommandResult {
48
+ stdout: string;
49
+ stderr: string;
50
+ exitCode: number;
51
+ timedOut: boolean;
52
+ }
53
+ /**
54
+ * Common test runner configurations
55
+ */
56
+ export declare const TestRunners: {
57
+ /** Node.js test runners */
58
+ vitest: (testPath?: string) => CommandVerificationConfig;
59
+ jest: (testPath?: string) => CommandVerificationConfig;
60
+ mocha: (testPath?: string) => CommandVerificationConfig;
61
+ /** Python test runners */
62
+ pytest: (testPath?: string) => CommandVerificationConfig;
63
+ /** Go test runner */
64
+ goTest: (testPath?: string) => CommandVerificationConfig;
65
+ /** Rust test runner */
66
+ cargoTest: (testPath?: string) => CommandVerificationConfig;
67
+ /** TypeScript type checking */
68
+ typescript: () => CommandVerificationConfig;
69
+ /** ESLint */
70
+ eslint: (path?: string) => CommandVerificationConfig;
71
+ };
72
+ /**
73
+ * VerificationRunner - Executes verification commands and parses results
74
+ */
75
+ export declare class VerificationRunner {
76
+ private defaultCwd;
77
+ private defaultTimeout;
78
+ private defaultEnv;
79
+ constructor(options?: {
80
+ cwd?: string;
81
+ timeout?: number;
82
+ env?: Record<string, string>;
83
+ });
84
+ /**
85
+ * Create a verification function from a command configuration
86
+ */
87
+ createVerifier(config: CommandVerificationConfig): VerificationFunction;
88
+ /**
89
+ * Run a command and capture output
90
+ */
91
+ runCommand(command: string, options: {
92
+ cwd?: string;
93
+ env?: Record<string, string>;
94
+ timeout?: number;
95
+ }): Promise<CommandResult>;
96
+ /**
97
+ * Run a command synchronously (for simple checks)
98
+ */
99
+ runCommandSync(command: string, options?: {
100
+ cwd?: string;
101
+ env?: Record<string, string>;
102
+ timeout?: number;
103
+ }): CommandResult;
104
+ /**
105
+ * Interpolate command with trajectory/task values
106
+ */
107
+ private interpolateCommand;
108
+ /**
109
+ * Extract default issues from output
110
+ */
111
+ private extractDefaultIssues;
112
+ /**
113
+ * Create a composite verifier that runs multiple verifications
114
+ */
115
+ createCompositeVerifier(configs: CommandVerificationConfig[]): VerificationFunction;
116
+ }
117
+ /**
118
+ * Create a verification runner
119
+ */
120
+ export declare function createVerificationRunner(options?: {
121
+ cwd?: string;
122
+ timeout?: number;
123
+ env?: Record<string, string>;
124
+ }): VerificationRunner;
125
+ //# sourceMappingURL=verification-runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification-runner.d.ts","sourceRoot":"","sources":["../../src/search/verification-runner.ts"],"names":[],"mappings":"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"}