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,30 @@
1
+ export async function executeIngestionPipeline(trigger, content, metadata, toolLookup) {
2
+ const steps = [];
3
+ for (const toolName of trigger.pipeline) {
4
+ const tool = toolLookup(toolName);
5
+ if (!tool) {
6
+ steps.push({ tool: toolName, status: 'skipped', error: `Tool "${toolName}" not found` });
7
+ continue;
8
+ }
9
+ try {
10
+ const result = await tool.handler({
11
+ text: content,
12
+ namespace: trigger.namespace,
13
+ _triggered_by: trigger.event,
14
+ ...metadata,
15
+ });
16
+ steps.push({ tool: toolName, status: 'ok', result });
17
+ }
18
+ catch (err) {
19
+ const message = err instanceof Error ? err.message : String(err);
20
+ steps.push({ tool: toolName, status: 'failed', error: message });
21
+ // Continue pipeline — don't let one failure stop others
22
+ }
23
+ }
24
+ return {
25
+ trigger_event: trigger.event,
26
+ namespace: trigger.namespace,
27
+ steps,
28
+ };
29
+ }
30
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/triggers/pipeline.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAiE,EACjE,OAAe,EACf,QAAiC,EACjC,UAAqD;IAErD,MAAM,KAAK,GAAyB,EAAE,CAAC;IAEvC,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,QAAQ,aAAa,EAAE,CAAC,CAAC;YACzF,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;gBAChC,IAAI,EAAE,OAAO;gBACb,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,KAAK;gBAC5B,GAAG,QAAQ;aACZ,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACjE,wDAAwD;QAC1D,CAAC;IACH,CAAC;IAED,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,KAAK;QAC5B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,KAAK;KACN,CAAC;AACJ,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { NamespaceConfig } from '../core/config.js';
2
+ export interface ResolvedTrigger {
3
+ event: string;
4
+ pipeline: string[];
5
+ namespace: string;
6
+ }
7
+ export declare class TriggerRegistry {
8
+ private readonly triggers;
9
+ constructor(namespaces: Record<string, NamespaceConfig>);
10
+ /** Get all triggers for a given event. */
11
+ getTriggersForEvent(event: string): ResolvedTrigger[];
12
+ /** Get triggers for a specific event in a specific namespace. */
13
+ getTriggersForEventInNamespace(event: string, namespace: string): ResolvedTrigger[];
14
+ /** Get all registered event names. */
15
+ getRegisteredEvents(): string[];
16
+ }
17
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/triggers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA0B,MAAM,mBAAmB,CAAC;AAEjF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6C;gBAE1D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAkBvD,0CAA0C;IAC1C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE;IAIrD,iEAAiE;IACjE,8BAA8B,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,eAAe,EAAE;IAInF,sCAAsC;IACtC,mBAAmB,IAAI,MAAM,EAAE;CAGhC"}
@@ -0,0 +1,32 @@
1
+ export class TriggerRegistry {
2
+ triggers = new Map();
3
+ constructor(namespaces) {
4
+ for (const [nsName, nsConfig] of Object.entries(namespaces)) {
5
+ if (!nsConfig.ingestion_triggers)
6
+ continue;
7
+ for (const [eventName, triggerConfig] of Object.entries(nsConfig.ingestion_triggers)) {
8
+ const resolved = {
9
+ event: eventName,
10
+ pipeline: triggerConfig.pipeline,
11
+ namespace: nsName,
12
+ };
13
+ const existing = this.triggers.get(eventName) ?? [];
14
+ existing.push(resolved);
15
+ this.triggers.set(eventName, existing);
16
+ }
17
+ }
18
+ }
19
+ /** Get all triggers for a given event. */
20
+ getTriggersForEvent(event) {
21
+ return this.triggers.get(event) ?? [];
22
+ }
23
+ /** Get triggers for a specific event in a specific namespace. */
24
+ getTriggersForEventInNamespace(event, namespace) {
25
+ return this.getTriggersForEvent(event).filter((t) => t.namespace === namespace);
26
+ }
27
+ /** Get all registered event names. */
28
+ getRegisteredEvents() {
29
+ return Array.from(this.triggers.keys());
30
+ }
31
+ }
32
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/triggers/registry.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,eAAe;IACT,QAAQ,GAAmC,IAAI,GAAG,EAAE,CAAC;IAEtE,YAAY,UAA2C;QACrD,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,CAAC,kBAAkB;gBAAE,SAAS;YAC3C,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CACrD,QAAQ,CAAC,kBAA4D,CACtE,EAAE,CAAC;gBACF,MAAM,QAAQ,GAAoB;oBAChC,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,aAAa,CAAC,QAAQ;oBAChC,SAAS,EAAE,MAAM;iBAClB,CAAC;gBACF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,mBAAmB,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED,iEAAiE;IACjE,8BAA8B,CAAC,KAAa,EAAE,SAAiB;QAC7D,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAClF,CAAC;IAED,sCAAsC;IACtC,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
package/package.json ADDED
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "cortex-engine",
3
+ "version": "0.1.0",
4
+ "description": "Portable cognitive engine for AI agents — storage, embeddings, memory, FSRS, and MCP server",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "cortex-engine": "dist/bin/serve.js",
10
+ "cortex-kit": "dist/bin/cli.js"
11
+ },
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "tsc --watch",
15
+ "serve": "node dist/bin/serve.js",
16
+ "test": "node --experimental-vm-modules node_modules/.bin/vitest run",
17
+ "test:watch": "node --experimental-vm-modules node_modules/.bin/vitest"
18
+ },
19
+ "engines": {
20
+ "node": ">=20"
21
+ },
22
+ "dependencies": {
23
+ "@modelcontextprotocol/sdk": "^1.6.1",
24
+ "better-sqlite3": "^11.7.0",
25
+ "yaml": "^2.7.0"
26
+ },
27
+ "peerDependencies": {
28
+ "@anthropic-ai/sdk": "^0.39.0",
29
+ "@google-cloud/aiplatform": "^3.12.0",
30
+ "@google-cloud/firestore": "^7.11.0",
31
+ "@google-cloud/vertexai": "^1.9.0",
32
+ "firebase-admin": "^13.0.0",
33
+ "openai": "^4.77.0"
34
+ },
35
+ "peerDependenciesMeta": {
36
+ "@anthropic-ai/sdk": { "optional": true },
37
+ "@google-cloud/aiplatform": { "optional": true },
38
+ "@google-cloud/firestore": { "optional": true },
39
+ "@google-cloud/vertexai": { "optional": true },
40
+ "firebase-admin": { "optional": true },
41
+ "openai": { "optional": true }
42
+ },
43
+ "devDependencies": {
44
+ "@anthropic-ai/sdk": "^0.39.0",
45
+ "@google-cloud/aiplatform": "^3.12.0",
46
+ "@google-cloud/firestore": "^7.11.0",
47
+ "@google-cloud/vertexai": "^1.9.0",
48
+ "@types/better-sqlite3": "^7.6.12",
49
+ "@types/node": "^22.10.0",
50
+ "firebase-admin": "^13.0.0",
51
+ "openai": "^4.77.0",
52
+ "typescript": "^5.7.0",
53
+ "vitest": "^3.0.0"
54
+ },
55
+ "keywords": [
56
+ "cortex",
57
+ "cognitive",
58
+ "memory",
59
+ "fsrs",
60
+ "mcp",
61
+ "ai-agent",
62
+ "embeddings"
63
+ ],
64
+ "license": "MIT",
65
+ "author": "Fozikio <hello@fozikio.com>",
66
+ "repository": {
67
+ "type": "git",
68
+ "url": "https://github.com/Fozikio/cortex-engine.git"
69
+ },
70
+ "homepage": "https://github.com/Fozikio/cortex-engine#readme",
71
+ "files": [
72
+ "dist",
73
+ "LICENSE",
74
+ "README.md"
75
+ ],
76
+ "exports": {
77
+ ".": {
78
+ "import": "./dist/index.js",
79
+ "types": "./dist/index.d.ts"
80
+ },
81
+ "./stores/firestore": {
82
+ "import": "./dist/stores/firestore.js",
83
+ "types": "./dist/stores/firestore.d.ts"
84
+ },
85
+ "./stores/sqlite": {
86
+ "import": "./dist/stores/sqlite.js",
87
+ "types": "./dist/stores/sqlite.d.ts"
88
+ },
89
+ "./mcp": {
90
+ "import": "./dist/mcp/server.js",
91
+ "types": "./dist/mcp/server.d.ts"
92
+ }
93
+ }
94
+ }