instar 0.17.13 → 0.18.1

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 (91) hide show
  1. package/README.md +2 -4
  2. package/dashboard/favicon.png +0 -0
  3. package/dashboard/index.html +7 -3
  4. package/dashboard/logo.png +0 -0
  5. package/dist/commands/init.js +16 -0
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/relay.d.ts +1 -0
  8. package/dist/commands/relay.d.ts.map +1 -1
  9. package/dist/commands/relay.js +2 -0
  10. package/dist/commands/relay.js.map +1 -1
  11. package/dist/commands/server.d.ts.map +1 -1
  12. package/dist/commands/server.js +177 -4
  13. package/dist/commands/server.js.map +1 -1
  14. package/dist/core/AutoUpdater.d.ts.map +1 -1
  15. package/dist/core/AutoUpdater.js +11 -2
  16. package/dist/core/AutoUpdater.js.map +1 -1
  17. package/dist/core/Config.d.ts.map +1 -1
  18. package/dist/core/Config.js +1 -0
  19. package/dist/core/Config.js.map +1 -1
  20. package/dist/core/MessageSentinel.d.ts +14 -0
  21. package/dist/core/MessageSentinel.d.ts.map +1 -1
  22. package/dist/core/MessageSentinel.js +42 -10
  23. package/dist/core/MessageSentinel.js.map +1 -1
  24. package/dist/core/SessionManager.d.ts +13 -1
  25. package/dist/core/SessionManager.d.ts.map +1 -1
  26. package/dist/core/SessionManager.js +67 -0
  27. package/dist/core/SessionManager.js.map +1 -1
  28. package/dist/core/types.d.ts +26 -0
  29. package/dist/core/types.d.ts.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +1 -0
  33. package/dist/index.js.map +1 -1
  34. package/dist/scaffold/templates.d.ts.map +1 -1
  35. package/dist/scaffold/templates.js +40 -0
  36. package/dist/scaffold/templates.js.map +1 -1
  37. package/dist/server/AgentServer.d.ts +1 -0
  38. package/dist/server/AgentServer.d.ts.map +1 -1
  39. package/dist/server/AgentServer.js +1 -0
  40. package/dist/server/AgentServer.js.map +1 -1
  41. package/dist/server/routes.d.ts +1 -0
  42. package/dist/server/routes.d.ts.map +1 -1
  43. package/dist/server/routes.js +35 -0
  44. package/dist/server/routes.js.map +1 -1
  45. package/dist/threadline/AgentTrustManager.d.ts +40 -0
  46. package/dist/threadline/AgentTrustManager.d.ts.map +1 -1
  47. package/dist/threadline/AgentTrustManager.js +115 -0
  48. package/dist/threadline/AgentTrustManager.js.map +1 -1
  49. package/dist/threadline/ContentClassifier.d.ts +83 -0
  50. package/dist/threadline/ContentClassifier.d.ts.map +1 -0
  51. package/dist/threadline/ContentClassifier.js +201 -0
  52. package/dist/threadline/ContentClassifier.js.map +1 -0
  53. package/dist/threadline/InboundMessageGate.d.ts +69 -0
  54. package/dist/threadline/InboundMessageGate.d.ts.map +1 -0
  55. package/dist/threadline/InboundMessageGate.js +196 -0
  56. package/dist/threadline/InboundMessageGate.js.map +1 -0
  57. package/dist/threadline/RelayGroundingPreamble.d.ts +48 -0
  58. package/dist/threadline/RelayGroundingPreamble.d.ts.map +1 -0
  59. package/dist/threadline/RelayGroundingPreamble.js +68 -0
  60. package/dist/threadline/RelayGroundingPreamble.js.map +1 -0
  61. package/dist/threadline/ThreadlineBootstrap.d.ts +19 -0
  62. package/dist/threadline/ThreadlineBootstrap.d.ts.map +1 -1
  63. package/dist/threadline/ThreadlineBootstrap.js +125 -2
  64. package/dist/threadline/ThreadlineBootstrap.js.map +1 -1
  65. package/dist/threadline/ThreadlineMCPServer.d.ts +10 -0
  66. package/dist/threadline/ThreadlineMCPServer.d.ts.map +1 -1
  67. package/dist/threadline/ThreadlineMCPServer.js +289 -0
  68. package/dist/threadline/ThreadlineMCPServer.js.map +1 -1
  69. package/dist/threadline/ThreadlineRouter.d.ts +19 -1
  70. package/dist/threadline/ThreadlineRouter.d.ts.map +1 -1
  71. package/dist/threadline/ThreadlineRouter.js +42 -17
  72. package/dist/threadline/ThreadlineRouter.js.map +1 -1
  73. package/dist/threadline/client/ThreadlineClient.d.ts +13 -0
  74. package/dist/threadline/client/ThreadlineClient.d.ts.map +1 -1
  75. package/dist/threadline/client/ThreadlineClient.js +43 -0
  76. package/dist/threadline/client/ThreadlineClient.js.map +1 -1
  77. package/dist/threadline/index.d.ts +7 -1
  78. package/dist/threadline/index.d.ts.map +1 -1
  79. package/dist/threadline/index.js +6 -0
  80. package/dist/threadline/index.js.map +1 -1
  81. package/dist/threadline/mcp-stdio-entry.js +46 -0
  82. package/dist/threadline/mcp-stdio-entry.js.map +1 -1
  83. package/dist/threadline/relay/RelayRateLimiter.js +1 -1
  84. package/dist/threadline/relay/RelayRateLimiter.js.map +1 -1
  85. package/dist/threadline/relay/RelayServer.d.ts.map +1 -1
  86. package/dist/threadline/relay/RelayServer.js +4 -3
  87. package/dist/threadline/relay/RelayServer.js.map +1 -1
  88. package/package.json +14 -7
  89. package/src/data/builtin-manifest.json +48 -48
  90. package/upgrades/0.17.14.md +26 -0
  91. package/upgrades/0.18.1.md +34 -0
