@terminals-tech/agent-zero 1.0.0 → 2.0.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 (130) hide show
  1. package/LICENSE +21 -0
  2. package/THEORY.md +207 -0
  3. package/dist/agency/commandRouter.d.ts +10 -0
  4. package/dist/agency/commandRouter.d.ts.map +1 -1
  5. package/dist/agency/commandRouter.js +206 -0
  6. package/dist/agency/commandRouter.js.map +1 -1
  7. package/dist/agency/runtime.d.ts +26 -0
  8. package/dist/agency/runtime.d.ts.map +1 -1
  9. package/dist/agency/runtime.js +138 -6
  10. package/dist/agency/runtime.js.map +1 -1
  11. package/dist/channels/gemini.d.ts +73 -0
  12. package/dist/channels/gemini.d.ts.map +1 -0
  13. package/dist/channels/gemini.js +246 -0
  14. package/dist/channels/gemini.js.map +1 -0
  15. package/dist/channels/sms.d.ts.map +1 -1
  16. package/dist/channels/sms.js +1 -2
  17. package/dist/channels/sms.js.map +1 -1
  18. package/dist/interop/a2a.d.ts +133 -0
  19. package/dist/interop/a2a.d.ts.map +1 -0
  20. package/dist/interop/a2a.js +357 -0
  21. package/dist/interop/a2a.js.map +1 -0
  22. package/dist/interop/index.d.ts +10 -0
  23. package/dist/interop/index.d.ts.map +1 -0
  24. package/dist/interop/index.js +10 -0
  25. package/dist/interop/index.js.map +1 -0
  26. package/dist/interop/mcp.d.ts +111 -0
  27. package/dist/interop/mcp.d.ts.map +1 -0
  28. package/dist/interop/mcp.js +337 -0
  29. package/dist/interop/mcp.js.map +1 -0
  30. package/dist/moltbook/approvalGate.d.ts +23 -0
  31. package/dist/moltbook/approvalGate.d.ts.map +1 -1
  32. package/dist/moltbook/approvalGate.js +45 -0
  33. package/dist/moltbook/approvalGate.js.map +1 -1
  34. package/dist/moltbook/attentionField.d.ts +14 -0
  35. package/dist/moltbook/attentionField.d.ts.map +1 -1
  36. package/dist/moltbook/attentionField.js +37 -1
  37. package/dist/moltbook/attentionField.js.map +1 -1
  38. package/dist/moltbook/daemon.d.ts +27 -0
  39. package/dist/moltbook/daemon.d.ts.map +1 -1
  40. package/dist/moltbook/daemon.js +184 -5
  41. package/dist/moltbook/daemon.js.map +1 -1
  42. package/dist/moltbook/responseComposer.d.ts +7 -2
  43. package/dist/moltbook/responseComposer.d.ts.map +1 -1
  44. package/dist/moltbook/responseComposer.js +36 -7
  45. package/dist/moltbook/responseComposer.js.map +1 -1
  46. package/dist/moltbook/strategicContext.d.ts +89 -0
  47. package/dist/moltbook/strategicContext.d.ts.map +1 -0
  48. package/dist/moltbook/strategicContext.js +283 -0
  49. package/dist/moltbook/strategicContext.js.map +1 -0
  50. package/dist/primitives/index.d.ts +6 -2
  51. package/dist/primitives/index.d.ts.map +1 -1
  52. package/dist/primitives/index.js +6 -2
  53. package/dist/primitives/index.js.map +1 -1
  54. package/dist/rail/persistence.d.ts +70 -1
  55. package/dist/rail/persistence.d.ts.map +1 -1
  56. package/dist/rail/persistence.js +270 -3
  57. package/dist/rail/persistence.js.map +1 -1
  58. package/dist/rail/plugin.d.ts +76 -0
  59. package/dist/rail/plugin.d.ts.map +1 -0
  60. package/dist/rail/plugin.js +141 -0
  61. package/dist/rail/plugin.js.map +1 -0
  62. package/dist/rail/server.d.ts +121 -30
  63. package/dist/rail/server.d.ts.map +1 -1
  64. package/dist/rail/server.js +404 -28
  65. package/dist/rail/server.js.map +1 -1
  66. package/dist/rail/wsServer.d.ts +7 -0
  67. package/dist/rail/wsServer.d.ts.map +1 -1
  68. package/dist/rail/wsServer.js +233 -11
  69. package/dist/rail/wsServer.js.map +1 -1
  70. package/dist/resonance/globalKuramoto.d.ts +20 -0
  71. package/dist/resonance/globalKuramoto.d.ts.map +1 -1
  72. package/dist/resonance/globalKuramoto.js +95 -2
  73. package/dist/resonance/globalKuramoto.js.map +1 -1
  74. package/dist/resonance/kuramoto.d.ts +6 -0
  75. package/dist/resonance/kuramoto.d.ts.map +1 -1
  76. package/dist/resonance/kuramoto.js +25 -0
  77. package/dist/resonance/kuramoto.js.map +1 -1
  78. package/dist/routing/index.d.ts +2 -0
  79. package/dist/routing/index.d.ts.map +1 -1
  80. package/dist/routing/index.js +1 -0
  81. package/dist/routing/index.js.map +1 -1
  82. package/dist/routing/modelRegistry.d.ts +54 -0
  83. package/dist/routing/modelRegistry.d.ts.map +1 -0
  84. package/dist/routing/modelRegistry.js +150 -0
  85. package/dist/routing/modelRegistry.js.map +1 -0
  86. package/dist/routing/thermodynamic.d.ts +14 -3
  87. package/dist/routing/thermodynamic.d.ts.map +1 -1
  88. package/dist/routing/thermodynamic.js +26 -12
  89. package/dist/routing/thermodynamic.js.map +1 -1
  90. package/dist/runtime/agent-zero.d.ts +38 -2
  91. package/dist/runtime/agent-zero.d.ts.map +1 -1
  92. package/dist/runtime/agent-zero.js +110 -7
  93. package/dist/runtime/agent-zero.js.map +1 -1
  94. package/dist/runtime/contextWindow.d.ts +62 -0
  95. package/dist/runtime/contextWindow.d.ts.map +1 -0
  96. package/dist/runtime/contextWindow.js +125 -0
  97. package/dist/runtime/contextWindow.js.map +1 -0
  98. package/dist/runtime/identity.d.ts +65 -0
  99. package/dist/runtime/identity.d.ts.map +1 -0
  100. package/dist/runtime/identity.js +199 -0
  101. package/dist/runtime/identity.js.map +1 -0
  102. package/dist/runtime/index.d.ts +6 -0
  103. package/dist/runtime/index.d.ts.map +1 -1
  104. package/dist/runtime/index.js +6 -0
  105. package/dist/runtime/index.js.map +1 -1
  106. package/dist/runtime/sessionStore.d.ts +70 -0
  107. package/dist/runtime/sessionStore.d.ts.map +1 -0
  108. package/dist/runtime/sessionStore.js +134 -0
  109. package/dist/runtime/sessionStore.js.map +1 -0
  110. package/dist/security/capabilities.d.ts +46 -0
  111. package/dist/security/capabilities.d.ts.map +1 -1
  112. package/dist/security/capabilities.js +176 -0
  113. package/dist/security/capabilities.js.map +1 -1
  114. package/dist/security/combinators.d.ts +89 -0
  115. package/dist/security/combinators.d.ts.map +1 -0
  116. package/dist/security/combinators.js +168 -0
  117. package/dist/security/combinators.js.map +1 -0
  118. package/dist/security/index.d.ts +7 -1
  119. package/dist/security/index.d.ts.map +1 -1
  120. package/dist/security/index.js +4 -1
  121. package/dist/security/index.js.map +1 -1
  122. package/dist/security/isolation.d.ts +76 -0
  123. package/dist/security/isolation.d.ts.map +1 -0
  124. package/dist/security/isolation.js +118 -0
  125. package/dist/security/isolation.js.map +1 -0
  126. package/dist/security/sandbox.d.ts +38 -1
  127. package/dist/security/sandbox.d.ts.map +1 -1
  128. package/dist/security/sandbox.js +68 -8
  129. package/dist/security/sandbox.js.map +1 -1
  130. package/package.json +13 -3
