nexus-prime 0.2.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 (134) hide show
  1. package/README.md +253 -0
  2. package/dist/agents/adapters/mcp.d.ts +21 -0
  3. package/dist/agents/adapters/mcp.d.ts.map +1 -0
  4. package/dist/agents/adapters/mcp.js +447 -0
  5. package/dist/agents/adapters/mcp.js.map +1 -0
  6. package/dist/agents/adapters.d.ts +57 -0
  7. package/dist/agents/adapters.d.ts.map +1 -0
  8. package/dist/agents/adapters.js +151 -0
  9. package/dist/agents/adapters.js.map +1 -0
  10. package/dist/agents/coordinator.d.ts +75 -0
  11. package/dist/agents/coordinator.d.ts.map +1 -0
  12. package/dist/agents/coordinator.js +339 -0
  13. package/dist/agents/coordinator.js.map +1 -0
  14. package/dist/agents/core/types.d.ts +157 -0
  15. package/dist/agents/core/types.d.ts.map +1 -0
  16. package/dist/agents/core/types.js +5 -0
  17. package/dist/agents/core/types.js.map +1 -0
  18. package/dist/agents/learner.d.ts +25 -0
  19. package/dist/agents/learner.d.ts.map +1 -0
  20. package/dist/agents/learner.js +88 -0
  21. package/dist/agents/learner.js.map +1 -0
  22. package/dist/cli.d.ts +6 -0
  23. package/dist/cli.d.ts.map +1 -0
  24. package/dist/cli.js +237 -0
  25. package/dist/cli.js.map +1 -0
  26. package/dist/config.d.ts +74 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +73 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/core/evolution.d.ts +122 -0
  31. package/dist/core/evolution.d.ts.map +1 -0
  32. package/dist/core/evolution.js +319 -0
  33. package/dist/core/evolution.js.map +1 -0
  34. package/dist/core/memory.d.ts +96 -0
  35. package/dist/core/memory.d.ts.map +1 -0
  36. package/dist/core/memory.js +304 -0
  37. package/dist/core/memory.js.map +1 -0
  38. package/dist/core/optimize.d.ts +100 -0
  39. package/dist/core/optimize.d.ts.map +1 -0
  40. package/dist/core/optimize.js +263 -0
  41. package/dist/core/optimize.js.map +1 -0
  42. package/dist/core/types.d.ts +155 -0
  43. package/dist/core/types.d.ts.map +1 -0
  44. package/dist/core/types.js +5 -0
  45. package/dist/core/types.js.map +1 -0
  46. package/dist/core/wave.d.ts +55 -0
  47. package/dist/core/wave.d.ts.map +1 -0
  48. package/dist/core/wave.js +119 -0
  49. package/dist/core/wave.js.map +1 -0
  50. package/dist/engines/benchmark.d.ts +76 -0
  51. package/dist/engines/benchmark.d.ts.map +1 -0
  52. package/dist/engines/benchmark.js +167 -0
  53. package/dist/engines/benchmark.js.map +1 -0
  54. package/dist/engines/cache-manager.d.ts +75 -0
  55. package/dist/engines/cache-manager.d.ts.map +1 -0
  56. package/dist/engines/cache-manager.js +200 -0
  57. package/dist/engines/cache-manager.js.map +1 -0
  58. package/dist/engines/context.d.ts +50 -0
  59. package/dist/engines/context.d.ts.map +1 -0
  60. package/dist/engines/context.js +99 -0
  61. package/dist/engines/context.js.map +1 -0
  62. package/dist/engines/embedder.d.ts +55 -0
  63. package/dist/engines/embedder.d.ts.map +1 -0
  64. package/dist/engines/embedder.js +223 -0
  65. package/dist/engines/embedder.js.map +1 -0
  66. package/dist/engines/guardrails-bridge.d.ts +64 -0
  67. package/dist/engines/guardrails-bridge.d.ts.map +1 -0
  68. package/dist/engines/guardrails-bridge.js +251 -0
  69. package/dist/engines/guardrails-bridge.js.map +1 -0
  70. package/dist/engines/index.d.ts +14 -0
  71. package/dist/engines/index.d.ts.map +1 -0
  72. package/dist/engines/index.js +14 -0
  73. package/dist/engines/index.js.map +1 -0
  74. package/dist/engines/memory.d.ts +76 -0
  75. package/dist/engines/memory.d.ts.map +1 -0
  76. package/dist/engines/memory.js +431 -0
  77. package/dist/engines/memory.js.map +1 -0
  78. package/dist/engines/meta-learner.d.ts +87 -0
  79. package/dist/engines/meta-learner.d.ts.map +1 -0
  80. package/dist/engines/meta-learner.js +214 -0
  81. package/dist/engines/meta-learner.js.map +1 -0
  82. package/dist/engines/orchestrator.d.ts +69 -0
  83. package/dist/engines/orchestrator.d.ts.map +1 -0
  84. package/dist/engines/orchestrator.js +175 -0
  85. package/dist/engines/orchestrator.js.map +1 -0
  86. package/dist/engines/pod-network.d.ts +31 -0
  87. package/dist/engines/pod-network.d.ts.map +1 -0
  88. package/dist/engines/pod-network.js +108 -0
  89. package/dist/engines/pod-network.js.map +1 -0
  90. package/dist/engines/token-optimizer.d.ts +53 -0
  91. package/dist/engines/token-optimizer.d.ts.map +1 -0
  92. package/dist/engines/token-optimizer.js +115 -0
  93. package/dist/engines/token-optimizer.js.map +1 -0
  94. package/dist/engines/token-supremacy.d.ts +86 -0
  95. package/dist/engines/token-supremacy.d.ts.map +1 -0
  96. package/dist/engines/token-supremacy.js +403 -0
  97. package/dist/engines/token-supremacy.js.map +1 -0
  98. package/dist/index.d.ts +99 -0
  99. package/dist/index.d.ts.map +1 -0
  100. package/dist/index.js +302 -0
  101. package/dist/index.js.map +1 -0
  102. package/dist/nexus-prime.d.ts +15 -0
  103. package/dist/nexus-prime.d.ts.map +1 -0
  104. package/dist/nexus-prime.js +15 -0
  105. package/dist/nexus-prime.js.map +1 -0
  106. package/dist/phantom/index.d.ts +135 -0
  107. package/dist/phantom/index.d.ts.map +1 -0
  108. package/dist/phantom/index.js +286 -0
  109. package/dist/phantom/index.js.map +1 -0
  110. package/dist/phantom/merge-oracle.d.ts +35 -0
  111. package/dist/phantom/merge-oracle.d.ts.map +1 -0
  112. package/dist/phantom/merge-oracle.js +189 -0
  113. package/dist/phantom/merge-oracle.js.map +1 -0
  114. package/dist/phantom/phase4-orchestrator.d.ts +14 -0
  115. package/dist/phantom/phase4-orchestrator.d.ts.map +1 -0
  116. package/dist/phantom/phase4-orchestrator.js +488 -0
  117. package/dist/phantom/phase4-orchestrator.js.map +1 -0
  118. package/dist/verify-guardrails.d.ts +2 -0
  119. package/dist/verify-guardrails.d.ts.map +1 -0
  120. package/dist/verify-guardrails.js +48 -0
  121. package/dist/verify-guardrails.js.map +1 -0
  122. package/dist/verify-pod-sync.d.ts +2 -0
  123. package/dist/verify-pod-sync.d.ts.map +1 -0
  124. package/dist/verify-pod-sync.js +41 -0
  125. package/dist/verify-pod-sync.js.map +1 -0
  126. package/dist/verify-substrate.d.ts +2 -0
  127. package/dist/verify-substrate.d.ts.map +1 -0
  128. package/dist/verify-substrate.js +41 -0
  129. package/dist/verify-substrate.js.map +1 -0
  130. package/dist/verify-token-scoring.d.ts +2 -0
  131. package/dist/verify-token-scoring.d.ts.map +1 -0
  132. package/dist/verify-token-scoring.js +37 -0
  133. package/dist/verify-token-scoring.js.map +1 -0
  134. package/package.json +80 -0
