cognitive-core 0.1.0 → 0.1.2

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 (637) hide show
  1. package/.claude/settings.json +88 -0
  2. package/.claude/settings.local.json +11 -0
  3. package/.entire/settings.json +4 -0
  4. package/README.md +524 -254
  5. package/dist/atlas.d.ts +144 -6
  6. package/dist/atlas.d.ts.map +1 -1
  7. package/dist/atlas.js +339 -10
  8. package/dist/atlas.js.map +1 -1
  9. package/dist/embeddings/provider.d.ts.map +1 -1
  10. package/dist/embeddings/provider.js +6 -3
  11. package/dist/embeddings/provider.js.map +1 -1
  12. package/dist/index.d.ts +8 -6
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +37 -6
  15. package/dist/index.js.map +1 -1
  16. package/dist/learning/index.d.ts +5 -1
  17. package/dist/learning/index.d.ts.map +1 -1
  18. package/dist/learning/index.js +8 -2
  19. package/dist/learning/index.js.map +1 -1
  20. package/dist/learning/knowledge-extractor.d.ts +56 -0
  21. package/dist/learning/knowledge-extractor.d.ts.map +1 -0
  22. package/dist/learning/knowledge-extractor.js +336 -0
  23. package/dist/learning/knowledge-extractor.js.map +1 -0
  24. package/dist/learning/meta-learner.d.ts +7 -0
  25. package/dist/learning/meta-learner.d.ts.map +1 -1
  26. package/dist/learning/meta-learner.js +43 -0
  27. package/dist/learning/meta-learner.js.map +1 -1
  28. package/dist/learning/pipeline.d.ts +24 -0
  29. package/dist/learning/pipeline.d.ts.map +1 -1
  30. package/dist/learning/pipeline.js +70 -4
  31. package/dist/learning/pipeline.js.map +1 -1
  32. package/dist/learning/team-ingester.d.ts +152 -0
  33. package/dist/learning/team-ingester.d.ts.map +1 -0
  34. package/dist/learning/team-ingester.js +333 -0
  35. package/dist/learning/team-ingester.js.map +1 -0
  36. package/dist/learning/team-meta-learner.d.ts +50 -0
  37. package/dist/learning/team-meta-learner.d.ts.map +1 -0
  38. package/dist/learning/team-meta-learner.js +417 -0
  39. package/dist/learning/team-meta-learner.js.map +1 -0
  40. package/dist/learning/team-pipeline.d.ts +76 -0
  41. package/dist/learning/team-pipeline.d.ts.map +1 -0
  42. package/dist/learning/team-pipeline.js +266 -0
  43. package/dist/learning/team-pipeline.js.map +1 -0
  44. package/dist/learning/trajectory-sources/dataclaw.d.ts +41 -0
  45. package/dist/learning/trajectory-sources/dataclaw.d.ts.map +1 -0
  46. package/dist/learning/trajectory-sources/dataclaw.js +330 -0
  47. package/dist/learning/trajectory-sources/dataclaw.js.map +1 -0
  48. package/dist/learning/trajectory-sources/entire.d.ts +28 -0
  49. package/dist/learning/trajectory-sources/entire.d.ts.map +1 -0
  50. package/dist/learning/trajectory-sources/entire.js +182 -0
  51. package/dist/learning/trajectory-sources/entire.js.map +1 -0
  52. package/dist/learning/trajectory-sources/file.d.ts +23 -0
  53. package/dist/learning/trajectory-sources/file.d.ts.map +1 -0
  54. package/dist/learning/trajectory-sources/file.js +101 -0
  55. package/dist/learning/trajectory-sources/file.js.map +1 -0
  56. package/dist/learning/trajectory-sources/huggingface.d.ts +36 -0
  57. package/dist/learning/trajectory-sources/huggingface.d.ts.map +1 -0
  58. package/dist/learning/trajectory-sources/huggingface.js +157 -0
  59. package/dist/learning/trajectory-sources/huggingface.js.map +1 -0
  60. package/dist/learning/trajectory-sources/in-memory.d.ts +21 -0
  61. package/dist/learning/trajectory-sources/in-memory.d.ts.map +1 -0
  62. package/dist/learning/trajectory-sources/in-memory.js +43 -0
  63. package/dist/learning/trajectory-sources/in-memory.js.map +1 -0
  64. package/dist/learning/trajectory-sources/index.d.ts +7 -0
  65. package/dist/learning/trajectory-sources/index.d.ts.map +1 -0
  66. package/dist/learning/trajectory-sources/index.js +7 -0
  67. package/dist/learning/trajectory-sources/index.js.map +1 -0
  68. package/dist/learning/trajectory-sources/pipeline.d.ts +24 -0
  69. package/dist/learning/trajectory-sources/pipeline.d.ts.map +1 -0
  70. package/dist/learning/trajectory-sources/pipeline.js +47 -0
  71. package/dist/learning/trajectory-sources/pipeline.js.map +1 -0
  72. package/dist/memory/graph-layers/base.d.ts +29 -0
  73. package/dist/memory/graph-layers/base.d.ts.map +1 -0
  74. package/dist/memory/graph-layers/base.js +143 -0
  75. package/dist/memory/graph-layers/base.js.map +1 -0
  76. package/dist/memory/graph-layers/causal.d.ts +14 -0
  77. package/dist/memory/graph-layers/causal.d.ts.map +1 -0
  78. package/dist/memory/graph-layers/causal.js +14 -0
  79. package/dist/memory/graph-layers/causal.js.map +1 -0
  80. package/dist/memory/graph-layers/entity.d.ts +14 -0
  81. package/dist/memory/graph-layers/entity.d.ts.map +1 -0
  82. package/dist/memory/graph-layers/entity.js +14 -0
  83. package/dist/memory/graph-layers/entity.js.map +1 -0
  84. package/dist/memory/graph-layers/index.d.ts +6 -0
  85. package/dist/memory/graph-layers/index.d.ts.map +1 -0
  86. package/dist/memory/graph-layers/index.js +6 -0
  87. package/dist/memory/graph-layers/index.js.map +1 -0
  88. package/dist/memory/graph-layers/semantic.d.ts +14 -0
  89. package/dist/memory/graph-layers/semantic.d.ts.map +1 -0
  90. package/dist/memory/graph-layers/semantic.js +14 -0
  91. package/dist/memory/graph-layers/semantic.js.map +1 -0
  92. package/dist/memory/graph-layers/temporal.d.ts +14 -0
  93. package/dist/memory/graph-layers/temporal.d.ts.map +1 -0
  94. package/dist/memory/graph-layers/temporal.js +14 -0
  95. package/dist/memory/graph-layers/temporal.js.map +1 -0
  96. package/dist/memory/index.d.ts +8 -0
  97. package/dist/memory/index.d.ts.map +1 -1
  98. package/dist/memory/index.js +10 -0
  99. package/dist/memory/index.js.map +1 -1
  100. package/dist/memory/knowledge-bank.d.ts +220 -0
  101. package/dist/memory/knowledge-bank.d.ts.map +1 -0
  102. package/dist/memory/knowledge-bank.js +1003 -0
  103. package/dist/memory/knowledge-bank.js.map +1 -0
  104. package/dist/memory/knowledge-defrag.d.ts +49 -0
  105. package/dist/memory/knowledge-defrag.d.ts.map +1 -0
  106. package/dist/memory/knowledge-defrag.js +257 -0
  107. package/dist/memory/knowledge-defrag.js.map +1 -0
  108. package/dist/memory/knowledge-graph.d.ts +41 -0
  109. package/dist/memory/knowledge-graph.d.ts.map +1 -0
  110. package/dist/memory/knowledge-graph.js +273 -0
  111. package/dist/memory/knowledge-graph.js.map +1 -0
  112. package/dist/memory/search-provider.d.ts +31 -0
  113. package/dist/memory/search-provider.d.ts.map +1 -0
  114. package/dist/memory/search-provider.js +2 -0
  115. package/dist/memory/search-provider.js.map +1 -0
  116. package/dist/memory/search-providers/index.d.ts +3 -0
  117. package/dist/memory/search-providers/index.d.ts.map +1 -0
  118. package/dist/memory/search-providers/index.js +3 -0
  119. package/dist/memory/search-providers/index.js.map +1 -0
  120. package/dist/memory/search-providers/minimem.d.ts +43 -0
  121. package/dist/memory/search-providers/minimem.d.ts.map +1 -0
  122. package/dist/memory/search-providers/minimem.js +56 -0
  123. package/dist/memory/search-providers/minimem.js.map +1 -0
  124. package/dist/memory/search-providers/text-similarity.d.ts +15 -0
  125. package/dist/memory/search-providers/text-similarity.d.ts.map +1 -0
  126. package/dist/memory/search-providers/text-similarity.js +21 -0
  127. package/dist/memory/search-providers/text-similarity.js.map +1 -0
  128. package/dist/memory/skill-exporter.d.ts +75 -0
  129. package/dist/memory/skill-exporter.d.ts.map +1 -0
  130. package/dist/memory/skill-exporter.js +248 -0
  131. package/dist/memory/skill-exporter.js.map +1 -0
  132. package/dist/memory/system.d.ts +15 -3
  133. package/dist/memory/system.d.ts.map +1 -1
  134. package/dist/memory/system.js +46 -8
  135. package/dist/memory/system.js.map +1 -1
  136. package/dist/memory/team-experience.d.ts +298 -0
  137. package/dist/memory/team-experience.d.ts.map +1 -0
  138. package/dist/memory/team-experience.js +355 -0
  139. package/dist/memory/team-experience.js.map +1 -0
  140. package/dist/runtime/backends/acp-protocol.d.ts +49 -0
  141. package/dist/runtime/backends/acp-protocol.d.ts.map +1 -0
  142. package/dist/runtime/backends/acp-protocol.js +166 -0
  143. package/dist/runtime/backends/acp-protocol.js.map +1 -0
  144. package/dist/runtime/backends/acp.d.ts +26 -26
  145. package/dist/runtime/backends/acp.d.ts.map +1 -1
  146. package/dist/runtime/backends/acp.js +32 -156
  147. package/dist/runtime/backends/acp.js.map +1 -1
  148. package/dist/runtime/backends/index.d.ts +3 -1
  149. package/dist/runtime/backends/index.d.ts.map +1 -1
  150. package/dist/runtime/backends/index.js +3 -1
  151. package/dist/runtime/backends/index.js.map +1 -1
  152. package/dist/runtime/backends/macro-agent.d.ts +104 -0
  153. package/dist/runtime/backends/macro-agent.d.ts.map +1 -0
  154. package/dist/runtime/backends/macro-agent.js +107 -0
  155. package/dist/runtime/backends/macro-agent.js.map +1 -0
  156. package/dist/runtime/compute-provider.d.ts +87 -0
  157. package/dist/runtime/compute-provider.d.ts.map +1 -0
  158. package/dist/runtime/compute-provider.js +87 -0
  159. package/dist/runtime/compute-provider.js.map +1 -0
  160. package/dist/runtime/index.d.ts +3 -2
  161. package/dist/runtime/index.d.ts.map +1 -1
  162. package/dist/runtime/index.js +3 -1
  163. package/dist/runtime/index.js.map +1 -1
  164. package/dist/runtime/manager.d.ts +37 -4
  165. package/dist/runtime/manager.d.ts.map +1 -1
  166. package/dist/runtime/manager.js +139 -20
  167. package/dist/runtime/manager.js.map +1 -1
  168. package/dist/runtime/types.d.ts +38 -0
  169. package/dist/runtime/types.d.ts.map +1 -1
  170. package/dist/search/evaluator.d.ts +7 -0
  171. package/dist/search/evaluator.d.ts.map +1 -1
  172. package/dist/search/evaluator.js +24 -4
  173. package/dist/search/evaluator.js.map +1 -1
  174. package/dist/search/index.d.ts +1 -0
  175. package/dist/search/index.d.ts.map +1 -1
  176. package/dist/search/index.js +2 -0
  177. package/dist/search/index.js.map +1 -1
  178. package/dist/search/refinement-loop.d.ts +17 -0
  179. package/dist/search/refinement-loop.d.ts.map +1 -1
  180. package/dist/search/refinement-loop.js +77 -6
  181. package/dist/search/refinement-loop.js.map +1 -1
  182. package/dist/search/refinement-types.d.ts +2 -2
  183. package/dist/search/team-router.d.ts +91 -0
  184. package/dist/search/team-router.d.ts.map +1 -0
  185. package/dist/search/team-router.js +315 -0
  186. package/dist/search/team-router.js.map +1 -0
  187. package/dist/session-bank/git-reader.d.ts +39 -0
  188. package/dist/session-bank/git-reader.d.ts.map +1 -0
  189. package/dist/session-bank/git-reader.js +165 -0
  190. package/dist/session-bank/git-reader.js.map +1 -0
  191. package/dist/session-bank/index.d.ts +5 -0
  192. package/dist/session-bank/index.d.ts.map +1 -0
  193. package/dist/session-bank/index.js +4 -0
  194. package/dist/session-bank/index.js.map +1 -0
  195. package/dist/session-bank/parser.d.ts +39 -0
  196. package/dist/session-bank/parser.d.ts.map +1 -0
  197. package/dist/session-bank/parser.js +231 -0
  198. package/dist/session-bank/parser.js.map +1 -0
  199. package/dist/session-bank/session-bank.d.ts +35 -0
  200. package/dist/session-bank/session-bank.d.ts.map +1 -0
  201. package/dist/session-bank/session-bank.js +326 -0
  202. package/dist/session-bank/session-bank.js.map +1 -0
  203. package/dist/session-bank/types.d.ts +129 -0
  204. package/dist/session-bank/types.d.ts.map +1 -0
  205. package/dist/session-bank/types.js +7 -0
  206. package/dist/session-bank/types.js.map +1 -0
  207. package/dist/surfacing/index.d.ts +4 -0
  208. package/dist/surfacing/index.d.ts.map +1 -1
  209. package/dist/surfacing/index.js +3 -0
  210. package/dist/surfacing/index.js.map +1 -1
  211. package/dist/surfacing/publisher.d.ts +22 -0
  212. package/dist/surfacing/publisher.d.ts.map +1 -0
  213. package/dist/surfacing/publisher.js +9 -0
  214. package/dist/surfacing/publisher.js.map +1 -0
  215. package/dist/surfacing/skill-library.d.ts +12 -0
  216. package/dist/surfacing/skill-library.d.ts.map +1 -1
  217. package/dist/surfacing/skill-library.js +26 -0
  218. package/dist/surfacing/skill-library.js.map +1 -1
  219. package/dist/surfacing/skill-publisher.d.ts +43 -0
  220. package/dist/surfacing/skill-publisher.d.ts.map +1 -0
  221. package/dist/surfacing/skill-publisher.js +197 -0
  222. package/dist/surfacing/skill-publisher.js.map +1 -0
  223. package/dist/surfacing/sqlite-storage-adapter.d.ts +42 -0
  224. package/dist/surfacing/sqlite-storage-adapter.d.ts.map +1 -0
  225. package/dist/surfacing/sqlite-storage-adapter.js +207 -0
  226. package/dist/surfacing/sqlite-storage-adapter.js.map +1 -0
  227. package/dist/surfacing/team-skill-library.d.ts +180 -0
  228. package/dist/surfacing/team-skill-library.d.ts.map +1 -0
  229. package/dist/surfacing/team-skill-library.js +384 -0
  230. package/dist/surfacing/team-skill-library.js.map +1 -0
  231. package/dist/types/config.d.ts +1218 -44
  232. package/dist/types/config.d.ts.map +1 -1
  233. package/dist/types/config.js +216 -0
  234. package/dist/types/config.js.map +1 -1
  235. package/dist/types/dataclaw.d.ts +286 -0
  236. package/dist/types/dataclaw.d.ts.map +1 -0
  237. package/dist/types/dataclaw.js +84 -0
  238. package/dist/types/dataclaw.js.map +1 -0
  239. package/dist/types/index.d.ts +8 -1
  240. package/dist/types/index.d.ts.map +1 -1
  241. package/dist/types/index.js +13 -1
  242. package/dist/types/index.js.map +1 -1
  243. package/dist/types/knowledge-graph.d.ts +148 -0
  244. package/dist/types/knowledge-graph.d.ts.map +1 -0
  245. package/dist/types/knowledge-graph.js +40 -0
  246. package/dist/types/knowledge-graph.js.map +1 -0
  247. package/dist/types/knowledge.d.ts +280 -0
  248. package/dist/types/knowledge.d.ts.map +1 -0
  249. package/dist/types/knowledge.js +191 -0
  250. package/dist/types/knowledge.js.map +1 -0
  251. package/dist/types/team-meta.d.ts +160 -0
  252. package/dist/types/team-meta.d.ts.map +1 -0
  253. package/dist/types/team-meta.js +42 -0
  254. package/dist/types/team-meta.js.map +1 -0
  255. package/dist/types/team-playbook.d.ts +276 -0
  256. package/dist/types/team-playbook.d.ts.map +1 -0
  257. package/dist/types/team-playbook.js +85 -0
  258. package/dist/types/team-playbook.js.map +1 -0
  259. package/dist/types/team-trajectory.d.ts +305 -0
  260. package/dist/types/team-trajectory.d.ts.map +1 -0
  261. package/dist/types/team-trajectory.js +304 -0
  262. package/dist/types/team-trajectory.js.map +1 -0
  263. package/dist/types/trajectory-source.d.ts +39 -0
  264. package/dist/types/trajectory-source.d.ts.map +1 -0
  265. package/dist/types/trajectory-source.js +2 -0
  266. package/dist/types/trajectory-source.js.map +1 -0
  267. package/dist/utils/frontmatter.d.ts +34 -0
  268. package/dist/utils/frontmatter.d.ts.map +1 -0
  269. package/dist/utils/frontmatter.js +93 -0
  270. package/dist/utils/frontmatter.js.map +1 -0
  271. package/dist/utils/index.d.ts +1 -0
  272. package/dist/utils/index.d.ts.map +1 -1
  273. package/dist/utils/index.js +1 -0
  274. package/dist/utils/index.js.map +1 -1
  275. package/dist/workspace/index.d.ts +6 -0
  276. package/dist/workspace/index.d.ts.map +1 -0
  277. package/dist/workspace/index.js +11 -0
  278. package/dist/workspace/index.js.map +1 -0
  279. package/dist/workspace/runner.d.ts +50 -0
  280. package/dist/workspace/runner.d.ts.map +1 -0
  281. package/dist/workspace/runner.js +219 -0
  282. package/dist/workspace/runner.js.map +1 -0
  283. package/dist/workspace/skill-converter.d.ts +18 -0
  284. package/dist/workspace/skill-converter.d.ts.map +1 -0
  285. package/dist/workspace/skill-converter.js +257 -0
  286. package/dist/workspace/skill-converter.js.map +1 -0
  287. package/dist/workspace/templates/index.d.ts +11 -0
  288. package/dist/workspace/templates/index.d.ts.map +1 -0
  289. package/dist/workspace/templates/index.js +21 -0
  290. package/dist/workspace/templates/index.js.map +1 -0
  291. package/dist/workspace/templates/knowledge-defrag.d.ts +25 -0
  292. package/dist/workspace/templates/knowledge-defrag.d.ts.map +1 -0
  293. package/dist/workspace/templates/knowledge-defrag.js +154 -0
  294. package/dist/workspace/templates/knowledge-defrag.js.map +1 -0
  295. package/dist/workspace/templates/knowledge-extraction.d.ts +25 -0
  296. package/dist/workspace/templates/knowledge-extraction.d.ts.map +1 -0
  297. package/dist/workspace/templates/knowledge-extraction.js +246 -0
  298. package/dist/workspace/templates/knowledge-extraction.js.map +1 -0
  299. package/dist/workspace/templates/meta-reflection.d.ts +47 -0
  300. package/dist/workspace/templates/meta-reflection.d.ts.map +1 -0
  301. package/dist/workspace/templates/meta-reflection.js +135 -0
  302. package/dist/workspace/templates/meta-reflection.js.map +1 -0
  303. package/dist/workspace/templates/playbook-extraction.d.ts +20 -0
  304. package/dist/workspace/templates/playbook-extraction.d.ts.map +1 -0
  305. package/dist/workspace/templates/playbook-extraction.js +189 -0
  306. package/dist/workspace/templates/playbook-extraction.js.map +1 -0
  307. package/dist/workspace/templates/refinement-analysis.d.ts +31 -0
  308. package/dist/workspace/templates/refinement-analysis.d.ts.map +1 -0
  309. package/dist/workspace/templates/refinement-analysis.js +107 -0
  310. package/dist/workspace/templates/refinement-analysis.js.map +1 -0
  311. package/dist/workspace/templates/solution-evaluation.d.ts +21 -0
  312. package/dist/workspace/templates/solution-evaluation.d.ts.map +1 -0
  313. package/dist/workspace/templates/solution-evaluation.js +131 -0
  314. package/dist/workspace/templates/solution-evaluation.js.map +1 -0
  315. package/dist/workspace/templates/team-playbook-extraction.d.ts +44 -0
  316. package/dist/workspace/templates/team-playbook-extraction.d.ts.map +1 -0
  317. package/dist/workspace/templates/team-playbook-extraction.js +497 -0
  318. package/dist/workspace/templates/team-playbook-extraction.js.map +1 -0
  319. package/dist/workspace/templates/team-trajectory-analysis.d.ts +19 -0
  320. package/dist/workspace/templates/team-trajectory-analysis.d.ts.map +1 -0
  321. package/dist/workspace/templates/team-trajectory-analysis.js +442 -0
  322. package/dist/workspace/templates/team-trajectory-analysis.js.map +1 -0
  323. package/dist/workspace/templates/trajectory-analysis.d.ts +19 -0
  324. package/dist/workspace/templates/trajectory-analysis.d.ts.map +1 -0
  325. package/dist/workspace/templates/trajectory-analysis.js +170 -0
  326. package/dist/workspace/templates/trajectory-analysis.js.map +1 -0
  327. package/dist/workspace/templates/usage-inference.d.ts +19 -0
  328. package/dist/workspace/templates/usage-inference.d.ts.map +1 -0
  329. package/dist/workspace/templates/usage-inference.js +125 -0
  330. package/dist/workspace/templates/usage-inference.js.map +1 -0
  331. package/dist/workspace/types.d.ts +145 -0
  332. package/dist/workspace/types.d.ts.map +1 -0
  333. package/dist/workspace/types.js +17 -0
  334. package/dist/workspace/types.js.map +1 -0
  335. package/docs/DESIGN-agentic-workspace.md +2057 -0
  336. package/docs/DESIGN-semantic-memory-knowledge-bank.md +1789 -0
  337. package/docs/DESIGN-session-bank.md +1134 -0
  338. package/docs/DESIGN-team-extraction-pipeline.md +1369 -0
  339. package/docs/DESIGN-workspace-migration.md +1079 -0
  340. package/docs/PLAN-agentic-workspace-implementation.md +717 -0
  341. package/docs/PLAN-graph-migration.md +299 -0
  342. package/docs/PLAN-session-bank-implementation.md +474 -0
  343. package/docs/PROPOSAL-team-aware-learning.md +1080 -0
  344. package/docs/RESEARCH-semantic-memory-knowledge-structures.md +517 -0
  345. package/docs/RESEARCH-team-trajectory-learning.md +553 -0
  346. package/gaps.md +204 -0
  347. package/package.json +24 -6
  348. package/references/agent-workspace/CLAUDE.md +74 -0
  349. package/references/agent-workspace/README.md +587 -0
  350. package/references/agent-workspace/media/banner.png +0 -0
  351. package/references/agent-workspace/package-lock.json +2061 -0
  352. package/references/agent-workspace/package.json +54 -0
  353. package/references/agent-workspace/src/handle.ts +122 -0
  354. package/references/agent-workspace/src/index.ts +32 -0
  355. package/references/agent-workspace/src/manager.ts +102 -0
  356. package/references/agent-workspace/src/readers/json.ts +71 -0
  357. package/references/agent-workspace/src/readers/markdown.ts +37 -0
  358. package/references/agent-workspace/src/readers/raw.ts +27 -0
  359. package/references/agent-workspace/src/types.ts +68 -0
  360. package/references/agent-workspace/src/validation.ts +93 -0
  361. package/references/agent-workspace/src/writers/json.ts +17 -0
  362. package/references/agent-workspace/src/writers/markdown.ts +27 -0
  363. package/references/agent-workspace/src/writers/raw.ts +22 -0
  364. package/references/agent-workspace/tests/errors.test.ts +652 -0
  365. package/references/agent-workspace/tests/handle.test.ts +144 -0
  366. package/references/agent-workspace/tests/manager.test.ts +124 -0
  367. package/references/agent-workspace/tests/readers.test.ts +205 -0
  368. package/references/agent-workspace/tests/validation.test.ts +196 -0
  369. package/references/agent-workspace/tests/writers.test.ts +108 -0
  370. package/references/agent-workspace/tsconfig.json +20 -0
  371. package/references/agent-workspace/tsup.config.ts +9 -0
  372. package/references/minimem/.claude/settings.json +7 -0
  373. package/references/minimem/.sudocode/issues.jsonl +18 -0
  374. package/references/minimem/.sudocode/specs.jsonl +1 -0
  375. package/references/minimem/CLAUDE.md +310 -0
  376. package/references/minimem/README.md +556 -0
  377. package/references/minimem/claude-plugin/.claude-plugin/plugin.json +10 -0
  378. package/references/minimem/claude-plugin/.mcp.json +7 -0
  379. package/references/minimem/claude-plugin/README.md +158 -0
  380. package/references/minimem/claude-plugin/commands/recall.md +47 -0
  381. package/references/minimem/claude-plugin/commands/remember.md +41 -0
  382. package/references/minimem/claude-plugin/hooks/__tests__/hooks.test.ts +272 -0
  383. package/references/minimem/claude-plugin/hooks/hooks.json +27 -0
  384. package/references/minimem/claude-plugin/hooks/session-end.sh +86 -0
  385. package/references/minimem/claude-plugin/hooks/session-start.sh +85 -0
  386. package/references/minimem/claude-plugin/skills/memory/SKILL.md +108 -0
  387. package/references/minimem/package-lock.json +5373 -0
  388. package/references/minimem/package.json +60 -0
  389. package/references/minimem/scripts/postbuild.js +35 -0
  390. package/references/minimem/src/__tests__/edge-cases.test.ts +371 -0
  391. package/references/minimem/src/__tests__/errors.test.ts +265 -0
  392. package/references/minimem/src/__tests__/helpers.ts +199 -0
  393. package/references/minimem/src/__tests__/internal.test.ts +407 -0
  394. package/references/minimem/src/__tests__/knowledge.test.ts +287 -0
  395. package/references/minimem/src/__tests__/minimem.integration.test.ts +1127 -0
  396. package/references/minimem/src/__tests__/session.test.ts +190 -0
  397. package/references/minimem/src/cli/__tests__/commands.test.ts +759 -0
  398. package/references/minimem/src/cli/commands/__tests__/conflicts.test.ts +141 -0
  399. package/references/minimem/src/cli/commands/append.ts +76 -0
  400. package/references/minimem/src/cli/commands/config.ts +262 -0
  401. package/references/minimem/src/cli/commands/conflicts.ts +413 -0
  402. package/references/minimem/src/cli/commands/daemon.ts +169 -0
  403. package/references/minimem/src/cli/commands/index.ts +12 -0
  404. package/references/minimem/src/cli/commands/init.ts +88 -0
  405. package/references/minimem/src/cli/commands/mcp.ts +177 -0
  406. package/references/minimem/src/cli/commands/push-pull.ts +213 -0
  407. package/references/minimem/src/cli/commands/search.ts +158 -0
  408. package/references/minimem/src/cli/commands/status.ts +84 -0
  409. package/references/minimem/src/cli/commands/sync-init.ts +290 -0
  410. package/references/minimem/src/cli/commands/sync.ts +70 -0
  411. package/references/minimem/src/cli/commands/upsert.ts +197 -0
  412. package/references/minimem/src/cli/config.ts +584 -0
  413. package/references/minimem/src/cli/index.ts +264 -0
  414. package/references/minimem/src/cli/shared.ts +161 -0
  415. package/references/minimem/src/cli/sync/__tests__/central.test.ts +152 -0
  416. package/references/minimem/src/cli/sync/__tests__/conflicts.test.ts +209 -0
  417. package/references/minimem/src/cli/sync/__tests__/daemon.test.ts +118 -0
  418. package/references/minimem/src/cli/sync/__tests__/detection.test.ts +207 -0
  419. package/references/minimem/src/cli/sync/__tests__/integration.test.ts +476 -0
  420. package/references/minimem/src/cli/sync/__tests__/registry.test.ts +363 -0
  421. package/references/minimem/src/cli/sync/__tests__/state.test.ts +255 -0
  422. package/references/minimem/src/cli/sync/__tests__/validation.test.ts +193 -0
  423. package/references/minimem/src/cli/sync/__tests__/watcher.test.ts +178 -0
  424. package/references/minimem/src/cli/sync/central.ts +292 -0
  425. package/references/minimem/src/cli/sync/conflicts.ts +204 -0
  426. package/references/minimem/src/cli/sync/daemon.ts +407 -0
  427. package/references/minimem/src/cli/sync/detection.ts +138 -0
  428. package/references/minimem/src/cli/sync/index.ts +107 -0
  429. package/references/minimem/src/cli/sync/operations.ts +373 -0
  430. package/references/minimem/src/cli/sync/registry.ts +279 -0
  431. package/references/minimem/src/cli/sync/state.ts +355 -0
  432. package/references/minimem/src/cli/sync/validation.ts +206 -0
  433. package/references/minimem/src/cli/sync/watcher.ts +234 -0
  434. package/references/minimem/src/cli/version.ts +34 -0
  435. package/references/minimem/src/core/index.ts +9 -0
  436. package/references/minimem/src/core/indexer.ts +628 -0
  437. package/references/minimem/src/core/searcher.ts +221 -0
  438. package/references/minimem/src/db/schema.ts +183 -0
  439. package/references/minimem/src/db/sqlite-vec.ts +24 -0
  440. package/references/minimem/src/embeddings/__tests__/embeddings.test.ts +431 -0
  441. package/references/minimem/src/embeddings/batch-gemini.ts +392 -0
  442. package/references/minimem/src/embeddings/batch-openai.ts +409 -0
  443. package/references/minimem/src/embeddings/embeddings.ts +434 -0
  444. package/references/minimem/src/index.ts +109 -0
  445. package/references/minimem/src/internal.ts +299 -0
  446. package/references/minimem/src/minimem.ts +1276 -0
  447. package/references/minimem/src/search/__tests__/hybrid.test.ts +247 -0
  448. package/references/minimem/src/search/graph.ts +234 -0
  449. package/references/minimem/src/search/hybrid.ts +151 -0
  450. package/references/minimem/src/search/search.ts +256 -0
  451. package/references/minimem/src/server/__tests__/mcp.test.ts +341 -0
  452. package/references/minimem/src/server/__tests__/tools.test.ts +364 -0
  453. package/references/minimem/src/server/mcp.ts +326 -0
  454. package/references/minimem/src/server/tools.ts +720 -0
  455. package/references/minimem/src/session.ts +460 -0
  456. package/references/minimem/tsconfig.json +19 -0
  457. package/references/minimem/tsup.config.ts +26 -0
  458. package/references/minimem/vitest.config.ts +24 -0
  459. package/references/skill-tree/.claude/settings.json +6 -0
  460. package/references/skill-tree/.sudocode/issues.jsonl +11 -0
  461. package/references/skill-tree/.sudocode/specs.jsonl +1 -0
  462. package/references/skill-tree/CLAUDE.md +150 -0
  463. package/references/skill-tree/README.md +324 -0
  464. package/references/skill-tree/docs/GAPS_v1.md +221 -0
  465. package/references/skill-tree/docs/INTEGRATION_PLAN.md +467 -0
  466. package/references/skill-tree/docs/TODOS.md +91 -0
  467. package/references/skill-tree/docs/anthropic_skill_guide.md +1364 -0
  468. package/references/skill-tree/docs/design/federated-skill-trees.md +524 -0
  469. package/references/skill-tree/docs/design/multi-agent-sync.md +759 -0
  470. package/references/skill-tree/docs/scraper/BRAINSTORM.md +583 -0
  471. package/references/skill-tree/docs/scraper/POC_PLAN.md +420 -0
  472. package/references/skill-tree/docs/scraper/README.md +170 -0
  473. package/references/skill-tree/examples/basic-usage.ts +190 -0
  474. package/references/skill-tree/package-lock.json +1509 -0
  475. package/references/skill-tree/package.json +66 -0
  476. package/references/skill-tree/scraper/README.md +123 -0
  477. package/references/skill-tree/scraper/docs/DESIGN.md +683 -0
  478. package/references/skill-tree/scraper/docs/PLAN.md +336 -0
  479. package/references/skill-tree/scraper/drizzle.config.ts +10 -0
  480. package/references/skill-tree/scraper/package-lock.json +6329 -0
  481. package/references/skill-tree/scraper/package.json +68 -0
  482. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-description.md +7 -0
  483. package/references/skill-tree/scraper/test/fixtures/invalid-skill/missing-name.md +7 -0
  484. package/references/skill-tree/scraper/test/fixtures/minimal-skill/SKILL.md +27 -0
  485. package/references/skill-tree/scraper/test/fixtures/skill-json/SKILL.json +21 -0
  486. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/SKILL.md +54 -0
  487. package/references/skill-tree/scraper/test/fixtures/skill-with-meta/_meta.json +24 -0
  488. package/references/skill-tree/scraper/test/fixtures/valid-skill/SKILL.md +93 -0
  489. package/references/skill-tree/scraper/test/fixtures/valid-skill/_meta.json +22 -0
  490. package/references/skill-tree/scraper/tsup.config.ts +14 -0
  491. package/references/skill-tree/scraper/vitest.config.ts +17 -0
  492. package/references/skill-tree/scripts/convert-to-vitest.ts +166 -0
  493. package/references/skill-tree/skills/skill-writer/SKILL.md +339 -0
  494. package/references/skill-tree/skills/skill-writer/references/examples.md +326 -0
  495. package/references/skill-tree/skills/skill-writer/references/patterns.md +210 -0
  496. package/references/skill-tree/skills/skill-writer/references/quality-checklist.md +123 -0
  497. package/references/skill-tree/test/run-all.ts +106 -0
  498. package/references/skill-tree/test/utils.ts +128 -0
  499. package/references/skill-tree/vitest.config.ts +16 -0
  500. package/src/atlas.ts +525 -13
  501. package/src/embeddings/provider.ts +10 -3
  502. package/src/index.ts +127 -5
  503. package/src/learning/index.ts +41 -6
  504. package/src/learning/knowledge-extractor.ts +470 -0
  505. package/src/learning/meta-learner.ts +54 -0
  506. package/src/learning/pipeline.ts +87 -8
  507. package/src/learning/team-ingester.ts +499 -0
  508. package/src/learning/team-meta-learner.ts +558 -0
  509. package/src/learning/team-pipeline.ts +364 -0
  510. package/src/learning/trajectory-sources/dataclaw.ts +403 -0
  511. package/src/learning/trajectory-sources/entire.ts +240 -0
  512. package/src/learning/trajectory-sources/file.ts +136 -0
  513. package/src/learning/trajectory-sources/huggingface.ts +248 -0
  514. package/src/learning/trajectory-sources/in-memory.ts +61 -0
  515. package/src/learning/trajectory-sources/index.ts +15 -0
  516. package/src/learning/trajectory-sources/pipeline.ts +69 -0
  517. package/src/memory/graph-layers/base.ts +184 -0
  518. package/src/memory/graph-layers/causal.ts +16 -0
  519. package/src/memory/graph-layers/entity.ts +16 -0
  520. package/src/memory/graph-layers/index.ts +5 -0
  521. package/src/memory/graph-layers/semantic.ts +16 -0
  522. package/src/memory/graph-layers/temporal.ts +16 -0
  523. package/src/memory/index.ts +45 -0
  524. package/src/memory/knowledge-bank.ts +1260 -0
  525. package/src/memory/knowledge-defrag.ts +329 -0
  526. package/src/memory/knowledge-graph.ts +361 -0
  527. package/src/memory/search-provider.ts +35 -0
  528. package/src/memory/search-providers/index.ts +3 -0
  529. package/src/memory/search-providers/minimem.ts +84 -0
  530. package/src/memory/search-providers/text-similarity.ts +35 -0
  531. package/src/memory/skill-exporter.ts +357 -0
  532. package/src/memory/system.ts +61 -8
  533. package/src/memory/team-experience.ts +604 -0
  534. package/src/runtime/backends/acp-protocol.ts +231 -0
  535. package/src/runtime/backends/acp.ts +57 -196
  536. package/src/runtime/backends/index.ts +14 -0
  537. package/src/runtime/backends/macro-agent.ts +177 -0
  538. package/src/runtime/compute-provider.ts +206 -0
  539. package/src/runtime/index.ts +22 -0
  540. package/src/runtime/manager.ts +167 -23
  541. package/src/runtime/types.ts +41 -0
  542. package/src/search/evaluator.ts +29 -4
  543. package/src/search/index.ts +9 -0
  544. package/src/search/refinement-loop.ts +106 -12
  545. package/src/search/team-router.ts +459 -0
  546. package/src/session-bank/git-reader.ts +190 -0
  547. package/src/session-bank/index.ts +24 -0
  548. package/src/session-bank/parser.ts +366 -0
  549. package/src/session-bank/session-bank.ts +464 -0
  550. package/src/session-bank/types.ts +173 -0
  551. package/src/surfacing/index.ts +23 -0
  552. package/src/surfacing/publisher.ts +23 -0
  553. package/src/surfacing/skill-library.ts +31 -0
  554. package/src/surfacing/skill-publisher.ts +223 -0
  555. package/src/surfacing/sqlite-storage-adapter.ts +301 -0
  556. package/src/surfacing/team-skill-library.ts +610 -0
  557. package/src/types/config.ts +252 -0
  558. package/src/types/dataclaw.ts +99 -0
  559. package/src/types/huggingface-transformers.d.ts +12 -0
  560. package/src/types/index.ts +156 -0
  561. package/src/types/knowledge-graph.ts +246 -0
  562. package/src/types/knowledge.ts +388 -0
  563. package/src/types/team-meta.ts +212 -0
  564. package/src/types/team-playbook.ts +384 -0
  565. package/src/types/team-trajectory.ts +673 -0
  566. package/src/types/trajectory-source.ts +47 -0
  567. package/src/utils/frontmatter.ts +118 -0
  568. package/src/utils/index.ts +7 -0
  569. package/src/workspace/index.ts +48 -0
  570. package/src/workspace/runner.ts +281 -0
  571. package/src/workspace/skill-converter.ts +288 -0
  572. package/src/workspace/templates/index.ts +64 -0
  573. package/src/workspace/templates/knowledge-defrag.ts +223 -0
  574. package/src/workspace/templates/knowledge-extraction.ts +337 -0
  575. package/src/workspace/templates/meta-reflection.ts +208 -0
  576. package/src/workspace/templates/playbook-extraction.ts +240 -0
  577. package/src/workspace/templates/refinement-analysis.ts +162 -0
  578. package/src/workspace/templates/solution-evaluation.ts +199 -0
  579. package/src/workspace/templates/team-playbook-extraction.ts +631 -0
  580. package/src/workspace/templates/team-trajectory-analysis.ts +564 -0
  581. package/src/workspace/templates/trajectory-analysis.ts +234 -0
  582. package/src/workspace/templates/usage-inference.ts +163 -0
  583. package/src/workspace/types.ts +233 -0
  584. package/tests/atlas-knowledge.test.ts +165 -0
  585. package/tests/gap-fixes.test.ts +1103 -0
  586. package/tests/integration/dataclaw-e2e.test.ts +559 -0
  587. package/tests/integration/e2e.test.ts +407 -0
  588. package/tests/integration/entire-e2e.test.ts +187 -0
  589. package/tests/integration/huggingface-e2e.test.ts +627 -0
  590. package/tests/integration/session-bank.test.ts +225 -0
  591. package/tests/integration/skill-tree-wiring.test.ts +152 -0
  592. package/tests/learning/dataclaw-trajectory-source.test.ts +642 -0
  593. package/tests/learning/entire-trajectory-source.test.ts +380 -0
  594. package/tests/learning/huggingface-trajectory-source.test.ts +817 -0
  595. package/tests/learning/knowledge-extractor.test.ts +491 -0
  596. package/tests/learning/team-ingester.test.ts +349 -0
  597. package/tests/learning/team-meta-learner.test.ts +618 -0
  598. package/tests/learning/team-pipeline.test.ts +334 -0
  599. package/tests/learning/trajectory-sources.test.ts +312 -0
  600. package/tests/memory/graph-layers/semantic.test.ts +219 -0
  601. package/tests/memory/knowledge-bank-extraction.test.ts +558 -0
  602. package/tests/memory/knowledge-bank.test.ts +705 -0
  603. package/tests/memory/knowledge-defrag.test.ts +366 -0
  604. package/tests/memory/knowledge-evolution.test.ts +563 -0
  605. package/tests/memory/knowledge-graph.test.ts +492 -0
  606. package/tests/memory/knowledge-inbox.test.ts +258 -0
  607. package/tests/memory/knowledge-minimem.test.ts +251 -0
  608. package/tests/memory/skill-exporter.test.ts +470 -0
  609. package/tests/memory/team-experience.test.ts +411 -0
  610. package/tests/runtime/agent-manager.test.ts +1 -1
  611. package/tests/runtime/compute-provider.test.ts +288 -0
  612. package/tests/runtime/delegate.test.ts +349 -0
  613. package/tests/runtime/macro-agent-backend.test.ts +266 -0
  614. package/tests/search/team-router.test.ts +376 -0
  615. package/tests/session-bank/fixtures/multi-tool-session/full.jsonl +12 -0
  616. package/tests/session-bank/fixtures/multi-tool-session/metadata.json +28 -0
  617. package/tests/session-bank/fixtures/root-metadata.json +18 -0
  618. package/tests/session-bank/fixtures/simple-session/full.jsonl +6 -0
  619. package/tests/session-bank/fixtures/simple-session/metadata.json +38 -0
  620. package/tests/session-bank/git-reader.test.ts +232 -0
  621. package/tests/session-bank/parser.test.ts +321 -0
  622. package/tests/session-bank/session-bank.test.ts +546 -0
  623. package/tests/surfacing/skill-publisher.test.ts +398 -0
  624. package/tests/surfacing/sqlite-storage-adapter.test.ts +218 -0
  625. package/tests/surfacing/team-skill-library.test.ts +444 -0
  626. package/tests/types/team-meta.test.ts +147 -0
  627. package/tests/types/team-playbook.test.ts +246 -0
  628. package/tests/types/team-trajectory.test.ts +557 -0
  629. package/tests/utils/frontmatter.test.ts +208 -0
  630. package/tests/workspace/full-flow.test.ts +839 -0
  631. package/tests/workspace/manager.test.ts +215 -0
  632. package/tests/workspace/runner.test.ts +330 -0
  633. package/tests/workspace/skill-converter.test.ts +205 -0
  634. package/tests/workspace/templates/knowledge-extraction.test.ts +235 -0
  635. package/tests/workspace/templates/team-playbook-extraction.test.ts +341 -0
  636. package/tests/workspace/templates/team-trajectory-analysis.test.ts +417 -0
  637. package/src/learning/llm-extractor.ts +0 -542
