cortex-engine 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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +154 -0
  3. package/dist/bin/cli.d.ts +13 -0
  4. package/dist/bin/cli.d.ts.map +1 -0
  5. package/dist/bin/cli.js +92 -0
  6. package/dist/bin/cli.js.map +1 -0
  7. package/dist/bin/config-cmd.d.ts +12 -0
  8. package/dist/bin/config-cmd.d.ts.map +1 -0
  9. package/dist/bin/config-cmd.js +184 -0
  10. package/dist/bin/config-cmd.js.map +1 -0
  11. package/dist/bin/config-loader.d.ts +12 -0
  12. package/dist/bin/config-loader.d.ts.map +1 -0
  13. package/dist/bin/config-loader.js +42 -0
  14. package/dist/bin/config-loader.js.map +1 -0
  15. package/dist/bin/digest-cmd.d.ts +13 -0
  16. package/dist/bin/digest-cmd.d.ts.map +1 -0
  17. package/dist/bin/digest-cmd.js +286 -0
  18. package/dist/bin/digest-cmd.js.map +1 -0
  19. package/dist/bin/init.d.ts +33 -0
  20. package/dist/bin/init.d.ts.map +1 -0
  21. package/dist/bin/init.js +355 -0
  22. package/dist/bin/init.js.map +1 -0
  23. package/dist/bin/serve.d.ts +15 -0
  24. package/dist/bin/serve.d.ts.map +1 -0
  25. package/dist/bin/serve.js +21 -0
  26. package/dist/bin/serve.js.map +1 -0
  27. package/dist/bridges/bridge.d.ts +46 -0
  28. package/dist/bridges/bridge.d.ts.map +1 -0
  29. package/dist/bridges/bridge.js +128 -0
  30. package/dist/bridges/bridge.js.map +1 -0
  31. package/dist/bridges/registry.d.ts +19 -0
  32. package/dist/bridges/registry.d.ts.map +1 -0
  33. package/dist/bridges/registry.js +36 -0
  34. package/dist/bridges/registry.js.map +1 -0
  35. package/dist/core/config.d.ts +108 -0
  36. package/dist/core/config.d.ts.map +1 -0
  37. package/dist/core/config.js +29 -0
  38. package/dist/core/config.js.map +1 -0
  39. package/dist/core/embed.d.ts +16 -0
  40. package/dist/core/embed.d.ts.map +1 -0
  41. package/dist/core/embed.js +7 -0
  42. package/dist/core/embed.js.map +1 -0
  43. package/dist/core/llm.d.ts +31 -0
  44. package/dist/core/llm.d.ts.map +1 -0
  45. package/dist/core/llm.js +13 -0
  46. package/dist/core/llm.js.map +1 -0
  47. package/dist/core/nli.d.ts +26 -0
  48. package/dist/core/nli.d.ts.map +1 -0
  49. package/dist/core/nli.js +11 -0
  50. package/dist/core/nli.js.map +1 -0
  51. package/dist/core/session.d.ts +26 -0
  52. package/dist/core/session.d.ts.map +1 -0
  53. package/dist/core/session.js +71 -0
  54. package/dist/core/session.js.map +1 -0
  55. package/dist/core/store.d.ts +58 -0
  56. package/dist/core/store.d.ts.map +1 -0
  57. package/dist/core/store.js +8 -0
  58. package/dist/core/store.js.map +1 -0
  59. package/dist/core/types.d.ts +148 -0
  60. package/dist/core/types.d.ts.map +1 -0
  61. package/dist/core/types.js +8 -0
  62. package/dist/core/types.js.map +1 -0
  63. package/dist/engines/cognition.d.ts +76 -0
  64. package/dist/engines/cognition.d.ts.map +1 -0
  65. package/dist/engines/cognition.js +441 -0
  66. package/dist/engines/cognition.js.map +1 -0
  67. package/dist/engines/digest.d.ts +52 -0
  68. package/dist/engines/digest.d.ts.map +1 -0
  69. package/dist/engines/digest.js +351 -0
  70. package/dist/engines/digest.js.map +1 -0
  71. package/dist/engines/fsrs.d.ts +44 -0
  72. package/dist/engines/fsrs.d.ts.map +1 -0
  73. package/dist/engines/fsrs.js +122 -0
  74. package/dist/engines/fsrs.js.map +1 -0
  75. package/dist/engines/keywords.d.ts +12 -0
  76. package/dist/engines/keywords.d.ts.map +1 -0
  77. package/dist/engines/keywords.js +45 -0
  78. package/dist/engines/keywords.js.map +1 -0
  79. package/dist/engines/memory.d.ts +55 -0
  80. package/dist/engines/memory.d.ts.map +1 -0
  81. package/dist/engines/memory.js +147 -0
  82. package/dist/engines/memory.js.map +1 -0
  83. package/dist/index.d.ts +42 -0
  84. package/dist/index.d.ts.map +1 -0
  85. package/dist/index.js +38 -0
  86. package/dist/index.js.map +1 -0
  87. package/dist/mcp/server.d.ts +12 -0
  88. package/dist/mcp/server.d.ts.map +1 -0
  89. package/dist/mcp/server.js +173 -0
  90. package/dist/mcp/server.js.map +1 -0
  91. package/dist/mcp/tools.d.ts +45 -0
  92. package/dist/mcp/tools.d.ts.map +1 -0
  93. package/dist/mcp/tools.js +814 -0
  94. package/dist/mcp/tools.js.map +1 -0
  95. package/dist/namespace/manager.d.ts +28 -0
  96. package/dist/namespace/manager.d.ts.map +1 -0
  97. package/dist/namespace/manager.js +73 -0
  98. package/dist/namespace/manager.js.map +1 -0
  99. package/dist/namespace/scoped-store.d.ts +43 -0
  100. package/dist/namespace/scoped-store.d.ts.map +1 -0
  101. package/dist/namespace/scoped-store.js +91 -0
  102. package/dist/namespace/scoped-store.js.map +1 -0
  103. package/dist/plugins/loader.d.ts +18 -0
  104. package/dist/plugins/loader.d.ts.map +1 -0
  105. package/dist/plugins/loader.js +71 -0
  106. package/dist/plugins/loader.js.map +1 -0
  107. package/dist/providers/nli-http.d.ts +34 -0
  108. package/dist/providers/nli-http.d.ts.map +1 -0
  109. package/dist/providers/nli-http.js +83 -0
  110. package/dist/providers/nli-http.js.map +1 -0
  111. package/dist/providers/ollama.d.ts +37 -0
  112. package/dist/providers/ollama.d.ts.map +1 -0
  113. package/dist/providers/ollama.js +103 -0
  114. package/dist/providers/ollama.js.map +1 -0
  115. package/dist/providers/vertex-embed.d.ts +38 -0
  116. package/dist/providers/vertex-embed.d.ts.map +1 -0
  117. package/dist/providers/vertex-embed.js +69 -0
  118. package/dist/providers/vertex-embed.js.map +1 -0
  119. package/dist/providers/vertex-llm.d.ts +25 -0
  120. package/dist/providers/vertex-llm.d.ts.map +1 -0
  121. package/dist/providers/vertex-llm.js +75 -0
  122. package/dist/providers/vertex-llm.js.map +1 -0
  123. package/dist/stores/firestore.d.ts +59 -0
  124. package/dist/stores/firestore.d.ts.map +1 -0
  125. package/dist/stores/firestore.js +530 -0
  126. package/dist/stores/firestore.js.map +1 -0
  127. package/dist/stores/sqlite.d.ts +43 -0
  128. package/dist/stores/sqlite.d.ts.map +1 -0
  129. package/dist/stores/sqlite.js +593 -0
  130. package/dist/stores/sqlite.js.map +1 -0
  131. package/dist/triggers/pipeline.d.ts +21 -0
  132. package/dist/triggers/pipeline.d.ts.map +1 -0
  133. package/dist/triggers/pipeline.js +30 -0
  134. package/dist/triggers/pipeline.js.map +1 -0
  135. package/dist/triggers/registry.d.ts +17 -0
  136. package/dist/triggers/registry.d.ts.map +1 -0
  137. package/dist/triggers/registry.js +32 -0
  138. package/dist/triggers/registry.js.map +1 -0
  139. package/package.json +94 -0
