@rookdaemon/agora 0.2.8 → 0.2.9

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 (143) hide show
  1. package/dist/chunk-JUOGKXFN.js +1645 -0
  2. package/dist/chunk-JUOGKXFN.js.map +1 -0
  3. package/dist/cli.d.ts +0 -2
  4. package/dist/cli.js +1163 -1137
  5. package/dist/cli.js.map +1 -1
  6. package/dist/index.d.ts +1613 -30
  7. package/dist/index.js +1135 -29
  8. package/dist/index.js.map +1 -1
  9. package/package.json +4 -2
  10. package/dist/cli.d.ts.map +0 -1
  11. package/dist/config.d.ts +0 -59
  12. package/dist/config.d.ts.map +0 -1
  13. package/dist/config.js +0 -115
  14. package/dist/config.js.map +0 -1
  15. package/dist/discovery/bootstrap.d.ts +0 -32
  16. package/dist/discovery/bootstrap.d.ts.map +0 -1
  17. package/dist/discovery/bootstrap.js +0 -36
  18. package/dist/discovery/bootstrap.js.map +0 -1
  19. package/dist/discovery/peer-discovery.d.ts +0 -59
  20. package/dist/discovery/peer-discovery.d.ts.map +0 -1
  21. package/dist/discovery/peer-discovery.js +0 -108
  22. package/dist/discovery/peer-discovery.js.map +0 -1
  23. package/dist/identity/keypair.d.ts +0 -42
  24. package/dist/identity/keypair.d.ts.map +0 -1
  25. package/dist/identity/keypair.js +0 -83
  26. package/dist/identity/keypair.js.map +0 -1
  27. package/dist/index.d.ts.map +0 -1
  28. package/dist/message/envelope.d.ts +0 -59
  29. package/dist/message/envelope.d.ts.map +0 -1
  30. package/dist/message/envelope.js +0 -83
  31. package/dist/message/envelope.js.map +0 -1
  32. package/dist/message/types/paper-discovery.d.ts +0 -28
  33. package/dist/message/types/paper-discovery.d.ts.map +0 -1
  34. package/dist/message/types/paper-discovery.js +0 -2
  35. package/dist/message/types/paper-discovery.js.map +0 -1
  36. package/dist/message/types/peer-discovery.d.ts +0 -78
  37. package/dist/message/types/peer-discovery.d.ts.map +0 -1
  38. package/dist/message/types/peer-discovery.js +0 -90
  39. package/dist/message/types/peer-discovery.js.map +0 -1
  40. package/dist/peer/client.d.ts +0 -50
  41. package/dist/peer/client.d.ts.map +0 -1
  42. package/dist/peer/client.js +0 -138
  43. package/dist/peer/client.js.map +0 -1
  44. package/dist/peer/manager.d.ts +0 -65
  45. package/dist/peer/manager.d.ts.map +0 -1
  46. package/dist/peer/manager.js +0 -153
  47. package/dist/peer/manager.js.map +0 -1
  48. package/dist/peer/server.d.ts +0 -65
  49. package/dist/peer/server.d.ts.map +0 -1
  50. package/dist/peer/server.js +0 -154
  51. package/dist/peer/server.js.map +0 -1
  52. package/dist/registry/capability.d.ts +0 -44
  53. package/dist/registry/capability.d.ts.map +0 -1
  54. package/dist/registry/capability.js +0 -94
  55. package/dist/registry/capability.js.map +0 -1
  56. package/dist/registry/discovery-service.d.ts +0 -64
  57. package/dist/registry/discovery-service.d.ts.map +0 -1
  58. package/dist/registry/discovery-service.js +0 -129
  59. package/dist/registry/discovery-service.js.map +0 -1
  60. package/dist/registry/messages.d.ts +0 -105
  61. package/dist/registry/messages.d.ts.map +0 -1
  62. package/dist/registry/messages.js +0 -2
  63. package/dist/registry/messages.js.map +0 -1
  64. package/dist/registry/peer-store.d.ts +0 -57
  65. package/dist/registry/peer-store.d.ts.map +0 -1
  66. package/dist/registry/peer-store.js +0 -92
  67. package/dist/registry/peer-store.js.map +0 -1
  68. package/dist/registry/peer.d.ts +0 -20
  69. package/dist/registry/peer.d.ts.map +0 -1
  70. package/dist/registry/peer.js +0 -2
  71. package/dist/registry/peer.js.map +0 -1
  72. package/dist/relay/client.d.ts +0 -112
  73. package/dist/relay/client.d.ts.map +0 -1
  74. package/dist/relay/client.js +0 -281
  75. package/dist/relay/client.js.map +0 -1
  76. package/dist/relay/jwt-auth.d.ts +0 -40
  77. package/dist/relay/jwt-auth.d.ts.map +0 -1
  78. package/dist/relay/jwt-auth.js +0 -109
  79. package/dist/relay/jwt-auth.js.map +0 -1
  80. package/dist/relay/message-buffer.d.ts +0 -41
  81. package/dist/relay/message-buffer.d.ts.map +0 -1
  82. package/dist/relay/message-buffer.js +0 -53
  83. package/dist/relay/message-buffer.js.map +0 -1
  84. package/dist/relay/rest-api.d.ts +0 -68
  85. package/dist/relay/rest-api.d.ts.map +0 -1
  86. package/dist/relay/rest-api.js +0 -225
  87. package/dist/relay/rest-api.js.map +0 -1
  88. package/dist/relay/run-relay.d.ts +0 -33
  89. package/dist/relay/run-relay.d.ts.map +0 -1
  90. package/dist/relay/run-relay.js +0 -57
  91. package/dist/relay/run-relay.js.map +0 -1
  92. package/dist/relay/server.d.ts +0 -91
  93. package/dist/relay/server.d.ts.map +0 -1
  94. package/dist/relay/server.js +0 -385
  95. package/dist/relay/server.js.map +0 -1
  96. package/dist/relay/store.d.ts +0 -19
  97. package/dist/relay/store.d.ts.map +0 -1
  98. package/dist/relay/store.js +0 -55
  99. package/dist/relay/store.js.map +0 -1
  100. package/dist/relay/types.d.ts +0 -35
  101. package/dist/relay/types.d.ts.map +0 -1
  102. package/dist/relay/types.js +0 -2
  103. package/dist/relay/types.js.map +0 -1
  104. package/dist/reputation/commit-reveal.d.ts +0 -45
  105. package/dist/reputation/commit-reveal.d.ts.map +0 -1
  106. package/dist/reputation/commit-reveal.js +0 -125
  107. package/dist/reputation/commit-reveal.js.map +0 -1
  108. package/dist/reputation/scoring.d.ts +0 -31
  109. package/dist/reputation/scoring.d.ts.map +0 -1
  110. package/dist/reputation/scoring.js +0 -105
  111. package/dist/reputation/scoring.js.map +0 -1
  112. package/dist/reputation/store.d.ts +0 -83
  113. package/dist/reputation/store.d.ts.map +0 -1
  114. package/dist/reputation/store.js +0 -202
  115. package/dist/reputation/store.js.map +0 -1
  116. package/dist/reputation/types.d.ts +0 -150
  117. package/dist/reputation/types.d.ts.map +0 -1
  118. package/dist/reputation/types.js +0 -113
  119. package/dist/reputation/types.js.map +0 -1
  120. package/dist/reputation/verification.d.ts +0 -28
  121. package/dist/reputation/verification.d.ts.map +0 -1
  122. package/dist/reputation/verification.js +0 -91
  123. package/dist/reputation/verification.js.map +0 -1
  124. package/dist/service.d.ts +0 -90
  125. package/dist/service.d.ts.map +0 -1
  126. package/dist/service.js +0 -176
  127. package/dist/service.js.map +0 -1
  128. package/dist/transport/http.d.ts +0 -41
  129. package/dist/transport/http.d.ts.map +0 -1
  130. package/dist/transport/http.js +0 -103
  131. package/dist/transport/http.js.map +0 -1
  132. package/dist/transport/peer-config.d.ts +0 -38
  133. package/dist/transport/peer-config.d.ts.map +0 -1
  134. package/dist/transport/peer-config.js +0 -41
  135. package/dist/transport/peer-config.js.map +0 -1
  136. package/dist/transport/relay.d.ts +0 -30
  137. package/dist/transport/relay.d.ts.map +0 -1
  138. package/dist/transport/relay.js +0 -85
  139. package/dist/transport/relay.js.map +0 -1
  140. package/dist/utils.d.ts +0 -40
  141. package/dist/utils.d.ts.map +0 -1
  142. package/dist/utils.js +0 -59
  143. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-discovery.js","sourceRoot":"","sources":["../../src/discovery/peer-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAiB,MAAM,wBAAwB,CAAC;AA8BvF;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAC5C,MAAM,CAAsB;IAEpC,YAAY,MAA2B;QACrC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,+CAA+C;QAC/C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,QAAkB,EAAE,IAAY,EAAE,EAAE;YACzE,IAAI,QAAQ,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBAC3C,IAAI,CAAC,cAAc,CAAC,QAA6C,CAAC,CAAC;YACrE,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,QAAyC,EAAE,IAAI,CAAC,CAAC;YACvE,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAA2C;QAChE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,OAAO,GAA2B,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,MAAM,QAAQ,GAAG,cAAc,CAC7B,mBAAmB,EACnB,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,OAAO,CACR,CAAC;QAEF,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,mCAAmC;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACnD,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;YAE/B,MAAM,cAAc,GAAG,CAAC,gBAA0B,EAAE,IAAY,EAAQ,EAAE;gBACxE,IAAI,gBAAgB,CAAC,IAAI,KAAK,oBAAoB;oBAC9C,gBAAgB,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE;oBAC1C,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;oBACxC,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,gBAAgB,CAAC,OAAkC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;YACzD,CAAC,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CACb,kBAA0B,EAC1B,iBAAyB,EACzB,QAAsF;QAEtF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAwB;YACnC,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,QAAQ,EAAE,QAAQ;YAC5B,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;YAC9D,OAAO,EAAE,QAAQ,EAAE,OAAO;YAC1B,UAAU,EAAE,QAAQ,EAAE,UAAU;SACjC,CAAC;QAEF,MAAM,QAAQ,GAAG,cAAc,CAC7B,eAAe,EACf,IAAI,CAAC,MAAM,CAAC,SAAS,EACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EACtB,OAAO,CACR,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAAuC,EAAE,IAAY;QAC1E,kBAAkB;QAClB,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,0BAA0B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,QAA2C;QAChE,kBAAkB;QAClB,MAAM,YAAY,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,+BAA+B,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACpF,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,IAAI,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;YAC9E,OAAO;QACT,CAAC;QAED,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;CACF"}