@@ -6,6 +6,7 @@
6
6
  * - Maps clientId -> WebSocket for message routing
7
7
  * - Heartbeat ping/pong every 10s
8
8
  * - HTTP health endpoint at GET /health
9
+ * - HTTP endpoints for pause/resume, traces, search, synthesis
9
10
  */
10
11
  import { createServer } from 'http';
11
12
  import { WebSocketServer, WebSocket } from 'ws';
@@ -13,14 +14,18 @@ import { ResonanceRailServer } from './server.js';
13
14
  import { ClientRateLimiter } from './clientRateLimiter.js';
14
15
  import { createRailPersistence } from './persistence.js';
15
16
  import { createMetadataBroadcaster } from './metadataBroadcaster.js';
17
+ import { RailPluginManager } from './plugin.js';
16
18
  import { verifyUserToken } from './jwtVerifier.js';
17
19
  import { UserSessionManager } from './userSessionManager.js';
18
20
  import { AbsorptionProtocol } from '../coherence/absorption.js';
19
21
  import { RailAuthProtocol } from './authProtocol.js';
22
+ import { timingSafeEqual as cryptoTimingSafeEqual } from 'crypto';
20
23
  import { railLog } from './logger.js';
21
24
  // Connection limits
22
25
  const MAX_CONNECTIONS = 200;
