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,357 @@
1
+ /**
2
+ * Playbook Library - Unified store for adaptive guidance
3
+ * Replaces StrategyBank + SkillStore with a single, evolvable abstraction
4
+ */
5
+ import { createPlaybook, bumpPlaybookVersion } from '../types/index.js';
6
+ import { JsonStore } from '../utils/storage.js';
7
+ import { textSimilarity } from '../utils/similarity.js';
8
+ /**
9
+ * Playbook Library - Store and retrieve adaptive guidance
10
+ */
11
+ export class PlaybookLibrary {
12
+ store;
13
+ initialized = false;
14
+ constructor(baseDir) {
15
+ this.store = new JsonStore(baseDir, 'playbooks', {
16
+ autoSaveInterval: 60000,
17
+ pretty: true,
18
+ });
19
+ }
20
+ async init() {
21
+ if (this.initialized)
22
+ return;
23
+ await this.store.init();
24
+ this.initialized = true;
25
+ }
26
+ // === RETRIEVAL ===
27
+ /**
28
+ * Find playbooks matching a context
29
+ * Uses weighted scoring across situations, triggers, and anti-patterns
30
+ */
31
+ async findMatching(context, options) {
32
+ await this.init();
33
+ const k = options?.k ?? 5;
34
+ let playbooks = this.store.values();
35
+ // Filter by domains if specified
36
+ if (options?.domains && options.domains.length > 0) {
37
+ playbooks = playbooks.filter((p) => p.applicability.domains.some((d) => options.domains.includes(d)));
38
+ }
39
+ // Filter by minimum confidence
40
+ if (options?.minConfidence !== undefined) {
41
+ playbooks = playbooks.filter((p) => p.confidence >= options.minConfidence);
42
+ }
43
+ // Score playbooks
44
+ const scored = [];
45
+ for (const playbook of playbooks) {
46
+ // Check anti-patterns first (if enabled)
47
+ if (options?.excludeAntiPatterns !== false) {
48
+ const antiPatternMatch = playbook.applicability.antiPatterns.some((ap) => textSimilarity(context, ap) > 0.7);
49
+ if (antiPatternMatch)
50
+ continue;
51
+ }
52
+ // Score against situations
53
+ const situationScores = playbook.applicability.situations.map((s) => textSimilarity(context, s));
54
+ const maxSituationScore = situationScores.length > 0 ? Math.max(...situationScores) : 0;
55
+ // Score against triggers (weighted higher for exact matches)
56
+ const triggerScores = playbook.applicability.triggers.map((t) => textSimilarity(context, t));
57
+ const maxTriggerScore = triggerScores.length > 0 ? Math.max(...triggerScores) * 1.2 : 0;
58
+ // Combine scores
59
+ const score = Math.max(maxSituationScore, maxTriggerScore);
60
+ const matchType = maxTriggerScore > maxSituationScore ? 'trigger' : 'situation';
61
+ if (score > 0) {
62
+ scored.push({ playbook, score, matchType });
63
+ }
64
+ }
65
+ // Sort by score and return top k
66
+ scored.sort((a, b) => b.score - a.score);
67
+ const results = scored.slice(0, k);
68
+ // Apply minimum score filter
69
+ if (options?.minScore !== undefined) {
70
+ return results.filter((r) => r.score >= options.minScore);
71
+ }
72
+ return results;
73
+ }
74
+ /**
75
+ * Find by specific trigger (for error messages, etc.)
76
+ */
77
+ async findByTrigger(trigger, threshold = 0.5) {
78
+ await this.init();
79
+ return this.store.values().filter((playbook) => playbook.applicability.triggers.some((t) => t.toLowerCase().includes(trigger.toLowerCase()) ||
80
+ textSimilarity(trigger, t) >= threshold));
81
+ }
82
+ /**
83
+ * Get playbooks with refinements for a specific context
84
+ */
85
+ async findWithRefinements(context) {
86
+ await this.init();
87
+ return this.store.values().filter((playbook) => playbook.evolution.refinements.some((r) => textSimilarity(context, r.context) > 0.6));
88
+ }
89
+ // === EVOLUTION ===
90
+ /**
91
+ * Record successful application
92
+ */
93
+ async recordSuccess(id, _trajectoryId) {
94
+ await this.init();
95
+ const playbook = this.store.get(id);
96
+ if (!playbook)
97
+ return;
98
+ playbook.evolution.successCount++;
99
+ playbook.evolution.lastUsed = new Date();
100
+ // Increase confidence (exponential moving average)
101
+ const alpha = 0.1;
102
+ playbook.confidence = playbook.confidence * (1 - alpha) + 1 * alpha;
103
+ playbook.confidence = Math.min(playbook.confidence, 0.99); // Cap at 0.99
104
+ playbook.updatedAt = new Date();
105
+ this.store.set(id, playbook);
106
+ await this.store.save(id);
107
+ }
108
+ /**
109
+ * Record failure and capture context
110
+ */
111
+ async recordFailure(id, trajectoryId, failureContext, failureMode) {
112
+ await this.init();
113
+ const playbook = this.store.get(id);
114
+ if (!playbook)
115
+ return;
116
+ playbook.evolution.failureCount++;
117
+ playbook.evolution.lastUsed = new Date();
118
+ // Add failure record
119
+ const failure = {
120
+ trajectoryId,
121
+ context: failureContext,
122
+ failureMode,
123
+ timestamp: new Date(),
124
+ };
125
+ playbook.evolution.failures.push(failure);
126
+ // Keep only last 10 failures
127
+ if (playbook.evolution.failures.length > 10) {
128
+ playbook.evolution.failures = playbook.evolution.failures.slice(-10);
129
+ }
130
+ // Decrease confidence
131
+ const alpha = 0.15; // Failures have slightly more impact
132
+ playbook.confidence = playbook.confidence * (1 - alpha) + 0 * alpha;
133
+ playbook.confidence = Math.max(playbook.confidence, 0.1); // Floor at 0.1
134
+ playbook.updatedAt = new Date();
135
+ this.store.set(id, playbook);
136
+ await this.store.save(id);
137
+ }
138
+ /**
139
+ * Add a context-specific refinement
140
+ */
141
+ async addRefinement(id, context, addition, source) {
142
+ await this.init();
143
+ const playbook = this.store.get(id);
144
+ if (!playbook)
145
+ return;
146
+ // Check if similar refinement exists
147
+ const exists = playbook.evolution.refinements.some((r) => textSimilarity(r.context, context) > 0.85);
148
+ if (exists)
149
+ return;
150
+ const refinement = {
151
+ context,
152
+ addition,
153
+ source,
154
+ addedAt: new Date(),
155
+ };
156
+ playbook.evolution.refinements.push(refinement);
157
+ // Bump patch version
158
+ playbook.evolution.version = bumpPlaybookVersion(playbook, 'patch');
159
+ playbook.updatedAt = new Date();
160
+ this.store.set(id, playbook);
161
+ await this.store.save(id);
162
+ }
163
+ /**
164
+ * Evolve playbook based on accumulated failures
165
+ * Should be called after several failures to update guidance
166
+ */
167
+ async evolve(id, newGuidance, newAntiPatterns) {
168
+ await this.init();
169
+ const playbook = this.store.get(id);
170
+ if (!playbook)
171
+ return undefined;
172
+ // Update guidance if provided
173
+ if (newGuidance) {
174
+ playbook.guidance = { ...playbook.guidance, ...newGuidance };
175
+ }
176
+ // Add new anti-patterns
177
+ if (newAntiPatterns) {
178
+ const unique = newAntiPatterns.filter((ap) => !playbook.applicability.antiPatterns.includes(ap));
179
+ playbook.applicability.antiPatterns.push(...unique);
180
+ }
181
+ // Bump minor version for evolution
182
+ playbook.evolution.version = bumpPlaybookVersion(playbook, 'minor');
183
+ playbook.updatedAt = new Date();
184
+ this.store.set(id, playbook);
185
+ await this.store.save(id);
186
+ return playbook;
187
+ }
188
+ // === LIFECYCLE ===
189
+ /**
190
+ * Add a new playbook
191
+ */
192
+ async add(playbook) {
193
+ await this.init();
194
+ this.store.set(playbook.id, playbook);
195
+ await this.store.save(playbook.id);
196
+ }
197
+ /**
198
+ * Create and add a new playbook
199
+ */
200
+ async create(input) {
201
+ const playbook = createPlaybook(input);
202
+ await this.add(playbook);
203
+ return playbook;
204
+ }
205
+ /**
206
+ * Get a playbook by ID
207
+ */
208
+ async get(id) {
209
+ await this.init();
210
+ return this.store.get(id);
211
+ }
212
+ /**
213
+ * Get playbook by name
214
+ */
215
+ async getByName(name) {
216
+ await this.init();
217
+ return this.store.values().find((p) => p.name === name);
218
+ }
219
+ /**
220
+ * Check if a similar playbook exists
221
+ */
222
+ async exists(description, threshold = 0.85) {
223
+ await this.init();
224
+ // Check by exact name match
225
+ const byName = this.store.values().find((p) => p.name === description.toLowerCase().replace(/\s+/g, '-'));
226
+ if (byName)
227
+ return byName;
228
+ // Check by situation similarity
229
+ for (const playbook of this.store.values()) {
230
+ for (const situation of playbook.applicability.situations) {
231
+ if (textSimilarity(description, situation) >= threshold) {
232
+ return playbook;
233
+ }
234
+ }
235
+ }
236
+ return undefined;
237
+ }
238
+ /**
239
+ * Get playbooks by domain
240
+ */
241
+ async getByDomain(domain) {
242
+ await this.init();
243
+ return this.store.values().filter((p) => p.applicability.domains.includes(domain));
244
+ }
245
+ /**
246
+ * Get most effective playbooks (by success rate)
247
+ */
248
+ async getMostEffective(k = 10) {
249
+ await this.init();
250
+ return this.store
251
+ .values()
252
+ .filter((p) => p.evolution.successCount + p.evolution.failureCount >= 3)
253
+ .sort((a, b) => {
254
+ const rateA = a.evolution.successCount /
255
+ (a.evolution.successCount + a.evolution.failureCount);
256
+ const rateB = b.evolution.successCount /
257
+ (b.evolution.successCount + b.evolution.failureCount);
258
+ return rateB - rateA;
259
+ })
260
+ .slice(0, k);
261
+ }
262
+ /**
263
+ * Get playbooks by confidence threshold
264
+ */
265
+ async getHighConfidence(minConfidence = 0.8) {
266
+ await this.init();
267
+ return this.store.values().filter((p) => p.confidence >= minConfidence);
268
+ }
269
+ /**
270
+ * Get all playbooks
271
+ */
272
+ async getAll() {
273
+ await this.init();
274
+ return this.store.values();
275
+ }
276
+ /**
277
+ * Delete a playbook
278
+ */
279
+ async delete(id) {
280
+ await this.init();
281
+ const existed = this.store.has(id);
282
+ if (existed) {
283
+ this.store.delete(id);
284
+ }
285
+ return existed;
286
+ }
287
+ /**
288
+ * Get count
289
+ */
290
+ async count() {
291
+ await this.init();
292
+ return this.store.size();
293
+ }
294
+ /**
295
+ * Get all unique domains
296
+ */
297
+ async getDomains() {
298
+ await this.init();
299
+ const domains = new Set();
300
+ for (const playbook of this.store.values()) {
301
+ for (const domain of playbook.applicability.domains) {
302
+ domains.add(domain);
303
+ }
304
+ }
305
+ return Array.from(domains);
306
+ }
307
+ // === PROVENANCE ===
308
+ /**
309
+ * Get playbooks by origin type
310
+ */
311
+ async getByOrigin(origin) {
312
+ await this.init();
313
+ return this.store.values().filter((p) => p.provenance?.origin === origin);
314
+ }
315
+ /**
316
+ * Delete all playbooks with a specific origin
317
+ * Returns the number of playbooks deleted
318
+ */
319
+ async deleteByOrigin(origin) {
320
+ await this.init();
321
+ const toDelete = this.store.values().filter((p) => p.provenance?.origin === origin);
322
+ for (const playbook of toDelete) {
323
+ this.store.delete(playbook.id);
324
+ }
325
+ return toDelete.length;
326
+ }
327
+ /**
328
+ * Get provenance summary across all playbooks
329
+ */
330
+ async getProvenanceSummary() {
331
+ await this.init();
332
+ const summary = {
333
+ extracted: 0,
334
+ curated: 0,
335
+ imported: 0,
336
+ manual: 0,
337
+ };
338
+ for (const playbook of this.store.values()) {
339
+ const origin = playbook.provenance?.origin ?? 'extracted';
340
+ summary[origin] = (summary[origin] ?? 0) + 1;
341
+ }
342
+ return summary;
343
+ }
344
+ /**
345
+ * Close the store
346
+ */
347
+ async close() {
348
+ await this.store.close();
349
+ }
350
+ }
351
+ /**
352
+ * Create a playbook library
353
+ */
354
+ export function createPlaybookLibrary(baseDir) {
355
+ return new PlaybookLibrary(baseDir);
356
+ }
357
+ //# sourceMappingURL=playbook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playbook.js","sourceRoot":"","sources":["../../src/memory/playbook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,167 @@
1
+ import type { Experience, CodeConcept, Strategy, Skill, Playbook, MetaObservation, MetaStrategy, MetaContext, MemoryConfig, MemoryCapacityConfig, Trajectory } from '../types/index.js';
2
+ import { ExperienceMemory, type PruneResult } from './experience.js';
3
+ import { PlaybookLibrary, type PlaybookMatch } from './playbook.js';
4
+ import { MetaMemory } from './meta.js';
5
+ import { LearningEffectivenessTracker, type EffectivenessMetrics } from '../learning/effectiveness.js';
6
+ /**
7
+ * Result from a memory query (legacy format)
8
+ * @deprecated Use MemoryQueryResultV2 for new code
9
+ */
10
+ export interface MemoryQueryResult {
11
+ experiences: Array<{
12
+ experience: Experience;
13
+ score: number;
14
+ }>;
15
+ /** @deprecated Always returns empty array - use playbooks instead */
16
+ concepts: Array<{
17
+ concept: CodeConcept;
18
+ score: number;
19
+ }>;
20
+ /** @deprecated Always returns empty array - use playbooks instead */
21
+ strategies: Array<{
22
+ strategy: Strategy;
23
+ score: number;
24
+ }>;
25
+ /** @deprecated Always returns empty array - use playbooks instead */
26
+ skills: Array<{
27
+ skill: Skill;
28
+ score: number;
29
+ }>;
30
+ }
31
+ /**
32
+ * Result from a memory query (new format with playbooks)
33
+ */
34
+ export interface MemoryQueryResultV2 {
35
+ experiences: Array<{
36
+ experience: Experience;
37
+ score: number;
38
+ }>;
39
+ playbooks: PlaybookMatch[];
40
+ }
41
+ /**
42
+ * Unified Memory System
43
+ * Aggregates all memory components with parallel querying
44
+ */
45
+ export declare class MemorySystem {
46
+ readonly experiences: ExperienceMemory;
47
+ readonly playbooks: PlaybookLibrary;
48
+ readonly meta: MetaMemory;
49
+ readonly effectiveness: LearningEffectivenessTracker;
50
+ private config;
51
+ private capacityConfig;
52
+ private initialized;
53
+ private lastCapacityCheck;
54
+ private capacityCheckInterval;
55
+ constructor(baseDir: string, config?: Partial<MemoryConfig>);
56
+ /**
57
+ * Initialize all memory components
58
+ */
59
+ init(): Promise<void>;
60
+ /**
61
+ * Query memory (legacy format)
62
+ * @deprecated Use queryV2 for new code - this method returns empty arrays for deprecated fields
63
+ */
64
+ query(input: string, options?: {
65
+ domain?: string;
66
+ includeExperiences?: boolean;
67
+ }): Promise<MemoryQueryResult>;
68
+ /**
69
+ * Store a trajectory and extract experience from it
70
+ * Preserves trajectory structure in metadata for richer learning
71
+ */
72
+ storeTrajectory(trajectory: Trajectory): Promise<Experience>;
73
+ /**
74
+ * Record usage of an experience
75
+ */
76
+ recordExperienceUsage(id: string): Promise<void>;
77
+ /**
78
+ * Query memory with new playbook-based format
79
+ */
80
+ queryV2(input: string, options?: {
81
+ domains?: string[];
82
+ includeExperiences?: boolean;
83
+ includePlaybooks?: boolean;
84
+ minPlaybookConfidence?: number;
85
+ }): Promise<MemoryQueryResultV2>;
86
+ /**
87
+ * Format memory for context injection (new playbook format)
88
+ */
89
+ formatForPromptV2(result: MemoryQueryResultV2, options?: {
90
+ maxTokens?: number;
91
+ includeRefinements?: boolean;
92
+ }): string;
93
+ /**
94
+ * Record a meta-observation after task completion
95
+ */
96
+ recordMetaObservation(observation: MetaObservation): Promise<void>;
97
+ /**
98
+ * Get meta-learning adjustments for routing
99
+ */
100
+ getMetaAdjustments(context: MetaContext): Promise<MetaStrategy[]>;
101
+ /**
102
+ * Add a playbook to the library
103
+ */
104
+ addPlaybook(playbook: Playbook): Promise<void>;
105
+ /**
106
+ * Record playbook usage
107
+ */
108
+ recordPlaybookUsage(id: string, trajectoryId: string, success: boolean, failureContext?: string, failureMode?: string): Promise<void>;
109
+ /**
110
+ * Get statistics about memory contents
111
+ */
112
+ getStats(): Promise<{
113
+ experienceCount: number;
114
+ playbookCount: number;
115
+ metaObservationCount: number;
116
+ annotationCount: number;
117
+ }>;
118
+ /**
119
+ * Get learning effectiveness metrics
120
+ */
121
+ getEffectivenessMetrics(options?: {
122
+ since?: Date;
123
+ until?: Date;
124
+ }): Promise<EffectivenessMetrics>;
125
+ /**
126
+ * Check and enforce capacity limits (called automatically if autoPrune is enabled)
127
+ */
128
+ enforceCapacityLimits(): Promise<{
129
+ experiencesPruned: PruneResult | null;
130
+ playbooksPruned: number;
131
+ }>;
132
+ /**
133
+ * Check capacity and prune if necessary (throttled)
134
+ * Called automatically after adding experiences
135
+ */
136
+ private maybeEnforceCapacity;
137
+ /**
138
+ * Get capacity status
139
+ */
140
+ getCapacityStatus(): Promise<{
141
+ experiences: {
142
+ current: number;
143
+ limit: number;
144
+ utilizationPercent: number;
145
+ };
146
+ playbooks: {
147
+ current: number;
148
+ limit: number;
149
+ utilizationPercent: number;
150
+ };
151
+ pruningEnabled: boolean;
152
+ lastCheck: Date | null;
153
+ }>;
154
+ /**
155
+ * Update capacity configuration
156
+ */
157
+ updateCapacityConfig(config: Partial<MemoryCapacityConfig>): void;
158
+ /**
159
+ * Close all stores
160
+ */
161
+ close(): Promise<void>;
162
+ }
163
+ /**
164
+ * Create a memory system instance
165
+ */
166
+ export declare function createMemorySystem(baseDir: string, config?: Partial<MemoryConfig>): MemorySystem;
167
+ //# sourceMappingURL=system.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/memory/system.ts"],"names":[],"mappings":"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"}