nexus-prime 5.1.2 → 5.1.3

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 (49) hide show
  1. package/README.md +10 -0
  2. package/dist/agents/adapters/mcp.d.ts.map +1 -1
  3. package/dist/agents/adapters/mcp.js +41 -16
  4. package/dist/agents/adapters/mcp.js.map +1 -1
  5. package/dist/dashboard/routes/assets.d.ts.map +1 -1
  6. package/dist/dashboard/routes/assets.js +11 -25
  7. package/dist/dashboard/routes/assets.js.map +1 -1
  8. package/dist/dashboard/routes/governance.d.ts.map +1 -1
  9. package/dist/dashboard/routes/governance.js +10 -6
  10. package/dist/dashboard/routes/governance.js.map +1 -1
  11. package/dist/dashboard/routes/health.js +1 -1
  12. package/dist/dashboard/routes/health.js.map +1 -1
  13. package/dist/dashboard/routes/runtime.d.ts.map +1 -1
  14. package/dist/dashboard/routes/runtime.js +40 -22
  15. package/dist/dashboard/routes/runtime.js.map +1 -1
  16. package/dist/dashboard/routes/summary.d.ts.map +1 -1
  17. package/dist/dashboard/routes/summary.js +1 -1
  18. package/dist/dashboard/routes/summary.js.map +1 -1
  19. package/dist/dashboard/routes/surfaces.d.ts.map +1 -1
  20. package/dist/dashboard/routes/surfaces.js +2 -1
  21. package/dist/dashboard/routes/surfaces.js.map +1 -1
  22. package/dist/dashboard/selectors/assets-selector.d.ts +1 -0
  23. package/dist/dashboard/selectors/assets-selector.d.ts.map +1 -1
  24. package/dist/dashboard/selectors/assets-selector.js +21 -17
  25. package/dist/dashboard/selectors/assets-selector.js.map +1 -1
  26. package/dist/dashboard/selectors/memory-selector.d.ts.map +1 -1
  27. package/dist/dashboard/selectors/memory-selector.js +3 -2
  28. package/dist/dashboard/selectors/memory-selector.js.map +1 -1
  29. package/dist/dashboard/server.d.ts +3 -0
  30. package/dist/dashboard/server.d.ts.map +1 -1
  31. package/dist/dashboard/server.js +70 -19
  32. package/dist/dashboard/server.js.map +1 -1
  33. package/dist/dashboard/types.d.ts +1 -0
  34. package/dist/dashboard/types.d.ts.map +1 -1
  35. package/dist/engines/bootstrap/bootstrap-fast.d.ts.map +1 -1
  36. package/dist/engines/bootstrap/bootstrap-fast.js +7 -5
  37. package/dist/engines/bootstrap/bootstrap-fast.js.map +1 -1
  38. package/dist/engines/knowledge-fabric.d.ts.map +1 -1
  39. package/dist/engines/knowledge-fabric.js +8 -6
  40. package/dist/engines/knowledge-fabric.js.map +1 -1
  41. package/dist/engines/orchestrator.d.ts +14 -0
  42. package/dist/engines/orchestrator.d.ts.map +1 -1
  43. package/dist/engines/orchestrator.js +222 -99
  44. package/dist/engines/orchestrator.js.map +1 -1
  45. package/dist/engines/token-supremacy.d.ts +2 -0
  46. package/dist/engines/token-supremacy.d.ts.map +1 -1
  47. package/dist/engines/token-supremacy.js +44 -10
  48. package/dist/engines/token-supremacy.js.map +1 -1
  49. package/package.json +1 -1
package/README.md CHANGED
@@ -629,6 +629,16 @@ Inventory Snapshot: 109 skills · 64 workflows · 9 hooks · 5 automations · 7
629
629
 
630
630
  ## 📜 Release History
631
631
 
632
+ <details open>
633
+ <summary><b>v5.1.3</b> · 2026-04-09 · Runtime Latency Refinements</summary>
634
+
635
+ - **Shallow orchestrate latency**: caches workspace identity, tracked files, and selector projections to reduce preparation before the first useful response.
636
+ - **Deep-context staging on demand**: Knowledge Fabric compose and broader selector work now stay off the simple path until task complexity actually requires them.
637
+ - **Performance branch landed**: packages the branch's bootstrap, dashboard, and orchestrate response-path reductions into `main` without changing behavior.
638
+
639
+ Full notes: [releases/v5.1.3.md](./releases/v5.1.3.md) · Full history: [CHANGELOG.md](./CHANGELOG.md)
640
+ </details>
641
+
632
642
  <details open>
633
643
  <summary><b>v5.1.2</b> · 2026-04-09 · Memory Layers & Lifecycle Hooks</summary>
