agent-inbox 0.2.3 → 0.2.5

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.
@@ -12,7 +12,7 @@
12
12
  *
13
13
  * @module agent-inbox/jsonrpc/mail-push-types
14
14
  */
15
- import type { Turn, ContentType, MessageContent } from "../types.js";
15
+ import type { Turn, ContentType, MessageContent, Conversation } from "../types.js";
16
16
  /**
17
17
  * The canonical JSON-RPC method name for server-pushed turn delivery.
18
18
  * Use this constant rather than stringly-typing `'mail/turn.received'`.
@@ -44,11 +44,31 @@ export interface MailTurnReceivedParams {
44
44
  * `"low"` | `"normal"` | `"high"` | `"urgent"`
45
45
  */
46
46
  importance?: string;
47
+ /**
48
+ * Optional parent-conversation context. Populated when the fan-out site
49
+ * can resolve the turn's conversation (see `resolveConversation` in
50
+ * {@link MailPushBridgeConfig}). Lets receivers filter/route the push —
51
+ * e.g. "is a local agent a participant?", "is this a spec-thread vs a
52
+ * dispatch delivery channel?" — without a round-trip back to the hub.
53
+ * Omitted when the fan-out site only has the turn in scope.
54
+ */
55
+ conversation?: {
56
+ scope: string;
57
+ subject?: string;
58
+ metadata?: Record<string, unknown>;
59
+ /** Participant agent ids (roles omitted; use `mail/presence` for detail). */
60
+ participants?: string[];
61
+ };
47
62
  }
48
63
  /**
49
64
  * Build a `MailTurnReceivedParams` payload from a stored {@link Turn}.
50
65
  * Centralizes field-mapping so consumers can't drift from the canonical
51
66
  * shape.
67
+ *
68
+ * When `conversation` is supplied, its scope/subject/metadata/participant
69
+ * ids are folded into an optional `conversation` block so receivers can
70
+ * filter/route without a round-trip. Omit it to send turn fields only
71
+ * (backward-compatible with pre-0.2.4 receivers).
52
72
  */
53
- export declare function buildMailTurnReceivedParams(turn: Turn): MailTurnReceivedParams;
73
+ export declare function buildMailTurnReceivedParams(turn: Turn, conversation?: Conversation): MailTurnReceivedParams;
54
74
  //# sourceMappingURL=mail-push-types.d.ts.map
@@ -1 +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;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,IAAI,GAAG,sBAAsB,CAW9E"}
1
+ {"version":3,"file":"mail-push-types.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/mail-push-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,IAAI,EACJ,WAAW,EACX,cAAc,EACd,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;;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;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,6EAA6E;QAC7E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,YAAY,CAAC,EAAE,YAAY,GAC1B,sBAAsB,CAuBxB"}
@@ -21,8 +21,13 @@ export const MAIL_TURN_RECEIVED_METHOD = "mail/turn.received";
21
21
  * Build a `MailTurnReceivedParams` payload from a stored {@link Turn}.
22
22
  * Centralizes field-mapping so consumers can't drift from the canonical
23
23
  * shape.
24
+ *
25
+ * When `conversation` is supplied, its scope/subject/metadata/participant
26
+ * ids are folded into an optional `conversation` block so receivers can
27
+ * filter/route without a round-trip. Omit it to send turn fields only
28
+ * (backward-compatible with pre-0.2.4 receivers).
24
29
  */
