cognitive-core 0.2.5 → 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 (1279) 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 +116 -0
  536. package/dist/learning/pipeline.d.ts.map +1 -0
  537. package/dist/learning/pipeline.js +288 -0
  538. package/dist/learning/pipeline.js.map +1 -0
  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 +6 -4
  827. package/dist/surfacing/skill-publisher.d.ts.map +1 -1
  828. package/dist/surfacing/skill-publisher.js +32 -30
  829. package/dist/surfacing/skill-publisher.js.map +1 -1
  830. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -1
  831. package/dist/surfacing/sqlite-storage-adapter.js +12 -8
  832. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -1
  833. package/dist/types/analysis.d.ts +43 -0
  834. package/dist/types/analysis.d.ts.map +1 -0
  835. package/dist/types/analysis.js +10 -0
  836. package/dist/types/analysis.js.map +1 -0
  837. package/dist/types/config.d.ts +2178 -425
  838. package/dist/types/config.d.ts.map +1 -1
  839. package/dist/types/config.js +600 -88
  840. package/dist/types/config.js.map +1 -1
  841. package/dist/types/dataclaw.d.ts +3 -3
  842. package/dist/types/index.d.ts +4 -7
  843. package/dist/types/index.d.ts.map +1 -1
  844. package/dist/types/index.js +2 -10
  845. package/dist/types/index.js.map +1 -1
  846. package/dist/types/knowledge-graph.d.ts +1 -1
  847. package/dist/types/knowledge-graph.d.ts.map +1 -1
  848. package/dist/types/knowledge.d.ts +219 -11
  849. package/dist/types/knowledge.d.ts.map +1 -1
  850. package/dist/types/knowledge.js +90 -30
  851. package/dist/types/knowledge.js.map +1 -1
  852. package/dist/types/memory.d.ts +8 -0
  853. package/dist/types/memory.d.ts.map +1 -1
  854. package/dist/types/memory.js +12 -4
  855. package/dist/types/memory.js.map +1 -1
  856. package/dist/types/outcome.d.ts +11 -0
  857. package/dist/types/outcome.d.ts.map +1 -1
  858. package/dist/types/outcome.js +9 -0
  859. package/dist/types/outcome.js.map +1 -1
  860. package/dist/types/playbook.d.ts +63 -0
  861. package/dist/types/playbook.d.ts.map +1 -1
  862. package/dist/types/playbook.js +51 -0
  863. package/dist/types/playbook.js.map +1 -1
  864. package/dist/types/trajectory-source.d.ts +1 -1
  865. package/dist/types/trajectory-source.d.ts.map +1 -1
  866. package/dist/types/trajectory.d.ts +61 -0
  867. package/dist/types/trajectory.d.ts.map +1 -1
  868. package/dist/types/trajectory.js +25 -0
  869. package/dist/types/trajectory.js.map +1 -1
  870. package/dist/utils/clock.d.ts +36 -0
  871. package/dist/utils/clock.d.ts.map +1 -0
  872. package/dist/utils/clock.js +48 -0
  873. package/dist/utils/clock.js.map +1 -0
  874. package/dist/utils/frontmatter.d.ts.map +1 -1
  875. package/dist/utils/frontmatter.js +10 -2
  876. package/dist/utils/frontmatter.js.map +1 -1
  877. package/dist/utils/index.d.ts +4 -1
  878. package/dist/utils/index.d.ts.map +1 -1
  879. package/dist/utils/index.js +4 -1
  880. package/dist/utils/index.js.map +1 -1
  881. package/dist/utils/logger.d.ts +31 -0
  882. package/dist/utils/logger.d.ts.map +1 -0
  883. package/dist/utils/logger.js +50 -0
  884. package/dist/utils/logger.js.map +1 -0
  885. package/dist/utils/objectives.d.ts +45 -0
  886. package/dist/utils/objectives.d.ts.map +1 -0
  887. package/dist/utils/objectives.js +74 -0
  888. package/dist/utils/objectives.js.map +1 -0
  889. package/dist/utils/partitioned-store.d.ts.map +1 -1
  890. package/dist/utils/partitioned-store.js.map +1 -1
  891. package/dist/utils/playbook-hash.d.ts +19 -0
  892. package/dist/utils/playbook-hash.d.ts.map +1 -0
  893. package/dist/utils/playbook-hash.js +51 -0
  894. package/dist/utils/playbook-hash.js.map +1 -0
  895. package/dist/utils/similarity.d.ts.map +1 -1
  896. package/dist/utils/similarity.js.map +1 -1
  897. package/dist/utils/solver-canonicalizer.d.ts +22 -0
  898. package/dist/utils/solver-canonicalizer.d.ts.map +1 -0
  899. package/dist/utils/solver-canonicalizer.js +41 -0
  900. package/dist/utils/solver-canonicalizer.js.map +1 -0
  901. package/dist/utils/storage.d.ts.map +1 -1
  902. package/dist/utils/storage.js +1 -3
  903. package/dist/utils/storage.js.map +1 -1
  904. package/dist/utils/task-signature.d.ts +34 -0
  905. package/dist/utils/task-signature.d.ts.map +1 -0
  906. package/dist/utils/task-signature.js +112 -0
  907. package/dist/utils/task-signature.js.map +1 -0
  908. package/dist/utils/trajectory-helpers.d.ts.map +1 -1
  909. package/dist/utils/trajectory-helpers.js.map +1 -1
  910. package/dist/utils/validation.d.ts.map +1 -1
  911. package/dist/utils/validation.js.map +1 -1
  912. package/dist/workspace/efficacy-toolkit.d.ts.map +1 -1
  913. package/dist/workspace/efficacy-toolkit.js +18 -26
  914. package/dist/workspace/efficacy-toolkit.js.map +1 -1
  915. package/dist/workspace/index.d.ts +4 -3
  916. package/dist/workspace/index.d.ts.map +1 -1
  917. package/dist/workspace/index.js +5 -3
  918. package/dist/workspace/index.js.map +1 -1
  919. package/dist/workspace/runner.d.ts.map +1 -1
  920. package/dist/workspace/runner.js +95 -21
  921. package/dist/workspace/runner.js.map +1 -1
  922. package/dist/workspace/skill-converter.d.ts +66 -1
  923. package/dist/workspace/skill-converter.d.ts.map +1 -1
  924. package/dist/workspace/skill-converter.js +238 -19
  925. package/dist/workspace/skill-converter.js.map +1 -1
  926. package/dist/workspace/skill-import.d.ts +43 -0
  927. package/dist/workspace/skill-import.d.ts.map +1 -0
  928. package/dist/workspace/skill-import.js +40 -0
  929. package/dist/workspace/skill-import.js.map +1 -0
  930. package/dist/workspace/templates/index.d.ts +6 -8
  931. package/dist/workspace/templates/index.d.ts.map +1 -1
  932. package/dist/workspace/templates/index.js +7 -11
  933. package/dist/workspace/templates/index.js.map +1 -1
  934. package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -1
  935. package/dist/workspace/templates/knowledge-defrag.js +0 -2
  936. package/dist/workspace/templates/knowledge-defrag.js.map +1 -1
  937. package/dist/workspace/templates/knowledge-extraction.d.ts +11 -0
  938. package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -1
  939. package/dist/workspace/templates/knowledge-extraction.js +11 -6
  940. package/dist/workspace/templates/knowledge-extraction.js.map +1 -1
  941. package/dist/workspace/templates/playbook-conditioning.d.ts +38 -0
  942. package/dist/workspace/templates/playbook-conditioning.d.ts.map +1 -0
  943. package/dist/workspace/templates/playbook-conditioning.js +147 -0
  944. package/dist/workspace/templates/playbook-conditioning.js.map +1 -0
  945. package/dist/workspace/templates/playbook-decay-detection.d.ts.map +1 -1
  946. package/dist/workspace/templates/playbook-decay-detection.js +24 -18
  947. package/dist/workspace/templates/playbook-decay-detection.js.map +1 -1
  948. package/dist/workspace/templates/playbook-efficacy-audit.d.ts.map +1 -1
  949. package/dist/workspace/templates/playbook-efficacy-audit.js +26 -11
  950. package/dist/workspace/templates/playbook-efficacy-audit.js.map +1 -1
  951. package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -1
  952. package/dist/workspace/templates/playbook-extraction.js +75 -15
  953. package/dist/workspace/templates/playbook-extraction.js.map +1 -1
  954. package/dist/workspace/templates/playbook-lifecycle-review.d.ts.map +1 -1
  955. package/dist/workspace/templates/playbook-lifecycle-review.js +12 -8
  956. package/dist/workspace/templates/playbook-lifecycle-review.js.map +1 -1
  957. package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -1
  958. package/dist/workspace/templates/refinement-analysis.js +11 -5
  959. package/dist/workspace/templates/refinement-analysis.js.map +1 -1
  960. package/dist/workspace/templates/skill-enrichment.d.ts.map +1 -1
  961. package/dist/workspace/templates/skill-enrichment.js +7 -11
  962. package/dist/workspace/templates/skill-enrichment.js.map +1 -1
  963. package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -1
  964. package/dist/workspace/templates/solution-evaluation.js +15 -8
  965. package/dist/workspace/templates/solution-evaluation.js.map +1 -1
  966. package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -1
  967. package/dist/workspace/templates/trajectory-analysis.js +1 -3
  968. package/dist/workspace/templates/trajectory-analysis.js.map +1 -1
  969. package/dist/workspace/templates/usage-inference.d.ts.map +1 -1
  970. package/dist/workspace/templates/usage-inference.js +9 -7
  971. package/dist/workspace/templates/usage-inference.js.map +1 -1
  972. package/dist/workspace/types.d.ts +32 -2
  973. package/dist/workspace/types.d.ts.map +1 -1
  974. package/dist/workspace/types.js +29 -0
  975. package/dist/workspace/types.js.map +1 -1
  976. package/package.json +43 -19
  977. package/playbooks/agent-ops/long-task-checkpointing.json +54 -0
  978. package/playbooks/agent-ops/progressive-context-gathering.json +56 -0
  979. package/playbooks/agent-ops/safe-destructive-operations.json +59 -0
  980. package/playbooks/agent-ops/scope-discipline.json +56 -0
  981. package/playbooks/agent-ops/stall-detection-strategy-switch.json +55 -0
  982. package/playbooks/agent-ops/verification-before-completion.json +54 -0
  983. package/playbooks/alfworld/clean-and-place.json +35 -0
  984. package/playbooks/alfworld/cool-and-place.json +35 -0
  985. package/playbooks/alfworld/examine-in-light.json +32 -0
  986. package/playbooks/alfworld/heat-and-place.json +35 -0
  987. package/playbooks/alfworld/pick-and-place.json +37 -0
  988. package/playbooks/alfworld/pick-two-and-place.json +35 -0
  989. package/.claude/settings.json +0 -197
  990. package/.entire/settings.json +0 -4
  991. package/.sessionlog/settings.json +0 -4
  992. package/CLAUDE.md +0 -233
  993. package/SKILL.md +0 -193
  994. package/docs/DESIGN-agentic-workspace.md +0 -2057
  995. package/docs/DESIGN-semantic-memory-knowledge-bank.md +0 -1789
  996. package/docs/DESIGN-session-bank.md +0 -1134
  997. package/docs/DESIGN-team-extraction-pipeline.md +0 -1369
  998. package/docs/PROPOSAL-team-aware-learning.md +0 -1080
  999. package/docs/RESEARCH-semantic-memory-knowledge-structures.md +0 -517
  1000. package/docs/RESEARCH-team-trajectory-learning.md +0 -553
  1001. package/gaps.md +0 -204
  1002. package/scripts/migrate-to-playbooks.ts +0 -307
  1003. package/src/agents/index.ts +0 -14
  1004. package/src/agents/mock-provider.ts +0 -93
  1005. package/src/agents/types.ts +0 -137
  1006. package/src/atlas.ts +0 -1198
  1007. package/src/bin/cli-utils.ts +0 -220
  1008. package/src/bin/cognitive-core.ts +0 -162
  1009. package/src/bin/commands/kb.ts +0 -266
  1010. package/src/bin/commands/learn.ts +0 -100
  1011. package/src/bin/commands/legacy.ts +0 -182
  1012. package/src/bin/commands/run.ts +0 -113
  1013. package/src/bin/commands/sessions.ts +0 -221
  1014. package/src/bin/commands/skills.ts +0 -146
  1015. package/src/embeddings/bm25.ts +0 -337
  1016. package/src/embeddings/index.ts +0 -42
  1017. package/src/embeddings/inverted-index.ts +0 -134
  1018. package/src/embeddings/manager.ts +0 -293
  1019. package/src/embeddings/provider.ts +0 -318
  1020. package/src/embeddings/vector-store.ts +0 -365
  1021. package/src/factory.ts +0 -280
  1022. package/src/index.ts +0 -495
  1023. package/src/learning/analyzer.ts +0 -319
  1024. package/src/learning/effectiveness.ts +0 -428
  1025. package/src/learning/energy-evaluator.ts +0 -282
  1026. package/src/learning/healing-orchestrator.ts +0 -383
  1027. package/src/learning/index.ts +0 -150
  1028. package/src/learning/instant-loop.ts +0 -357
  1029. package/src/learning/knowledge-extractor.ts +0 -470
  1030. package/src/learning/maintenance-scheduler.ts +0 -271
  1031. package/src/learning/meta-learner.ts +0 -552
  1032. package/src/learning/playbook-extractor.ts +0 -702
  1033. package/src/learning/reflexion-generator.ts +0 -273
  1034. package/src/learning/team-ingester.ts +0 -499
  1035. package/src/learning/team-meta-learner.ts +0 -558
  1036. package/src/learning/team-pipeline.ts +0 -364
  1037. package/src/learning/trajectory-sources/dataclaw.ts +0 -403
  1038. package/src/learning/trajectory-sources/entire.ts +0 -251
  1039. package/src/learning/trajectory-sources/file.ts +0 -136
  1040. package/src/learning/trajectory-sources/huggingface.ts +0 -248
  1041. package/src/learning/trajectory-sources/in-memory.ts +0 -61
  1042. package/src/learning/trajectory-sources/index.ts +0 -15
  1043. package/src/learning/trajectory-sources/pipeline.ts +0 -69
  1044. package/src/learning/unified-pipeline.ts +0 -1191
  1045. package/src/learning/usage-inference.ts +0 -372
  1046. package/src/mcp/index.ts +0 -12
  1047. package/src/mcp/playbook-server.ts +0 -565
  1048. package/src/memory/candidate-retrieval.ts +0 -72
  1049. package/src/memory/causal-store.ts +0 -273
  1050. package/src/memory/coherence.ts +0 -252
  1051. package/src/memory/curated-loader.ts +0 -213
  1052. package/src/memory/experience.ts +0 -682
  1053. package/src/memory/graph-layers/base.ts +0 -184
  1054. package/src/memory/graph-layers/causal.ts +0 -16
  1055. package/src/memory/graph-layers/entity.ts +0 -16
  1056. package/src/memory/graph-layers/index.ts +0 -5
  1057. package/src/memory/graph-layers/semantic.ts +0 -16
  1058. package/src/memory/graph-layers/temporal.ts +0 -16
  1059. package/src/memory/index.ts +0 -131
  1060. package/src/memory/knowledge-bank.ts +0 -1317
  1061. package/src/memory/knowledge-defrag.ts +0 -329
  1062. package/src/memory/knowledge-graph.ts +0 -361
  1063. package/src/memory/meta.ts +0 -488
  1064. package/src/memory/playbook.ts +0 -676
  1065. package/src/memory/reasoning-bank.ts +0 -458
  1066. package/src/memory/reflexion.ts +0 -122
  1067. package/src/memory/search-provider.ts +0 -35
  1068. package/src/memory/search-providers/index.ts +0 -3
  1069. package/src/memory/search-providers/minimem.ts +0 -84
  1070. package/src/memory/search-providers/text-similarity.ts +0 -35
  1071. package/src/memory/skill-exporter.ts +0 -357
  1072. package/src/memory/source-resolver.ts +0 -422
  1073. package/src/memory/system.ts +0 -620
  1074. package/src/memory/team-experience.ts +0 -604
  1075. package/src/memory/temporal-compressor.ts +0 -409
  1076. package/src/persistence/index.ts +0 -37
  1077. package/src/persistence/migrator.ts +0 -298
  1078. package/src/persistence/serializers.ts +0 -79
  1079. package/src/persistence/sqlite-persistence.ts +0 -925
  1080. package/src/runtime/backends/acp-protocol.ts +0 -231
  1081. package/src/runtime/backends/acp.ts +0 -239
  1082. package/src/runtime/backends/index.ts +0 -38
  1083. package/src/runtime/backends/macro-agent.ts +0 -177
  1084. package/src/runtime/backends/mock.ts +0 -218
  1085. package/src/runtime/backends/subprocess.ts +0 -356
  1086. package/src/runtime/compute-provider.ts +0 -206
  1087. package/src/runtime/flows/learning.ts +0 -166
  1088. package/src/runtime/flows/validation.ts +0 -381
  1089. package/src/runtime/index.ts +0 -75
  1090. package/src/runtime/manager.ts +0 -685
  1091. package/src/runtime/types.ts +0 -198
  1092. package/src/search/evaluator.ts +0 -499
  1093. package/src/search/index.ts +0 -78
  1094. package/src/search/moe-gate.ts +0 -304
  1095. package/src/search/refinement-loop.ts +0 -457
  1096. package/src/search/refinement-types.ts +0 -159
  1097. package/src/search/router.ts +0 -368
  1098. package/src/search/solver.ts +0 -303
  1099. package/src/search/team-router.ts +0 -459
  1100. package/src/search/verification-runner.ts +0 -570
  1101. package/src/session-bank/git-reader.ts +0 -200
  1102. package/src/session-bank/index.ts +0 -26
  1103. package/src/session-bank/parser.ts +0 -548
  1104. package/src/session-bank/session-bank.ts +0 -485
  1105. package/src/session-bank/types.ts +0 -176
  1106. package/src/surfacing/index.ts +0 -29
  1107. package/src/surfacing/publisher.ts +0 -23
  1108. package/src/surfacing/skill-library.ts +0 -625
  1109. package/src/surfacing/skill-publisher.ts +0 -258
  1110. package/src/surfacing/sqlite-storage-adapter.ts +0 -287
  1111. package/src/surfacing/team-skill-library.ts +0 -610
  1112. package/src/types/config.ts +0 -661
  1113. package/src/types/dataclaw.ts +0 -99
  1114. package/src/types/huggingface-transformers.d.ts +0 -12
  1115. package/src/types/index.ts +0 -293
  1116. package/src/types/knowledge-graph.ts +0 -246
  1117. package/src/types/knowledge.ts +0 -388
  1118. package/src/types/memory.ts +0 -300
  1119. package/src/types/meta.ts +0 -218
  1120. package/src/types/outcome.ts +0 -66
  1121. package/src/types/playbook.ts +0 -215
  1122. package/src/types/step.ts +0 -40
  1123. package/src/types/task.ts +0 -52
  1124. package/src/types/team-meta.ts +0 -212
  1125. package/src/types/team-playbook.ts +0 -384
  1126. package/src/types/team-trajectory.ts +0 -673
  1127. package/src/types/trajectory-source.ts +0 -47
  1128. package/src/types/trajectory.ts +0 -80
  1129. package/src/utils/error-classifier.ts +0 -113
  1130. package/src/utils/frontmatter.ts +0 -118
  1131. package/src/utils/index.ts +0 -63
  1132. package/src/utils/partitioned-store.ts +0 -299
  1133. package/src/utils/similarity.ts +0 -139
  1134. package/src/utils/storage.ts +0 -249
  1135. package/src/utils/trajectory-helpers.ts +0 -79
  1136. package/src/utils/validation.ts +0 -286
  1137. package/src/workspace/efficacy-toolkit.ts +0 -496
  1138. package/src/workspace/index.ts +0 -77
  1139. package/src/workspace/runner.ts +0 -281
  1140. package/src/workspace/skill-converter.ts +0 -288
  1141. package/src/workspace/templates/index.ts +0 -95
  1142. package/src/workspace/templates/knowledge-defrag.ts +0 -223
  1143. package/src/workspace/templates/knowledge-extraction.ts +0 -337
  1144. package/src/workspace/templates/meta-reflection.ts +0 -208
  1145. package/src/workspace/templates/playbook-decay-detection.ts +0 -272
  1146. package/src/workspace/templates/playbook-efficacy-audit.ts +0 -246
  1147. package/src/workspace/templates/playbook-extraction.ts +0 -240
  1148. package/src/workspace/templates/playbook-lifecycle-review.ts +0 -274
  1149. package/src/workspace/templates/refinement-analysis.ts +0 -162
  1150. package/src/workspace/templates/skill-enrichment.ts +0 -275
  1151. package/src/workspace/templates/solution-evaluation.ts +0 -199
  1152. package/src/workspace/templates/team-playbook-extraction.ts +0 -631
  1153. package/src/workspace/templates/team-trajectory-analysis.ts +0 -564
  1154. package/src/workspace/templates/trajectory-analysis.ts +0 -234
  1155. package/src/workspace/templates/usage-inference.ts +0 -163
  1156. package/src/workspace/types.ts +0 -185
  1157. package/tests/atlas-knowledge.test.ts +0 -165
  1158. package/tests/embeddings/bm25.test.ts +0 -130
  1159. package/tests/embeddings/inverted-index.test.ts +0 -138
  1160. package/tests/embeddings/manager.test.ts +0 -205
  1161. package/tests/feature-toggles.test.ts +0 -275
  1162. package/tests/fixtures/behavioral-trajectories.ts +0 -210
  1163. package/tests/gap-fixes.test.ts +0 -1116
  1164. package/tests/integration/atlas.test.ts +0 -266
  1165. package/tests/integration/cli-e2e.test.ts +0 -621
  1166. package/tests/integration/curated-sources-e2e.test.ts +0 -502
  1167. package/tests/integration/dataclaw-e2e.test.ts +0 -559
  1168. package/tests/integration/e2e.test.ts +0 -1337
  1169. package/tests/integration/entire-e2e.test.ts +0 -376
  1170. package/tests/integration/huggingface-e2e.test.ts +0 -627
  1171. package/tests/integration/persistence-e2e.test.ts +0 -741
  1172. package/tests/integration/phase-e2e.test.ts +0 -1143
  1173. package/tests/integration/pipeline-data-correctness.test.ts +0 -794
  1174. package/tests/integration/ranking-driven-loadout-e2e.test.ts +0 -185
  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-publishing-filesystem-e2e.test.ts +0 -216
  1178. package/tests/integration/skill-tree-wiring.test.ts +0 -152
  1179. package/tests/integration/unified-pipeline-e2e.test.ts +0 -634
  1180. package/tests/learning/analyzer.test.ts +0 -426
  1181. package/tests/learning/dataclaw-trajectory-source.test.ts +0 -642
  1182. package/tests/learning/effectiveness.test.ts +0 -542
  1183. package/tests/learning/energy-evaluator.test.ts +0 -180
  1184. package/tests/learning/entire-trajectory-source.test.ts +0 -380
  1185. package/tests/learning/healing-orchestrator.test.ts +0 -269
  1186. package/tests/learning/huggingface-trajectory-source.test.ts +0 -817
  1187. package/tests/learning/instant-loop.test.ts +0 -243
  1188. package/tests/learning/knowledge-extractor.test.ts +0 -491
  1189. package/tests/learning/maintenance-scheduler.test.ts +0 -191
  1190. package/tests/learning/meta-learner.test.ts +0 -418
  1191. package/tests/learning/pipeline-memory-updates.test.ts +0 -721
  1192. package/tests/learning/playbook-extractor-provenance.test.ts +0 -114
  1193. package/tests/learning/reflexion-generator.test.ts +0 -411
  1194. package/tests/learning/team-ingester.test.ts +0 -349
  1195. package/tests/learning/team-meta-learner.test.ts +0 -618
  1196. package/tests/learning/team-pipeline.test.ts +0 -334
  1197. package/tests/learning/trajectory-sources.test.ts +0 -320
  1198. package/tests/learning/unified-pipeline-efficacy.test.ts +0 -232
  1199. package/tests/learning/unified-pipeline.test.ts +0 -322
  1200. package/tests/learning/usage-inference.test.ts +0 -254
  1201. package/tests/mcp/playbook-server.test.ts +0 -257
  1202. package/tests/memory/candidate-retrieval.test.ts +0 -167
  1203. package/tests/memory/causal-store.test.ts +0 -276
  1204. package/tests/memory/coherence.test.ts +0 -232
  1205. package/tests/memory/compound-engineering-seed.test.ts +0 -338
  1206. package/tests/memory/curated-loader-extended.test.ts +0 -225
  1207. package/tests/memory/experience.test.ts +0 -203
  1208. package/tests/memory/graph-layers/semantic.test.ts +0 -219
  1209. package/tests/memory/knowledge-bank-extraction.test.ts +0 -558
  1210. package/tests/memory/knowledge-bank.test.ts +0 -705
  1211. package/tests/memory/knowledge-defrag.test.ts +0 -366
  1212. package/tests/memory/knowledge-evolution.test.ts +0 -563
  1213. package/tests/memory/knowledge-graph.test.ts +0 -492
  1214. package/tests/memory/knowledge-inbox.test.ts +0 -258
  1215. package/tests/memory/knowledge-minimem.test.ts +0 -251
  1216. package/tests/memory/meta.test.ts +0 -399
  1217. package/tests/memory/playbook-quality-validation.test.ts +0 -430
  1218. package/tests/memory/playbook.test.ts +0 -644
  1219. package/tests/memory/provenance.test.ts +0 -648
  1220. package/tests/memory/reasoning-bank.test.ts +0 -239
  1221. package/tests/memory/reflexion.test.ts +0 -166
  1222. package/tests/memory/skill-exporter.test.ts +0 -475
  1223. package/tests/memory/source-resolver.test.ts +0 -700
  1224. package/tests/memory/system.test.ts +0 -330
  1225. package/tests/memory/team-experience.test.ts +0 -411
  1226. package/tests/memory/temporal-compressor.test.ts +0 -318
  1227. package/tests/persistence/migrator.test.ts +0 -1009
  1228. package/tests/persistence/sqlite-persistence.test.ts +0 -635
  1229. package/tests/runtime/agent-manager.test.ts +0 -517
  1230. package/tests/runtime/compute-provider.test.ts +0 -288
  1231. package/tests/runtime/delegate.test.ts +0 -354
  1232. package/tests/runtime/macro-agent-backend.test.ts +0 -266
  1233. package/tests/runtime/mock-backend.test.ts +0 -248
  1234. package/tests/search/evaluator.test.ts +0 -257
  1235. package/tests/search/moe-gate.test.ts +0 -250
  1236. package/tests/search/refinement-loop.test.ts +0 -477
  1237. package/tests/search/refinement.test.ts +0 -267
  1238. package/tests/search/router.test.ts +0 -506
  1239. package/tests/search/team-router.test.ts +0 -376
  1240. package/tests/search/verification-runner.test.ts +0 -357
  1241. package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +0 -12
  1242. package/tests/session-bank/fixtures/multi-tool-session/metadata.json +0 -28
  1243. package/tests/session-bank/fixtures/root-metadata.json +0 -18
  1244. package/tests/session-bank/fixtures/sessionlog-root-metadata.json +0 -16
  1245. package/tests/session-bank/fixtures/sessionlog-session/full.jsonl +0 -6
  1246. package/tests/session-bank/fixtures/sessionlog-session/metadata.json +0 -55
  1247. package/tests/session-bank/fixtures/simple-session/full.jsonl +0 -6
  1248. package/tests/session-bank/fixtures/simple-session/metadata.json +0 -38
  1249. package/tests/session-bank/git-reader.test.ts +0 -232
  1250. package/tests/session-bank/parser.test.ts +0 -453
  1251. package/tests/session-bank/session-bank.test.ts +0 -546
  1252. package/tests/surfacing/skill-library.test.ts +0 -297
  1253. package/tests/surfacing/skill-publisher.test.ts +0 -432
  1254. package/tests/surfacing/sqlite-storage-adapter.test.ts +0 -197
  1255. package/tests/surfacing/team-skill-library.test.ts +0 -444
  1256. package/tests/types/outcome.test.ts +0 -147
  1257. package/tests/types/step.test.ts +0 -133
  1258. package/tests/types/task.test.ts +0 -158
  1259. package/tests/types/team-meta.test.ts +0 -147
  1260. package/tests/types/team-playbook.test.ts +0 -246
  1261. package/tests/types/team-trajectory.test.ts +0 -557
  1262. package/tests/types/trajectory.test.ts +0 -253
  1263. package/tests/utils/error-classifier.test.ts +0 -149
  1264. package/tests/utils/frontmatter.test.ts +0 -208
  1265. package/tests/utils/partitioned-store.test.ts +0 -230
  1266. package/tests/utils/similarity.test.ts +0 -188
  1267. package/tests/utils/trajectory-helpers.test.ts +0 -163
  1268. package/tests/utils/validation.test.ts +0 -252
  1269. package/tests/workspace/efficacy-toolkit.test.ts +0 -404
  1270. package/tests/workspace/full-flow.test.ts +0 -845
  1271. package/tests/workspace/manager.test.ts +0 -215
  1272. package/tests/workspace/runner.test.ts +0 -336
  1273. package/tests/workspace/skill-converter.test.ts +0 -205
  1274. package/tests/workspace/templates/knowledge-extraction.test.ts +0 -235
  1275. package/tests/workspace/templates/playbook-efficacy.test.ts +0 -377
  1276. package/tests/workspace/templates/team-playbook-extraction.test.ts +0 -341
  1277. package/tests/workspace/templates/team-trajectory-analysis.test.ts +0 -417
  1278. package/tsconfig.json +0 -25
  1279. 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
- });