634
644
 
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/mcp.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAmG5C,KAAK,cAAc,GAAG,YAAY,GAAG,MAAM,CAAC;AAK5C,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AA6aF,qBAAa,UAAW,YAAW,OAAO;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAG,KAAK,CAAU;IACtB,SAAS,UAAS;IAClB,MAAM,EAAE,MAAM,EAAE,CAAM;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,OAAO,CAAC,uBAAuB,CAAC,CAAS;IACzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,oBAAoB,CAAgG;IAC5H,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,eAAe;IAqEvB,OAAO,CAAC,GAAG;;IAqBX,OAAO,CAAC,gBAAgB;IA4BxB,WAAW,CAAC,KAAK,EAAE,UAAU;IAI7B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,yBAAyB;IAqFjC,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,yBAAyB;IA2CjC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,YAAY;YAON,mBAAmB;IA0DjC,OAAO,CAAC,+BAA+B;IAMvC,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,uBAAuB;IAkC/B,cAAc,CAAC,OAAO,GAAE,cAAsC,GAAG,iBAAiB,EAAE;IAIpF,OAAO,CAAC,oBAAoB;IAk/B5B,OAAO,CAAC,iBAAiB;YAkHX,cAAc;IAslF5B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAItC,OAAO,CAAC,IAAI;IAmBN,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;CAOzC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/agents/adapters/mcp.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AA4H5C,KAAK,cAAc,GAAG,YAAY,GAAG,MAAM,CAAC;AAK5C,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AA6aF,qBAAa,UAAW,YAAW,OAAO;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAG,KAAK,CAAU;IACtB,SAAS,UAAS;IAClB,MAAM,EAAE,MAAM,EAAE,CAAM;IAEtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAa;IAC9B,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,OAAO,CAAC,CAAkB;IAClC,OAAO,CAAC,uBAAuB,CAAC,CAAS;IACzC,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,oBAAoB,CAAgG;IAC5H,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,kBAAkB,CAAqB;IAE/C,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,eAAe;IAqEvB,OAAO,CAAC,GAAG;;IAqBX,OAAO,CAAC,gBAAgB;IA4BxB,WAAW,CAAC,KAAK,EAAE,UAAU;IAI7B,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,4BAA4B;IAepC,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,yBAAyB;IAqFjC,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,yBAAyB;IA2CjC,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,YAAY;YAON,mBAAmB;IA0DjC,OAAO,CAAC,+BAA+B;IAMvC,OAAO,CAAC,uBAAuB;IA0B/B,OAAO,CAAC,2BAA2B;IAqBnC,OAAO,CAAC,uBAAuB;IAkC/B,cAAc,CAAC,OAAO,GAAE,cAAsC,GAAG,iBAAiB,EAAE;IAIpF,OAAO,CAAC,oBAAoB;IAk/B5B,OAAO,CAAC,iBAAiB;YAkHX,cAAc;IAslF5B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAItC,OAAO,CAAC,IAAI;IAmBN,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlD,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;CAOzC"}
@@ -35,11 +35,36 @@ import { resolveWorkspaceContext, resolveWorkspaceStateRoot } from '../../engine
35
35
  import { hasValidBootstrapReceipt } from '../../engines/bootstrap/index.js';
36
36
  import { synapseToolDefinitions, handleSynapseToolCall } from '../../synapse/index.js';
37
37
  import { architectsToolDefinitions, handleArchitectsToolCall } from '../../architects/index.js';
38
- const tokenEngine = new TokenSupremacyEngine();
39
- const guardrailEngine = new GuardrailEngine();
40
- const casEngine = new ContinuousAttentionStream();
41
- const kvBridge = createKVBridge({ agents: 3 });
42
- const federation = new FederationEngine();
38
+ let _tokenEngine;
39
+ let _guardrailEngine;
40
+ let _casEngine;
41
+ let _kvBridge;
42
+ let _federation;
43
+ function getTokenEngine() {
44
+ if (!_tokenEngine)
45
+ _tokenEngine = new TokenSupremacyEngine();
46
+ return _tokenEngine;
47
+ }
48
+ function getGuardrailEngine() {
49
+ if (!_guardrailEngine)
50
+ _guardrailEngine = new GuardrailEngine();
51
+ return _guardrailEngine;
52
+ }
53
+ function getCasEngine() {
54
+ if (!_casEngine)
55
+ _casEngine = new ContinuousAttentionStream();
56
+ return _casEngine;
57
+ }
58
+ function getKvBridge() {
59
+ if (!_kvBridge)
60
+ _kvBridge = createKVBridge({ agents: 3 });
61
+ return _kvBridge;
62
+ }
63
+ function getFederation() {
64
+ if (!_federation)
65
+ _federation = new FederationEngine();
66
+ return _federation;
67
+ }
43
68
  const fallbackRuntimes = new Map();
44
69
  const fallbackOrchestrators = new Map();
