agent-inbox 0.2.0 → 0.2.2

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.
package/dist/index.d.ts CHANGED
@@ -20,6 +20,8 @@ export { MapClient } from "./map/map-client.js";
20
20
  export { InboxMcpServer } from "./mcp/mcp-server.js";
21
21
  export { InboxMcpProxy } from "./mcp/mcp-proxy.js";
22
22
  export { MailJsonRpcServer } from "./jsonrpc/mail-server.js";
23
+ export { MAIL_TURN_RECEIVED_METHOD, buildMailTurnReceivedParams, type MailTurnReceivedParams, } from "./jsonrpc/mail-push-types.js";
24
+ export { createMailPushBridge, type MailPushBridge, type MailPushBridgeConfig, type MailPushSubscriber, } from "./jsonrpc/mail-push.js";
23
25
  export { PushNotifier, formatInboxMarkdown, parseCommand } from "./push/notifier.js";
24
26
  export type { InboxMessageEvent, NotifierConfig, InboxFileEntry } from "./push/notifier.js";
25
27
  export { ConnectionManager } from "./federation/connection-manager.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -23,6 +23,8 @@ export { MapClient } from "./map/map-client.js";
23
23
  export { InboxMcpServer } from "./mcp/mcp-server.js";
24
24
  export { InboxMcpProxy } from "./mcp/mcp-proxy.js";
25
25
  export { MailJsonRpcServer } from "./jsonrpc/mail-server.js";
26
+ export { MAIL_TURN_RECEIVED_METHOD, buildMailTurnReceivedParams, } from "./jsonrpc/mail-push-types.js";
27
+ export { createMailPushBridge, } from "./jsonrpc/mail-push.js";
26
28
  export { PushNotifier, formatInboxMarkdown, parseCommand } from "./push/notifier.js";
27
29
  export { ConnectionManager } from "./federation/connection-manager.js";
28
30
  export { WarmRegistry } from "./registry/warm-registry.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Wire-protocol constants and types for the `mail/turn.received` server-