@@ -1,42 +0,0 @@
1
- /**
2
- * Represents an ed25519 key pair for agent identity
3
- */
4
- export interface KeyPair {
5
- publicKey: string;
6
- privateKey: string;
7
- }
8
- /**
9
- * Generates a new ed25519 key pair
10
- * @returns KeyPair with hex-encoded public and private keys
11
- */
12
- export declare function generateKeyPair(): KeyPair;
13
- /**
14
- * Signs a message with the private key
15
- * @param message - The message to sign (string or Buffer)
16
- * @param privateKeyHex - The private key in hex format
17
- * @returns Signature as hex string
18
- */
19
- export declare function signMessage(message: string | Buffer, privateKeyHex: string): string;
20
- /**
21
- * Verifies a signature with the public key
22
- * @param message - The original message (string or Buffer)
23
- * @param signatureHex - The signature in hex format
24
- * @param publicKeyHex - The public key in hex format
25
- * @returns true if signature is valid, false otherwise
26
- */
27
- export declare function verifySignature(message: string | Buffer, signatureHex: string, publicKeyHex: string): boolean;
28
- /**
29
- * Exports a key pair to a JSON-serializable format
30
- * @param keyPair - The key pair to export
31
- * @returns KeyPair object with hex-encoded keys
32
- */
33
- export declare function exportKeyPair(keyPair: KeyPair): KeyPair;
34
- /**
35
- * Imports a key pair from hex strings
36
- * @param publicKeyHex - The public key in hex format
37
- * @param privateKeyHex - The private key in hex format
38
- * @returns KeyPair object
39
- * @throws Error if keys are not valid hex strings
40
- */
41
- export declare function importKeyPair(publicKeyHex: string, privateKeyHex: string): KeyPair;
42
- //# sourceMappingURL=keypair.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/identity/keypair.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,OAAO,CAOzC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAWnF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,OAAO,CAcT;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKvD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAclF"}
@@ -1,83 +0,0 @@
1
- import { sign, verify, generateKeyPairSync } from 'node:crypto';
2
- /**
3
- * Generates a new ed25519 key pair
4
- * @returns KeyPair with hex-encoded public and private keys
5
- */
6
- export function generateKeyPair() {
7
- const { publicKey, privateKey } = generateKeyPairSync('ed25519');
8
- return {
9
- publicKey: publicKey.export({ type: 'spki', format: 'der' }).toString('hex'),
10
- privateKey: privateKey.export({ type: 'pkcs8', format: 'der' }).toString('hex'),
11
- };
12
- }
13
- /**
14
- * Signs a message with the private key
15
- * @param message - The message to sign (string or Buffer)
16
- * @param privateKeyHex - The private key in hex format
17
- * @returns Signature as hex string
18
- */
19
- export function signMessage(message, privateKeyHex) {
20
- const messageBuffer = typeof message === 'string' ? Buffer.from(message) : message;
21
- const privateKey = Buffer.from(privateKeyHex, 'hex');
22
- const signature = sign(null, messageBuffer, {
23
- key: privateKey,
24
- format: 'der',
25
- type: 'pkcs8',
26
- });
27
- return signature.toString('hex');
28
- }
29
- /**
30
- * Verifies a signature with the public key
31
- * @param message - The original message (string or Buffer)
32
- * @param signatureHex - The signature in hex format
33
- * @param publicKeyHex - The public key in hex format
34
- * @returns true if signature is valid, false otherwise
35
- */
36
- export function verifySignature(message, signatureHex, publicKeyHex) {
37
- const messageBuffer = typeof message === 'string' ? Buffer.from(message) : message;
38
- const signature = Buffer.from(signatureHex, 'hex');
39
- const publicKey = Buffer.from(publicKeyHex, 'hex');
40
- try {
41
- return verify(null, messageBuffer, {
42
- key: publicKey,
43
- format: 'der',
44
- type: 'spki',
45
- }, signature);
46
- }
47
- catch {
48
- return false;
49
- }
50
- }
51
- /**
52
- * Exports a key pair to a JSON-serializable format
53
- * @param keyPair - The key pair to export
54
- * @returns KeyPair object with hex-encoded keys
55
- */
56
- export function exportKeyPair(keyPair) {
57
- return {
58
- publicKey: keyPair.publicKey,
59
- privateKey: keyPair.privateKey,
60
- };
61
- }
62
- /**
63
- * Imports a key pair from hex strings
64
- * @param publicKeyHex - The public key in hex format
65
- * @param privateKeyHex - The private key in hex format
66
- * @returns KeyPair object
67
- * @throws Error if keys are not valid hex strings
68
- */
69
- export function importKeyPair(publicKeyHex, privateKeyHex) {
70
- // Validate that keys are valid hex strings
71
- const hexPattern = /^[0-9a-f]+$/i;
72
- if (!hexPattern.test(publicKeyHex)) {
73
- throw new Error('Invalid public key: must be a hex string');
74
- }
75
- if (!hexPattern.test(privateKeyHex)) {
76
- throw new Error('Invalid private key: must be a hex string');
77
- }
78
- return {
79
- publicKey: publicKeyHex,
80
- privateKey: privateKeyHex,
81
- };
82
- }
83
- //# sourceMappingURL=keypair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../src/identity/keypair.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAUhE;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAEjE,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAC5E,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KAChF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,OAAwB,EAAE,aAAqB;IACzE,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE;QAC1C,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAwB,EACxB,YAAoB,EACpB,YAAoB;IAEpB,MAAM,aAAa,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACnF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAEnD,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE;YACjC,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;SACb,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,YAAoB,EAAE,aAAqB;IACvE,2CAA2C;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO;QACL,SAAS,EAAE,YAAY;QACvB,UAAU,EAAE,aAAa;KAC1B,CAAC;AACJ,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,KAAK,UAAU,EACf,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
@@ -1,59 +0,0 @@
1
- /**
2
- * Message types on the Agora network.
3
- * Every piece of data flowing between agents is wrapped in an envelope.
4
- */
5
- export type MessageType = 'announce' | 'discover' | 'request' | 'response' | 'publish' | 'subscribe' | 'verify' | 'ack' | 'error' | 'paper_discovery' | 'peer_list_request' | 'peer_list_response' | 'peer_referral' | 'capability_announce' | 'capability_query' | 'capability_response' | 'commit' | 'reveal' | 'verification' | 'revocation' | 'reputation_query' | 'reputation_response';
6
- /**
7
- * The signed envelope that wraps every message on the network.
8
- * Content-addressed: the ID is the hash of the canonical payload.
9
- * Signed: every envelope carries a signature from the sender's private key.
10
- */
11
- export interface Envelope<T = unknown> {
12
- /** Content-addressed ID: SHA-256 hash of canonical payload */
13
- id: string;
14
- /** Message type */
15
- type: MessageType;
16
- /** Sender's public key (hex-encoded ed25519) */
17
- sender: string;
18
- /** Unix timestamp (ms) when the message was created */
19
- timestamp: number;
20
- /** Optional: ID of the message this is responding to */
21
- inReplyTo?: string;
22
- /** The actual payload */
23
- payload: T;
24
- /** ed25519 signature over the canonical form (hex-encoded) */
25
- signature: string;
26
- }
27
- /**
28
- * Canonical form of an envelope for signing/hashing.
29
- * Deterministic JSON serialization: recursively sorted keys, no whitespace.
30
- */
31
- export declare function canonicalize(type: MessageType, sender: string, timestamp: number, payload: unknown, inReplyTo?: string): string;
32
- /**
33
- * Compute the content-addressed ID for a message.
34
- */
35
- export declare function computeId(canonical: string): string;
36
- /**
37
- * Create a signed envelope.
38
- * @param type - Message type
39
- * @param sender - Sender's public key (hex)
40
- * @param privateKey - Sender's private key (hex) for signing
41
- * @param payload - The message payload
42
- * @param timestamp - Timestamp for the envelope (ms), defaults to Date.now()
43
- * @param inReplyTo - Optional ID of the message being replied to
44
- * @returns A signed Envelope
45
- */
46
- export declare function createEnvelope<T>(type: MessageType, sender: string, privateKey: string, payload: T, timestamp?: number, inReplyTo?: string): Envelope<T>;
47
- /**
48
- * Verify an envelope's integrity and authenticity.
49
- * Checks:
50
- * 1. Canonical form matches the ID (content-addressing)
51
- * 2. Signature is valid for the sender's public key
52
- *
53
- * @returns Object with `valid` boolean and optional `reason` for failure
54
- */
55
- export declare function verifyEnvelope(envelope: Envelope): {
56
- valid: boolean;
57
- reason?: string;
58
- };
59
- //# sourceMappingURL=envelope.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/message/envelope.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB,UAAU,GACV,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,WAAW,GACX,QAAQ,GACR,KAAK,GACL,OAAO,GACP,iBAAiB,GACjB,mBAAmB,GACnB,oBAAoB,GACpB,eAAe,GACf,qBAAqB,GACrB,kBAAkB,GAClB,qBAAqB,GACrB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,kBAAkB,GAClB,qBAAqB,CAAC;AAE1B;;;;GAIG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACnC,8DAA8D;IAC9D,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,OAAO,EAAE,CAAC,CAAC;IACX,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;CACnB;AAgBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAM/H;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAC9B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,CAAC,EACV,SAAS,GAAE,MAAmB,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,QAAQ,CAAC,CAAC,CAAC,CAcb;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAmBtF"}
@@ -1,83 +0,0 @@
1
- import { createHash } from 'node:crypto';
2
- import { signMessage, verifySignature } from '../identity/keypair.js';
3
- /**
4
- * Deterministic JSON serialization with recursively sorted keys.
5
- */
6
- function stableStringify(value) {
7
- if (value === null || value === undefined)
8
- return JSON.stringify(value);
9
- if (typeof value !== 'object')
10
- return JSON.stringify(value);
11
- if (Array.isArray(value)) {
12
- return '[' + value.map(stableStringify).join(',') + ']';
13
- }
14
- const keys = Object.keys(value).sort();
15
- const pairs = keys.map(k => JSON.stringify(k) + ':' + stableStringify(value[k]));
16
- return '{' + pairs.join(',') + '}';
17
- }
18
- /**
19
- * Canonical form of an envelope for signing/hashing.
20
- * Deterministic JSON serialization: recursively sorted keys, no whitespace.
21
- */
22
- export function canonicalize(type, sender, timestamp, payload, inReplyTo) {
23
- const obj = { payload, sender, timestamp, type };
24
- if (inReplyTo !== undefined) {
25
- obj.inReplyTo = inReplyTo;
26
- }
27
- return stableStringify(obj);
28
- }
29
- /**
30
- * Compute the content-addressed ID for a message.
31
- */
32
- export function computeId(canonical) {
33
- return createHash('sha256').update(canonical).digest('hex');
34
- }
35
- /**
36
- * Create a signed envelope.
37
- * @param type - Message type
38
- * @param sender - Sender's public key (hex)
39
- * @param privateKey - Sender's private key (hex) for signing
40
- * @param payload - The message payload
41
- * @param timestamp - Timestamp for the envelope (ms), defaults to Date.now()
42
- * @param inReplyTo - Optional ID of the message being replied to
43
- * @returns A signed Envelope
44
- */
45
- export function createEnvelope(type, sender, privateKey, payload, timestamp = Date.now(), inReplyTo) {
46
- const canonical = canonicalize(type, sender, timestamp, payload, inReplyTo);
47
- const id = computeId(canonical);
48
- const signature = signMessage(canonical, privateKey);
49
- return {
50
- id,
51
- type,
52
- sender,
53
- timestamp,
54
- ...(inReplyTo !== undefined ? { inReplyTo } : {}),
55
- payload,
56
- signature,
57
- };
58
- }
59
- /**
60
- * Verify an envelope's integrity and authenticity.
61
- * Checks:
62
- * 1. Canonical form matches the ID (content-addressing)
63
- * 2. Signature is valid for the sender's public key
64
- *
65
- * @returns Object with `valid` boolean and optional `reason` for failure
66
- */
67
- export function verifyEnvelope(envelope) {
68
- const { id, type, sender, timestamp, payload, signature, inReplyTo } = envelope;
69
- // Reconstruct canonical form
70
- const canonical = canonicalize(type, sender, timestamp, payload, inReplyTo);
71
- // Check content-addressed ID
72
- const expectedId = computeId(canonical);
73
- if (id !== expectedId) {
74
- return { valid: false, reason: 'id_mismatch' };
75
- }
76
- // Check signature
77
- const sigValid = verifySignature(canonical, signature, sender);
78
- if (!sigValid) {
79
- return { valid: false, reason: 'signature_invalid' };
80
- }
81
- return { valid: true };
82
- }
83
- //# sourceMappingURL=envelope.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelope.js","sourceRoot":"","sources":["../../src/message/envelope.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Payload for 'paper_discovery' messages.
3
- * An agent publishes a discovered academic paper to the network.
4
- * Each paper gets its own envelope for easy referencing and threading.
5
- */
6
- export interface PaperDiscoveryPayload {
7
- /** arXiv identifier (e.g. "2501.12345") */
8
- arxiv_id: string;
9
- /** Paper title */
10
- title: string;
11
- /** List of author names */
12
- authors: string[];
13
- /** Key contribution in 1-2 sentences */
14
- claim: string;
15
- /** Confidence score (0-1) in the relevance/importance assessment */
16
- confidence: number;
17
- /** Tags describing relevance domains */
18
- relevance_tags: string[];
19
- /** Agent ID of the discoverer */
20
- discoverer: string;
21
- /** ISO 8601 timestamp of discovery */
22
- timestamp: string;
23
- /** URL to the abstract page */
24
- abstract_url: string;
25
- /** URL to the PDF (optional) */
26
- pdf_url?: string;
27
- }
28
- //# sourceMappingURL=paper-discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paper-discovery.d.ts","sourceRoot":"","sources":["../../../src/message/types/paper-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=paper-discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"paper-discovery.js","sourceRoot":"","sources":["../../../src/message/types/paper-discovery.ts"],"names":[],"mappings":""}
@@ -1,78 +0,0 @@
1
- /**
2
- * Peer discovery message types for the Agora network.
3
- */
4
- /**
5
- * Request peer list from relay
6
- */
7
- export interface PeerListRequestPayload {
8
- /** Optional filters */
9
- filters?: {
10
- /** Only peers seen in last N ms */
11
- activeWithin?: number;
12
- /** Maximum peers to return */
13
- limit?: number;
14
- };
15
- }
16
- /**
17
- * Relay responds with connected peers
18
- */
19
- export interface PeerListResponsePayload {
20
- /** List of known peers */
21
- peers: Array<{
22
- /** Peer's Ed25519 public key */
23
- publicKey: string;
24
- /** Optional metadata (if peer announced) */
25
- metadata?: {
26
- name?: string;
27
- version?: string;
28
- capabilities?: string[];
29
- };
30
- /** Last seen timestamp (ms) */
31
- lastSeen: number;
32
- }>;
33
- /** Total peer count (may be > peers.length if limited) */
34
- totalPeers: number;
35
- /** Relay's public key (for trust verification) */
36
- relayPublicKey: string;
37
- }
38
- /**
39
- * Agent recommends another agent
40
- */
41
- export interface PeerReferralPayload {
42
- /** Referred peer's public key */
43
- publicKey: string;
44
- /** Optional endpoint (if known) */
45
- endpoint?: string;
46
- /** Optional metadata */
47
- metadata?: {
48
- name?: string;
49
- version?: string;
50
- capabilities?: string[];
51
- };
52
- /** Referrer's comment */
53
- comment?: string;
54
- /** Trust hint (RFC-001 integration) */
55
- trustScore?: number;
56
- }
57
- /**
58
- * Validate PeerListRequestPayload
59
- */
60
- export declare function validatePeerListRequest(payload: unknown): {
61
- valid: boolean;
62
- errors: string[];
63
- };
64
- /**
65
- * Validate PeerListResponsePayload
66
- */
67
- export declare function validatePeerListResponse(payload: unknown): {
68
- valid: boolean;
69
- errors: string[];
70
- };
71
- /**
72
- * Validate PeerReferralPayload
73
- */
74
- export declare function validatePeerReferral(payload: unknown): {
75
- valid: boolean;
76
- errors: string[];
77
- };
78
- //# sourceMappingURL=peer-discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-discovery.d.ts","sourceRoot":"","sources":["../../../src/message/types/peer-discovery.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,OAAO,CAAC,EAAE;QACR,mCAAmC;QACnC,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,8BAA8B;QAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0BAA0B;IAC1B,KAAK,EAAE,KAAK,CAAC;QACX,gCAAgC;QAChC,SAAS,EAAE,MAAM,CAAC;QAClB,4CAA4C;QAC5C,QAAQ,CAAC,EAAE;YACT,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;SACzB,CAAC;QACF,+BAA+B;QAC/B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IACH,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wBAAwB;IACxB,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAyB9F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAqC/F;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA2B3F"}
@@ -1,90 +0,0 @@
1
- /**
2
- * Peer discovery message types for the Agora network.
3
- */
4
- /**
5
- * Validate PeerListRequestPayload
6
- */
7
- export function validatePeerListRequest(payload) {
8
- const errors = [];
9
- if (typeof payload !== 'object' || payload === null) {
10
- errors.push('Payload must be an object');
11
- return { valid: false, errors };
12
- }
13
- const p = payload;
14
- if (p.filters !== undefined) {
15
- if (typeof p.filters !== 'object' || p.filters === null) {
16
- errors.push('filters must be an object');
17
- }
18
- else {
19
- const filters = p.filters;
20
- if (filters.activeWithin !== undefined && typeof filters.activeWithin !== 'number') {
21
- errors.push('filters.activeWithin must be a number');
22
- }
23
- if (filters.limit !== undefined && typeof filters.limit !== 'number') {
24
- errors.push('filters.limit must be a number');
25
- }
26
- }
27
- }
28
- return { valid: errors.length === 0, errors };
29
- }
30
- /**
31
- * Validate PeerListResponsePayload
32
- */
33
- export function validatePeerListResponse(payload) {
34
- const errors = [];
35
- if (typeof payload !== 'object' || payload === null) {
36
- errors.push('Payload must be an object');
37
- return { valid: false, errors };
38
- }
39
- const p = payload;
40
- if (!Array.isArray(p.peers)) {
41
- errors.push('peers must be an array');
42
- }
43
- else {
44
- p.peers.forEach((peer, index) => {
45
- if (typeof peer !== 'object' || peer === null) {
46
- errors.push(`peers[${index}] must be an object`);
47
- return;
48
- }
49
- const peerObj = peer;
50
- if (typeof peerObj.publicKey !== 'string') {
51
- errors.push(`peers[${index}].publicKey must be a string`);
52
- }
53
- if (typeof peerObj.lastSeen !== 'number') {
54
- errors.push(`peers[${index}].lastSeen must be a number`);
55
- }
56
- });
57
- }
58
- if (typeof p.totalPeers !== 'number') {
59
- errors.push('totalPeers must be a number');
60
- }
61
- if (typeof p.relayPublicKey !== 'string') {
62
- errors.push('relayPublicKey must be a string');
63
- }
64
- return { valid: errors.length === 0, errors };
65
- }
66
- /**
67
- * Validate PeerReferralPayload
68
- */
69
- export function validatePeerReferral(payload) {
70
- const errors = [];
71
- if (typeof payload !== 'object' || payload === null) {
72
- errors.push('Payload must be an object');
73
- return { valid: false, errors };
74
- }
75
- const p = payload;
76
- if (typeof p.publicKey !== 'string') {
77
- errors.push('publicKey must be a string');
78
- }
79
- if (p.endpoint !== undefined && typeof p.endpoint !== 'string') {
80
- errors.push('endpoint must be a string');
81
- }
82
- if (p.comment !== undefined && typeof p.comment !== 'string') {
83
- errors.push('comment must be a string');
84
- }
85
- if (p.trustScore !== undefined && typeof p.trustScore !== 'number') {
86
- errors.push('trustScore must be a number');
87
- }
88
- return { valid: errors.length === 0, errors };
89
- }
90
- //# sourceMappingURL=peer-discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"peer-discovery.js","sourceRoot":"","sources":["../../../src/message/types/peer-discovery.ts"],"names":[],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { EventEmitter } from 'node:events';
2
- import type { KeyPair } from '../identity/keypair.js';
3
- import type { Envelope } from '../message/envelope.js';
4
- import type { AnnouncePayload } from '../registry/messages.js';
5
- /**
6
- * Events emitted by PeerClient
7
- */
8
- export interface PeerClientEvents {
9
- 'connected': (publicKey: string) => void;
10
- 'disconnected': () => void;
11
- 'message-received': (envelope: Envelope) => void;
12
- 'error': (error: Error) => void;
13
- }
14
- /**
15
- * WebSocket client for connecting to peers
16
- */
17
- export declare class PeerClient extends EventEmitter {
18
- private socket;
19
- private identity;
20
- private announcePayload;
21
- private url;
22
- private peerPublicKey;
23
- private reconnectAttempts;
24
- private maxReconnectAttempts;
25
- private baseReconnectDelay;
26
- private reconnectTimeout;
27
- private shouldReconnect;
28
- constructor(url: string, identity: KeyPair, announcePayload: AnnouncePayload);
29
- /**
30
- * Connect to the peer
31
- */
32
- connect(): void;
33
- /**
34
- * Disconnect from the peer
35
- */
36
- disconnect(): void;
37
- /**
38
- * Send a message to the peer
39
- */
40
- send(envelope: Envelope): boolean;
41
- /**
42
- * Check if connected to peer
43
- */
44
- isConnected(): boolean;
45
- /**
46
- * Get the peer's public key (if connected)
47
- */
48
- getPeerPublicKey(): string | null;
49
- }
50
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/peer/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACjD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,YAAY;IAC1C,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,eAAe,CAAQ;gBAEnB,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe;IAO5E;;OAEG;IACH,OAAO,IAAI,IAAI;IAqFf;;OAEG;IACH,UAAU,IAAI,IAAI;IAgBlB;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAcjC;;OAEG;IACH,WAAW,IAAI,OAAO;IAMtB;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAGlC"}