25
- export function buildMailTurnReceivedParams(turn) {
30
+ export function buildMailTurnReceivedParams(turn, conversation) {
26
31
  return {
27
32
  conversation_id: turn.conversation_id,
28
33
  turn_id: turn.id,
@@ -32,6 +37,18 @@ export function buildMailTurnReceivedParams(turn) {
32
37
  ...(turn.thread_id ? { thread_id: turn.thread_id } : {}),
33
38
  created_at: turn.created_at,
34
39
  ...(turn.importance ? { importance: turn.importance } : {}),
40
+ ...(conversation
41
+ ? {
42
+ conversation: {
43
+ scope: conversation.scope,
44
+ ...(conversation.subject
45
+ ? { subject: conversation.subject }
46
+ : {}),
47
+ metadata: conversation.metadata,
48
+ participants: conversation.participants.map((p) => p.agent_id),
49
+ },
50
+ }
51
+ : {}),
35
52
  };
36
53
  }
37
54
  //# sourceMappingURL=mail-push-types.js.map
@@ -1 +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;AA8B9D;;;;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;QAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"mail-push-types.js","sourceRoot":"","sources":["../../src/jsonrpc/mail-push-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AASH;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,oBAAoB,CAAC;AA8C9D;;;;;;;;;GASG;AACH,MAAM,UAAU,2BAA2B,CACzC,IAAU,EACV,YAA2B;IAE3B,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;QAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,YAAY;YACd,CAAC,CAAC;gBACE,YAAY,EAAE;oBACZ,KAAK,EAAE,YAAY,CAAC,KAAK;oBACzB,GAAG,CAAC,YAAY,CAAC,OAAO;wBACtB,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE;wBACnC,CAAC,CAAC,EAAE,CAAC;oBACP,QAAQ,EAAE,YAAY,CAAC,QAAQ;oBAC/B,YAAY,EAAE,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC/D;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC"}
@@ -21,7 +21,7 @@
21
21
  * @module agent-inbox/jsonrpc/mail-push
22
22
  */
23
23
  import type { EventEmitter } from "node:events";
24
- import type { Turn } from "../types.js";
24
+ import type { Turn, Conversation } from "../types.js";
25
25
  import { type MailTurnReceivedParams } from "./mail-push-types.js";
26
26
  export interface MailPushSubscriber {
27
27
  /**
@@ -60,6 +60,17 @@ export interface MailPushBridgeConfig<TSubscriber extends MailPushSubscriber = M
60
60
  * peers.
61
61
  */
62
62
  sendNotification: (subscriber: TSubscriber, method: string, params: MailTurnReceivedParams) => void | Promise<void>;
63
+ /**
64
+ * Optional resolver for the turn's parent conversation. When provided,
65
+ * the resolved conversation's scope/subject/metadata/participants are
66
+ * folded into the notification `params.conversation` block so receivers
67
+ * can filter/route without a round-trip back to the hub. Return
68
+ * `undefined` to omit context for a given turn (the notification still
69
+ * carries all turn fields). Kept as an injected resolver rather than a
70
+ * storage dependency so the factory stays transport- and
71
+ * storage-agnostic.
72
+ */
73
+ resolveConversation?: (turn: Turn) => Conversation | undefined;
63
74
  /** Optional logger. Defaults to console.log. */
64
75
  log?: (msg: string) => void;
65
76
  }
@@ -1 +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"}
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,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,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;;;;;;;;;OASG;IACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,YAAY,GAAG,SAAS,CAAC;IAE/D,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,CA6E3D"}
@@ -27,7 +27,7 @@ import { MAIL_TURN_RECEIVED_METHOD, buildMailTurnReceivedParams, } from "./mail-
27
27
  * separate `start()` step.
28
28
  */
29
29
  export function createMailPushBridge(config) {
30
- const { mailEvents, getSubscribers, sendNotification, log = () => { } } = config;
30
+ const { mailEvents, getSubscribers, sendNotification, resolveConversation, log = () => { }, } = config;
31
31
  const onTurnAdded = (turn) => {
32
32
  if (!turn || typeof turn !== "object")
33
33
  return;
@@ -47,7 +47,18 @@ export function createMailPushBridge(config) {
47
47
  }
48
48
  if (subscribers.length === 0)
49
49
  return;
50
- const params = buildMailTurnReceivedParams(t);
50
+ let conversation;
51
+ if (resolveConversation) {
52
+ try {
53
+ conversation = resolveConversation(t);
54
+ }
55
+ catch (err) {
56
+ // Non-fatal: fall back to a context-less notification rather than
57
+ // dropping the turn. Receivers degrade to a hub round-trip.
58
+ log(`[mail-push] resolveConversation threw for turn ${t.id}: ${err.message}`);
59
+ }
60
+ }
61
+ const params = buildMailTurnReceivedParams(t, conversation);
51
62
  for (const subscriber of subscribers) {
52
63
  try {
53
64
  const ret = sendNotification(subscriber, MAIL_TURN_RECEIVED_METHOD, params);
@@ -1 +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"}
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;AAsE9B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAElC,MAAyC;IACzC,MAAM,EACJ,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,GAAG,GAAG,GAAG,EAAE,GAAE,CAAC,GACf,GAAG,MAAM,CAAC;IAEX,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,IAAI,YAAsC,CAAC;QAC3C,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,YAAY,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,kEAAkE;gBAClE,4DAA4D;gBAC5D,GAAG,CACD,kDAAkD,CAAC,CAAC,EAAE,KAAM,GAAa,CAAC,OAAO,EAAE,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,2BAA2B,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAE5D,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mail-server.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/mail-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIjE;;;GAGG;AAEH,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D;AAMD,qBAAa,iBAAiB;IAc1B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAfhB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,WAAW,CAAkC;IAErD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,CAEf;gBAGQ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EAC5B,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAOnD,OAAO,CAAC,eAAe;IAmNvB,wEAAwE;IAClE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAqCtE,sDAAsD;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,iDAAiD;IACjD,OAAO,CAAC,kBAAkB;IAc1B,iDAAiD;IACjD,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"mail-server.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/mail-server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAIjE;;;GAGG;AAEH,UAAU,cAAc;IACtB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,KAAK,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;CAC3D;AAMD,qBAAa,iBAAiB;IAc1B,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IAfhB,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,UAAU,CAA4B;IAC9C,OAAO,CAAC,WAAW,CAAkC;IAErD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,CAEf;gBAGQ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,aAAa,EACrB,MAAM,EAAE,YAAY,EAC5B,QAAQ,CAAC,EAAE;QAAE,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAOnD,OAAO,CAAC,eAAe;IAsOvB,wEAAwE;IAClE,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAqCtE,sDAAsD;IAChD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDtC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,iDAAiD;IACjD,OAAO,CAAC,kBAAkB;IAc1B,iDAAiD;IACjD,OAAO,CAAC,oBAAoB;IAqB5B,OAAO,CAAC,SAAS;CAMlB"}
@@ -21,11 +21,25 @@ export class MailJsonRpcServer {
21
21
  this.setupEventForwarding();
22
22
  }
23
23
  registerMethods() {
24
- // mail/create — create a conversation
24
+ // mail/create — create a conversation (create-or-get)
25
+ //
26
+ // When an explicit `id` is supplied and already exists, return the
27
+ // existing conversation untouched instead of overwriting it. Callers
28
+ // use `mail/create` as an idempotent lazy factory by passing a
29
+ // deterministic id (dispatch threads, spec threads); because
30
+ // `putConversation` is a destructive upsert that re-syncs participants
31
+ // from the passed object (built here with `participants: []`), a blind
32
+ // re-create would silently wipe participants and overwrite metadata.
25
33
  this.methods.set("mail/create", (params) => {
34
+ const explicitId = params.id;
35
+ if (explicitId) {
36
+ const existing = this.storage.getConversation(explicitId);
37
+ if (existing)
38
+ return existing;
39
+ }
26
40
  const now = new Date().toISOString();
27
41
  const conv = {
28
- id: params.id ?? `conv-${ulid()}`,
42
+ id: explicitId ?? `conv-${ulid()}`,
29
43
  scope: params.scope ?? "default",
30
44
  subject: params.subject,
31
45
  status: "active",
@@ -81,18 +95,24 @@ export class MailJsonRpcServer {
81
95
  return { conversationId: conv.id, status: "active" };
82
96
  });
83
97
  // mail/join — add self as participant
98
+ //
99
+ // Uses the storage `addParticipant` helper (atomic INSERT OR IGNORE)
100
+ // rather than read-modify-write via `putConversation`, which rewrites
101
+ // the entire participant list and can drop a concurrent join/invite.
84
102
  this.methods.set("mail/join", (params) => {
85
- const conv = this.storage.getConversation(params.conversationId);
103
+ const conversationId = params.conversationId;
104
+ const conv = this.storage.getConversation(conversationId);
86
105
  if (!conv)
87
106
  throw rpcError(-32001, "Conversation not found");
88
107
  const agentId = params.agentId;
89
- if (!conv.participants.some((p) => p.agent_id === agentId)) {
90
- conv.participants.push({
108
+ const alreadyMember = conv.participants.some((p) => p.agent_id === agentId);
109
+ if (!alreadyMember) {
110
+ const now = new Date().toISOString();
111
+ this.storage.addParticipant(conversationId, {
91
112
  agent_id: agentId,
92
- joined_at: new Date().toISOString(),
113
+ joined_at: now,
93
114
  });
94
- conv.updated_at = new Date().toISOString();
95
- this.storage.putConversation(conv);
115
+ this.storage.touchConversation(conversationId, now);
96
116
  this.events.emit("mail.participant.joined", {
97
117
  conversation_id: conv.id,
98
118
  agent_id: agentId,
@@ -102,29 +122,33 @@ export class MailJsonRpcServer {
102
122
  });
103
123
  // mail/leave — remove self from conversation
104
124
  this.methods.set("mail/leave", (params) => {
105
- const conv = this.storage.getConversation(params.conversationId);
125
+ const conversationId = params.conversationId;
126
+ const conv = this.storage.getConversation(conversationId);
106
127
  if (!conv)
107
128
  throw rpcError(-32001, "Conversation not found");
108
129
  const agentId = params.agentId;
109
- conv.participants = conv.participants.filter((p) => p.agent_id !== agentId);
110
- conv.updated_at = new Date().toISOString();
111
- this.storage.putConversation(conv);
130
+ this.storage.removeParticipant(conversationId, agentId);
131
+ this.storage.touchConversation(conversationId, new Date().toISOString());
112
132
  return { ok: true };
113
133
  });
114
134
  // mail/invite — add agent to conversation
135
+ //
136
+ // Same atomic-add rationale as mail/join; carries an optional role.
115
137
  this.methods.set("mail/invite", (params) => {
116
- const conv = this.storage.getConversation(params.conversationId);
138
+ const conversationId = params.conversationId;
139
+ const conv = this.storage.getConversation(conversationId);
117
140
  if (!conv)
118
141
  throw rpcError(-32001, "Conversation not found");
119
142
  const agentId = params.agentId;
120
- if (!conv.participants.some((p) => p.agent_id === agentId)) {
121
- conv.participants.push({
143
+ const alreadyMember = conv.participants.some((p) => p.agent_id === agentId);
144
+ if (!alreadyMember) {
145
+ const now = new Date().toISOString();
146
+ this.storage.addParticipant(conversationId, {
122
147
  agent_id: agentId,
123
148
  role: params.role,
124
- joined_at: new Date().toISOString(),
149
+ joined_at: now,
125
150
  });
126
- conv.updated_at = new Date().toISOString();
127
- this.storage.putConversation(conv);
151
+ this.storage.touchConversation(conversationId, now);
128
152
  this.events.emit("mail.participant.joined", {
129
153
  conversation_id: conv.id,
130
154
  agent_id: agentId,
@@ -1 +1 @@
1
- {"version":3,"file":"mail-server.js","sourceRoot":"","sources":["../../src/jsonrpc/mail-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mail-server.js","sourceRoot":"","sources":["../../src/jsonrpc/mail-server.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ export interface Storage {
33
33
  role?: string;
34
34
  joined_at: string;
35
35
  }): void;
36
+ /** Remove a participant by agent id. No-op if not present. */
37
+ removeParticipant(conversationId: string, agentId: string): void;
36
38
  listConversations(scope?: string): Conversation[];
37
39
  addTurn(turn: Turn): void;
38
40
  getTurns(conversationId: string): Turn[];
@@ -1 +1 @@
1
- {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/storage/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAGtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,gFAAgF;IAChF,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE,CAAC;IACxD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE,CAAC;IACzC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzD,sFAAsF;IACtF,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAG/C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACtD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAAC;IAC1D,mEAAmE;IACnE,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,gFAAgF;IAChF,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI,CAAC;IACR,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAGlD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC;IAGzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5D"}
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/storage/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,OAAO;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC;IACpC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAGtC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IAC5C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC,gFAAgF;IAChF,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE,CAAC;IACxD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE,CAAC;IACzC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IAC5D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE,CAAC;IACzD,sFAAsF;IACtF,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAG/C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACtD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY,CAAC;IAC1D,mEAAmE;IACnE,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,gFAAgF;IAChF,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI,CAAC;IACR,8DAA8D;IAC9D,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAGlD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE,CAAC;IAGzC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC5D"}
@@ -26,6 +26,7 @@ export declare class InMemoryStorage implements Storage {
26
26
  role?: string;
27
27
  joined_at: string;
28
28
  }): void;
29
+ removeParticipant(conversationId: string, agentId: string): void;
29
30
  listConversations(scope?: string): Conversation[];
30
31
  addTurn(turn: Turn): void;
31
32
  getTurns(conversationId: string): Turn[];
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAI5C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI5B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IAMnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAMrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAKrC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAKzE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE;IAcvD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE;IAUxC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAU3D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAoBxD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;IAKzD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKlE,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI;IAaP,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAQjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE;IAQxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKjC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;CAK3D"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EACP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,eAAgB,YAAW,OAAO;IAC7C,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAA6B;IAI5C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAI5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI5B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IAMnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAMrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAI3C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAKrC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAKzE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkB9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE;IAcvD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE;IAUxC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAU3D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAoBxD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;IAKzD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKlE,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI;IAaP,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQhE,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAQjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE;IAQxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAKjC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;CAK3D"}
@@ -126,6 +126,12 @@ export class InMemoryStorage {
126
126
  joined_at: participant.joined_at,
127
127
  });
128
128
  }
129
+ removeParticipant(conversationId, agentId) {
130
+ const conv = this.conversations.get(conversationId);
131
+ if (!conv)
132
+ return;
133
+ conv.participants = conv.participants.filter((p) => p.agent_id !== agentId);
134
+ }
129
135
  listConversations(scope) {
130
136
  const all = Array.from(this.conversations.values());
131
137
  if (!scope)
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/storage/memory.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,7 @@ export declare class SqliteStorage implements Storage {
38
38
  role?: string;
39
39
  joined_at: string;
40
40
  }): void;
41
+ removeParticipant(conversationId: string, agentId: string): void;
41
42
  listConversations(scope?: string): Conversation[];
42
43
  addTurn(turn: Turn): void;
43
44
  getTurns(conversationId: string): Turn[];
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EAIP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,UAAU,CAAU;IAC5B,iCAAiC;IACjC,OAAO,CAAC,CAAC,CAA4B;gBAEzB,IAAI,EAAE,oBAAoB;IAmBtC,OAAO,CAAC,OAAO;IA2If,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAO5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoB5B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IASnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAQ3C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IA6CrC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAQzE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAsC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE;IA2BvD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE;IASxC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAW3D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAiCxD,OAAO,CAAC,kBAAkB;IAkB1B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAQrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;IA+BzD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQlE,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI;IAcP,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAgBjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoBzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE;IAWxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAO1C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkBjC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;IAS1D,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,iBAAiB;IAazB,KAAK,IAAI,IAAI;CAKd"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,KAAK,EACL,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,MAAM,EAIP,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEvE,MAAM,WAAW,oBAAoB;IACnC,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qEACiE;IACjE,EAAE,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;IACvB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,UAAU,CAAU;IAC5B,iCAAiC;IACjC,OAAO,CAAC,CAAC,CAA4B;gBAEzB,IAAI,EAAE,oBAAoB;IAmBtC,OAAO,CAAC,OAAO;IA2If,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;IAO5C,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAoB5B,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,EAAE;IASnC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAQ3C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IA6CrC,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAQzE,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAsC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,EAAE;IA2BvD,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,EAAE;IASxC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAW3D,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAiCxD,OAAO,CAAC,kBAAkB;IAkB1B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAQrD,eAAe,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;IA+BzD,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQlE,cAAc,CACZ,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAClE,IAAI;IAcP,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAShE,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAgBjD,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAoBzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,EAAE;IAWxC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAO1C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAkBjC,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE;IAS1D,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,iBAAiB;IAazB,KAAK,IAAI,IAAI;CAKd"}
@@ -370,6 +370,12 @@ export class SqliteStorage {
370
370
  (conversation_id, agent_id, role, joined_at) VALUES (?, ?, ?, ?)`)
371
371
  .run(conversationId, participant.agent_id, participant.role ?? null, participant.joined_at);
372
372
  }
373
+ removeParticipant(conversationId, agentId) {
374
+ this.db
375
+ .prepare(`DELETE FROM ${this.p("participants")}
376
+ WHERE conversation_id = ? AND agent_id = ?`)
377
+ .run(conversationId, agentId);
378
+ }
373
379
  listConversations(scope) {
374
380
  let rows;
375
381
  if (scope) {
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/storage/sqlite.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inbox",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
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",
@@ -13,7 +13,12 @@
13
13
  * @module agent-inbox/jsonrpc/mail-push-types
14
14
  */
15
15
 
16
- import type { Turn, ContentType, MessageContent } from "../types.js";
16
+ import type {
17
+ Turn,
18
+ ContentType,
19
+ MessageContent,
20
+ Conversation,
21
+ } from "../types.js";
17
22
 
18
23
  /**
19
24
  * The canonical JSON-RPC method name for server-pushed turn delivery.
@@ -47,14 +52,38 @@ export interface MailTurnReceivedParams {
47
52
  * `"low"` | `"normal"` | `"high"` | `"urgent"`
48
53
  */
49
54
  importance?: string;
55
+
56
+ /**
57
+ * Optional parent-conversation context. Populated when the fan-out site
58
+ * can resolve the turn's conversation (see `resolveConversation` in
59
+ * {@link MailPushBridgeConfig}). Lets receivers filter/route the push —
60
+ * e.g. "is a local agent a participant?", "is this a spec-thread vs a
61
+ * dispatch delivery channel?" — without a round-trip back to the hub.
62
+ * Omitted when the fan-out site only has the turn in scope.
63
+ */
64
+ conversation?: {
65
+ scope: string;
66
+ subject?: string;
67
+ metadata?: Record<string, unknown>;
68
+ /** Participant agent ids (roles omitted; use `mail/presence` for detail). */
69
+ participants?: string[];
70
+ };
50
71
  }
51
72
 
52
73
  /**
53
74
  * Build a `MailTurnReceivedParams` payload from a stored {@link Turn}.
54
75
  * Centralizes field-mapping so consumers can't drift from the canonical
55
76
  * shape.
77
+ *
78
+ * When `conversation` is supplied, its scope/subject/metadata/participant
79
+ * ids are folded into an optional `conversation` block so receivers can
80
+ * filter/route without a round-trip. Omit it to send turn fields only
81
+ * (backward-compatible with pre-0.2.4 receivers).
56
82
  */
57
- export function buildMailTurnReceivedParams(turn: Turn): MailTurnReceivedParams {
83
+ export function buildMailTurnReceivedParams(
84
+ turn: Turn,
85
+ conversation?: Conversation
86
+ ): MailTurnReceivedParams {
58
87
  return {
59
88
  conversation_id: turn.conversation_id,
60
89
  turn_id: turn.id,
@@ -64,5 +93,17 @@ export function buildMailTurnReceivedParams(turn: Turn): MailTurnReceivedParams
64
93
  ...(turn.thread_id ? { thread_id: turn.thread_id } : {}),
65
94
  created_at: turn.created_at,
66
95
  ...(turn.importance ? { importance: turn.importance } : {}),
96
+ ...(conversation
97
+ ? {
98
+ conversation: {
99
+ scope: conversation.scope,
100
+ ...(conversation.subject
101
+ ? { subject: conversation.subject }
102
+ : {}),
103
+ metadata: conversation.metadata,
104
+ participants: conversation.participants.map((p) => p.agent_id),
105
+ },
106
+ }
107
+ : {}),
67
108
  };
68
109
  }
@@ -22,7 +22,7 @@
22
22
  */
23
23
 
24
24
  import type { EventEmitter } from "node:events";
25
- import type { Turn } from "../types.js";
25
+ import type { Turn, Conversation } from "../types.js";
26
26
  import {
27
27
  MAIL_TURN_RECEIVED_METHOD,
28
28
  buildMailTurnReceivedParams,
@@ -76,6 +76,18 @@ export interface MailPushBridgeConfig<
76
76
  params: MailTurnReceivedParams,
77
77
  ) => void | Promise<void>;
78
78
 
79
+ /**
80
+ * Optional resolver for the turn's parent conversation. When provided,
81
+ * the resolved conversation's scope/subject/metadata/participants are
82
+ * folded into the notification `params.conversation` block so receivers
83
+ * can filter/route without a round-trip back to the hub. Return
84
+ * `undefined` to omit context for a given turn (the notification still
85
+ * carries all turn fields). Kept as an injected resolver rather than a
86
+ * storage dependency so the factory stays transport- and
87
+ * storage-agnostic.
88
+ */
89
+ resolveConversation?: (turn: Turn) => Conversation | undefined;
90
+
79
91
  /** Optional logger. Defaults to console.log. */
80
92
  log?: (msg: string) => void;
81
93
  }
@@ -93,7 +105,13 @@ export interface MailPushBridge {
93
105
  export function createMailPushBridge<
94
106
  TSubscriber extends MailPushSubscriber = MailPushSubscriber,
95
107
  >(config: MailPushBridgeConfig<TSubscriber>): MailPushBridge {
96
- const { mailEvents, getSubscribers, sendNotification, log = () => {} } = config;
108
+ const {
109
+ mailEvents,
110
+ getSubscribers,
111
+ sendNotification,
112
+ resolveConversation,
113
+ log = () => {},
114
+ } = config;
97
115
 
98
116
  const onTurnAdded = (turn: unknown): void => {
99
117
  if (!turn || typeof turn !== "object") return;
@@ -116,7 +134,20 @@ export function createMailPushBridge<
116
134
 
117
135
  if (subscribers.length === 0) return;
118
136
 
119
- const params = buildMailTurnReceivedParams(t);
137
+ let conversation: Conversation | undefined;
138
+ if (resolveConversation) {
139
+ try {
140
+ conversation = resolveConversation(t);
141
+ } catch (err) {
142
+ // Non-fatal: fall back to a context-less notification rather than
143
+ // dropping the turn. Receivers degrade to a hub round-trip.
144
+ log(
145
+ `[mail-push] resolveConversation threw for turn ${t.id}: ${(err as Error).message}`,
146
+ );
147
+ }
148
+ }
149
+
150
+ const params = buildMailTurnReceivedParams(t, conversation);
120
151
 
121
152
  for (const subscriber of subscribers) {
122
153
  try {
@@ -56,11 +56,24 @@ export class MailJsonRpcServer {
56
56
  }
57
57
 
58
58
  private registerMethods(): void {
59
- // mail/create — create a conversation
59
+ // mail/create — create a conversation (create-or-get)
60
+ //
61
+ // When an explicit `id` is supplied and already exists, return the
62
+ // existing conversation untouched instead of overwriting it. Callers
63
+ // use `mail/create` as an idempotent lazy factory by passing a
64
+ // deterministic id (dispatch threads, spec threads); because
65
+ // `putConversation` is a destructive upsert that re-syncs participants
66
+ // from the passed object (built here with `participants: []`), a blind
67
+ // re-create would silently wipe participants and overwrite metadata.
60
68
  this.methods.set("mail/create", (params) => {
69
+ const explicitId = params.id as string | undefined;
70
+ if (explicitId) {
71
+ const existing = this.storage.getConversation(explicitId);
72
+ if (existing) return existing;
73
+ }
61
74
  const now = new Date().toISOString();
62
75
  const conv: Conversation = {
63
- id: (params.id as string) ?? `conv-${ulid()}`,
76
+ id: explicitId ?? `conv-${ulid()}`,
64
77
  scope: (params.scope as string) ?? "default",
65
78
  subject: params.subject as string | undefined,
66
79
  status: "active",
@@ -120,19 +133,25 @@ export class MailJsonRpcServer {
120
133
  });
121
134
 
122
135
  // mail/join — add self as participant
136
+ //
137
+ // Uses the storage `addParticipant` helper (atomic INSERT OR IGNORE)
138
+ // rather than read-modify-write via `putConversation`, which rewrites
139
+ // the entire participant list and can drop a concurrent join/invite.
123
140
  this.methods.set("mail/join", (params) => {
124
- const conv = this.storage.getConversation(
125
- params.conversationId as string
126
- );
141
+ const conversationId = params.conversationId as string;
142
+ const conv = this.storage.getConversation(conversationId);
127
143
  if (!conv) throw rpcError(-32001, "Conversation not found");
128
144
  const agentId = params.agentId as string;
129
- if (!conv.participants.some((p) => p.agent_id === agentId)) {
130
- conv.participants.push({
145
+ const alreadyMember = conv.participants.some(
146
+ (p) => p.agent_id === agentId
147
+ );
148
+ if (!alreadyMember) {
149
+ const now = new Date().toISOString();
150
+ this.storage.addParticipant(conversationId, {
131
151
  agent_id: agentId,
132
- joined_at: new Date().toISOString(),
152
+ joined_at: now,
133
153
  });
134
- conv.updated_at = new Date().toISOString();
135
- this.storage.putConversation(conv);
154
+ this.storage.touchConversation(conversationId, now);
136
155
  this.events.emit("mail.participant.joined", {
137
156
  conversation_id: conv.id,
138
157
  agent_id: agentId,
@@ -143,34 +162,34 @@ export class MailJsonRpcServer {
143
162
 
144
163
  // mail/leave — remove self from conversation
145
164
  this.methods.set("mail/leave", (params) => {
146
- const conv = this.storage.getConversation(
147
- params.conversationId as string
148
- );
165
+ const conversationId = params.conversationId as string;
166
+ const conv = this.storage.getConversation(conversationId);
149
167
  if (!conv) throw rpcError(-32001, "Conversation not found");
150
168
  const agentId = params.agentId as string;
151
- conv.participants = conv.participants.filter(
152
- (p) => p.agent_id !== agentId
153
- );
154
- conv.updated_at = new Date().toISOString();
155
- this.storage.putConversation(conv);
169
+ this.storage.removeParticipant(conversationId, agentId);
170
+ this.storage.touchConversation(conversationId, new Date().toISOString());
156
171
  return { ok: true };
157
172
  });
158
173
 
159
174
  // mail/invite — add agent to conversation
175
+ //
176
+ // Same atomic-add rationale as mail/join; carries an optional role.
160
177
  this.methods.set("mail/invite", (params) => {
161
- const conv = this.storage.getConversation(
162
- params.conversationId as string
163
- );
178
+ const conversationId = params.conversationId as string;
179
+ const conv = this.storage.getConversation(conversationId);
164
180
  if (!conv) throw rpcError(-32001, "Conversation not found");
165
181
  const agentId = params.agentId as string;
166
- if (!conv.participants.some((p) => p.agent_id === agentId)) {
167
- conv.participants.push({
182
+ const alreadyMember = conv.participants.some(
183
+ (p) => p.agent_id === agentId
184
+ );
185
+ if (!alreadyMember) {
186
+ const now = new Date().toISOString();
187
+ this.storage.addParticipant(conversationId, {
168
188
  agent_id: agentId,
169
189
  role: params.role as string | undefined,
170
- joined_at: new Date().toISOString(),
190
+ joined_at: now,
171
191
  });
172
- conv.updated_at = new Date().toISOString();
173
- this.storage.putConversation(conv);
192
+ this.storage.touchConversation(conversationId, now);
174
193
  this.events.emit("mail.participant.joined", {
175
194
  conversation_id: conv.id,
176
195
  agent_id: agentId,
@@ -46,6 +46,8 @@ export interface Storage {
46
46
  conversationId: string,
47
47
  participant: { agent_id: string; role?: string; joined_at: string }
48
48
  ): void;
49
+ /** Remove a participant by agent id. No-op if not present. */
50
+ removeParticipant(conversationId: string, agentId: string): void;
49
51
  listConversations(scope?: string): Conversation[];
50
52
 
51
53
  // Turns
@@ -152,6 +152,14 @@ export class InMemoryStorage implements Storage {
152
152
  });
153
153
  }
154
154
 
155
+ removeParticipant(conversationId: string, agentId: string): void {
156
+ const conv = this.conversations.get(conversationId);
157
+ if (!conv) return;
158
+ conv.participants = conv.participants.filter(
159
+ (p) => p.agent_id !== agentId
160
+ );
161
+ }
162
+
155
163
  listConversations(scope?: string): Conversation[] {
156
164
  const all = Array.from(this.conversations.values());
157
165
  if (!scope) return all;
@@ -491,6 +491,15 @@ export class SqliteStorage implements Storage {
491
491
  );
492
492
  }
493
493
 
494
+ removeParticipant(conversationId: string, agentId: string): void {
495
+ this.db
496
+ .prepare(
497
+ `DELETE FROM ${this.p("participants")}
498
+ WHERE conversation_id = ? AND agent_id = ?`
499
+ )
500
+ .run(conversationId, agentId);
501
+ }
502
+
494
503
  listConversations(scope?: string): Conversation[] {
495
504
  let rows: ConversationRow[];
496
505
  if (scope) {
@@ -11,7 +11,7 @@ import {
11
11
  buildMailTurnReceivedParams,
12
12
  type MailPushSubscriber,
13
13
  } from "../src/index.js";
14
- import type { Turn } from "../src/types.js";
14
+ import type { Turn, Conversation } from "../src/types.js";
15
15
 
16
16
  function makeTurn(overrides: Partial<Turn> = {}): Turn {
17
17
  return {
@@ -25,6 +25,23 @@ function makeTurn(overrides: Partial<Turn> = {}): Turn {
25
25
  };
26
26
  }
27
27
 
28
+ function makeConversation(overrides: Partial<Conversation> = {}): Conversation {
29
+ return {
30
+ id: "conv-1",
31
+ scope: "spec-thread",
32
+ subject: "Spec: Auth",
33
+ status: "active",
34
+ participants: [
35
+ { agent_id: "codex-1", role: "reviewer", joined_at: "2026-05-04T00:00:00.000Z" },
36
+ { agent_id: "user-1", role: "initiator", joined_at: "2026-05-04T00:00:00.000Z" },
37
+ ],
38
+ metadata: { spec_id: "spec-1" },
39
+ created_at: "2026-05-04T00:00:00.000Z",
40
+ updated_at: "2026-05-04T00:00:00.000Z",
41
+ ...overrides,
42
+ };
43
+ }
44
+
28
45
  describe("createMailPushBridge", () => {
29
46
  it("subscribes to mail.turn.added on construction", () => {
30
47
  const events = new EventEmitter();
@@ -232,6 +249,66 @@ describe("createMailPushBridge", () => {
232
249
  expect(params).not.toHaveProperty("importance");
233
250
  });
234
251
 
252
+ it("folds conversation context into params when resolveConversation is provided", () => {
253
+ const events = new EventEmitter();
254
+ const sendNotification = vi.fn();
255
+
256
+ createMailPushBridge({
257
+ mailEvents: events,
258
+ getSubscribers: () => [{ id: "swarm-1" }],
259
+ sendNotification,
260
+ resolveConversation: () => makeConversation(),
261
+ });
262
+
263
+ events.emit("mail.turn.added", makeTurn());
264
+ expect(sendNotification).toHaveBeenCalledOnce();
265
+ const params = sendNotification.mock.calls[0][2];
266
+ expect(params.conversation).toEqual({
267
+ scope: "spec-thread",
268
+ subject: "Spec: Auth",
269
+ metadata: { spec_id: "spec-1" },
270
+ participants: ["codex-1", "user-1"],
271
+ });
272
+ });
273
+
274
+ it("omits the conversation block when resolveConversation returns undefined", () => {
275
+ const events = new EventEmitter();
276
+ const sendNotification = vi.fn();
277
+
278
+ createMailPushBridge({
279
+ mailEvents: events,
280
+ getSubscribers: () => [{ id: "swarm-1" }],
281
+ sendNotification,
282
+ resolveConversation: () => undefined,
283
+ });
284
+
285
+ events.emit("mail.turn.added", makeTurn());
286
+ const params = sendNotification.mock.calls[0][2];
287
+ expect(params).not.toHaveProperty("conversation");
288
+ });
289
+
290
+ it("degrades to a context-less notification when resolveConversation throws", () => {
291
+ const events = new EventEmitter();
292
+ const logs: string[] = [];
293
+ const sendNotification = vi.fn();
294
+
295
+ createMailPushBridge({
296
+ mailEvents: events,
297
+ getSubscribers: () => [{ id: "swarm-1" }],
298
+ sendNotification,
299
+ resolveConversation: () => {
300
+ throw new Error("storage down");
301
+ },
302
+ log: (msg) => logs.push(msg),
303
+ });
304
+
305
+ events.emit("mail.turn.added", makeTurn());
306
+ // Notification still sent, just without conversation context.
307
+ expect(sendNotification).toHaveBeenCalledOnce();
308
+ expect(sendNotification.mock.calls[0][2]).not.toHaveProperty("conversation");
309
+ expect(logs.some((l) => l.includes("resolveConversation threw"))).toBe(true);
310
+ });
311
+
235
312
  it("stop() is idempotent", () => {
236
313
  const events = new EventEmitter();
237
314
  const bridge = createMailPushBridge({
@@ -255,4 +332,27 @@ describe("buildMailTurnReceivedParams", () => {
255
332
  const params = buildMailTurnReceivedParams(makeTurn());
256
333
  expect(params).not.toHaveProperty("importance");
257
334
  });
335
+
336
+ it("maps conversation context when a conversation is passed", () => {
337
+ const params = buildMailTurnReceivedParams(makeTurn(), makeConversation());
338
+ expect(params.conversation).toEqual({
339
+ scope: "spec-thread",
340
+ subject: "Spec: Auth",
341
+ metadata: { spec_id: "spec-1" },
342
+ participants: ["codex-1", "user-1"],
343
+ });
344
+ });
345
+
346
+ it("omits subject in conversation context when the conversation has none", () => {
347
+ const params = buildMailTurnReceivedParams(
348
+ makeTurn(),
349
+ makeConversation({ subject: undefined })
350
+ );
351
+ expect(params.conversation).not.toHaveProperty("subject");
352
+ });
353
+
354
+ it("omits the conversation block entirely when no conversation is passed", () => {
355
+ const params = buildMailTurnReceivedParams(makeTurn());
356
+ expect(params).not.toHaveProperty("conversation");
357
+ });
258
358
  });
@@ -34,6 +34,55 @@ describe("MailJsonRpcServer", () => {
34
34
  expect(conv.subject).toBe("Test conv");
35
35
  expect(conv.id).toMatch(/^conv-/);
36
36
  });
37
+
38
+ it("is create-or-get: returns the existing conversation for a repeated explicit id", async () => {
39
+ const first = await rpc("mail/create", {
40
+ id: "spec-thread:res-1:spec-1",
41
+ subject: "Spec: Auth",
42
+ scope: "spec-thread",
43
+ metadata: { spec_id: "spec-1" },
44
+ });
45
+ const firstConv = first.result as { id: string };
46
+
47
+ // Invite a participant, then re-create with the same id.
48
+ await rpc("mail/invite", {
49
+ conversationId: firstConv.id,
50
+ agentId: "codex-1",
51
+ role: "reviewer",
52
+ });
53
+
54
+ const second = await rpc("mail/create", {
55
+ id: "spec-thread:res-1:spec-1",
56
+ subject: "Different subject that must be ignored",
57
+ scope: "spec-thread",
58
+ metadata: { spec_id: "OVERWRITE-ME" },
59
+ });
60
+ const secondConv = second.result as {
61
+ id: string;
62
+ subject: string;
63
+ participants: unknown[];
64
+ metadata: Record<string, unknown>;
65
+ };
66
+
67
+ // Same conversation returned untouched — no participant wipe, no
68
+ // metadata/subject overwrite.
69
+ expect(secondConv.id).toBe(firstConv.id);
70
+ expect(secondConv.subject).toBe("Spec: Auth");
71
+ expect(secondConv.metadata.spec_id).toBe("spec-1");
72
+ expect(secondConv.participants).toHaveLength(1);
73
+
74
+ const stored = storage.getConversation(firstConv.id)!;
75
+ expect(stored.participants).toHaveLength(1);
76
+ expect(stored.participants[0].agent_id).toBe("codex-1");
77
+ });
78
+
79
+ it("does not emit mail.created when returning an existing conversation", async () => {
80
+ const listener = vi.fn();
81
+ await rpc("mail/create", { id: "conv-fixed", subject: "First" });
82
+ events.on("mail.created", listener);
83
+ await rpc("mail/create", { id: "conv-fixed", subject: "Second" });
84
+ expect(listener).not.toHaveBeenCalled();
85
+ });
37
86
  });
38
87
 
39
88
  describe("mail/get", () => {
@@ -132,6 +181,33 @@ describe("MailJsonRpcServer", () => {
132
181
  conv = storage.getConversation(convId)!;
133
182
  expect(conv.participants).toHaveLength(0);
134
183
  });
184
+
185
+ it("mail/leave removes only the target, preserving other participants", async () => {
186
+ const createResp = await rpc("mail/create", { subject: "Test" });
187
+ const convId = (createResp.result as { id: string }).id;
188
+
189
+ await rpc("mail/join", { conversationId: convId, agentId: "alice" });
190
+ await rpc("mail/join", { conversationId: convId, agentId: "bob" });
191
+
192
+ await rpc("mail/leave", { conversationId: convId, agentId: "alice" });
193
+ const conv = storage.getConversation(convId)!;
194
+ expect(conv.participants.map((p) => p.agent_id)).toEqual(["bob"]);
195
+ });
196
+
197
+ it("mail/leave is a no-op for a non-participant", async () => {
198
+ const createResp = await rpc("mail/create", { subject: "Test" });
199
+ const convId = (createResp.result as { id: string }).id;
200
+ await rpc("mail/join", { conversationId: convId, agentId: "bob" });
201
+
202
+ const resp = await rpc("mail/leave", { conversationId: convId, agentId: "ghost" });
203
+ expect((resp.result as { ok: boolean }).ok).toBe(true);
204
+ expect(storage.getConversation(convId)!.participants).toHaveLength(1);
205
+ });
206
+
207
+ it("mail/leave errors on a missing conversation", async () => {
208
+ const resp = await rpc("mail/leave", { conversationId: "nope", agentId: "alice" });
209
+ expect(resp.error?.code).toBe(-32001);
210
+ });
135
211
  });
136
212
 
137
213
  describe("mail/invite", () => {
@@ -145,6 +221,38 @@ describe("MailJsonRpcServer", () => {
145
221
  expect(conv.participants[0].agent_id).toBe("bob");
146
222
  expect(conv.participants[0].role).toBe("reviewer");
147
223
  });
224
+
225
+ it("is idempotent and preserves other participants", async () => {
226
+ const createResp = await rpc("mail/create", { subject: "Test" });
227
+ const convId = (createResp.result as { id: string }).id;
228
+
229
+ await rpc("mail/invite", { conversationId: convId, agentId: "alice" });
230
+ await rpc("mail/invite", { conversationId: convId, agentId: "bob", role: "reviewer" });
231
+ // Duplicate invite — no-op, does not disturb the existing list.
232
+ await rpc("mail/invite", { conversationId: convId, agentId: "bob", role: "editor" });
233
+
234
+ const conv = storage.getConversation(convId)!;
235
+ expect(conv.participants.map((p) => p.agent_id)).toEqual(["alice", "bob"]);
236
+ // Role from the first invite is retained (duplicate is a no-op).
237
+ expect(conv.participants.find((p) => p.agent_id === "bob")!.role).toBe("reviewer");
238
+ });
239
+
240
+ it("does not emit mail.participant.joined for a duplicate invite", async () => {
241
+ const listener = vi.fn();
242
+ const createResp = await rpc("mail/create", { subject: "Test" });
243
+ const convId = (createResp.result as { id: string }).id;
244
+ events.on("mail.participant.joined", listener);
245
+
246
+ await rpc("mail/invite", { conversationId: convId, agentId: "bob" });
247
+ await rpc("mail/invite", { conversationId: convId, agentId: "bob" });
248
+
249
+ expect(listener).toHaveBeenCalledOnce();
250
+ });
251
+
252
+ it("errors on a missing conversation", async () => {
253
+ const resp = await rpc("mail/invite", { conversationId: "nope", agentId: "bob" });
254
+ expect(resp.error?.code).toBe(-32001);
255
+ });
148
256
  });
149
257
 
150
258
  describe("mail/turn", () => {