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,383 @@
1
+ import { createExperience } from '../types/index.js';
2
+ import { ExperienceMemory } from './experience.js';
3
+ import { PlaybookLibrary } from './playbook.js';
4
+ import { MetaMemory } from './meta.js';
5
+ import { LearningEffectivenessTracker, } from '../learning/effectiveness.js';
6
+ /**
7
+ * Default capacity configuration
8
+ */
9
+ const DEFAULT_CAPACITY = {
10
+ maxExperiences: 0,
11
+ maxPlaybooks: 0,
12
+ maxExperienceAgeDays: 0,
13
+ maxFailedExperienceAgeDays: 30,
14
+ autoPrune: true,
15
+ preserveDomainCoverage: true,
16
+ deduplicationThreshold: 0,
17
+ };
18
+ /**
19
+ * Unified Memory System
20
+ * Aggregates all memory components with parallel querying
21
+ */
22
+ export class MemorySystem {
23
+ experiences;
24
+ playbooks;
25
+ meta;
26
+ effectiveness;
27
+ config;
28
+ capacityConfig;
29
+ initialized = false;
30
+ lastCapacityCheck = 0;
31
+ capacityCheckInterval = 60000; // Check every minute
32
+ constructor(baseDir, config) {
33
+ this.config = {
34
+ maxExperiences: config?.maxExperiences ?? 4,
35
+ maxStrategies: config?.maxStrategies ?? 3,
36
+ maxConcepts: config?.maxConcepts ?? 5,
37
+ maxSkills: config?.maxSkills ?? 3,
38
+ maxContextTokens: config?.maxContextTokens ?? 4000,
39
+ capacity: config?.capacity ?? DEFAULT_CAPACITY,
40
+ };
41
+ this.capacityConfig = { ...DEFAULT_CAPACITY, ...config?.capacity };
42
+ this.experiences = new ExperienceMemory(baseDir);
43
+ this.playbooks = new PlaybookLibrary(baseDir);
44
+ this.meta = new MetaMemory(baseDir);
45
+ this.effectiveness = new LearningEffectivenessTracker(baseDir);
46
+ }
47
+ /**
48
+ * Initialize all memory components
49
+ */
50
+ async init() {
51
+ if (this.initialized)
52
+ return;
53
+ await Promise.all([
54
+ this.experiences.init(),
55
+ this.playbooks.init(),
56
+ this.meta.init(),
57
+ this.effectiveness.init(),
58
+ ]);
59
+ this.initialized = true;
60
+ }
61
+ /**
62
+ * Query memory (legacy format)
63
+ * @deprecated Use queryV2 for new code - this method returns empty arrays for deprecated fields
64
+ */
65
+ async query(input, options) {
66
+ await this.init();
67
+ const experiences = await this.experiences.findSimilar(input, {
68
+ k: this.config.maxExperiences,
69
+ domain: options?.domain,
70
+ });
71
+ // Return empty arrays for deprecated fields
72
+ return {
73
+ experiences,
74
+ concepts: [],
75
+ strategies: [],
76
+ skills: [],
77
+ };
78
+ }
79
+ /**
80
+ * Store a trajectory and extract experience from it
81
+ * Preserves trajectory structure in metadata for richer learning
82
+ */
83
+ async storeTrajectory(trajectory) {
84
+ await this.init();
85
+ // Create experience from trajectory
86
+ // Handle undefined solution (e.g., from failed trajectories)
87
+ const solutionOutput = trajectory.outcome.solution !== undefined
88
+ ? JSON.stringify(trajectory.outcome.solution)
89
+ : trajectory.outcome.errorInfo ?? 'No solution (task failed)';
90
+ // Preserve trajectory structure in metadata for learning from intermediate steps
91
+ const trajectoryMetadata = {
92
+ // Preserve steps with key information (limited to prevent bloat)
93
+ steps: trajectory.steps.map((step, index) => ({
94
+ index,
95
+ thought: step.thought?.slice(0, 500),
96
+ action: step.action?.slice(0, 200),
97
+ observation: step.observation?.slice(0, 300),
98
+ attributionScore: step.attributionScore,
99
+ })),
100
+ // Preserve outcome details
101
+ outcome: {
102
+ partialScore: trajectory.outcome.partialScore,
103
+ errorInfo: trajectory.outcome.errorInfo,
104
+ },
105
+ // Preserve agent and timing info
106
+ agentId: trajectory.agentId,
107
+ wallTimeSeconds: trajectory.wallTimeSeconds,
108
+ llmCalls: trajectory.llmCalls,
109
+ stepCount: trajectory.steps.length,
110
+ // Preserve task context
111
+ taskContext: trajectory.task.context,
112
+ // Original trajectory metadata
113
+ ...trajectory.metadata,
114
+ };
115
+ const experience = createExperience({
116
+ taskInput: trajectory.task.description,
117
+ solutionOutput,
118
+ feedback: trajectory.outcome.success
119
+ ? 'Success'
120
+ : trajectory.outcome.errorInfo ?? 'Failed',
121
+ success: trajectory.outcome.success,
122
+ domain: trajectory.task.domain,
123
+ trajectoryId: trajectory.id,
124
+ metadata: trajectoryMetadata,
125
+ });
126
+ await this.experiences.add(experience);
127
+ // Check capacity limits
128
+ await this.maybeEnforceCapacity();
129
+ return experience;
130
+ }
131
+ /**
132
+ * Record usage of an experience
133
+ */
134
+ async recordExperienceUsage(id) {
135
+ await this.init();
136
+ await this.experiences.recordUsage(id);
137
+ }
138
+ /**
139
+ * Query memory with new playbook-based format
140
+ */
141
+ async queryV2(input, options) {
142
+ await this.init();
143
+ const includeAll = !options ||
144
+ (options.includeExperiences === undefined &&
145
+ options.includePlaybooks === undefined);
146
+ const [experiences, playbooks] = await Promise.all([
147
+ includeAll || options?.includeExperiences
148
+ ? this.experiences.findSimilar(input, {
149
+ k: this.config.maxExperiences,
150
+ domain: options?.domains?.[0],
151
+ })
152
+ : Promise.resolve([]),
153
+ includeAll || options?.includePlaybooks
154
+ ? this.playbooks.findMatching(input, {
155
+ k: this.config.maxStrategies + this.config.maxSkills, // Combined count
156
+ domains: options?.domains,
157
+ minConfidence: options?.minPlaybookConfidence,
158
+ excludeAntiPatterns: true,
159
+ })
160
+ : Promise.resolve([]),
161
+ ]);
162
+ return { experiences, playbooks };
163
+ }
164
+ /**
165
+ * Format memory for context injection (new playbook format)
166
+ */
167
+ formatForPromptV2(result, options) {
168
+ const sections = [];
169
+ const includeRefinements = options?.includeRefinements ?? true;
170
+ // Format experiences
171
+ if (result.experiences.length > 0) {
172
+ sections.push('## Similar Experiences\n');
173
+ for (const { experience, score } of result.experiences) {
174
+ sections.push(`### Task (${Math.round(score * 100)}% match)`);
175
+ sections.push(`${experience.taskInput.slice(0, 200)}`);
176
+ sections.push(`**Approach**: ${experience.solutionOutput.slice(0, 300)}`);
177
+ sections.push(`**Outcome**: ${experience.success ? 'Succeeded' : 'Failed'}`);
178
+ sections.push('');
179
+ }
180
+ }
181
+ // Format playbooks
182
+ if (result.playbooks.length > 0) {
183
+ sections.push('## Applicable Playbooks\n');
184
+ for (const { playbook, score: _score, matchType } of result.playbooks) {
185
+ sections.push(`### ${playbook.name} (${Math.round(playbook.confidence * 100)}% confidence, matched on ${matchType})`);
186
+ sections.push(`**Strategy**: ${playbook.guidance.strategy}`);
187
+ if (playbook.guidance.tactics.length > 0) {
188
+ sections.push('**Tactics**:');
189
+ for (const tactic of playbook.guidance.tactics) {
190
+ sections.push(` - ${tactic}`);
191
+ }
192
+ }
193
+ if (playbook.guidance.steps && playbook.guidance.steps.length > 0) {
194
+ sections.push('**Steps**:');
195
+ for (let i = 0; i < playbook.guidance.steps.length; i++) {
196
+ sections.push(` ${i + 1}. ${playbook.guidance.steps[i]}`);
197
+ }
198
+ }
199
+ if (playbook.verification.successIndicators.length > 0) {
200
+ sections.push(`**Success indicators**: ${playbook.verification.successIndicators.join(', ')}`);
201
+ }
202
+ // Include refinements if requested
203
+ if (includeRefinements && playbook.evolution.refinements.length > 0) {
204
+ sections.push('**Context-specific notes**:');
205
+ for (const refinement of playbook.evolution.refinements.slice(0, 3)) {
206
+ sections.push(` - In ${refinement.context}: ${refinement.addition}`);
207
+ }
208
+ }
209
+ sections.push('');
210
+ }
211
+ }
212
+ return sections.join('\n');
213
+ }
214
+ // === META-LEARNING METHODS ===
215
+ /**
216
+ * Record a meta-observation after task completion
217
+ */
218
+ async recordMetaObservation(observation) {
219
+ await this.init();
220
+ await this.meta.recordObservation(observation);
221
+ }
222
+ /**
223
+ * Get meta-learning adjustments for routing
224
+ */
225
+ async getMetaAdjustments(context) {
226
+ await this.init();
227
+ return this.meta.getRoutingAdjustments(context);
228
+ }
229
+ /**
230
+ * Add a playbook to the library
231
+ */
232
+ async addPlaybook(playbook) {
233
+ await this.init();
234
+ await this.playbooks.add(playbook);
235
+ }
236
+ /**
237
+ * Record playbook usage
238
+ */
239
+ async recordPlaybookUsage(id, trajectoryId, success, failureContext, failureMode) {
240
+ await this.init();
241
+ if (success) {
242
+ await this.playbooks.recordSuccess(id, trajectoryId);
243
+ }
244
+ else {
245
+ await this.playbooks.recordFailure(id, trajectoryId, failureContext ?? 'Unknown context', failureMode ?? 'Unknown failure mode');
246
+ }
247
+ }
248
+ /**
249
+ * Get statistics about memory contents
250
+ */
251
+ async getStats() {
252
+ await this.init();
253
+ const [experienceCount, playbookCount, metaStats, annotationCount] = await Promise.all([
254
+ this.experiences.count(),
255
+ this.playbooks.count(),
256
+ this.meta.getStats(),
257
+ this.effectiveness.count(),
258
+ ]);
259
+ return {
260
+ experienceCount,
261
+ playbookCount,
262
+ metaObservationCount: metaStats.totalObservations,
263
+ annotationCount,
264
+ };
265
+ }
266
+ /**
267
+ * Get learning effectiveness metrics
268
+ */
269
+ async getEffectivenessMetrics(options) {
270
+ await this.init();
271
+ return this.effectiveness.computeMetrics(options);
272
+ }
273
+ // === CAPACITY MANAGEMENT ===
274
+ /**
275
+ * Check and enforce capacity limits (called automatically if autoPrune is enabled)
276
+ */
277
+ async enforceCapacityLimits() {
278
+ await this.init();
279
+ const result = {
280
+ experiencesPruned: null,
281
+ playbooksPruned: 0,
282
+ };
283
+ const capacity = this.capacityConfig;
284
+ // Check if we need to prune experiences
285
+ const experienceCount = await this.experiences.count();
286
+ const needsExperiencePrune = (capacity.maxExperiences > 0 && experienceCount > capacity.maxExperiences) ||
287
+ capacity.maxExperienceAgeDays > 0 ||
288
+ capacity.maxFailedExperienceAgeDays > 0 ||
289
+ capacity.deduplicationThreshold > 0;
290
+ if (needsExperiencePrune) {
291
+ result.experiencesPruned = await this.experiences.prune({
292
+ maxCount: capacity.maxExperiences > 0 ? capacity.maxExperiences : undefined,
293
+ maxAgeDays: capacity.maxExperienceAgeDays > 0 ? capacity.maxExperienceAgeDays : undefined,
294
+ removeFailedOlderThanDays: capacity.maxFailedExperienceAgeDays > 0
295
+ ? capacity.maxFailedExperienceAgeDays
296
+ : undefined,
297
+ similarityThreshold: capacity.deduplicationThreshold > 0
298
+ ? capacity.deduplicationThreshold
299
+ : undefined,
300
+ preserveDomainCoverage: capacity.preserveDomainCoverage,
301
+ });
302
+ }
303
+ // Check if we need to prune playbooks
304
+ if (capacity.maxPlaybooks > 0) {
305
+ const playbookCount = await this.playbooks.count();
306
+ if (playbookCount > capacity.maxPlaybooks) {
307
+ // Prune lowest confidence playbooks
308
+ const allPlaybooks = await this.playbooks.getAll();
309
+ const sorted = allPlaybooks.sort((a, b) => b.confidence - a.confidence);
310
+ const toRemove = sorted.slice(capacity.maxPlaybooks);
311
+ for (const playbook of toRemove) {
312
+ await this.playbooks.delete(playbook.id);
313
+ result.playbooksPruned++;
314
+ }
315
+ }
316
+ }
317
+ return result;
318
+ }
319
+ /**
320
+ * Check capacity and prune if necessary (throttled)
321
+ * Called automatically after adding experiences
322
+ */
323
+ async maybeEnforceCapacity() {
324
+ if (!this.capacityConfig.autoPrune)
325
+ return;
326
+ const now = Date.now();
327
+ if (now - this.lastCapacityCheck < this.capacityCheckInterval)
328
+ return;
329
+ this.lastCapacityCheck = now;
330
+ await this.enforceCapacityLimits();
331
+ }
332
+ /**
333
+ * Get capacity status
334
+ */
335
+ async getCapacityStatus() {
336
+ await this.init();
337
+ const experienceCount = await this.experiences.count();
338
+ const playbookCount = await this.playbooks.count();
339
+ const capacity = this.capacityConfig;
340
+ return {
341
+ experiences: {
342
+ current: experienceCount,
343
+ limit: capacity.maxExperiences,
344
+ utilizationPercent: capacity.maxExperiences > 0
345
+ ? Math.round((experienceCount / capacity.maxExperiences) * 100)
346
+ : 0,
347
+ },
348
+ playbooks: {
349
+ current: playbookCount,
350
+ limit: capacity.maxPlaybooks,
351
+ utilizationPercent: capacity.maxPlaybooks > 0
352
+ ? Math.round((playbookCount / capacity.maxPlaybooks) * 100)
353
+ : 0,
354
+ },
355
+ pruningEnabled: capacity.autoPrune,
356
+ lastCheck: this.lastCapacityCheck > 0 ? new Date(this.lastCapacityCheck) : null,
357
+ };
358
+ }
359
+ /**
360
+ * Update capacity configuration
361
+ */
362
+ updateCapacityConfig(config) {
363
+ this.capacityConfig = { ...this.capacityConfig, ...config };
364
+ }
365
+ /**
366
+ * Close all stores
367
+ */
368
+ async close() {
369
+ await Promise.all([
370
+ this.experiences.close(),
371
+ this.playbooks.close(),
372
+ this.meta.close(),
373
+ this.effectiveness.close(),
374
+ ]);
375
+ }
376
+ }
377
+ /**
378
+ * Create a memory system instance
379
+ */
380
+ export function createMemorySystem(baseDir, config) {
381
+ return new MemorySystem(baseDir, config);
382
+ }
383
+ //# sourceMappingURL=system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system.js","sourceRoot":"","sources":["../../src/memory/system.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * ACP Backend using acp-factory
3
+ *
4
+ * This backend uses the acp-factory package to spawn and manage ACP-compatible
5
+ * agents like Claude Code, providing a clean interface for Atlas integration.
6
+ */
7
+ import { AgentHandle, Session, type AgentConfig } from 'acp-factory';
8
+ import type { AgentBackend, AgentSpawnConfig, AgentSession } from '../types.js';
9
+ /**
10
+ * ACP agent configuration
11
+ */
12
+ export interface ACPAgentConfig extends AgentConfig {
13
+ /** Display name for the agent */
14
+ displayName?: string;
15
+ }
16
+ /**
17
+ * ACP Backend
18
+ * Uses acp-factory to spawn and manage ACP-compatible agents
19
+ */
20
+ export declare class ACPBackend implements AgentBackend {
21
+ readonly name = "acp";
22
+ readonly supportedTypes: string[];
23
+ private sessions;
24
+ private handles;
25
+ constructor(configs: Record<string, ACPAgentConfig>);
26
+ isAvailable(): Promise<boolean>;
27
+ spawn(config: AgentSpawnConfig): Promise<AgentSession>;
28
+ /**
29
+ * Run a prompt and collect all updates
30
+ */
31
+ private runPrompt;
32
+ /**
33
+ * Process a session update from the agent
34
+ * Uses defensive typing since ACP types can vary
35
+ */
36
+ private processUpdate;
37
+ getSession(sessionId: string): Promise<AgentSession | undefined>;
38
+ sendMessage(sessionId: string, message: string): Promise<void>;
39
+ terminate(sessionId: string): Promise<void>;
40
+ listSessions(): Promise<AgentSession[]>;
41
+ /**
42
+ * Get a raw ACP session for advanced usage
43
+ */
44
+ getACPSession(sessionId: string): Session | undefined;
45
+ /**
46
+ * Get a raw agent handle for advanced usage
47
+ */
48
+ getAgentHandle(sessionId: string): AgentHandle | undefined;
49
+ }
50
+ /**
51
+ * Create an ACP backend with agent configurations
52
+ */
53
+ export declare function createACPBackend(configs: Record<string, ACPAgentConfig>): ACPBackend;
54
+ /**
55
+ * Pre-configured Claude Code agent via claude-code-acp
56
+ */
57
+ export declare const claudeCodeACPConfig: ACPAgentConfig;
58
+ /**
59
+ * Pre-configured Claude direct (requires --print mode)
60
+ * Note: This may not support full ACP protocol
61
+ */
62
+ export declare const claudeCodeDirectConfig: ACPAgentConfig;
63
+ /**
64
+ * Helper to register common agents
65
+ */
66
+ export declare function registerCommonAgents(): void;
67
+ //# sourceMappingURL=acp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acp.d.ts","sourceRoot":"","sources":["../../../src/runtime/backends/acp.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEL,WAAW,EACX,OAAO,EACP,KAAK,WAAW,EAGjB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,EAGb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAWD;;;GAGG;AACH,qBAAa,UAAW,YAAW,YAAY;IAC7C,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAElC,OAAO,CAAC,QAAQ,CAA2C;IAC3D,OAAO,CAAC,OAAO,CAAuC;gBAE1C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;IAa7C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAmE5D;;OAEG;YACW,SAAS;IA2BvB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAuGf,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIhE,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe9D,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC3C,YAAY,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI7C;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIrD;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAG3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GACtC,UAAU,CAEZ;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAIjC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,cAIpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C"}