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,256 @@
1
+ /**
2
+ * Vector Store using sqlite-vec
3
+ *
4
+ * Provides efficient vector similarity search using SQLite with the sqlite-vec extension.
5
+ * sqlite-vec is optimized for in-process vector search without the overhead of external services.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import * as sqliteVec from 'sqlite-vec';
9
+ /**
10
+ * Vector store using sqlite-vec for efficient similarity search
11
+ */
12
+ export class SqliteVectorStore {
13
+ db;
14
+ dimension;
15
+ tableName;
16
+ initialized = false;
17
+ constructor(options) {
18
+ this.dimension = options.dimension;
19
+ this.tableName = options.tableName ?? 'atlas_embeddings';
20
+ // Create or open the database
21
+ this.db = new Database(options.dbPath);
22
+ // Load the sqlite-vec extension
23
+ sqliteVec.load(this.db);
24
+ this.initialize();
25
+ }
26
+ /**
27
+ * Initialize the database schema
28
+ */
29
+ initialize() {
30
+ if (this.initialized)
31
+ return;
32
+ // Create metadata table for storing content and type info
33
+ this.db.exec(`
34
+ CREATE TABLE IF NOT EXISTS ${this.tableName}_meta (
35
+ id TEXT PRIMARY KEY,
36
+ type TEXT NOT NULL,
37
+ content TEXT NOT NULL,
38
+ created_at TEXT DEFAULT CURRENT_TIMESTAMP
39
+ )
40
+ `);
41
+ // Create virtual table for vector search using vec0
42
+ // Note: vec0 uses a separate storage model optimized for vector operations
43
+ this.db.exec(`
44
+ CREATE VIRTUAL TABLE IF NOT EXISTS ${this.tableName}_vec USING vec0(
45
+ id TEXT PRIMARY KEY,
46
+ embedding FLOAT[${this.dimension}]
47
+ )
48
+ `);
49
+ // Create index on type for filtering
50
+ this.db.exec(`
51
+ CREATE INDEX IF NOT EXISTS idx_${this.tableName}_type
52
+ ON ${this.tableName}_meta(type)
53
+ `);
54
+ this.initialized = true;
55
+ }
56
+ /**
57
+ * Insert or update a vector with metadata
58
+ */
59
+ insert(id, embedding, type, content) {
60
+ if (embedding.length !== this.dimension) {
61
+ throw new Error(`Embedding dimension mismatch: expected ${this.dimension}, got ${embedding.length}`);
62
+ }
63
+ // Use a transaction for atomicity
64
+ const transaction = this.db.transaction(() => {
65
+ // Insert or replace metadata
66
+ const metaStmt = this.db.prepare(`
67
+ INSERT OR REPLACE INTO ${this.tableName}_meta (id, type, content)
68
+ VALUES (?, ?, ?)
69
+ `);
70
+ metaStmt.run(id, type, content);
71
+ // Insert or replace vector
72
+ // sqlite-vec expects vectors as JSON arrays or binary blobs
73
+ const vecStmt = this.db.prepare(`
74
+ INSERT OR REPLACE INTO ${this.tableName}_vec (id, embedding)
75
+ VALUES (?, ?)
76
+ `);
77
+ vecStmt.run(id, JSON.stringify(embedding));
78
+ });
79
+ transaction();
80
+ }
81
+ /**
82
+ * Insert multiple vectors in batch
83
+ */
84
+ insertBatch(items) {
85
+ const transaction = this.db.transaction(() => {
86
+ const metaStmt = this.db.prepare(`
87
+ INSERT OR REPLACE INTO ${this.tableName}_meta (id, type, content)
88
+ VALUES (?, ?, ?)
89
+ `);
90
+ const vecStmt = this.db.prepare(`
91
+ INSERT OR REPLACE INTO ${this.tableName}_vec (id, embedding)
92
+ VALUES (?, ?)
93
+ `);
94
+ for (const item of items) {
95
+ if (item.embedding.length !== this.dimension) {
96
+ throw new Error(`Embedding dimension mismatch for ${item.id}: expected ${this.dimension}, got ${item.embedding.length}`);
97
+ }
98
+ metaStmt.run(item.id, item.type, item.content);
99
+ vecStmt.run(item.id, JSON.stringify(item.embedding));
100
+ }
101
+ });
102
+ transaction();
103
+ }
104
+ /**
105
+ * Search for similar vectors
106
+ */
107
+ search(queryEmbedding, options = {}) {
108
+ if (queryEmbedding.length !== this.dimension) {
109
+ throw new Error(`Query embedding dimension mismatch: expected ${this.dimension}, got ${queryEmbedding.length}`);
110
+ }
111
+ const k = options.k ?? 10;
112
+ const threshold = options.threshold ?? 0;
113
+ // Build the query based on whether we're filtering by type
114
+ let query;
115
+ let params;
116
+ if (options.type) {
117
+ // Join with metadata table to filter by type
118
+ query = `
119
+ SELECT
120
+ v.id,
121
+ m.type,
122
+ m.content,
123
+ vec_distance_cosine(v.embedding, ?) as distance
124
+ FROM ${this.tableName}_vec v
125
+ JOIN ${this.tableName}_meta m ON v.id = m.id
126
+ WHERE m.type = ?
127
+ ORDER BY distance ASC
128
+ LIMIT ?
129
+ `;
130
+ params = [JSON.stringify(queryEmbedding), options.type, k];
131
+ }
132
+ else {
133
+ query = `
134
+ SELECT
135
+ v.id,
136
+ m.type,
137
+ m.content,
138
+ vec_distance_cosine(v.embedding, ?) as distance
139
+ FROM ${this.tableName}_vec v
140
+ JOIN ${this.tableName}_meta m ON v.id = m.id
141
+ ORDER BY distance ASC
142
+ LIMIT ?
143
+ `;
144
+ params = [JSON.stringify(queryEmbedding), k];
145
+ }
146
+ const stmt = this.db.prepare(query);
147
+ const results = stmt.all(...params);
148
+ // Convert distance to similarity score (1 - distance for cosine)
149
+ return results
150
+ .map((r) => ({
151
+ id: r.id,
152
+ type: r.type,
153
+ content: r.content,
154
+ score: 1 - r.distance,
155
+ }))
156
+ .filter((r) => r.score >= threshold);
157
+ }
158
+ /**
159
+ * Get a vector by ID
160
+ */
161
+ get(id) {
162
+ const metaStmt = this.db.prepare(`
163
+ SELECT type, content FROM ${this.tableName}_meta WHERE id = ?
164
+ `);
165
+ const meta = metaStmt.get(id);
166
+ if (!meta)
167
+ return null;
168
+ const vecStmt = this.db.prepare(`
169
+ SELECT embedding FROM ${this.tableName}_vec WHERE id = ?
170
+ `);
171
+ const vec = vecStmt.get(id);
172
+ if (!vec)
173
+ return null;
174
+ return {
175
+ embedding: JSON.parse(vec.embedding),
176
+ type: meta.type,
177
+ content: meta.content,
178
+ };
179
+ }
180
+ /**
181
+ * Check if an ID exists
182
+ */
183
+ has(id) {
184
+ const stmt = this.db.prepare(`
185
+ SELECT 1 FROM ${this.tableName}_meta WHERE id = ? LIMIT 1
186
+ `);
187
+ return stmt.get(id) !== undefined;
188
+ }
189
+ /**
190
+ * Delete a vector
191
+ */
192
+ delete(id) {
193
+ const transaction = this.db.transaction(() => {
194
+ const metaStmt = this.db.prepare(`DELETE FROM ${this.tableName}_meta WHERE id = ?`);
195
+ const vecStmt = this.db.prepare(`DELETE FROM ${this.tableName}_vec WHERE id = ?`);
196
+ const metaResult = metaStmt.run(id);
197
+ vecStmt.run(id);
198
+ return metaResult.changes > 0;
199
+ });
200
+ return transaction();
201
+ }
202
+ /**
203
+ * Get the number of vectors stored
204
+ */
205
+ get count() {
206
+ const stmt = this.db.prepare(`SELECT COUNT(*) as count FROM ${this.tableName}_meta`);
207
+ const result = stmt.get();
208
+ return result.count;
209
+ }
210
+ /**
211
+ * Get count by type
212
+ */
213
+ countByType(type) {
214
+ const stmt = this.db.prepare(`SELECT COUNT(*) as count FROM ${this.tableName}_meta WHERE type = ?`);
215
+ const result = stmt.get(type);
216
+ return result.count;
217
+ }
218
+ /**
219
+ * Clear all vectors
220
+ */
221
+ clear() {
222
+ const transaction = this.db.transaction(() => {
223
+ this.db.exec(`DELETE FROM ${this.tableName}_meta`);
224
+ this.db.exec(`DELETE FROM ${this.tableName}_vec`);
225
+ });
226
+ transaction();
227
+ }
228
+ /**
229
+ * Close the database connection
230
+ */
231
+ close() {
232
+ this.db.close();
233
+ }
234
+ /**
235
+ * Get database statistics
236
+ */
237
+ getStats() {
238
+ const types = ['experience', 'strategy', 'concept', 'skill'];
239
+ const byType = {};
240
+ for (const type of types) {
241
+ byType[type] = this.countByType(type);
242
+ }
243
+ return {
244
+ totalVectors: this.count,
245
+ byType,
246
+ dimension: this.dimension,
247
+ };
248
+ }
249
+ }
250
+ /**
251
+ * Create a new vector store
252
+ */
253
+ export function createVectorStore(options) {
254
+ return new SqliteVectorStore(options);
255
+ }
256
+ //# sourceMappingURL=vector-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../src/embeddings/vector-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Factory Interface for External Integration
3
+ *
4
+ * Provides a unified factory interface for creating cognitive-core components.
5
+ * This is primarily used by skill-tree and other external consumers who need
6
+ * to inject cognitive-core functionality without direct imports.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createCognitiveCoreFactory } from 'cognitive-core';
11
+ *
12
+ * const factory = createCognitiveCoreFactory();
13
+ *
14
+ * const memory = factory.createMemorySystem('./.memory');
15
+ * await memory.init();
16
+ *
17
+ * const pipeline = factory.createLearningPipeline(memory, {
18
+ * minTrajectories: 5,
19
+ * });
20
+ * ```
21
+ */
22
+ import type { Task, Trajectory, Step, Outcome } from './types/index.js';
23
+ import { createTask, createTrajectory, createStep, successOutcome, failureOutcome } from './types/index.js';
24
+ import { createMemorySystem } from './memory/system.js';
25
+ import type { ProcessResult, BatchResult } from './learning/pipeline.js';
26
+ import { createLearningPipeline } from './learning/pipeline.js';
27
+ /**
28
+ * Parameters for creating a Task
29
+ */
30
+ export interface TaskParams {
31
+ id?: string;
32
+ domain: string;
33
+ description: string;
34
+ context?: Record<string, unknown>;
35
+ metadata?: Record<string, unknown>;
36
+ }
37
+ /**
38
+ * Parameters for creating a Trajectory
39
+ */
40
+ export interface TrajectoryParams {
41
+ id?: string;
42
+ task: Task;
43
+ steps: Step[];
44
+ outcome: Outcome;
45
+ agentId: string;
46
+ metadata?: Record<string, unknown>;
47
+ }
48
+ /**
49
+ * Parameters for creating a Step
50
+ */
51
+ export interface StepParams {
52
+ thought?: string;
53
+ action: string;
54
+ observation: string;
55
+ metadata?: Record<string, unknown>;
56
+ }
57
+ /**
58
+ * Parameters for creating an Outcome
59
+ */
60
+ export interface OutcomeParams {
61
+ success: boolean;
62
+ solution?: unknown;
63
+ errorInfo?: string;
64
+ partialScore?: number;
65
+ }
66
+ /**
67
+ * Learning pipeline configuration
68
+ */
69
+ export interface LearningPipelineConfig {
70
+ creditStrategy?: 'simple' | 'contribution';
71
+ minTrajectories?: number;
72
+ deduplicationThreshold?: number;
73
+ minSuccessRate?: number;
74
+ }
75
+ /**
76
+ * Interface for the LearningPipeline that external consumers need
77
+ */
78
+ export interface ILearningPipeline {
79
+ processTrajectory(trajectory: Trajectory): Promise<ProcessResult>;
80
+ shouldRunBatch(): boolean;
81
+ runBatchLearning(): Promise<BatchResult>;
82
+ getAccumulatedCount(): number;
83
+ clearAccumulated(): void;
84
+ }
85
+ /**
86
+ * Interface for the MemorySystem that external consumers need
87
+ */
88
+ export interface IMemorySystem {
89
+ init(): Promise<void>;
90
+ close(): Promise<void>;
91
+ playbooks: {
92
+ getAll(): Promise<import('./types/playbook.js').Playbook[]>;
93
+ get(id: string): Promise<import('./types/playbook.js').Playbook | undefined>;
94
+ add(playbook: import('./types/playbook.js').Playbook): Promise<void>;
95
+ recordSuccess(id: string, trajectoryId: string): Promise<void>;
96
+ recordFailure(id: string, trajectoryId: string, context: string, failureMode: string): Promise<void>;
97
+ };
98
+ storeTrajectory(trajectory: Trajectory): Promise<import('./types/memory.js').Experience>;
99
+ }
100
+ /**
101
+ * Factory interface for creating cognitive-core components
102
+ *
103
+ * This interface allows external consumers (like skill-tree) to create
104
+ * cognitive-core components without directly importing the implementation.
105
+ * This enables dependency injection and cleaner integration.
106
+ */
107
+ export interface CognitiveCoreFactory {
108
+ /**
109
+ * Create a memory system for storing experiences and playbooks
110
+ */
111
+ createMemorySystem(storagePath: string): IMemorySystem;
112
+ /**
113
+ * Create a learning pipeline for processing trajectories
114
+ */
115
+ createLearningPipeline(memory: IMemorySystem, config?: LearningPipelineConfig): ILearningPipeline;
116
+ /**
117
+ * Create a trajectory from parameters
118
+ */
119
+ createTrajectory(params: TrajectoryParams): Trajectory;
120
+ /**
121
+ * Create a task from parameters
122
+ */
123
+ createTask(params: TaskParams): Task;
124
+ /**
125
+ * Create a step from parameters
126
+ */
127
+ createStep(params: StepParams): Step;
128
+ /**
129
+ * Create a success outcome
130
+ */
131
+ createSuccessOutcome(solution: unknown): Outcome;
132
+ /**
133
+ * Create a failure outcome
134
+ */
135
+ createFailureOutcome(errorInfo: string): Outcome;
136
+ }
137
+ /**
138
+ * Create a factory instance for cognitive-core components
139
+ *
140
+ * @returns A factory that can create memory systems, learning pipelines,
141
+ * trajectories, tasks, steps, and outcomes.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * const factory = createCognitiveCoreFactory();
146
+ *
147
+ * // Create memory system
148
+ * const memory = factory.createMemorySystem('./.atlas');
149
+ * await memory.init();
150
+ *
151
+ * // Create learning pipeline
152
+ * const pipeline = factory.createLearningPipeline(memory, {
153
+ * minTrajectories: 10,
154
+ * deduplicationThreshold: 0.85,
155
+ * });
156
+ *
157
+ * // Create and process trajectory
158
+ * const task = factory.createTask({
159
+ * domain: 'code',
160
+ * description: 'Fix the bug',
161
+ * });
162
+ *
163
+ * const trajectory = factory.createTrajectory({
164
+ * task,
165
+ * steps: [
166
+ * factory.createStep({
167
+ * action: 'read file',
168
+ * observation: 'found bug',
169
+ * }),
170
+ * ],
171
+ * outcome: factory.createSuccessOutcome('Fixed'),
172
+ * agentId: 'my-agent',
173
+ * });
174
+ *
175
+ * await pipeline.processTrajectory(trajectory);
176
+ * ```
177
+ */
178
+ export declare function createCognitiveCoreFactory(): CognitiveCoreFactory;
179
+ /**
180
+ * Get the default factory instance
181
+ *
182
+ * This is a convenience for consumers who just need the factory functions
183
+ * without managing a factory instance.
184
+ */
185
+ export declare const cognitiveCoreFactory: CognitiveCoreFactory;
186
+ /**
187
+ * Individual factory functions (for direct imports)
188
+ *
189
+ * These are re-exports of the underlying creation functions for consumers
190
+ * who prefer direct imports over the factory pattern.
191
+ */
192
+ export { createMemorySystem, createLearningPipeline, createTask, createTrajectory, createStep, successOutcome, failureOutcome, };
193
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Factory Interface for External Integration
3
+ *
4
+ * Provides a unified factory interface for creating cognitive-core components.
5
+ * This is primarily used by skill-tree and other external consumers who need
6
+ * to inject cognitive-core functionality without direct imports.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createCognitiveCoreFactory } from 'cognitive-core';
11
+ *
12
+ * const factory = createCognitiveCoreFactory();
13
+ *
14
+ * const memory = factory.createMemorySystem('./.memory');
15
+ * await memory.init();
16
+ *
17
+ * const pipeline = factory.createLearningPipeline(memory, {
18
+ * minTrajectories: 5,
19
+ * });
20
+ * ```
21
+ */
22
+ import { createTask, createTrajectory, createStep, successOutcome, failureOutcome } from './types/index.js';
23
+ import { createMemorySystem } from './memory/system.js';
24
+ import { createLearningPipeline } from './learning/pipeline.js';
25
+ /**
26
+ * Implementation of the CognitiveCoreFactory
27
+ */
28
+ class CognitiveCoreFactoryImpl {
29
+ createMemorySystem(storagePath) {
30
+ return createMemorySystem(storagePath);
31
+ }
32
+ createLearningPipeline(memory, config) {
33
+ return createLearningPipeline(memory, config);
34
+ }
35
+ createTrajectory(params) {
36
+ return createTrajectory(params);
37
+ }
38
+ createTask(params) {
39
+ return createTask(params);
40
+ }
41
+ createStep(params) {
42
+ return createStep(params);
43
+ }
44
+ createSuccessOutcome(solution) {
45
+ return successOutcome(solution);
46
+ }
47
+ createFailureOutcome(errorInfo) {
48
+ return failureOutcome(errorInfo);
49
+ }
50
+ }
51
+ /**
52
+ * Create a factory instance for cognitive-core components
53
+ *
54
+ * @returns A factory that can create memory systems, learning pipelines,
55
+ * trajectories, tasks, steps, and outcomes.
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * const factory = createCognitiveCoreFactory();
60
+ *
61
+ * // Create memory system
62
+ * const memory = factory.createMemorySystem('./.atlas');
63
+ * await memory.init();
64
+ *
65
+ * // Create learning pipeline
66
+ * const pipeline = factory.createLearningPipeline(memory, {
67
+ * minTrajectories: 10,
68
+ * deduplicationThreshold: 0.85,
69
+ * });
70
+ *
71
+ * // Create and process trajectory
72
+ * const task = factory.createTask({
73
+ * domain: 'code',
74
+ * description: 'Fix the bug',
75
+ * });
76
+ *
77
+ * const trajectory = factory.createTrajectory({
78
+ * task,
79
+ * steps: [
80
+ * factory.createStep({
81
+ * action: 'read file',
82
+ * observation: 'found bug',
83
+ * }),
84
+ * ],
85
+ * outcome: factory.createSuccessOutcome('Fixed'),
86
+ * agentId: 'my-agent',
87
+ * });
88
+ *
89
+ * await pipeline.processTrajectory(trajectory);
90
+ * ```
91
+ */
92
+ export function createCognitiveCoreFactory() {
93
+ return new CognitiveCoreFactoryImpl();
94
+ }
95
+ /**
96
+ * Get the default factory instance
97
+ *
98
+ * This is a convenience for consumers who just need the factory functions
99
+ * without managing a factory instance.
100
+ */
101
+ export const cognitiveCoreFactory = createCognitiveCoreFactory();
102
+ /**
103
+ * Individual factory functions (for direct imports)
104
+ *
105
+ * These are re-exports of the underlying creation functions for consumers
106
+ * who prefer direct imports over the factory pattern.
107
+ */
108
+ export { createMemorySystem, createLearningPipeline, createTask, createTrajectory, createStep, successOutcome, failureOutcome, };
109
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5G,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAiIhE;;GAEG;AACH,MAAM,wBAAwB;IAC5B,kBAAkB,CAAC,WAAmB;QACpC,OAAO,kBAAkB,CAAC,WAAW,CAAkB,CAAC;IAC1D,CAAC;IAED,sBAAsB,CACpB,MAAqB,EACrB,MAA+B;QAE/B,OAAO,sBAAsB,CAC3B,MAAsB,EACtB,MAAiC,CACb,CAAC;IACzB,CAAC;IAED,gBAAgB,CAAC,MAAwB;QACvC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,MAAkB;QAC3B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,MAAkB;QAC3B,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,oBAAoB,CAAC,QAAiB;QACpC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAED,oBAAoB,CAAC,SAAiB;QACpC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,IAAI,wBAAwB,EAAE,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,0BAA0B,EAAE,CAAC;AAEjE;;;;;GAKG;AACH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,cAAc,GACf,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Atlas - Adaptive Trajectory Learning and Abstraction System
3
+ *
4
+ * A TypeScript-native cognitive core for building agents that learn
5
+ * from experience. Extracts playbooks from problem-solving trajectories
6
+ * to guide future task solving.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createAtlas, createTask } from 'cognitive-core';
11
+ *
12
+ * const atlas = createAtlas();
13
+ * await atlas.init();
14
+ *
15
+ * // Set your LLM provider
16
+ * atlas.setProvider(myProvider);
17
+ *
18
+ * // Solve a task
19
+ * const task = createTask({
20
+ * domain: 'code',
21
+ * description: 'Write a function that...',
22
+ * });
23
+ *
24
+ * const result = await atlas.solve(task);
25
+ * console.log(result.trajectory.outcome);
26
+ *
27
+ * // Close when done
28
+ * await atlas.close();
29
+ * ```
30
+ */
31
+ export { Atlas, createAtlas, createAtlasWithProvider, createAtlasWithAgents, type AtlasStats, type SolveResult, } from './atlas.js';
32
+ export * from './types/index.js';
33
+ export { MemorySystem, createMemorySystem, ExperienceMemory, type MemoryQueryResult, type MemoryQueryResultV2, PlaybookLibrary, createPlaybookLibrary, type PlaybookMatch, MetaMemory, createMetaMemory, } from './memory/index.js';
34
+ export { LearningPipeline, createLearningPipeline, TrajectoryAnalyzer, createAnalyzer, type ProcessResult, type BatchResult, type AnalysisResult, PlaybookExtractor, createPlaybookExtractor, type ExtractedPlaybooks, type PlaybookUpdate, type PlaybookExtractorConfig, MetaLearner, createMetaLearner, type MetaLearnerConfig, PlaybookUsageInference, createUsageInference, type PlaybookUsageResult, type UsageInferenceConfig, LLMPlaybookExtractor, createLLMExtractor, type LLMExtractorConfig, type LLMExtractionResult, } from './learning/index.js';
35
+ export { TaskRouter, createRouter, DirectSolver, createSolver, type RoutingDecision, type SolverResult, SolutionEvaluator, createSolutionEvaluator, RefinementLoop, createRefinementLoop, createEvaluationResult, scoreToQuality, isQualityAcceptable, type EvaluationResult, type EvaluationIssue, type EvaluationMethod, type QualityLevel, type FailureContext, type RefinementResult, type EvaluatorConfig, type VerificationFunction, type VerificationResult, type RefinementLoopConfig, VerificationRunner, createVerificationRunner, TestRunners, type CommandVerificationConfig, type CommandResult, type VerificationIssue, } from './search/index.js';
36
+ export { Agent, MockLLMProvider, createMockProvider, type LLMProvider, type Message, type CompletionOptions, type AgentConfig, } from './agents/index.js';
37
+ export { cosineSimilarity, textSimilarity, findTopK, JsonStore, saveJson, loadJson, } from './utils/index.js';
38
+ export { type EmbeddingProvider, type EmbeddingProviderConfig, OpenAIEmbeddingProvider, VoyageEmbeddingProvider, LocalEmbeddingProvider, createEmbeddingProvider, BM25Index, createBM25Index, type MemoryItemType, SqliteVectorStore, createVectorStore, type VectorSearchResult, EmbeddingManager, createEmbeddingManager, type EmbeddingManagerOptions, type SearchResult, } from './embeddings/index.js';
39
+ export { AgentManager, createAgentManager, DefaultKnowledgeInjector, DefaultTrajectoryExtractor, SubprocessBackend, createSubprocessBackend, claudeCodeConfig, MockBackend, createMockBackend, ACPBackend, createACPBackend, claudeCodeACPConfig, claudeCodeDirectConfig, LearningFlow, createLearningFlow, ValidationFlow, createValidationFlow, type AgentMessage, type ToolCall, type AgentState, type AgentSession, type AgentSpawnConfig, type AgentResult, type AgentBackend, type KnowledgeInjector, type TrajectoryExtractor, type AgentObserverCallbacks, type SubprocessAgentConfig, type MockAgentBehavior, type ACPAgentConfig, type LearningFlowConfig, type LearningFlowResult, type ValidationFlowConfig, type ValidationFlowResult, type ValidationMetrics, } from './runtime/index.js';
40
+ export { SkillLibrary, createSkillLibrary, type AgentSkills, type TierRefreshResult, } from './surfacing/index.js';
41
+ export { PlaybookMCPServer, createPlaybookMCPServer, type MCPTool, type MCPToolCall, type MCPToolResult, type PlaybookSearchResult, } from './mcp/index.js';
42
+ export { createCognitiveCoreFactory, cognitiveCoreFactory, type CognitiveCoreFactory, type ILearningPipeline, type IMemorySystem, type TaskParams, type TrajectoryParams, type StepParams, type OutcomeParams, type LearningPipelineConfig, } from './factory.js';
43
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}