@@ -0,0 +1,286 @@
1
+ /**
2
+ * digest-cmd.ts — cortex-kit digest command handler.
3
+ *
4
+ * Usage:
5
+ * cortex-kit digest <file> Process a single file
6
+ * cortex-kit digest --pending Process files with directive: digest
7
+ * cortex-kit digest --dry-run Show what would be processed
8
+ * cortex-kit digest --pipeline observe,reflect,predict Custom pipeline
9
+ * cortex-kit digest --namespace prediction Target namespace
10
+ * cortex-kit digest --dir <path> Directory to scan for --pending
11
+ */
12
+ import { readFileSync, writeFileSync, readdirSync, statSync, renameSync, mkdirSync, existsSync } from 'node:fs';
13
+ import { resolve, dirname, join, basename } from 'node:path';
14
+ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
15
+ import { loadConfig } from './config-loader.js';
16
+ import { digestDocument } from '../engines/digest.js';
17
+ import { SqliteCortexStore } from '../stores/sqlite.js';
18
+ import { OllamaEmbedProvider, OllamaLLMProvider } from '../providers/ollama.js';
19
+ // ─── Arg Parsing ─────────────────────────────────────────────────────────────
20
+ function parseArgs(args) {
21
+ let file = null;
22
+ let pending = false;
23
+ let dryRun = false;
24
+ let pipeline = ['observe', 'reflect'];
25
+ let namespace = null;
26
+ let dir = process.cwd();
27
+ for (let i = 0; i < args.length; i++) {
28
+ const arg = args[i];
29
+ if (arg === '--pending') {
30
+ pending = true;
31
+ }
32
+ else if (arg === '--dry-run') {
33
+ dryRun = true;
34
+ }
35
+ else if (arg === '--pipeline' && args[i + 1]) {
36
+ pipeline = args[++i].split(',').map(s => s.trim()).filter(Boolean);
37
+ }
38
+ else if (arg === '--namespace' && args[i + 1]) {
39
+ namespace = args[++i];
40
+ }
41
+ else if (arg === '--dir' && args[i + 1]) {
42
+ dir = resolve(args[++i]);
43
+ }
44
+ else if (!arg.startsWith('--')) {
45
+ file = arg;
46
+ }
47
+ }
48
+ // --pending is implicit when --dry-run is given without a file
49
+ if (dryRun && !file) {
50
+ pending = true;
51
+ }
52
+ return { file, pending, dryRun, pipeline, namespace, dir };
53
+ }
54
+ // ─── Provider Setup ───────────────────────────────────────────────────────────
55
+ function createProviders(config) {
56
+ const store = new SqliteCortexStore(config.store_options?.sqlite_path ?? './cortex.db', config.store_options?.sqlite_path ? undefined : undefined);
57
+ const embed = new OllamaEmbedProvider({
58
+ model: config.embed_options?.ollama_model,
59
+ baseUrl: config.embed_options?.ollama_url,
60
+ });
61
+ const llm = new OllamaLLMProvider({
62
+ model: config.llm_options?.ollama_model,
63
+ baseUrl: config.llm_options?.ollama_url,
64
+ });
65
+ return { store, embed, llm };
66
+ }
67
+ // ─── Frontmatter Parsing ─────────────────────────────────────────────────────
68
+ function parseFileContent(content) {
69
+ const trimmed = content.trimStart();
70
+ if (!trimmed.startsWith('---')) {
71
+ return { frontmatter: {}, body: content, raw: content };
72
+ }
73
+ const endMarker = trimmed.indexOf('\n---', 3);
74
+ if (endMarker === -1) {
75
+ return { frontmatter: {}, body: content, raw: content };
76
+ }
77
+ const yamlBlock = trimmed.slice(3, endMarker).trim();
78
+ const body = trimmed.slice(endMarker + 4).trimStart();
79
+ let frontmatter = {};
80
+ try {
81
+ const parsed = parseYaml(yamlBlock);
82
+ if (parsed && typeof parsed === 'object') {
83
+ frontmatter = parsed;
84
+ }
85
+ }
86
+ catch {
87
+ // Malformed frontmatter — treat as no frontmatter.
88
+ }
89
+ return { frontmatter, body, raw: content };
90
+ }
91
+ // ─── Frontmatter Update ───────────────────────────────────────────────────────
92
+ function updateFrontmatter(raw, updates) {
93
+ const trimmed = raw.trimStart();
94
+ const leadingWhitespace = raw.slice(0, raw.length - trimmed.length);
95
+ if (!trimmed.startsWith('---')) {
96
+ // No existing frontmatter — prepend new block.
97
+ const newFm = stringifyYaml(updates).trimEnd();
98
+ return `${leadingWhitespace}---\n${newFm}\n---\n\n${trimmed}`;
99
+ }
100
+ const endMarker = trimmed.indexOf('\n---', 3);
101
+ if (endMarker === -1) {
102
+ return raw;
103
+ }
104
+ const yamlBlock = trimmed.slice(3, endMarker).trim();
105
+ const afterFm = trimmed.slice(endMarker + 4);
106
+ let existing = {};
107
+ try {
108
+ const parsed = parseYaml(yamlBlock);
109
+ if (parsed && typeof parsed === 'object') {
110
+ existing = parsed;
111
+ }
112
+ }
113
+ catch {
114
+ // Keep existing block unchanged if it can't be parsed.
115
+ return raw;
116
+ }
117
+ const merged = { ...existing, ...updates };
118
+ const newYaml = stringifyYaml(merged).trimEnd();
119
+ return `${leadingWhitespace}---\n${newYaml}\n---${afterFm}`;
120
+ }
121
+ // ─── Post-Digest File Handling ────────────────────────────────────────────────
122
+ function applyPostDigest(filePath, postDigest) {
123
+ if (!postDigest)
124
+ return;
125
+ const dir = dirname(filePath);
126
+ const name = basename(filePath);
127
+ if (postDigest === 'archive') {
128
+ const archiveDir = join(dir, 'Archive');
129
+ if (!existsSync(archiveDir)) {
130
+ mkdirSync(archiveDir, { recursive: true });
131
+ }
132
+ renameSync(filePath, join(archiveDir, name));
133
+ process.stderr.write(` moved to Archive/\n`);
134
+ }
135
+ else if (postDigest === 'trash') {
136
+ const trashDir = join(dir, '_trash');
137
+ if (!existsSync(trashDir)) {
138
+ mkdirSync(trashDir, { recursive: true });
139
+ }
140
+ renameSync(filePath, join(trashDir, name));
141
+ process.stderr.write(` moved to _trash/\n`);
142
+ }
143
+ }
144
+ // ─── Single File Processing ───────────────────────────────────────────────────
145
+ async function processSingleFile(filePath, pipeline, namespace, store, embed, llm) {
146
+ const absPath = resolve(filePath);
147
+ const content = readFileSync(absPath, 'utf-8');
148
+ const { frontmatter } = parseFileContent(content);
149
+ process.stderr.write(`Processing: ${absPath}\n`);
150
+ const result = await digestDocument(content, store, embed, llm, {
151
+ pipeline,
152
+ namespace: namespace ?? undefined,
153
+ source_file: absPath,
154
+ });
155
+ // Update frontmatter with digest results if file had frontmatter.
156
+ const hasFrontmatter = content.trimStart().startsWith('---');
157
+ if (hasFrontmatter) {
158
+ const digestResultSummary = {
159
+ observations: result.observation_ids.length,
160
+ insights: result.insights.length,
161
+ pipeline: result.pipeline_executed,
162
+ processed_at: result.processed_at.toISOString(),
163
+ };
164
+ const updated = updateFrontmatter(content, {
165
+ status: 'digested',
166
+ digest_result: digestResultSummary,
167
+ });
168
+ writeFileSync(absPath, updated, 'utf-8');
169
+ }
170
+ process.stderr.write(` observations: ${result.observation_ids.length}, ` +
171
+ `insights: ${result.insights.length}, ` +
172
+ `duration: ${result.duration_ms}ms\n`);
173
+ if (result.insights.length > 0) {
174
+ for (const insight of result.insights) {
175
+ process.stderr.write(` insight: ${insight}\n`);
176
+ }
177
+ }
178
+ applyPostDigest(absPath, frontmatter.post_digest);
179
+ return result;
180
+ }
181
+ // ─── Recursive File Scan ──────────────────────────────────────────────────────
182
+ function scanMarkdownFiles(dir) {
183
+ const results = [];
184
+ const entries = readdirSync(dir, { withFileTypes: true });
185
+ for (const entry of entries) {
186
+ // Skip hidden directories and common non-content dirs.
187
+ if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === '_trash') {
188
+ continue;
189
+ }
190
+ const fullPath = join(dir, entry.name);
191
+ if (entry.isDirectory()) {
192
+ results.push(...scanMarkdownFiles(fullPath));
193
+ }
194
+ else if (entry.isFile() && entry.name.endsWith('.md')) {
195
+ results.push(fullPath);
196
+ }
197
+ }
198
+ return results;
199
+ }
200
+ function findPendingFiles(dir) {
201
+ const allFiles = scanMarkdownFiles(dir);
202
+ const pending = [];
203
+ for (const filePath of allFiles) {
204
+ try {
205
+ const content = readFileSync(filePath, 'utf-8');
206
+ const { frontmatter } = parseFileContent(content);
207
+ if (frontmatter.directive === 'digest' &&
208
+ (frontmatter.status === 'active' || frontmatter.status === 'pending' || !frontmatter.status)) {
209
+ pending.push(filePath);
210
+ }
211
+ }
212
+ catch {
213
+ // Skip unreadable files.
214
+ }
215
+ }
216
+ return pending;
217
+ }
218
+ // ─── Main Export ─────────────────────────────────────────────────────────────
219
+ export async function runDigest(args) {
220
+ const parsed = parseArgs(args);
221
+ if (!parsed.file && !parsed.pending) {
222
+ process.stderr.write('Usage:\n' +
223
+ ' cortex-kit digest <file> Process a single file\n' +
224
+ ' cortex-kit digest --pending Process files with directive: digest\n' +
225
+ ' cortex-kit digest --dry-run Show what would be processed\n' +
226
+ ' cortex-kit digest --pipeline <steps> Custom pipeline (default: observe,reflect)\n' +
227
+ ' cortex-kit digest --namespace <ns> Target namespace\n' +
228
+ ' cortex-kit digest --dir <path> Directory to scan for --pending\n');
229
+ process.exit(1);
230
+ }
231
+ if (parsed.file) {
232
+ // Single file mode.
233
+ const absPath = resolve(parsed.file);
234
+ // Verify the file exists before setting up providers.
235
+ try {
236
+ statSync(absPath);
237
+ }
238
+ catch {
239
+ process.stderr.write(`Error: file not found: ${absPath}\n`);
240
+ process.exit(1);
241
+ }
242
+ const config = loadConfig();
243
+ const { store, embed, llm } = createProviders(config);
244
+ await processSingleFile(absPath, parsed.pipeline, parsed.namespace, store, embed, llm);
245
+ return;
246
+ }
247
+ // --pending mode (includes --dry-run).
248
+ const files = findPendingFiles(parsed.dir);
249
+ if (files.length === 0) {
250
+ process.stderr.write(`No pending files found in: ${parsed.dir}\n`);
251
+ return;
252
+ }
253
+ if (parsed.dryRun) {
254
+ process.stderr.write(`Dry run — ${files.length} file(s) would be processed:\n`);
255
+ for (const f of files) {
256
+ const content = readFileSync(f, 'utf-8');
257
+ const { frontmatter } = parseFileContent(content);
258
+ const postDigest = frontmatter.post_digest ? ` [post_digest: ${frontmatter.post_digest}]` : '';
259
+ process.stderr.write(` ${f}${postDigest}\n`);
260
+ }
261
+ return;
262
+ }
263
+ const config = loadConfig();
264
+ const { store, embed, llm } = createProviders(config);
265
+ let totalObservations = 0;
266
+ let totalInsights = 0;
267
+ let processed = 0;
268
+ let failed = 0;
269
+ for (const filePath of files) {
270
+ try {
271
+ const result = await processSingleFile(filePath, parsed.pipeline, parsed.namespace, store, embed, llm);
272
+ totalObservations += result.observation_ids.length;
273
+ totalInsights += result.insights.length;
274
+ processed++;
275
+ }
276
+ catch (err) {
277
+ const message = err instanceof Error ? err.message : String(err);
278
+ process.stderr.write(` failed: ${message}\n`);
279
+ failed++;
280
+ }
281
+ }
282
+ process.stderr.write(`\nSummary: ${processed} file(s) processed` +
283
+ (failed > 0 ? `, ${failed} failed` : '') +
284
+ `, ${totalObservations} observations, ${totalInsights} insights\n`);
285
+ }
286
+ //# sourceMappingURL=digest-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest-cmd.js","sourceRoot":"","sources":["../../src/bin/digest-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * init.ts — cortex-kit init command.
3
+ *
4
+ * Scaffolds a new agent workspace with cortex-engine configuration.
5
+ *
6
+ * Usage:
7
+ * cortex-kit init <name> [options]
8
+ * cortex-kit init --here [options]
9
+ *
10
+ * Options:
11
+ * --store sqlite|firestore Storage backend (default: sqlite)
12
+ * --embed ollama|vertex|openai Embedding provider (default: ollama)
13
+ * --llm ollama|gemini|anthropic|openai LLM provider (default: ollama)
14
+ * --namespace <name> Default namespace name (default: default)
15
+ * --here Scaffold into current directory instead of creating <name>/
16
+ * --obsidian Create .obsidian/ structure
17
+ */
18
+ type StoreOption = 'sqlite' | 'firestore';
19
+ type EmbedOption = 'ollama' | 'vertex' | 'openai';
20
+ type LlmOption = 'ollama' | 'gemini' | 'anthropic' | 'openai';
21
+ interface InitOptions {
22
+ name: string;
23
+ store: StoreOption;
24
+ embed: EmbedOption;
25
+ llm: LlmOption;
26
+ namespace: string;
27
+ here: boolean;
28
+ obsidian: boolean;
29
+ }
30
+ export declare function parseInitArgs(args: string[]): InitOptions | null;
31
+ export declare function runInit(args: string[]): void;
32
+ export {};
33
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/bin/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAiBH,KAAK,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAC1C,KAAK,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAClD,KAAK,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE9D,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,SAAS,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAiEhE;AAqMD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAiG5C"}