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 +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/jsonrpc/mail-push-types.d.ts +45 -0
- package/dist/jsonrpc/mail-push-types.d.ts.map +1 -0
- package/dist/jsonrpc/mail-push-types.js +36 -0
- package/dist/jsonrpc/mail-push-types.js.map +1 -0
- package/dist/jsonrpc/mail-push.d.ts +76 -0
- package/dist/jsonrpc/mail-push.d.ts.map +1 -0
- package/dist/jsonrpc/mail-push.js +76 -0
- package/dist/jsonrpc/mail-push.js.map +1 -0
- package/package.json +4 -4
- package/src/index.ts +11 -0
- package/src/jsonrpc/mail-push-types.ts +58 -0
- package/src/jsonrpc/mail-push.ts +153 -0
- package/test/mail-push.test.ts +214 -0
- package/dist/index.d.mts +0 -2
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +0 -1
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";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAGvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,GACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrF,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjG,YAAY,EAAE,aAAa,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,aAAa,EACb,eAAe,EACf,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,YAAY,EAAE,UAAU,IAAI,cAAc,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxG,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5F,mBAAmB,YAAY,CAAC;AAChC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA8B/E,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,iBAAiB,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC9B,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,OAAO,gBAAgB,EAAE,QAAQ,CAAC;IAC7C,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;0EAEsE;IACtE,UAAU,CAAC,EAAE,OAAO,qBAAqB,EAAE,aAAa,CAAC;IACzD;;8DAE0D;IAC1D,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,eAAe,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF;;;;+EAI2E;IAC3E,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,GAAE,aAAkB,GACvB,OAAO,CAAC,UAAU,CAAC,CA4MrB"}
|
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.
|
|
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": "
|
|
44
|
-
"agentic-mesh": "
|
|
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
package/dist/index.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|