cognitive-core 0.2.4 → 0.3.1

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 (1278) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +88 -143
  3. package/dist/agents/mock-provider.d.ts.map +1 -1
  4. package/dist/agents/mock-provider.js.map +1 -1
  5. package/dist/agents/types.d.ts.map +1 -1
  6. package/dist/agents/types.js +5 -4
  7. package/dist/agents/types.js.map +1 -1
  8. package/dist/atlas.d.ts +309 -97
  9. package/dist/atlas.d.ts.map +1 -1
  10. package/dist/atlas.js +743 -277
  11. package/dist/atlas.js.map +1 -1
  12. package/dist/bin/cli-utils.d.ts +25 -2
  13. package/dist/bin/cli-utils.d.ts.map +1 -1
  14. package/dist/bin/cli-utils.js +79 -9
  15. package/dist/bin/cli-utils.js.map +1 -1
  16. package/dist/bin/cognitive-core.js +32 -0
  17. package/dist/bin/cognitive-core.js.map +1 -1
  18. package/dist/bin/commands/dream.d.ts +17 -0
  19. package/dist/bin/commands/dream.d.ts.map +1 -0
  20. package/dist/bin/commands/dream.js +168 -0
  21. package/dist/bin/commands/dream.js.map +1 -0
  22. package/dist/bin/commands/eval.d.ts +181 -0
  23. package/dist/bin/commands/eval.d.ts.map +1 -0
  24. package/dist/bin/commands/eval.js +1582 -0
  25. package/dist/bin/commands/eval.js.map +1 -0
  26. package/dist/bin/commands/kb.js +0 -8
  27. package/dist/bin/commands/kb.js.map +1 -1
  28. package/dist/bin/commands/learn.js +12 -4
  29. package/dist/bin/commands/learn.js.map +1 -1
  30. package/dist/bin/commands/legacy.d.ts.map +1 -1
  31. package/dist/bin/commands/legacy.js +1 -1
  32. package/dist/bin/commands/legacy.js.map +1 -1
  33. package/dist/bin/commands/run.d.ts.map +1 -1
  34. package/dist/bin/commands/run.js +10 -9
  35. package/dist/bin/commands/run.js.map +1 -1
  36. package/dist/bin/commands/sessions.d.ts.map +1 -1
  37. package/dist/bin/commands/sessions.js.map +1 -1
  38. package/dist/bin/commands/skills.d.ts.map +1 -1
  39. package/dist/bin/commands/skills.js +283 -1
  40. package/dist/bin/commands/skills.js.map +1 -1
  41. package/dist/embeddings/bm25.d.ts.map +1 -1
  42. package/dist/embeddings/bm25.js +1 -2
  43. package/dist/embeddings/bm25.js.map +1 -1
  44. package/dist/embeddings/index.d.ts +3 -3
  45. package/dist/embeddings/index.d.ts.map +1 -1
  46. package/dist/embeddings/index.js +3 -3
  47. package/dist/embeddings/index.js.map +1 -1
  48. package/dist/embeddings/inverted-index.js +62 -7
  49. package/dist/embeddings/inverted-index.js.map +1 -1
  50. package/dist/embeddings/manager.d.ts.map +1 -1
  51. package/dist/embeddings/manager.js +6 -5
  52. package/dist/embeddings/manager.js.map +1 -1
  53. package/dist/embeddings/provider.d.ts +96 -5
  54. package/dist/embeddings/provider.d.ts.map +1 -1
  55. package/dist/embeddings/provider.js +171 -48
  56. package/dist/embeddings/provider.js.map +1 -1
  57. package/dist/embeddings/vector-store.d.ts.map +1 -1
  58. package/dist/embeddings/vector-store.js +3 -1
  59. package/dist/embeddings/vector-store.js.map +1 -1
  60. package/dist/eval/ablation-validate.d.ts +12 -0
  61. package/dist/eval/ablation-validate.d.ts.map +1 -0
  62. package/dist/eval/ablation-validate.js +78 -0
  63. package/dist/eval/ablation-validate.js.map +1 -0
  64. package/dist/eval/ablation.d.ts +94 -0
  65. package/dist/eval/ablation.d.ts.map +1 -0
  66. package/dist/eval/ablation.js +161 -0
  67. package/dist/eval/ablation.js.map +1 -0
  68. package/dist/eval/ci-smoke.d.ts +11 -0
  69. package/dist/eval/ci-smoke.d.ts.map +1 -0
  70. package/dist/eval/ci-smoke.js +49 -0
  71. package/dist/eval/ci-smoke.js.map +1 -0
  72. package/dist/eval/diagnostics.d.ts +214 -0
  73. package/dist/eval/diagnostics.d.ts.map +1 -0
  74. package/dist/eval/diagnostics.js +107 -0
  75. package/dist/eval/diagnostics.js.map +1 -0
  76. package/dist/eval/index.d.ts +27 -0
  77. package/dist/eval/index.d.ts.map +1 -0
  78. package/dist/eval/index.js +27 -0
  79. package/dist/eval/index.js.map +1 -0
  80. package/dist/eval/live/alfworld.d.ts +248 -0
  81. package/dist/eval/live/alfworld.d.ts.map +1 -0
  82. package/dist/eval/live/alfworld.js +637 -0
  83. package/dist/eval/live/alfworld.js.map +1 -0
  84. package/dist/eval/live/alfworld_h1.d.ts +16 -0
  85. package/dist/eval/live/alfworld_h1.d.ts.map +1 -0
  86. package/dist/eval/live/alfworld_h1.js +75 -0
  87. package/dist/eval/live/alfworld_h1.js.map +1 -0
  88. package/dist/eval/live/alfworld_memory.d.ts +38 -0
  89. package/dist/eval/live/alfworld_memory.d.ts.map +1 -0
  90. package/dist/eval/live/alfworld_memory.js +184 -0
  91. package/dist/eval/live/alfworld_memory.js.map +1 -0
  92. package/dist/eval/live/alfworld_strategy.d.ts +65 -0
  93. package/dist/eval/live/alfworld_strategy.d.ts.map +1 -0
  94. package/dist/eval/live/alfworld_strategy.js +89 -0
  95. package/dist/eval/live/alfworld_strategy.js.map +1 -0
  96. package/dist/eval/live/azure-openai-llm-provider.d.ts +41 -0
  97. package/dist/eval/live/azure-openai-llm-provider.d.ts.map +1 -0
  98. package/dist/eval/live/azure-openai-llm-provider.js +92 -0
  99. package/dist/eval/live/azure-openai-llm-provider.js.map +1 -0
  100. package/dist/eval/live/bridges/skillflow_e2b_bridge.d.ts +3 -0
  101. package/dist/eval/live/bridges/skillflow_e2b_bridge.d.ts.map +1 -0
  102. package/dist/eval/live/bridges/skillflow_e2b_bridge.js +12 -0
  103. package/dist/eval/live/bridges/skillflow_e2b_bridge.js.map +1 -0
  104. package/dist/eval/live/claude-cli-llm-provider.d.ts +53 -0
  105. package/dist/eval/live/claude-cli-llm-provider.d.ts.map +1 -0
  106. package/dist/eval/live/claude-cli-llm-provider.js +71 -0
  107. package/dist/eval/live/claude-cli-llm-provider.js.map +1 -0
  108. package/dist/eval/live/claude-cli.d.ts +96 -0
  109. package/dist/eval/live/claude-cli.d.ts.map +1 -0
  110. package/dist/eval/live/claude-cli.js +314 -0
  111. package/dist/eval/live/claude-cli.js.map +1 -0
  112. package/dist/eval/live/claude-delegate.d.ts +41 -0
  113. package/dist/eval/live/claude-delegate.d.ts.map +1 -0
  114. package/dist/eval/live/claude-delegate.js +59 -0
  115. package/dist/eval/live/claude-delegate.js.map +1 -0
  116. package/dist/eval/live/claude-workspace-backend.d.ts +24 -0
  117. package/dist/eval/live/claude-workspace-backend.d.ts.map +1 -0
  118. package/dist/eval/live/claude-workspace-backend.js +76 -0
  119. package/dist/eval/live/claude-workspace-backend.js.map +1 -0
  120. package/dist/eval/live/clbench.d.ts +64 -0
  121. package/dist/eval/live/clbench.d.ts.map +1 -0
  122. package/dist/eval/live/clbench.js +291 -0
  123. package/dist/eval/live/clbench.js.map +1 -0
  124. package/dist/eval/live/cold-reuse.d.ts +21 -0
  125. package/dist/eval/live/cold-reuse.d.ts.map +1 -0
  126. package/dist/eval/live/cold-reuse.js +102 -0
  127. package/dist/eval/live/cold-reuse.js.map +1 -0
  128. package/dist/eval/live/difficulty-registry.d.ts +68 -0
  129. package/dist/eval/live/difficulty-registry.d.ts.map +1 -0
  130. package/dist/eval/live/difficulty-registry.js +169 -0
  131. package/dist/eval/live/difficulty-registry.js.map +1 -0
  132. package/dist/eval/live/docker.d.ts +52 -0
  133. package/dist/eval/live/docker.d.ts.map +1 -0
  134. package/dist/eval/live/docker.js +164 -0
  135. package/dist/eval/live/docker.js.map +1 -0
  136. package/dist/eval/live/env-bridge.d.ts +68 -0
  137. package/dist/eval/live/env-bridge.d.ts.map +1 -0
  138. package/dist/eval/live/env-bridge.js +188 -0
  139. package/dist/eval/live/env-bridge.js.map +1 -0
  140. package/dist/eval/live/gsm8k.d.ts +44 -0
  141. package/dist/eval/live/gsm8k.d.ts.map +1 -0
  142. package/dist/eval/live/gsm8k.js +142 -0
  143. package/dist/eval/live/gsm8k.js.map +1 -0
  144. package/dist/eval/live/index.d.ts +38 -0
  145. package/dist/eval/live/index.d.ts.map +1 -0
  146. package/dist/eval/live/index.js +38 -0
  147. package/dist/eval/live/index.js.map +1 -0
  148. package/dist/eval/live/lifelongagent.d.ts +64 -0
  149. package/dist/eval/live/lifelongagent.d.ts.map +1 -0
  150. package/dist/eval/live/lifelongagent.js +216 -0
  151. package/dist/eval/live/lifelongagent.js.map +1 -0
  152. package/dist/eval/live/lift-registry.d.ts +128 -0
  153. package/dist/eval/live/lift-registry.d.ts.map +1 -0
  154. package/dist/eval/live/lift-registry.js +147 -0
  155. package/dist/eval/live/lift-registry.js.map +1 -0
  156. package/dist/eval/live/live-benchmark.d.ts +84 -0
  157. package/dist/eval/live/live-benchmark.d.ts.map +1 -0
  158. package/dist/eval/live/live-benchmark.js +2 -0
  159. package/dist/eval/live/live-benchmark.js.map +1 -0
  160. package/dist/eval/live/live-runner.d.ts +609 -0
  161. package/dist/eval/live/live-runner.d.ts.map +1 -0
  162. package/dist/eval/live/live-runner.js +1409 -0
  163. package/dist/eval/live/live-runner.js.map +1 -0
  164. package/dist/eval/live/refine.d.ts +88 -0
  165. package/dist/eval/live/refine.d.ts.map +1 -0
  166. package/dist/eval/live/refine.js +135 -0
  167. package/dist/eval/live/refine.js.map +1 -0
  168. package/dist/eval/live/registry-store.d.ts +109 -0
  169. package/dist/eval/live/registry-store.d.ts.map +1 -0
  170. package/dist/eval/live/registry-store.js +272 -0
  171. package/dist/eval/live/registry-store.js.map +1 -0
  172. package/dist/eval/live/run-checkpoint.d.ts +55 -0
  173. package/dist/eval/live/run-checkpoint.d.ts.map +1 -0
  174. package/dist/eval/live/run-checkpoint.js +86 -0
  175. package/dist/eval/live/run-checkpoint.js.map +1 -0
  176. package/dist/eval/live/run-resume.d.ts +22 -0
  177. package/dist/eval/live/run-resume.d.ts.map +1 -0
  178. package/dist/eval/live/run-resume.js +70 -0
  179. package/dist/eval/live/run-resume.js.map +1 -0
  180. package/dist/eval/live/skill-injector.d.ts +36 -0
  181. package/dist/eval/live/skill-injector.d.ts.map +1 -0
  182. package/dist/eval/live/skill-injector.js +81 -0
  183. package/dist/eval/live/skill-injector.js.map +1 -0
  184. package/dist/eval/live/skillflow-embedded-workbook-bundle.d.ts +3 -0
  185. package/dist/eval/live/skillflow-embedded-workbook-bundle.d.ts.map +1 -0
  186. package/dist/eval/live/skillflow-embedded-workbook-bundle.js +391 -0
  187. package/dist/eval/live/skillflow-embedded-workbook-bundle.js.map +1 -0
  188. package/dist/eval/live/skillflow.d.ts +154 -0
  189. package/dist/eval/live/skillflow.d.ts.map +1 -0
  190. package/dist/eval/live/skillflow.js +612 -0
  191. package/dist/eval/live/skillflow.js.map +1 -0
  192. package/dist/eval/live/skilllearnbench.d.ts +43 -0
  193. package/dist/eval/live/skilllearnbench.d.ts.map +1 -0
  194. package/dist/eval/live/skilllearnbench.js +154 -0
  195. package/dist/eval/live/skilllearnbench.js.map +1 -0
  196. package/dist/eval/live/skillopt_v1.d.ts +96 -0
  197. package/dist/eval/live/skillopt_v1.d.ts.map +1 -0
  198. package/dist/eval/live/skillopt_v1.js +0 -0
  199. package/dist/eval/live/skillopt_v1.js.map +1 -0
  200. package/dist/eval/live/skillopt_v1_causal.d.ts +26 -0
  201. package/dist/eval/live/skillopt_v1_causal.d.ts.map +1 -0
  202. package/dist/eval/live/skillopt_v1_causal.js +106 -0
  203. package/dist/eval/live/skillopt_v1_causal.js.map +1 -0
  204. package/dist/eval/live/skillopt_v1_memory.d.ts +53 -0
  205. package/dist/eval/live/skillopt_v1_memory.d.ts.map +1 -0
  206. package/dist/eval/live/skillopt_v1_memory.js +147 -0
  207. package/dist/eval/live/skillopt_v1_memory.js.map +1 -0
  208. package/dist/eval/live/skillopt_v1_rules.d.ts +39 -0
  209. package/dist/eval/live/skillopt_v1_rules.d.ts.map +1 -0
  210. package/dist/eval/live/skillopt_v1_rules.js +91 -0
  211. package/dist/eval/live/skillopt_v1_rules.js.map +1 -0
  212. package/dist/eval/live/skillsbench.d.ts +138 -0
  213. package/dist/eval/live/skillsbench.d.ts.map +1 -0
  214. package/dist/eval/live/skillsbench.js +626 -0
  215. package/dist/eval/live/skillsbench.js.map +1 -0
  216. package/dist/eval/live/stopping.d.ts +69 -0
  217. package/dist/eval/live/stopping.d.ts.map +1 -0
  218. package/dist/eval/live/stopping.js +213 -0
  219. package/dist/eval/live/stopping.js.map +1 -0
  220. package/dist/eval/live/trace.d.ts +20 -0
  221. package/dist/eval/live/trace.d.ts.map +1 -0
  222. package/dist/eval/live/trace.js +41 -0
  223. package/dist/eval/live/trace.js.map +1 -0
  224. package/dist/eval/mechanism-trace-adapter.d.ts +8 -0
  225. package/dist/eval/mechanism-trace-adapter.d.ts.map +1 -0
  226. package/dist/eval/mechanism-trace-adapter.js +118 -0
  227. package/dist/eval/mechanism-trace-adapter.js.map +1 -0
  228. package/dist/eval/memory-ab.d.ts +61 -0
  229. package/dist/eval/memory-ab.d.ts.map +1 -0
  230. package/dist/eval/memory-ab.js +161 -0
  231. package/dist/eval/memory-ab.js.map +1 -0
  232. package/dist/eval/memory-mock.d.ts +54 -0
  233. package/dist/eval/memory-mock.d.ts.map +1 -0
  234. package/dist/eval/memory-mock.js +129 -0
  235. package/dist/eval/memory-mock.js.map +1 -0
  236. package/dist/eval/memory-qa/index.d.ts +13 -0
  237. package/dist/eval/memory-qa/index.d.ts.map +1 -0
  238. package/dist/eval/memory-qa/index.js +13 -0
  239. package/dist/eval/memory-qa/index.js.map +1 -0
  240. package/dist/eval/memory-qa/iterative.d.ts +80 -0
  241. package/dist/eval/memory-qa/iterative.d.ts.map +1 -0
  242. package/dist/eval/memory-qa/iterative.js +107 -0
  243. package/dist/eval/memory-qa/iterative.js.map +1 -0
  244. package/dist/eval/memory-qa/loaders.d.ts +11 -0
  245. package/dist/eval/memory-qa/loaders.d.ts.map +1 -0
  246. package/dist/eval/memory-qa/loaders.js +21 -0
  247. package/dist/eval/memory-qa/loaders.js.map +1 -0
  248. package/dist/eval/memory-qa/metrics.d.ts +3 -0
  249. package/dist/eval/memory-qa/metrics.d.ts.map +1 -0
  250. package/dist/eval/memory-qa/metrics.js +2 -0
  251. package/dist/eval/memory-qa/metrics.js.map +1 -0
  252. package/dist/eval/memory-qa/qa.d.ts +186 -0
  253. package/dist/eval/memory-qa/qa.d.ts.map +1 -0
  254. package/dist/eval/memory-qa/qa.js +424 -0
  255. package/dist/eval/memory-qa/qa.js.map +1 -0
  256. package/dist/eval/memory-qa/retrieval.d.ts +33 -0
  257. package/dist/eval/memory-qa/retrieval.d.ts.map +1 -0
  258. package/dist/eval/memory-qa/retrieval.js +44 -0
  259. package/dist/eval/memory-qa/retrieval.js.map +1 -0
  260. package/dist/eval/memory-qa/serving.d.ts +60 -0
  261. package/dist/eval/memory-qa/serving.d.ts.map +1 -0
  262. package/dist/eval/memory-qa/serving.js +267 -0
  263. package/dist/eval/memory-qa/serving.js.map +1 -0
  264. package/dist/eval/memory-qa/types.d.ts +2 -0
  265. package/dist/eval/memory-qa/types.d.ts.map +1 -0
  266. package/dist/eval/memory-qa/types.js +2 -0
  267. package/dist/eval/memory-qa/types.js.map +1 -0
  268. package/dist/eval/metrics.d.ts +120 -0
  269. package/dist/eval/metrics.d.ts.map +1 -0
  270. package/dist/eval/metrics.js +361 -0
  271. package/dist/eval/metrics.js.map +1 -0
  272. package/dist/eval/oracle-smoke.d.ts +75 -0
  273. package/dist/eval/oracle-smoke.d.ts.map +1 -0
  274. package/dist/eval/oracle-smoke.js +143 -0
  275. package/dist/eval/oracle-smoke.js.map +1 -0
  276. package/dist/eval/playbook-calibration-report.d.ts +40 -0
  277. package/dist/eval/playbook-calibration-report.d.ts.map +1 -0
  278. package/dist/eval/playbook-calibration-report.js +246 -0
  279. package/dist/eval/playbook-calibration-report.js.map +1 -0
  280. package/dist/eval/playbook-candidate-decisions-report.d.ts +36 -0
  281. package/dist/eval/playbook-candidate-decisions-report.d.ts.map +1 -0
  282. package/dist/eval/playbook-candidate-decisions-report.js +201 -0
  283. package/dist/eval/playbook-candidate-decisions-report.js.map +1 -0
  284. package/dist/eval/playbook-usage-report.d.ts +7 -0
  285. package/dist/eval/playbook-usage-report.d.ts.map +1 -0
  286. package/dist/eval/playbook-usage-report.js +222 -0
  287. package/dist/eval/playbook-usage-report.js.map +1 -0
  288. package/dist/eval/report.d.ts +28 -0
  289. package/dist/eval/report.d.ts.map +1 -0
  290. package/dist/eval/report.js +567 -0
  291. package/dist/eval/report.js.map +1 -0
  292. package/dist/eval/retrieval/corpus.d.ts +41 -0
  293. package/dist/eval/retrieval/corpus.d.ts.map +1 -0
  294. package/dist/eval/retrieval/corpus.js +158 -0
  295. package/dist/eval/retrieval/corpus.js.map +1 -0
  296. package/dist/eval/retrieval/index.d.ts +12 -0
  297. package/dist/eval/retrieval/index.d.ts.map +1 -0
  298. package/dist/eval/retrieval/index.js +14 -0
  299. package/dist/eval/retrieval/index.js.map +1 -0
  300. package/dist/eval/retrieval/knowledge-corpus.d.ts +91 -0
  301. package/dist/eval/retrieval/knowledge-corpus.d.ts.map +1 -0
  302. package/dist/eval/retrieval/knowledge-corpus.js +268 -0
  303. package/dist/eval/retrieval/knowledge-corpus.js.map +1 -0
  304. package/dist/eval/retrieval/knowledge-quality.d.ts +91 -0
  305. package/dist/eval/retrieval/knowledge-quality.d.ts.map +1 -0
  306. package/dist/eval/retrieval/knowledge-quality.js +247 -0
  307. package/dist/eval/retrieval/knowledge-quality.js.map +1 -0
  308. package/dist/eval/retrieval/ladder.d.ts +69 -0
  309. package/dist/eval/retrieval/ladder.d.ts.map +1 -0
  310. package/dist/eval/retrieval/ladder.js +80 -0
  311. package/dist/eval/retrieval/ladder.js.map +1 -0
  312. package/dist/eval/retrieval/quality.d.ts +39 -0
  313. package/dist/eval/retrieval/quality.d.ts.map +1 -0
  314. package/dist/eval/retrieval/quality.js +75 -0
  315. package/dist/eval/retrieval/quality.js.map +1 -0
  316. package/dist/eval/rng.d.ts +25 -0
  317. package/dist/eval/rng.d.ts.map +1 -0
  318. package/dist/eval/rng.js +43 -0
  319. package/dist/eval/rng.js.map +1 -0
  320. package/dist/eval/runner.d.ts +65 -0
  321. package/dist/eval/runner.d.ts.map +1 -0
  322. package/dist/eval/runner.js +216 -0
  323. package/dist/eval/runner.js.map +1 -0
  324. package/dist/eval/skill-bundle.d.ts +18 -0
  325. package/dist/eval/skill-bundle.d.ts.map +1 -0
  326. package/dist/eval/skill-bundle.js +38 -0
  327. package/dist/eval/skill-bundle.js.map +1 -0
  328. package/dist/eval/swarmkit-report.d.ts +21 -0
  329. package/dist/eval/swarmkit-report.d.ts.map +1 -0
  330. package/dist/eval/swarmkit-report.js +93 -0
  331. package/dist/eval/swarmkit-report.js.map +1 -0
  332. package/dist/eval/task-stream.d.ts +22 -0
  333. package/dist/eval/task-stream.d.ts.map +1 -0
  334. package/dist/eval/task-stream.js +99 -0
  335. package/dist/eval/task-stream.js.map +1 -0
  336. package/dist/eval/types.d.ts +173 -0
  337. package/dist/eval/types.d.ts.map +1 -0
  338. package/dist/eval/types.js +11 -0
  339. package/dist/eval/types.js.map +1 -0
  340. package/dist/experimental/causal-store.d.ts +97 -0
  341. package/dist/experimental/causal-store.d.ts.map +1 -0
  342. package/dist/experimental/causal-store.js +213 -0
  343. package/dist/experimental/causal-store.js.map +1 -0
  344. package/dist/experimental/graph-layers/base.d.ts +29 -0
  345. package/dist/experimental/graph-layers/base.d.ts.map +1 -0
  346. package/dist/experimental/graph-layers/base.js +143 -0
  347. package/dist/experimental/graph-layers/base.js.map +1 -0
  348. package/dist/experimental/graph-layers/causal.d.ts +14 -0
  349. package/dist/experimental/graph-layers/causal.d.ts.map +1 -0
  350. package/dist/experimental/graph-layers/causal.js +14 -0
  351. package/dist/experimental/graph-layers/causal.js.map +1 -0
  352. package/dist/experimental/graph-layers/entity.d.ts +14 -0
  353. package/dist/experimental/graph-layers/entity.d.ts.map +1 -0
  354. package/dist/experimental/graph-layers/entity.js +14 -0
  355. package/dist/experimental/graph-layers/entity.js.map +1 -0
  356. package/dist/experimental/graph-layers/index.d.ts +6 -0
  357. package/dist/experimental/graph-layers/index.d.ts.map +1 -0
  358. package/dist/experimental/graph-layers/index.js +6 -0
  359. package/dist/experimental/graph-layers/index.js.map +1 -0
  360. package/dist/experimental/graph-layers/semantic.d.ts +14 -0
  361. package/dist/experimental/graph-layers/semantic.d.ts.map +1 -0
  362. package/dist/experimental/graph-layers/semantic.js +14 -0
  363. package/dist/experimental/graph-layers/semantic.js.map +1 -0
  364. package/dist/experimental/graph-layers/temporal.d.ts +14 -0
  365. package/dist/experimental/graph-layers/temporal.d.ts.map +1 -0
  366. package/dist/experimental/graph-layers/temporal.js +14 -0
  367. package/dist/experimental/graph-layers/temporal.js.map +1 -0
  368. package/dist/experimental/healing-orchestrator.d.ts +182 -0
  369. package/dist/experimental/healing-orchestrator.d.ts.map +1 -0
  370. package/dist/experimental/healing-orchestrator.js +250 -0
  371. package/dist/experimental/healing-orchestrator.js.map +1 -0
  372. package/dist/experimental/knowledge-graph-types.d.ts +148 -0
  373. package/dist/experimental/knowledge-graph-types.d.ts.map +1 -0
  374. package/dist/experimental/knowledge-graph-types.js +40 -0
  375. package/dist/experimental/knowledge-graph-types.js.map +1 -0
  376. package/dist/experimental/knowledge-graph.d.ts +41 -0
  377. package/dist/experimental/knowledge-graph.d.ts.map +1 -0
  378. package/dist/experimental/knowledge-graph.js +270 -0
  379. package/dist/experimental/knowledge-graph.js.map +1 -0
  380. package/dist/experimental/meta-reflection.d.ts +47 -0
  381. package/dist/experimental/meta-reflection.d.ts.map +1 -0
  382. package/dist/experimental/meta-reflection.js +143 -0
  383. package/dist/experimental/meta-reflection.js.map +1 -0
  384. package/dist/experimental/moe-gate.d.ts +134 -0
  385. package/dist/experimental/moe-gate.d.ts.map +1 -0
  386. package/dist/experimental/moe-gate.js +240 -0
  387. package/dist/experimental/moe-gate.js.map +1 -0
  388. package/dist/experimental/reasoning-bank.d.ts +130 -0
  389. package/dist/experimental/reasoning-bank.d.ts.map +1 -0
  390. package/dist/experimental/reasoning-bank.js +427 -0
  391. package/dist/experimental/reasoning-bank.js.map +1 -0
  392. package/dist/experimental/team/team-config.d.ts +127 -0
  393. package/dist/experimental/team/team-config.d.ts.map +1 -0
  394. package/dist/experimental/team/team-config.js +48 -0
  395. package/dist/experimental/team/team-config.js.map +1 -0
  396. package/dist/experimental/team/team-experience.d.ts +300 -0
  397. package/dist/experimental/team/team-experience.d.ts.map +1 -0
  398. package/dist/experimental/team/team-experience.js +355 -0
  399. package/dist/experimental/team/team-experience.js.map +1 -0
  400. package/dist/experimental/team/team-ingester.d.ts +152 -0
  401. package/dist/experimental/team/team-ingester.d.ts.map +1 -0
  402. package/dist/experimental/team/team-ingester.js +330 -0
  403. package/dist/experimental/team/team-ingester.js.map +1 -0
  404. package/dist/experimental/team/team-meta-learner.d.ts +51 -0
  405. package/dist/experimental/team/team-meta-learner.d.ts.map +1 -0
  406. package/dist/experimental/team/team-meta-learner.js +404 -0
  407. package/dist/experimental/team/team-meta-learner.js.map +1 -0
  408. package/dist/experimental/team/team-meta.d.ts +160 -0
  409. package/dist/experimental/team/team-meta.d.ts.map +1 -0
  410. package/dist/experimental/team/team-meta.js +42 -0
  411. package/dist/experimental/team/team-meta.js.map +1 -0
  412. package/dist/experimental/team/team-pipeline.d.ts +77 -0
  413. package/dist/experimental/team/team-pipeline.d.ts.map +1 -0
  414. package/dist/experimental/team/team-pipeline.js +262 -0
  415. package/dist/experimental/team/team-pipeline.js.map +1 -0
  416. package/dist/experimental/team/team-playbook-extraction.d.ts +45 -0
  417. package/dist/experimental/team/team-playbook-extraction.d.ts.map +1 -0
  418. package/dist/experimental/team/team-playbook-extraction.js +526 -0
  419. package/dist/experimental/team/team-playbook-extraction.js.map +1 -0
  420. package/dist/experimental/team/team-playbook.d.ts +276 -0
  421. package/dist/experimental/team/team-playbook.d.ts.map +1 -0
  422. package/dist/experimental/team/team-playbook.js +85 -0
  423. package/dist/experimental/team/team-playbook.js.map +1 -0
  424. package/dist/experimental/team/team-router.d.ts +98 -0
  425. package/dist/experimental/team/team-router.d.ts.map +1 -0
  426. package/dist/experimental/team/team-router.js +312 -0
  427. package/dist/experimental/team/team-router.js.map +1 -0
  428. package/dist/experimental/team/team-skill-library.d.ts +180 -0
  429. package/dist/experimental/team/team-skill-library.d.ts.map +1 -0
  430. package/dist/experimental/team/team-skill-library.js +385 -0
  431. package/dist/experimental/team/team-skill-library.js.map +1 -0
  432. package/dist/experimental/team/team-trajectory-analysis.d.ts +19 -0
  433. package/dist/experimental/team/team-trajectory-analysis.d.ts.map +1 -0
  434. package/dist/experimental/team/team-trajectory-analysis.js +442 -0
  435. package/dist/experimental/team/team-trajectory-analysis.js.map +1 -0
  436. package/dist/experimental/team/team-trajectory.d.ts +305 -0
  437. package/dist/experimental/team/team-trajectory.d.ts.map +1 -0
  438. package/dist/experimental/team/team-trajectory.js +315 -0
  439. package/dist/experimental/team/team-trajectory.js.map +1 -0
  440. package/dist/factory.d.ts +2 -3
  441. package/dist/factory.d.ts.map +1 -1
  442. package/dist/factory.js +12 -11
  443. package/dist/factory.js.map +1 -1
  444. package/dist/index.d.ts +9 -11
  445. package/dist/index.d.ts.map +1 -1
  446. package/dist/index.js +26 -32
  447. package/dist/index.js.map +1 -1
  448. package/dist/learning/analyzer.d.ts +26 -36
  449. package/dist/learning/analyzer.d.ts.map +1 -1
  450. package/dist/learning/analyzer.js +50 -11
  451. package/dist/learning/analyzer.js.map +1 -1
  452. package/dist/learning/compound-bootstrap/external-acquisition.d.ts +63 -0
  453. package/dist/learning/compound-bootstrap/external-acquisition.d.ts.map +1 -0
  454. package/dist/learning/compound-bootstrap/external-acquisition.js +255 -0
  455. package/dist/learning/compound-bootstrap/external-acquisition.js.map +1 -0
  456. package/dist/learning/compound-bootstrap/index.d.ts +3 -0
  457. package/dist/learning/compound-bootstrap/index.d.ts.map +1 -0
  458. package/dist/learning/compound-bootstrap/index.js +3 -0
  459. package/dist/learning/compound-bootstrap/index.js.map +1 -0
  460. package/dist/learning/compound-bootstrap/workspace-analyzer.d.ts +33 -0
  461. package/dist/learning/compound-bootstrap/workspace-analyzer.d.ts.map +1 -0
  462. package/dist/learning/compound-bootstrap/workspace-analyzer.js +379 -0
  463. package/dist/learning/compound-bootstrap/workspace-analyzer.js.map +1 -0
  464. package/dist/learning/consolidation-coordinator.d.ts +49 -0
  465. package/dist/learning/consolidation-coordinator.d.ts.map +1 -0
  466. package/dist/learning/consolidation-coordinator.js +75 -0
  467. package/dist/learning/consolidation-coordinator.js.map +1 -0
  468. package/dist/learning/convention-distiller.d.ts +84 -0
  469. package/dist/learning/convention-distiller.d.ts.map +1 -0
  470. package/dist/learning/convention-distiller.js +268 -0
  471. package/dist/learning/convention-distiller.js.map +1 -0
  472. package/dist/learning/distiller.d.ts +82 -0
  473. package/dist/learning/distiller.d.ts.map +1 -0
  474. package/dist/learning/distiller.js +353 -0
  475. package/dist/learning/distiller.js.map +1 -0
  476. package/dist/learning/effectiveness.d.ts +12 -2
  477. package/dist/learning/effectiveness.d.ts.map +1 -1
  478. package/dist/learning/effectiveness.js +18 -14
  479. package/dist/learning/effectiveness.js.map +1 -1
  480. package/dist/learning/escalation.d.ts +89 -0
  481. package/dist/learning/escalation.d.ts.map +1 -0
  482. package/dist/learning/escalation.js +168 -0
  483. package/dist/learning/escalation.js.map +1 -0
  484. package/dist/learning/external-exposure.d.ts +57 -0
  485. package/dist/learning/external-exposure.d.ts.map +1 -0
  486. package/dist/learning/external-exposure.js +95 -0
  487. package/dist/learning/external-exposure.js.map +1 -0
  488. package/dist/learning/gepa-proposer.d.ts +116 -0
  489. package/dist/learning/gepa-proposer.d.ts.map +1 -0
  490. package/dist/learning/gepa-proposer.js +258 -0
  491. package/dist/learning/gepa-proposer.js.map +1 -0
  492. package/dist/learning/index.d.ts +21 -8
  493. package/dist/learning/index.d.ts.map +1 -1
  494. package/dist/learning/index.js +28 -10
  495. package/dist/learning/index.js.map +1 -1
  496. package/dist/learning/instant-loop.d.ts +46 -16
  497. package/dist/learning/instant-loop.d.ts.map +1 -1
  498. package/dist/learning/instant-loop.js +114 -111
  499. package/dist/learning/instant-loop.js.map +1 -1
  500. package/dist/learning/knowledge-extractor.d.ts.map +1 -1
  501. package/dist/learning/knowledge-extractor.js +1 -2
  502. package/dist/learning/knowledge-extractor.js.map +1 -1
  503. package/dist/learning/llm-extractor.d.ts +88 -0
  504. package/dist/learning/llm-extractor.d.ts.map +1 -0
  505. package/dist/learning/llm-extractor.js +372 -0
  506. package/dist/learning/llm-extractor.js.map +1 -0
  507. package/dist/learning/loop-coordinator.d.ts +61 -0
  508. package/dist/learning/loop-coordinator.d.ts.map +1 -0
  509. package/dist/learning/loop-coordinator.js +96 -0
  510. package/dist/learning/loop-coordinator.js.map +1 -0
  511. package/dist/learning/maintenance-scheduler.d.ts +15 -4
  512. package/dist/learning/maintenance-scheduler.d.ts.map +1 -1
  513. package/dist/learning/maintenance-scheduler.js +19 -16
  514. package/dist/learning/maintenance-scheduler.js.map +1 -1
  515. package/dist/learning/mechanism-trace.d.ts +196 -0
  516. package/dist/learning/mechanism-trace.d.ts.map +1 -0
  517. package/dist/learning/mechanism-trace.js +81 -0
  518. package/dist/learning/mechanism-trace.js.map +1 -0
  519. package/dist/learning/merge-proposer.d.ts +102 -0
  520. package/dist/learning/merge-proposer.d.ts.map +1 -0
  521. package/dist/learning/merge-proposer.js +253 -0
  522. package/dist/learning/merge-proposer.js.map +1 -0
  523. package/dist/learning/meta-learner.d.ts +9 -7
  524. package/dist/learning/meta-learner.d.ts.map +1 -1
  525. package/dist/learning/meta-learner.js +16 -45
  526. package/dist/learning/meta-learner.js.map +1 -1
  527. package/dist/learning/mutation-gate.d.ts +218 -0
  528. package/dist/learning/mutation-gate.d.ts.map +1 -0
  529. package/dist/learning/mutation-gate.js +390 -0
  530. package/dist/learning/mutation-gate.js.map +1 -0
  531. package/dist/learning/oracle-signal.d.ts +67 -0
  532. package/dist/learning/oracle-signal.d.ts.map +1 -0
  533. package/dist/learning/oracle-signal.js +94 -0
  534. package/dist/learning/oracle-signal.js.map +1 -0
  535. package/dist/learning/pipeline.d.ts +31 -4
  536. package/dist/learning/pipeline.d.ts.map +1 -1
  537. package/dist/learning/pipeline.js +64 -12
  538. package/dist/learning/pipeline.js.map +1 -1
  539. package/dist/learning/playbook-extractor.d.ts +8 -0
  540. package/dist/learning/playbook-extractor.d.ts.map +1 -1
  541. package/dist/learning/playbook-extractor.js +119 -34
  542. package/dist/learning/playbook-extractor.js.map +1 -1
  543. package/dist/learning/playbook-optimizer.d.ts +37 -0
  544. package/dist/learning/playbook-optimizer.d.ts.map +1 -0
  545. package/dist/learning/playbook-optimizer.js +125 -0
  546. package/dist/learning/playbook-optimizer.js.map +1 -0
  547. package/dist/learning/reflective-proposer.d.ts +173 -0
  548. package/dist/learning/reflective-proposer.d.ts.map +1 -0
  549. package/dist/learning/reflective-proposer.js +354 -0
  550. package/dist/learning/reflective-proposer.js.map +1 -0
  551. package/dist/learning/reflexion-generator.d.ts.map +1 -1
  552. package/dist/learning/reflexion-generator.js +4 -3
  553. package/dist/learning/reflexion-generator.js.map +1 -1
  554. package/dist/learning/replay-executor.d.ts +64 -0
  555. package/dist/learning/replay-executor.d.ts.map +1 -0
  556. package/dist/learning/replay-executor.js +92 -0
  557. package/dist/learning/replay-executor.js.map +1 -0
  558. package/dist/learning/replay-types.d.ts +150 -0
  559. package/dist/learning/replay-types.d.ts.map +1 -0
  560. package/dist/learning/replay-types.js +207 -0
  561. package/dist/learning/replay-types.js.map +1 -0
  562. package/dist/learning/replay.d.ts +166 -0
  563. package/dist/learning/replay.d.ts.map +1 -0
  564. package/dist/learning/replay.js +228 -0
  565. package/dist/learning/replay.js.map +1 -0
  566. package/dist/learning/seed-report.d.ts +88 -0
  567. package/dist/learning/seed-report.d.ts.map +1 -0
  568. package/dist/learning/seed-report.js +120 -0
  569. package/dist/learning/seed-report.js.map +1 -0
  570. package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -1
  571. package/dist/learning/trajectory-sources/dataclaw.js +6 -18
  572. package/dist/learning/trajectory-sources/dataclaw.js.map +1 -1
  573. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -1
  574. package/dist/learning/trajectory-sources/entire.js +30 -9
  575. package/dist/learning/trajectory-sources/entire.js.map +1 -1
  576. package/dist/learning/trajectory-sources/file.d.ts.map +1 -1
  577. package/dist/learning/trajectory-sources/file.js.map +1 -1
  578. package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -1
  579. package/dist/learning/trajectory-sources/huggingface.js +7 -7
  580. package/dist/learning/trajectory-sources/huggingface.js.map +1 -1
  581. package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -1
  582. package/dist/learning/trajectory-sources/in-memory.js.map +1 -1
  583. package/dist/learning/trajectory-sources/index.d.ts +3 -4
  584. package/dist/learning/trajectory-sources/index.d.ts.map +1 -1
  585. package/dist/learning/trajectory-sources/index.js +3 -4
  586. package/dist/learning/trajectory-sources/index.js.map +1 -1
  587. package/dist/learning/trajectory-sources/pipeline.d.ts +4 -3
  588. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -1
  589. package/dist/learning/trajectory-sources/pipeline.js +4 -3
  590. package/dist/learning/trajectory-sources/pipeline.js.map +1 -1
  591. package/dist/learning/unified-pipeline.d.ts +486 -61
  592. package/dist/learning/unified-pipeline.d.ts.map +1 -1
  593. package/dist/learning/unified-pipeline.js +1501 -232
  594. package/dist/learning/unified-pipeline.js.map +1 -1
  595. package/dist/learning/usage-inference.d.ts.map +1 -1
  596. package/dist/learning/usage-inference.js +4 -9
  597. package/dist/learning/usage-inference.js.map +1 -1
  598. package/dist/learning/workspace-snapshot.d.ts +146 -0
  599. package/dist/learning/workspace-snapshot.d.ts.map +1 -0
  600. package/dist/learning/workspace-snapshot.js +269 -0
  601. package/dist/learning/workspace-snapshot.js.map +1 -0
  602. package/dist/mcp/playbook-server.d.ts +61 -2
  603. package/dist/mcp/playbook-server.d.ts.map +1 -1
  604. package/dist/mcp/playbook-server.js +179 -9
  605. package/dist/mcp/playbook-server.js.map +1 -1
  606. package/dist/memory/coherence.d.ts.map +1 -1
  607. package/dist/memory/coherence.js +5 -7
  608. package/dist/memory/coherence.js.map +1 -1
  609. package/dist/memory/curated-loader.d.ts +24 -0
  610. package/dist/memory/curated-loader.d.ts.map +1 -1
  611. package/dist/memory/curated-loader.js +22 -5
  612. package/dist/memory/curated-loader.js.map +1 -1
  613. package/dist/memory/evolution/llm-evolver.d.ts +36 -0
  614. package/dist/memory/evolution/llm-evolver.d.ts.map +1 -0
  615. package/dist/memory/evolution/llm-evolver.js +106 -0
  616. package/dist/memory/evolution/llm-evolver.js.map +1 -0
  617. package/dist/memory/experience.d.ts +34 -13
  618. package/dist/memory/experience.d.ts.map +1 -1
  619. package/dist/memory/experience.js +59 -48
  620. package/dist/memory/experience.js.map +1 -1
  621. package/dist/memory/extraction/conversation-extractor.d.ts +62 -0
  622. package/dist/memory/extraction/conversation-extractor.d.ts.map +1 -0
  623. package/dist/memory/extraction/conversation-extractor.js +169 -0
  624. package/dist/memory/extraction/conversation-extractor.js.map +1 -0
  625. package/dist/memory/filesystem-cascade.d.ts +116 -0
  626. package/dist/memory/filesystem-cascade.d.ts.map +1 -0
  627. package/dist/memory/filesystem-cascade.js +221 -0
  628. package/dist/memory/filesystem-cascade.js.map +1 -0
  629. package/dist/memory/index.d.ts +14 -10
  630. package/dist/memory/index.d.ts.map +1 -1
  631. package/dist/memory/index.js +15 -12
  632. package/dist/memory/index.js.map +1 -1
  633. package/dist/memory/knowledge-bank.d.ts +145 -29
  634. package/dist/memory/knowledge-bank.d.ts.map +1 -1
  635. package/dist/memory/knowledge-bank.js +511 -200
  636. package/dist/memory/knowledge-bank.js.map +1 -1
  637. package/dist/memory/knowledge-defrag.d.ts +32 -9
  638. package/dist/memory/knowledge-defrag.d.ts.map +1 -1
  639. package/dist/memory/knowledge-defrag.js +57 -49
  640. package/dist/memory/knowledge-defrag.js.map +1 -1
  641. package/dist/memory/meta-playbook-bank.d.ts +24 -0
  642. package/dist/memory/meta-playbook-bank.d.ts.map +1 -0
  643. package/dist/memory/meta-playbook-bank.js +135 -0
  644. package/dist/memory/meta-playbook-bank.js.map +1 -0
  645. package/dist/memory/meta.d.ts.map +1 -1
  646. package/dist/memory/meta.js +33 -14
  647. package/dist/memory/meta.js.map +1 -1
  648. package/dist/memory/playbook-applicability.d.ts +43 -0
  649. package/dist/memory/playbook-applicability.d.ts.map +1 -0
  650. package/dist/memory/playbook-applicability.js +155 -0
  651. package/dist/memory/playbook-applicability.js.map +1 -0
  652. package/dist/memory/playbook-incorporation.d.ts +24 -0
  653. package/dist/memory/playbook-incorporation.d.ts.map +1 -0
  654. package/dist/memory/playbook-incorporation.js +41 -0
  655. package/dist/memory/playbook-incorporation.js.map +1 -0
  656. package/dist/memory/playbook.d.ts +444 -7
  657. package/dist/memory/playbook.d.ts.map +1 -1
  658. package/dist/memory/playbook.js +1231 -50
  659. package/dist/memory/playbook.js.map +1 -1
  660. package/dist/memory/procedural-skill.d.ts +142 -0
  661. package/dist/memory/procedural-skill.d.ts.map +1 -0
  662. package/dist/memory/procedural-skill.js +846 -0
  663. package/dist/memory/procedural-skill.js.map +1 -0
  664. package/dist/memory/search-provider.d.ts +8 -3
  665. package/dist/memory/search-provider.d.ts.map +1 -1
  666. package/dist/memory/search-providers/embedding.d.ts +64 -0
  667. package/dist/memory/search-providers/embedding.d.ts.map +1 -0
  668. package/dist/memory/search-providers/embedding.js +96 -0
  669. package/dist/memory/search-providers/embedding.js.map +1 -0
  670. package/dist/memory/search-providers/hybrid.d.ts +74 -0
  671. package/dist/memory/search-providers/hybrid.d.ts.map +1 -0
  672. package/dist/memory/search-providers/hybrid.js +94 -0
  673. package/dist/memory/search-providers/hybrid.js.map +1 -0
  674. package/dist/memory/search-providers/index.d.ts +3 -0
  675. package/dist/memory/search-providers/index.d.ts.map +1 -1
  676. package/dist/memory/search-providers/index.js +3 -0
  677. package/dist/memory/search-providers/index.js.map +1 -1
  678. package/dist/memory/search-providers/keyword-expanding.d.ts +22 -0
  679. package/dist/memory/search-providers/keyword-expanding.d.ts.map +1 -0
  680. package/dist/memory/search-providers/keyword-expanding.js +35 -0
  681. package/dist/memory/search-providers/keyword-expanding.js.map +1 -0
  682. package/dist/memory/search-providers/minimem.d.ts +16 -4
  683. package/dist/memory/search-providers/minimem.d.ts.map +1 -1
  684. package/dist/memory/search-providers/minimem.js +14 -3
  685. package/dist/memory/search-providers/minimem.js.map +1 -1
  686. package/dist/memory/search-providers/text-similarity.d.ts +2 -4
  687. package/dist/memory/search-providers/text-similarity.d.ts.map +1 -1
  688. package/dist/memory/search-providers/text-similarity.js.map +1 -1
  689. package/dist/memory/seeds/meta-playbook-seeds.d.ts +27 -0
  690. package/dist/memory/seeds/meta-playbook-seeds.d.ts.map +1 -0
  691. package/dist/memory/seeds/meta-playbook-seeds.js +560 -0
  692. package/dist/memory/seeds/meta-playbook-seeds.js.map +1 -0
  693. package/dist/memory/seeds/meta-strategy-seeds.d.ts +23 -0
  694. package/dist/memory/seeds/meta-strategy-seeds.d.ts.map +1 -0
  695. package/dist/memory/seeds/meta-strategy-seeds.js +82 -0
  696. package/dist/memory/seeds/meta-strategy-seeds.js.map +1 -0
  697. package/dist/memory/seeds/seed-loader.d.ts +34 -0
  698. package/dist/memory/seeds/seed-loader.d.ts.map +1 -0
  699. package/dist/memory/seeds/seed-loader.js +60 -0
  700. package/dist/memory/seeds/seed-loader.js.map +1 -0
  701. package/dist/memory/skill-exporter.d.ts.map +1 -1
  702. package/dist/memory/skill-exporter.js +1 -2
  703. package/dist/memory/skill-exporter.js.map +1 -1
  704. package/dist/memory/source-resolver.d.ts.map +1 -1
  705. package/dist/memory/source-resolver.js +7 -8
  706. package/dist/memory/source-resolver.js.map +1 -1
  707. package/dist/memory/system.d.ts +119 -14
  708. package/dist/memory/system.d.ts.map +1 -1
  709. package/dist/memory/system.js +416 -60
  710. package/dist/memory/system.js.map +1 -1
  711. package/dist/memory/temporal-compressor.d.ts +1 -1
  712. package/dist/memory/temporal-compressor.d.ts.map +1 -1
  713. package/dist/memory/temporal-compressor.js +26 -16
  714. package/dist/memory/temporal-compressor.js.map +1 -1
  715. package/dist/persistence/index.d.ts +2 -2
  716. package/dist/persistence/index.d.ts.map +1 -1
  717. package/dist/persistence/index.js +1 -1
  718. package/dist/persistence/index.js.map +1 -1
  719. package/dist/persistence/migrator.d.ts +34 -1
  720. package/dist/persistence/migrator.d.ts.map +1 -1
  721. package/dist/persistence/migrator.js +163 -33
  722. package/dist/persistence/migrator.js.map +1 -1
  723. package/dist/persistence/sqlite-persistence.d.ts +412 -1
  724. package/dist/persistence/sqlite-persistence.d.ts.map +1 -1
  725. package/dist/persistence/sqlite-persistence.js +1038 -47
  726. package/dist/persistence/sqlite-persistence.js.map +1 -1
  727. package/dist/runtime/backends/acp-protocol.d.ts.map +1 -1
  728. package/dist/runtime/backends/acp-protocol.js +2 -1
  729. package/dist/runtime/backends/acp-protocol.js.map +1 -1
  730. package/dist/runtime/backends/acp.d.ts.map +1 -1
  731. package/dist/runtime/backends/acp.js +5 -4
  732. package/dist/runtime/backends/acp.js.map +1 -1
  733. package/dist/runtime/backends/index.d.ts +2 -2
  734. package/dist/runtime/backends/index.d.ts.map +1 -1
  735. package/dist/runtime/backends/index.js +2 -2
  736. package/dist/runtime/backends/index.js.map +1 -1
  737. package/dist/runtime/backends/macro-agent.d.ts +17 -1
  738. package/dist/runtime/backends/macro-agent.d.ts.map +1 -1
  739. package/dist/runtime/backends/macro-agent.js +1 -1
  740. package/dist/runtime/backends/macro-agent.js.map +1 -1
  741. package/dist/runtime/backends/mock.d.ts.map +1 -1
  742. package/dist/runtime/backends/mock.js.map +1 -1
  743. package/dist/runtime/backends/subprocess.d.ts.map +1 -1
  744. package/dist/runtime/backends/subprocess.js +5 -4
  745. package/dist/runtime/backends/subprocess.js.map +1 -1
  746. package/dist/runtime/compute-provider.d.ts +2 -18
  747. package/dist/runtime/compute-provider.d.ts.map +1 -1
  748. package/dist/runtime/compute-provider.js +8 -8
  749. package/dist/runtime/compute-provider.js.map +1 -1
  750. package/dist/runtime/flows/learning.d.ts +2 -1
  751. package/dist/runtime/flows/learning.d.ts.map +1 -1
  752. package/dist/runtime/flows/learning.js +4 -5
  753. package/dist/runtime/flows/learning.js.map +1 -1
  754. package/dist/runtime/flows/validation.d.ts.map +1 -1
  755. package/dist/runtime/flows/validation.js +2 -5
  756. package/dist/runtime/flows/validation.js.map +1 -1
  757. package/dist/runtime/index.d.ts +1 -1
  758. package/dist/runtime/index.d.ts.map +1 -1
  759. package/dist/runtime/index.js.map +1 -1
  760. package/dist/runtime/manager.d.ts +128 -0
  761. package/dist/runtime/manager.d.ts.map +1 -1
  762. package/dist/runtime/manager.js +375 -64
  763. package/dist/runtime/manager.js.map +1 -1
  764. package/dist/runtime/types.d.ts +92 -1
  765. package/dist/runtime/types.d.ts.map +1 -1
  766. package/dist/search/evaluator.d.ts +71 -0
  767. package/dist/search/evaluator.d.ts.map +1 -1
  768. package/dist/search/evaluator.js +40 -5
  769. package/dist/search/evaluator.js.map +1 -1
  770. package/dist/search/index.d.ts +3 -5
  771. package/dist/search/index.d.ts.map +1 -1
  772. package/dist/search/index.js +4 -7
  773. package/dist/search/index.js.map +1 -1
  774. package/dist/search/moe-gate.d.ts +48 -2
  775. package/dist/search/moe-gate.d.ts.map +1 -1
  776. package/dist/search/moe-gate.js +117 -4
  777. package/dist/search/moe-gate.js.map +1 -1
  778. package/dist/search/refinement-loop.d.ts +63 -3
  779. package/dist/search/refinement-loop.d.ts.map +1 -1
  780. package/dist/search/refinement-loop.js +278 -23
  781. package/dist/search/refinement-loop.js.map +1 -1
  782. package/dist/search/refinement-types.d.ts +4 -2
  783. package/dist/search/refinement-types.d.ts.map +1 -1
  784. package/dist/search/refinement-types.js +2 -11
  785. package/dist/search/refinement-types.js.map +1 -1
  786. package/dist/search/router.d.ts +41 -34
  787. package/dist/search/router.d.ts.map +1 -1
  788. package/dist/search/router.js +156 -90
  789. package/dist/search/router.js.map +1 -1
  790. package/dist/search/solver.js +1 -1
  791. package/dist/search/solver.js.map +1 -1
  792. package/dist/search/task-difficulty.d.ts +54 -0
  793. package/dist/search/task-difficulty.d.ts.map +1 -0
  794. package/dist/search/task-difficulty.js +116 -0
  795. package/dist/search/task-difficulty.js.map +1 -0
  796. package/dist/search/tau-bench-verifier.d.ts +74 -0
  797. package/dist/search/tau-bench-verifier.d.ts.map +1 -0
  798. package/dist/search/tau-bench-verifier.js +96 -0
  799. package/dist/search/tau-bench-verifier.js.map +1 -0
  800. package/dist/search/verification-runner.d.ts.map +1 -1
  801. package/dist/search/verification-runner.js +6 -5
  802. package/dist/search/verification-runner.js.map +1 -1
  803. package/dist/session-bank/git-reader.d.ts.map +1 -1
  804. package/dist/session-bank/git-reader.js +5 -19
  805. package/dist/session-bank/git-reader.js.map +1 -1
  806. package/dist/session-bank/parser.d.ts.map +1 -1
  807. package/dist/session-bank/parser.js +26 -0
  808. package/dist/session-bank/parser.js.map +1 -1
  809. package/dist/session-bank/session-bank.d.ts.map +1 -1
  810. package/dist/session-bank/session-bank.js +2 -5
  811. package/dist/session-bank/session-bank.js.map +1 -1
  812. package/dist/session-bank/types.d.ts +24 -0
  813. package/dist/session-bank/types.d.ts.map +1 -1
  814. package/dist/surfacing/index.d.ts +3 -3
  815. package/dist/surfacing/index.d.ts.map +1 -1
  816. package/dist/surfacing/index.js +2 -2
  817. package/dist/surfacing/index.js.map +1 -1
  818. package/dist/surfacing/shared-bank.d.ts +43 -0
  819. package/dist/surfacing/shared-bank.d.ts.map +1 -0
  820. package/dist/surfacing/shared-bank.js +104 -0
  821. package/dist/surfacing/shared-bank.js.map +1 -0
  822. package/dist/surfacing/skill-library.d.ts +98 -2
  823. package/dist/surfacing/skill-library.d.ts.map +1 -1
  824. package/dist/surfacing/skill-library.js +192 -17
  825. package/dist/surfacing/skill-library.js.map +1 -1
  826. package/dist/surfacing/skill-publisher.d.ts +3 -1
  827. package/dist/surfacing/skill-publisher.d.ts.map +1 -1
  828. package/dist/surfacing/skill-publisher.js +28 -28
  829. package/dist/surfacing/skill-publisher.js.map +1 -1
  830. package/dist/surfacing/sqlite-storage-adapter.d.ts +2 -2
  831. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
  832. package/dist/surfacing/sqlite-storage-adapter.js +27 -18
  833. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
  834. package/dist/types/analysis.d.ts +43 -0
  835. package/dist/types/analysis.d.ts.map +1 -0
  836. package/dist/types/analysis.js +10 -0
  837. package/dist/types/analysis.js.map +1 -0
  838. package/dist/types/config.d.ts +2178 -425
  839. package/dist/types/config.d.ts.map +1 -1
  840. package/dist/types/config.js +600 -88
  841. package/dist/types/config.js.map +1 -1
  842. package/dist/types/dataclaw.d.ts +3 -3
  843. package/dist/types/index.d.ts +4 -7
  844. package/dist/types/index.d.ts.map +1 -1
  845. package/dist/types/index.js +2 -10
  846. package/dist/types/index.js.map +1 -1
  847. package/dist/types/knowledge-graph.d.ts +1 -1
  848. package/dist/types/knowledge-graph.d.ts.map +1 -1
  849. package/dist/types/knowledge.d.ts +219 -11
  850. package/dist/types/knowledge.d.ts.map +1 -1
  851. package/dist/types/knowledge.js +90 -30
  852. package/dist/types/knowledge.js.map +1 -1
  853. package/dist/types/memory.d.ts +8 -0
  854. package/dist/types/memory.d.ts.map +1 -1
  855. package/dist/types/memory.js +12 -4
  856. package/dist/types/memory.js.map +1 -1
  857. package/dist/types/outcome.d.ts +11 -0
  858. package/dist/types/outcome.d.ts.map +1 -1
  859. package/dist/types/outcome.js +9 -0
  860. package/dist/types/outcome.js.map +1 -1
  861. package/dist/types/playbook.d.ts +63 -0
  862. package/dist/types/playbook.d.ts.map +1 -1
  863. package/dist/types/playbook.js +51 -0
  864. package/dist/types/playbook.js.map +1 -1
  865. package/dist/types/trajectory-source.d.ts +1 -1
  866. package/dist/types/trajectory-source.d.ts.map +1 -1
  867. package/dist/types/trajectory.d.ts +61 -0
  868. package/dist/types/trajectory.d.ts.map +1 -1
  869. package/dist/types/trajectory.js +25 -0
  870. package/dist/types/trajectory.js.map +1 -1
  871. package/dist/utils/clock.d.ts +36 -0
  872. package/dist/utils/clock.d.ts.map +1 -0
  873. package/dist/utils/clock.js +48 -0
  874. package/dist/utils/clock.js.map +1 -0
  875. package/dist/utils/frontmatter.d.ts.map +1 -1
  876. package/dist/utils/frontmatter.js +10 -2
  877. package/dist/utils/frontmatter.js.map +1 -1
  878. package/dist/utils/index.d.ts +4 -1
  879. package/dist/utils/index.d.ts.map +1 -1
  880. package/dist/utils/index.js +4 -1
  881. package/dist/utils/index.js.map +1 -1
  882. package/dist/utils/logger.d.ts +31 -0
  883. package/dist/utils/logger.d.ts.map +1 -0
  884. package/dist/utils/logger.js +50 -0
  885. package/dist/utils/logger.js.map +1 -0
  886. package/dist/utils/objectives.d.ts +45 -0
  887. package/dist/utils/objectives.d.ts.map +1 -0
  888. package/dist/utils/objectives.js +74 -0
  889. package/dist/utils/objectives.js.map +1 -0
  890. package/dist/utils/partitioned-store.d.ts.map +1 -1
  891. package/dist/utils/partitioned-store.js.map +1 -1
  892. package/dist/utils/playbook-hash.d.ts +19 -0
  893. package/dist/utils/playbook-hash.d.ts.map +1 -0
  894. package/dist/utils/playbook-hash.js +51 -0
  895. package/dist/utils/playbook-hash.js.map +1 -0
  896. package/dist/utils/similarity.d.ts.map +1 -1
  897. package/dist/utils/similarity.js.map +1 -1
  898. package/dist/utils/solver-canonicalizer.d.ts +22 -0
  899. package/dist/utils/solver-canonicalizer.d.ts.map +1 -0
  900. package/dist/utils/solver-canonicalizer.js +41 -0
  901. package/dist/utils/solver-canonicalizer.js.map +1 -0
  902. package/dist/utils/storage.d.ts.map +1 -1
  903. package/dist/utils/storage.js +1 -3
  904. package/dist/utils/storage.js.map +1 -1
  905. package/dist/utils/task-signature.d.ts +34 -0
  906. package/dist/utils/task-signature.d.ts.map +1 -0
  907. package/dist/utils/task-signature.js +112 -0
  908. package/dist/utils/task-signature.js.map +1 -0
  909. package/dist/utils/trajectory-helpers.d.ts.map +1 -1
  910. package/dist/utils/trajectory-helpers.js.map +1 -1
  911. package/dist/utils/validation.d.ts.map +1 -1
  912. package/dist/utils/validation.js.map +1 -1
  913. package/dist/workspace/efficacy-toolkit.d.ts.map +1 -1
  914. package/dist/workspace/efficacy-toolkit.js +18 -26
  915. package/dist/workspace/efficacy-toolkit.js.map +1 -1
  916. package/dist/workspace/index.d.ts +4 -3
  917. package/dist/workspace/index.d.ts.map +1 -1
  918. package/dist/workspace/index.js +5 -3
  919. package/dist/workspace/index.js.map +1 -1
  920. package/dist/workspace/runner.d.ts.map +1 -1
  921. package/dist/workspace/runner.js +95 -21
  922. package/dist/workspace/runner.js.map +1 -1
  923. package/dist/workspace/skill-converter.d.ts +66 -1
  924. package/dist/workspace/skill-converter.d.ts.map +1 -1
  925. package/dist/workspace/skill-converter.js +238 -19
  926. package/dist/workspace/skill-converter.js.map +1 -1
  927. package/dist/workspace/skill-import.d.ts +43 -0
  928. package/dist/workspace/skill-import.d.ts.map +1 -0
  929. package/dist/workspace/skill-import.js +40 -0
  930. package/dist/workspace/skill-import.js.map +1 -0
  931. package/dist/workspace/templates/index.d.ts +6 -8
  932. package/dist/workspace/templates/index.d.ts.map +1 -1
  933. package/dist/workspace/templates/index.js +7 -11
  934. package/dist/workspace/templates/index.js.map +1 -1
  935. package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -1
  936. package/dist/workspace/templates/knowledge-defrag.js +0 -2
  937. package/dist/workspace/templates/knowledge-defrag.js.map +1 -1
  938. package/dist/workspace/templates/knowledge-extraction.d.ts +11 -0
  939. package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -1
  940. package/dist/workspace/templates/knowledge-extraction.js +11 -6
  941. package/dist/workspace/templates/knowledge-extraction.js.map +1 -1
  942. package/dist/workspace/templates/playbook-conditioning.d.ts +38 -0
  943. package/dist/workspace/templates/playbook-conditioning.d.ts.map +1 -0
  944. package/dist/workspace/templates/playbook-conditioning.js +147 -0
  945. package/dist/workspace/templates/playbook-conditioning.js.map +1 -0
  946. package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -1
  947. package/dist/workspace/templates/playbook-decay-detection.js +24 -18
  948. package/dist/workspace/templates/playbook-decay-detection.js.map +1 -1
  949. package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -1
  950. package/dist/workspace/templates/playbook-efficacy-audit.js +26 -11
  951. package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -1
  952. package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -1
  953. package/dist/workspace/templates/playbook-extraction.js +75 -15
  954. package/dist/workspace/templates/playbook-extraction.js.map +1 -1
  955. package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -1
  956. package/dist/workspace/templates/playbook-lifecycle-review.js +12 -8
  957. package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -1
  958. package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -1
  959. package/dist/workspace/templates/refinement-analysis.js +11 -5
  960. package/dist/workspace/templates/refinement-analysis.js.map +1 -1
  961. package/dist/workspace/templates/skill-enrichment.d.ts.map +1 -1
  962. package/dist/workspace/templates/skill-enrichment.js +7 -11
  963. package/dist/workspace/templates/skill-enrichment.js.map +1 -1
  964. package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -1
  965. package/dist/workspace/templates/solution-evaluation.js +15 -8
  966. package/dist/workspace/templates/solution-evaluation.js.map +1 -1
  967. package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -1
  968. package/dist/workspace/templates/trajectory-analysis.js +1 -3
  969. package/dist/workspace/templates/trajectory-analysis.js.map +1 -1
  970. package/dist/workspace/templates/usage-inference.d.ts.map +1 -1
  971. package/dist/workspace/templates/usage-inference.js +9 -7
  972. package/dist/workspace/templates/usage-inference.js.map +1 -1
  973. package/dist/workspace/types.d.ts +32 -2
  974. package/dist/workspace/types.d.ts.map +1 -1
  975. package/dist/workspace/types.js +29 -0
  976. package/dist/workspace/types.js.map +1 -1
  977. package/package.json +43 -19
  978. package/playbooks/agent-ops/long-task-checkpointing.json +54 -0
  979. package/playbooks/agent-ops/progressive-context-gathering.json +56 -0
  980. package/playbooks/agent-ops/safe-destructive-operations.json +59 -0
  981. package/playbooks/agent-ops/scope-discipline.json +56 -0
  982. package/playbooks/agent-ops/stall-detection-strategy-switch.json +55 -0
  983. package/playbooks/agent-ops/verification-before-completion.json +54 -0
  984. package/playbooks/alfworld/clean-and-place.json +35 -0
  985. package/playbooks/alfworld/cool-and-place.json +35 -0
  986. package/playbooks/alfworld/examine-in-light.json +32 -0
  987. package/playbooks/alfworld/heat-and-place.json +35 -0
  988. package/playbooks/alfworld/pick-and-place.json +37 -0
  989. package/playbooks/alfworld/pick-two-and-place.json +35 -0
  990. package/.claude/settings.json +0 -197
  991. package/.entire/settings.json +0 -4
  992. package/.sessionlog/settings.json +0 -4
  993. package/CLAUDE.md +0 -233
  994. package/SKILL.md +0 -193
  995. package/docs/DESIGN-agentic-workspace.md +0 -2057
  996. package/docs/DESIGN-semantic-memory-knowledge-bank.md +0 -1789
  997. package/docs/DESIGN-session-bank.md +0 -1134
  998. package/docs/DESIGN-team-extraction-pipeline.md +0 -1369
  999. package/docs/PROPOSAL-team-aware-learning.md +0 -1080
  1000. package/docs/RESEARCH-semantic-memory-knowledge-structures.md +0 -517
  1001. package/docs/RESEARCH-team-trajectory-learning.md +0 -553
  1002. package/gaps.md +0 -204
  1003. package/scripts/migrate-to-playbooks.ts +0 -307
  1004. package/src/agents/index.ts +0 -14
  1005. package/src/agents/mock-provider.ts +0 -93
  1006. package/src/agents/types.ts +0 -137
  1007. package/src/atlas.ts +0 -1198
  1008. package/src/bin/cli-utils.ts +0 -220
  1009. package/src/bin/cognitive-core.ts +0 -162
  1010. package/src/bin/commands/kb.ts +0 -266
  1011. package/src/bin/commands/learn.ts +0 -100
  1012. package/src/bin/commands/legacy.ts +0 -182
  1013. package/src/bin/commands/run.ts +0 -113
  1014. package/src/bin/commands/sessions.ts +0 -221
  1015. package/src/bin/commands/skills.ts +0 -146
  1016. package/src/embeddings/bm25.ts +0 -337
  1017. package/src/embeddings/index.ts +0 -42
  1018. package/src/embeddings/inverted-index.ts +0 -134
  1019. package/src/embeddings/manager.ts +0 -293
  1020. package/src/embeddings/provider.ts +0 -318
  1021. package/src/embeddings/vector-store.ts +0 -365
  1022. package/src/factory.ts +0 -280
  1023. package/src/index.ts +0 -495
  1024. package/src/learning/analyzer.ts +0 -319
  1025. package/src/learning/effectiveness.ts +0 -428
  1026. package/src/learning/energy-evaluator.ts +0 -282
  1027. package/src/learning/healing-orchestrator.ts +0 -383
  1028. package/src/learning/index.ts +0 -150
  1029. package/src/learning/instant-loop.ts +0 -357
  1030. package/src/learning/knowledge-extractor.ts +0 -470
  1031. package/src/learning/maintenance-scheduler.ts +0 -271
  1032. package/src/learning/meta-learner.ts +0 -552
  1033. package/src/learning/playbook-extractor.ts +0 -702
  1034. package/src/learning/reflexion-generator.ts +0 -273
  1035. package/src/learning/team-ingester.ts +0 -499
  1036. package/src/learning/team-meta-learner.ts +0 -558
  1037. package/src/learning/team-pipeline.ts +0 -364
  1038. package/src/learning/trajectory-sources/dataclaw.ts +0 -403
  1039. package/src/learning/trajectory-sources/entire.ts +0 -251
  1040. package/src/learning/trajectory-sources/file.ts +0 -136
  1041. package/src/learning/trajectory-sources/huggingface.ts +0 -248
  1042. package/src/learning/trajectory-sources/in-memory.ts +0 -61
  1043. package/src/learning/trajectory-sources/index.ts +0 -15
  1044. package/src/learning/trajectory-sources/pipeline.ts +0 -69
  1045. package/src/learning/unified-pipeline.ts +0 -1191
  1046. package/src/learning/usage-inference.ts +0 -372
  1047. package/src/mcp/index.ts +0 -12
  1048. package/src/mcp/playbook-server.ts +0 -565
  1049. package/src/memory/candidate-retrieval.ts +0 -72
  1050. package/src/memory/causal-store.ts +0 -273
  1051. package/src/memory/coherence.ts +0 -252
  1052. package/src/memory/curated-loader.ts +0 -213
  1053. package/src/memory/experience.ts +0 -682
  1054. package/src/memory/graph-layers/base.ts +0 -184
  1055. package/src/memory/graph-layers/causal.ts +0 -16
  1056. package/src/memory/graph-layers/entity.ts +0 -16
  1057. package/src/memory/graph-layers/index.ts +0 -5
  1058. package/src/memory/graph-layers/semantic.ts +0 -16
  1059. package/src/memory/graph-layers/temporal.ts +0 -16
  1060. package/src/memory/index.ts +0 -131
  1061. package/src/memory/knowledge-bank.ts +0 -1317
  1062. package/src/memory/knowledge-defrag.ts +0 -329
  1063. package/src/memory/knowledge-graph.ts +0 -361
  1064. package/src/memory/meta.ts +0 -488
  1065. package/src/memory/playbook.ts +0 -676
  1066. package/src/memory/reasoning-bank.ts +0 -458
  1067. package/src/memory/reflexion.ts +0 -122
  1068. package/src/memory/search-provider.ts +0 -35
  1069. package/src/memory/search-providers/index.ts +0 -3
  1070. package/src/memory/search-providers/minimem.ts +0 -84
  1071. package/src/memory/search-providers/text-similarity.ts +0 -35
  1072. package/src/memory/skill-exporter.ts +0 -357
  1073. package/src/memory/source-resolver.ts +0 -422
  1074. package/src/memory/system.ts +0 -620
  1075. package/src/memory/team-experience.ts +0 -604
  1076. package/src/memory/temporal-compressor.ts +0 -409
  1077. package/src/persistence/index.ts +0 -37
  1078. package/src/persistence/migrator.ts +0 -298
  1079. package/src/persistence/serializers.ts +0 -79
  1080. package/src/persistence/sqlite-persistence.ts +0 -925
  1081. package/src/runtime/backends/acp-protocol.ts +0 -231
  1082. package/src/runtime/backends/acp.ts +0 -239
  1083. package/src/runtime/backends/index.ts +0 -38
  1084. package/src/runtime/backends/macro-agent.ts +0 -177
  1085. package/src/runtime/backends/mock.ts +0 -218
  1086. package/src/runtime/backends/subprocess.ts +0 -356
  1087. package/src/runtime/compute-provider.ts +0 -206
  1088. package/src/runtime/flows/learning.ts +0 -166
  1089. package/src/runtime/flows/validation.ts +0 -381
  1090. package/src/runtime/index.ts +0 -75
  1091. package/src/runtime/manager.ts +0 -685
  1092. package/src/runtime/types.ts +0 -198
  1093. package/src/search/evaluator.ts +0 -499
  1094. package/src/search/index.ts +0 -78
  1095. package/src/search/moe-gate.ts +0 -304
  1096. package/src/search/refinement-loop.ts +0 -457
  1097. package/src/search/refinement-types.ts +0 -159
  1098. package/src/search/router.ts +0 -368
  1099. package/src/search/solver.ts +0 -303
  1100. package/src/search/team-router.ts +0 -459
  1101. package/src/search/verification-runner.ts +0 -570
  1102. package/src/session-bank/git-reader.ts +0 -200
  1103. package/src/session-bank/index.ts +0 -26
  1104. package/src/session-bank/parser.ts +0 -548
  1105. package/src/session-bank/session-bank.ts +0 -485
  1106. package/src/session-bank/types.ts +0 -176
  1107. package/src/surfacing/index.ts +0 -29
  1108. package/src/surfacing/publisher.ts +0 -23
  1109. package/src/surfacing/skill-library.ts +0 -625
  1110. package/src/surfacing/skill-publisher.ts +0 -257
  1111. package/src/surfacing/sqlite-storage-adapter.ts +0 -285
  1112. package/src/surfacing/team-skill-library.ts +0 -610
  1113. package/src/types/config.ts +0 -661
  1114. package/src/types/dataclaw.ts +0 -99
  1115. package/src/types/huggingface-transformers.d.ts +0 -12
  1116. package/src/types/index.ts +0 -293
  1117. package/src/types/knowledge-graph.ts +0 -246
  1118. package/src/types/knowledge.ts +0 -388
  1119. package/src/types/memory.ts +0 -300
  1120. package/src/types/meta.ts +0 -218
  1121. package/src/types/outcome.ts +0 -66
  1122. package/src/types/playbook.ts +0 -215
  1123. package/src/types/step.ts +0 -40
  1124. package/src/types/task.ts +0 -52
  1125. package/src/types/team-meta.ts +0 -212
  1126. package/src/types/team-playbook.ts +0 -384
  1127. package/src/types/team-trajectory.ts +0 -673
  1128. package/src/types/trajectory-source.ts +0 -47
  1129. package/src/types/trajectory.ts +0 -80
  1130. package/src/utils/error-classifier.ts +0 -113
  1131. package/src/utils/frontmatter.ts +0 -118
  1132. package/src/utils/index.ts +0 -63
  1133. package/src/utils/partitioned-store.ts +0 -299
  1134. package/src/utils/similarity.ts +0 -139
  1135. package/src/utils/storage.ts +0 -249
  1136. package/src/utils/trajectory-helpers.ts +0 -79
  1137. package/src/utils/validation.ts +0 -286
  1138. package/src/workspace/efficacy-toolkit.ts +0 -496
  1139. package/src/workspace/index.ts +0 -77
  1140. package/src/workspace/runner.ts +0 -281
  1141. package/src/workspace/skill-converter.ts +0 -288
  1142. package/src/workspace/templates/index.ts +0 -95
  1143. package/src/workspace/templates/knowledge-defrag.ts +0 -223
  1144. package/src/workspace/templates/knowledge-extraction.ts +0 -337
  1145. package/src/workspace/templates/meta-reflection.ts +0 -208
  1146. package/src/workspace/templates/playbook-decay-detection.ts +0 -272
  1147. package/src/workspace/templates/playbook-efficacy-audit.ts +0 -246
  1148. package/src/workspace/templates/playbook-extraction.ts +0 -240
  1149. package/src/workspace/templates/playbook-lifecycle-review.ts +0 -274
  1150. package/src/workspace/templates/refinement-analysis.ts +0 -162
  1151. package/src/workspace/templates/skill-enrichment.ts +0 -275
  1152. package/src/workspace/templates/solution-evaluation.ts +0 -199
  1153. package/src/workspace/templates/team-playbook-extraction.ts +0 -631
  1154. package/src/workspace/templates/team-trajectory-analysis.ts +0 -564
  1155. package/src/workspace/templates/trajectory-analysis.ts +0 -234
  1156. package/src/workspace/templates/usage-inference.ts +0 -163
  1157. package/src/workspace/types.ts +0 -185
  1158. package/tests/atlas-knowledge.test.ts +0 -165
  1159. package/tests/embeddings/bm25.test.ts +0 -130
  1160. package/tests/embeddings/inverted-index.test.ts +0 -138
  1161. package/tests/embeddings/manager.test.ts +0 -205
  1162. package/tests/feature-toggles.test.ts +0 -275
  1163. package/tests/fixtures/behavioral-trajectories.ts +0 -210
  1164. package/tests/gap-fixes.test.ts +0 -1116
  1165. package/tests/integration/atlas.test.ts +0 -266
  1166. package/tests/integration/cli-e2e.test.ts +0 -621
  1167. package/tests/integration/curated-sources-e2e.test.ts +0 -502
  1168. package/tests/integration/dataclaw-e2e.test.ts +0 -559
  1169. package/tests/integration/e2e.test.ts +0 -1337
  1170. package/tests/integration/entire-e2e.test.ts +0 -376
  1171. package/tests/integration/huggingface-e2e.test.ts +0 -627
  1172. package/tests/integration/persistence-e2e.test.ts +0 -741
  1173. package/tests/integration/phase-e2e.test.ts +0 -1143
  1174. package/tests/integration/pipeline-data-correctness.test.ts +0 -794
  1175. package/tests/integration/session-bank.test.ts +0 -231
  1176. package/tests/integration/sessionlog-e2e.test.ts +0 -329
  1177. package/tests/integration/skill-tree-wiring.test.ts +0 -152
  1178. package/tests/integration/unified-pipeline-e2e.test.ts +0 -634
  1179. package/tests/learning/analyzer.test.ts +0 -426
  1180. package/tests/learning/dataclaw-trajectory-source.test.ts +0 -642
  1181. package/tests/learning/effectiveness.test.ts +0 -542
  1182. package/tests/learning/energy-evaluator.test.ts +0 -180
  1183. package/tests/learning/entire-trajectory-source.test.ts +0 -380
  1184. package/tests/learning/healing-orchestrator.test.ts +0 -269
  1185. package/tests/learning/huggingface-trajectory-source.test.ts +0 -817
  1186. package/tests/learning/instant-loop.test.ts +0 -243
  1187. package/tests/learning/knowledge-extractor.test.ts +0 -491
  1188. package/tests/learning/maintenance-scheduler.test.ts +0 -191
  1189. package/tests/learning/meta-learner.test.ts +0 -418
  1190. package/tests/learning/pipeline-memory-updates.test.ts +0 -721
  1191. package/tests/learning/playbook-extractor-provenance.test.ts +0 -114
  1192. package/tests/learning/reflexion-generator.test.ts +0 -411
  1193. package/tests/learning/team-ingester.test.ts +0 -349
  1194. package/tests/learning/team-meta-learner.test.ts +0 -618
  1195. package/tests/learning/team-pipeline.test.ts +0 -334
  1196. package/tests/learning/trajectory-sources.test.ts +0 -320
  1197. package/tests/learning/unified-pipeline-efficacy.test.ts +0 -232
  1198. package/tests/learning/unified-pipeline.test.ts +0 -322
  1199. package/tests/learning/usage-inference.test.ts +0 -254
  1200. package/tests/mcp/playbook-server.test.ts +0 -257
  1201. package/tests/memory/candidate-retrieval.test.ts +0 -167
  1202. package/tests/memory/causal-store.test.ts +0 -276
  1203. package/tests/memory/coherence.test.ts +0 -232
  1204. package/tests/memory/compound-engineering-seed.test.ts +0 -338
  1205. package/tests/memory/curated-loader-extended.test.ts +0 -225
  1206. package/tests/memory/experience.test.ts +0 -203
  1207. package/tests/memory/graph-layers/semantic.test.ts +0 -219
  1208. package/tests/memory/knowledge-bank-extraction.test.ts +0 -558
  1209. package/tests/memory/knowledge-bank.test.ts +0 -705
  1210. package/tests/memory/knowledge-defrag.test.ts +0 -366
  1211. package/tests/memory/knowledge-evolution.test.ts +0 -563
  1212. package/tests/memory/knowledge-graph.test.ts +0 -492
  1213. package/tests/memory/knowledge-inbox.test.ts +0 -258
  1214. package/tests/memory/knowledge-minimem.test.ts +0 -251
  1215. package/tests/memory/meta.test.ts +0 -399
  1216. package/tests/memory/playbook-quality-validation.test.ts +0 -430
  1217. package/tests/memory/playbook.test.ts +0 -644
  1218. package/tests/memory/provenance.test.ts +0 -648
  1219. package/tests/memory/reasoning-bank.test.ts +0 -239
  1220. package/tests/memory/reflexion.test.ts +0 -166
  1221. package/tests/memory/skill-exporter.test.ts +0 -475
  1222. package/tests/memory/source-resolver.test.ts +0 -700
  1223. package/tests/memory/system.test.ts +0 -330
  1224. package/tests/memory/team-experience.test.ts +0 -411
  1225. package/tests/memory/temporal-compressor.test.ts +0 -318
  1226. package/tests/persistence/migrator.test.ts +0 -1009
  1227. package/tests/persistence/sqlite-persistence.test.ts +0 -635
  1228. package/tests/runtime/agent-manager.test.ts +0 -517
  1229. package/tests/runtime/compute-provider.test.ts +0 -288
  1230. package/tests/runtime/delegate.test.ts +0 -354
  1231. package/tests/runtime/macro-agent-backend.test.ts +0 -266
  1232. package/tests/runtime/mock-backend.test.ts +0 -248
  1233. package/tests/search/evaluator.test.ts +0 -257
  1234. package/tests/search/moe-gate.test.ts +0 -250
  1235. package/tests/search/refinement-loop.test.ts +0 -477
  1236. package/tests/search/refinement.test.ts +0 -267
  1237. package/tests/search/router.test.ts +0 -506
  1238. package/tests/search/team-router.test.ts +0 -376
  1239. package/tests/search/verification-runner.test.ts +0 -357
  1240. package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +0 -12
  1241. package/tests/session-bank/fixtures/multi-tool-session/metadata.json +0 -28
  1242. package/tests/session-bank/fixtures/root-metadata.json +0 -18
  1243. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +0 -16
  1244. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +0 -6
  1245. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +0 -55
  1246. package/tests/session-bank/fixtures/simple-session/full.jsonl +0 -6
  1247. package/tests/session-bank/fixtures/simple-session/metadata.json +0 -38
  1248. package/tests/session-bank/git-reader.test.ts +0 -232
  1249. package/tests/session-bank/parser.test.ts +0 -453
  1250. package/tests/session-bank/session-bank.test.ts +0 -546
  1251. package/tests/surfacing/skill-library.test.ts +0 -297
  1252. package/tests/surfacing/skill-publisher.test.ts +0 -437
  1253. package/tests/surfacing/sqlite-storage-adapter.test.ts +0 -206
  1254. package/tests/surfacing/team-skill-library.test.ts +0 -444
  1255. package/tests/types/outcome.test.ts +0 -147
  1256. package/tests/types/step.test.ts +0 -133
  1257. package/tests/types/task.test.ts +0 -158
  1258. package/tests/types/team-meta.test.ts +0 -147
  1259. package/tests/types/team-playbook.test.ts +0 -246
  1260. package/tests/types/team-trajectory.test.ts +0 -557
  1261. package/tests/types/trajectory.test.ts +0 -253
  1262. package/tests/utils/error-classifier.test.ts +0 -149
  1263. package/tests/utils/frontmatter.test.ts +0 -208
  1264. package/tests/utils/partitioned-store.test.ts +0 -230
  1265. package/tests/utils/similarity.test.ts +0 -188
  1266. package/tests/utils/trajectory-helpers.test.ts +0 -163
  1267. package/tests/utils/validation.test.ts +0 -252
  1268. package/tests/workspace/efficacy-toolkit.test.ts +0 -404
  1269. package/tests/workspace/full-flow.test.ts +0 -845
  1270. package/tests/workspace/manager.test.ts +0 -215
  1271. package/tests/workspace/runner.test.ts +0 -336
  1272. package/tests/workspace/skill-converter.test.ts +0 -205
  1273. package/tests/workspace/templates/knowledge-extraction.test.ts +0 -235
  1274. package/tests/workspace/templates/playbook-efficacy.test.ts +0 -377
  1275. package/tests/workspace/templates/team-playbook-extraction.test.ts +0 -341
  1276. package/tests/workspace/templates/team-trajectory-analysis.test.ts +0 -417
  1277. package/tsconfig.json +0 -25
  1278. package/vitest.config.ts +0 -22
