cognitive-core 0.0.2 → 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 +302 -116
  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 +30 -453
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +84 -509
  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 +50 -34
  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/dist/index.d.mts +0 -466
  329. package/dist/index.mjs +0 -478
package/README.md CHANGED
@@ -1,6 +1,29 @@
1
- # cognitive-core
1
+ # Atlas
2
2
 
3
- TypeScript client for [Cognitive Core](https://github.com/alexngai/meta-learning-engine) - A meta-learning framework for learning from agent trajectories.
3
+ **Adaptive Trajectory Learning and Abstraction System**
4
+
5
+ A TypeScript-native cognitive core for building AI agents that learn from experience. Atlas extracts strategies, concepts, and skills from problem-solving trajectories to improve future performance.
6
+
7
+ ## Features
8
+
9
+ - **Memory System**: Four complementary memory types for different abstraction levels
10
+ - **Experience Memory** (ReMem-style): Task-level retrieval of similar past experiences
11
+ - **Concept Library** (Stitch/LILO-style): Reusable code patterns and abstractions
12
+ - **Strategy Bank** (ArcMemo-style): High-level reasoning patterns
13
+ - **Skill Store** (Claudeception-inspired): Actionable skills with specific triggers
14
+
15
+ - **Learning Engine**: Automatic extraction of knowledge from trajectories
16
+ - Credit assignment for identifying key steps
17
+ - Pattern extraction using text analysis or LLM agents
18
+ - Deduplication to prevent redundant learning
19
+
20
+ - **Agent-Based Extractors**: LLM-powered extraction of:
21
+ - Strategies (when/what rules)
22
+ - Code concepts (reusable patterns)
23
+ - Skills (concrete solutions with triggers)
24
+
25
+ - **Task Router**: Smart routing based on memory similarity
26
+ - **Lightweight Persistence**: JSON file-based storage
4
27
 
5
28
  ## Installation
6
29
 
@@ -8,170 +31,333 @@ TypeScript client for [Cognitive Core](https://github.com/alexngai/meta-learning
8
31
  npm install cognitive-core
9
32
  ```
10
33
 
11
- **Prerequisites:** Python 3.10+
12
-
13
- ## Setup
34
+ ## Quick Start
14
35
 
15
- The package can automatically set up a Python virtual environment and install dependencies:
36
+ ### Using with Agent Backends (Recommended)
16
37
 
17
38
  ```typescript
18
- import { setup, CognitiveCore } from "cognitive-core";
39
+ import { createAtlasWithAgents, createTask, createMockBackend } from 'cognitive-core';
40
+
41
+ // Create Atlas with agent backends
42
+ const atlas = createAtlasWithAgents(
43
+ [createMockBackend()], // Use mock backend for testing
44
+ { storage: { baseDir: '.atlas' } }
45
+ );
46
+
47
+ // Initialize (loads persisted data)
48
+ await atlas.init();
49
+
50
+ // Create and solve a task
51
+ const task = createTask({
52
+ domain: 'code',
53
+ description: 'Write a function that checks if a number is prime',
54
+ });
19
55
 
20
- // One-time setup (creates .cognitive-core/ venv)
21
- const { pythonPath, version } = await setup();
22
- console.log(`Installed cognitive-core ${version}`);
56
+ const result = await atlas.solve(task);
57
+ console.log('Success:', result.trajectory.outcome.success);
58
+ console.log('Routing strategy:', result.routing?.strategy);
59
+ console.log('Used refinement:', !!result.refinement);
23
60
 
24
- // CognitiveCore automatically uses the venv
25
- const core = new CognitiveCore();
26
- await core.start();
61
+ // Get stats
62
+ const stats = await atlas.getStats();
63
+ console.log('Memory stats:', stats.memory);
64
+ console.log('Backends:', stats.execution?.backends);
65
+
66
+ // Close (persists data)
67
+ await atlas.close();
27
68
  ```
28
69
 
29
- ### Setup Options
70
+ ### Setting Up Real Agent Backends
30
71
 
31
72
  ```typescript
32
- await setup({
33
- // Custom venv location (default: ".cognitive-core")
34
- venvDir: "./my-venv",
73
+ import {
74
+ createAtlasWithAgents,
75
+ createSubprocessBackend,
76
+ createTask
77
+ } from 'cognitive-core';
78
+
79
+ // Create a subprocess backend for Claude Code or other CLI agents
80
+ const claudeBackend = createSubprocessBackend({
81
+ name: 'claude-code',
82
+ command: 'claude',
83
+ args: ['--print'],
84
+ supportedTypes: ['claude-code', 'default'],
85
+ });
35
86
 
36
- // Install optional features
37
- extras: ["arc", "embeddings", "llm"],
87
+ // Create Atlas with real backends
88
+ const atlas = createAtlasWithAgents([claudeBackend], {
89
+ storage: { baseDir: '.atlas' },
90
+ execution: {
91
+ defaultAgentType: 'claude-code',
92
+ maxExecutionTime: 300, // 5 minutes
93
+ captureToolCalls: true,
94
+ },
95
+ refinement: {
96
+ useAgentEvaluation: true,
97
+ maxIterations: 3,
98
+ },
99
+ });
38
100
 
39
- // Specific version
40
- version: "0.1.0",
101
+ await atlas.init();
41
102
 
42
- // Quiet mode
43
- verbose: false,
44
- });
103
+ // Solve with memory-augmented context
104
+ const result = await atlas.solve(createTask({
105
+ domain: 'code',
106
+ description: 'Fix the TypeScript compilation error in auth.ts',
107
+ }));
45
108
  ```
46
109
 
47
- ### Manual Installation
110
+ ## Architecture
48
111
 
49
- If you prefer to manage Python yourself:
50
-
51
- ```bash
52
- pip install cognitive-core
112
+ ```
113
+ Atlas
114
+ ├── Memory System
115
+ │ ├── ExperienceMemory # Task-level retrieval (k=4)
116
+ │ ├── PlaybookLibrary # Actionable playbooks with triggers
117
+ │ └── MetaMemory # Meta-learning observations
118
+
119
+ ├── Learning Engine
120
+ │ ├── TrajectoryAnalyzer # Credit assignment
121
+ │ ├── PlaybookExtractor # Pattern discovery & playbook creation
122
+ │ ├── MetaLearner # Adaptive routing improvements
123
+ │ ├── UsageInference # Track playbook effectiveness
124
+ │ └── LearningPipeline # Batch learning orchestration
125
+
126
+ ├── Surfacing
127
+ │ ├── SkillLibrary # Tiered skill management (core/domain/contextual)
128
+ │ └── PlaybookMCPServer # MCP protocol for on-demand access
129
+
130
+ ├── Runtime
131
+ │ ├── AgentManager # Spawn and observe agents
132
+ │ ├── Backends # Mock, Subprocess, ACP backends
133
+ │ └── KnowledgeInjector # Format memory for agent context
134
+
135
+ ├── Search/Routing
136
+ │ ├── TaskRouter # Smart routing with meta-learning
137
+ │ ├── RefinementLoop # Iterative solution improvement
138
+ │ └── SolutionEvaluator # Quality assessment
139
+
140
+ └── Integration
141
+ └── skill-tree # Federated skill library management
53
142
  ```
54
143
 
55
- Then use the system Python:
144
+ ## Core Types
56
145
 
146
+ ### Task
57
147
  ```typescript
58
- const core = new CognitiveCore({ pythonPath: "python3" });
148
+ interface Task {
149
+ id: string;
150
+ domain: string; // e.g., 'code', 'reasoning', 'arc'
151
+ description: string;
152
+ context: Record<string, unknown>;
153
+ verification?: VerificationSpec;
154
+ }
59
155
  ```
60
156
 
61
- ## Quick Start
62
-
157
+ ### Trajectory
63
158
  ```typescript
64
- import { CognitiveCore } from "cognitive-core";
65
-
66
- const core = new CognitiveCore();
67
-
68
- // Start the Python subprocess
69
- await core.start();
70
-
71
- // Get version
72
- const version = await core.version();
73
- console.log(`Running cognitive-core v${version}`);
74
-
75
- // Create an environment
76
- const env = await core.env.create("arc");
77
-
78
- // Reset with a task
79
- const { observation } = await core.env.reset(env.envId, {
80
- id: "task-1",
81
- domain: "arc",
82
- description: "Transform the input grid",
83
- context: {
84
- grids: {
85
- train: [
86
- [[[0, 1], [1, 0]], [[1, 0], [0, 1]]],
87
- ],
88
- test: [
89
- [[[0, 0], [1, 1]], [[1, 1], [0, 0]]],
90
- ],
91
- },
92
- },
93
- });
159
+ interface Trajectory {
160
+ id: string;
161
+ task: Task;
162
+ steps: Step[]; // ReAct-style steps
163
+ outcome: Outcome;
164
+ agentId: string;
165
+ llmCalls: number;
166
+ totalTokens: number;
167
+ wallTimeSeconds: number;
168
+ }
169
+ ```
94
170
 
95
- // Verify a solution
96
- const outcome = await core.env.verify(env.envId, [[1, 1], [0, 0]]);
97
- console.log(`Success: ${outcome.success}, Score: ${outcome.partialScore}`);
171
+ ### Strategy
172
+ ```typescript
173
+ interface Strategy {
174
+ situation: string; // When to apply
175
+ suggestion: string; // What to do
176
+ parameters: Parameter[];
177
+ confidence: number;
178
+ successRate: number;
179
+ }
180
+ ```
98
181
 
99
- // Stop the subprocess
100
- await core.stop();
182
+ ### Skill
183
+ ```typescript
184
+ interface Skill {
185
+ name: string;
186
+ description: string; // Rich, for semantic matching
187
+ problem: string;
188
+ triggers: string[]; // Specific conditions
189
+ solution: string[]; // Step-by-step
190
+ verification?: string;
191
+ }
101
192
  ```
102
193
 
103
- ## API
194
+ ## Agent Backend System
195
+
196
+ Atlas uses an agent backend system for real execution. Backends handle spawning, managing, and extracting trajectories from agents.
104
197
 
105
- ### CognitiveCore
198
+ ### Creating Custom Backends
106
199
 
107
- Main client class.
200
+ Implement the `AgentBackend` interface:
108
201
 
109
202
  ```typescript
110
- const core = new CognitiveCore(options?: CognitiveCoreOptions);
203
+ import type { AgentBackend, AgentSpawnConfig, AgentSession } from 'cognitive-core';
204
+
205
+ class MyAgentBackend implements AgentBackend {
206
+ readonly name = 'my-agent';
207
+ readonly supportedTypes = ['my-agent', 'custom'];
208
+
209
+ async isAvailable(): Promise<boolean> {
210
+ // Check if agent is available
211
+ return true;
212
+ }
213
+
214
+ async spawn(config: AgentSpawnConfig): Promise<AgentSession> {
215
+ // Spawn the agent with task and injected knowledge
216
+ const session = await launchMyAgent({
217
+ task: config.task,
218
+ systemPrompt: config.systemPromptAdditions,
219
+ timeout: config.timeout,
220
+ });
221
+ return session;
222
+ }
223
+
224
+ async getSession(sessionId: string): Promise<AgentSession | undefined> {
225
+ // Get session status
226
+ return this.sessions.get(sessionId);
227
+ }
228
+
229
+ async terminate(sessionId: string): Promise<void> {
230
+ // Terminate a running session
231
+ await this.sessions.get(sessionId)?.kill();
232
+ }
233
+ }
234
+
235
+ // Register with Atlas
236
+ const atlas = createAtlasWithAgents([new MyAgentBackend()]);
111
237
  ```
112
238
 
113
- **Options:**
114
- - `pythonPath`: Path to Python executable (default: `"python"`)
115
- - `cwd`: Working directory for Python process
116
- - `env`: Environment variables for Python process
117
- - `timeout`: Command timeout in milliseconds (default: `30000`)
239
+ ### Using the AgentManager Directly
118
240
 
119
- **Methods:**
120
- - `start()`: Start the Python subprocess
121
- - `stop()`: Stop the Python subprocess
122
- - `version()`: Get Python package version
123
- - `isRunning`: Check if client is running
241
+ ```typescript
242
+ const manager = atlas.getAgentManager();
124
243
 
125
- ### Environment API (`core.env`)
244
+ // Add observers for monitoring
245
+ manager.addObserver({
246
+ onSessionStart: (session) => console.log('Started:', session.id),
247
+ onToolCall: (session, toolCall) => console.log('Tool:', toolCall.name),
248
+ onSessionEnd: (session, trajectory) => console.log('Done:', trajectory.outcome.success),
249
+ });
126
250
 
127
- - `create(domain)`: Create a new environment
128
- - `reset(envId, task)`: Reset environment with a task
129
- - `step(envId, action)`: Execute an action
130
- - `verify(envId, solution)`: Verify a solution
251
+ // Compare with/without memory augmentation
252
+ const comparison = await manager.compareWithKnowledge({
253
+ agentType: 'claude-code',
254
+ task: createTask({ domain: 'code', description: 'Fix the bug' }),
255
+ });
131
256
 
132
- ### Memory API (`core.memory`)
257
+ console.log('Time saved:', comparison.improvement.timeDelta, 'ms');
258
+ console.log('Fewer tool calls:', comparison.improvement.toolCallDelta);
259
+ ```
133
260
 
134
- - `searchExperiences(query, k)`: Search for similar experiences
135
- - `searchStrategies(query, k)`: Search for relevant strategies
136
- - `searchConcepts(query, k)`: Search for code concepts
137
- - `store(trajectory)`: Store a trajectory
261
+ ### Legacy: LLM Provider (Deprecated)
138
262
 
139
- ### Search API (`core.search`)
263
+ > **Note**: The `setProvider()` API is deprecated. Use `createAtlasWithAgents()` instead.
140
264
 
141
- - `solve(task)`: Solve a task using configured search strategy
265
+ For simple testing without real agent execution:
142
266
 
143
- ## Low-Level Client
267
+ ```typescript
268
+ import type { LLMProvider, Message, CompletionOptions } from 'cognitive-core';
269
+
270
+ class MyProvider implements LLMProvider {
271
+ readonly name = 'my-provider';
272
+
273
+ async complete(
274
+ messages: Message[],
275
+ options?: CompletionOptions
276
+ ): Promise<string> {
277
+ const response = await myLLMAPI.chat({
278
+ messages,
279
+ temperature: options?.temperature,
280
+ max_tokens: options?.maxTokens,
281
+ });
282
+ return response.content;
283
+ }
284
+ }
285
+
286
+ // Deprecated - prefer createAtlasWithAgents()
287
+ atlas.setProvider(new MyProvider());
288
+ ```
144
289
 
145
- For advanced usage, access the raw subprocess client:
290
+ ## Processing External Trajectories
291
+
292
+ You can feed trajectories from other agents:
146
293
 
147
294
  ```typescript
148
- import { CognitiveCoreClient } from "cognitive-core";
295
+ import { createTrajectory, createTask, createStep, successOutcome } from 'cognitive-core';
296
+
297
+ const trajectory = createTrajectory({
298
+ task: createTask({
299
+ domain: 'code',
300
+ description: 'Fix the authentication bug',
301
+ }),
302
+ steps: [
303
+ createStep({
304
+ thought: 'Need to check the token validation',
305
+ action: 'Read auth.ts',
306
+ observation: 'Found expired token check missing',
307
+ }),
308
+ createStep({
309
+ thought: 'Adding expiry validation',
310
+ action: 'Edit auth.ts to add token.exp check',
311
+ observation: 'Token validation added',
312
+ }),
313
+ ],
314
+ outcome: successOutcome('Fixed by adding token expiry check'),
315
+ agentId: 'external-agent',
316
+ });
149
317
 
150
- const client = new CognitiveCoreClient();
151
- await client.start();
318
+ // Process for learning
319
+ const result = await atlas.processTrajectory(trajectory);
320
+ console.log('Abstractable:', result.abstractable);
321
+ console.log('Strategy extracted:', result.strategyExtracted);
322
+ ```
152
323
 
153
- // Execute arbitrary commands
154
- const result = await client.execute("custom.command", { arg: "value" });
324
+ ## Configuration
155
325
 
156
- await client.stop();
326
+ ```typescript
327
+ const atlas = createAtlas({
328
+ learning: {
329
+ creditStrategy: 'simple', // 'simple' | 'llm' | 'counterfactual'
330
+ patternExtractor: 'llm', // 'llm' | 'text' | 'both'
331
+ minTrajectories: 10, // Before batch learning
332
+ deduplicationThreshold: 0.9,
333
+ },
334
+ router: {
335
+ similarityThreshold: 0.85,
336
+ useDomainRouting: true,
337
+ },
338
+ memory: {
339
+ maxExperiences: 4, // ReMem paper default
340
+ maxStrategies: 3,
341
+ maxConcepts: 5,
342
+ maxSkills: 3,
343
+ },
344
+ storage: {
345
+ baseDir: '.atlas',
346
+ persistenceEnabled: true,
347
+ },
348
+ });
157
349
  ```
158
350
 
159
- ## Types
351
+ ## References
160
352
 
161
- Full TypeScript types are included for all data structures:
353
+ This implementation draws from several research papers:
162
354
 
163
- ```typescript
164
- import type {
165
- Task,
166
- Trajectory,
167
- Outcome,
168
- Experience,
169
- Strategy,
170
- CodeConcept,
171
- Grid,
172
- ARCTask,
173
- } from "cognitive-core";
174
- ```
355
+ - **ArcMemo**: Concept-level memory beats instance-level at all compute scales
356
+ - **ReMem**: Experience retrieval with k=4, refinement loop
357
+ - **Stitch**: Library learning via compression
358
+ - **LILO**: AutoDoc for concept naming
359
+ - **Voyager**: Ever-growing skill libraries
360
+ - **Claudeception**: Lightweight skill persistence for Claude Code
175
361
 
176
362
  ## License
177
363
 
package/SKILL.md ADDED
@@ -0,0 +1,193 @@
1
+ # Cognitive Core Skill
2
+
3
+ Use this skill when the user asks you to leverage learned strategies, playbooks, or experience-based knowledge to solve problems more effectively.
4
+
5
+ ## Overview
6
+
7
+ Cognitive Core (Atlas) is a learning system that helps agents solve problems by:
8
+ - Storing successful problem-solving trajectories
9
+ - Extracting reusable playbooks from those trajectories
10
+ - Providing relevant strategies and tactics for new problems
11
+
12
+ ## When to Use This Skill
13
+
14
+ Activate this skill when:
15
+ - You need guidance on how to approach a complex problem
16
+ - You want to check if there are established strategies for a task domain
17
+ - You've successfully solved a problem and want to record the approach
18
+ - The user explicitly asks about learned strategies or playbooks
19
+
20
+ ## CLI Commands
21
+
22
+ The cognitive-core CLI provides access to the learning system:
23
+
24
+ ### Search for Relevant Playbooks
25
+
26
+ ```bash
27
+ cognitive-core search "<your problem description>"
28
+ cognitive-core search "fix typescript errors" --domain code
29
+ cognitive-core search "write unit tests" --limit 3
30
+ cognitive-core search "refactor function" --json
31
+ ```
32
+
33
+ Use search when you need guidance. The system returns:
34
+ - Strategy: High-level approach to the problem
35
+ - Tactics: Specific techniques to apply
36
+ - Success indicators: How to know if you succeeded
37
+ - Confidence: How reliable this playbook is
38
+
39
+ ### Get Playbook Details
40
+
41
+ ```bash
42
+ cognitive-core get <playbook-id>
43
+ cognitive-core get playbook-abc123 --json
44
+ ```
45
+
46
+ Use this to get full details including steps, when-to-use conditions, and failure patterns to avoid.
47
+
48
+ ### List Available Domains
49
+
50
+ ```bash
51
+ cognitive-core domains
52
+ cognitive-core domains --json
53
+ ```
54
+
55
+ Shows all problem domains that have playbooks available.
56
+
57
+ ### Check System Stats
58
+
59
+ ```bash
60
+ cognitive-core stats
61
+ cognitive-core stats --json
62
+ ```
63
+
64
+ Shows how many experiences and playbooks are stored.
65
+
66
+ ### Store a Trajectory
67
+
68
+ ```bash
69
+ cognitive-core store ./trajectory.json
70
+ ```
71
+
72
+ Store a problem-solving trajectory to help the system learn.
73
+
74
+ ## Trajectory Format
75
+
76
+ When storing trajectories, use this JSON format:
77
+
78
+ ```json
79
+ {
80
+ "id": "unique-trajectory-id",
81
+ "task": {
82
+ "domain": "code",
83
+ "description": "Fix the null pointer exception in user service",
84
+ "context": {
85
+ "file": "src/services/user.ts",
86
+ "error": "TypeError: Cannot read property 'id' of null"
87
+ }
88
+ },
89
+ "steps": [
90
+ {
91
+ "thought": "First, I need to understand where the null value is coming from",
92
+ "action": "read src/services/user.ts",
93
+ "observation": "Found the function getUserById which doesn't handle missing users"
94
+ },
95
+ {
96
+ "thought": "The function should check if user exists before accessing properties",
97
+ "action": "edit src/services/user.ts to add null check",
98
+ "observation": "Added guard clause: if (!user) return null"
99
+ }
100
+ ],
101
+ "outcome": {
102
+ "success": true,
103
+ "solution": "Added null check in getUserById function"
104
+ },
105
+ "agentId": "your-agent-id"
106
+ }
107
+ ```
108
+
109
+ ## Workflow Integration
110
+
111
+ ### Before Starting a Task
112
+
113
+ 1. Search for relevant playbooks:
114
+ ```bash
115
+ cognitive-core search "description of your task"
116
+ ```
117
+
118
+ 2. If playbooks are found, review the strategy and tactics
119
+
120
+ 3. Apply the suggested approach, adapting as needed
121
+
122
+ ### After Completing a Task
123
+
124
+ 1. If the solution was novel or particularly effective, store it:
125
+ - Create a trajectory JSON file documenting your steps
126
+ - Store it: `cognitive-core store ./my-trajectory.json`
127
+
128
+ 2. This helps the system learn from your experience
129
+
130
+ ## Best Practices
131
+
132
+ 1. **Search First**: Before tackling complex problems, check if there are existing strategies
133
+
134
+ 2. **Be Specific**: More specific queries get better matches
135
+ - Good: "fix TypeScript null reference error in async function"
136
+ - Less Good: "fix error"
137
+
138
+ 3. **Use Domains**: Filter by domain for more relevant results
139
+ - `--domain code` for programming tasks
140
+ - `--domain testing` for test-related tasks
141
+ - `--domain refactoring` for code restructuring
142
+
143
+ 4. **Record Success**: Store trajectories for:
144
+ - Problems that were particularly tricky
145
+ - Novel solutions you discovered
146
+ - Patterns you want to remember
147
+
148
+ 5. **Include Context**: When storing trajectories, include:
149
+ - Your reasoning (thoughts)
150
+ - The specific actions taken
151
+ - What you observed at each step
152
+
153
+ ## Example Session
154
+
155
+ ```bash
156
+ # User asks: "Help me fix this failing test"
157
+
158
+ # 1. Search for relevant strategies
159
+ cognitive-core search "fix failing test" --domain testing
160
+
161
+ # Output shows:
162
+ # ## Debug Test Failures
163
+ # Strategy: Systematically isolate and identify the cause of test failures
164
+ # Tactics:
165
+ # - Read the full error message and stack trace
166
+ # - Check if the test worked before recent changes
167
+ # - Isolate the failing assertion
168
+ # - Verify test data and mocks are correct
169
+
170
+ # 2. Apply the strategy while working on the problem
171
+ # ... work through the tactics ...
172
+
173
+ # 3. If you found a novel approach, store it
174
+ cognitive-core store ./test-fix-trajectory.json
175
+ ```
176
+
177
+ ## Configuration
178
+
179
+ The CLI uses `.cognitive-core` directory in the current working directory by default. Override with:
180
+
181
+ ```bash
182
+ cognitive-core search "query" --dir /path/to/memory
183
+ ```
184
+
185
+ ## JSON Output
186
+
187
+ For programmatic access, use `--json` or `--format json`:
188
+
189
+ ```bash
190
+ cognitive-core search "typescript error" --json | jq '.results[0].strategy'
191
+ ```
192
+
193
+ This returns structured data suitable for parsing.
@@ -0,0 +1,3 @@
1
+ export { Agent, type LLMProvider, type Message, type CompletionOptions, type AgentConfig, type ToolDefinition, type ToolCall, type ToolAgent, } from './types.js';
2
+ export { MockLLMProvider, createMockProvider } from './mock-provider.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,EACL,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,QAAQ,EACb,KAAK,SAAS,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Types and base classes
2
+ export { Agent, } from './types.js';
3
+ // Mock provider for testing
4
+ export { MockLLMProvider, createMockProvider } from './mock-provider.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,OAAO,EACL,KAAK,GAQN,MAAM,YAAY,CAAC;AAEpB,4BAA4B;AAC5B,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}