@@ -0,0 +1,234 @@
1
+ /**
2
+ * Trajectory Analysis Template
3
+ *
4
+ * Replaces the heuristic TrajectoryAnalyzer with workspace-based agentic analysis.
5
+ * Consolidates credit assignment, key step identification, error pattern detection,
6
+ * and abstractability assessment into a single template.
7
+ *
8
+ * - Simple, short successful trajectories → heuristic fallback (zero cost)
9
+ * - Failed or complex trajectories → agent analyzes semantically
10
+ */
11
+
12
+ import type { WorkspaceHandle } from 'agent-workspace';
13
+ import type { Trajectory, CreditStrategy } from '../../types/index.js';
14
+ import type { AnalysisResult, ErrorPattern, TrainingExample } from '../../learning/analyzer.js';
15
+ import { createAnalyzer } from '../../learning/analyzer.js';
16
+ import type {
17
+ AgenticTaskTemplate,
18
+ AnalysisComplexity,
19
+ ProcessingContext,
20
+ } from '../types.js';
21
+ import type { ComputeRequirements } from '../../runtime/compute-provider.js';
22
+
23
+ // ============================================================
24
+ // Input / Output Types
25
+ // ============================================================
26
+
27
+ export interface TrajectoryAnalysisInput {
28
+ trajectory: Trajectory;
29
+ creditStrategy: CreditStrategy;
30
+ }
31
+
32
+ // Output is AnalysisResult (reused from learning/analyzer.ts)
33
+ // No new types needed.
34
+
35
+ // ============================================================
36
+ // Template Implementation
37
+ // ============================================================
38
+
39
+ export const trajectoryAnalysisTemplate: AgenticTaskTemplate<
40
+ TrajectoryAnalysisInput,
41
+ AnalysisResult
42
+ > = {
43
+ taskType: 'trajectory-analysis',
44
+ domain: 'trajectory-analysis',
45
+ description: 'Analyze agent trajectory for credit assignment, key steps, error patterns, and abstractability',
46
+
47
+ // === COMPLEXITY ASSESSMENT ===
48
+
49
+ assessComplexity(input: TrajectoryAnalysisInput): AnalysisComplexity {
50
+ const { trajectory } = input;
51
+
52
+ // Short successful trajectories → heuristic (existing analyzer is fine)
53
+ if (trajectory.steps.length <= 5 && trajectory.outcome.success) {
54
+ return 'heuristic';
55
+ }
56
+
57
+ // Very short trajectories (even if failed) → lightweight
58
+ if (trajectory.steps.length <= 3) {
59
+ return 'lightweight';
60
+ }
61
+
62
+ // Failed trajectories benefit most from semantic analysis
63
+ if (!trajectory.outcome.success) {
64
+ return 'standard';
65
+ }
66
+
67
+ // Long trajectories need agent to identify what actually mattered
68
+ if (trajectory.steps.length > 20) {
69
+ return 'standard';
70
+ }
71
+
72
+ return 'lightweight';
73
+ },
74
+
75
+ // === HEURISTIC FALLBACK ===
76
+
77
+ async heuristicFallback(input: TrajectoryAnalysisInput): Promise<AnalysisResult> {
78
+ const analyzer = createAnalyzer(input.creditStrategy);
79
+ return analyzer.analyze(input.trajectory);
80
+ },
81
+
82
+ // === WORKSPACE SETUP ===
83
+
84
+ async prepareWorkspace(
85
+ input: TrajectoryAnalysisInput,
86
+ handle: WorkspaceHandle
87
+ ): Promise<void> {
88
+ // Write trajectory context
89
+ const { trajectory } = input;
90
+ await handle.writeJson('input', 'context.json', {
91
+ taskId: trajectory.task.id,
92
+ taskDomain: trajectory.task.domain,
93
+ taskDescription: trajectory.task.description,
94
+ outcome: {
95
+ success: trajectory.outcome.success,
96
+ partialScore: trajectory.outcome.partialScore,
97
+ errorInfo: trajectory.outcome.errorInfo,
98
+ },
99
+ stepCount: trajectory.steps.length,
100
+ wallTimeSeconds: trajectory.wallTimeSeconds,
101
+ llmCalls: trajectory.llmCalls,
102
+ totalTokens: trajectory.totalTokens,
103
+ });
104
+
105
+ // Write steps as JSONL for efficient processing
106
+ await handle.writeJsonl('input', 'steps.jsonl',
107
+ trajectory.steps.map((step, i) => ({
108
+ index: i,
109
+ thought: step.thought,
110
+ action: step.action,
111
+ observation: step.observation,
112
+ metadata: step.metadata,
113
+ }))
114
+ );
115
+ },
116
+
117
+ // === PROMPT ===
118
+
119
+ buildTaskPrompt(input: TrajectoryAnalysisInput): string {
120
+ const { trajectory } = input;
121
+ const outcomeStr = trajectory.outcome.success ? 'SUCCESSFUL' : 'FAILED';
122
+
123
+ return [
124
+ `Analyze this ${outcomeStr} agent trajectory (${trajectory.steps.length} steps, ${trajectory.wallTimeSeconds}s wall time).`,
125
+ '',
126
+ 'Read the trajectory from input/context.json and input/steps.jsonl.',
127
+ '',
128
+ 'Perform the following analyses:',
129
+ '',
130
+ '1. **Credit Assignment**: For each step, assign an attribution score (0.0 to 1.0)',
131
+ ' indicating how much that step contributed to the final outcome.',
132
+ ' Consider causal impact, not just proximity to the end.',
133
+ '',
134
+ '2. **Key Steps**: Identify the indices of pivotal steps (attribution >= 0.15).',
135
+ '',
136
+ '3. **Error Patterns**: Detect any error patterns (type, signature, description, optional fix).',
137
+ ' Look for: timeouts, missing resources, syntax errors, type errors, repeated actions, loops.',
138
+ '',
139
+ '4. **Abstractability**: Is this trajectory worth extracting patterns from?',
140
+ ' Criteria: successful with >= 2 key steps, OR failed with clear error pattern and partial progress.',
141
+ '',
142
+ '5. **Training Examples**: Extract thought→action pairs from key steps.',
143
+ '',
144
+ 'Write your analysis to output/analysis.json with this exact schema:',
145
+ '```json',
146
+ '{',
147
+ ' "success": boolean,',
148
+ ' "keySteps": number[],',
149
+ ' "stepAttribution": number[],',
150
+ ' "errorPatterns": [{ "type": string, "signature": string, "description": string, "suggestedFix"?: string }],',
151
+ ' "abstractable": boolean,',
152
+ ' "trainingExamples": [{ "input": string, "output": string, "stepIndex": number }]',
153
+ '}',
154
+ '```',
155
+ ].join('\n');
156
+ },
157
+
158
+ // === SKILLS & RESOURCES ===
159
+
160
+ getSkills() {
161
+ return [];
162
+ },
163
+
164
+ getResources() {
165
+ return [];
166
+ },
167
+
168
+ // === OUTPUT ===
169
+
170
+ outputConfig: {
171
+ files: [
172
+ {
173
+ path: 'analysis.json',
174
+ format: 'json' as const,
175
+ required: true,
176
+ description: 'Trajectory analysis result with credit assignment, key steps, error patterns',
177
+ },
178
+ ],
179
+ },
180
+
181
+ async collectOutput(handle: WorkspaceHandle): Promise<AnalysisResult> {
182
+ const raw = await handle.readJson('output', 'analysis.json');
183
+ const data = raw as Record<string, unknown>;
184
+
185
+ // Validate and coerce the output into AnalysisResult
186
+ return {
187
+ success: Boolean(data.success),
188
+ keySteps: Array.isArray(data.keySteps) ? data.keySteps.map(Number) : [],
189
+ stepAttribution: Array.isArray(data.stepAttribution)
190
+ ? data.stepAttribution.map(Number)
191
+ : [],
192
+ errorPatterns: Array.isArray(data.errorPatterns)
193
+ ? (data.errorPatterns as ErrorPattern[])
194
+ : [],
195
+ abstractable: Boolean(data.abstractable),
196
+ trainingExamples: Array.isArray(data.trainingExamples)
197
+ ? (data.trainingExamples as TrainingExample[])
198
+ : [],
199
+ };
200
+ },
201
+
202
+ async processOutput(
203
+ _output: AnalysisResult,
204
+ _input: TrajectoryAnalysisInput,
205
+ _context: ProcessingContext
206
+ ): Promise<void> {
207
+ // No side effects during analysis — the pipeline handles storage
208
+ },
209
+
210
+ // === COMPUTE ===
211
+
212
+ computeRequirements: {
213
+ mode: 'local',
214
+ complexity: 'lightweight',
215
+ },
216
+
217
+ getComputeRequirements(
218
+ _input: TrajectoryAnalysisInput,
219
+ complexity: AnalysisComplexity
220
+ ): ComputeRequirements {
221
+ return {
222
+ mode: 'local',
223
+ complexity,
224
+ // Standard analysis can take a bit longer
225
+ timeout: complexity === 'standard' ? 180_000 : 120_000,
226
+ };
227
+ },
228
+
229
+ // === CONFIG ===
230
+
231
+ agentType: 'claude-code',
232
+ timeout: 120_000,
233
+ captureToolCalls: true,
234
+ };
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Usage Inference Template
3
+ *
4
+ * Replaces the heuristic PlaybookUsageInference with workspace-based
5
+ * semantic matching that determines which injected playbooks were
6
+ * actually followed by the agent.
7
+ *
8
+ * - No playbooks or very few steps → heuristic fallback
9
+ * - Otherwise → agent reads trajectory and judges playbook adherence
10
+ */
11
+
12
+ import type { WorkspaceHandle } from 'agent-workspace';
13
+ import type { Trajectory, Playbook } from '../../types/index.js';
14
+ import type { PlaybookUsageResult } from '../../learning/usage-inference.js';
15
+ import { createUsageInference } from '../../learning/usage-inference.js';
16
+ import type {
17
+ AgenticTaskTemplate,
18
+ AnalysisComplexity,
19
+ } from '../types.js';
20
+
21
+ // ============================================================
22
+ // Input / Output Types
23
+ // ============================================================
24
+
25
+ export interface UsageInferenceInput {
26
+ trajectory: Trajectory;
27
+ injectedPlaybooks: Playbook[];
28
+ }
29
+
30
+ // Output: PlaybookUsageResult[] (reused from learning/usage-inference.ts)
31
+
32
+ // ============================================================
33
+ // Template Implementation
34
+ // ============================================================
35
+
36
+ export const usageInferenceTemplate: AgenticTaskTemplate<
37
+ UsageInferenceInput,
38
+ PlaybookUsageResult[]
39
+ > = {
40
+ taskType: 'usage-inference',
41
+ domain: 'usage-inference',
42
+ description: 'Determine which injected playbooks were actually followed',
43
+
44
+ assessComplexity(input: UsageInferenceInput): AnalysisComplexity {
45
+ if (input.injectedPlaybooks.length === 0) return 'heuristic';
46
+ if (input.injectedPlaybooks.length <= 2 && input.trajectory.steps.length <= 10) {
47
+ return 'heuristic';
48
+ }
49
+ return 'lightweight';
50
+ },
51
+
52
+ async heuristicFallback(input: UsageInferenceInput): Promise<PlaybookUsageResult[]> {
53
+ const inference = createUsageInference();
54
+ return inference.inferUsage(input.trajectory, input.injectedPlaybooks);
55
+ },
56
+
57
+ async prepareWorkspace(
58
+ input: UsageInferenceInput,
59
+ handle: WorkspaceHandle
60
+ ): Promise<void> {
61
+ const { trajectory, injectedPlaybooks } = input;
62
+
63
+ // Write trajectory summary + steps
64
+ await handle.writeJson('input', 'trajectory.json', {
65
+ taskDescription: trajectory.task.description,
66
+ domain: trajectory.task.domain,
67
+ success: trajectory.outcome.success,
68
+ stepCount: trajectory.steps.length,
69
+ steps: trajectory.steps.map((step, i) => ({
70
+ index: i,
71
+ thought: step.thought,
72
+ action: step.action,
73
+ observation: step.observation?.slice(0, 300),
74
+ })),
75
+ });
76
+
77
+ // Write injected playbooks
78
+ await handle.writeJson('input', 'playbooks.json',
79
+ injectedPlaybooks.map(pb => ({
80
+ id: pb.id,
81
+ name: pb.name,
82
+ strategy: pb.guidance.strategy,
83
+ tactics: pb.guidance.tactics,
84
+ steps: pb.guidance.steps,
85
+ successIndicators: pb.verification.successIndicators,
86
+ }))
87
+ );
88
+ },
89
+
90
+ buildTaskPrompt(input: UsageInferenceInput): string {
91
+ return [
92
+ `Analyze whether the agent followed ${input.injectedPlaybooks.length} injected playbooks.`,
93
+ '',
94
+ 'Read input/trajectory.json for the agent execution trace.',
95
+ 'Read input/playbooks.json for the playbooks that were injected.',
96
+ '',
97
+ 'For each playbook, determine:',
98
+ '1. Was the playbook guidance followed? Look for tactical alignment, not literal matches.',
99
+ '2. How confident are you? (0.0-1.0)',
100
+ '3. Was the outcome successful when following this guidance?',
101
+ '4. Which trajectory steps aligned with the playbook?',
102
+ '',
103
+ 'Write results to output/usage.json:',
104
+ '```json',
105
+ '[',
106
+ ' {',
107
+ ' "playbookId": "id",',
108
+ ' "playbookName": "name",',
109
+ ' "wasUsed": boolean,',
110
+ ' "usageConfidence": 0.0-1.0,',
111
+ ' "wasSuccessful": boolean,',
112
+ ' "matchedSteps": [step indices],',
113
+ ' "context": "brief explanation of usage or non-usage"',
114
+ ' }',
115
+ ']',
116
+ '```',
117
+ ].join('\n');
118
+ },
119
+
120
+ getSkills() { return []; },
121
+ getResources() { return []; },
122
+
123
+ outputConfig: {
124
+ files: [
125
+ {
126
+ path: 'usage.json',
127
+ format: 'json' as const,
128
+ required: true,
129
+ description: 'Playbook usage inference results',
130
+ },
131
+ ],
132
+ },
133
+
134
+ async collectOutput(handle: WorkspaceHandle): Promise<PlaybookUsageResult[]> {
135
+ const raw = await handle.readJson('output', 'usage.json');
136
+ if (!Array.isArray(raw)) return [];
137
+
138
+ return (raw as Record<string, unknown>[]).map(item => ({
139
+ playbookId: String(item.playbookId ?? ''),
140
+ playbookName: String(item.playbookName ?? ''),
141
+ wasUsed: Boolean(item.wasUsed),
142
+ usageConfidence: typeof item.usageConfidence === 'number' ? item.usageConfidence : 0,
143
+ wasSuccessful: Boolean(item.wasSuccessful),
144
+ matchedSteps: Array.isArray(item.matchedSteps)
145
+ ? item.matchedSteps.map(Number)
146
+ : [],
147
+ context: item.context ? String(item.context) : undefined,
148
+ }));
149
+ },
150
+
151
+ async processOutput(): Promise<void> {
152
+ // Atlas handles storage and skill library recording
153
+ },
154
+
155
+ computeRequirements: {
156
+ mode: 'local',
157
+ complexity: 'lightweight',
158
+ },
159
+
160
+ agentType: 'claude-code',
161
+ timeout: 120_000,
162
+ captureToolCalls: true,
163
+ };
@@ -0,0 +1,233 @@
1
+ import type { WorkspaceHandle, OutputSpec } from 'agent-workspace';
2
+ import type { MemorySystem, MemoryQueryResultV2 } from '../memory/system.js';
3
+ import type { LearningPipeline } from '../learning/pipeline.js';
4
+ import type { ComputeRequirements } from '../runtime/compute-provider.js';
5
+
6
+ // Re-export agent-workspace types used by consumers
7
+ export type { WorkspaceHandle, OutputSpec, OutputFileSpec, ValidationResult } from 'agent-workspace';
8
+
9
+ // ============================================================
10
+ // Agent Skills
11
+ // ============================================================
12
+
13
+ /**
14
+ * Skill to load into workspace skills/ directory.
15
+ * Agent Skills open standard format (SKILL.md).
16
+ */
17
+ export interface AgentSkillSpec {
18
+ /** Skill directory name */
19
+ name: string;
20
+ /** SKILL.md content */
21
+ content: string;
22
+ /** Source of this skill */
23
+ source: 'playbook-conversion' | 'curated' | 'extracted';
24
+ }
25
+
26
+ // ============================================================
27
+ // Resources
28
+ // ============================================================
29
+
30
+ /**
31
+ * Supplementary resource to load into workspace resources/ directory.
32
+ */
33
+ export interface ResourceSpec {
34
+ /** Path relative to resources/ directory */
35
+ path: string;
36
+ /** How to populate this resource */
37
+ type: 'directory' | 'file' | 'symlink';
38
+ /** Source path (for symlink/copy) or content (for file) */
39
+ source: string;
40
+ /** Description for the agent */
41
+ description?: string;
42
+ }
43
+
44
+ // ============================================================
45
+ // Complexity Assessment
46
+ // ============================================================
47
+
48
+ /**
49
+ * Complexity level determines whether to use heuristic or agentic analysis.
50
+ */
51
+ export type AnalysisComplexity =
52
+ | 'heuristic' // Use heuristicFallback(), no agent needed
53
+ | 'lightweight' // Agent with small budget, simple workspace
54
+ | 'standard' // Agent with moderate budget, full workspace
55
+ | 'thorough'; // Agent with large budget, full workspace, more time
56
+
57
+ // ============================================================
58
+ // Processing Context
59
+ // ============================================================
60
+
61
+ /**
62
+ * Context passed to processOutput for storing/accumulating results.
63
+ */
64
+ export interface ProcessingContext {
65
+ memory: MemorySystem;
66
+ learningPipeline: LearningPipeline;
67
+ }
68
+
69
+ // ============================================================
70
+ // AgenticTaskTemplate
71
+ // ============================================================
72
+
73
+ /**
74
+ * Declarative recipe for an agentic analysis task.
75
+ *
76
+ * TInput: the typed input data for this analysis
77
+ * TOutput: the typed output the agent produces
78
+ */
79
+ export interface AgenticTaskTemplate<TInput, TOutput> {
80
+ /** Unique identifier for this task type */
81
+ taskType: string;
82
+
83
+ /** Domain for knowledge injection and meta-learning */
84
+ domain: string;
85
+
86
+ /** Human-readable description */
87
+ description: string;
88
+
89
+ // === WORKSPACE SETUP ===
90
+
91
+ /**
92
+ * Prepare the workspace filesystem from typed input.
93
+ * Uses the WorkspaceHandle to write input files via typed I/O methods.
94
+ */
95
+ prepareWorkspace(input: TInput, handle: WorkspaceHandle): Promise<void>;
96
+
97
+ /**
98
+ * Build the task description for the agent.
99
+ * Natural language prompt explaining what to do and what output to produce.
100
+ */
101
+ buildTaskPrompt(input: TInput): string;
102
+
103
+ // === SKILLS ===
104
+
105
+ /**
106
+ * Skills to load into the workspace skills/ directory.
107
+ * Playbooks from memory are converted to skills via the converter.
108
+ */
109
+ getSkills(input: TInput): AgentSkillSpec[];
110
+
111
+ // === RESOURCES ===
112
+
113
+ /**
114
+ * Supplementary resources for the workspace resources/ directory.
115
+ */
116
+ getResources(input: TInput): ResourceSpec[];
117
+
118
+ // === KNOWLEDGE ===
119
+
120
+ /**
121
+ * Additional memory queries beyond the automatic domain-scoped query.
122
+ */
123
+ getAdditionalKnowledge?(
124
+ input: TInput,
125
+ memory: MemorySystem
126
+ ): Promise<MemoryQueryResultV2>;
127
+
128
+ // === OUTPUT ===
129
+
130
+ /** Configuration defining the expected output shape */
131
+ outputConfig: OutputSpec;
132
+
133
+ /**
134
+ * Read and validate agent output from workspace.
135
+ * Uses the WorkspaceHandle to read output via typed I/O methods.
136
+ * Returns typed output or throws if validation fails.
137
+ */
138
+ collectOutput(handle: WorkspaceHandle): Promise<TOutput>;
139
+
140
+ /**
141
+ * Process the validated output — store results, accumulate for batch learning, etc.
142
+ */
143
+ processOutput(
144
+ output: TOutput,
145
+ input: TInput,
146
+ context: ProcessingContext
147
+ ): Promise<void>;
148
+
149
+ // === COMPLEXITY ASSESSMENT ===
150
+
151
+ /**
152
+ * Assess whether this input needs agentic analysis or heuristic fallback.
153
+ */
154
+ assessComplexity(input: TInput): AnalysisComplexity;
155
+
156
+ /**
157
+ * Heuristic fallback for simple cases.
158
+ * Called when assessComplexity returns 'heuristic'.
159
+ */
160
+ heuristicFallback?(input: TInput): Promise<TOutput>;
161
+
162
+ // === CONFIGURATION ===
163
+
164
+ /** Agent type to spawn (default: 'claude-code') */
165
+ agentType?: string;
166
+
167
+ /** Timeout for the analysis agent (default: 120_000ms) */
168
+ timeout?: number;
169
+
170
+ /** Whether to capture detailed tool calls (default: true) */
171
+ captureToolCalls?: boolean;
172
+
173
+ // === COMPUTE ===
174
+
175
+ /**
176
+ * Static compute requirements for this template.
177
+ * Used by ComputeProvider to select appropriate backend.
178
+ */
179
+ computeRequirements?: ComputeRequirements;
180
+
181
+ /**
182
+ * Dynamic compute requirements based on input and assessed complexity.
183
+ * Overrides static computeRequirements when provided.
184
+ */
185
+ getComputeRequirements?(
186
+ input: TInput,
187
+ complexity: AnalysisComplexity
188
+ ): ComputeRequirements;
189
+ }
190
+
191
+ // ============================================================
192
+ // Task Result
193
+ // ============================================================
194
+
195
+ /**
196
+ * Result from running an agentic task.
197
+ */
198
+ export interface AgenticTaskResult<TOutput> {
199
+ /** The validated output */
200
+ output: TOutput;
201
+ /** Whether heuristic or agentic path was used */
202
+ method: 'heuristic' | 'agentic';
203
+ /** Trajectory ID of the analysis agent (if agentic) */
204
+ agentTrajectoryId?: string;
205
+ /** Execution metrics */
206
+ metrics: AgenticTaskMetrics;
207
+ }
208
+
209
+ /**
210
+ * Metrics from an agentic task execution.
211
+ */
212
+ export interface AgenticTaskMetrics {
213
+ totalTimeMs: number;
214
+ tokensUsed: number;
215
+ toolCalls: number;
216
+ }
217
+
218
+ // ============================================================
219
+ // Errors
220
+ // ============================================================
221
+
222
+ /**
223
+ * Error thrown when agent output validation fails.
224
+ */
225
+ export class AgenticTaskOutputError extends Error {
226
+ constructor(
227
+ public readonly taskType: string,
228
+ public readonly cause: Error
229
+ ) {
230
+ super(`Agentic task '${taskType}' output validation failed: ${cause.message}`);
231
+ this.name = 'AgenticTaskOutputError';
232
+ }
233
+ }