@rookdaemon/agora 0.2.3 → 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 (53) hide show
  1. package/README.md +470 -0
  2. package/dist/cli.js +223 -2
  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/relay.d.ts.map +1 -1
  47. package/dist/transport/relay.js +2 -2
  48. package/dist/transport/relay.js.map +1 -1
  49. package/dist/utils.d.ts +1 -1
  50. package/dist/utils.d.ts.map +1 -1
  51. package/dist/utils.js +5 -4
  52. package/dist/utils.js.map +1 -1
  53. package/package.json +2 -2
@@ -74,11 +74,11 @@ export class PeerStore {
74
74
  * Remove peers that haven't been seen within the specified time window.
75
75
  *
76
76
  * @param maxAgeMs - Maximum age in milliseconds. Peers older than this will be removed.
77
+ * @param currentTime - Current timestamp (ms), defaults to Date.now()
77
78
  * @returns Number of peers removed
78
79
  */
79
- prune(maxAgeMs) {
80
- const now = Date.now();
81
- const cutoff = now - maxAgeMs;
80
+ prune(maxAgeMs, currentTime = Date.now()) {
81
+ const cutoff = currentTime - maxAgeMs;
82
82
  let removed = 0;
83
83
  for (const [publicKey, peer] of this.peers.entries()) {
84
84
  if (peer.lastSeen < cutoff) {
@@ -1 +1 @@
1
- {"version":3,"file":"peer-store.js","sourceRoot":"","sources":["../../src/registry/peer-store.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,SAAS;IACZ,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE7C;;;;;OAKG;IACH,eAAe,CAAC,IAAU;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACvE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,GAAW;QACnB,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAgB;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;QAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"peer-store.js","sourceRoot":"","sources":["../../src/registry/peer-store.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,OAAO,SAAS;IACZ,KAAK,GAAsB,IAAI,GAAG,EAAE,CAAC;IAE7C;;;;;OAKG;IACH,eAAe,CAAC,IAAU;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,SAAiB;QAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,SAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YACvE,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,GAAW;QACnB,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAgB,EAAE,cAAsB,IAAI,CAAC,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;QACtC,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACrD,IAAI,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/relay/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAmB,SAAS,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvF;;GAEG;AACH,UAAU,cAAc;IACtB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1E,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,QAAQ,CAAC,CAA4C;gBAEjD,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAKhE;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BlC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;OAEG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAIxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkMxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CA6D9B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/relay/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAmB,SAAS,EAAE,MAAM,IAAI,CAAC;AAChD,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvF;;GAEG;AACH,UAAU,cAAc;IACtB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,MAAM,EAAE,SAAS,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1E,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,YAAY;IAC3C,OAAO,CAAC,GAAG,CAAgC;IAC3C,OAAO,CAAC,MAAM,CAAqC;IACnD,OAAO,CAAC,QAAQ,CAAC,CAA4C;gBAEjD,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAKhE;;OAEG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BlC;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB3B;;OAEG;IACH,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAIxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkMxB;;OAEG;IACH,OAAO,CAAC,SAAS;IAWjB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CA8D9B"}
@@ -318,7 +318,7 @@ export class RelayServer extends EventEmitter {
318
318
  relayPublicKey: this.identity.publicKey,
319
319
  };
320
320
  // Create signed envelope
321
- const responseEnvelope = createEnvelope('peer_list_response', this.identity.publicKey, this.identity.privateKey, response, envelope.id // Reply to the request
321
+ const responseEnvelope = createEnvelope('peer_list_response', this.identity.publicKey, this.identity.privateKey, response, Date.now(), envelope.id // Reply to the request
322
322
  );
323
323
  // Send response
324
324
  const relayMessage = {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/relay/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/relay/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Commit-reveal pattern implementation for tamper-proof predictions.
3
+ * Agents commit to predictions before outcomes are known, then reveal after.
4
+ */
5
+ import type { CommitRecord, RevealRecord } from './types.js';
6
+ /**
7
+ * Create a commitment hash for a prediction
8
+ * @param prediction - The prediction string
9
+ * @returns SHA-256 hash of the prediction (hex string)
10
+ */
11
+ export declare function hashPrediction(prediction: string): string;
12
+ /**
13
+ * Create a signed commit record
14
+ * @param agent - Public key of the committing agent
15
+ * @param privateKey - Private key for signing
16
+ * @param domain - Domain of the prediction
17
+ * @param prediction - The prediction to commit to
18
+ * @param timestamp - Timestamp for the commit (ms)
19
+ * @param expiryMs - Expiry time in milliseconds from timestamp
20
+ * @returns Signed CommitRecord
21
+ */
22
+ export declare function createCommit(agent: string, privateKey: string, domain: string, prediction: string, timestamp: number, expiryMs: number): CommitRecord;
23
+ /**
24
+ * Create a signed reveal record
25
+ * @param agent - Public key of the revealing agent
26
+ * @param privateKey - Private key for signing
27
+ * @param commitmentId - ID of the original commit record
28
+ * @param prediction - The original prediction (plaintext)
29
+ * @param outcome - The observed outcome
30
+ * @param timestamp - Timestamp for the reveal (ms)
31
+ * @param evidence - Optional evidence for the outcome
32
+ * @returns Signed RevealRecord
33
+ */
34
+ export declare function createReveal(agent: string, privateKey: string, commitmentId: string, prediction: string, outcome: string, timestamp: number, evidence?: string): RevealRecord;
35
+ /**
36
+ * Verify a reveal against its commitment
37
+ * @param commit - The original commit record
38
+ * @param reveal - The reveal record
39
+ * @returns Object with valid flag and optional reason for failure
40
+ */
41
+ export declare function verifyReveal(commit: CommitRecord, reveal: RevealRecord): {
42
+ valid: boolean;
43
+ reason?: string;
44
+ };
45
+ //# sourceMappingURL=commit-reveal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-reveal.d.ts","sourceRoot":"","sources":["../../src/reputation/commit-reveal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG7D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,YAAY,CA0Bd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,CAkCd;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,YAAY,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAkCrC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Commit-reveal pattern implementation for tamper-proof predictions.
3
+ * Agents commit to predictions before outcomes are known, then reveal after.
4
+ */
5
+ import { createHash } from 'node:crypto';
6
+ import { createEnvelope } from '../message/envelope.js';
7
+ import { validateCommitRecord, validateRevealRecord } from './types.js';
8
+ /**
9
+ * Create a commitment hash for a prediction
10
+ * @param prediction - The prediction string
11
+ * @returns SHA-256 hash of the prediction (hex string)
12
+ */
13
+ export function hashPrediction(prediction) {
14
+ return createHash('sha256').update(prediction).digest('hex');
15
+ }
16
+ /**
17
+ * Create a signed commit record
18
+ * @param agent - Public key of the committing agent
19
+ * @param privateKey - Private key for signing
20
+ * @param domain - Domain of the prediction
21
+ * @param prediction - The prediction to commit to
22
+ * @param timestamp - Timestamp for the commit (ms)
23
+ * @param expiryMs - Expiry time in milliseconds from timestamp
24
+ * @returns Signed CommitRecord
25
+ */
26
+ export function createCommit(agent, privateKey, domain, prediction, timestamp, expiryMs) {
27
+ const commitment = hashPrediction(prediction);
28
+ const expiry = timestamp + expiryMs;
29
+ // Create the payload for signing
30
+ const payload = {
31
+ agent,
32
+ domain,
33
+ commitment,
34
+ timestamp,
35
+ expiry,
36
+ };
37
+ // Create signed envelope with type 'commit'
38
+ const envelope = createEnvelope('commit', agent, privateKey, payload, timestamp);
39
+ // Return commit record
40
+ return {
41
+ id: envelope.id,
42
+ agent,
43
+ domain,
44
+ commitment,
45
+ timestamp,
46
+ expiry,
47
+ signature: envelope.signature,
48
+ };
49
+ }
50
+ /**
51
+ * Create a signed reveal record
52
+ * @param agent - Public key of the revealing agent
53
+ * @param privateKey - Private key for signing
54
+ * @param commitmentId - ID of the original commit record
55
+ * @param prediction - The original prediction (plaintext)
56
+ * @param outcome - The observed outcome
57
+ * @param timestamp - Timestamp for the reveal (ms)
58
+ * @param evidence - Optional evidence for the outcome
59
+ * @returns Signed RevealRecord
60
+ */
61
+ export function createReveal(agent, privateKey, commitmentId, prediction, outcome, timestamp, evidence) {
62
+ // Create the payload for signing
63
+ const payload = {
64
+ agent,
65
+ commitmentId,
66
+ prediction,
67
+ outcome,
68
+ timestamp,
69
+ };
70
+ if (evidence !== undefined) {
71
+ payload.evidence = evidence;
72
+ }
73
+ // Create signed envelope with type 'reveal'
74
+ const envelope = createEnvelope('reveal', agent, privateKey, payload, timestamp);
75
+ // Return reveal record
76
+ const record = {
77
+ id: envelope.id,
78
+ agent,
79
+ commitmentId,
80
+ prediction,
81
+ outcome,
82
+ timestamp,
83
+ signature: envelope.signature,
84
+ };
85
+ if (evidence !== undefined) {
86
+ record.evidence = evidence;
87
+ }
88
+ return record;
89
+ }
90
+ /**
91
+ * Verify a reveal against its commitment
92
+ * @param commit - The original commit record
93
+ * @param reveal - The reveal record
94
+ * @returns Object with valid flag and optional reason for failure
95
+ */
96
+ export function verifyReveal(commit, reveal) {
97
+ // Validate structures
98
+ const commitValidation = validateCommitRecord(commit);
99
+ if (!commitValidation.valid) {
100
+ return { valid: false, reason: `Invalid commit: ${commitValidation.errors.join(', ')}` };
101
+ }
102
+ const revealValidation = validateRevealRecord(reveal);
103
+ if (!revealValidation.valid) {
104
+ return { valid: false, reason: `Invalid reveal: ${revealValidation.errors.join(', ')}` };
105
+ }
106
+ // Check that reveal references the correct commit
107
+ if (reveal.commitmentId !== commit.id) {
108
+ return { valid: false, reason: 'Reveal does not reference this commit' };
109
+ }
110
+ // Check that agents match
111
+ if (reveal.agent !== commit.agent) {
112
+ return { valid: false, reason: 'Reveal agent does not match commit agent' };
113
+ }
114
+ // Check that reveal is after commit expiry
115
+ if (reveal.timestamp < commit.expiry) {
116
+ return { valid: false, reason: 'Reveal timestamp is before commit expiry' };
117
+ }
118
+ // Verify that the prediction hash matches the commitment
119
+ const predictedHash = hashPrediction(reveal.prediction);
120
+ if (predictedHash !== commit.commitment) {
121
+ return { valid: false, reason: 'Prediction hash does not match commitment' };
122
+ }
123
+ return { valid: true };
124
+ }
125
+ //# sourceMappingURL=commit-reveal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-reveal.js","sourceRoot":"","sources":["../../src/reputation/commit-reveal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Trust score computation with exponential time decay.
3
+ * Domain-specific reputation scoring from verification history.
4
+ */
5
+ import type { VerificationRecord, TrustScore } from './types.js';
6
+ /**
7
+ * Exponential decay function for time-based reputation degradation.
8
+ * @param deltaTimeMs - Time since verification (milliseconds)
9
+ * @param lambda - Decay rate (default: ln(2)/70 ≈ 0.0099, giving 70-day half-life)
10
+ * @returns Weight multiplier (0-1)
11
+ */
12
+ export declare function decay(deltaTimeMs: number, lambda?: number): number;
13
+ /**
14
+ * Compute trust score for an agent in a specific domain
15
+ * @param agent - Public key of the agent being scored
16
+ * @param domain - Capability domain
17
+ * @param verifications - All verification records (will be filtered by target and domain)
18
+ * @param currentTime - Current timestamp (ms)
19
+ * @returns TrustScore object with computed reputation
20
+ */
21
+ export declare function computeTrustScore(agent: string, domain: string, verifications: VerificationRecord[], currentTime: number): TrustScore;
22
+ /**
23
+ * Compute trust scores for an agent across multiple domains
24
+ * @param agent - Public key of the agent being scored
25
+ * @param verifications - All verification records
26
+ * @param currentTime - Current timestamp (ms)
27
+ * @returns Map of domain to TrustScore
28
+ */
29
+ export declare function computeTrustScores(agent: string, verifications: VerificationRecord[], currentTime: number): Map<string, TrustScore>;
30
+ export declare const computeAllTrustScores: typeof computeTrustScores;
31
+ //# sourceMappingURL=scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/reputation/scoring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAmB,GAAG,MAAM,CAG5E;AAkBD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,kBAAkB,EAAE,EACnC,WAAW,EAAE,MAAM,GAClB,UAAU,CAwDZ;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,kBAAkB,EAAE,EACnC,WAAW,EAAE,MAAM,GAClB,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAezB;AAGD,eAAO,MAAM,qBAAqB,2BAAqB,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Trust score computation with exponential time decay.
3
+ * Domain-specific reputation scoring from verification history.
4
+ */
5
+ /**
6
+ * Exponential decay function for time-based reputation degradation.
7
+ * @param deltaTimeMs - Time since verification (milliseconds)
8
+ * @param lambda - Decay rate (default: ln(2)/70 ≈ 0.0099, giving 70-day half-life)
9
+ * @returns Weight multiplier (0-1)
10
+ */
11
+ export function decay(deltaTimeMs, lambda = Math.log(2) / 70) {
12
+ const deltaDays = deltaTimeMs / (1000 * 60 * 60 * 24);
13
+ return Math.exp(-lambda * deltaDays);
14
+ }
15
+ /**
16
+ * Compute verdict weight
17
+ * @param verdict - Verification verdict
18
+ * @returns Weight value (+1 for correct, -1 for incorrect, 0 for disputed)
19
+ */
20
+ function verdictWeight(verdict) {
21
+ switch (verdict) {
22
+ case 'correct':
23
+ return 1;
24
+ case 'incorrect':
25
+ return -1;
26
+ case 'disputed':
27
+ return 0;
28
+ }
29
+ }
30
+ /**
31
+ * Compute trust score for an agent in a specific domain
32
+ * @param agent - Public key of the agent being scored
33
+ * @param domain - Capability domain
34
+ * @param verifications - All verification records (will be filtered by target and domain)
35
+ * @param currentTime - Current timestamp (ms)
36
+ * @returns TrustScore object with computed reputation
37
+ */
38
+ export function computeTrustScore(agent, domain, verifications, currentTime) {
39
+ // Filter verifications for this agent and domain
40
+ const relevantVerifications = verifications.filter(v => v.target === agent && v.domain === domain);
41
+ if (relevantVerifications.length === 0) {
42
+ return {
43
+ agent,
44
+ domain,
45
+ score: 0,
46
+ verificationCount: 0,
47
+ lastVerified: 0,
48
+ topVerifiers: [],
49
+ };
50
+ }
51
+ // Compute weighted score with time decay
52
+ let totalWeight = 0;
53
+ const verifierWeights = new Map();
54
+ for (const verification of relevantVerifications) {
55
+ const deltaTime = currentTime - verification.timestamp;
56
+ const decayFactor = decay(deltaTime);
57
+ const verdict = verdictWeight(verification.verdict);
58
+ const weight = verdict * verification.confidence * decayFactor;
59
+ totalWeight += weight;
60
+ // Track verifier contributions
61
+ const currentVerifierWeight = verifierWeights.get(verification.verifier) || 0;
62
+ verifierWeights.set(verification.verifier, currentVerifierWeight + Math.abs(weight));
63
+ }
64
+ // Normalize score to 0-1 range
65
+ // Positive verifications push toward 1, negative push toward 0
66
+ const rawScore = totalWeight / Math.max(relevantVerifications.length, 1);
67
+ const normalizedScore = Math.max(0, Math.min(1, (rawScore + 1) / 2));
68
+ // Find most recent verification
69
+ const lastVerified = Math.max(...relevantVerifications.map(v => v.timestamp));
70
+ // Get top verifiers by absolute weight
71
+ const topVerifiers = Array.from(verifierWeights.entries())
72
+ .sort((a, b) => b[1] - a[1])
73
+ .slice(0, 5)
74
+ .map(([verifier]) => verifier);
75
+ return {
76
+ agent,
77
+ domain,
78
+ score: normalizedScore,
79
+ verificationCount: relevantVerifications.length,
80
+ lastVerified,
81
+ topVerifiers,
82
+ };
83
+ }
84
+ /**
85
+ * Compute trust scores for an agent across multiple domains
86
+ * @param agent - Public key of the agent being scored
87
+ * @param verifications - All verification records
88
+ * @param currentTime - Current timestamp (ms)
89
+ * @returns Map of domain to TrustScore
90
+ */
91
+ export function computeTrustScores(agent, verifications, currentTime) {
92
+ // Get unique domains for this agent
93
+ const domains = new Set(verifications
94
+ .filter(v => v.target === agent)
95
+ .map(v => v.domain));
96
+ const scores = new Map();
97
+ for (const domain of domains) {
98
+ const score = computeTrustScore(agent, domain, verifications, currentTime);
99
+ scores.set(domain, score);
100
+ }
101
+ return scores;
102
+ }
103
+ // Alias for backward compatibility
104
+ export const computeAllTrustScores = computeTrustScores;
105
+ //# sourceMappingURL=scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/reputation/scoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Local reputation store using JSONL append-only log.
3
+ * Stores verification records, commits, and reveals.
4
+ */
5
+ import type { VerificationRecord, CommitRecord, RevealRecord } from './types.js';
6
+ /**
7
+ * Reputation store with JSONL persistence
8
+ */
9
+ export declare class ReputationStore {
10
+ private filePath;
11
+ private verifications;
12
+ private commits;
13
+ private reveals;
14
+ private loaded;
15
+ constructor(filePath: string);
16
+ /**
17
+ * Load records from JSONL file
18
+ */
19
+ load(): Promise<void>;
20
+ /**
21
+ * Ensure the store is loaded
22
+ */
23
+ private ensureLoaded;
24
+ /**
25
+ * Append a record to the JSONL file
26
+ */
27
+ private appendToFile;
28
+ /**
29
+ * Add a verification record
30
+ */
31
+ addVerification(verification: VerificationRecord): Promise<void>;
32
+ /**
33
+ * Add a commit record
34
+ */
35
+ addCommit(commit: CommitRecord): Promise<void>;
36
+ /**
37
+ * Add a reveal record
38
+ */
39
+ addReveal(reveal: RevealRecord): Promise<void>;
40
+ /**
41
+ * Get all verifications
42
+ */
43
+ getVerifications(): Promise<VerificationRecord[]>;
44
+ /**
45
+ * Get verifications for a specific target
46
+ */
47
+ getVerificationsByTarget(target: string): Promise<VerificationRecord[]>;
48
+ /**
49
+ * Get verifications by domain
50
+ */
51
+ getVerificationsByDomain(domain: string): Promise<VerificationRecord[]>;
52
+ /**
53
+ * Get verifications for an agent (where they are the target of verification)
54
+ * This requires looking up the target message to find the agent
55
+ * For now, we'll return all verifications and let the caller filter
56
+ */
57
+ getVerificationsByDomainForAgent(domain: string): Promise<VerificationRecord[]>;
58
+ /**
59
+ * Get all commits
60
+ */
61
+ getCommits(): Promise<CommitRecord[]>;
62
+ /**
63
+ * Get commit by ID
64
+ */
65
+ getCommit(id: string): Promise<CommitRecord | null>;
66
+ /**
67
+ * Get commits by agent
68
+ */
69
+ getCommitsByAgent(agent: string): Promise<CommitRecord[]>;
70
+ /**
71
+ * Get all reveals
72
+ */
73
+ getReveals(): Promise<RevealRecord[]>;
74
+ /**
75
+ * Get reveal by commitment ID
76
+ */
77
+ getRevealByCommitment(commitmentId: string): Promise<RevealRecord | null>;
78
+ /**
79
+ * Get reveals by agent
80
+ */
81
+ getRevealsByAgent(agent: string): Promise<RevealRecord[]>;
82
+ }
83
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/reputation/store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWjF;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,MAAM,CAAS;gBAEX,QAAQ,EAAE,MAAM;IAI5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuD3B;;OAEG;YACW,YAAY;IAM1B;;OAEG;YACW,YAAY;IAS1B;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAKvD;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAK7E;;OAEG;IACG,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAK7E;;;;OAIG;IACG,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAIrF;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAK3C;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAKzD;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK/D;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAK3C;;OAEG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAK/E;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAIhE"}