@@ -1,1009 +0,0 @@
1
- /**
2
- * Tests for JsonToSqliteMigrator — one-time migration from JSON files to SQLite.
3
- *
4
- * Creates real JSON file fixtures on disk to simulate the old storage layout,
5
- * then runs the migrator against them and verifies the data lands in SQLite.
6
- */
7
-
8
- import { describe, it, expect, beforeEach, afterEach } from 'vitest';
9
- import { mkdtempSync, rmSync, mkdirSync, writeFileSync, existsSync } from 'node:fs';
10
- import { join } from 'node:path';
11
- import { tmpdir } from 'node:os';
12
- import { SqlitePersistence, createSqlitePersistence } from '../../src/persistence/sqlite-persistence.js';
13
- import { JsonToSqliteMigrator, runMigration } from '../../src/persistence/migrator.js';
14
- import type { MigrationResult } from '../../src/persistence/migrator.js';
15
-
16
- // ============================================================================
17
- // JSON fixture helpers
18
- // ============================================================================
19
-
20
- /** Write a single JSON object to a file inside a collection directory. */
21
- function writeJsonFixture(baseDir: string, collection: string, filename: string, data: unknown): void {
22
- const dir = join(baseDir, collection);
23
- if (!existsSync(dir)) {
24
- mkdirSync(dir, { recursive: true });
25
- }
26
- writeFileSync(join(dir, filename), JSON.stringify(data), 'utf-8');
27
- }
28
-
29
- /** Write a JSON file into a partitioned subdirectory (collection/partition/filename). */
30
- function writePartitionedFixture(
31
- baseDir: string,
32
- collection: string,
33
- partition: string,
34
- filename: string,
35
- data: unknown,
36
- ): void {
37
- const dir = join(baseDir, collection, partition);
38
- if (!existsSync(dir)) {
39
- mkdirSync(dir, { recursive: true });
40
- }
41
- writeFileSync(join(dir, filename), JSON.stringify(data), 'utf-8');
42
- }
43
-
44
- // ============================================================================
45
- // Fixture data factories — raw JSON objects as they would be stored on disk
46
- // ============================================================================
47
-
48
- function makeExperienceJson(overrides: Record<string, unknown> = {}): Record<string, unknown> {
49
- return {
50
- id: 'exp-1',
51
- taskInput: 'Fix the login bug',
52
- solutionOutput: 'Updated auth middleware',
53
- feedback: 'Works well',
54
- success: true,
55
- domain: 'code',
56
- trajectoryId: 'traj-1',
57
- usageCount: 2,
58
- accessScore: 0.5,
59
- retrievalCount: 1,
60
- tier: 'hot',
61
- metadata: { tool: 'grep' },
62
- createdAt: '2024-01-15T00:00:00.000Z',
63
- lastAccessedAt: '2024-02-01T00:00:00.000Z',
64
- ...overrides,
65
- };
66
- }
67
-
68
- function makePlaybookJson(overrides: Record<string, unknown> = {}): Record<string, unknown> {
69
- return {
70
- id: 'pb-1',
71
- name: 'Error Handling Strategy',
72
- applicability: {
73
- situations: ['error handling'],
74
- triggers: ['try-catch needed'],
75
- antiPatterns: ['silent catch'],
76
- domains: ['code'],
77
- },
78
- guidance: {
79
- strategy: 'Use structured error handling',
80
- tactics: ['validate inputs', 'log errors'],
81
- },
82
- verification: {
83
- successIndicators: ['no unhandled errors'],
84
- failureIndicators: ['silent failures'],
85
- },
86
- evolution: {
87
- version: '1.0.0',
88
- createdFrom: ['traj-1'],
89
- failures: [],
90
- refinements: [],
91
- successCount: 3,
92
- failureCount: 1,
93
- lastUsed: '2024-03-01T00:00:00.000Z',
94
- },
95
- confidence: 0.75,
96
- complexity: 'moderate',
97
- estimatedEffort: 3,
98
- createdAt: '2024-01-01T00:00:00.000Z',
99
- updatedAt: '2024-01-02T00:00:00.000Z',
100
- ...overrides,
101
- };
102
- }
103
-
104
- function makeReflexionJson(overrides: Record<string, unknown> = {}): Record<string, unknown> {
105
- return {
106
- id: 'ref-1',
107
- trajectoryId: 'traj-1',
108
- taskSummary: 'Fixed auth bug',
109
- outcome: 'success',
110
- selfCritique: 'Could have been faster',
111
- keyInsights: ['check middleware first'],
112
- strategyAssessment: 'good approach',
113
- suggestedPlaybookUpdates: ['update error-handling playbook'],
114
- domain: 'code',
115
- createdAt: '2024-01-01T00:00:00.000Z',
116
- ...overrides,
117
- };
118
- }
119
-
120
- function makeMetaObservationJson(overrides: Record<string, unknown> = {}): Record<string, unknown> {
121
- return {
122
- id: 'obs-1',
123
- trajectoryId: 'traj-1',
124
- routing: { decision: 'adapt', confidence: 0.8, reasoning: 'similar past experience' },
125
- memoryUsage: { experiencesRetrieved: 3, playbooksApplied: ['pb-1'], retrievalQuality: 'helpful' },
126
- execution: { decompositionUsed: false, refinementIterations: 1, backtrackingOccurred: false, toolsUsed: ['grep'] },
127
- outcome: { success: true, quality: 'good', effortActual: 5, effortEstimate: 8 },
128
- lessons: { whatWorked: ['experience retrieval'], whatFailed: [], suggestions: [] },
129
- timestamp: '2024-01-01T00:00:00.000Z',
130
- ...overrides,
131
- };
132
- }
133
-
134
- function makeMetaStrategyJson(overrides: Record<string, unknown> = {}): Record<string, unknown> {
135
- return {
136
- id: 'strat-1',
137
- name: 'Experience-heavy retrieval',
138
- condition: { taskCharacteristics: ['familiar domain'], memoryState: ['many experiences'] },
139
- adjustment: {
140
- routingBias: { adapt: 0.2 },
141
- retrievalModification: 'expand query',
142
- executionHint: 'prefer decomposition',
143
- },
144
- applicationCount: 5,
145
- successRate: 0.8,
146
- createdAt: '2024-01-01T00:00:00.000Z',
147
- updatedAt: '2024-01-02T00:00:00.000Z',
148
- ...overrides,
149
- };
150
- }
151
-
152
- function makeCausalEdgeJson(overrides: Record<string, unknown> = {}): Record<string, unknown> {
153
- return {
154
- id: 'edge-1',
155
- cause: 'missing validation',
156
- effect: 'runtime error',
157
- confidence: 0.9,
158
- domain: 'code',
159
- sourceTrajectoryIds: ['traj-1', 'traj-2'],
160
- observedCount: 3,
161
- createdAt: '2024-01-01T00:00:00.000Z',
162
- updatedAt: '2024-01-02T00:00:00.000Z',
163
- ...overrides,
164
- };
165
- }
166
-
167
- // ============================================================================
168
- // Tests
169
- // ============================================================================
170
-
171
- describe('JsonToSqliteMigrator', () => {
172
- let persistence: SqlitePersistence;
173
- let tmpDir: string;
174
-
175
- beforeEach(async () => {
176
- tmpDir = mkdtempSync(join(tmpdir(), 'migrator-test-'));
177
- persistence = createSqlitePersistence({ baseDir: tmpDir });
178
- await persistence.init();
179
- });
180
-
181
- afterEach(() => {
182
- persistence.close();
183
- rmSync(tmpDir, { recursive: true, force: true });
184
- });
185
-
186
- // --------------------------------------------------------------------------
187
- // Experience migration
188
- // --------------------------------------------------------------------------
189
-
190
- describe('experience migration', () => {
191
- it('should migrate a single experience from a JSON file', async () => {
192
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
193
-
194
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
195
- const result = await migrator.migrate();
196
-
197
- expect(result.migrated).toBe(true);
198
- expect(result.counts.experiences).toBe(1);
199
-
200
- const row = persistence.getExperience('exp-1');
201
- expect(row).toBeDefined();
202
- expect(row!.task_input).toBe('Fix the login bug');
203
- expect(row!.solution_output).toBe('Updated auth middleware');
204
- expect(row!.success).toBe(1);
205
- expect(row!.domain).toBe('code');
206
- expect(row!.trajectory_id).toBe('traj-1');
207
- expect(row!.usage_count).toBe(2);
208
- expect(row!.tier).toBe('hot');
209
- });
210
-
211
- it('should migrate multiple experiences', async () => {
212
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson({ id: 'exp-1' }));
213
- writeJsonFixture(tmpDir, 'experiences', 'exp-2.json', makeExperienceJson({ id: 'exp-2', domain: 'data' }));
214
- writeJsonFixture(tmpDir, 'experiences', 'exp-3.json', makeExperienceJson({ id: 'exp-3', success: false }));
215
-
216
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
217
- const result = await migrator.migrate();
218
-
219
- expect(result.counts.experiences).toBe(3);
220
- expect(persistence.getExperienceCount()).toBe(3);
221
- });
222
-
223
- it('should migrate experiences from partitioned subdirectories', async () => {
224
- writePartitionedFixture(tmpDir, 'experiences', 'code', 'exp-1.json', makeExperienceJson({ id: 'exp-1' }));
225
- writePartitionedFixture(tmpDir, 'experiences', 'data', 'exp-2.json', makeExperienceJson({ id: 'exp-2', domain: 'data' }));
226
-
227
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
228
- const result = await migrator.migrate();
229
-
230
- expect(result.counts.experiences).toBe(2);
231
- expect(persistence.getExperience('exp-1')).toBeDefined();
232
- expect(persistence.getExperience('exp-2')).toBeDefined();
233
- });
234
-
235
- it('should handle experiences with missing optional fields', async () => {
236
- // Minimal experience — no embedding, no lastAccessedAt, no compressed, no metadata
237
- const minimal = {
238
- id: 'exp-min',
239
- taskInput: 'task',
240
- solutionOutput: 'solution',
241
- feedback: 'ok',
242
- success: true,
243
- domain: 'general',
244
- trajectoryId: 'traj-99',
245
- createdAt: '2024-06-01T00:00:00.000Z',
246
- };
247
- writeJsonFixture(tmpDir, 'experiences', 'exp-min.json', minimal);
248
-
249
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
250
- const result = await migrator.migrate();
251
-
252
- expect(result.counts.experiences).toBe(1);
253
- const row = persistence.getExperience('exp-min');
254
- expect(row).toBeDefined();
255
- expect(row!.usage_count).toBe(0);
256
- expect(row!.access_score).toBe(0);
257
- expect(row!.tier).toBe('hot');
258
- });
259
-
260
- it('should handle experiences with embeddings', async () => {
261
- const embedding = [0.1, 0.2, 0.3];
262
- writeJsonFixture(tmpDir, 'experiences', 'exp-emb.json', makeExperienceJson({ id: 'exp-emb', embedding }));
263
-
264
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
265
- await migrator.migrate();
266
-
267
- const row = persistence.getExperience('exp-emb');
268
- expect(row).toBeDefined();
269
- expect(row!.embedding).toBeDefined();
270
- expect(row!.embedding).toBeInstanceOf(Buffer);
271
- });
272
- });
273
-
274
- // --------------------------------------------------------------------------
275
- // Playbook migration
276
- // --------------------------------------------------------------------------
277
-
278
- describe('playbook migration', () => {
279
- it('should migrate a single playbook from a JSON file', async () => {
280
- writeJsonFixture(tmpDir, 'playbooks', 'pb-1.json', makePlaybookJson());
281
-
282
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
283
- const result = await migrator.migrate();
284
-
285
- expect(result.migrated).toBe(true);
286
- expect(result.counts.playbooks).toBe(1);
287
-
288
- const row = persistence.getPlaybook('pb-1');
289
- expect(row).toBeDefined();
290
- expect(row!.name).toBe('Error Handling Strategy');
291
- expect(row!.confidence).toBe(0.75);
292
- expect(row!.complexity).toBe('moderate');
293
- expect(row!.primary_domain).toBe('code');
294
- expect(row!.success_count).toBe(3);
295
- expect(row!.failure_count).toBe(1);
296
- expect(row!.version).toBe('1.0.0');
297
- });
298
-
299
- it('should migrate multiple playbooks', async () => {
300
- writeJsonFixture(tmpDir, 'playbooks', 'pb-1.json', makePlaybookJson({ id: 'pb-1' }));
301
- writeJsonFixture(tmpDir, 'playbooks', 'pb-2.json', makePlaybookJson({ id: 'pb-2', name: 'Another' }));
302
-
303
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
304
- const result = await migrator.migrate();
305
-
306
- expect(result.counts.playbooks).toBe(2);
307
- expect(persistence.getPlaybookCount()).toBe(2);
308
- });
309
-
310
- it('should preserve playbook JSON sub-fields', async () => {
311
- writeJsonFixture(tmpDir, 'playbooks', 'pb-1.json', makePlaybookJson());
312
-
313
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
314
- await migrator.migrate();
315
-
316
- const row = persistence.getPlaybook('pb-1');
317
- const applicability = JSON.parse(row!.applicability);
318
- expect(applicability.situations).toContain('error handling');
319
- expect(applicability.domains).toContain('code');
320
-
321
- const guidance = JSON.parse(row!.guidance);
322
- expect(guidance.strategy).toBe('Use structured error handling');
323
- expect(guidance.tactics).toEqual(['validate inputs', 'log errors']);
324
- });
325
-
326
- it('should handle playbooks with provenance', async () => {
327
- const withProvenance = makePlaybookJson({
328
- id: 'pb-prov',
329
- provenance: {
330
- origin: 'curated',
331
- sourceFile: 'playbooks/test.json',
332
- recordedAt: '2024-05-01T00:00:00.000Z',
333
- },
334
- });
335
- writeJsonFixture(tmpDir, 'playbooks', 'pb-prov.json', withProvenance);
336
-
337
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
338
- await migrator.migrate();
339
-
340
- const row = persistence.getPlaybook('pb-prov');
341
- expect(row).toBeDefined();
342
- expect(row!.origin).toBe('curated');
343
- expect(row!.provenance).toBeDefined();
344
- const provenance = JSON.parse(row!.provenance!);
345
- expect(provenance.origin).toBe('curated');
346
- expect(provenance.sourceFile).toBe('playbooks/test.json');
347
- });
348
-
349
- it('should handle playbooks with missing optional evolution fields', async () => {
350
- const minimal = makePlaybookJson({
351
- id: 'pb-min',
352
- evolution: {},
353
- });
354
- writeJsonFixture(tmpDir, 'playbooks', 'pb-min.json', minimal);
355
-
356
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
357
- await migrator.migrate();
358
-
359
- const row = persistence.getPlaybook('pb-min');
360
- expect(row).toBeDefined();
361
- expect(row!.version).toBe('1.0.0');
362
- expect(row!.success_count).toBe(0);
363
- expect(row!.failure_count).toBe(0);
364
- });
365
-
366
- it('should migrate playbooks from partitioned subdirectories', async () => {
367
- writePartitionedFixture(tmpDir, 'playbooks', 'code', 'pb-1.json', makePlaybookJson({ id: 'pb-1' }));
368
- writePartitionedFixture(tmpDir, 'playbooks', 'data', 'pb-2.json', makePlaybookJson({ id: 'pb-2' }));
369
-
370
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
371
- const result = await migrator.migrate();
372
-
373
- expect(result.counts.playbooks).toBe(2);
374
- });
375
- });
376
-
377
- // --------------------------------------------------------------------------
378
- // Reflexion episode migration
379
- // --------------------------------------------------------------------------
380
-
381
- describe('reflexion episode migration', () => {
382
- it('should migrate a reflexion episode from a JSON file', async () => {
383
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-1.json', makeReflexionJson());
384
-
385
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
386
- const result = await migrator.migrate();
387
-
388
- expect(result.migrated).toBe(true);
389
- expect(result.counts.reflexionEpisodes).toBe(1);
390
-
391
- const row = persistence.getReflexionEpisode('ref-1');
392
- expect(row).toBeDefined();
393
- expect(row!.outcome).toBe('success');
394
- expect(row!.domain).toBe('code');
395
- expect(row!.task_summary).toBe('Fixed auth bug');
396
- expect(row!.self_critique).toBe('Could have been faster');
397
- });
398
-
399
- it('should migrate multiple reflexion episodes', async () => {
400
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-1.json', makeReflexionJson({ id: 'ref-1' }));
401
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-2.json', makeReflexionJson({ id: 'ref-2', outcome: 'failure' }));
402
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-3.json', makeReflexionJson({ id: 'ref-3', outcome: 'partial' }));
403
-
404
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
405
- const result = await migrator.migrate();
406
-
407
- expect(result.counts.reflexionEpisodes).toBe(3);
408
- });
409
-
410
- it('should preserve key insights and suggested updates as JSON arrays', async () => {
411
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-1.json', makeReflexionJson());
412
-
413
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
414
- await migrator.migrate();
415
-
416
- const row = persistence.getReflexionEpisode('ref-1');
417
- const keyInsights = JSON.parse(row!.key_insights);
418
- expect(keyInsights).toEqual(['check middleware first']);
419
-
420
- const suggestedUpdates = JSON.parse(row!.suggested_playbook_updates);
421
- expect(suggestedUpdates).toEqual(['update error-handling playbook']);
422
- });
423
-
424
- it('should handle reflexion episodes with missing optional arrays', async () => {
425
- const minimal = {
426
- id: 'ref-min',
427
- trajectoryId: 'traj-99',
428
- taskSummary: 'Did a thing',
429
- outcome: 'success',
430
- selfCritique: 'ok',
431
- strategyAssessment: 'fine',
432
- domain: 'general',
433
- createdAt: '2024-06-01T00:00:00.000Z',
434
- };
435
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-min.json', minimal);
436
-
437
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
438
- const result = await migrator.migrate();
439
-
440
- expect(result.counts.reflexionEpisodes).toBe(1);
441
- const row = persistence.getReflexionEpisode('ref-min');
442
- expect(row).toBeDefined();
443
- const keyInsights = JSON.parse(row!.key_insights);
444
- expect(keyInsights).toEqual([]);
445
- });
446
- });
447
-
448
- // --------------------------------------------------------------------------
449
- // Meta observation migration
450
- // --------------------------------------------------------------------------
451
-
452
- describe('meta observation migration', () => {
453
- it('should migrate a meta observation from a JSON file', async () => {
454
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-1.json', makeMetaObservationJson());
455
-
456
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
457
- const result = await migrator.migrate();
458
-
459
- expect(result.migrated).toBe(true);
460
- expect(result.counts.metaObservations).toBe(1);
461
-
462
- const row = persistence.getMetaObservation('obs-1');
463
- expect(row).toBeDefined();
464
- expect(row!.routing_decision).toBe('adapt');
465
- expect(row!.outcome_success).toBe(1);
466
- expect(row!.trajectory_id).toBe('traj-1');
467
- });
468
-
469
- it('should migrate multiple meta observations', async () => {
470
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-1.json', makeMetaObservationJson({ id: 'obs-1' }));
471
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-2.json', makeMetaObservationJson({
472
- id: 'obs-2',
473
- routing: { decision: 'direct', confidence: 0.5, reasoning: 'test' },
474
- }));
475
-
476
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
477
- const result = await migrator.migrate();
478
-
479
- expect(result.counts.metaObservations).toBe(2);
480
- });
481
-
482
- it('should preserve routing and outcome JSON sub-objects', async () => {
483
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-1.json', makeMetaObservationJson());
484
-
485
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
486
- await migrator.migrate();
487
-
488
- const row = persistence.getMetaObservation('obs-1');
489
- const routing = JSON.parse(row!.routing);
490
- expect(routing.decision).toBe('adapt');
491
- expect(routing.confidence).toBe(0.8);
492
-
493
- const outcome = JSON.parse(row!.outcome);
494
- expect(outcome.success).toBe(true);
495
- expect(outcome.quality).toBe('good');
496
- });
497
-
498
- it('should handle meta observations with missing optional fields', async () => {
499
- const minimal = {
500
- id: 'obs-min',
501
- trajectoryId: 'traj-99',
502
- routing: { decision: 'fallback', confidence: 0.3, reasoning: 'no data' },
503
- outcome: { success: false, quality: 'poor', effortActual: 10, effortEstimate: 2 },
504
- timestamp: '2024-06-01T00:00:00.000Z',
505
- };
506
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-min.json', minimal);
507
-
508
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
509
- const result = await migrator.migrate();
510
-
511
- expect(result.counts.metaObservations).toBe(1);
512
- const row = persistence.getMetaObservation('obs-min');
513
- expect(row).toBeDefined();
514
- expect(row!.routing_decision).toBe('fallback');
515
- expect(row!.outcome_success).toBe(0);
516
- });
517
- });
518
-
519
- // --------------------------------------------------------------------------
520
- // Meta strategy migration
521
- // --------------------------------------------------------------------------
522
-
523
- describe('meta strategy migration', () => {
524
- it('should migrate a meta strategy from a JSON file', async () => {
525
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-1.json', makeMetaStrategyJson());
526
-
527
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
528
- const result = await migrator.migrate();
529
-
530
- expect(result.migrated).toBe(true);
531
- expect(result.counts.metaStrategies).toBe(1);
532
-
533
- const row = persistence.getMetaStrategy('strat-1');
534
- expect(row).toBeDefined();
535
- expect(row!.name).toBe('Experience-heavy retrieval');
536
- expect(row!.application_count).toBe(5);
537
- expect(row!.success_rate).toBe(0.8);
538
- });
539
-
540
- it('should migrate multiple meta strategies', async () => {
541
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-1.json', makeMetaStrategyJson({ id: 'strat-1', name: 'Strategy A' }));
542
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-2.json', makeMetaStrategyJson({ id: 'strat-2', name: 'Strategy B' }));
543
-
544
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
545
- const result = await migrator.migrate();
546
-
547
- expect(result.counts.metaStrategies).toBe(2);
548
- });
549
-
550
- it('should preserve condition and adjustment JSON sub-objects', async () => {
551
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-1.json', makeMetaStrategyJson());
552
-
553
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
554
- await migrator.migrate();
555
-
556
- const row = persistence.getMetaStrategy('strat-1');
557
- const condition = JSON.parse(row!.condition);
558
- expect(condition.taskCharacteristics).toContain('familiar domain');
559
-
560
- const adjustment = JSON.parse(row!.adjustment);
561
- expect(adjustment.routingBias.adapt).toBe(0.2);
562
- expect(adjustment.executionHint).toBe('prefer decomposition');
563
- });
564
-
565
- it('should handle meta strategies with missing optional fields', async () => {
566
- const minimal = {
567
- id: 'strat-min',
568
- name: 'Minimal Strategy',
569
- condition: { taskCharacteristics: [], memoryState: [] },
570
- adjustment: { routingBias: {}, retrievalModification: '', executionHint: '' },
571
- createdAt: '2024-06-01T00:00:00.000Z',
572
- updatedAt: '2024-06-01T00:00:00.000Z',
573
- };
574
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-min.json', minimal);
575
-
576
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
577
- const result = await migrator.migrate();
578
-
579
- expect(result.counts.metaStrategies).toBe(1);
580
- const row = persistence.getMetaStrategy('strat-min');
581
- expect(row).toBeDefined();
582
- expect(row!.application_count).toBe(0);
583
- expect(row!.success_rate).toBe(0);
584
- });
585
- });
586
-
587
- // --------------------------------------------------------------------------
588
- // Causal edge migration
589
- // --------------------------------------------------------------------------
590
-
591
- describe('causal edge migration', () => {
592
- it('should migrate a causal edge from a JSON file', async () => {
593
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-1.json', makeCausalEdgeJson());
594
-
595
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
596
- const result = await migrator.migrate();
597
-
598
- expect(result.migrated).toBe(true);
599
- expect(result.counts.causalEdges).toBe(1);
600
-
601
- const row = persistence.getCausalEdge('edge-1');
602
- expect(row).toBeDefined();
603
- expect(row!.cause).toBe('missing validation');
604
- expect(row!.effect).toBe('runtime error');
605
- expect(row!.confidence).toBe(0.9);
606
- expect(row!.domain).toBe('code');
607
- expect(row!.observed_count).toBe(3);
608
- expect(JSON.parse(row!.source_trajectory_ids)).toEqual(['traj-1', 'traj-2']);
609
- });
610
-
611
- it('should migrate multiple causal edges', async () => {
612
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-1.json', makeCausalEdgeJson({ id: 'edge-1' }));
613
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-2.json', makeCausalEdgeJson({ id: 'edge-2', cause: 'wrong API call', effect: '404 error' }));
614
-
615
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
616
- const result = await migrator.migrate();
617
-
618
- expect(result.counts.causalEdges).toBe(2);
619
- });
620
-
621
- it('should handle causal edges with missing optional fields', async () => {
622
- const minimal = {
623
- id: 'edge-min',
624
- cause: 'X',
625
- effect: 'Y',
626
- confidence: 0.5,
627
- domain: 'general',
628
- createdAt: '2024-06-01T00:00:00.000Z',
629
- updatedAt: '2024-06-01T00:00:00.000Z',
630
- };
631
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-min.json', minimal);
632
-
633
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
634
- const result = await migrator.migrate();
635
-
636
- expect(result.counts.causalEdges).toBe(1);
637
- const row = persistence.getCausalEdge('edge-min');
638
- expect(row).toBeDefined();
639
- expect(row!.observed_count).toBe(1);
640
- expect(JSON.parse(row!.source_trajectory_ids)).toEqual([]);
641
- });
642
- });
643
-
644
- // --------------------------------------------------------------------------
645
- // Schema version tracking
646
- // --------------------------------------------------------------------------
647
-
648
- describe('schema version tracking', () => {
649
- it('should set schema version to 1 after migration', async () => {
650
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
651
-
652
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
653
- await migrator.migrate();
654
-
655
- expect(persistence.getSchemaVersion()).toBe(1);
656
- });
657
-
658
- it('should set schema version to 1 even when no data exists', async () => {
659
- // No JSON fixture files at all — all counts should be 0
660
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
661
- const result = await migrator.migrate();
662
-
663
- expect(result.migrated).toBe(true);
664
- expect(result.counts.experiences).toBe(0);
665
- expect(result.counts.playbooks).toBe(0);
666
- expect(result.counts.reflexionEpisodes).toBe(0);
667
- expect(result.counts.causalEdges).toBe(0);
668
- expect(result.counts.metaObservations).toBe(0);
669
- expect(result.counts.metaStrategies).toBe(0);
670
- expect(persistence.getSchemaVersion()).toBe(1);
671
- });
672
-
673
- it('should not run migration when schema version is already >= 1', async () => {
674
- persistence.setSchemaVersion(1);
675
-
676
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
677
-
678
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
679
- const result = await migrator.migrate();
680
-
681
- expect(result.migrated).toBe(false);
682
- expect(result.counts).toEqual({});
683
- expect(persistence.getExperienceCount()).toBe(0); // Nothing was migrated
684
- });
685
-
686
- it('should not run migration when schema version is higher than 1', async () => {
687
- persistence.setSchemaVersion(5);
688
-
689
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
690
-
691
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
692
- const result = await migrator.migrate();
693
-
694
- expect(result.migrated).toBe(false);
695
- expect(result.counts).toEqual({});
696
- });
697
- });
698
-
699
- // --------------------------------------------------------------------------
700
- // Idempotency
701
- // --------------------------------------------------------------------------
702
-
703
- describe('idempotency', () => {
704
- it('should not duplicate data when migration runs twice', async () => {
705
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
706
- writeJsonFixture(tmpDir, 'playbooks', 'pb-1.json', makePlaybookJson());
707
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-1.json', makeReflexionJson());
708
-
709
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
710
-
711
- const result1 = await migrator.migrate();
712
- expect(result1.migrated).toBe(true);
713
- expect(result1.counts.experiences).toBe(1);
714
-
715
- // Second run — version is now 1, so migration should be skipped
716
- const result2 = await migrator.migrate();
717
- expect(result2.migrated).toBe(false);
718
- expect(result2.counts).toEqual({});
719
-
720
- // Data should not be duplicated
721
- expect(persistence.getExperienceCount()).toBe(1);
722
- expect(persistence.getPlaybookCount()).toBe(1);
723
- });
724
-
725
- it('should be idempotent via the runMigration helper', async () => {
726
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
727
-
728
- const result1 = await runMigration(persistence, tmpDir);
729
- expect(result1.migrated).toBe(true);
730
-
731
- const result2 = await runMigration(persistence, tmpDir);
732
- expect(result2.migrated).toBe(false);
733
-
734
- expect(persistence.getExperienceCount()).toBe(1);
735
- });
736
- });
737
-
738
- // --------------------------------------------------------------------------
739
- // Empty/missing directories
740
- // --------------------------------------------------------------------------
741
-
742
- describe('empty and missing directories', () => {
743
- it('should handle completely missing collection directories gracefully', async () => {
744
- // tmpDir exists but has no collection subdirectories
745
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
746
- const result = await migrator.migrate();
747
-
748
- expect(result.migrated).toBe(true);
749
- expect(result.counts.experiences).toBe(0);
750
- expect(result.counts.playbooks).toBe(0);
751
- expect(result.counts.reflexionEpisodes).toBe(0);
752
- expect(result.counts.causalEdges).toBe(0);
753
- expect(result.counts.metaObservations).toBe(0);
754
- expect(result.counts.metaStrategies).toBe(0);
755
- });
756
-
757
- it('should handle empty collection directories', async () => {
758
- // Create empty directories
759
- mkdirSync(join(tmpDir, 'experiences'), { recursive: true });
760
- mkdirSync(join(tmpDir, 'playbooks'), { recursive: true });
761
- mkdirSync(join(tmpDir, 'reflexion-episodes'), { recursive: true });
762
-
763
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
764
- const result = await migrator.migrate();
765
-
766
- expect(result.migrated).toBe(true);
767
- expect(result.counts.experiences).toBe(0);
768
- expect(result.counts.playbooks).toBe(0);
769
- expect(result.counts.reflexionEpisodes).toBe(0);
770
- });
771
-
772
- it('should handle a non-existent base directory', async () => {
773
- const nonExistent = join(tmpDir, 'does-not-exist');
774
-
775
- const migrator = new JsonToSqliteMigrator(persistence, nonExistent);
776
- const result = await migrator.migrate();
777
-
778
- expect(result.migrated).toBe(true);
779
- expect(result.counts.experiences).toBe(0);
780
- });
781
-
782
- it('should skip directories that contain only _index.json or _global metadata files', async () => {
783
- const dir = join(tmpDir, 'experiences');
784
- mkdirSync(dir, { recursive: true });
785
- writeFileSync(join(dir, '_index.json'), JSON.stringify({}), 'utf-8');
786
- writeFileSync(join(dir, '_global.json'), JSON.stringify({}), 'utf-8');
787
-
788
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
789
- const result = await migrator.migrate();
790
-
791
- // Files starting with _ are skipped by collectJsonFiles
792
- expect(result.counts.experiences).toBe(0);
793
- });
794
-
795
- it('should skip malformed JSON files without crashing', async () => {
796
- const dir = join(tmpDir, 'experiences');
797
- mkdirSync(dir, { recursive: true });
798
- writeFileSync(join(dir, 'bad.json'), 'this is not valid json{{{', 'utf-8');
799
- writeJsonFixture(tmpDir, 'experiences', 'exp-good.json', makeExperienceJson({ id: 'exp-good' }));
800
-
801
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
802
- const result = await migrator.migrate();
803
-
804
- // The good file should still be migrated; the bad one is silently skipped
805
- expect(result.counts.experiences).toBe(1);
806
- expect(persistence.getExperience('exp-good')).toBeDefined();
807
- });
808
-
809
- it('should skip non-JSON files in the directory', async () => {
810
- const dir = join(tmpDir, 'experiences');
811
- mkdirSync(dir, { recursive: true });
812
- writeFileSync(join(dir, 'readme.txt'), 'not a json file', 'utf-8');
813
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
814
-
815
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
816
- const result = await migrator.migrate();
817
-
818
- expect(result.counts.experiences).toBe(1);
819
- });
820
- });
821
-
822
- // --------------------------------------------------------------------------
823
- // Backup directory renaming (.migrated/ suffix)
824
- // --------------------------------------------------------------------------
825
-
826
- describe('backup directory renaming', () => {
827
- it('should rename the collection directory to .migrated after successful migration', async () => {
828
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
829
-
830
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
831
- await migrator.migrate();
832
-
833
- expect(existsSync(join(tmpDir, 'experiences'))).toBe(false);
834
- expect(existsSync(join(tmpDir, 'experiences.migrated'))).toBe(true);
835
- });
836
-
837
- it('should rename all collection directories that had data', async () => {
838
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
839
- writeJsonFixture(tmpDir, 'playbooks', 'pb-1.json', makePlaybookJson());
840
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-1.json', makeReflexionJson());
841
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-1.json', makeCausalEdgeJson());
842
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-1.json', makeMetaObservationJson());
843
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-1.json', makeMetaStrategyJson());
844
-
845
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
846
- await migrator.migrate();
847
-
848
- expect(existsSync(join(tmpDir, 'experiences.migrated'))).toBe(true);
849
- expect(existsSync(join(tmpDir, 'playbooks.migrated'))).toBe(true);
850
- expect(existsSync(join(tmpDir, 'reflexion-episodes.migrated'))).toBe(true);
851
- expect(existsSync(join(tmpDir, 'causal-edges.migrated'))).toBe(true);
852
- expect(existsSync(join(tmpDir, 'meta-observations.migrated'))).toBe(true);
853
- expect(existsSync(join(tmpDir, 'meta-strategies.migrated'))).toBe(true);
854
- });
855
-
856
- it('should not rename directories that had no JSON files', async () => {
857
- // Create empty directory
858
- mkdirSync(join(tmpDir, 'experiences'), { recursive: true });
859
-
860
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
861
- await migrator.migrate();
862
-
863
- // Empty dir — collectJsonFiles returns [], migrateCollection returns 0 early
864
- // The rename only happens after successful inserts, not for empty dirs
865
- expect(existsSync(join(tmpDir, 'experiences'))).toBe(true);
866
- expect(existsSync(join(tmpDir, 'experiences.migrated'))).toBe(false);
867
- });
868
-
869
- it('should not fail if the .migrated backup directory already exists', async () => {
870
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
871
-
872
- // Pre-create the .migrated directory
873
- mkdirSync(join(tmpDir, 'experiences.migrated'), { recursive: true });
874
-
875
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
876
- const result = await migrator.migrate();
877
-
878
- // Migration should still succeed — the rename is skipped if backup already exists
879
- expect(result.migrated).toBe(true);
880
- expect(result.counts.experiences).toBe(1);
881
-
882
- // The original directory should still exist since renaming was skipped
883
- expect(existsSync(join(tmpDir, 'experiences'))).toBe(true);
884
- });
885
-
886
- it('should not rename directories that do not exist', async () => {
887
- // No fixture directories created at all
888
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
889
- await migrator.migrate();
890
-
891
- // No .migrated directories should be created
892
- expect(existsSync(join(tmpDir, 'experiences.migrated'))).toBe(false);
893
- expect(existsSync(join(tmpDir, 'playbooks.migrated'))).toBe(false);
894
- });
895
- });
896
-
897
- // --------------------------------------------------------------------------
898
- // Full end-to-end migration (all collections at once)
899
- // --------------------------------------------------------------------------
900
-
901
- describe('full migration across all collections', () => {
902
- it('should migrate all collection types in a single run', async () => {
903
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson({ id: 'exp-1' }));
904
- writeJsonFixture(tmpDir, 'experiences', 'exp-2.json', makeExperienceJson({ id: 'exp-2' }));
905
- writeJsonFixture(tmpDir, 'playbooks', 'pb-1.json', makePlaybookJson({ id: 'pb-1' }));
906
- writeJsonFixture(tmpDir, 'reflexion-episodes', 'ref-1.json', makeReflexionJson({ id: 'ref-1' }));
907
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-1.json', makeCausalEdgeJson({ id: 'edge-1' }));
908
- writeJsonFixture(tmpDir, 'meta-observations', 'obs-1.json', makeMetaObservationJson({ id: 'obs-1' }));
909
- writeJsonFixture(tmpDir, 'meta-strategies', 'strat-1.json', makeMetaStrategyJson({ id: 'strat-1' }));
910
-
911
- const result = await runMigration(persistence, tmpDir);
912
-
913
- expect(result.migrated).toBe(true);
914
- expect(result.counts).toEqual({
915
- experiences: 2,
916
- playbooks: 1,
917
- reflexionEpisodes: 1,
918
- causalEdges: 1,
919
- metaObservations: 1,
920
- metaStrategies: 1,
921
- });
922
-
923
- expect(persistence.getExperienceCount()).toBe(2);
924
- expect(persistence.getPlaybookCount()).toBe(1);
925
- expect(persistence.getSchemaVersion()).toBe(1);
926
- });
927
-
928
- it('should handle a mix of flat and partitioned files across collections', async () => {
929
- // Flat files
930
- writeJsonFixture(tmpDir, 'experiences', 'exp-flat.json', makeExperienceJson({ id: 'exp-flat' }));
931
- // Partitioned files
932
- writePartitionedFixture(tmpDir, 'experiences', 'code', 'exp-part.json', makeExperienceJson({ id: 'exp-part' }));
933
- // Another collection flat
934
- writeJsonFixture(tmpDir, 'causal-edges', 'edge-1.json', makeCausalEdgeJson({ id: 'edge-1' }));
935
-
936
- const result = await runMigration(persistence, tmpDir);
937
-
938
- expect(result.migrated).toBe(true);
939
- expect(result.counts.experiences).toBe(2);
940
- expect(result.counts.causalEdges).toBe(1);
941
- });
942
- });
943
-
944
- // --------------------------------------------------------------------------
945
- // runMigration helper
946
- // --------------------------------------------------------------------------
947
-
948
- describe('runMigration helper', () => {
949
- it('should create a migrator and run migration', async () => {
950
- writeJsonFixture(tmpDir, 'experiences', 'exp-1.json', makeExperienceJson());
951
-
952
- const result = await runMigration(persistence, tmpDir);
953
-
954
- expect(result.migrated).toBe(true);
955
- expect(result.counts.experiences).toBe(1);
956
- expect(persistence.getSchemaVersion()).toBe(1);
957
- });
958
- });
959
-
960
- // --------------------------------------------------------------------------
961
- // Batch size behavior (the migrator uses BATCH_SIZE = 100)
962
- // --------------------------------------------------------------------------
963
-
964
- describe('batch processing', () => {
965
- it('should migrate more than 100 items correctly (exercises batch boundary)', async () => {
966
- // Create 150 experience files to cross the BATCH_SIZE (100) boundary
967
- for (let i = 0; i < 150; i++) {
968
- writeJsonFixture(
969
- tmpDir,
970
- 'experiences',
971
- `exp-${i}.json`,
972
- makeExperienceJson({ id: `exp-${i}` }),
973
- );
974
- }
975
-
976
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
977
- const result = await migrator.migrate();
978
-
979
- expect(result.counts.experiences).toBe(150);
980
- expect(persistence.getExperienceCount()).toBe(150);
981
- });
982
- });
983
-
984
- // --------------------------------------------------------------------------
985
- // Edge cases: insert failures for individual items
986
- // --------------------------------------------------------------------------
987
-
988
- describe('individual item insert failures', () => {
989
- it('should skip items that fail to insert and continue with the rest', async () => {
990
- // Write a valid experience and one with an id that would cause issues
991
- writeJsonFixture(tmpDir, 'experiences', 'exp-good.json', makeExperienceJson({ id: 'exp-good' }));
992
- // Write a file with data that will parse but is missing required fields
993
- // (the inserter catches and skips insert errors)
994
- writeJsonFixture(tmpDir, 'experiences', 'exp-bad.json', {
995
- // Missing required fields like taskInput, solutionOutput, etc.
996
- id: null,
997
- });
998
-
999
- const migrator = new JsonToSqliteMigrator(persistence, tmpDir);
1000
- const result = await migrator.migrate();
1001
-
1002
- // At least the good one should succeed; the bad one's count depends on
1003
- // whether the coercion helper throws or produces something insertable.
1004
- // The migrator catches insert errors, so overall migration succeeds.
1005
- expect(result.migrated).toBe(true);
1006
- expect(persistence.getExperience('exp-good')).toBeDefined();
1007
- });
1008
- });
1009
- });