@@ -0,0 +1,41 @@
1
+ import { createNexusPrime } from './index.js';
2
+ import { podNetwork } from './engines/pod-network.js';
3
+ import { HyperbolicMath } from './engines/embedder.js';
4
+ async function verify() {
5
+ console.log('🧪 Starting Neural Substrate & Swarm Verification...\n');
6
+ const nexus = createNexusPrime();
7
+ await nexus.start();
8
+ // 1. Test Hyperbolic Math
9
+ console.log('--- 1. Hyperbolic Math ---');
10
+ const v1 = [0.1, 0.2];
11
+ const v2 = [0.3, 0.4];
12
+ const dist = HyperbolicMath.dist(v1, v2);
13
+ console.log(`Poincare Distance between [0.1, 0.2] and [0.3, 0.4]: ${dist.toFixed(4)}`);
14
+ if (dist > 0)
15
+ console.log('✅ Hyperbolic distance calculated correctly.');
16
+ // 2. Test Hierarchical Memory & Boost
17
+ console.log('\n--- 2. Hierarchical Memory Boost ---');
18
+ const parentId = nexus.storeMemory('Fundamental Architecture of Nexus Prime', 1.0, ['#architecture']);
19
+ const childId = nexus.storeMemory('Implementation details of MemoryEngine', 0.8, ['#memory'], parentId, 1);
20
+ console.log(`Stored parent: ${parentId}`);
21
+ console.log(`Stored child: ${childId} with parent: ${parentId}`);
22
+ const results = await nexus.recallMemory('Architecture details', 5);
23
+ console.log('Recalled for "Architecture details":');
24
+ results.forEach(r => console.log(` - ${r}`));
25
+ if (results.some(r => r.includes('Implementation details'))) {
26
+ console.log('✅ Hierarchical boost worked: child recalled via parent context.');
27
+ }
28
+ // 3. Test POD Network
29
+ console.log('\n--- 3. POD Swarm Synchronization ---');
30
+ podNetwork.publish('worker-1', 'CRITICAL: Found potential memory leak in SQLite flush loop', 0.95, ['#bug', '#swarm-broadcast']);
31
+ const podResults = await nexus.recallMemory('memory leak', 5);
32
+ console.log('Recalled for "memory leak" (searching POD + Local):');
33
+ podResults.forEach(r => console.log(` - ${r}`));
34
+ if (podResults.some(r => r.includes('memory leak'))) {
35
+ console.log('✅ Swarm recall worked: POD finding integrated into local recall.');
36
+ }
37
+ await nexus.stop();
38
+ console.log('\n✨ Verification Complete.');
39
+ }
40
+ verify().catch(console.error);
41
+ //# sourceMappingURL=verify-substrate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-substrate.js","sourceRoot":"","sources":["../src/verify-substrate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=verify-token-scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-token-scoring.d.ts","sourceRoot":"","sources":["../src/verify-token-scoring.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { TokenSupremacyEngine } from './engines/token-supremacy.js';
2
+ import * as fs from 'fs';
3
+ async function verify() {
4
+ const engine = new TokenSupremacyEngine();
5
+ const task = "Audit all Nexus Prime tools and engines";
6
+ // Test with real files from the repo
7
+ const files = [
8
+ { path: 'src/engines/token-supremacy.ts', sizeBytes: fs.statSync('src/engines/token-supremacy.ts').size },
9
+ { path: 'src/engines/memory.ts', sizeBytes: fs.statSync('src/engines/memory.ts').size },
10
+ { path: 'package.json', sizeBytes: fs.statSync('package.json').size },
11
+ { path: 'README.md', sizeBytes: fs.statSync('README.md').size }
12
+ ];
13
+ const plan = engine.plan(task, files);
14
+ console.log(`Task: "${task}"`);
15
+ console.log('---');
16
+ let allPassed = true;
17
+ for (const f of plan.files) {
18
+ console.log(`File: ${f.file.path}`);
19
+ console.log(`Action: ${f.action}`);
20
+ console.log(`Reason: ${f.reason}`);
21
+ if (f.action === 'skip' && f.file.path.includes('token-supremacy')) {
22
+ console.error('❌ FAILED: Token supremacy engine was skipped but should be highly relevant.');
23
+ allPassed = false;
24
+ }
25
+ else if (f.action !== 'skip') {
26
+ console.log('✅ PASSED: File correctly identified as relevant.');
27
+ }
28
+ }
29
+ if (allPassed) {
30
+ console.log('\n✨ ALL TESTS PASSED: Token optimizer is now content-aware!');
31
+ }
32
+ else {
33
+ process.exit(1);
34
+ }
35
+ }
36
+ verify().catch(console.error);
37
+ //# sourceMappingURL=verify-token-scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify-token-scoring.js","sourceRoot":"","sources":["../src/verify-token-scoring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,KAAK,UAAU,MAAM;IACjB,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,yCAAyC,CAAC;IAEvD,qCAAqC;IACrC,MAAM,KAAK,GAAG;QACV,EAAE,IAAI,EAAE,gCAAgC,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,IAAI,EAAE;QACzG,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,IAAI,EAAE;QACvF,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE;QACrE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE;KAClE,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEnB,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAEnC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAC;YAC7F,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC/E,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "nexus-prime",
3
+ "version": "0.2.0",
4
+ "description": "The Self-Evolving Agent Operating System — cross-session memory, token optimization, parallel sub-agents via MCP",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "README.md",
17
+ "LICENSE",
18
+ "GEMINI.md"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/sir-ad/nexus-prime.git"
23
+ },
24
+ "homepage": "https://github.com/sir-ad/nexus-prime",
25
+ "bin": {
26
+ "nexus-prime": "./dist/cli.js"
27
+ },
28
+ "scripts": {
29
+ "nexus:dev": "node dev-orchestrator.mjs",
30
+ "build": "tsc",
31
+ "dev": "tsc --watch",
32
+ "start": "node dist/cli.js start",
33
+ "init": "node dist/cli.js init",
34
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
35
+ "lint": "eslint src --ext .ts"
36
+ },
37
+ "keywords": [
38
+ "ai",
39
+ "agents",
40
+ "mcp",
41
+ "memory",
42
+ "token-optimization",
43
+ "multi-agent",
44
+ "orchestration",
45
+ "guardrails",
46
+ "self-evolving",
47
+ "nexus-prime"
48
+ ],
49
+ "author": "sir-ad",
50
+ "license": "MIT",
51
+ "dependencies": {
52
+ "@modelcontextprotocol/sdk": "^1.27.1",
53
+ "better-sqlite3": "^12.6.2",
54
+ "commander": "^11.1.0",
55
+ "dotenv": "^16.3.1",
56
+ "express": "^4.18.2",
57
+ "pino": "^8.17.2",
58
+ "uuid": "^9.0.1",
59
+ "vectra": "^0.12.3",
60
+ "ws": "^8.16.0",
61
+ "zod": "^3.22.4"
62
+ },
63
+ "devDependencies": {
64
+ "@types/better-sqlite3": "^7.6.8",
65
+ "@types/express": "^4.17.21",
66
+ "@types/jest": "^29.5.11",
67
+ "@types/node": "^20.11.0",
68
+ "@types/uuid": "^9.0.7",
69
+ "@types/ws": "^8.5.10",
70
+ "@typescript-eslint/eslint-plugin": "^6.19.0",
71
+ "@typescript-eslint/parser": "^6.19.0",
72
+ "eslint": "^8.56.0",
73
+ "jest": "^29.7.0",
74
+ "ts-jest": "^29.1.1",
75
+ "typescript": "^5.3.3"
76
+ },
77
+ "engines": {
78
+ "node": ">=18.0.0"
79
+ }
80
+ }