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
@@ -0,0 +1,419 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Cognitive Core CLI
4
+ *
5
+ * Command-line interface for interacting with the cognitive-core learning system.
6
+ * This replaces the MCP server approach, providing a simpler interface for agents
7
+ * to query playbooks and store trajectories.
8
+ *
9
+ * Usage:
10
+ * cognitive-core search <query> [--domain <domain>] [--limit <n>]
11
+ * cognitive-core get <playbook-id>
12
+ * cognitive-core domains
13
+ * cognitive-core stats
14
+ * cognitive-core store <trajectory-file>
15
+ * cognitive-core init [--dir <directory>]
16
+ */
17
+ import * as fs from 'node:fs/promises';
18
+ import * as path from 'node:path';
19
+ import { createMemorySystem, createLearningPipeline, } from '../index.js';
20
+ // Default storage directory
21
+ const DEFAULT_STORAGE_DIR = path.join(process.cwd(), '.cognitive-core');
22
+ /**
23
+ * Parse command line arguments
24
+ */
25
+ function parseArgs(args) {
26
+ const options = {};
27
+ const positional = [];
28
+ let command = '';
29
+ for (let i = 0; i < args.length; i++) {
30
+ const arg = args[i];
31
+ if (arg === '--dir' && args[i + 1]) {
32
+ options.dir = args[++i];
33
+ }
34
+ else if (arg === '--domain' && args[i + 1]) {
35
+ options.domain = args[++i];
36
+ }
37
+ else if (arg === '--limit' && args[i + 1]) {
38
+ options.limit = parseInt(args[++i], 10);
39
+ }
40
+ else if (arg === '--format' && args[i + 1]) {
41
+ options.format = args[++i];
42
+ }
43
+ else if (arg === '--json') {
44
+ options.format = 'json';
45
+ }
46
+ else if (!arg.startsWith('-')) {
47
+ if (!command) {
48
+ command = arg;
49
+ }
50
+ else {
51
+ positional.push(arg);
52
+ }
53
+ }
54
+ }
55
+ return { command, positional, options };
56
+ }
57
+ /**
58
+ * Initialize and get memory system
59
+ */
60
+ async function getMemorySystem(options) {
61
+ const dir = options.dir || DEFAULT_STORAGE_DIR;
62
+ const memory = createMemorySystem(dir);
63
+ await memory.init();
64
+ return memory;
65
+ }
66
+ /**
67
+ * Format playbook for display
68
+ */
69
+ function formatPlaybook(playbook, verbose = false) {
70
+ const lines = [];
71
+ const { successCount, failureCount } = playbook.evolution;
72
+ const totalUses = successCount + failureCount;
73
+ const successRate = totalUses > 0 ? Math.round((successCount / totalUses) * 100) : 0;
74
+ lines.push(`## ${playbook.name}`);
75
+ lines.push(`ID: ${playbook.id}`);
76
+ lines.push(`Confidence: ${Math.round(playbook.confidence * 100)}%`);
77
+ lines.push(`Success Rate: ${successRate}% (${totalUses} uses)`);
78
+ lines.push(`Domains: ${playbook.applicability.domains.join(', ')}`);
79
+ lines.push('');
80
+ lines.push(`**Strategy**: ${playbook.guidance.strategy}`);
81
+ if (playbook.guidance.tactics.length > 0) {
82
+ lines.push('**Tactics**:');
83
+ for (const tactic of playbook.guidance.tactics) {
84
+ lines.push(` - ${tactic}`);
85
+ }
86
+ }
87
+ if (verbose) {
88
+ if (playbook.guidance.steps && playbook.guidance.steps.length > 0) {
89
+ lines.push('**Steps**:');
90
+ for (let i = 0; i < playbook.guidance.steps.length; i++) {
91
+ lines.push(` ${i + 1}. ${playbook.guidance.steps[i]}`);
92
+ }
93
+ }
94
+ if (playbook.applicability.situations.length > 0) {
95
+ lines.push('**When to use**:');
96
+ for (const sit of playbook.applicability.situations) {
97
+ lines.push(` - ${sit}`);
98
+ }
99
+ }
100
+ if (playbook.applicability.antiPatterns.length > 0) {
101
+ lines.push('**Avoid when**:');
102
+ for (const anti of playbook.applicability.antiPatterns) {
103
+ lines.push(` - ${anti}`);
104
+ }
105
+ }
106
+ if (playbook.verification.successIndicators.length > 0) {
107
+ lines.push('**Success indicators**:');
108
+ for (const ind of playbook.verification.successIndicators) {
109
+ lines.push(` - ${ind}`);
110
+ }
111
+ }
112
+ }
113
+ return lines.join('\n');
114
+ }
115
+ /**
116
+ * Search playbooks command
117
+ */
118
+ async function searchCommand(query, options) {
119
+ const memory = await getMemorySystem(options);
120
+ try {
121
+ const matches = await memory.playbooks.findMatching(query, {
122
+ k: options.limit || 5,
123
+ domains: options.domain ? [options.domain] : undefined,
124
+ minConfidence: 0.3,
125
+ });
126
+ if (matches.length === 0) {
127
+ if (options.format === 'json') {
128
+ console.log(JSON.stringify({ results: [], message: 'No playbooks found' }));
129
+ }
130
+ else {
131
+ console.log('No playbooks found matching your query.');
132
+ console.log('Try different search terms or check available domains with: cognitive-core domains');
133
+ }
134
+ return;
135
+ }
136
+ if (options.format === 'json') {
137
+ const results = matches.map((m) => ({
138
+ id: m.playbook.id,
139
+ name: m.playbook.name,
140
+ score: m.score,
141
+ matchType: m.matchType,
142
+ confidence: m.playbook.confidence,
143
+ strategy: m.playbook.guidance.strategy,
144
+ tactics: m.playbook.guidance.tactics,
145
+ domains: m.playbook.applicability.domains,
146
+ }));
147
+ console.log(JSON.stringify({ results }, null, 2));
148
+ }
149
+ else {
150
+ console.log(`Found ${matches.length} playbook(s) matching "${query}":\n`);
151
+ for (const match of matches) {
152
+ console.log(`Match: ${Math.round(match.score * 100)}% (${match.matchType})`);
153
+ console.log(formatPlaybook(match.playbook));
154
+ console.log('\n---\n');
155
+ }
156
+ }
157
+ }
158
+ finally {
159
+ await memory.close();
160
+ }
161
+ }
162
+ /**
163
+ * Get playbook details command
164
+ */
165
+ async function getCommand(playbookId, options) {
166
+ const memory = await getMemorySystem(options);
167
+ try {
168
+ const playbook = await memory.playbooks.get(playbookId);
169
+ if (!playbook) {
170
+ if (options.format === 'json') {
171
+ console.log(JSON.stringify({ error: `Playbook not found: ${playbookId}` }));
172
+ }
173
+ else {
174
+ console.error(`Playbook not found: ${playbookId}`);
175
+ }
176
+ process.exit(1);
177
+ }
178
+ if (options.format === 'json') {
179
+ console.log(JSON.stringify(playbook, null, 2));
180
+ }
181
+ else {
182
+ console.log(formatPlaybook(playbook, true));
183
+ }
184
+ }
185
+ finally {
186
+ await memory.close();
187
+ }
188
+ }
189
+ /**
190
+ * List domains command
191
+ */
192
+ async function domainsCommand(options) {
193
+ const memory = await getMemorySystem(options);
194
+ try {
195
+ const allPlaybooks = await memory.playbooks.getAll();
196
+ const domains = new Map();
197
+ for (const playbook of allPlaybooks) {
198
+ for (const domain of playbook.applicability.domains) {
199
+ domains.set(domain, (domains.get(domain) || 0) + 1);
200
+ }
201
+ }
202
+ const sortedDomains = Array.from(domains.entries())
203
+ .sort((a, b) => b[1] - a[1]);
204
+ if (sortedDomains.length === 0) {
205
+ if (options.format === 'json') {
206
+ console.log(JSON.stringify({ domains: [] }));
207
+ }
208
+ else {
209
+ console.log('No domains found. Add playbooks first.');
210
+ }
211
+ return;
212
+ }
213
+ if (options.format === 'json') {
214
+ console.log(JSON.stringify({
215
+ domains: sortedDomains.map(([name, count]) => ({ name, playbookCount: count })),
216
+ }, null, 2));
217
+ }
218
+ else {
219
+ console.log('Available domains:\n');
220
+ for (const [domain, count] of sortedDomains) {
221
+ console.log(` ${domain}: ${count} playbook(s)`);
222
+ }
223
+ }
224
+ }
225
+ finally {
226
+ await memory.close();
227
+ }
228
+ }
229
+ /**
230
+ * Show stats command
231
+ */
232
+ async function statsCommand(options) {
233
+ const memory = await getMemorySystem(options);
234
+ try {
235
+ const stats = await memory.getStats();
236
+ const capacity = await memory.getCapacityStatus();
237
+ if (options.format === 'json') {
238
+ console.log(JSON.stringify({ stats, capacity }, null, 2));
239
+ }
240
+ else {
241
+ console.log('Cognitive Core Statistics\n');
242
+ console.log(`Experiences: ${stats.experienceCount}`);
243
+ console.log(`Playbooks: ${stats.playbookCount}`);
244
+ console.log(`Meta-observations: ${stats.metaObservationCount}`);
245
+ console.log('');
246
+ console.log('Capacity:');
247
+ console.log(` Experiences: ${capacity.experiences.current}/${capacity.experiences.limit}`);
248
+ console.log(` Playbooks: ${capacity.playbooks.current}/${capacity.playbooks.limit}`);
249
+ console.log(` Pruning enabled: ${capacity.pruningEnabled}`);
250
+ }
251
+ }
252
+ finally {
253
+ await memory.close();
254
+ }
255
+ }
256
+ /**
257
+ * Store trajectory command
258
+ */
259
+ async function storeCommand(trajectoryFile, options) {
260
+ const memory = await getMemorySystem(options);
261
+ const pipeline = createLearningPipeline(memory);
262
+ try {
263
+ // Read and parse trajectory file
264
+ const content = await fs.readFile(trajectoryFile, 'utf-8');
265
+ const trajectory = JSON.parse(content);
266
+ // Process the trajectory
267
+ const result = await pipeline.processTrajectory(trajectory);
268
+ if (options.format === 'json') {
269
+ console.log(JSON.stringify({
270
+ stored: result.stored,
271
+ trajectoryId: result.trajectoryId,
272
+ analysis: {
273
+ success: result.analysis.success,
274
+ keySteps: result.analysis.keySteps.length,
275
+ errorPatterns: result.analysis.errorPatterns.length,
276
+ abstractable: result.analysis.abstractable,
277
+ },
278
+ }, null, 2));
279
+ }
280
+ else {
281
+ console.log(`Trajectory stored: ${result.trajectoryId}`);
282
+ console.log(`Success: ${result.analysis.success}`);
283
+ console.log(`Key steps: ${result.analysis.keySteps.length}`);
284
+ console.log(`Abstractable: ${result.analysis.abstractable}`);
285
+ if (result.analysis.errorPatterns.length > 0) {
286
+ console.log(`Error patterns detected: ${result.analysis.errorPatterns.map((p) => p.type).join(', ')}`);
287
+ }
288
+ }
289
+ }
290
+ finally {
291
+ await memory.close();
292
+ }
293
+ }
294
+ /**
295
+ * Initialize command
296
+ */
297
+ async function initCommand(options) {
298
+ const dir = options.dir || DEFAULT_STORAGE_DIR;
299
+ // Create directory if it doesn't exist
300
+ await fs.mkdir(dir, { recursive: true });
301
+ // Initialize memory system
302
+ const memory = createMemorySystem(dir);
303
+ await memory.init();
304
+ await memory.close();
305
+ if (options.format === 'json') {
306
+ console.log(JSON.stringify({ initialized: true, directory: dir }));
307
+ }
308
+ else {
309
+ console.log(`Cognitive Core initialized at: ${dir}`);
310
+ console.log('');
311
+ console.log('Next steps:');
312
+ console.log(' 1. Store trajectories: cognitive-core store <trajectory.json>');
313
+ console.log(' 2. Search playbooks: cognitive-core search "your query"');
314
+ console.log(' 3. View stats: cognitive-core stats');
315
+ }
316
+ }
317
+ /**
318
+ * Show help
319
+ */
320
+ function showHelp() {
321
+ console.log(`
322
+ Cognitive Core CLI - Learning system for AI agents
323
+
324
+ Usage:
325
+ cognitive-core <command> [options]
326
+
327
+ Commands:
328
+ search <query> Search for playbooks matching a query
329
+ get <playbook-id> Get detailed information about a specific playbook
330
+ domains List all available domains
331
+ stats Show memory statistics
332
+ store <file> Store a trajectory from a JSON file
333
+ init Initialize the storage directory
334
+
335
+ Options:
336
+ --dir <directory> Storage directory (default: .cognitive-core)
337
+ --domain <domain> Filter search by domain
338
+ --limit <n> Maximum results for search (default: 5)
339
+ --format json Output in JSON format
340
+ --json Shorthand for --format json
341
+
342
+ Examples:
343
+ cognitive-core search "fix typescript errors"
344
+ cognitive-core search "write tests" --domain testing --limit 3
345
+ cognitive-core get playbook-abc123
346
+ cognitive-core domains
347
+ cognitive-core stats --json
348
+ cognitive-core store ./trajectory.json
349
+ cognitive-core init --dir ./my-memory
350
+ `);
351
+ }
352
+ /**
353
+ * Main entry point
354
+ */
355
+ async function main() {
356
+ const args = process.argv.slice(2);
357
+ const { command, positional, options } = parseArgs(args);
358
+ try {
359
+ switch (command) {
360
+ case 'search':
361
+ if (!positional[0]) {
362
+ console.error('Error: search requires a query');
363
+ console.error('Usage: cognitive-core search <query>');
364
+ process.exit(1);
365
+ }
366
+ await searchCommand(positional[0], options);
367
+ break;
368
+ case 'get':
369
+ if (!positional[0]) {
370
+ console.error('Error: get requires a playbook ID');
371
+ console.error('Usage: cognitive-core get <playbook-id>');
372
+ process.exit(1);
373
+ }
374
+ await getCommand(positional[0], options);
375
+ break;
376
+ case 'domains':
377
+ await domainsCommand(options);
378
+ break;
379
+ case 'stats':
380
+ await statsCommand(options);
381
+ break;
382
+ case 'store':
383
+ if (!positional[0]) {
384
+ console.error('Error: store requires a trajectory file');
385
+ console.error('Usage: cognitive-core store <trajectory.json>');
386
+ process.exit(1);
387
+ }
388
+ await storeCommand(positional[0], options);
389
+ break;
390
+ case 'init':
391
+ await initCommand(options);
392
+ break;
393
+ case 'help':
394
+ case '--help':
395
+ case '-h':
396
+ showHelp();
397
+ break;
398
+ default:
399
+ if (command) {
400
+ console.error(`Unknown command: ${command}`);
401
+ }
402
+ showHelp();
403
+ process.exit(command ? 1 : 0);
404
+ }
405
+ }
406
+ catch (error) {
407
+ if (options.format === 'json') {
408
+ console.log(JSON.stringify({
409
+ error: error instanceof Error ? error.message : String(error),
410
+ }));
411
+ }
412
+ else {
413
+ console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
414
+ }
415
+ process.exit(1);
416
+ }
417
+ }
418
+ main();
419
+ //# sourceMappingURL=cognitive-core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cognitive-core.js","sourceRoot":"","sources":["../../src/bin/cognitive-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * BM25 Index
3
+ *
4
+ * A text-based similarity search index using BM25 (Best Match 25) algorithm.
5
+ * Used as a fallback when no embedding provider is configured.
6
+ *
7
+ * BM25 is a ranking function used in information retrieval that considers
8
+ * term frequency, document length, and inverse document frequency.
9
+ */
10
+ export type MemoryItemType = 'experience' | 'strategy' | 'concept' | 'skill';
11
+ /**
12
+ * BM25 text similarity search index
13
+ */
14
+ export declare class BM25Index {
15
+ private documents;
16
+ private idf;
17
+ private avgDocLength;
18
+ private k1;
19
+ private b;
20
+ private dirty;
21
+ constructor(options?: {
22
+ k1?: number;
23
+ b?: number;
24
+ });
25
+ /**
26
+ * Add a document to the index
27
+ */
28
+ add(id: string, content: string, type: MemoryItemType): void;
29
+ /**
30
+ * Remove a document from the index
31
+ */
32
+ remove(id: string): boolean;
33
+ /**
34
+ * Check if a document exists
35
+ */
36
+ has(id: string): boolean;
37
+ /**
38
+ * Get document count
39
+ */
40
+ get size(): number;
41
+ /**
42
+ * Search for similar documents
43
+ */
44
+ search(query: string, options?: {
45
+ k?: number;
46
+ type?: MemoryItemType;
47
+ threshold?: number;
48
+ }): Array<{
49
+ id: string;
50
+ score: number;
51
+ content: string;
52
+ }>;
53
+ /**
54
+ * Tokenize text for indexing and search
55
+ */
56
+ private tokenize;
57
+ /**
58
+ * Rebuild IDF values for all terms
59
+ */
60
+ private rebuildIdf;
61
+ /**
62
+ * Compute BM25 score for a document
63
+ */
64
+ private computeScore;
65
+ /**
66
+ * Normalize BM25 score to approximately 0-1 range
67
+ * This is an approximation since BM25 scores are unbounded
68
+ */
69
+ private normalizeScore;
70
+ /**
71
+ * Serialize index to JSON (for persistence)
72
+ */
73
+ toJSON(): {
74
+ documents: Array<{
75
+ id: string;
76
+ tokens: string[];
77
+ type: MemoryItemType;
78
+ content: string;
79
+ }>;
80
+ k1: number;
81
+ b: number;
82
+ };
83
+ /**
84
+ * Restore index from JSON
85
+ */
86
+ static fromJSON(data: {
87
+ documents: Array<{
88
+ id: string;
89
+ tokens: string[];
90
+ type: MemoryItemType;
91
+ content: string;
92
+ }>;
93
+ k1: number;
94
+ b: number;
95
+ }): BM25Index;
96
+ }
97
+ /**
98
+ * Create a new BM25 index
99
+ */
100
+ export declare function createBM25Index(options?: {
101
+ k1?: number;
102
+ b?: number;
103
+ }): BM25Index;
104
+ //# sourceMappingURL=bm25.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bm25.d.ts","sourceRoot":"","sources":["../../src/embeddings/bm25.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAS7E;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,EAAE,CAAS;IACnB,OAAO,CAAC,CAAC,CAAS;IAClB,OAAO,CAAC,KAAK,CAAU;gBAEX,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAWjD;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAM5D;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAQ3B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIxB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,MAAM,CACJ,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,cAAc,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GACL,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoCxD;;OAEG;IACH,OAAO,CAAC,QAAQ;IAShB;;OAEG;IACH,OAAO,CAAC,UAAU;IAgClB;;OAEG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IActB;;OAEG;IACH,MAAM,IAAI;QACR,SAAS,EAAE,KAAK,CAAC;YACf,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,IAAI,EAAE,cAAc,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;QACH,EAAE,EAAE,MAAM,CAAC;QACX,CAAC,EAAE,MAAM,CAAC;KACX;IAQD;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpB,SAAS,EAAE,KAAK,CAAC;YACf,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,MAAM,EAAE,CAAC;YACjB,IAAI,EAAE,cAAc,CAAC;YACrB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC,CAAC;QACH,EAAE,EAAE,MAAM,CAAC;QACX,CAAC,EAAE,MAAM,CAAC;KACX,GAAG,SAAS;CAQd;AAsED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ,GAAG,SAAS,CAEZ"}