cognitive-core 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/README.md +363 -2
  2. package/SKILL.md +193 -0
  3. package/dist/agents/index.d.ts +3 -0
  4. package/dist/agents/index.d.ts.map +1 -0
  5. package/dist/agents/index.js +5 -0
  6. package/dist/agents/index.js.map +1 -0
  7. package/dist/agents/mock-provider.d.ts +23 -0
  8. package/dist/agents/mock-provider.d.ts.map +1 -0
  9. package/dist/agents/mock-provider.js +71 -0
  10. package/dist/agents/mock-provider.js.map +1 -0
  11. package/dist/agents/types.d.ts +98 -0
  12. package/dist/agents/types.d.ts.map +1 -0
  13. package/dist/agents/types.js +44 -0
  14. package/dist/agents/types.js.map +1 -0
  15. package/dist/atlas.d.ts +196 -0
  16. package/dist/atlas.d.ts.map +1 -0
  17. package/dist/atlas.js +373 -0
  18. package/dist/atlas.js.map +1 -0
  19. package/dist/bin/cognitive-core.d.ts +18 -0
  20. package/dist/bin/cognitive-core.d.ts.map +1 -0
  21. package/dist/bin/cognitive-core.js +419 -0
  22. package/dist/bin/cognitive-core.js.map +1 -0
  23. package/dist/embeddings/bm25.d.ts +104 -0
  24. package/dist/embeddings/bm25.d.ts.map +1 -0
  25. package/dist/embeddings/bm25.js +264 -0
  26. package/dist/embeddings/bm25.js.map +1 -0
  27. package/dist/embeddings/index.d.ts +12 -0
  28. package/dist/embeddings/index.d.ts.map +1 -0
  29. package/dist/embeddings/index.js +16 -0
  30. package/dist/embeddings/index.js.map +1 -0
  31. package/dist/embeddings/manager.d.ts +112 -0
  32. package/dist/embeddings/manager.d.ts.map +1 -0
  33. package/dist/embeddings/manager.js +215 -0
  34. package/dist/embeddings/manager.js.map +1 -0
  35. package/dist/embeddings/provider.d.ts +101 -0
  36. package/dist/embeddings/provider.d.ts.map +1 -0
  37. package/dist/embeddings/provider.js +232 -0
  38. package/dist/embeddings/provider.js.map +1 -0
  39. package/dist/embeddings/vector-store.d.ts +101 -0
  40. package/dist/embeddings/vector-store.d.ts.map +1 -0
  41. package/dist/embeddings/vector-store.js +256 -0
  42. package/dist/embeddings/vector-store.js.map +1 -0
  43. package/dist/factory.d.ts +193 -0
  44. package/dist/factory.d.ts.map +1 -0
  45. package/dist/factory.js +109 -0
  46. package/dist/factory.js.map +1 -0
  47. package/dist/index.d.ts +43 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +84 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/learning/analyzer.d.ts +110 -0
  52. package/dist/learning/analyzer.d.ts.map +1 -0
  53. package/dist/learning/analyzer.js +213 -0
  54. package/dist/learning/analyzer.js.map +1 -0
  55. package/dist/learning/effectiveness.d.ts +158 -0
  56. package/dist/learning/effectiveness.d.ts.map +1 -0
  57. package/dist/learning/effectiveness.js +251 -0
  58. package/dist/learning/effectiveness.js.map +1 -0
  59. package/dist/learning/index.d.ts +8 -0
  60. package/dist/learning/index.d.ts.map +1 -0
  61. package/dist/learning/index.js +11 -0
  62. package/dist/learning/index.js.map +1 -0
  63. package/dist/learning/llm-extractor.d.ts +88 -0
  64. package/dist/learning/llm-extractor.d.ts.map +1 -0
  65. package/dist/learning/llm-extractor.js +372 -0
  66. package/dist/learning/llm-extractor.js.map +1 -0
  67. package/dist/learning/meta-learner.d.ts +80 -0
  68. package/dist/learning/meta-learner.d.ts.map +1 -0
  69. package/dist/learning/meta-learner.js +355 -0
  70. package/dist/learning/meta-learner.js.map +1 -0
  71. package/dist/learning/pipeline.d.ts +65 -0
  72. package/dist/learning/pipeline.d.ts.map +1 -0
  73. package/dist/learning/pipeline.js +170 -0
  74. package/dist/learning/pipeline.js.map +1 -0
  75. package/dist/learning/playbook-extractor.d.ts +113 -0
  76. package/dist/learning/playbook-extractor.d.ts.map +1 -0
  77. package/dist/learning/playbook-extractor.js +523 -0
  78. package/dist/learning/playbook-extractor.js.map +1 -0
  79. package/dist/learning/usage-inference.d.ts +82 -0
  80. package/dist/learning/usage-inference.d.ts.map +1 -0
  81. package/dist/learning/usage-inference.js +261 -0
  82. package/dist/learning/usage-inference.js.map +1 -0
  83. package/dist/mcp/index.d.ts +6 -0
  84. package/dist/mcp/index.d.ts.map +1 -0
  85. package/dist/mcp/index.js +6 -0
  86. package/dist/mcp/index.js.map +1 -0
  87. package/dist/mcp/playbook-server.d.ts +120 -0
  88. package/dist/mcp/playbook-server.d.ts.map +1 -0
  89. package/dist/mcp/playbook-server.js +427 -0
  90. package/dist/mcp/playbook-server.js.map +1 -0
  91. package/dist/memory/curated-loader.d.ts +62 -0
  92. package/dist/memory/curated-loader.d.ts.map +1 -0
  93. package/dist/memory/curated-loader.js +106 -0
  94. package/dist/memory/curated-loader.js.map +1 -0
  95. package/dist/memory/experience.d.ts +122 -0
  96. package/dist/memory/experience.d.ts.map +1 -0
  97. package/dist/memory/experience.js +392 -0
  98. package/dist/memory/experience.js.map +1 -0
  99. package/dist/memory/index.d.ts +6 -0
  100. package/dist/memory/index.d.ts.map +1 -0
  101. package/dist/memory/index.js +9 -0
  102. package/dist/memory/index.js.map +1 -0
  103. package/dist/memory/meta.d.ts +90 -0
  104. package/dist/memory/meta.d.ts.map +1 -0
  105. package/dist/memory/meta.js +362 -0
  106. package/dist/memory/meta.js.map +1 -0
  107. package/dist/memory/playbook.d.ts +133 -0
  108. package/dist/memory/playbook.d.ts.map +1 -0
  109. package/dist/memory/playbook.js +357 -0
  110. package/dist/memory/playbook.js.map +1 -0
  111. package/dist/memory/system.d.ts +167 -0
  112. package/dist/memory/system.d.ts.map +1 -0
  113. package/dist/memory/system.js +383 -0
  114. package/dist/memory/system.js.map +1 -0
  115. package/dist/runtime/backends/acp.d.ts +67 -0
  116. package/dist/runtime/backends/acp.d.ts.map +1 -0
  117. package/dist/runtime/backends/acp.js +290 -0
  118. package/dist/runtime/backends/acp.js.map +1 -0
  119. package/dist/runtime/backends/index.d.ts +5 -0
  120. package/dist/runtime/backends/index.d.ts.map +1 -0
  121. package/dist/runtime/backends/index.js +6 -0
  122. package/dist/runtime/backends/index.js.map +1 -0
  123. package/dist/runtime/backends/mock.d.ts +67 -0
  124. package/dist/runtime/backends/mock.d.ts.map +1 -0
  125. package/dist/runtime/backends/mock.js +153 -0
  126. package/dist/runtime/backends/mock.js.map +1 -0
  127. package/dist/runtime/backends/subprocess.d.ts +56 -0
  128. package/dist/runtime/backends/subprocess.d.ts.map +1 -0
  129. package/dist/runtime/backends/subprocess.js +260 -0
  130. package/dist/runtime/backends/subprocess.js.map +1 -0
  131. package/dist/runtime/flows/learning.d.ts +73 -0
  132. package/dist/runtime/flows/learning.d.ts.map +1 -0
  133. package/dist/runtime/flows/learning.js +116 -0
  134. package/dist/runtime/flows/learning.js.map +1 -0
  135. package/dist/runtime/flows/validation.d.ts +122 -0
  136. package/dist/runtime/flows/validation.d.ts.map +1 -0
  137. package/dist/runtime/flows/validation.js +223 -0
  138. package/dist/runtime/flows/validation.js.map +1 -0
  139. package/dist/runtime/index.d.ts +6 -0
  140. package/dist/runtime/index.d.ts.map +1 -0
  141. package/dist/runtime/index.js +8 -0
  142. package/dist/runtime/index.js.map +1 -0
  143. package/dist/runtime/manager.d.ts +116 -0
  144. package/dist/runtime/manager.d.ts.map +1 -0
  145. package/dist/runtime/manager.js +416 -0
  146. package/dist/runtime/manager.js.map +1 -0
  147. package/dist/runtime/types.d.ts +138 -0
  148. package/dist/runtime/types.d.ts.map +1 -0
  149. package/dist/runtime/types.js +2 -0
  150. package/dist/runtime/types.js.map +1 -0
  151. package/dist/search/evaluator.d.ts +102 -0
  152. package/dist/search/evaluator.d.ts.map +1 -0
  153. package/dist/search/evaluator.js +352 -0
  154. package/dist/search/evaluator.js.map +1 -0
  155. package/dist/search/index.d.ts +7 -0
  156. package/dist/search/index.d.ts.map +1 -0
  157. package/dist/search/index.js +11 -0
  158. package/dist/search/index.js.map +1 -0
  159. package/dist/search/refinement-loop.d.ts +73 -0
  160. package/dist/search/refinement-loop.d.ts.map +1 -0
  161. package/dist/search/refinement-loop.js +245 -0
  162. package/dist/search/refinement-loop.js.map +1 -0
  163. package/dist/search/refinement-types.d.ts +154 -0
  164. package/dist/search/refinement-types.d.ts.map +1 -0
  165. package/dist/search/refinement-types.js +99 -0
  166. package/dist/search/refinement-types.js.map +1 -0
  167. package/dist/search/router.d.ts +61 -0
  168. package/dist/search/router.d.ts.map +1 -0
  169. package/dist/search/router.js +197 -0
  170. package/dist/search/router.js.map +1 -0
  171. package/dist/search/solver.d.ts +75 -0
  172. package/dist/search/solver.d.ts.map +1 -0
  173. package/dist/search/solver.js +216 -0
  174. package/dist/search/solver.js.map +1 -0
  175. package/dist/search/verification-runner.d.ts +125 -0
  176. package/dist/search/verification-runner.d.ts.map +1 -0
  177. package/dist/search/verification-runner.js +440 -0
  178. package/dist/search/verification-runner.js.map +1 -0
  179. package/dist/surfacing/index.d.ts +2 -0
  180. package/dist/surfacing/index.d.ts.map +1 -0
  181. package/dist/surfacing/index.js +2 -0
  182. package/dist/surfacing/index.js.map +1 -0
  183. package/dist/surfacing/skill-library.d.ts +158 -0
  184. package/dist/surfacing/skill-library.d.ts.map +1 -0
  185. package/dist/surfacing/skill-library.js +429 -0
  186. package/dist/surfacing/skill-library.js.map +1 -0
  187. package/dist/types/config.d.ts +1113 -0
  188. package/dist/types/config.d.ts.map +1 -0
  189. package/dist/types/config.js +274 -0
  190. package/dist/types/config.js.map +1 -0
  191. package/dist/types/index.d.ts +9 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +14 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/memory.d.ts +339 -0
  196. package/dist/types/memory.d.ts.map +1 -0
  197. package/dist/types/memory.js +207 -0
  198. package/dist/types/memory.js.map +1 -0
  199. package/dist/types/meta.d.ts +146 -0
  200. package/dist/types/meta.d.ts.map +1 -0
  201. package/dist/types/meta.js +51 -0
  202. package/dist/types/meta.js.map +1 -0
  203. package/dist/types/outcome.d.ts +42 -0
  204. package/dist/types/outcome.d.ts.map +1 -0
  205. package/dist/types/outcome.js +50 -0
  206. package/dist/types/outcome.js.map +1 -0
  207. package/dist/types/playbook.d.ts +119 -0
  208. package/dist/types/playbook.d.ts.map +1 -0
  209. package/dist/types/playbook.js +71 -0
  210. package/dist/types/playbook.js.map +1 -0
  211. package/dist/types/step.d.ts +44 -0
  212. package/dist/types/step.d.ts.map +1 -0
  213. package/dist/types/step.js +32 -0
  214. package/dist/types/step.js.map +1 -0
  215. package/dist/types/task.d.ts +91 -0
  216. package/dist/types/task.d.ts.map +1 -0
  217. package/dist/types/task.js +39 -0
  218. package/dist/types/task.js.map +1 -0
  219. package/dist/types/trajectory.d.ts +221 -0
  220. package/dist/types/trajectory.d.ts.map +1 -0
  221. package/dist/types/trajectory.js +60 -0
  222. package/dist/types/trajectory.js.map +1 -0
  223. package/dist/utils/index.d.ts +4 -0
  224. package/dist/utils/index.d.ts.map +1 -0
  225. package/dist/utils/index.js +4 -0
  226. package/dist/utils/index.js.map +1 -0
  227. package/dist/utils/similarity.d.ts +31 -0
  228. package/dist/utils/similarity.d.ts.map +1 -0
  229. package/dist/utils/similarity.js +107 -0
  230. package/dist/utils/similarity.js.map +1 -0
  231. package/dist/utils/storage.d.ts +106 -0
  232. package/dist/utils/storage.d.ts.map +1 -0
  233. package/dist/utils/storage.js +203 -0
  234. package/dist/utils/storage.js.map +1 -0
  235. package/dist/utils/validation.d.ts +129 -0
  236. package/dist/utils/validation.d.ts.map +1 -0
  237. package/dist/utils/validation.js +171 -0
  238. package/dist/utils/validation.js.map +1 -0
  239. package/package.json +61 -9
  240. package/scripts/migrate-to-playbooks.ts +307 -0
  241. package/src/agents/index.ts +14 -0
  242. package/src/agents/mock-provider.ts +93 -0
  243. package/src/agents/types.ts +137 -0
  244. package/src/atlas.ts +560 -0
  245. package/src/bin/cognitive-core.ts +470 -0
  246. package/src/embeddings/bm25.ts +337 -0
  247. package/src/embeddings/index.ts +39 -0
  248. package/src/embeddings/manager.ts +288 -0
  249. package/src/embeddings/provider.ts +311 -0
  250. package/src/embeddings/vector-store.ts +353 -0
  251. package/src/factory.ts +263 -0
  252. package/src/index.ts +246 -0
  253. package/src/learning/analyzer.ts +335 -0
  254. package/src/learning/effectiveness.ts +428 -0
  255. package/src/learning/index.ts +58 -0
  256. package/src/learning/llm-extractor.ts +542 -0
  257. package/src/learning/meta-learner.ts +516 -0
  258. package/src/learning/pipeline.ts +244 -0
  259. package/src/learning/playbook-extractor.ts +702 -0
  260. package/src/learning/usage-inference.ts +372 -0
  261. package/src/mcp/index.ts +12 -0
  262. package/src/mcp/playbook-server.ts +565 -0
  263. package/src/memory/curated-loader.ts +160 -0
  264. package/src/memory/experience.ts +515 -0
  265. package/src/memory/index.ts +27 -0
  266. package/src/memory/meta.ts +506 -0
  267. package/src/memory/playbook.ts +493 -0
  268. package/src/memory/system.ts +551 -0
  269. package/src/runtime/backends/acp.ts +378 -0
  270. package/src/runtime/backends/index.ts +24 -0
  271. package/src/runtime/backends/mock.ts +218 -0
  272. package/src/runtime/backends/subprocess.ts +356 -0
  273. package/src/runtime/flows/learning.ts +183 -0
  274. package/src/runtime/flows/validation.ts +381 -0
  275. package/src/runtime/index.ts +53 -0
  276. package/src/runtime/manager.ts +541 -0
  277. package/src/runtime/types.ts +157 -0
  278. package/src/search/evaluator.ts +474 -0
  279. package/src/search/index.ts +59 -0
  280. package/src/search/refinement-loop.ts +363 -0
  281. package/src/search/refinement-types.ts +159 -0
  282. package/src/search/router.ts +261 -0
  283. package/src/search/solver.ts +303 -0
  284. package/src/search/verification-runner.ts +570 -0
  285. package/src/surfacing/index.ts +6 -0
  286. package/src/surfacing/skill-library.ts +594 -0
  287. package/src/types/config.ts +333 -0
  288. package/src/types/index.ts +130 -0
  289. package/src/types/memory.ts +270 -0
  290. package/src/types/meta.ts +218 -0
  291. package/src/types/outcome.ts +66 -0
  292. package/src/types/playbook.ts +196 -0
  293. package/src/types/step.ts +40 -0
  294. package/src/types/task.ts +52 -0
  295. package/src/types/trajectory.ts +80 -0
  296. package/src/utils/index.ts +38 -0
  297. package/src/utils/similarity.ts +139 -0
  298. package/src/utils/storage.ts +249 -0
  299. package/src/utils/validation.ts +286 -0
  300. package/tests/embeddings/bm25.test.ts +130 -0
  301. package/tests/embeddings/manager.test.ts +205 -0
  302. package/tests/integration/atlas.test.ts +266 -0
  303. package/tests/integration/e2e.test.ts +929 -0
  304. package/tests/learning/analyzer.test.ts +426 -0
  305. package/tests/learning/effectiveness.test.ts +542 -0
  306. package/tests/learning/pipeline.test.ts +176 -0
  307. package/tests/learning/playbook-extractor-provenance.test.ts +114 -0
  308. package/tests/learning/usage-inference.test.ts +254 -0
  309. package/tests/mcp/playbook-server.test.ts +252 -0
  310. package/tests/memory/experience.test.ts +198 -0
  311. package/tests/memory/playbook.test.ts +338 -0
  312. package/tests/memory/provenance.test.ts +639 -0
  313. package/tests/memory/system.test.ts +325 -0
  314. package/tests/runtime/agent-manager.test.ts +512 -0
  315. package/tests/runtime/mock-backend.test.ts +248 -0
  316. package/tests/search/refinement-loop.test.ts +468 -0
  317. package/tests/search/refinement.test.ts +267 -0
  318. package/tests/search/router.test.ts +427 -0
  319. package/tests/surfacing/skill-library.test.ts +292 -0
  320. package/tests/types/outcome.test.ts +147 -0
  321. package/tests/types/step.test.ts +133 -0
  322. package/tests/types/task.test.ts +158 -0
  323. package/tests/types/trajectory.test.ts +253 -0
  324. package/tests/utils/similarity.test.ts +188 -0
  325. package/tests/utils/validation.test.ts +252 -0
  326. package/tsconfig.json +25 -0
  327. package/vitest.config.ts +22 -0
  328. package/index.d.ts +0 -4
  329. package/index.js +0 -4