23
26
  const MAX_OBSERVERS = 50;
27
+ // GoAway grace period for graceful shutdown
28
+ const GOAWAY_GRACE_MS = 5000;
24
29
  // ============================================================================
25
30
  // WS SERVER
26
31
  // ============================================================================
@@ -34,12 +39,16 @@ export class RailWebSocketServer {
34
39
  rateLimiter;
35
40
  persistence;
36
41
  metadataBroadcaster;
42
+ pluginManager;
37
43
  userSessionManager = new UserSessionManager();
38
44
  constructor(config) {
39
45
  this.config = config;
40
46
  const absorptionProtocol = new AbsorptionProtocol();
41
47
  this.rail = new ResonanceRailServer(absorptionProtocol);
42
48
  this.rateLimiter = new ClientRateLimiter();
49
+ // Initialize plugin manager and wire to rail
50
+ this.pluginManager = new RailPluginManager(this.rail);
51
+ this.rail.setPluginManager(this.pluginManager);
43
52
  this.httpServer = createServer((req, res) => {
44
53
  this.handleHttp(req, res);
45
54
  });
@@ -69,6 +78,8 @@ export class RailWebSocketServer {
69
78
  this.persistence = createRailPersistence(dataDir);
70
79
  await this.persistence.init();
71
80
  railLog.info('rail', 'Persistence initialized', { dataDir });
81
+ // Wire persistence to rail server
82
+ this.rail.setPersistence(this.persistence);
72
83
  // Restore enrollments from persistence
73
84
  try {
74
85
  const enrollments = await this.persistence.loadEnrollments();
@@ -113,7 +124,10 @@ export class RailWebSocketServer {
113
124
  this.heartbeatTimer = undefined;
114
125
  }
115
126
  this.metadataBroadcaster?.stop();
116
- this.rail.stop();
127
+ // D1: Graceful GoAway shutdown with 5s grace period
128
+ this.rail.stop(GOAWAY_GRACE_MS);
129
+ // Wait for grace period to allow clients to disconnect
130
+ await new Promise(resolve => setTimeout(resolve, GOAWAY_GRACE_MS + 100));
117
131
  // Close all WebSocket connections
118
132
  for (const tracked of this.sockets.values()) {
119
133
  tracked.ws.close(1001, 'Server shutting down');
@@ -171,7 +185,7 @@ export class RailWebSocketServer {
171
185
  observer: true,
172
186
  };
173
187
  this.sockets.set(observerId, tracked);
174
- // Send sync with current state
188
+ // Send sync with current state (includes lastSeq for D2 replay)
175
189
  this.sendTo(tracked, {
176
190
  type: 'sync',
177
191
  agentId: 'server',
@@ -185,6 +199,7 @@ export class RailWebSocketServer {
185
199
  platform: c.platform,
186
200
  })),
187
201
  observer: true,
202
+ lastSeq: this.rail.getMessageSeq(),
188
203
  },
189
204
  timestamp: Date.now(),
190
205
  });
@@ -244,6 +259,7 @@ export class RailWebSocketServer {
244
259
  })),