45
70
  function getFallbackRuntime(workspace) {
@@ -836,14 +861,14 @@ export class MCPAdapter {
836
861
  const action = ctx.toolName === 'nexus_store_memory'
837
862
  ? `nexus_store_memory: ${String(ctx.args.content ?? '')}`
838
863
  : `nexusnet_transmit: ${String(ctx.args.content ?? '')}`;
839
- const guardCheck = guardrailEngine.check({ action });
864
+ const guardCheck = getGuardrailEngine().check({ action });
840
865
  if (guardCheck.passed)
841
866
  return;
842
867
  ctx.meta.shortCircuitedBy = 'guardrails';
843
868
  ctx.meta.shortCircuitResult = {
844
869
  content: [{
845
870
  type: 'text',
846
- text: `❌ GUARDRAIL BLOCKED: ${guardrailEngine.format(guardCheck)}`,
871
+ text: `❌ GUARDRAIL BLOCKED: ${getGuardrailEngine().format(guardCheck)}`,
847
872
  }],
848
873
  };
849
874
  },
@@ -3245,7 +3270,7 @@ export class MCPAdapter {
3245
3270
  return { path: resolved, sizeBytes: 0 };
3246
3271
  }
3247
3272
  });
3248
- const plan = tokenEngine.plan(task, files);
3273
+ const plan = getTokenEngine().plan(task, files);
3249
3274
  const formatted = formatReadingPlan(plan);
3250
3275
  // Persist the decision
3251
3276
  this.nexusRef.storeMemory(`Token plan for "${task.slice(0, 80)}": ` +
@@ -3267,7 +3292,7 @@ export class MCPAdapter {
3267
3292
  filesToModify: args?.filesToModify,
3268
3293
  isDestructive: args?.isDestructive,
3269
3294
  };
3270
- const result = guardrailEngine.check(ctx);
3295
+ const result = getGuardrailEngine().check(ctx);
3271
3296
  // Store violations in Nexus memory
3272
3297
  if (result.violations.length > 0) {
3273
3298
  this.nexusRef.storeMemory(`[GUARDRAIL BLOCK] ${ctx.action.slice(0, 80)} — ${result.violations.map(v => v.id).join(', ')}`, 0.7, ['#guardrail', '#mindkit']);
@@ -3283,7 +3308,7 @@ export class MCPAdapter {
3283
3308
  score: Math.round(result.score * 100),
3284
3309
  violations: result.violations,
3285
3310
  warnings: result.warnings,
3286
- summary: guardrailEngine.format(result)
3311
+ summary: getGuardrailEngine().format(result)
3287
3312
  }, null, 2) + nudge
3288
3313
  }]
3289
3314
  };
@@ -3540,7 +3565,7 @@ export class MCPAdapter {
3540
3565
  return { path: resolved, sizeBytes: 0 };
3541
3566
  }
3542
3567
  }).filter(f => f.sizeBytes > 0);
3543
- const { plan, assembly, budgetConfig } = tokenEngine.hypertuneMax(task, files);
3568
+ const { plan, assembly, budgetConfig } = getTokenEngine().hypertuneMax(task, files);
3544
3569
  const planText = formatReadingPlan(plan);
3545
3570
  const assemblyText = ContextAssembler.format(assembly, budgetConfig);
3546
3571
  const savings = plan.savings;
@@ -4511,9 +4536,9 @@ export class MCPAdapter {
4511
4536
  throw new McpError(ErrorCode.InvalidParams, "Tokens array cannot be empty");
4512
4537
  }
4513
4538
  const task = "mcp_compression_request";
4514
- const encoding = casEngine.encode(tokens, task);
4539
+ const encoding = getCasEngine().encode(tokens, task);
4515
4540
  // Trigger learning of the provided text as a pattern
4516
- casEngine.learnPattern(tokens.join(' '), 1);
4541
+ getCasEngine().learnPattern(tokens.join(' '), 1);
4517
4542
  return {
4518
4543
  content: [{
4519
4544
  type: 'text',
@@ -4522,7 +4547,7 @@ export class MCPAdapter {
4522
4547
  };
4523
4548
  }
4524
4549
  case 'nexus_kv_bridge_status': {
4525
- const metrics = kvBridge.getMetrics();
4550
+ const metrics = getKvBridge().getMetrics();
4526
4551
  const text = `🌉 KV Bridge Status\n` +
4527
4552
  `Decisions: ${metrics.totalDecisions}\n` +
4528
4553
  `Merge Rate: ${(metrics.mergeRate * 100).toFixed(1)}%\n` +
@@ -4542,7 +4567,7 @@ export class MCPAdapter {
4542
4567
  entropy: 0.2,
4543
4568
  taskEmbedding: [1.0, 0.5]
4544
4569
  }));
4545
- const result = await kvBridge.adaptToTask(taskType, mockFeatures);
4570
+ const result = await getKvBridge().adaptToTask(taskType, mockFeatures);
4546
4571
  return {
4547
4572
  content: [{
4548
4573
  type: 'text',
@@ -4612,7 +4637,7 @@ export class MCPAdapter {
4612
4637
  const findings = Array.isArray(request.params.arguments?.findings) ? request.params.arguments.findings : [];
4613
4638
  const confidence = Number(request.params.arguments?.confidence ?? 0.9);
4614
4639
  const trace = { taskId, goal, findings, confidence, timestamp: Date.now() };
4615
- const result = await federation.publishTrace(trace);
4640
+ const result = await getFederation().publishTrace(trace);
4616
4641
  return {
4617
4642
  content: [{
4618
4643
  type: 'text',