3
+ * pushed notification.
4
+ *
5
+ * agent-inbox already owns the request/response side of the `mail/*`
6
+ * surface (`mail/create`, `mail/turn`, `mail/get`, etc.) via
7
+ * `MailJsonRpcServer`. The push side — when a turn lands in a
8
+ * conversation that has remote participants, push the turn to those
9
+ * remotes — was previously hand-rolled by consumers (notably OpenHive's
10
+ * `forwardTurnToSwarms`). This module standardizes the method name +
11
+ * payload shape so consumers all use the same wire shape.
12
+ *
13
+ * @module agent-inbox/jsonrpc/mail-push-types
14
+ */
15
+ import type { Turn, ContentType, MessageContent } from "../types.js";
16
+ /**
17
+ * The canonical JSON-RPC method name for server-pushed turn delivery.
18
+ * Use this constant rather than stringly-typing `'mail/turn.received'`.
19
+ */
20
+ export declare const MAIL_TURN_RECEIVED_METHOD = "mail/turn.received";
21
+ /**
22
+ * Wire-shape for the `mail/turn.received` notification's `params`.
23
+ * Consumers wiring custom fan-out should construct this exact shape so
24
+ * receivers can rely on field names + presence.
25
+ *
26
+ * Mirrors {@link Turn} field-for-field (with `turn_id` derived from
27
+ * `Turn.id` for clarity on the receiver side; the wire is a flat
28
+ * record, not a nested `{ turn: ... }` object).
29
+ */
30
+ export interface MailTurnReceivedParams {
31
+ conversation_id: string;
32
+ turn_id: string;
33
+ participant_id: string;
34
+ content_type: ContentType;
35
+ content: MessageContent;
36
+ thread_id?: string;
37
+ created_at: string;
38
+ }
39
+ /**
40
+ * Build a `MailTurnReceivedParams` payload from a stored {@link Turn}.
41
+ * Centralizes field-mapping so consumers can't drift from the canonical
42
+ * shape.
43
+ */
44
+ export declare function buildMailTurnReceivedParams(turn: Turn): MailTurnReceivedParams;
45
+ //# sourceMappingURL=mail-push-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-push-types.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/mail-push-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,WAAW,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,GAAG,sBAAsB,CAU9E"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Wire-protocol constants and types for the `mail/turn.received` server-
3
+ * pushed notification.
4
+ *
5
+ * agent-inbox already owns the request/response side of the `mail/*`
6
+ * surface (`mail/create`, `mail/turn`, `mail/get`, etc.) via
7
+ * `MailJsonRpcServer`. The push side — when a turn lands in a
8
+ * conversation that has remote participants, push the turn to those
9
+ * remotes — was previously hand-rolled by consumers (notably OpenHive's
10
+ * `forwardTurnToSwarms`). This module standardizes the method name +
11
+ * payload shape so consumers all use the same wire shape.
12
+ *
13
+ * @module agent-inbox/jsonrpc/mail-push-types
14
+ */
15
+ /**
16
+ * The canonical JSON-RPC method name for server-pushed turn delivery.
17
+ * Use this constant rather than stringly-typing `'mail/turn.received'`.
18
+ */
19
+ export const MAIL_TURN_RECEIVED_METHOD = "mail/turn.received";
20
+ /**
21
+ * Build a `MailTurnReceivedParams` payload from a stored {@link Turn}.
22
+ * Centralizes field-mapping so consumers can't drift from the canonical
23
+ * shape.
24
+ */
25
+ export function buildMailTurnReceivedParams(turn) {
26
+ return {
27
+ conversation_id: turn.conversation_id,
28
+ turn_id: turn.id,
29
+ participant_id: turn.participant_id,
30
+ content_type: turn.content_type,
31
+ content: turn.content,
32
+ ...(turn.thread_id ? { thread_id: turn.thread_id } : {}),
33
+ created_at: turn.created_at,
34
+ };
35
+ }
36
+ //# sourceMappingURL=mail-push-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-push-types.js","sourceRoot":"","sources":["../../src/jsonrpc/mail-push-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AAqB9D;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,IAAU;IACpD,OAAO;QACL,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,OAAO,EAAE,IAAI,CAAC,EAAE;QAChB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Mail Push Bridge — fan out `mail.turn.added` events as
3
+ * `mail/turn.received` notifications to subscriber systems.
4
+ *
5
+ * agent-inbox emits `mail.turn.added` whenever a turn is added to any
6
+ * conversation. Hubs that federate conversations across MAP need to
7
+ * push those turns to remote subscribers (e.g., swarms with
8
+ * `mail.canJoin` capability). Previously this was reimplemented by
9
+ * each consumer; this factory standardizes the event subscription +
10
+ * fan-out + payload shape.
11
+ *
12
+ * Transport-agnostic: the consumer injects:
13
+ * - `getSubscribers(turn)` — resolve subscribers for a given turn
14
+ * (e.g., walk a connection registry, filter by capability, skip
15
+ * the sender's own swarm).
16
+ * - `sendNotification(target, params)` — wire-level send. Consumers
17
+ * own retry / queue-for-stale-target / always-queue policies; this
18
+ * factory just calls `sendNotification` once per subscriber per
19
+ * turn.
20
+ *
21
+ * @module agent-inbox/jsonrpc/mail-push
22
+ */
23
+ import type { EventEmitter } from "node:events";
24
+ import type { Turn } from "../types.js";
25
+ import { type MailTurnReceivedParams } from "./mail-push-types.js";
26
+ export interface MailPushSubscriber {
27
+ /**
28
+ * Opaque identifier for the subscriber. Passed back to
29
+ * `sendNotification` so the consumer can route to the right
30
+ * transport handle. Consumers may attach additional fields to this
31
+ * object (the factory ignores them, so a `MapInboundConnection &
32
+ * MailPushSubscriber` is fine).
33
+ */
34
+ id: string;
35
+ }
36
+ export interface MailPushBridgeConfig<TSubscriber extends MailPushSubscriber = MailPushSubscriber> {
37
+ /**
38
+ * The agent-inbox event emitter (typically `inbox.events` from
39
+ * `createAgentInbox`). The factory subscribes to `mail.turn.added`.
40
+ */
41
+ mailEvents: EventEmitter;
42
+ /**
43
+ * Resolve subscribers for a given turn. Implementations typically:
44
+ * - Walk the consumer's connection registry / federation peer list
45
+ * - Filter by capability (e.g., `mail.canJoin`)
46
+ * - Skip the sender's own system to avoid echo loops
47
+ *
48
+ * Returns an empty array to suppress fan-out for that turn (e.g.,
49
+ * the conversation has no remote participants).
50
+ */
51
+ getSubscribers: (turn: Turn) => TSubscriber[];
52
+ /**
53
+ * Send the `mail/turn.received` notification to a subscriber. The
54
+ * factory invokes this once per `(turn, subscriber)` pair. Consumers
55
+ * own the wire-level details (which transport, dual-write to retry
56
+ * queue, etc.) — this hook is the single fan-out site.
57
+ *
58
+ * Synchronous or async. The factory does not await each invocation
59
+ * (fire-and-forget) so a slow subscriber doesn't block fan-out to
60
+ * peers.
61
+ */
62
+ sendNotification: (subscriber: TSubscriber, method: string, params: MailTurnReceivedParams) => void | Promise<void>;
63
+ /** Optional logger. Defaults to console.log. */
64
+ log?: (msg: string) => void;
65
+ }
66
+ export interface MailPushBridge {
67
+ /** Detach the event listener. Idempotent. */
68
+ stop(): void;
69
+ }
70
+ /**
71
+ * Wire the mail-push bridge. Returns a handle whose `stop()` detaches
72
+ * the event listener. Subscription is registered immediately; no
73
+ * separate `start()` step.
74
+ */
75
+ export declare function createMailPushBridge<TSubscriber extends MailPushSubscriber = MailPushSubscriber>(config: MailPushBridgeConfig<TSubscriber>): MailPushBridge;
76
+ //# sourceMappingURL=mail-push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-push.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/mail-push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAGL,KAAK,sBAAsB,EAC5B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,kBAAkB;IACjC;;;;;;OAMG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,oBAAoB,CACnC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB;IAE3D;;;OAGG;IACH,UAAU,EAAE,YAAY,CAAC;IAEzB;;;;;;;;OAQG;IACH,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;IAE9C;;;;;;;;;OASG;IACH,gBAAgB,EAAE,CAChB,UAAU,EAAE,WAAW,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,sBAAsB,KAC3B,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B,gDAAgD;IAChD,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,MAAM,EAAE,oBAAoB,CAAC,WAAW,CAAC,GAAG,cAAc,CA0D3D"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Mail Push Bridge — fan out `mail.turn.added` events as
3
+ * `mail/turn.received` notifications to subscriber systems.
4
+ *
5
+ * agent-inbox emits `mail.turn.added` whenever a turn is added to any
6
+ * conversation. Hubs that federate conversations across MAP need to
7
+ * push those turns to remote subscribers (e.g., swarms with
8
+ * `mail.canJoin` capability). Previously this was reimplemented by
9
+ * each consumer; this factory standardizes the event subscription +
10
+ * fan-out + payload shape.
11
+ *
12
+ * Transport-agnostic: the consumer injects:
13
+ * - `getSubscribers(turn)` — resolve subscribers for a given turn
14
+ * (e.g., walk a connection registry, filter by capability, skip
15
+ * the sender's own swarm).
16
+ * - `sendNotification(target, params)` — wire-level send. Consumers
17
+ * own retry / queue-for-stale-target / always-queue policies; this
18
+ * factory just calls `sendNotification` once per subscriber per
19
+ * turn.
20
+ *
21
+ * @module agent-inbox/jsonrpc/mail-push
22
+ */
23
+ import { MAIL_TURN_RECEIVED_METHOD, buildMailTurnReceivedParams, } from "./mail-push-types.js";
24
+ /**
25
+ * Wire the mail-push bridge. Returns a handle whose `stop()` detaches
26
+ * the event listener. Subscription is registered immediately; no
27
+ * separate `start()` step.
28
+ */
29
+ export function createMailPushBridge(config) {
30
+ const { mailEvents, getSubscribers, sendNotification, log = () => { } } = config;
31
+ const onTurnAdded = (turn) => {
32
+ if (!turn || typeof turn !== "object")
33
+ return;
34
+ const t = turn;
35
+ if (typeof t.conversation_id !== "string" || typeof t.id !== "string") {
36
+ // Malformed event — defensive guard; agent-inbox always emits
37
+ // proper Turn shapes today, but defenses catch consumer mistakes.
38
+ return;
39
+ }
40
+ let subscribers;
41
+ try {
42
+ subscribers = getSubscribers(t);
43
+ }
44
+ catch (err) {
45
+ log(`[mail-push] getSubscribers threw for turn ${t.id}: ${err.message}`);
46
+ return;
47
+ }
48
+ if (subscribers.length === 0)
49
+ return;
50
+ const params = buildMailTurnReceivedParams(t);
51
+ for (const subscriber of subscribers) {
52
+ try {
53
+ const ret = sendNotification(subscriber, MAIL_TURN_RECEIVED_METHOD, params);
54
+ if (ret && typeof ret.catch === "function") {
55
+ ret.catch((err) => {
56
+ log(`[mail-push] sendNotification rejected for subscriber=${subscriber.id} turn=${t.id}: ${err.message}`);
57
+ });
58
+ }
59
+ }
60
+ catch (err) {
61
+ log(`[mail-push] sendNotification threw for subscriber=${subscriber.id} turn=${t.id}: ${err.message}`);
62
+ }
63
+ }
64
+ };
65
+ mailEvents.on("mail.turn.added", onTurnAdded);
66
+ let stopped = false;
67
+ return {
68
+ stop() {
69
+ if (stopped)
70
+ return;
71
+ stopped = true;
72
+ mailEvents.off("mail.turn.added", onTurnAdded);
73
+ },
74
+ };
75
+ }
76
+ //# sourceMappingURL=mail-push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-push.js","sourceRoot":"","sources":["../../src/jsonrpc/mail-push.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EACL,yBAAyB,EACzB,2BAA2B,GAE5B,MAAM,sBAAsB,CAAC;AA0D9B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAElC,MAAyC;IACzC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,MAAM,CAAC;IAEhF,MAAM,WAAW,GAAG,CAAC,IAAa,EAAQ,EAAE;QAC1C,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO;QAC9C,MAAM,CAAC,GAAG,IAAY,CAAC;QACvB,IAAI,OAAO,CAAC,CAAC,eAAe,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;YACtE,8DAA8D;YAC9D,kEAAkE;YAClE,OAAO;QACT,CAAC;QAED,IAAI,WAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CACD,6CAA6C,CAAC,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAC/E,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAErC,MAAM,MAAM,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAAC;QAE9C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,gBAAgB,CAC1B,UAAU,EACV,yBAAyB,EACzB,MAAM,CACP,CAAC;gBACF,IAAI,GAAG,IAAI,OAAQ,GAAwB,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;oBAChE,GAAwB,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;wBAC/C,GAAG,CACD,wDAAwD,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAChH,CAAC;oBACJ,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,GAAG,CACD,qDAAqD,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CAC7G,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,UAAU,CAAC,EAAE,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAE9C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,OAAO;QACL,IAAI;YACF,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,IAAI,CAAC;YACf,UAAU,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACjD,CAAC;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inbox",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Agent Inbox — message routing, traceability, and MCP tools for multi-agent systems",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "url": "git+https://github.com/alexngai/agent-inbox.git"
26
26
  },
27
27
  "keywords": [],
28
- "author": "",
28
+ "author": "Alex Ngai",
29
29
  "license": "ISC",
30
30
  "bugs": {
31
31
  "url": "https://github.com/alexngai/agent-inbox/issues"
@@ -40,8 +40,8 @@
40
40
  "ulid": "^2.3.0"
41
41
  },
42
42
  "peerDependencies": {
43
- "@multi-agent-protocol/sdk": "^0.1.4",
44
- "agentic-mesh": ">=0.2.0"
43
+ "@multi-agent-protocol/sdk": "*",
44
+ "agentic-mesh": "*"
45
45
  },
46
46
  "peerDependenciesMeta": {
47
47
  "@multi-agent-protocol/sdk": {
package/src/index.ts CHANGED
@@ -28,6 +28,17 @@ export { MapClient } from "./map/map-client.js";
28
28
  export { InboxMcpServer } from "./mcp/mcp-server.js";
29
29
  export { InboxMcpProxy } from "./mcp/mcp-proxy.js";
30
30
  export { MailJsonRpcServer } from "./jsonrpc/mail-server.js";
31
+ export {
32
+ MAIL_TURN_RECEIVED_METHOD,
33
+ buildMailTurnReceivedParams,
34
+ type MailTurnReceivedParams,
35
+ } from "./jsonrpc/mail-push-types.js";
36
+ export {
37
+ createMailPushBridge,
38
+ type MailPushBridge,
39
+ type MailPushBridgeConfig,
40
+ type MailPushSubscriber,
41
+ } from "./jsonrpc/mail-push.js";
31
42
  export { PushNotifier, formatInboxMarkdown, parseCommand } from "./push/notifier.js";
32
43
  export type { InboxMessageEvent, NotifierConfig, InboxFileEntry } from "./push/notifier.js";
33
44
  export { ConnectionManager } from "./federation/connection-manager.js";
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Wire-protocol constants and types for the `mail/turn.received` server-
3
+ * pushed notification.
4
+ *
5
+ * agent-inbox already owns the request/response side of the `mail/*`
6
+ * surface (`mail/create`, `mail/turn`, `mail/get`, etc.) via
7
+ * `MailJsonRpcServer`. The push side — when a turn lands in a
8
+ * conversation that has remote participants, push the turn to those
9
+ * remotes — was previously hand-rolled by consumers (notably OpenHive's
10
+ * `forwardTurnToSwarms`). This module standardizes the method name +
11
+ * payload shape so consumers all use the same wire shape.
12
+ *
13
+ * @module agent-inbox/jsonrpc/mail-push-types
14
+ */
15
+
16
+ import type { Turn, ContentType, MessageContent } from "../types.js";
17
+
18
+ /**
19
+ * The canonical JSON-RPC method name for server-pushed turn delivery.
20
+ * Use this constant rather than stringly-typing `'mail/turn.received'`.
21
+ */
22
+ export const MAIL_TURN_RECEIVED_METHOD = "mail/turn.received";
23
+
24
+ /**
25
+ * Wire-shape for the `mail/turn.received` notification's `params`.
26
+ * Consumers wiring custom fan-out should construct this exact shape so
27
+ * receivers can rely on field names + presence.
28
+ *
29
+ * Mirrors {@link Turn} field-for-field (with `turn_id` derived from
30
+ * `Turn.id` for clarity on the receiver side; the wire is a flat
31
+ * record, not a nested `{ turn: ... }` object).
32
+ */
33
+ export interface MailTurnReceivedParams {
34
+ conversation_id: string;
35
+ turn_id: string;
36
+ participant_id: string;
37
+ content_type: ContentType;
38
+ content: MessageContent;
39
+ thread_id?: string;
40
+ created_at: string;
41
+ }
42
+
43
+ /**
44
+ * Build a `MailTurnReceivedParams` payload from a stored {@link Turn}.
45
+ * Centralizes field-mapping so consumers can't drift from the canonical
46
+ * shape.
47
+ */
48
+ export function buildMailTurnReceivedParams(turn: Turn): MailTurnReceivedParams {
49
+ return {
50
+ conversation_id: turn.conversation_id,
51
+ turn_id: turn.id,
52
+ participant_id: turn.participant_id,
53
+ content_type: turn.content_type,
54
+ content: turn.content,
55
+ ...(turn.thread_id ? { thread_id: turn.thread_id } : {}),
56
+ created_at: turn.created_at,
57
+ };
58
+ }
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Mail Push Bridge — fan out `mail.turn.added` events as
3
+ * `mail/turn.received` notifications to subscriber systems.
4
+ *
5
+ * agent-inbox emits `mail.turn.added` whenever a turn is added to any
6
+ * conversation. Hubs that federate conversations across MAP need to
7
+ * push those turns to remote subscribers (e.g., swarms with
8
+ * `mail.canJoin` capability). Previously this was reimplemented by
9
+ * each consumer; this factory standardizes the event subscription +
10
+ * fan-out + payload shape.
11
+ *
12
+ * Transport-agnostic: the consumer injects:
13
+ * - `getSubscribers(turn)` — resolve subscribers for a given turn
14
+ * (e.g., walk a connection registry, filter by capability, skip
15
+ * the sender's own swarm).
16
+ * - `sendNotification(target, params)` — wire-level send. Consumers
17
+ * own retry / queue-for-stale-target / always-queue policies; this
18
+ * factory just calls `sendNotification` once per subscriber per
19
+ * turn.
20
+ *
21
+ * @module agent-inbox/jsonrpc/mail-push
22
+ */
23
+
24
+ import type { EventEmitter } from "node:events";
25
+ import type { Turn } from "../types.js";
26
+ import {
27
+ MAIL_TURN_RECEIVED_METHOD,
28
+ buildMailTurnReceivedParams,
29
+ type MailTurnReceivedParams,
30
+ } from "./mail-push-types.js";
31
+
32
+ export interface MailPushSubscriber {
33
+ /**
34
+ * Opaque identifier for the subscriber. Passed back to
35
+ * `sendNotification` so the consumer can route to the right
36
+ * transport handle. Consumers may attach additional fields to this
37
+ * object (the factory ignores them, so a `MapInboundConnection &
38
+ * MailPushSubscriber` is fine).
39
+ */
40
+ id: string;
41
+ }
42
+
43
+ export interface MailPushBridgeConfig<
44
+ TSubscriber extends MailPushSubscriber = MailPushSubscriber,
45
+ > {
46
+ /**
47
+ * The agent-inbox event emitter (typically `inbox.events` from
48
+ * `createAgentInbox`). The factory subscribes to `mail.turn.added`.
49
+ */
50
+ mailEvents: EventEmitter;
51
+
52
+ /**
53
+ * Resolve subscribers for a given turn. Implementations typically:
54
+ * - Walk the consumer's connection registry / federation peer list
55
+ * - Filter by capability (e.g., `mail.canJoin`)
56
+ * - Skip the sender's own system to avoid echo loops
57
+ *
58
+ * Returns an empty array to suppress fan-out for that turn (e.g.,
59
+ * the conversation has no remote participants).
60
+ */
61
+ getSubscribers: (turn: Turn) => TSubscriber[];
62
+
63
+ /**
64
+ * Send the `mail/turn.received` notification to a subscriber. The
65
+ * factory invokes this once per `(turn, subscriber)` pair. Consumers
66
+ * own the wire-level details (which transport, dual-write to retry
67
+ * queue, etc.) — this hook is the single fan-out site.
68
+ *
69
+ * Synchronous or async. The factory does not await each invocation
70
+ * (fire-and-forget) so a slow subscriber doesn't block fan-out to
71
+ * peers.
72
+ */
73
+ sendNotification: (
74
+ subscriber: TSubscriber,
75
+ method: string,
76
+ params: MailTurnReceivedParams,
77
+ ) => void | Promise<void>;
78
+
79
+ /** Optional logger. Defaults to console.log. */
80
+ log?: (msg: string) => void;
81
+ }
82
+
83
+ export interface MailPushBridge {
84
+ /** Detach the event listener. Idempotent. */
85
+ stop(): void;
86
+ }
87
+
88
+ /**
89
+ * Wire the mail-push bridge. Returns a handle whose `stop()` detaches
90
+ * the event listener. Subscription is registered immediately; no
91
+ * separate `start()` step.
92
+ */
93
+ export function createMailPushBridge<
94
+ TSubscriber extends MailPushSubscriber = MailPushSubscriber,
95
+ >(config: MailPushBridgeConfig<TSubscriber>): MailPushBridge {
96
+ const { mailEvents, getSubscribers, sendNotification, log = () => {} } = config;
97
+
98
+ const onTurnAdded = (turn: unknown): void => {
99
+ if (!turn || typeof turn !== "object") return;
100
+ const t = turn as Turn;
101
+ if (typeof t.conversation_id !== "string" || typeof t.id !== "string") {
102
+ // Malformed event — defensive guard; agent-inbox always emits
103
+ // proper Turn shapes today, but defenses catch consumer mistakes.
104
+ return;
105
+ }
106
+
107
+ let subscribers: TSubscriber[];
108
+ try {
109
+ subscribers = getSubscribers(t);
110
+ } catch (err) {
111
+ log(
112
+ `[mail-push] getSubscribers threw for turn ${t.id}: ${(err as Error).message}`,
113
+ );
114
+ return;
115
+ }
116
+
117
+ if (subscribers.length === 0) return;
118
+
119
+ const params = buildMailTurnReceivedParams(t);
120
+
121
+ for (const subscriber of subscribers) {
122
+ try {
123
+ const ret = sendNotification(
124
+ subscriber,
125
+ MAIL_TURN_RECEIVED_METHOD,
126
+ params,
127
+ );
128
+ if (ret && typeof (ret as Promise<unknown>).catch === "function") {
129
+ (ret as Promise<unknown>).catch((err: unknown) => {
130
+ log(
131
+ `[mail-push] sendNotification rejected for subscriber=${subscriber.id} turn=${t.id}: ${(err as Error).message}`,
132
+ );
133
+ });
134
+ }
135
+ } catch (err) {
136
+ log(
137
+ `[mail-push] sendNotification threw for subscriber=${subscriber.id} turn=${t.id}: ${(err as Error).message}`,
138
+ );
139
+ }
140
+ }
141
+ };
142
+
143
+ mailEvents.on("mail.turn.added", onTurnAdded);
144
+
145
+ let stopped = false;
146
+ return {
147
+ stop() {
148
+ if (stopped) return;
149
+ stopped = true;
150
+ mailEvents.off("mail.turn.added", onTurnAdded);
151
+ },
152
+ };
153
+ }
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Unit tests for `createMailPushBridge` — the factory that fans out
3
+ * `mail.turn.added` events as `mail/turn.received` notifications.
4
+ */
5
+
6
+ import { describe, it, expect, vi } from "vitest";
7
+ import { EventEmitter } from "node:events";
8
+ import {
9
+ createMailPushBridge,
10
+ MAIL_TURN_RECEIVED_METHOD,
11
+ buildMailTurnReceivedParams,
12
+ type MailPushSubscriber,
13
+ } from "../src/index.js";
14
+ import type { Turn } from "../src/types.js";
15
+
16
+ function makeTurn(overrides: Partial<Turn> = {}): Turn {
17
+ return {
18
+ id: "turn-1",
19
+ conversation_id: "conv-1",
20
+ participant_id: "agent-A",
21
+ content_type: "text",
22
+ content: { type: "text", text: "hi" },
23
+ created_at: "2026-05-04T00:00:00.000Z",
24
+ ...overrides,
25
+ };
26
+ }
27
+
28
+ describe("createMailPushBridge", () => {
29
+ it("subscribes to mail.turn.added on construction", () => {
30
+ const events = new EventEmitter();
31
+ const onSpy = vi.spyOn(events, "on");
32
+
33
+ createMailPushBridge({
34
+ mailEvents: events,
35
+ getSubscribers: () => [],
36
+ sendNotification: () => {},
37
+ });
38
+
39
+ expect(onSpy).toHaveBeenCalledWith("mail.turn.added", expect.any(Function));
40
+ });
41
+
42
+ it("fans out a turn to all returned subscribers using mail/turn.received", () => {
43
+ const events = new EventEmitter();
44
+ const subscribers: MailPushSubscriber[] = [{ id: "swarm-1" }, { id: "swarm-2" }];
45
+ const sendCalls: Array<{
46
+ sub: MailPushSubscriber;
47
+ method: string;
48
+ params: unknown;
49
+ }> = [];
50
+
51
+ createMailPushBridge({
52
+ mailEvents: events,
53
+ getSubscribers: () => subscribers,
54
+ sendNotification: (sub, method, params) => {
55
+ sendCalls.push({ sub, method, params });
56
+ },
57
+ });
58
+
59
+ const turn = makeTurn({ id: "t-99", conversation_id: "c-99" });
60
+ events.emit("mail.turn.added", turn);
61
+
62
+ expect(sendCalls).toHaveLength(2);
63
+ expect(sendCalls[0]!.method).toBe(MAIL_TURN_RECEIVED_METHOD);
64
+ expect(sendCalls[0]!.method).toBe("mail/turn.received");
65
+ expect(sendCalls[0]!.sub.id).toBe("swarm-1");
66
+ expect(sendCalls[1]!.sub.id).toBe("swarm-2");
67
+ expect(sendCalls[0]!.params).toEqual(buildMailTurnReceivedParams(turn));
68
+ });
69
+
70
+ it("includes thread_id only when present on the turn", () => {
71
+ const events = new EventEmitter();
72
+ const calls: Array<{ params: Record<string, unknown> }> = [];
73
+
74
+ createMailPushBridge({
75
+ mailEvents: events,
76
+ getSubscribers: () => [{ id: "swarm-1" }],
77
+ sendNotification: (_sub, _method, params) => {
78
+ calls.push({ params: params as unknown as Record<string, unknown> });
79
+ },
80
+ });
81
+
82
+ events.emit("mail.turn.added", makeTurn({ thread_id: "thr-1" }));
83
+ events.emit("mail.turn.added", makeTurn({ id: "turn-2" }));
84
+
85
+ expect(calls).toHaveLength(2);
86
+ expect(calls[0]!.params.thread_id).toBe("thr-1");
87
+ expect(calls[1]!.params.thread_id).toBeUndefined();
88
+ });
89
+
90
+ it("suppresses fan-out when getSubscribers returns empty", () => {
91
+ const events = new EventEmitter();
92
+ const sendNotification = vi.fn();
93
+
94
+ createMailPushBridge({
95
+ mailEvents: events,
96
+ getSubscribers: () => [],
97
+ sendNotification,
98
+ });
99
+
100
+ events.emit("mail.turn.added", makeTurn());
101
+ expect(sendNotification).not.toHaveBeenCalled();
102
+ });
103
+
104
+ it("ignores malformed turn payloads", () => {
105
+ const events = new EventEmitter();
106
+ const sendNotification = vi.fn();
107
+
108
+ createMailPushBridge({
109
+ mailEvents: events,
110
+ getSubscribers: () => [{ id: "swarm-1" }],
111
+ sendNotification,
112
+ });
113
+
114
+ events.emit("mail.turn.added", null);
115
+ events.emit("mail.turn.added", "string");
116
+ events.emit("mail.turn.added", { id: 123 }); // wrong types
117
+
118
+ expect(sendNotification).not.toHaveBeenCalled();
119
+ });
120
+
121
+ it("logs and continues when getSubscribers throws", () => {
122
+ const events = new EventEmitter();
123
+ const logs: string[] = [];
124
+ const sendNotification = vi.fn();
125
+
126
+ createMailPushBridge({
127
+ mailEvents: events,
128
+ getSubscribers: () => {
129
+ throw new Error("registry exploded");
130
+ },
131
+ sendNotification,
132
+ log: (msg) => logs.push(msg),
133
+ });
134
+
135
+ events.emit("mail.turn.added", makeTurn());
136
+ expect(sendNotification).not.toHaveBeenCalled();
137
+ expect(logs.some((l) => l.includes("getSubscribers threw"))).toBe(true);
138
+ });
139
+
140
+ it("logs and continues when sendNotification throws synchronously for one subscriber", () => {
141
+ const events = new EventEmitter();
142
+ const logs: string[] = [];
143
+ const calls: string[] = [];
144
+
145
+ createMailPushBridge({
146
+ mailEvents: events,
147
+ getSubscribers: () => [
148
+ { id: "ok-1" },
149
+ { id: "broken" },
150
+ { id: "ok-2" },
151
+ ],
152
+ sendNotification: (sub) => {
153
+ if (sub.id === "broken") throw new Error("boom");
154
+ calls.push(sub.id);
155
+ },
156
+ log: (msg) => logs.push(msg),
157
+ });
158
+
159
+ events.emit("mail.turn.added", makeTurn());
160
+
161
+ // Other subscribers still received the notification.
162
+ expect(calls).toEqual(["ok-1", "ok-2"]);
163
+ expect(logs.some((l) => l.includes("sendNotification threw"))).toBe(true);
164
+ });
165
+
166
+ it("logs (does not crash) when sendNotification rejects async", async () => {
167
+ const events = new EventEmitter();
168
+ const logs: string[] = [];
169
+
170
+ createMailPushBridge({
171
+ mailEvents: events,
172
+ getSubscribers: () => [{ id: "swarm-1" }],
173
+ sendNotification: async () => {
174
+ throw new Error("async failure");
175
+ },
176
+ log: (msg) => logs.push(msg),
177
+ });
178
+
179
+ events.emit("mail.turn.added", makeTurn());
180
+
181
+ // Wait for the async catch handler to fire.
182
+ await new Promise((resolve) => setImmediate(resolve));
183
+ await new Promise((resolve) => setImmediate(resolve));
184
+
185
+ expect(logs.some((l) => l.includes("sendNotification rejected"))).toBe(true);
186
+ });
187
+
188
+ it("stop() detaches the listener (no further fan-out)", () => {
189
+ const events = new EventEmitter();
190
+ const sendNotification = vi.fn();
191
+
192
+ const bridge = createMailPushBridge({
193
+ mailEvents: events,
194
+ getSubscribers: () => [{ id: "swarm-1" }],
195
+ sendNotification,
196
+ });
197
+
198
+ bridge.stop();
199
+ events.emit("mail.turn.added", makeTurn());
200
+ expect(sendNotification).not.toHaveBeenCalled();
201
+ });
202
+
203
+ it("stop() is idempotent", () => {
204
+ const events = new EventEmitter();
205
+ const bridge = createMailPushBridge({
206
+ mailEvents: events,
207
+ getSubscribers: () => [],
208
+ sendNotification: () => {},
209
+ });
210
+
211
+ bridge.stop();
212
+ expect(() => bridge.stop()).not.toThrow();
213
+ });
214
+ });
package/dist/index.d.mts DELETED
@@ -1,2 +0,0 @@
1
-
2
- export { }
package/dist/index.mjs DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}