245
260
  sessionToken: session.sessionToken,
246
261
  reconnectToken: result.reconnectToken,
262
+ lastSeq: this.rail.getMessageSeq(),
247
263
  },
248
264
  timestamp: Date.now(),
249
265
  });
@@ -277,7 +293,7 @@ export class RailWebSocketServer {
277
293
  this.sockets.set(result.client.id, tracked);
278
294
  // Persist join
279
295
  this.persistence?.recordSession(result.client, 'join').catch(() => { });
280
- // Send join acknowledgement with reconnect token
296
+ // Send join acknowledgement with reconnect token and lastSeq (D2)
281
297
  this.sendTo(tracked, {
282
298
  type: 'sync',
283
299
  agentId: 'server',
@@ -291,6 +307,7 @@ export class RailWebSocketServer {
291
307
  platform: c.platform,
292
308
  })),
293
309
  reconnectToken: result.reconnectToken,
310
+ lastSeq: this.rail.getMessageSeq(),
294
311
  },
295
312
  timestamp: Date.now(),
296
313
  });
@@ -376,7 +393,29 @@ export class RailWebSocketServer {
376
393
  }
377
394
  }
378
395
  // ==========================================================================
379
- // HTTP HEALTH
396
+ // HTTP REQUEST BODY HELPER
397
+ // ==========================================================================
398
+ /** Maximum HTTP request body size (1 MB) */
399
+ static MAX_BODY_SIZE = 1_048_576;
400
+ readBody(req) {
401
+ return new Promise((resolve, reject) => {
402
+ let body = '';
403
+ let size = 0;
404
+ req.on('data', (chunk) => {
405
+ size += chunk.length;
406
+ if (size > RailWebSocketServer.MAX_BODY_SIZE) {
407
+ req.destroy();
408
+ reject(new Error('Request body too large'));
409
+ return;
410
+ }
411
+ body += chunk.toString();
412
+ });
413
+ req.on('end', () => resolve(body));
414
+ req.on('error', reject);
415
+ });
416
+ }
417
+ // ==========================================================================
418
+ // HTTP ENDPOINTS
380
419
  // ==========================================================================
381
420
  handleHttp(req, res) {
382
421
  const url = req.url ?? '';
@@ -398,6 +437,7 @@ export class RailWebSocketServer {
398
437
  res.end();
399
438
  return;
400
439
  }
440
+ // ---- GET /health ----
401
441
  if (req.method === 'GET' && url === '/health') {
402
442
  const stats = this.rail.getStats();
403
443
  res.writeHead(200, { 'Content-Type': 'application/json' });
@@ -407,19 +447,23 @@ export class RailWebSocketServer {
407
447
  agents: stats.connectedAgents,
408
448
  coherence: stats.globalCoherence,
409
449
  messages: stats.messagesProcessed,
450
+ paused: stats.paused,
410
451
  observers: Array.from(this.sockets.values()).filter(s => s.observer).length,
411
452
  }));
412
453
  return;
413
454
  }
455
+ // ---- GET /stats ----
414
456
  if (req.method === 'GET' && url === '/stats') {
415
457
  const stats = this.rail.getStats();
416
458
  const securityStats = this.rail.getSecurityStats(3600_000);
417
459
  const coherenceStats = this.rail.getCoherenceStats();
418
460
  const userSessions = this.userSessionManager.getActiveCount();
461
+ const plugins = this.pluginManager.listPlugins();
419
462
  res.writeHead(200, { 'Content-Type': 'application/json' });
420
- res.end(JSON.stringify({ stats, security: securityStats, coherence: coherenceStats, userSessions }));
463
+ res.end(JSON.stringify({ stats, security: securityStats, coherence: coherenceStats, userSessions, plugins }));
421
464
  return;
422
465
  }
