agent-comms 3.11.0 → 3.13.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 (97) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +3 -1
  4. package/dist/bridges/cc-peer/front-controller.d.ts +20 -0
  5. package/dist/bridges/cc-peer/front-controller.d.ts.map +1 -1
  6. package/dist/bridges/cc-peer/front-controller.js +12 -0
  7. package/dist/bridges/cc-peer/front-controller.js.map +1 -1
  8. package/dist/bridges/cc-peer/front-relay.d.ts +11 -1
  9. package/dist/bridges/cc-peer/front-relay.d.ts.map +1 -1
  10. package/dist/bridges/cc-peer/front-relay.js +35 -4
  11. package/dist/bridges/cc-peer/front-relay.js.map +1 -1
  12. package/dist/bridges/cc-peer/front-runtime.d.ts.map +1 -1
  13. package/dist/bridges/cc-peer/front-runtime.js +20 -0
  14. package/dist/bridges/cc-peer/front-runtime.js.map +1 -1
  15. package/dist/bridges/cc-peer/reply-aliases.d.ts +22 -0
  16. package/dist/bridges/cc-peer/reply-aliases.d.ts.map +1 -0
  17. package/dist/bridges/cc-peer/reply-aliases.js +56 -0
  18. package/dist/bridges/cc-peer/reply-aliases.js.map +1 -0
  19. package/dist/core/bridge-mesh.d.ts.map +1 -1
  20. package/dist/core/bridge-mesh.js +1 -1
  21. package/dist/core/bridge-mesh.js.map +1 -1
  22. package/dist/core/bridge.d.ts +4 -0
  23. package/dist/core/bridge.d.ts.map +1 -1
  24. package/dist/core/bridge.js +15 -0
  25. package/dist/core/bridge.js.map +1 -1
  26. package/dist/core/gateway-trust.d.ts +25 -0
  27. package/dist/core/gateway-trust.d.ts.map +1 -0
  28. package/dist/core/gateway-trust.js +26 -0
  29. package/dist/core/gateway-trust.js.map +1 -0
  30. package/dist/core/hub-forwarding.d.ts +7 -5
  31. package/dist/core/hub-forwarding.d.ts.map +1 -1
  32. package/dist/core/hub-forwarding.js +13 -6
  33. package/dist/core/hub-forwarding.js.map +1 -1
  34. package/dist/core/hub-session.d.ts +5 -1
  35. package/dist/core/hub-session.d.ts.map +1 -1
  36. package/dist/core/hub-session.js +20 -5
  37. package/dist/core/hub-session.js.map +1 -1
  38. package/dist/core/listener-registry.d.ts +25 -0
  39. package/dist/core/listener-registry.d.ts.map +1 -0
  40. package/dist/core/listener-registry.js +52 -0
  41. package/dist/core/listener-registry.js.map +1 -0
  42. package/dist/core/mesh-store.d.ts +9 -0
  43. package/dist/core/mesh-store.d.ts.map +1 -1
  44. package/dist/core/mesh-store.js +18 -0
  45. package/dist/core/mesh-store.js.map +1 -1
  46. package/dist/core/tool.d.ts +6 -0
  47. package/dist/core/tool.d.ts.map +1 -1
  48. package/dist/core/tool.js +51 -0
  49. package/dist/core/tool.js.map +1 -1
  50. package/dist/core/types.d.ts +16 -0
  51. package/dist/core/types.d.ts.map +1 -1
  52. package/dist/core/types.js +9 -0
  53. package/dist/core/types.js.map +1 -1
  54. package/dist/core/wire-mesh-transport.d.ts +6 -5
  55. package/dist/core/wire-mesh-transport.d.ts.map +1 -1
  56. package/dist/core/wire-mesh-transport.js +21 -44
  57. package/dist/core/wire-mesh-transport.js.map +1 -1
  58. package/dist/test/cc-peer-front-controller.test.js +61 -0
  59. package/dist/test/cc-peer-front-controller.test.js.map +1 -1
  60. package/dist/test/cc-peer-front-relay.test.js +161 -2
  61. package/dist/test/cc-peer-front-relay.test.js.map +1 -1
  62. package/dist/test/cc-peer-reply-aliases.test.d.ts +2 -0
  63. package/dist/test/cc-peer-reply-aliases.test.d.ts.map +1 -0
  64. package/dist/test/cc-peer-reply-aliases.test.js +93 -0
  65. package/dist/test/cc-peer-reply-aliases.test.js.map +1 -0
  66. package/dist/test/gateway-forwarding.integration.test.d.ts +2 -0
  67. package/dist/test/gateway-forwarding.integration.test.d.ts.map +1 -1
  68. package/dist/test/gateway-forwarding.integration.test.js +11 -0
  69. package/dist/test/gateway-forwarding.integration.test.js.map +1 -1
  70. package/dist/test/gateway-trust-tool.test.d.ts +2 -0
  71. package/dist/test/gateway-trust-tool.test.d.ts.map +1 -0
  72. package/dist/test/gateway-trust-tool.test.js +120 -0
  73. package/dist/test/gateway-trust-tool.test.js.map +1 -0
  74. package/dist/test/gateway-trust.integration.test.d.ts +5 -0
  75. package/dist/test/gateway-trust.integration.test.d.ts.map +1 -0
  76. package/dist/test/gateway-trust.integration.test.js +143 -0
  77. package/dist/test/gateway-trust.integration.test.js.map +1 -0
  78. package/dist/test/gateway-trust.test.d.ts +2 -0
  79. package/dist/test/gateway-trust.test.d.ts.map +1 -0
  80. package/dist/test/gateway-trust.test.js +60 -0
  81. package/dist/test/gateway-trust.test.js.map +1 -0
  82. package/dist/test/hub-forwarding.test.d.ts +2 -0
  83. package/dist/test/hub-forwarding.test.d.ts.map +1 -0
  84. package/dist/test/hub-forwarding.test.js +62 -0
  85. package/dist/test/hub-forwarding.test.js.map +1 -0
  86. package/dist/test/hub-mode-session.integration.test.js +25 -10
  87. package/dist/test/hub-mode-session.integration.test.js.map +1 -1
  88. package/dist/test/test-transport.d.ts.map +1 -1
  89. package/dist/test/test-transport.js +1 -1
  90. package/dist/test/test-transport.js.map +1 -1
  91. package/dist/test/wire-mesh-transport-gateway-trust.test.d.ts +2 -0
  92. package/dist/test/wire-mesh-transport-gateway-trust.test.d.ts.map +1 -0
  93. package/dist/test/wire-mesh-transport-gateway-trust.test.js +50 -0
  94. package/dist/test/wire-mesh-transport-gateway-trust.test.js.map +1 -0
  95. package/dist/test/wire-mesh-transport.test.js +1 -11
  96. package/dist/test/wire-mesh-transport.test.js.map +1 -1
  97. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"cc-peer-front-relay.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-front-relay.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cc-peer-front-relay.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-front-relay.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,mCAAmC,CAAC;AAW3C,SAAS,WAAW,CAClB,YAAsD,EAAE;IAExD,OAAO;QACL,GAAG,EAAE,GAAG;QACR,GAAG,EAAE,cAAc;QACnB,OAAO,EAAE,SAAS;QAClB,mBAAmB,EAAE,eAAe;QACpC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,SAAS;IAIhB,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAC1C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,OAAO;QACL,UAAU,EAAE,SAAS;QACrB,oBAAoB;QACpB,IAAI,aAAa;YACf,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;YAC1C,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC9B,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC;QACF,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE;YACzB,aAAa,IAAI,CAAC,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ;IAGf,MAAM,SAAS,GAAwC,EAAE,CAAC;IAC1D,OAAO;QACL,SAAS;QACT,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAe,EAAE,IAAY,EAAE,EAAE;YAClD,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,OAAO;QACL,WAAW;QACX,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,GAAY,EAAE,MAAe,EAAE,EAAE;YACpD,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,YAAkC,EAAE;IACvD,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,kBAAkB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,YAAgC,EAAE;IACnD,OAAO;QACL,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,QAAQ;QACd,EAAE,EAAE,SAAS;QACb,OAAO,EAAE,kBAAkB;QAC3B,SAAS,EAAE,0BAA0B;QACrC,MAAM,EAAE,EAAE;QACV,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,aAAa;IACpB,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,OAAO;QACL,WAAW;QACX,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,UAA+C,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE;IAEnE,OAAO;QACL,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC;KACvB,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,wDAAwD,EAAE,GAAG,EAAE;IACtE,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAExC,yBAAyB,CAAC;YACxB,KAAK;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK;YACL,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI;YACJ,SAAS,EAAE,aAAa,EAAE;YAC1B,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,WAAW,EAAE;SACvB,CAAC;QACF,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oGAAoG,EAAE,KAAK,IAAI,EAAE;QAClH,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEhE,yBAAyB,CAAC;YACxB,KAAK,EAAE,WAAW,EAAE;YACpB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK;YACL,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI;YACJ,SAAS;YACT,cAAc;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;SAChD,CAAC;QACF,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;QACtE,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CACvC,uCAAuC,CACxC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qGAAqG,EAAE,KAAK,IAAI,EAAE;QACnH,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAElC,yBAAyB,CAAC;YACxB,KAAK,EAAE,WAAW,EAAE;YACpB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK;YACL,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI;YACJ,SAAS;YACT,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAwB;YACrC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;SACnD,CAAC;QAEF,yBAAyB,CAAC;YACxB,KAAK,EAAE,WAAW,EAAE;YACpB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK;YACL,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI;YACJ,SAAS;YACT,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAkB;YAC3B,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;SAChD,CAAC;QACF,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8DAA8D,EAAE,GAAG,EAAE;IAC5E,EAAE,CAAC,yGAAyG,EAAE,GAAG,EAAE;QACjH,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,yBAAyB,CAAC;YACvC,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC;YAC9C,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,SAAS,EAAE;YAClB,IAAI;YACJ,IAAI,EAAE,QAAQ,EAAE;YAChB,SAAS,EAAE,aAAa,EAAE;YAC1B,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,EAAE;YACzC,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,GAAG,EAAE;gBACH,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,aAAa;gBACtB,GAAG,EAAE,iBAAiB;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,iBAAiB;gBACzB,OAAO,EAAE,YAAY;aACtB;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sDAAsD,EAAE,GAAG,EAAE;IACpE,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;QACnG,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,yBAAyB,CAAC;YACvC,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAChC,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,SAAS,EAAE;YAClB,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI;YACJ,SAAS,EAAE,aAAa,EAAE;YAC1B,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACrE,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;QACxF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,yBAAyB,CAAC;YACvC,KAAK;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,SAAS,EAAE;YAClB,IAAI;YACJ,IAAI,EAAE,QAAQ,EAAE;YAChB,SAAS,EAAE,aAAa,EAAE;YAC1B,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC;YACnB,IAAI,EAAE,eAAe;YACrB,QAAQ,EAAE,kBAAkB;YAC5B,IAAI,EAAE,oBAAoB;SAC3B,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAClC,GAAG,EAAE;gBACH,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,aAAa;gBACtB,GAAG,EAAE,iBAAiB;gBACtB,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,kBAAkB;gBAC1B,OAAO,EAAE,sCAAsC;aAChD;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,yBAAyB,CAAC;YACvC,KAAK,EAAE,WAAW,EAAE;YACpB,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,SAAS,EAAE;YAClB,IAAI;YACJ,IAAI,EAAE,QAAQ,EAAE;YAChB,SAAS,EAAE,aAAa,EAAE;YAC1B,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAE5D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAoC,CAAC;QACpE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,2GAA2G,EAAE,GAAG,EAAE;QACnH,MAAM,KAAK,GAAG,WAAW,CAAC;YACxB,GAAG,EAAE,GAAG;YACR,GAAG,EAAE,YAAY;YACjB,mBAAmB,EAAE,eAAe;SACrC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,yBAAyB,CAAC;YACvC,KAAK;YACL,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,SAAS,EAAE;YAClB,IAAI,EAAE,QAAQ,EAAE;YAChB,IAAI,EAAE,QAAQ,EAAE;YAChB,SAAS,EAAE,aAAa,EAAE;YAC1B,cAAc,EAAE,kBAAkB,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAE1B,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACxD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oFAAoF,EAAE,KAAK,IAAI,EAAE;QAClG,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;YAC7D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;YACtD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAE1D,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cc-peer-reply-aliases.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-peer-reply-aliases.test.d.ts","sourceRoot":"","sources":["../../src/test/cc-peer-reply-aliases.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Unit tests for the cc-peer front's reply-alias bookkeeping (bridges/cc-peer/reply-aliases.ts) -- alias-name derivation, the correspondent↔alias directory, and which DeliveryEvent types carry a correspondent worth aliasing, all tested purely over data with no real cc-peer/AliasPool involved.
3
+ */
4
+ import { describe, expect, it } from "vitest";
5
+ import { correspondentForEvent, deriveAliasName, ReplyAliasDirectory, } from "../bridges/cc-peer/reply-aliases.js";
6
+ function dmMessage(overrides = {}) {
7
+ return {
8
+ id: "msg-1",
9
+ from: "a1b2c3d4e5f60000000000000000000000000000000000000000000000000000",
10
+ to: "agent-1",
11
+ content: "hi",
12
+ timestamp: "2026-01-01T00:00:00.000Z",
13
+ readBy: [],
14
+ ...overrides,
15
+ };
16
+ }
17
+ function roomMessage(overrides = {}) {
18
+ return {
19
+ id: "msg-1",
20
+ from: "f1e2d3c4b5a60000000000000000000000000000000000000000000000000000",
21
+ room: "owner/project",
22
+ content: "hi",
23
+ timestamp: "2026-01-01T00:00:00.000Z",
24
+ readBy: [],
25
+ ...overrides,
26
+ };
27
+ }
28
+ describe("deriveAliasName", () => {
29
+ it("derives a stable, non-empty peer name from a correspondent id", () => {
30
+ const name = deriveAliasName("a1b2c3d4e5f6789012345678");
31
+ expect(name.length).toBeGreaterThan(0);
32
+ expect(name).toBe(deriveAliasName("a1b2c3d4e5f6789012345678"));
33
+ });
34
+ it("derives distinct names for distinct correspondent ids", () => {
35
+ expect(deriveAliasName("aaaaaaaaaaaaaaaaaaaaaaaa")).not.toBe(deriveAliasName("bbbbbbbbbbbbbbbbbbbbbbbb"));
36
+ });
37
+ it("is stable even for a very short correspondent id", () => {
38
+ expect(deriveAliasName("ab").length).toBeGreaterThan(0);
39
+ });
40
+ });
41
+ describe("correspondentForEvent", () => {
42
+ it("returns the sender's agent id for a dm event", () => {
43
+ const event = {
44
+ type: "dm",
45
+ message: dmMessage({ from: "sender-id" }),
46
+ };
47
+ expect(correspondentForEvent(event)).toBe("sender-id");
48
+ });
49
+ it("returns the sender's agent id for a room_message event", () => {
50
+ const event = {
51
+ type: "room_message",
52
+ message: roomMessage({ from: "sender-id" }),
53
+ };
54
+ expect(correspondentForEvent(event)).toBe("sender-id");
55
+ });
56
+ it("returns undefined for an event with no single originating correspondent", () => {
57
+ const event = {
58
+ type: "member_joined",
59
+ room: "owner/project",
60
+ agent: "agent-1",
61
+ };
62
+ expect(correspondentForEvent(event)).toBeUndefined();
63
+ });
64
+ });
65
+ describe("ReplyAliasDirectory", () => {
66
+ it("mints a fresh alias name the first time a correspondent is seen", () => {
67
+ const directory = new ReplyAliasDirectory();
68
+ const name = directory.ensure("correspondent-1");
69
+ expect(name.length).toBeGreaterThan(0);
70
+ });
71
+ it("is idempotent: the same correspondent always maps to the same alias", () => {
72
+ const directory = new ReplyAliasDirectory();
73
+ const first = directory.ensure("correspondent-1");
74
+ const second = directory.ensure("correspondent-1");
75
+ expect(second).toBe(first);
76
+ });
77
+ it("gives distinct correspondents distinct alias names", () => {
78
+ const directory = new ReplyAliasDirectory();
79
+ const a = directory.ensure("aaaaaaaaaaaaaaaaaaaaaaaa");
80
+ const b = directory.ensure("bbbbbbbbbbbbbbbbbbbbbbbb");
81
+ expect(a).not.toBe(b);
82
+ });
83
+ it("resolves a minted alias name back to its correspondent id", () => {
84
+ const directory = new ReplyAliasDirectory();
85
+ const name = directory.ensure("correspondent-1");
86
+ expect(directory.correspondentFor(name)).toBe("correspondent-1");
87
+ });
88
+ it("returns undefined for an alias name it never minted", () => {
89
+ const directory = new ReplyAliasDirectory();
90
+ expect(directory.correspondentFor("never-seen")).toBeUndefined();
91
+ });
92
+ });
93
+ //# sourceMappingURL=cc-peer-reply-aliases.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cc-peer-reply-aliases.test.js","sourceRoot":"","sources":["../../src/test/cc-peer-reply-aliases.test.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@
2
2
  * Integration tests for the gateway actually forwarding between the local mesh and the hub (agent-comms#155), the core leg of the cross-machine mesh epic (#153) on top of #154's own connection-lifecycle-only gateway. Two independent local meshes ("machine A" and "machine B"), each its own coordinator dialling a shared real relay hub (createRelayHub, the same domain logic the production mesh.exadev.io Durable Object runs, served over local WebSockets via hub-helpers.ts) -- neither mesh is ever directly connected to the other, so anything either side learns about the other can only have arrived via the hub.
3
3
  *
4
4
  * Machine A's coordinator (a1) additionally has a second, ordinary local peer (a2) -- proving outbound advertisement and the remote-directory merge work for a local peer that is NOT itself the gateway, not just for the gateway's own agent (which #154 already exercised end-to-end before this issue).
5
+ *
6
+ * Every gateway here explicitly trusts the specific remote device-ids it needs to (agent-comms#156's own gateway allowlist, added after these tests first landed): the allowlist is deny-all by default, so every test below establishes trust before expecting forwarding/merge/routing to happen -- see gateway-trust.integration.test.ts for the deny-by-default behaviour itself (untrusted forwarding/merge/routing all failing) rather than re-proving it per test here.
5
7
  */
6
8
  export {};
7
9
  //# sourceMappingURL=gateway-forwarding.integration.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-forwarding.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/gateway-forwarding.integration.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
1
+ {"version":3,"file":"gateway-forwarding.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/gateway-forwarding.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -2,6 +2,8 @@
2
2
  * Integration tests for the gateway actually forwarding between the local mesh and the hub (agent-comms#155), the core leg of the cross-machine mesh epic (#153) on top of #154's own connection-lifecycle-only gateway. Two independent local meshes ("machine A" and "machine B"), each its own coordinator dialling a shared real relay hub (createRelayHub, the same domain logic the production mesh.exadev.io Durable Object runs, served over local WebSockets via hub-helpers.ts) -- neither mesh is ever directly connected to the other, so anything either side learns about the other can only have arrived via the hub.
3
3
  *
4
4
  * Machine A's coordinator (a1) additionally has a second, ordinary local peer (a2) -- proving outbound advertisement and the remote-directory merge work for a local peer that is NOT itself the gateway, not just for the gateway's own agent (which #154 already exercised end-to-end before this issue).
5
+ *
6
+ * Every gateway here explicitly trusts the specific remote device-ids it needs to (agent-comms#156's own gateway allowlist, added after these tests first landed): the allowlist is deny-all by default, so every test below establishes trust before expecting forwarding/merge/routing to happen -- see gateway-trust.integration.test.ts for the deny-by-default behaviour itself (untrusted forwarding/merge/routing all failing) rather than re-proving it per test here.
5
7
  */
6
8
  import { afterEach, describe, expect, it } from "vitest";
7
9
  import { MeshStore } from "../core/mesh-store.js";
@@ -59,6 +61,9 @@ describe("gateway forwarding", () => {
59
61
  await wireTestTransport(b1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
60
62
  await b1.init();
61
63
  cleanups.push(async () => b1.shutdown());
64
+ // Deny-all by default (agent-comms#156): a1 needs at least one trusted device to forward anything at all onto the hub, and b1 needs a2's own device-id specifically trusted to merge a2's directory entry (trust is keyed per device, not per remote machine -- see GatewayTrust's own class doc).
65
+ a1.addTrustedGateway(b1.peerId);
66
+ b1.addTrustedGateway(a2.peerId);
62
67
  await waitFor("b1 (a separate machine's gateway) to learn of a2 (a non-gateway local peer on machine A) via the hub", async () => {
63
68
  const agents = await b1.listAgents(b1.peerId);
64
69
  return agents.some((agent) => agent.id === a2.peerId);
@@ -122,6 +127,9 @@ describe("gateway forwarding", () => {
122
127
  await wireTestTransport(b1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
123
128
  await b1.init();
124
129
  cleanups.push(async () => b1.shutdown());
130
+ // Deny-all by default (agent-comms#156) -- a1 needs at least one trusted device to forward at all, and b1 needs the visible control peer's own device-id trusted so its arrival can prove gossip had time to propagate. Trusting only aVisible (never aHidden/aGhost) doesn't weaken this test: hidden/ghost are already filtered out at the source (forwardAdvertsToHub's own AGENT_SELF_GOSSIP_KEY eligibility check, upstream of the trust gate), so this proves the trust gate isn't the reason they never arrive.
131
+ a1.addTrustedGateway(b1.peerId);
132
+ b1.addTrustedGateway(aVisible.peerId);
125
133
  await waitFor("b1 to see the visible control peer, proving gossip had time to propagate", async () => {
126
134
  const agents = await b1.listAgents(b1.peerId);
127
135
  return agents.some((agent) => agent.id === aVisible.peerId);
@@ -157,6 +165,9 @@ describe("gateway forwarding", () => {
157
165
  visibility: "visible",
158
166
  tags: [],
159
167
  });
168
+ // Deny-all by default (agent-comms#156) -- mutual trust: a1 must trust b1 to accept b1's incoming DM request (consume()'s own isTrusted gate on fromDevice), and b1 must trust a1 for sendRoomRequest's own outbound isTrusted gate to route the request (and the later DM) to a1 at all.
169
+ a1.addTrustedGateway(b1.peerId);
170
+ b1.addTrustedGateway(a1.peerId);
160
171
  // Two-round DM consent (section 6), exactly like the local-mesh-only dm-admission.integration.test.ts -- b1's own outbound request is what's actually exercised via the new hub-relay fallback, since a1 is not a local peer of b1's own mesh.
161
172
  const dmPath = dmRoomPath(b1.peerId, a1.peerId);
162
173
  const requestPromise = b1.requestDmAccess(a1.peerId);
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-forwarding.integration.test.js","sourceRoot":"","sources":["../../src/test/gateway-forwarding.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-forwarding.integration.test.js","sourceRoot":"","sources":["../../src/test/gateway-forwarding.integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,SAAS,SAAS;IAChB,QAAQ,IAAI,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qLAAqL;AACrL,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE,CAChD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,sRAAsR;AACtR,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,KAA6B;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO;QAC1B,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;AAE7C,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,4JAA4J,EAAE,KAAK,IAAI,EAAE;QAC1K,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,mSAAmS;QACnS,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,OAAO,CACX,sGAAsG,EACtG,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QAClE,MAAM,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;YAC/B,EAAE,EAAE,EAAE,CAAC,MAAM;YACb,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,CAAC,SAAS,CAAC;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3D,MAAM,iBAAiB,CACrB,OAAO,EACP,SAAS,EACT,SAAS,EACT,uBAAuB,CACxB,CAAC;QACF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9C,MAAM,OAAO,CAAC,aAAa,CAAC;YAC1B,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,cAAc;YACnB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,QAAQ;YACpB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,iBAAiB,CACrB,MAAM,EACN,SAAS,EACT,SAAS,EACT,uBAAuB,CACxB,CAAC;QACF,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,aAAa,CAAC;YACzB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,aAAa;YAClB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,yRAAyR;QACzR,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,MAAM,iBAAiB,CACrB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,uBAAuB,CACxB,CAAC;QACF,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,MAAM,QAAQ,CAAC,aAAa,CAAC;YAC3B,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,eAAe;YACpB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,ufAAuf;QACvf,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEtC,MAAM,OAAO,CACX,0EAA0E,EAC1E,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9D,CAAC,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wHAAwH,EAAE,KAAK,IAAI,EAAE;QACtI,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,0RAA0R;QAC1R,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEhC,+OAA+O;QAC/O,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,OAAO,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC;QAC5C,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7C,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,cAAc,CAAC;QAErB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAEvE,MAAM,OAAO,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAC3B,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC;YAC9B,IAAI,EAAE,EAAE,CAAC,MAAM;YACf,EAAE,EAAE,EAAE,CAAC,MAAM;YACb,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gateway-trust-tool.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-trust-tool.test.d.ts","sourceRoot":"","sources":["../../src/test/gateway-trust-tool.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * CommsTool's gateway-trust actions (agent-comms#156) -- add/remove/list a trusted remote device-id, mirroring visibility.integration.test.ts's own "CommsTool visibility actions" pattern for the sibling mesh-only, MeshOnlyFeatures-gated config surface.
3
+ */
4
+ import { test, describe, expect } from "vitest";
5
+ import { MeshStore } from "../core/mesh-store.js";
6
+ import { CommsTool } from "../core/tool.js";
7
+ import { buildAction } from "../core/bridge.js";
8
+ import { wireTestTransport } from "./test-transport.js";
9
+ const TEST_PORT = 0;
10
+ const DEVICE_HEX = "aabbccdd";
11
+ describe("CommsTool gateway trust actions", () => {
12
+ test("gateway_trust adds a device to the allowlist", async () => {
13
+ const store = new MeshStore(TEST_PORT);
14
+ await wireTestTransport(store);
15
+ await store.init();
16
+ const agent = await store.registerAgent({
17
+ name: "gateway-trust-test",
18
+ harness: "test",
19
+ cwd: "/test",
20
+ pid: process.pid,
21
+ visibility: "visible",
22
+ tags: [],
23
+ });
24
+ const tool = new CommsTool(store);
25
+ const result = await tool.handle({ agentId: agent.id, harness: "test", cwd: "/test", pid: process.pid }, { action: "gateway_trust", device: DEVICE_HEX });
26
+ expect(result.isError, result.content).toBe(false);
27
+ expect(result.content).toContain(DEVICE_HEX);
28
+ expect(store.listTrustedGateways()).toEqual([DEVICE_HEX]);
29
+ await store.shutdown();
30
+ });
31
+ test("gateway_untrust removes a device from the allowlist", async () => {
32
+ const store = new MeshStore(TEST_PORT);
33
+ await wireTestTransport(store);
34
+ await store.init();
35
+ const agent = await store.registerAgent({
36
+ name: "gateway-untrust-test",
37
+ harness: "test",
38
+ cwd: "/test",
39
+ pid: process.pid,
40
+ visibility: "visible",
41
+ tags: [],
42
+ });
43
+ const tool = new CommsTool(store);
44
+ store.addTrustedGateway(DEVICE_HEX);
45
+ const result = await tool.handle({ agentId: agent.id, harness: "test", cwd: "/test", pid: process.pid }, { action: "gateway_untrust", device: DEVICE_HEX });
46
+ expect(result.isError, result.content).toBe(false);
47
+ expect(store.listTrustedGateways()).toEqual([]);
48
+ await store.shutdown();
49
+ });
50
+ test("gateway_list_trusted lists every currently trusted device", async () => {
51
+ const store = new MeshStore(TEST_PORT);
52
+ await wireTestTransport(store);
53
+ await store.init();
54
+ const agent = await store.registerAgent({
55
+ name: "gateway-list-test",
56
+ harness: "test",
57
+ cwd: "/test",
58
+ pid: process.pid,
59
+ visibility: "visible",
60
+ tags: [],
61
+ });
62
+ const tool = new CommsTool(store);
63
+ store.addTrustedGateway(DEVICE_HEX);
64
+ const result = await tool.handle({ agentId: agent.id, harness: "test", cwd: "/test", pid: process.pid }, { action: "gateway_list_trusted" });
65
+ expect(result.isError, result.content).toBe(false);
66
+ expect(result.content).toContain(DEVICE_HEX);
67
+ await store.shutdown();
68
+ });
69
+ test("gateway_list_trusted reports none trusted by default", async () => {
70
+ const store = new MeshStore(TEST_PORT);
71
+ await wireTestTransport(store);
72
+ await store.init();
73
+ const agent = await store.registerAgent({
74
+ name: "gateway-list-empty-test",
75
+ harness: "test",
76
+ cwd: "/test",
77
+ pid: process.pid,
78
+ visibility: "visible",
79
+ tags: [],
80
+ });
81
+ const tool = new CommsTool(store);
82
+ const result = await tool.handle({ agentId: agent.id, harness: "test", cwd: "/test", pid: process.pid }, { action: "gateway_list_trusted" });
83
+ expect(result.isError, result.content).toBe(false);
84
+ expect(store.listTrustedGateways()).toEqual([]);
85
+ await store.shutdown();
86
+ });
87
+ });
88
+ describe("buildAction gateway trust parsing", () => {
89
+ test("buildAction parses gateway_trust", () => {
90
+ const action = buildAction({
91
+ action: "gateway_trust",
92
+ device: DEVICE_HEX,
93
+ });
94
+ expect(action.action).toBe("gateway_trust");
95
+ if (action.action === "gateway_trust") {
96
+ expect(action.device).toBe(DEVICE_HEX);
97
+ }
98
+ });
99
+ test("buildAction parses gateway_untrust", () => {
100
+ const action = buildAction({
101
+ action: "gateway_untrust",
102
+ device: DEVICE_HEX,
103
+ });
104
+ expect(action.action).toBe("gateway_untrust");
105
+ if (action.action === "gateway_untrust") {
106
+ expect(action.device).toBe(DEVICE_HEX);
107
+ }
108
+ });
109
+ test("buildAction parses gateway_list_trusted", () => {
110
+ const action = buildAction({ action: "gateway_list_trusted" });
111
+ expect(action.action).toBe("gateway_list_trusted");
112
+ });
113
+ test("buildAction throws for gateway_trust without device", () => {
114
+ expect(() => buildAction({ action: "gateway_trust" })).toThrow(/device/);
115
+ });
116
+ test("buildAction throws for gateway_untrust without device", () => {
117
+ expect(() => buildAction({ action: "gateway_untrust" })).toThrow(/device/);
118
+ });
119
+ });
120
+ //# sourceMappingURL=gateway-trust-tool.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-trust-tool.test.js","sourceRoot":"","sources":["../../src/test/gateway-trust-tool.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,SAAS,GAAG,CAAC,CAAC;AACpB,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,IAAI,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACtC,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAC9B,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EACtE,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,CAChD,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAE1D,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACtC,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAC9B,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EACtE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,EAAE,CAClD,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhD,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QAC3E,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACtC,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,KAAK,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAC9B,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EACtE,EAAE,MAAM,EAAE,sBAAsB,EAAE,CACnC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE7C,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC;QACvC,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC;YACtC,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;QAElC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAC9B,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,EACtE,EAAE,MAAM,EAAE,sBAAsB,EAAE,CACnC,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhD,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,MAAM,EAAE,iBAAiB;YACzB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,uDAAuD,EAAE,GAAG,EAAE;QACjE,MAAM,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Integration tests for the gateway allowlist's own deny-by-default posture (agent-comms#156), the trust-boundary leg of the cross-machine mesh epic (#153) on top of #155's own (now trust-gated) forwarding. Same two-independent-local-meshes-over-a-real-hub harness as gateway-forwarding.integration.test.ts, but every scenario here proves the ABSENCE of forwarding/merge/routing before any trust is established, complementing that file's own coverage of the PRESENT-trust happy path.
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=gateway-trust.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-trust.integration.test.d.ts","sourceRoot":"","sources":["../../src/test/gateway-trust.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Integration tests for the gateway allowlist's own deny-by-default posture (agent-comms#156), the trust-boundary leg of the cross-machine mesh epic (#153) on top of #155's own (now trust-gated) forwarding. Same two-independent-local-meshes-over-a-real-hub harness as gateway-forwarding.integration.test.ts, but every scenario here proves the ABSENCE of forwarding/merge/routing before any trust is established, complementing that file's own coverage of the PRESENT-trust happy path.
3
+ */
4
+ import { afterEach, describe, expect, it } from "vitest";
5
+ import { MeshStore } from "../core/mesh-store.js";
6
+ import { realHubOverWs } from "./hub-helpers.js";
7
+ import { wireTestTransport } from "./test-transport.js";
8
+ let nextPort = 22_500;
9
+ function freshPort() {
10
+ nextPort += 1;
11
+ return nextPort;
12
+ }
13
+ /** Short enough that a gossip re-advertisement fires within a test's own poll budget, matching gateway-forwarding.integration.test.ts's own choice. */
14
+ const FAST_GOSSIP_INTERVAL_MS = 50;
15
+ const POLL_ATTEMPTS = 100;
16
+ const POLL_INTERVAL_MS = 50;
17
+ const sleep = async (ms) => new Promise((resolve) => {
18
+ setTimeout(resolve, ms);
19
+ });
20
+ async function waitFor(what, check) {
21
+ for (let i = 0; i < POLL_ATTEMPTS; i++) {
22
+ if (await check())
23
+ return;
24
+ await sleep(POLL_INTERVAL_MS);
25
+ }
26
+ expect(false, `timed out waiting for ${what}`).toBeTruthy();
27
+ }
28
+ const cleanups = [];
29
+ afterEach(async () => {
30
+ for (const close of cleanups.splice(0)) {
31
+ await close();
32
+ }
33
+ });
34
+ describe("gateway trust -- deny by default", () => {
35
+ it("never merges a remote agent's directory entry when this side hasn't trusted it, even once a trusted control agent proves propagation had time", async () => {
36
+ const hub = await realHubOverWs();
37
+ cleanups.push(hub.close);
38
+ const a1 = new MeshStore(freshPort(), hub.url);
39
+ await wireTestTransport(a1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
40
+ await a1.init();
41
+ cleanups.push(async () => a1.shutdown());
42
+ await a1.registerAgent({
43
+ name: "untrusted-a1",
44
+ harness: "test",
45
+ cwd: "/test/a1",
46
+ pid: process.pid,
47
+ visibility: "visible",
48
+ tags: [],
49
+ });
50
+ const b1 = new MeshStore(freshPort(), hub.url);
51
+ await wireTestTransport(b1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
52
+ await b1.init();
53
+ cleanups.push(async () => b1.shutdown());
54
+ const c1 = new MeshStore(freshPort(), hub.url);
55
+ await wireTestTransport(c1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
56
+ await c1.init();
57
+ cleanups.push(async () => c1.shutdown());
58
+ await c1.registerAgent({
59
+ name: "trusted-control-c1",
60
+ harness: "test",
61
+ cwd: "/test/c1",
62
+ pid: process.pid,
63
+ visibility: "visible",
64
+ tags: [],
65
+ });
66
+ // a1 needs at least one trusted device to forward at all (the outbound gate); c1 fills that role so a1's own gossip reaches the hub, without ever trusting b1 specifically. b1 trusts c1 (proving propagation genuinely had time) but never trusts a1.
67
+ a1.addTrustedGateway(c1.peerId);
68
+ c1.addTrustedGateway(a1.peerId);
69
+ b1.addTrustedGateway(c1.peerId);
70
+ c1.addTrustedGateway(b1.peerId);
71
+ await waitFor("b1 to see the trusted control agent c1", async () => {
72
+ const agents = await b1.listAgents(b1.peerId);
73
+ return agents.some((agent) => agent.id === c1.peerId);
74
+ });
75
+ const agents = await b1.listAgents(b1.peerId);
76
+ expect(agents.some((agent) => agent.id === a1.peerId)).toBe(false);
77
+ });
78
+ it("never advertises anything onto the hub while this side has trusted nobody, even for a peer another side would have accepted", async () => {
79
+ const hub = await realHubOverWs();
80
+ cleanups.push(hub.close);
81
+ const a1 = new MeshStore(freshPort(), hub.url);
82
+ await wireTestTransport(a1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
83
+ await a1.init();
84
+ cleanups.push(async () => a1.shutdown());
85
+ await a1.registerAgent({
86
+ name: "never-advertised-a1",
87
+ harness: "test",
88
+ cwd: "/test/a1",
89
+ pid: process.pid,
90
+ visibility: "visible",
91
+ tags: [],
92
+ });
93
+ // a1 trusts nobody at all -- the outbound gate (hasAny) should withhold every advertisement.
94
+ const b1 = new MeshStore(freshPort(), hub.url);
95
+ await wireTestTransport(b1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
96
+ await b1.init();
97
+ cleanups.push(async () => b1.shutdown());
98
+ b1.addTrustedGateway(a1.peerId);
99
+ const c1 = new MeshStore(freshPort(), hub.url);
100
+ await wireTestTransport(c1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
101
+ await c1.init();
102
+ cleanups.push(async () => c1.shutdown());
103
+ await c1.registerAgent({
104
+ name: "trusted-control-c1",
105
+ harness: "test",
106
+ cwd: "/test/c1",
107
+ pid: process.pid,
108
+ visibility: "visible",
109
+ tags: [],
110
+ });
111
+ b1.addTrustedGateway(c1.peerId);
112
+ c1.addTrustedGateway(b1.peerId);
113
+ await waitFor("b1 to see c1, proving gossip had time to reach it", async () => {
114
+ const agents = await b1.listAgents(b1.peerId);
115
+ return agents.some((agent) => agent.id === c1.peerId);
116
+ });
117
+ const agents = await b1.listAgents(b1.peerId);
118
+ expect(agents.some((agent) => agent.id === a1.peerId)).toBe(false);
119
+ });
120
+ it("refuses to route a request to an untrusted remote device, without ever reaching the hub", async () => {
121
+ const hub = await realHubOverWs();
122
+ cleanups.push(hub.close);
123
+ const a1 = new MeshStore(freshPort(), hub.url);
124
+ await wireTestTransport(a1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
125
+ await a1.init();
126
+ cleanups.push(async () => a1.shutdown());
127
+ await a1.registerAgent({
128
+ name: "a1-gateway",
129
+ harness: "test",
130
+ cwd: "/test/a1",
131
+ pid: process.pid,
132
+ visibility: "visible",
133
+ tags: [],
134
+ });
135
+ const b1 = new MeshStore(freshPort(), hub.url);
136
+ await wireTestTransport(b1, undefined, undefined, FAST_GOSSIP_INTERVAL_MS);
137
+ await b1.init();
138
+ cleanups.push(async () => b1.shutdown());
139
+ // b1 never trusts a1 -- requestDmAccess must be refused fast, not hang out sendRoomRequest's own hub timeout.
140
+ await expect(b1.requestDmAccess(a1.peerId)).rejects.toThrow(/unauthorized/);
141
+ });
142
+ });
143
+ //# sourceMappingURL=gateway-trust.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-trust.integration.test.js","sourceRoot":"","sources":["../../src/test/gateway-trust.integration.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,IAAI,QAAQ,GAAG,MAAM,CAAC;AACtB,SAAS,SAAS;IAChB,QAAQ,IAAI,CAAC,CAAC;IACd,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,uJAAuJ;AACvJ,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAEnC,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,KAAK,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE,CAChD,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;IAC5B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEL,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,KAA6B;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,MAAM,KAAK,EAAE;YAAE,OAAO;QAC1B,MAAM,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,CAAC,KAAK,EAAE,yBAAyB,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;AAE7C,SAAS,CAAC,KAAK,IAAI,EAAE;IACnB,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAChD,EAAE,CAAC,+IAA+I,EAAE,KAAK,IAAI,EAAE;QAC7J,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEzC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,uPAAuP;QACvP,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,OAAO,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6HAA6H,EAAE,KAAK,IAAI,EAAE;QAC3I,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,6FAA6F;QAE7F,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,oBAAoB;YAC1B,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAEhC,MAAM,OAAO,CACX,mDAAmD,EACnD,KAAK,IAAI,EAAE;YACT,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;QACvG,MAAM,GAAG,GAAG,MAAM,aAAa,EAAE,CAAC;QAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEzB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,aAAa,CAAC;YACrB,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,MAAM;YACf,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,SAAS,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzC,8GAA8G;QAE9G,MAAM,MAAM,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gateway-trust.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateway-trust.test.d.ts","sourceRoot":"","sources":["../../src/test/gateway-trust.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Direct unit tests for GatewayTrust -- the cross-machine trust boundary's own allowlist (agent-comms#156), tested standalone against no real transport or hub socket, mirroring coordinator-gateway.test.ts's own approach for the sibling gateway-lifecycle class.
3
+ */
4
+ import { describe, expect, it } from "vitest";
5
+ import { GatewayTrust } from "../core/gateway-trust.js";
6
+ describe("GatewayTrust", () => {
7
+ it("trusts nobody by default", () => {
8
+ const trust = new GatewayTrust();
9
+ expect(trust.hasAny()).toBe(false);
10
+ expect(trust.isTrusted("aabbcc")).toBe(false);
11
+ expect(trust.list()).toEqual([]);
12
+ });
13
+ it("trusts a device once added", () => {
14
+ const trust = new GatewayTrust();
15
+ trust.add("AABBCC");
16
+ expect(trust.isTrusted("aabbcc")).toBe(true);
17
+ expect(trust.hasAny()).toBe(true);
18
+ expect(trust.list()).toEqual(["aabbcc"]);
19
+ });
20
+ it("normalises hex case so add and isTrusted agree regardless of casing", () => {
21
+ const trust = new GatewayTrust();
22
+ trust.add("AaBbCc");
23
+ expect(trust.isTrusted("aabbcc")).toBe(true);
24
+ expect(trust.isTrusted("AABBCC")).toBe(true);
25
+ });
26
+ it("is idempotent: adding the same device twice keeps it listed once", () => {
27
+ const trust = new GatewayTrust();
28
+ trust.add("aabbcc");
29
+ trust.add("AABBCC");
30
+ expect(trust.list()).toEqual(["aabbcc"]);
31
+ });
32
+ it("stops trusting a device once removed", () => {
33
+ const trust = new GatewayTrust();
34
+ trust.add("aabbcc");
35
+ trust.remove("AABBCC");
36
+ expect(trust.isTrusted("aabbcc")).toBe(false);
37
+ expect(trust.list()).toEqual([]);
38
+ });
39
+ it("removing a device that was never trusted is a safe no-op", () => {
40
+ const trust = new GatewayTrust();
41
+ expect(() => {
42
+ trust.remove("aabbcc");
43
+ }).not.toThrow();
44
+ expect(trust.list()).toEqual([]);
45
+ });
46
+ it("hasAny reflects removal down to empty", () => {
47
+ const trust = new GatewayTrust();
48
+ trust.add("aabbcc");
49
+ trust.remove("aabbcc");
50
+ expect(trust.hasAny()).toBe(false);
51
+ });
52
+ it("lists every currently trusted device once each device-id is trusted, unaffected by another device's own trust/untrust", () => {
53
+ const trust = new GatewayTrust();
54
+ trust.add("aabbcc");
55
+ trust.add("ddeeff");
56
+ trust.remove("aabbcc");
57
+ expect(trust.list()).toEqual(["ddeeff"]);
58
+ });
59
+ });
60
+ //# sourceMappingURL=gateway-trust.test.js.map