@@ -22,6 +22,8 @@
22
22
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
23
23
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
24
24
  import { z } from 'zod';
25
+ import fs from 'node:fs';
26
+ import path from 'node:path';
25
27
  // ── Tool Result Builders ─────────────────────────────────────────────
26
28
  function textResult(text) {
27
29
  return { content: [{ type: 'text', text }] };
@@ -147,6 +149,8 @@ export class ThreadlineMCPServer {
147
149
  this.registerHistoryTool();
148
150
  this.registerAgentsTool();
149
151
  this.registerDeleteTool();
152
+ this.registerTrustTool();
153
+ this.registerRelayTool();
150
154
  // Registry tools — only if registry client is available
151
155
  if (this.deps.registry) {
152
156
  this.registerRegistrySearchTool();
@@ -393,6 +397,291 @@ export class ThreadlineMCPServer {
393
397
  }
394
398
  });
395
399
  }
400
+ // ── threadline_trust ──────────────────────────────────────────────
401
+ registerTrustTool() {
402
+ this.mcpServer.tool('threadline_trust', 'Manage trust levels for known agents. Grant, revoke, list, or audit trust. ' +
403
+ 'Trust levels: untrusted (probes only), verified (limited messaging), ' +
404
+ 'trusted (full messaging), autonomous (high-volume, auto-deliver). ' +
405
+ 'Only the local operator can modify trust levels.', {
406
+ action: z.enum(['grant', 'revoke', 'list', 'audit', 'get']).describe('Action to perform: grant/revoke trust, list all profiles, audit history, or get one profile'),
407
+ agent: z.string().optional().describe('Agent name (required for grant/revoke/audit/get)'),
408
+ fingerprint: z.string().optional().describe('Agent fingerprint — used instead of name for cryptographic identity'),
409
+ level: z.enum(['untrusted', 'verified', 'trusted', 'autonomous']).optional().describe('Trust level to grant (required for grant action)'),
410
+ reason: z.string().optional().describe('Reason for trust change (recommended for audit trail)'),
411
+ }, async (args) => {
412
+ // Trust management is admin-only
413
+ const authError = this.checkAuth('threadline:admin');
414
+ if (authError && !this.requestContext.isLocal) {
415
+ return errorResult(authError);
416
+ }
417
+ const { trustManager } = this.deps;
418
+ switch (args.action) {
419
+ case 'grant': {
420
+ if (!args.level) {
421
+ return errorResult('level is required for grant action');
422
+ }
423
+ if (!args.agent && !args.fingerprint) {
424
+ return errorResult('agent or fingerprint is required for grant action');
425
+ }
426
+ let success;
427
+ if (args.fingerprint) {
428
+ success = trustManager.setTrustLevelByFingerprint(args.fingerprint, args.level, 'user-granted', args.reason, args.agent);
429
+ }
430
+ else {
431
+ success = trustManager.setTrustLevel(args.agent, args.level, 'user-granted', args.reason);
432
+ }
433
+ if (!success) {
434
+ return errorResult('Failed to set trust level');
435
+ }
436
+ return jsonResult({
437
+ action: 'grant',
438
+ agent: args.agent ?? args.fingerprint,
439
+ level: args.level,
440
+ reason: args.reason ?? 'operator decision',
441
+ source: 'user-granted',
442
+ });
443
+ }
444
+ case 'revoke': {
445
+ if (!args.agent && !args.fingerprint) {
446
+ return errorResult('agent or fingerprint is required for revoke action');
447
+ }
448
+ let success;
449
+ if (args.fingerprint) {
450
+ success = trustManager.setTrustLevelByFingerprint(args.fingerprint, 'untrusted', 'user-granted', args.reason ?? 'trust revoked', args.agent);
451
+ }
452
+ else {
453
+ success = trustManager.setTrustLevel(args.agent, 'untrusted', 'user-granted', args.reason ?? 'trust revoked');
454
+ }
455
+ if (!success) {
456
+ return errorResult('Failed to revoke trust');
457
+ }
458
+ return jsonResult({
459
+ action: 'revoke',
460
+ agent: args.agent ?? args.fingerprint,
461
+ previousLevel: 'unknown',
462
+ newLevel: 'untrusted',
463
+ reason: args.reason ?? 'trust revoked',
464
+ });
465
+ }
466
+ case 'list': {
467
+ const profiles = trustManager.listProfiles();
468
+ const summary = profiles.map(p => ({
469
+ name: p.agent,
470
+ fingerprint: p.fingerprint ?? null,
471
+ level: p.level,
472
+ source: p.source,
473
+ lastInteraction: p.history.lastInteraction,
474
+ messageCount: p.history.messagesReceived,
475
+ }));
476
+ return jsonResult({
477
+ count: summary.length,
478
+ profiles: summary,
479
+ });
480
+ }
481
+ case 'audit': {
482
+ if (!args.agent && !args.fingerprint) {
483
+ return errorResult('agent or fingerprint is required for audit action');
484
+ }
485
+ const profile = args.fingerprint
486
+ ? trustManager.getProfileByFingerprint(args.fingerprint)
487
+ : trustManager.getProfile(args.agent);
488
+ if (!profile) {
489
+ return errorResult(`No trust profile found for "${args.agent ?? args.fingerprint}"`);
490
+ }
491
+ return jsonResult({
492
+ agent: profile.agent,
493
+ fingerprint: profile.fingerprint ?? null,
494
+ currentLevel: profile.level,
495
+ source: profile.source,
496
+ history: profile.history,
497
+ createdAt: profile.createdAt,
498
+ updatedAt: profile.updatedAt,
499
+ });
500
+ }
501
+ case 'get': {
502
+ if (!args.agent && !args.fingerprint) {
503
+ return errorResult('agent or fingerprint is required for get action');
504
+ }
505
+ const profile = args.fingerprint
506
+ ? trustManager.getProfileByFingerprint(args.fingerprint)
507
+ : trustManager.getProfile(args.agent);
508
+ if (!profile) {
509
+ return jsonResult({
510
+ found: false,
511
+ agent: args.agent ?? args.fingerprint,
512
+ level: 'untrusted',
513
+ note: 'No profile found — defaults to untrusted',
514
+ });
515
+ }
516
+ return jsonResult({
517
+ found: true,
518
+ agent: profile.agent,
519
+ fingerprint: profile.fingerprint ?? null,
520
+ level: profile.level,
521
+ source: profile.source,
522
+ lastInteraction: profile.history.lastInteraction,
523
+ });
524
+ }
525
+ default:
526
+ return errorResult(`Unknown action: ${args.action}`);
527
+ }
528
+ });
529
+ }
530
+ // ── threadline_relay ──────────────────────────────────────────────
531
+ registerRelayTool() {
532
+ this.mcpServer.tool('threadline_relay', 'Manage the cloud relay connection for inter-agent communication. ' +
533
+ 'The relay allows your agent to send and receive messages from other agents on the Threadline network. ' +
534
+ 'Use "status" to check the current state, "enable" to connect (requires server restart), ' +
535
+ '"disable" to disconnect, or "explain" to get a user-friendly description of what the relay does. ' +
536
+ 'Changes take effect after server restart.', {
537
+ action: z.enum(['status', 'enable', 'disable', 'explain']).describe('Action: status (check relay state), enable/disable (toggle relay), explain (get user-friendly description)'),
538
+ visibility: z.enum(['public', 'unlisted']).optional().describe('Visibility when enabling: "public" (discoverable by other agents) or "unlisted" (direct messages only)'),
539
+ }, async (args) => {
540
+ // Relay management is admin-only
541
+ const authError = this.checkAuth('threadline:admin');
542
+ if (authError && !this.requestContext.isLocal) {
543
+ return errorResult(authError);
544
+ }
545
+ switch (args.action) {
546
+ case 'explain': {
547
+ return textResult('The Threadline relay is a cloud service that lets your agent communicate with other AI agents.\n\n' +
548
+ 'How it works:\n' +
549
+ '- Your agent connects to a relay server via a secure WebSocket\n' +
550
+ '- Other agents on the network can discover you and send messages\n' +
551
+ '- Messages between known agents are end-to-end encrypted using Ed25519 keys. First-contact messages use transport encryption (TLS) until a key exchange completes.\n' +
552
+ '- You control who can message you through trust levels (untrusted, verified, trusted, autonomous)\n' +
553
+ '- Messages from unknown agents go through a 7-layer security gate before reaching you\n\n' +
554
+ 'Privacy:\n' +
555
+ '- OFF by default — you must explicitly enable it\n' +
556
+ '- "public" visibility: other agents can find you by searching capabilities\n' +
557
+ '- "unlisted" visibility: only agents who already know your ID can message you\n' +
558
+ '- You can disable it at any time\n' +
559
+ '- Your cryptographic identity (Ed25519 key pair) is stored locally and never shared\n\n' +
560
+ 'Security:\n' +
561
+ '- Inbound messages are filtered for prompt injection, payload size, and rate limits\n' +
562
+ '- Outbound messages are scanned for sensitive data (API keys, credentials, PII)\n' +
563
+ '- Trust levels control what each agent can do — new agents start as "untrusted"\n' +
564
+ '- Your agent\'s core behavior and values are protected by grounding preambles\n\n' +
565
+ 'To enable: ask me to "connect to the agent network" or "enable the relay"\n' +
566
+ 'To disable: ask me to "disconnect from the agent network" or "disable the relay"');
567
+ }
568
+ case 'status': {
569
+ const configPath = this.resolveConfigPath();
570
+ const config = this.readConfig(configPath);
571
+ const threadlineConfig = config?.threadline;
572
+ const relayEnabled = threadlineConfig?.relayEnabled === true
573
+ || process.env.THREADLINE_RELAY_ENABLED === 'true';
574
+ const relayUrl = threadlineConfig?.relayUrl
575
+ ?? process.env.THREADLINE_RELAY_URL
576
+ ?? 'wss://threadline-relay.fly.dev/v1/connect';
577
+ const visibility = threadlineConfig?.visibility ?? 'public';
578
+ // Try to check relay health
579
+ let relayHealth = null;
580
+ try {
581
+ const healthUrl = relayUrl.replace('wss://', 'https://').replace('ws://', 'http://').replace('/v1/connect', '/health');
582
+ const res = await fetch(healthUrl);
583
+ if (res.ok)
584
+ relayHealth = await res.json();
585
+ }
586
+ catch { /* relay unreachable is fine */ }
587
+ return jsonResult({
588
+ enabled: relayEnabled,
589
+ relayUrl,
590
+ visibility,
591
+ capabilities: threadlineConfig?.capabilities ?? ['chat', 'threadline'],
592
+ relayHealth: relayHealth ? {
593
+ status: relayHealth.status,
594
+ registeredAgents: relayHealth.registry?.totalAgents ?? relayHealth.agents,
595
+ onlineAgents: relayHealth.connections,
596
+ } : 'unreachable',
597
+ note: relayEnabled
598
+ ? 'Relay is enabled. Your agent will connect on next server start.'
599
+ : 'Relay is disabled. Enable it to join the Threadline network.',
600
+ });
601
+ }
602
+ case 'enable': {
603
+ const configPath = this.resolveConfigPath();
604
+ const config = this.readConfig(configPath);
605
+ if (!config) {
606
+ return errorResult('Cannot find .instar/config.json — is this an Instar project?');
607
+ }
608
+ const visibility = args.visibility ?? 'public';
609
+ if (!config.threadline) {
610
+ config.threadline = {
611
+ relayEnabled: true,
612
+ visibility,
613
+ };
614
+ }
615
+ else {
616
+ config.threadline.relayEnabled = true;
617
+ if (args.visibility) {
618
+ config.threadline.visibility = visibility;
619
+ }
620
+ }
621
+ this.writeConfig(configPath, config);
622
+ return jsonResult({
623
+ action: 'enabled',
624
+ visibility,
625
+ relayUrl: config.threadline.relayUrl ?? 'wss://threadline-relay.fly.dev/v1/connect',
626
+ note: 'Relay enabled in config. Restart the server to connect.',
627
+ userMessage: `I've enabled the Threadline relay. Your agent will connect to the network on next restart. ` +
628
+ `Visibility is set to "${visibility}" — ` +
629
+ (visibility === 'public'
630
+ ? 'other agents can discover you by searching.'
631
+ : 'only agents who know your ID can message you.'),
632
+ });
633
+ }
634
+ case 'disable': {
635
+ const configPath = this.resolveConfigPath();
636
+ const config = this.readConfig(configPath);
637
+ if (!config) {
638
+ return errorResult('Cannot find .instar/config.json — is this an Instar project?');
639
+ }
640
+ if (config.threadline) {
641
+ config.threadline.relayEnabled = false;
642
+ }
643
+ this.writeConfig(configPath, config);
644
+ return jsonResult({
645
+ action: 'disabled',
646
+ note: 'Relay disabled in config. Restart the server to disconnect.',
647
+ userMessage: 'I\'ve disabled the Threadline relay. Your agent will disconnect on next restart.',
648
+ });
649
+ }
650
+ default:
651
+ return errorResult(`Unknown action: ${args.action}`);
652
+ }
653
+ });
654
+ }
655
+ /** Resolve the .instar/config.json path from the state directory */
656
+ resolveConfigPath() {
657
+ // deps.stateDir is the .instar directory itself
658
+ const stateDir = this.deps.stateDir;
659
+ if (stateDir) {
660
+ return path.join(stateDir, 'config.json');
661
+ }
662
+ // Fallback: look for INSTAR_STATE_DIR env
663
+ const envStateDir = process.env.INSTAR_STATE_DIR;
664
+ if (envStateDir) {
665
+ return path.join(envStateDir, 'config.json');
666
+ }
667
+ return path.join(process.cwd(), '.instar', 'config.json');
668
+ }
669
+ /** Read and parse config.json */
670
+ readConfig(configPath) {
671
+ try {
672
+ if (fs.existsSync(configPath)) {
673
+ return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
674
+ }
675
+ }
676
+ catch { /* corrupted config */ }
677
+ return null;
678
+ }
679
+ /** Write config.json atomically */
680
+ writeConfig(configPath, config) {
681
+ const tmpPath = `${configPath}.${process.pid}.tmp`;
682
+ fs.writeFileSync(tmpPath, JSON.stringify(config, null, 2));
683
+ fs.renameSync(tmpPath, configPath);
684
+ }
396
685
  // ── Registry Tools ──────────────────────────────────────────────────
