@rookdaemon/agora 0.2.2 → 0.2.4

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 (56) hide show
  1. package/README.md +470 -0
  2. package/dist/cli.js +238 -9
  3. package/dist/cli.js.map +1 -1
  4. package/dist/index.d.ts +5 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +5 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/message/envelope.d.ts +3 -2
  9. package/dist/message/envelope.d.ts.map +1 -1
  10. package/dist/message/envelope.js +2 -2
  11. package/dist/message/envelope.js.map +1 -1
  12. package/dist/registry/discovery-service.d.ts +1 -1
  13. package/dist/registry/discovery-service.d.ts.map +1 -1
  14. package/dist/registry/discovery-service.js +3 -3
  15. package/dist/registry/discovery-service.js.map +1 -1
  16. package/dist/registry/peer-store.d.ts +2 -1
  17. package/dist/registry/peer-store.d.ts.map +1 -1
  18. package/dist/registry/peer-store.js +3 -3
  19. package/dist/registry/peer-store.js.map +1 -1
  20. package/dist/relay/server.d.ts.map +1 -1
  21. package/dist/relay/server.js +1 -1
  22. package/dist/relay/server.js.map +1 -1
  23. package/dist/reputation/commit-reveal.d.ts +45 -0
  24. package/dist/reputation/commit-reveal.d.ts.map +1 -0
  25. package/dist/reputation/commit-reveal.js +125 -0
  26. package/dist/reputation/commit-reveal.js.map +1 -0
  27. package/dist/reputation/scoring.d.ts +31 -0
  28. package/dist/reputation/scoring.d.ts.map +1 -0
  29. package/dist/reputation/scoring.js +105 -0
  30. package/dist/reputation/scoring.js.map +1 -0
  31. package/dist/reputation/store.d.ts +83 -0
  32. package/dist/reputation/store.d.ts.map +1 -0
  33. package/dist/reputation/store.js +202 -0
  34. package/dist/reputation/store.js.map +1 -0
  35. package/dist/reputation/types.d.ts +150 -0
  36. package/dist/reputation/types.d.ts.map +1 -0
  37. package/dist/reputation/types.js +113 -0
  38. package/dist/reputation/types.js.map +1 -0
  39. package/dist/reputation/verification.d.ts +28 -0
  40. package/dist/reputation/verification.d.ts.map +1 -0
  41. package/dist/reputation/verification.js +91 -0
  42. package/dist/reputation/verification.js.map +1 -0
  43. package/dist/transport/http.d.ts.map +1 -1
  44. package/dist/transport/http.js +1 -1
  45. package/dist/transport/http.js.map +1 -1
  46. package/dist/transport/peer-config.d.ts +5 -1
  47. package/dist/transport/peer-config.d.ts.map +1 -1
  48. package/dist/transport/peer-config.js.map +1 -1
  49. package/dist/transport/relay.d.ts.map +1 -1
  50. package/dist/transport/relay.js +2 -2
  51. package/dist/transport/relay.js.map +1 -1
  52. package/dist/utils.d.ts +30 -0
  53. package/dist/utils.d.ts.map +1 -1
  54. package/dist/utils.js +47 -0
  55. package/dist/utils.js.map +1 -1
  56. package/package.json +2 -2