@@ -0,0 +1,251 @@
1
+ /**
2
+ * Learning Effectiveness Tracker
3
+ *
4
+ * Measures whether the learning system is actually improving agent outcomes.
5
+ * Uses post-task reflection annotations rather than A/B replay evaluation.
6
+ *
7
+ * After each trajectory completes, the tracker annotates it with:
8
+ * - What knowledge was surfaced (playbooks, experiences)
9
+ * - Whether the surfaced knowledge was applied (inferred from trajectory)
10
+ * - Whether the outcome improved relative to similar unaided tasks
11
+ *
12
+ * These annotations accumulate into aggregate metrics that answer:
13
+ * "Is learning making agents better over time?"
14
+ *
15
+ * Inspired by Dash's eval framework but adapted for domain-agnostic
16
+ * trajectory learning rather than text-to-SQL.
17
+ */
18
+ import { JsonStore } from '../utils/storage.js';
19
+ // === TRACKER ===
20
+ /**
21
+ * Tracks learning effectiveness through post-task annotations
22
+ */
23
+ export class LearningEffectivenessTracker {
24
+ store;
25
+ initialized = false;
26
+ constructor(baseDir) {
27
+ this.store = new JsonStore(baseDir, 'effectiveness', {
28
+ autoSaveInterval: 30000,
29
+ pretty: true,
30
+ });
31
+ }
32
+ async init() {
33
+ if (this.initialized)
34
+ return;
35
+ await this.store.init();
36
+ this.initialized = true;
37
+ }
38
+ /**
39
+ * Annotate a completed trajectory with knowledge usage data.
40
+ * Call this after a task finishes and usage inference has run.
41
+ */
42
+ async annotate(trajectory, surfacedPlaybooks, surfacedExperienceIds, appliedPlaybookIds) {
43
+ await this.init();
44
+ const errorRecoveries = countErrorRecoveries(trajectory);
45
+ const annotation = {
46
+ id: `ann-${trajectory.id}`,
47
+ trajectoryId: trajectory.id,
48
+ timestamp: new Date(),
49
+ knowledgeSurfaced: {
50
+ playbookIds: surfacedPlaybooks.map((m) => m.playbook.id),
51
+ playbookNames: surfacedPlaybooks.map((m) => m.playbook.name),
52
+ experienceIds: surfacedExperienceIds,
53
+ totalItems: surfacedPlaybooks.length + surfacedExperienceIds.length,
54
+ },
55
+ knowledgeApplied: {
56
+ playbookIdsUsed: appliedPlaybookIds,
57
+ anyKnowledgeUsed: appliedPlaybookIds.length > 0,
58
+ },
59
+ outcome: {
60
+ success: trajectory.outcome.success,
61
+ stepCount: trajectory.steps.length,
62
+ errorRecoveries,
63
+ domainHadPlaybooks: surfacedPlaybooks.length > 0,
64
+ },
65
+ };
66
+ this.store.set(annotation.id, annotation);
67
+ await this.store.save(annotation.id);
68
+ return annotation;
69
+ }
70
+ /**
71
+ * Add a reflection to an existing annotation.
72
+ * Called after human review or agent self-reflection.
73
+ */
74
+ async addReflection(annotationId, reflection) {
75
+ await this.init();
76
+ const annotation = this.store.get(annotationId);
77
+ if (!annotation)
78
+ return;
79
+ annotation.reflection = reflection;
80
+ this.store.set(annotationId, annotation);
81
+ await this.store.save(annotationId);
82
+ }
83
+ /**
84
+ * Compute aggregate effectiveness metrics over a time window.
85
+ * Defaults to all time if no window specified.
86
+ */
87
+ async computeMetrics(options) {
88
+ await this.init();
89
+ let annotations = this.store.values();
90
+ // Filter by time window
91
+ if (options?.since) {
92
+ const since = options.since.getTime();
93
+ annotations = annotations.filter((a) => new Date(a.timestamp).getTime() >= since);
94
+ }
95
+ if (options?.until) {
96
+ const until = options.until.getTime();
97
+ annotations = annotations.filter((a) => new Date(a.timestamp).getTime() <= until);
98
+ }
99
+ const guided = annotations.filter((a) => a.knowledgeSurfaced.totalItems > 0);
100
+ const unguided = annotations.filter((a) => a.knowledgeSurfaced.totalItems === 0);
101
+ const guidedSuccesses = guided.filter((a) => a.outcome.success);
102
+ const unguidedSuccesses = unguided.filter((a) => a.outcome.success);
103
+ const guidedSuccessRate = guided.length > 0
104
+ ? guidedSuccesses.length / guided.length
105
+ : 0;
106
+ const unguidedSuccessRate = unguided.length > 0
107
+ ? unguidedSuccesses.length / unguided.length
108
+ : 0;
109
+ const guidedAvgSteps = guided.length > 0
110
+ ? guided.reduce((sum, a) => sum + a.outcome.stepCount, 0) / guided.length
111
+ : 0;
112
+ const unguidedAvgSteps = unguided.length > 0
113
+ ? unguided.reduce((sum, a) => sum + a.outcome.stepCount, 0) / unguided.length
114
+ : 0;
115
+ const applied = annotations.filter((a) => a.knowledgeApplied.anyKnowledgeUsed);
116
+ const appliedSuccesses = applied.filter((a) => a.outcome.success);
117
+ const knowledgeApplicationRate = guided.length > 0
118
+ ? applied.length / guided.length
119
+ : 0;
120
+ const appliedKnowledgeSuccessRate = applied.length > 0
121
+ ? appliedSuccesses.length / applied.length
122
+ : 0;
123
+ const guidedAvgErrors = guided.length > 0
124
+ ? guided.reduce((sum, a) => sum + a.outcome.errorRecoveries, 0) / guided.length
125
+ : 0;
126
+ const unguidedAvgErrors = unguided.length > 0
127
+ ? unguided.reduce((sum, a) => sum + a.outcome.errorRecoveries, 0) / unguided.length
128
+ : 0;
129
+ // Per-playbook effectiveness
130
+ const playbookEffectiveness = this.computePlaybookEffectiveness(annotations);
131
+ return {
132
+ totalTasks: annotations.length,
133
+ guidedTasks: guided.length,
134
+ unguidedTasks: unguided.length,
135
+ guidedSuccessRate,
136
+ unguidedSuccessRate,
137
+ successRateDelta: guidedSuccessRate - unguidedSuccessRate,
138
+ guidedAvgSteps,
139
+ unguidedAvgSteps,
140
+ stepCountDelta: guidedAvgSteps - unguidedAvgSteps,
141
+ knowledgeApplicationRate,
142
+ appliedKnowledgeSuccessRate,
143
+ guidedAvgErrorRecoveries: guidedAvgErrors,
144
+ unguidedAvgErrorRecoveries: unguidedAvgErrors,
145
+ playbookEffectiveness,
146
+ windowStart: options?.since ?? new Date(0),
147
+ windowEnd: options?.until ?? new Date(),
148
+ };
149
+ }
150
+ /**
151
+ * Get all annotations (for export/inspection)
152
+ */
153
+ async getAll() {
154
+ await this.init();
155
+ return this.store.values();
156
+ }
157
+ /**
158
+ * Get annotation by trajectory ID
159
+ */
160
+ async getByTrajectoryId(trajectoryId) {
161
+ await this.init();
162
+ return this.store.values().find((a) => a.trajectoryId === trajectoryId);
163
+ }
164
+ /**
165
+ * Get annotation count
166
+ */
167
+ async count() {
168
+ await this.init();
169
+ return this.store.size();
170
+ }
171
+ /**
172
+ * Close the store
173
+ */
174
+ async close() {
175
+ await this.store.close();
176
+ }
177
+ // === PRIVATE ===
178
+ computePlaybookEffectiveness(annotations) {
179
+ const playbookStats = new Map();
180
+ for (const ann of annotations) {
181
+ // Track surfaced
182
+ for (let i = 0; i < ann.knowledgeSurfaced.playbookIds.length; i++) {
183
+ const id = ann.knowledgeSurfaced.playbookIds[i];
184
+ const name = ann.knowledgeSurfaced.playbookNames[i] ?? id;
185
+ if (!playbookStats.has(id)) {
186
+ playbookStats.set(id, {
187
+ name,
188
+ surfaced: 0,
189
+ applied: 0,
190
+ appliedSuccesses: 0,
191
+ appliedStepSum: 0,
192
+ relevantCount: 0,
193
+ assessedCount: 0,
194
+ });
195
+ }
196
+ const stats = playbookStats.get(id);
197
+ stats.surfaced++;
198
+ const wasApplied = ann.knowledgeApplied.playbookIdsUsed.includes(id);
199
+ if (wasApplied) {
200
+ stats.applied++;
201
+ if (ann.outcome.success)
202
+ stats.appliedSuccesses++;
203
+ stats.appliedStepSum += ann.outcome.stepCount;
204
+ }
205
+ if (ann.reflection) {
206
+ stats.assessedCount++;
207
+ if (ann.reflection.knowledgeRelevance === 'helpful') {
208
+ stats.relevantCount++;
209
+ }
210
+ }
211
+ }
212
+ }
213
+ return Array.from(playbookStats.entries())
214
+ .map(([id, stats]) => ({
215
+ playbookId: id,
216
+ playbookName: stats.name,
217
+ surfacedCount: stats.surfaced,
218
+ appliedCount: stats.applied,
219
+ appliedSuccessRate: stats.applied > 0 ? stats.appliedSuccesses / stats.applied : 0,
220
+ appliedAvgSteps: stats.applied > 0 ? stats.appliedStepSum / stats.applied : 0,
221
+ relevanceRate: stats.assessedCount > 0 ? stats.relevantCount / stats.assessedCount : 0,
222
+ }))
223
+ .sort((a, b) => b.surfacedCount - a.surfacedCount);
224
+ }
225
+ }
226
+ // === HELPERS ===
227
+ /**
228
+ * Count error-recovery cycles in a trajectory.
229
+ * An error recovery is when a step has an error observation
230
+ * followed by a subsequent step that doesn't.
231
+ */
232
+ function countErrorRecoveries(trajectory) {
233
+ let recoveries = 0;
234
+ for (let i = 0; i < trajectory.steps.length - 1; i++) {
235
+ const current = trajectory.steps[i];
236
+ const next = trajectory.steps[i + 1];
237
+ const hasError = current.observation?.toLowerCase().includes('error');
238
+ const nextOk = !next.observation?.toLowerCase().includes('error');
239
+ if (hasError && nextOk) {
240
+ recoveries++;
241
+ }
242
+ }
243
+ return recoveries;
244
+ }
245
+ /**
246
+ * Create a learning effectiveness tracker
247
+ */
248
+ export function createEffectivenessTracker(baseDir) {
249
+ return new LearningEffectivenessTracker(baseDir);
250
+ }
251
+ //# sourceMappingURL=effectiveness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effectiveness.js","sourceRoot":"","sources":["../../src/learning/effectiveness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { TrajectoryAnalyzer, createAnalyzer, simpleCreditAssignment, outcomeCreditAssignment, getCreditAssignmentFn, type AnalysisResult, type ErrorPattern, type TrainingExample, type CreditAssignmentFn, type AnalyzerConfig, } from './analyzer.js';
2
+ export { LearningPipeline, createLearningPipeline, type ProcessResult, type BatchResult, } from './pipeline.js';
3
+ export { PlaybookExtractor, createPlaybookExtractor, type ExtractedPlaybooks, type PlaybookUpdate, type PlaybookExtractorConfig, } from './playbook-extractor.js';
4
+ export { MetaLearner, createMetaLearner, type MetaLearnerConfig, } from './meta-learner.js';
5
+ export { PlaybookUsageInference, createUsageInference, type PlaybookUsageResult, type UsageInferenceConfig, } from './usage-inference.js';
6
+ export { LLMPlaybookExtractor, createLLMExtractor, type LLMExtractorConfig, type LLMExtractionResult, } from './llm-extractor.js';
7
+ export { LearningEffectivenessTracker, createEffectivenessTracker, type TaskAnnotation, type EffectivenessMetrics, type PlaybookEffectivenessEntry, } from './effectiveness.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,WAAW,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export { TrajectoryAnalyzer, createAnalyzer, simpleCreditAssignment, outcomeCreditAssignment, getCreditAssignmentFn, } from './analyzer.js';
2
+ export { LearningPipeline, createLearningPipeline, } from './pipeline.js';
3
+ // Playbook-based learning
4
+ export { PlaybookExtractor, createPlaybookExtractor, } from './playbook-extractor.js';
5
+ export { MetaLearner, createMetaLearner, } from './meta-learner.js';
6
+ export { PlaybookUsageInference, createUsageInference, } from './usage-inference.js';
7
+ // LLM-based extraction
8
+ export { LLMPlaybookExtractor, createLLMExtractor, } from './llm-extractor.js';
9
+ // Effectiveness tracking
10
+ export { LearningEffectivenessTracker, createEffectivenessTracker, } from './effectiveness.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GAMtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAGvB,MAAM,eAAe,CAAC;AAEvB,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,GAIxB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,WAAW,EACX,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GAGrB,MAAM,sBAAsB,CAAC;AAE9B,uBAAuB;AACvB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GAGnB,MAAM,oBAAoB,CAAC;AAE5B,yBAAyB;AACzB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAI3B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * LLM-Based Playbook Extractor
3
+ *
4
+ * Uses language models to generate higher-quality playbooks
5
+ * from trajectories. Complements the pattern-based extractor
6
+ * with deeper semantic analysis.
7
+ */
8
+ import type { Playbook, Trajectory, Refinement } from '../types/index.js';
9
+ import type { AnalysisResult } from './analyzer.js';
10
+ import type { LLMProvider } from '../agents/types.js';
11
+ /**
12
+ * Configuration for LLM-based extraction
13
+ */
14
+ export interface LLMExtractorConfig {
15
+ /** Temperature for LLM calls (default: 0.2 for determinism) */
16
+ temperature: number;
17
+ /** Maximum tokens for response */
18
+ maxTokens: number;
19
+ /** Whether to extract from single trajectories (vs only batches) */
20
+ extractFromSingle: boolean;
21
+ /** Minimum complexity for LLM extraction */
22
+ minComplexity: number;
23
+ }
24
+ /**
25
+ * Result from LLM extraction
26
+ */
27
+ export interface LLMExtractionResult {
28
+ playbooks: Playbook[];
29
+ refinements: Array<{
30
+ playbookId: string;
31
+ refinement: Refinement;
32
+ }>;
33
+ /** Raw LLM response for debugging */
34
+ rawResponse?: string;
35
+ }
36
+ /**
37
+ * LLM-Based Playbook Extractor
38
+ */
39
+ export declare class LLMPlaybookExtractor {
40
+ private provider;
41
+ private config;
42
+ constructor(provider: LLMProvider, config?: Partial<LLMExtractorConfig>);
43
+ /**
44
+ * Extract playbooks from trajectories using LLM
45
+ */
46
+ extract(trajectories: Trajectory[], analyses: AnalysisResult[], existingPlaybooks?: Playbook[]): Promise<LLMExtractionResult>;
47
+ /**
48
+ * Extract a playbook from a single trajectory
49
+ */
50
+ private extractFromSingleTrajectory;
51
+ /**
52
+ * Extract playbooks from a batch of trajectories
53
+ */
54
+ private extractFromBatch;
55
+ /**
56
+ * Build prompt for single trajectory extraction
57
+ */
58
+ private buildSingleExtractionPrompt;
59
+ /**
60
+ * Build prompt for batch extraction
61
+ */
62
+ private buildBatchExtractionPrompt;
63
+ /**
64
+ * Parse LLM response into extraction result
65
+ */
66
+ private parseExtractionResponse;
67
+ /**
68
+ * Create a Playbook from LLM-extracted data
69
+ */
70
+ private createPlaybookFromLLMData;
71
+ /**
72
+ * Parse complexity string
73
+ */
74
+ private parseComplexity;
75
+ /**
76
+ * Check if two playbooks are similar
77
+ */
78
+ private isSimilarPlaybook;
79
+ /**
80
+ * Generate a refinement for an existing playbook based on a new trajectory
81
+ */
82
+ generateRefinement(playbook: Playbook, trajectory: Trajectory, context: string): Promise<Refinement>;
83
+ }
84
+ /**
85
+ * Create an LLM-based playbook extractor
86
+ */
87
+ export declare function createLLMExtractor(provider: LLMProvider, config?: Partial<LLMExtractorConfig>): LLMPlaybookExtractor;
88
+ //# sourceMappingURL=llm-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-extractor.d.ts","sourceRoot":"","sources":["../../src/learning/llm-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,UAAU,EACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;CACvB;AASD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,KAAK,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,UAAU,CAAC;KACxB,CAAC,CAAC;IACH,qCAAqC;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC;IAKvE;;OAEG;IACG,OAAO,CACX,YAAY,EAAE,UAAU,EAAE,EAC1B,QAAQ,EAAE,cAAc,EAAE,EAC1B,iBAAiB,GAAE,QAAQ,EAAO,GACjC,OAAO,CAAC,mBAAmB,CAAC;IAkE/B;;OAEG;YACW,2BAA2B;IAsBzC;;OAEG;YACW,gBAAgB;IAsB9B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAkEnC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAwDlC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+D/B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsCjC;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC;CA0DvB;AAoBD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,WAAW,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GACnC,oBAAoB,CAEtB"}