397
686
  frameRegistryEntry(entry) {
398
687
  const lines = [
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadlineMCPServer.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineMCPServer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+ExB,wEAAwE;AAExE,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC;QAC/D,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAkBD,wEAAwE;AAExE,MAAM,OAAO,mBAAmB;IACb,SAAS,CAAY;IACrB,MAAM,CAA4B;IAClC,IAAI,CAAoB;IACjC,cAAc,CAAiB;IAC/B,OAAO,GAAG,KAAK,CAAC;IAExB,YAAY,MAAiC,EAAE,IAAuB;QACpE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,mDAAmD;QACnD,IAAI,CAAC,cAAc,GAAG;YACpB,aAAa,EAAE,CAAC,MAAM,CAAC,WAAW;YAClC,OAAO,EAAE,MAAM,CAAC,SAAS,KAAK,OAAO;SACtC,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAC5B;YACE,IAAI,EAAE,cAAc,MAAM,CAAC,SAAS,EAAE;YACtC,OAAO,EAAE,MAAM,CAAC,eAAe;SAChC,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,sEAAsE;IAEtE;;;;OAIG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;YAC7C,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,+CAA+C;YAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAC1B,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,GAAmB;QACnC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,QAAgB;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,cAAc,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC/D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,cAAc,GAAG;YACpB,aAAa,EAAE,IAAI;YACnB,SAAS;YACT,OAAO,EAAE,KAAK;SACf,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IAE9D,SAAS,CAAC,aAA6B;QAC7C,iCAAiC;QACjC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7C,iCAAiC;QACjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvC,OAAO,wDAAwD,CAAC;QAClE,CAAC;QAED,0BAA0B;QAC1B,IAAI,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC3E,OAAO,iCAAiC,aAAa,EAAE,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,sEAAsE;IAE9D,aAAa;QACnB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,wDAAwD;QACxD,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED,sEAAsE;IAE9D,oBAAoB;QAC1B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,qBAAqB,EACrB,oEAAoE,EACpE;YACE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAC3D,8EAA8E,CAC/E;YACD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACxC,wDAAwD,CACzD;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC;gBACH,IAAI,MAA6B,CAAC;gBAElC,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;oBAC3B,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;gBACrD,CAAC;qBAAM,CAAC;oBACN,gDAAgD;oBAChD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBACjD,CAAC;gBAED,oCAAoC;gBACpC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC/C,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACzB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAC7D,CAAC;gBACJ,CAAC;gBAED,iDAAiD;gBACjD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;oBACtC,SAAS,EAAE,CAAC,CAAC,SAAS;iBACvB,CAAC,CAAC,CAAC;gBAEJ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,UAAU,CACf,IAAI,CAAC,UAAU;wBACb,CAAC,CAAC,oCAAoC,IAAI,CAAC,UAAU,QAAQ,IAAI,CAAC,KAAK,SAAS;wBAChF,CAAC,CAAC,yCAAyC,IAAI,CAAC,KAAK,SAAS,CACjE,CAAC;gBACJ,CAAC;gBAED,OAAO,UAAU,CAAC;oBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAClG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IAE9D,gBAAgB;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,iBAAiB,EACjB,2FAA2F,EAC3F;YACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YACvD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACtC,iDAAiD,CAClD;YACD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAC9C,gCAAgC,CACjC;YACD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAC9C,wDAAwD,CACzD;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACpD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,yBAAyB;YACzB,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;gBACzD,OAAO,WAAW,CAAC,0CAA0C,CAAC,CAAC;YACjE,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBACzB,OAAO,WAAW,CAAC,yBAAyB,CAAC,CAAC;YAChD,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;oBACzC,WAAW,EAAE,IAAI,CAAC,OAAO;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;iBACpC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,yBAAyB,CAAC,CAAC;gBAChE,CAAC;gBAED,MAAM,QAAQ,GAA4B;oBACxC,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;oBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;iBAC5B,CAAC;gBAEF,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACtC,QAAQ,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;oBAC9B,QAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;gBACxC,CAAC;qBAAM,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC9C,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;oBACtB,QAAQ,CAAC,IAAI,GAAG,kCAAkC,CAAC;gBACrD,CAAC;gBAED,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,gBAAgB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IAE9D,mBAAmB;QACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,oBAAoB,EACpB,wDAAwD,EACxD;YACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CACpC,sCAAsC,CACvC;YACD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CACpC,kDAAkD,CACnD;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACpD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,uBAAuB;YACvB,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;gBACvC,OAAO,WAAW,CAAC,iCAAiC,CAAC,CAAC;YACxD,CAAC;YAED,uBAAuB;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,WAAW,CAAC,WAAW,IAAI,CAAC,QAAQ,wBAAwB,CAAC,CAAC;YACvE,CAAC;YAED,mDAAmD;YACnD,8CAA8C;YAC9C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;gBAClE,mDAAmD;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;gBAC5F,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,6DAA6D;oBAC7D,kEAAkE;oBAClE,iEAAiE;oBACjE,kEAAkE;oBAClE,sBAAsB;gBACxB,CAAC;YACH,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9C,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,MAAM,CACZ,CAAC;gBAEF,OAAO,UAAU,CAAC;oBAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;oBACrC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACnC,EAAE,EAAE,CAAC,CAAC,EAAE;wBACR,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,SAAS,EAAE,CAAC,CAAC,SAAS;qBACvB,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,6BAA6B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC1G,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IAE9D,kBAAkB;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mBAAmB,EACnB,oCAAoC,EACpC;YACE,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CACjD,2CAA2C,CAC5C;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC;gBACH,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBAEnD,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACzB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBAED,+DAA+D;gBAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO;oBACjD,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CACxD,IAAI,CAAC,cAAc,CAAC,SAAS,EAC7B,kBAAkB,CACnB,CAAC,CAAC;gBAEL,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;oBAC/B,MAAM,KAAK,GAA4B;wBACrC,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;wBAChB,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;qBACvC,CAAC;oBAEF,6DAA6D;oBAC7D,IAAI,eAAe,EAAE,CAAC;wBACpB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;wBAC/D,IAAI,YAAY,EAAE,CAAC;4BACjB,KAAK,CAAC,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC;4BACtC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC;wBAC1C,CAAC;oBACH,CAAC;oBAED,iCAAiC;oBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnE,KAAK,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM,CAC5D,CAAC,MAAM,CAAC;oBAET,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBAEH,OAAO,UAAU,CAAC;oBAChB,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;oBACnC,MAAM,EAAE,SAAS;iBAClB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACtG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,sEAAsE;IAE9D,kBAAkB;QACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,mBAAmB,EACnB,+FAA+F,EAC/F;YACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACpD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAC1C,kCAAkC,CACnC;SACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,6DAA6D;YAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACrD,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC9C,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO,WAAW,CAChB,6FAA6F,CAC9F,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,WAAW,CAAC,WAAW,IAAI,CAAC,QAAQ,gCAAgC,CAAC,CAAC;YAC/E,CAAC;YAED,IAAI,CAAC;gBACH,+BAA+B;gBAC/B,MAAM,IAAI,GAAG;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,OAAO,EAAE,WAAW,CAAC,OAAO;oBAC5B,YAAY,EAAE,WAAW,CAAC,YAAY;oBACtC,KAAK,EAAE,WAAW,CAAC,KAAK;iBACzB,CAAC;gBAEF,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEhD,OAAO,UAAU,CAAC;oBAChB,OAAO,EAAE,IAAI;oBACb,GAAG,IAAI;iBACR,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,oBAAoB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACjG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,uEAAuE;IAE/D,kBAAkB,CAAC,KAA8B;QACvD,MAAM,KAAK,GAAG;YACZ,qDAAqD;YACrD,4DAA4D;YAC5D,2FAA2F;YAC3F,EAAE;SACH,CAAC;QACF,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC;YAChG,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;YACpG,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,KAAK,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;QACjE,IAAI,KAAK,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,qCAAqC,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,qEAAqE;IAE7D,0BAA0B;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,EAC5B,oFAAoF;YACpF,yEAAyE;YACzE,qFAAqF;YACrF,6CAA6C,EAC7C;YACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YACzF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YAClE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACpF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SAC7E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACtD,OAAO,WAAW,CAAC,yEAAyE,CAAC,CAAC;YAChG,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACzB,OAAO,WAAW,CAAC,+DAA+D,CAAC,CAAC;YACtF,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,KAAK;oBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,UAAU;oBAAE,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/D,IAAI,IAAI,CAAC,QAAQ;oBAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,IAAI,CAAC,UAAU;oBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAClD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAEtD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,uBAAuB,MAAM,EAAE,CAAC,CAAC;gBAE/E,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,OAAO,WAAW,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,MAAM,GAAG,IAAgG,CAAC;gBAEhH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/C,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,YAAY,EAAE,KAAK,CAAC,YAAY;iBACjC,CAAC,CAAC,CAAC;gBAEJ,OAAO,UAAU,CAAC;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,MAAM,CAAC,UAAU;oBAC7B,GAAG,EAAE,2GAA2G;iBACjH,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACxG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IAE7D,0BAA0B;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,EAC5B,wDAAwD;YACxD,2FAA2F;YAC3F,oFAAoF,EACpF;YACE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;YAC/F,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YACrE,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;SAChH,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACpD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACzB,OAAO,WAAW,CAAC,+DAA+D,CAAC,CAAC;YACtF,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;oBACzB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;oBACpE,MAAM,EAAE,GAAG,SAA2C,CAAC;oBACvD,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC;wBACpB,OAAO,UAAU,CAAC;4BAChB,IAAI,EAAE,gEAAgE;gCACpE,0DAA0D;4BAC5D,aAAa,EAAE,gBAAgB;yBAChC,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,MAAM,IAAI,GAA4B,EAAE,CAAC;gBACzC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;gBACrE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;oBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC/D,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;oBAAE,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAEvF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE;oBAC/D,MAAM,EAAE,KAAK;oBACb,IAAI;iBACL,CAAC,CAAC;gBAEH,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,OAAO,WAAW,CAAC,gDAAgD,CAAC,CAAC;gBACvE,CAAC;gBAED,OAAO,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACxG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IAE7D,0BAA0B;QAChC,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,4BAA4B,EAC5B,2EAA2E;YAC3E,gGAAgG,EAChG,EAAE,EACF,KAAK,IAAI,EAAE;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACzB,OAAO,UAAU,CAAC;oBAChB,UAAU,EAAE,KAAK;oBACjB,IAAI,EAAE,+DAA+D;iBACtE,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAEjE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,OAAO,WAAW,CAAC,oCAAoC,MAAM,GAAG,CAAC,CAAC;gBACpE,CAAC;gBAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,iCAAiC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YAC9G,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,qEAAqE;IAE7D,uBAAuB;QAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,yBAAyB,EACzB,+DAA+D;YAC/D,uFAAuF,EACvF;YACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;SAC9F,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;YACxD,IAAI,SAAS;gBAAE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC;YAE7C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;YAErC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC3C,sBAAsB,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CACzD,CAAC;gBAEF,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,OAAO,UAAU,CAAC;wBAChB,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,GAAG,EAAE,yFAAyF;qBAC/F,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnB,OAAO,WAAW,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;gBAC3D,CAAC;gBAED,MAAM,KAAK,GAAG,IAA+B,CAAC;gBAC9C,OAAO,UAAU,CAAC;oBAChB,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;oBAC7C,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK;iBAClC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,WAAW,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACxG,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"ThreadlineMCPServer.js","sourceRoot":"","sources":["../../src/threadline/ThreadlineMCPServer.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import type { MessageStore } from '../messaging/MessageStore.js';
19
19
  import type { MessageEnvelope } from '../messaging/types.js';
20
20
  import type { ThreadResumeMap } from './ThreadResumeMap.js';
21
21
  import type { AutonomyGate } from './AutonomyGate.js';
22
+ import type { AgentTrustLevel } from './AgentTrustManager.js';
22
23
  /** Configuration for the ThreadlineRouter */
23
24
  export interface ThreadlineRouterConfig {
24
25
  /** Name of this agent */
@@ -28,6 +29,23 @@ export interface ThreadlineRouterConfig {
28
29
  /** Max number of thread history messages to inject into context */
29
30
  maxHistoryMessages: number;
30
31
  }
32
+ /** Relay context passed from InboundMessageGate when message arrives via relay */
33
+ export interface RelayMessageContext {
34
+ /** Sender's cryptographic fingerprint */
35
+ senderFingerprint: string;
36
+ /** Sender's display name */
37
+ senderName: string;
38
+ /** Trust level of the sender */
39
+ trustLevel: AgentTrustLevel;
40
+ /** Who granted trust */
41
+ trustSource?: string;
42
+ /** When trust was granted */
43
+ trustDate?: string;
44
+ /** Original source fingerprint (for multi-hop) */
45
+ originFingerprint?: string;
46
+ /** Original source name */
47
+ originName?: string;
48
+ }
31
49
  /** Result of handling an inbound threaded message */
32
50
  export interface ThreadlineHandleResult {
33
51
  /** Whether this message was handled as a threadline message */
@@ -65,7 +83,7 @@ export declare class ThreadlineRouter {
65
83
  * - Has threadId + existing resume entry → resume session
66
84
  * - Has threadId + no resume entry → spawn new session
67
85
  */
68
- handleInboundMessage(envelope: MessageEnvelope): Promise<ThreadlineHandleResult>;
86
+ handleInboundMessage(envelope: MessageEnvelope, relayContext?: RelayMessageContext): Promise<ThreadlineHandleResult>;
69
87
  /**
70
88
  * Notify the router that a thread's session has ended.
71
89
  * Persists the UUID back to ThreadResumeMap for future resume.
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadlineRouter.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineRouter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,qCAAqC,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAkC,MAAM,sBAAsB,CAAC;AAC5F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;gBAGjD,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,mBAAmB,EACjC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE,YAAY,GAAG,cAAc,CAAC,EACrG,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI;IAapC;;;;;;;OAOG;IACG,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;IA2EtF;;;OAGG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAcvE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;YAaxB,YAAY;YAmEZ,cAAc;YA0Ed,mBAAmB;IA0BjC,OAAO,CAAC,WAAW;CAsBpB"}
1
+ {"version":3,"file":"ThreadlineRouter.d.ts","sourceRoot":"","sources":["../../src/threadline/ThreadlineRouter.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@
14
14
  * cross-agent conversations specifically.
15
15
  */
16
16
  import crypto from 'node:crypto';
17
+ import { buildRelayGroundingPreamble, RELAY_HISTORY_LIMITS } from './RelayGroundingPreamble.js';
17
18
  // ── Constants ───────────────────────────────────────────────────
18
19
  const DEFAULT_MAX_HISTORY = 20;
19
20
  const THREAD_SPAWN_PROMPT_TEMPLATE = `You are continuing a threaded conversation with {remote_agent}.
@@ -60,7 +61,7 @@ export class ThreadlineRouter {
60
61
  * - Has threadId + existing resume entry → resume session
61
62
  * - Has threadId + no resume entry → spawn new session
62
63
  */
63
- async handleInboundMessage(envelope) {
64
+ async handleInboundMessage(envelope, relayContext) {
64
65
  const { message } = envelope;
65
66
  // Only handle messages with a threadId that are addressed to us
66
67
  if (!message.threadId) {
@@ -108,10 +109,10 @@ export class ThreadlineRouter {
108
109
  // Check for existing resume entry
109
110
  const existingEntry = this.threadResumeMap.get(threadId);
110
111
  if (existingEntry) {
111
- return await this.resumeThread(threadId, existingEntry, envelope);
112
+ return await this.resumeThread(threadId, existingEntry, envelope, relayContext);
112
113
  }
113
114
  else {
114
- return await this.spawnNewThread(threadId, envelope);
115
+ return await this.spawnNewThread(threadId, envelope, relayContext);
115
116
  }
116
117
  }
117
118
  catch (err) {
@@ -163,12 +164,15 @@ export class ThreadlineRouter {
163
164
  });
164
165
  }
165
166
  // ── Private: Resume an existing thread ──────────────────────
166
- async resumeThread(threadId, entry, envelope) {
167
+ async resumeThread(threadId, entry, envelope, relayContext) {
167
168
  const { message } = envelope;
168
- // Build history context
169
- const historyContext = await this.buildHistoryContext(threadId);
170
- // Build the resume prompt
171
- const prompt = this.buildPrompt(message, threadId, entry.subject, entry.messageCount, entry.remoteAgent, historyContext);
169
+ // Build history context (trust-level-aware depth for relay)
170
+ const maxHistory = relayContext
171
+ ? RELAY_HISTORY_LIMITS[relayContext.trustLevel]
172
+ : this.config.maxHistoryMessages;
173
+ const historyContext = await this.buildHistoryContext(threadId, maxHistory);
174
+ // Build the resume prompt (with grounding preamble if relay)
175
+ const prompt = this.buildPrompt(message, threadId, entry.subject, entry.messageCount, entry.remoteAgent, historyContext, relayContext);
172
176
  // Spawn with resume UUID
173
177
  const spawnResult = await this.spawnManager.evaluate({
174
178
  requester: message.from,
@@ -207,12 +211,15 @@ export class ThreadlineRouter {
207
211
  };
208
212
  }
209
213
  // ── Private: Spawn a new thread session ─────────────────────
210
- async spawnNewThread(threadId, envelope) {
214
+ async spawnNewThread(threadId, envelope, relayContext) {
211
215
  const { message } = envelope;
212
216
  // Build history context (may be empty for brand new threads)
213
- const historyContext = await this.buildHistoryContext(threadId);
214
- // Build the spawn prompt
215
- const prompt = this.buildPrompt(message, threadId, message.subject, 1, message.from.agent, historyContext);
217
+ const maxHistory = relayContext
218
+ ? RELAY_HISTORY_LIMITS[relayContext.trustLevel]
219
+ : this.config.maxHistoryMessages;
220
+ const historyContext = await this.buildHistoryContext(threadId, maxHistory);
221
+ // Build the spawn prompt (with grounding preamble if relay)
222
+ const prompt = this.buildPrompt(message, threadId, message.subject, 1, message.from.agent, historyContext, relayContext);
216
223
  // Request spawn
217
224
  const spawnResult = await this.spawnManager.evaluate({
218
225
  requester: message.from,
@@ -258,8 +265,11 @@ export class ThreadlineRouter {
258
265
  };
259
266
  }
260
267
  // ── Private: Build thread history context ───────────────────
261
- async buildHistoryContext(threadId) {
268
+ async buildHistoryContext(threadId, maxMessages) {
262
269
  try {
270
+ const limit = maxMessages ?? this.config.maxHistoryMessages;
271
+ if (limit <= 0)
272
+ return '';
263
273
  // Fetch thread info from the messaging system's thread store
264
274
  const threadData = await this.messageRouter.getThread(threadId);
265
275
  if (!threadData || threadData.messages.length === 0) {
@@ -267,13 +277,13 @@ export class ThreadlineRouter {
267
277
  }
268
278
  // Take the last N messages for context
269
279
  const recentMessages = threadData.messages
270
- .slice(-this.config.maxHistoryMessages)
280
+ .slice(-limit)
271
281
  .map((env, i) => {
272
282
  const msg = env.message;
273
283
  return `[${i + 1}] ${msg.from.agent} (${msg.createdAt}):\n${msg.body}`;
274
284
  })
275
285
  .join('\n\n');
276
- return `Recent thread history (${Math.min(threadData.messages.length, this.config.maxHistoryMessages)} of ${threadData.messages.length} messages):\n${recentMessages}`;
286
+ return `Recent thread history (${Math.min(threadData.messages.length, limit)} of ${threadData.messages.length} messages):\n${recentMessages}`;
277
287
  }
278
288
  catch {
279
289
  // @silent-fallback-ok — thread history is supplementary context; missing it degrades but doesn't break
@@ -281,11 +291,11 @@ export class ThreadlineRouter {
281
291
  }
282
292
  }
283
293
  // ── Private: Build spawn/resume prompt ──────────────────────
284
- buildPrompt(latestMessage, threadId, subject, messageCount, remoteAgent, historyContext) {
294
+ buildPrompt(latestMessage, threadId, subject, messageCount, remoteAgent, historyContext, relayContext) {
285
295
  const historySection = historyContext
286
296
  ? `${historyContext}\n`
287
297
  : 'No previous history available.\n';
288
- return THREAD_SPAWN_PROMPT_TEMPLATE
298
+ const basePrompt = THREAD_SPAWN_PROMPT_TEMPLATE
289
299
  .replace('{remote_agent}', remoteAgent)
290
300
  .replace('{remote_agent}', remoteAgent)
291
301
  .replace('{thread_id}', threadId)
@@ -294,6 +304,21 @@ export class ThreadlineRouter {
294
304
  .replace('{history_section}', historySection)
295
305
  .replace('{latest_subject}', latestMessage.subject)
296
306
  .replace('{latest_body}', latestMessage.body);
307
+ // If relay context is present, wrap with grounding preamble
308
+ if (relayContext) {
309
+ const grounding = buildRelayGroundingPreamble({
310
+ agentName: this.config.localAgent,
311
+ senderName: relayContext.senderName,
312
+ senderFingerprint: relayContext.senderFingerprint,
313
+ trustLevel: relayContext.trustLevel,
314
+ trustSource: relayContext.trustSource,
315
+ trustDate: relayContext.trustDate,
316
+ originFingerprint: relayContext.originFingerprint,
317
+ originName: relayContext.originName,
318
+ });
319
+ return `${grounding.header}\n\n${basePrompt}\n\n${grounding.footer}`;
320
+ }
321
+ return basePrompt;
297
322
  }
298
323
  }
299
324
  //# sourceMappingURL=ThreadlineRouter.js.map