@@ -2,8 +2,12 @@ export interface PeerConfigFile {
2
2
  identity: {
3
3
  publicKey: string;
4
4
  privateKey: string;
5
+ name?: string;
6
+ };
7
+ relay?: string | {
8
+ url: string;
9
+ name?: string;
5
10
  };
6
- relay?: string;
7
11
  peers: Record<string, {
8
12
  url?: string;
9
13
  token?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"peer-config.d.ts","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAGzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAc3D"}
1
+ {"version":3,"file":"peer-config.d.ts","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,GAAG;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QACpB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;CACJ;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAG3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAGzE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAc3D"}
@@ -1 +1 @@
1
- {"version":3,"file":"peer-config.js","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAgBzD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAsB;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,iDAAiD;IACjD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAmB;QAC7B,QAAQ;QACR,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"peer-config.js","sourceRoot":"","sources":["../../src/transport/peer-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoBzD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,MAAsB;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChD,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,iDAAiD;IACjD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,MAAM,GAAmB;QAC7B,QAAQ;QACR,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/transport/relay.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAiG1C"}
1
+ {"version":3,"file":"relay.d.ts","sourceRoot":"","sources":["../../src/transport/relay.ts"],"names":[],"mappings":"AACA,OAAO,EAAiC,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,2BAA2B;IAC3B,QAAQ,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,oBAAoB,EAC5B,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,OAAO,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmG1C"}
@@ -8,7 +8,7 @@ import { createEnvelope } from '../message/envelope.js';
8
8
  export async function sendViaRelay(config, peerPublicKey, type, payload, inReplyTo) {
9
9
  // If a persistent relay client is available, use it
10
10
  if (config.relayClient && config.relayClient.connected()) {
11
- const envelope = createEnvelope(type, config.identity.publicKey, config.identity.privateKey, payload, inReplyTo);
11
+ const envelope = createEnvelope(type, config.identity.publicKey, config.identity.privateKey, payload, Date.now(), inReplyTo);
12
12
  return config.relayClient.send(peerPublicKey, envelope);
13
13
  }
14
14
  // Otherwise, fall back to connect-per-message
@@ -46,7 +46,7 @@ export async function sendViaRelay(config, peerPublicKey, type, payload, inReply
46
46
  if (msg.type === 'registered' && !registered) {
47
47
  registered = true;
48
48
  // Create and sign the envelope
49
- const envelope = createEnvelope(type, config.identity.publicKey, config.identity.privateKey, payload, inReplyTo);
49
+ const envelope = createEnvelope(type, config.identity.publicKey, config.identity.privateKey, payload, Date.now(), inReplyTo);
50
50
  // Send message via relay
51
51
  const relayMsg = {
52
52
  type: 'message',
@@ -1 +1 @@
1
- {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/transport/relay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay.js","sourceRoot":"","sources":["../../src/transport/relay.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -7,4 +7,34 @@
7
7
  * @returns "..." followed by the last 8 characters of the key
8
8
  */
9
9
  export declare function shortKey(publicKey: string): string;
10
+ /**
11
+ * Resolves the name to broadcast when connecting to a relay.
12
+ * Priority order:
13
+ * 1. CLI --name flag
14
+ * 2. config.relay.name (if relay is an object with name property)
15
+ * 3. config.identity.name
16
+ * 4. undefined (no name broadcast)
17
+ *
18
+ * @param config - The Agora configuration (or compatible config with identity and optional relay)
19
+ * @param cliName - Optional name from CLI --name flag
20
+ * @returns The resolved name to broadcast, or undefined if none available
21
+ */
22
+ export declare function resolveBroadcastName(config: {
23
+ identity: {
24
+ name?: string;
25
+ };
26
+ relay?: {
27
+ name?: string;
28
+ } | string;
29
+ }, cliName?: string): string | undefined;
30
+ /**
31
+ * Formats a display name with short ID postfix.
32
+ * If name exists: "name (...3f8c2247)"
33
+ * If no name: "...3f8c2247" (short ID only)
34
+ *
35
+ * @param name - Optional name to display (should not be a short ID)
36
+ * @param publicKey - The public key to use for short ID
37
+ * @returns Formatted display string
38
+ */
39
+ export declare function formatDisplayName(name: string | undefined, publicKey: string): string;
10
40
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE;IAAE,QAAQ,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAA;CAAE,EAC3E,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAoBpB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAOrF"}
package/dist/utils.js CHANGED
@@ -9,4 +9,51 @@
9
9
  export function shortKey(publicKey) {
10
10
  return "..." + publicKey.slice(-8);
11
11
  }
12
+ /**
13
+ * Resolves the name to broadcast when connecting to a relay.
14
+ * Priority order:
15
+ * 1. CLI --name flag
16
+ * 2. config.relay.name (if relay is an object with name property)
17
+ * 3. config.identity.name
18
+ * 4. undefined (no name broadcast)
19
+ *
20
+ * @param config - The Agora configuration (or compatible config with identity and optional relay)
21
+ * @param cliName - Optional name from CLI --name flag
22
+ * @returns The resolved name to broadcast, or undefined if none available
23
+ */
24
+ export function resolveBroadcastName(config, cliName) {
25
+ // Priority 1: CLI --name flag
26
+ if (cliName) {
27
+ return cliName;
28
+ }
29
+ // Priority 2: config.relay.name (if relay is an object with name property)
30
+ if (config.relay) {
31
+ if (typeof config.relay === 'object' && config.relay.name) {
32
+ return config.relay.name;
33
+ }
34
+ }
35
+ // Priority 3: config.identity.name
36
+ if (config.identity.name) {
37
+ return config.identity.name;
38
+ }
39
+ // Priority 4: No name available
40
+ return undefined;
41
+ }
42
+ /**
43
+ * Formats a display name with short ID postfix.
44
+ * If name exists: "name (...3f8c2247)"
45
+ * If no name: "...3f8c2247" (short ID only)
46
+ *
47
+ * @param name - Optional name to display (should not be a short ID)
48
+ * @param publicKey - The public key to use for short ID
49
+ * @returns Formatted display string
50
+ */
51
+ export function formatDisplayName(name, publicKey) {
52
+ const shortId = shortKey(publicKey);
53
+ // If name is undefined, empty, or is already a short ID, return only short ID
54
+ if (!name || name.trim() === '' || name.startsWith('...')) {
55
+ return shortId;
56
+ }
57
+ return `${name} (${shortId})`;
58
+ }
12
59
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAiB;IACxC,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,SAAiB;IACxC,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA2E,EAC3E,OAAgB;IAEhB,8BAA8B;IAC9B,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2EAA2E;IAC3E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED,gCAAgC;IAChC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAwB,EAAE,SAAiB;IAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;IACpC,8EAA8E;IAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,IAAI,KAAK,OAAO,GAAG,CAAC;AAChC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rookdaemon/agora",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "A coordination network for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "scripts": {
12
12
  "build": "tsc",
13
- "test": "node --import tsx --test test/*.test.ts",
13
+ "test": "node --import tsx --test test/*.test.ts test/**/*.test.ts",
14
14
  "lint": "eslint src test --ext .ts",
15
15
  "prepublishOnly": "npm run lint && npm run build && npm test",
16
16
  "pretest": "npm run build"