@drakon-systems/ekho-sdk 0.6.1 → 0.7.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 (47) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +4 -0
  3. package/dist/esm/identity/index.d.ts +5 -0
  4. package/dist/esm/identity/index.d.ts.map +1 -0
  5. package/dist/esm/identity/index.js +11 -0
  6. package/dist/esm/identity/index.js.map +1 -0
  7. package/dist/esm/identity/primitives.d.ts +53 -0
  8. package/dist/esm/identity/primitives.d.ts.map +1 -0
  9. package/dist/esm/identity/primitives.js +116 -0
  10. package/dist/esm/identity/primitives.js.map +1 -0
  11. package/dist/esm/identity/store.d.ts +67 -0
  12. package/dist/esm/identity/store.d.ts.map +1 -0
  13. package/dist/esm/identity/store.js +116 -0
  14. package/dist/esm/identity/store.js.map +1 -0
  15. package/dist/esm/identity/verification.d.ts +152 -0
  16. package/dist/esm/identity/verification.d.ts.map +1 -0
  17. package/dist/esm/identity/verification.js +492 -0
  18. package/dist/esm/identity/verification.js.map +1 -0
  19. package/dist/esm/identity/verify.d.ts +41 -0
  20. package/dist/esm/identity/verify.d.ts.map +1 -0
  21. package/dist/esm/identity/verify.js +92 -0
  22. package/dist/esm/identity/verify.js.map +1 -0
  23. package/dist/esm/types.d.ts +2 -0
  24. package/dist/esm/types.d.ts.map +1 -1
  25. package/dist/identity/index.d.ts +5 -0
  26. package/dist/identity/index.d.ts.map +1 -0
  27. package/dist/identity/index.js +27 -0
  28. package/dist/identity/index.js.map +1 -0
  29. package/dist/identity/primitives.d.ts +53 -0
  30. package/dist/identity/primitives.d.ts.map +1 -0
  31. package/dist/identity/primitives.js +133 -0
  32. package/dist/identity/primitives.js.map +1 -0
  33. package/dist/identity/store.d.ts +67 -0
  34. package/dist/identity/store.d.ts.map +1 -0
  35. package/dist/identity/store.js +127 -0
  36. package/dist/identity/store.js.map +1 -0
  37. package/dist/identity/verification.d.ts +152 -0
  38. package/dist/identity/verification.d.ts.map +1 -0
  39. package/dist/identity/verification.js +503 -0
  40. package/dist/identity/verification.js.map +1 -0
  41. package/dist/identity/verify.d.ts +41 -0
  42. package/dist/identity/verify.d.ts.map +1 -0
  43. package/dist/identity/verify.js +96 -0
  44. package/dist/identity/verify.js.map +1 -0
  45. package/dist/types.d.ts +2 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/package.json +11 -1
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ // Inbound message verification — the agent independently decides whether to trust
3
+ // a message, rather than trusting the relay's attribution. Mirrors the Python
4
+ // plugin's ekho.verify byte-for-byte (operator key pinned; peer key must be
5
+ // operator-endorsed). Same 7 binding checks.
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MAX_FUTURE_SKEW_SECONDS = exports.MAX_PAST_SKEW_SECONDS = void 0;
8
+ exports.verifyInbound = verifyInbound;
9
+ const primitives_js_1 = require("./primitives.js");
10
+ // The past-window must cover the relay's max message TTL (86400s) plus delivery
11
+ // slack: the relay legitimately holds a message for its whole TTL while the
12
+ // recipient is down (gateway restart, sleeping laptop), and 300s of "staleness"
13
+ // was silently discarding every signed peer message delivered 5-15+ min late —
14
+ // acked but never waking the recipient. Replay is defended by the nonce burn
15
+ // and the relay's server-side replay_nonces, not by this window. The
16
+ // future-window stays tight: a sent_at ahead of our clock is only clock skew.
17
+ exports.MAX_PAST_SKEW_SECONDS = 86400 + 300;
18
+ exports.MAX_FUTURE_SKEW_SECONDS = 300;
19
+ function verifyInbound(msg, opts) {
20
+ const isOperator = msg.sender_kind === "operator";
21
+ const kind = isOperator ? "operator" : "peer";
22
+ const keyIdOf = msg.key_id ?? null;
23
+ const fail = (reason) => ({ verified: false, kind, reason, keyId: keyIdOf });
24
+ const canonical = msg.sig_canonical;
25
+ const sig = isOperator ? msg.operator_sig : msg.agent_sig;
26
+ if (!sig || !canonical || !msg.key_id)
27
+ return fail("unsigned");
28
+ // 1. Resolve the signer's public key (peers must be operator-rooted).
29
+ let signerPub;
30
+ if (isOperator) {
31
+ const pub = opts.operatorKeys[msg.key_id];
32
+ if (!pub)
33
+ return fail("unknown-operator-key");
34
+ signerPub = pub;
35
+ }
36
+ else {
37
+ const entry = opts.rosterByAgent[msg.sender_agent_id ?? ""];
38
+ if (!entry || !entry.identity_public_key || entry.key_id !== msg.key_id) {
39
+ return fail("unknown-sender-key");
40
+ }
41
+ if (!entry.endorsed_by_key_id || !entry.endorsement_sig)
42
+ return fail("sender-key-unendorsed");
43
+ const endorserPub = opts.operatorKeys[entry.endorsed_by_key_id];
44
+ if (!endorserPub)
45
+ return fail("endorser-not-pinned");
46
+ const endorsement = (0, primitives_js_1.agentKeyEndorsementPayload)(opts.fleetId, msg.sender_agent_id ?? "", entry.key_id ?? "", entry.identity_public_key);
47
+ if (!(0, primitives_js_1.verifyCanonical)(endorsement, entry.endorsement_sig, (0, primitives_js_1.fromB64url)(endorserPub))) {
48
+ return fail("bad-endorsement");
49
+ }
50
+ signerPub = entry.identity_public_key;
51
+ }
52
+ // 2. The signature itself must verify over the canonical payload.
53
+ if (!(0, primitives_js_1.verifyCanonical)(canonical, sig, (0, primitives_js_1.fromB64url)(signerPub)))
54
+ return fail("bad-signature");
55
+ // 3-7. Bind the signed payload to THIS message.
56
+ const c = canonical;
57
+ if (c.key_id !== msg.key_id)
58
+ return fail("key-id-mismatch");
59
+ if (c.fleet_id !== opts.fleetId)
60
+ return fail("fleet-mismatch");
61
+ if (!isOperator && c.sender_agent_id !== msg.sender_agent_id)
62
+ return fail("sender-mismatch");
63
+ const recipient = (c.recipient ?? {});
64
+ if (recipient.kind === "agent" && recipient.id !== opts.selfAgentId)
65
+ return fail("recipient-mismatch");
66
+ const text = typeof msg.body?.text === "string" ? msg.body.text : "";
67
+ if (c.body_sha256 !== (0, primitives_js_1.sha256Hex)(text))
68
+ return fail("body-mismatch");
69
+ // v2 envelopes (#9) additionally bind type, priority and attachments — a
70
+ // relay relabelling a message or swapping its attachments breaks the binding.
71
+ // v1 envelopes (older signers) skip these checks during the transition.
72
+ if (Number(c.v ?? 1) >= 2) {
73
+ if (c.message_type !== (msg.message_type ?? ""))
74
+ return fail("type-mismatch");
75
+ if (c.priority !== (msg.priority ?? ""))
76
+ return fail("priority-mismatch");
77
+ const declared = Array.isArray(c.attachments) ? c.attachments.map(String).sort() : [];
78
+ const actual = Array.isArray(msg.body?.attachments) ? msg.body.attachments.map(String).sort() : [];
79
+ if (declared.length !== actual.length || declared.some((a, i) => a !== actual[i])) {
80
+ return fail("attachments-mismatch");
81
+ }
82
+ }
83
+ const sentAt = Date.parse(String(c.sent_at));
84
+ if (Number.isNaN(sentAt))
85
+ return fail("bad-timestamp");
86
+ const ageMs = opts.now.getTime() - sentAt;
87
+ if (ageMs > (opts.maxSkewSeconds ?? exports.MAX_PAST_SKEW_SECONDS) * 1000 ||
88
+ -ageMs > (opts.maxFutureSkewSeconds ?? exports.MAX_FUTURE_SKEW_SECONDS) * 1000) {
89
+ return fail("stale");
90
+ }
91
+ const nonce = c.nonce;
92
+ if (!nonce || opts.seenNonces.has(String(nonce)))
93
+ return fail("replay");
94
+ return { verified: true, kind, reason: null, keyId: msg.key_id };
95
+ }
96
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/identity/verify.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -77,6 +77,8 @@ export type RosterEntry = {
77
77
  display_name: string;
78
78
  runtime: string;
79
79
  status: string;
80
+ /** Current quarantine category: heartbeat_timeout, rate_limit_abuse, or operator; null otherwise. */
81
+ quarantine_reason?: string | null;
80
82
  };
81
83
  export type InboxResponse = {
82
84
  messages: InboxMessage[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drakon-systems/ekho-sdk",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Agent SDK for Ekho — the private communication layer for distributed AI agents.",
5
5
  "license": "MIT",
6
6
  "author": "Drakon Systems <hello@drakonsystems.com> (https://drakonsystems.com)",
@@ -32,6 +32,16 @@
32
32
  "default": "./dist/index.js"
33
33
  }
34
34
  },
35
+ "./identity": {
36
+ "import": {
37
+ "types": "./dist/esm/identity/index.d.ts",
38
+ "default": "./dist/esm/identity/index.js"
39
+ },
40
+ "require": {
41
+ "types": "./dist/identity/index.d.ts",
42
+ "default": "./dist/identity/index.js"
43
+ }
44
+ },
35
45
  "./package.json": "./package.json"
36
46
  },
37
47
  "files": [