466
+ // ---- GET /metrics ----
423
467
  if (req.method === 'GET' && url === '/metrics') {
424
468
  const stats = this.rail.getStats();
425
469
  const lines = [
@@ -435,11 +479,153 @@ export class RailWebSocketServer {
435
479
  `# HELP rail_uptime_seconds Server uptime`,
436
480
  `# TYPE rail_uptime_seconds counter`,
437
481
  `rail_uptime_seconds ${stats.uptimeSeconds}`,
482
+ `# HELP rail_paused Server paused state`,
483
+ `# TYPE rail_paused gauge`,
484
+ `rail_paused ${stats.paused ? 1 : 0}`,
438
485
  ];
439
486
  res.writeHead(200, { 'Content-Type': 'text/plain' });
440
487
  res.end(lines.join('\n') + '\n');
441
488
  return;
442
489
  }
490
+ // ---- Admin auth helper for mutating/compute endpoints ----
491
+ const requireAdmin = () => {
492
+ const adminSecret = process.env['RAIL_ADMIN_SECRET'];
493
+ if (!adminSecret) {
494
+ res.writeHead(503, { 'Content-Type': 'application/json' });
495
+ res.end(JSON.stringify({ error: 'Admin auth not configured' }));
496
+ return false;
497
+ }
498
+ const authHeader = req.headers['authorization'] ?? '';
499
+ const expected = `Bearer ${adminSecret}`;
500
+ if (authHeader.length !== expected.length ||
501
+ !cryptoTimingSafeEqual(Buffer.from(authHeader), Buffer.from(expected))) {
502
+ res.writeHead(401, { 'Content-Type': 'application/json' });
503
+ res.end(JSON.stringify({ error: 'Unauthorized' }));
504
+ return false;
505
+ }
506
+ return true;
507
+ };
508
+ // ---- POST /pause (A1) ----
509
+ if (req.method === 'POST' && url === '/pause') {
510
+ if (!requireAdmin())
511
+ return;
512
+ const snapshot = this.rail.pause();
513
+ // Persist pause state if persistence available
514
+ if (this.persistence) {
515
+ this.persistence.savePauseState(snapshot.phases, snapshot.coherence).catch(err => {
516
+ railLog.warn('rail', 'Failed to persist pause state', { error: String(err) });
517
+ });
518
+ }
519
+ const phasesObj = {};
520
+ for (const [k, v] of snapshot.phases) {
521
+ phasesObj[k] = v;
522
+ }
523
+ res.writeHead(200, { 'Content-Type': 'application/json' });
524
+ res.end(JSON.stringify({
525
+ paused: true,
526
+ coherence: snapshot.coherence,
527
+ phases: phasesObj,
528
+ agentCount: Object.keys(phasesObj).length,
529
+ }));
530
+ return;
531
+ }
532
+ // ---- POST /resume (A1) ----
533
+ if (req.method === 'POST' && url === '/resume') {
534
+ if (!requireAdmin())
535
+ return;
536
+ this.rail.resume();
537
+ res.writeHead(200, { 'Content-Type': 'application/json' });
538
+ res.end(JSON.stringify({
539
+ paused: false,
540
+ coherence: this.rail.getStats().globalCoherence,
541
+ }));
542
+ return;
543
+ }
544
+ // ---- GET /traces (A2/A3) ----
545
+ if (req.method === 'GET' && url.startsWith('/traces')) {
546
+ if (!this.persistence) {
547
+ res.writeHead(503, { 'Content-Type': 'application/json' });
548
+ res.end(JSON.stringify({ error: 'Persistence unavailable' }));
549
+ return;
550
+ }
551
+ // Parse query params
552
+ const urlObj = new URL(url, `http://localhost:${this.config.port}`);
553
+ const agentId = urlObj.searchParams.get('agent') ?? undefined;
554
+ const kind = urlObj.searchParams.get('kind') ?? undefined;
555
+ const limitStr = urlObj.searchParams.get('limit');
556
+ const sinceStr = urlObj.searchParams.get('since');
557
+ const limit = limitStr ? parseInt(limitStr, 10) : 50;
558
+ const since = sinceStr ? parseInt(sinceStr, 10) : undefined;
559
+ this.persistence.searchTraces({ agentId, kind, limit, since })
560
+ .then(traces => {
561
+ res.writeHead(200, { 'Content-Type': 'application/json' });
562
+ res.end(JSON.stringify({ traces, total: traces.length }));
563
+ })
564
+ .catch(err => {
565
+ res.writeHead(500, { 'Content-Type': 'application/json' });
566
+ res.end(JSON.stringify({ error: String(err) }));
567
+ });
568
+ return;
569
+ }
570
+ // ---- POST /traces/search (A3) ----
571
+ if (req.method === 'POST' && url === '/traces/search') {
572
+ if (!this.persistence) {
573
+ res.writeHead(503, { 'Content-Type': 'application/json' });
574
+ res.end(JSON.stringify({ error: 'Persistence unavailable' }));
575
+ return;
576
+ }
577
+ this.readBody(req).then(body => {
578
+ let parsed;
579
+ try {
580
+ parsed = JSON.parse(body);
581
+ }
582
+ catch {
583
+ res.writeHead(400, { 'Content-Type': 'application/json' });
584
+ res.end(JSON.stringify({ error: 'Invalid JSON' }));
585
+ return;
586
+ }
587
+ return this.persistence.searchTraces({
588
+ embedding: parsed.embedding,
589
+ limit: parsed.limit,
590
+ }).then(traces => {
591
+ res.writeHead(200, { 'Content-Type': 'application/json' });
592
+ res.end(JSON.stringify({ traces, total: traces.length }));
593
+ });
594
+ }).catch(err => {
595
+ res.writeHead(500, { 'Content-Type': 'application/json' });
596
+ res.end(JSON.stringify({ error: String(err) }));
597
+ });
598
+ return;
599
+ }
600
+ // ---- POST /synthesize (A3) ----
601
+ if (req.method === 'POST' && url === '/synthesize') {
602
+ if (!requireAdmin())
603
+ return;
604
+ this.readBody(req).then(body => {
605
+ let parsed;
606
+ try {
607
+ parsed = JSON.parse(body);
608
+ }
609
+ catch {
610
+ res.writeHead(400, { 'Content-Type': 'application/json' });
611
+ res.end(JSON.stringify({ error: 'Invalid JSON' }));
612
+ return;
613
+ }
614
+ return this.rail.synthesize({
615
+ embedding: parsed.embedding,
616
+ agentIds: parsed.agentIds,
617
+ limit: parsed.limit,
618
+ }).then(result => {
619
+ res.writeHead(200, { 'Content-Type': 'application/json' });
620
+ res.end(JSON.stringify(result));
621
+ });
622
+ }).catch(err => {
623
+ res.writeHead(500, { 'Content-Type': 'application/json' });
624
+ res.end(JSON.stringify({ error: String(err) }));
625
+ });
626
+ return;
627
+ }
628
+ // ---- POST /enroll ----
443
629
  if (req.method === 'POST' && url === '/enroll') {
444
630
  const adminSecret = process.env['RAIL_ADMIN_SECRET'];
445
631
  if (!adminSecret) {
@@ -447,15 +633,15 @@ export class RailWebSocketServer {
447
633
  res.end(JSON.stringify({ error: 'Enrollment not configured' }));
448
634
  return;
449
635
  }
450
- const authHeader = req.headers['authorization'];
451
- if (authHeader !== `Bearer ${adminSecret}`) {
636
+ const authHeader = req.headers['authorization'] ?? '';
637
+ const expected = `Bearer ${adminSecret}`;
638
+ if (authHeader.length !== expected.length ||
639
+ !cryptoTimingSafeEqual(Buffer.from(authHeader), Buffer.from(expected))) {
452
640
  res.writeHead(401, { 'Content-Type': 'application/json' });
453
641
  res.end(JSON.stringify({ error: 'Unauthorized' }));
454
642
  return;
455
643
  }
456
- let body = '';
457
- req.on('data', (chunk) => { body += chunk; });
458
- req.on('end', () => {
644
+ this.readBody(req).then(body => {
459
645
  try {
460
646
  const { agentId, secret: providedSecret } = JSON.parse(body);
461
647
  if (!agentId) {
@@ -478,9 +664,41 @@ export class RailWebSocketServer {
478
664
  res.writeHead(400, { 'Content-Type': 'application/json' });
479
665
  res.end(JSON.stringify({ error: 'Invalid JSON' }));
480
666
  }
667
+ }).catch(err => {
668
+ res.writeHead(500, { 'Content-Type': 'application/json' });
669
+ res.end(JSON.stringify({ error: String(err) }));
481
670
  });
482
671
  return;
483
672
  }
673
+ // ---- GET /replay (D2) ----
674
+ if (req.method === 'GET' && url.startsWith('/replay')) {
675
+ if (!this.persistence) {
676
+ res.writeHead(503, { 'Content-Type': 'application/json' });
677
+ res.end(JSON.stringify({ error: 'Persistence unavailable' }));
678
+ return;
679
+ }
680
+ const urlObj = new URL(url, `http://localhost:${this.config.port}`);
681
+ const fromStr = urlObj.searchParams.get('from');
682
+ const limitStr = urlObj.searchParams.get('limit');
683
+ const from = fromStr ? parseInt(fromStr, 10) : 0;
684
+ const limit = limitStr ? parseInt(limitStr, 10) : undefined;
685
+ if (isNaN(from) || from < 0) {
686
+ res.writeHead(400, { 'Content-Type': 'application/json' });
687
+ res.end(JSON.stringify({ error: 'Invalid "from" parameter' }));
688
+ return;
689
+ }
690
+ this.persistence.replayMessages(from, limit)
691
+ .then(messages => {
692
+ res.writeHead(200, { 'Content-Type': 'application/json' });
693
+ res.end(JSON.stringify({ messages, total: messages.length }));
694
+ })
695
+ .catch(err => {
696
+ res.writeHead(500, { 'Content-Type': 'application/json' });
697
+ res.end(JSON.stringify({ error: String(err) }));
698
+ });
699
+ return;
700
+ }
701
+ // ---- GET /agents ----
484
702
  if (req.method === 'GET' && url === '/agents') {
485
703
  const clients = this.rail.getClients();
486
704
  res.writeHead(200, { 'Content-Type': 'application/json' });
@@ -495,6 +713,7 @@ export class RailWebSocketServer {
495
713
  }));
496
714
  return;
497
715
  }
716
+ // ---- GET /.well-known/resonance-rail ----
498
717
  if (req.method === 'GET' && (url === '/.well-known/resonance-rail' || url === '/.well-known/resonance-rail.json')) {
499
718
  res.writeHead(200, { 'Content-Type': 'application/json' });
500
719
  res.end(JSON.stringify({
@@ -502,7 +721,7 @@ export class RailWebSocketServer {
502
721
  version: '0.2.0',
503
722
  protocol: 'resonance-rail-v1',
504
723
  absorption: true,
505
- capabilities: ['kuramoto', 'thermodynamic-routing', 'semantic-search'],
724
+ capabilities: ['kuramoto', 'thermodynamic-routing', 'semantic-search', 'traces', 'synthesis', 'plugins'],
506
725
  enrollment: 'https://space.terminals.tech/enroll',
507
726
  auth_methods: ['hmac-sha256', 'jwt', 'observer'],
508
727
  join_schema: {
@@ -529,6 +748,9 @@ export class RailWebSocketServer {
529
748
  getConnectedCount() {
530
749
  return this.sockets.size;
531
750
  }
751
+ getPluginManager() {
752
+ return this.pluginManager;
753
+ }
532
754
  }
533
755
  // ============================================================================
534
756
  // FACTORY
@@ -1 +1 @@
1
- {"version":3,"file":"wsServer.js","sourceRoot":"","sources":["../../src/rail/wsServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wsServer.js","sourceRoot":"","sources":["../../src/rail/wsServer.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,8 @@ export interface GlobalKuramotoConfig extends KuramotoConfig {
13
13
  minCoupling: number;
14
14
  maxCoupling: number;
15
15
  groupthinkThreshold: number;
16
+ /** Cross-model coupling factor: cross-model pairs couple at K * this factor (default 0.7) */
17
+ crossModelCouplingFactor: number;
16
18
  }
17
19
  export declare class GlobalKuramotoEngine {
18
20
  private engine;
@@ -27,6 +29,7 @@ export declare class GlobalKuramotoEngine {
27
29
  name: string;
28
30
  frequency: number;
29
31
  phase: number;
32
+ modelType?: string;
30
33
  }): void;
31
34
  removeAgent(agentId: string): void;
32
35
  tick(): {
@@ -34,6 +37,13 @@ export declare class GlobalKuramotoEngine {
34
37
  phases: Map<string, number>;
35
38
  adaptedK: number;
36
39
  };
40
+ /**
41
+ * Apply reduced coupling between oscillators of different model types.
42
+ * The base KuramotoEngine applies uniform coupling K to all pairs.
43
+ * This post-tick step partially reverts phase changes from cross-model
44
+ * pairs so they effectively couple at K * crossModelCouplingFactor.
45
+ */
46
+ private applyCrossModelCorrection;
37
47
  private adaptCoupling;
38
48
  pruneStale(): string[];
39
49
  getCoherenceField(): {
@@ -43,6 +53,16 @@ export declare class GlobalKuramotoEngine {
43
53
  coupling: number;
44
54
  };
45
55
  detectFloodAttack(agentId: string): boolean;
56
+ /**
57
+ * Calculate per-model-type Kuramoto order parameter.
58
+ * Groups oscillators by modelType and computes coherence within each group.
59
+ * Oscillators without a modelType are grouped under the key 'unknown'.
60
+ */
61
+ getCoherenceByModel(): Map<string, number>;
62
+ /**
63
+ * Check if any model-specific cluster exceeds the groupthink threshold.
64
+ */
65
+ getGroupthinkByModel(): Map<string, boolean>;
46
66
  addObserver(observer: Observer): void;
47
67
  removeObserver(id: string): void;
48
68
  getCoherence(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"globalKuramoto.d.ts","sourceRoot":"","sources":["../../src/resonance/globalKuramoto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkB,KAAK,cAAc,EAAmB,MAAM,eAAe,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAuBD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAAS;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAMlD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkBpE,QAAQ,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAmBxF,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMlC,IAAI,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAU5E,OAAO,CAAC,aAAa;IAgBrB,UAAU,IAAI,MAAM,EAAE;IActB,iBAAiB,IAAI;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB;IASD,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAiB3C,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IASrC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,MAAM;IAItB,kBAAkB,IAAI,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAYF,QAAQ;;;;;;;IAIR,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,IAAI;CAGzB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,oBAAoB,CAEtB"}
1
+ {"version":3,"file":"globalKuramoto.d.ts","sourceRoot":"","sources":["../../src/resonance/globalKuramoto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAoC,KAAK,cAAc,EAAmB,MAAM,eAAe,CAAC;AACvG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6FAA6F;IAC7F,wBAAwB,EAAE,MAAM,CAAC;CAClC;AA2BD,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAAS;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAMlD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAkBpE,QAAQ,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAoB5G,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAMlC,IAAI,IAAI;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;IAgB5E;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IA+CjC,OAAO,CAAC,aAAa;IAgBrB,UAAU,IAAI,MAAM,EAAE;IActB,iBAAiB,IAAI;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;KAClB;IASD,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAe3C;;;;OAIG;IACH,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAsB1C;;OAEG;IACH,oBAAoB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAW5C,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IASrC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIhC,YAAY,IAAI,MAAM;IAItB,YAAY,IAAI,MAAM;IAItB,kBAAkB,IAAI,KAAK,CAAC;QAC1B,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IAYF,QAAQ;;;;;;;IAIR,iBAAiB,IAAI,OAAO;IAI5B,gBAAgB,IAAI,IAAI;CAGzB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,oBAAoB,CAEtB"}