agent-inbox 0.1.8 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CLAUDE.md +44 -7
  2. package/README.md +67 -24
  3. package/dist/federation/connection-manager.d.ts +13 -2
  4. package/dist/federation/connection-manager.d.ts.map +1 -1
  5. package/dist/federation/connection-manager.js +109 -10
  6. package/dist/federation/connection-manager.js.map +1 -1
  7. package/dist/index.d.mts +2 -0
  8. package/dist/index.d.ts +25 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +58 -5
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +1 -0
  13. package/dist/index.mjs.map +1 -0
  14. package/dist/ipc/ipc-server.d.ts +2 -0
  15. package/dist/ipc/ipc-server.d.ts.map +1 -1
  16. package/dist/ipc/ipc-server.js +48 -0
  17. package/dist/ipc/ipc-server.js.map +1 -1
  18. package/dist/map/map-client.d.ts +100 -0
  19. package/dist/map/map-client.d.ts.map +1 -1
  20. package/dist/map/map-client.js +61 -0
  21. package/dist/map/map-client.js.map +1 -1
  22. package/dist/mcp/mcp-proxy.d.ts +28 -0
  23. package/dist/mcp/mcp-proxy.d.ts.map +1 -0
  24. package/dist/mcp/mcp-proxy.js +280 -0
  25. package/dist/mcp/mcp-proxy.js.map +1 -0
  26. package/dist/mesh/delivery-bridge.d.ts +47 -0
  27. package/dist/mesh/delivery-bridge.d.ts.map +1 -0
  28. package/dist/mesh/delivery-bridge.js +73 -0
  29. package/dist/mesh/delivery-bridge.js.map +1 -0
  30. package/dist/mesh/mesh-connector.d.ts +29 -0
  31. package/dist/mesh/mesh-connector.d.ts.map +1 -0
  32. package/dist/mesh/mesh-connector.js +36 -0
  33. package/dist/mesh/mesh-connector.js.map +1 -0
  34. package/dist/mesh/mesh-transport.d.ts +70 -0
  35. package/dist/mesh/mesh-transport.d.ts.map +1 -0
  36. package/dist/mesh/mesh-transport.js +92 -0
  37. package/dist/mesh/mesh-transport.js.map +1 -0
  38. package/dist/mesh/type-mapper.d.ts +67 -0
  39. package/dist/mesh/type-mapper.d.ts.map +1 -0
  40. package/dist/mesh/type-mapper.js +165 -0
  41. package/dist/mesh/type-mapper.js.map +1 -0
  42. package/dist/types.d.ts +29 -2
  43. package/dist/types.d.ts.map +1 -1
  44. package/docs/CLAUDE-CODE-SWARM-PROPOSAL.md +137 -0
  45. package/package.json +7 -2
  46. package/src/federation/connection-manager.ts +125 -10
  47. package/src/index.ts +96 -5
  48. package/src/ipc/ipc-server.ts +58 -0
  49. package/src/map/map-client.ts +152 -0
  50. package/src/mcp/mcp-proxy.ts +326 -0
  51. package/src/mesh/delivery-bridge.ts +110 -0
  52. package/src/mesh/mesh-connector.ts +41 -0
  53. package/src/mesh/mesh-transport.ts +157 -0
  54. package/src/mesh/type-mapper.ts +239 -0
  55. package/src/types.ts +33 -1
  56. package/test/federation/integration.test.ts +37 -3
  57. package/test/federation/sdk-integration.test.ts +4 -8
  58. package/test/ipc-new-commands.test.ts +200 -0
  59. package/test/mcp-proxy.test.ts +191 -0
  60. package/test/mesh/delivery-bridge.test.ts +178 -0
  61. package/test/mesh/e2e-mesh.test.ts +527 -0
  62. package/test/mesh/e2e-real-meshpeer.test.ts +629 -0
  63. package/test/mesh/federation-mesh.test.ts +269 -0
  64. package/test/mesh/mesh-connector.test.ts +66 -0
  65. package/test/mesh/mesh-transport.test.ts +191 -0
  66. package/test/mesh/meshpeer-integration.test.ts +442 -0
  67. package/test/mesh/mock-mesh.ts +125 -0
  68. package/test/mesh/mock-meshpeer.ts +266 -0
  69. package/test/mesh/type-mapper.test.ts +226 -0
  70. package/docs/PLAN.md +0 -545
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-transport.js","sourceRoot":"","sources":["../../src/mesh/mesh-transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Type mapping between agentic-mesh MAP messages and agent-inbox messages.
3
+ *
4
+ * Translates MAP Message (from agentic-mesh's MapServer/FederationGateway)
5
+ * into agent-inbox's internal Message format and vice versa.
6
+ *
7
+ * Inbox-specific fields (subject, thread_tag, importance, recipientKind)
8
+ * are encoded in the MAP message's `_meta` vendor extension field.
9
+ */
10
+ import type { Message } from "../types.js";
11
+ /** MAP Message as delivered by agentic-mesh's MapServer. */
12
+ export interface MapMessage {
13
+ id: string;
14
+ from: string;
15
+ to: MapAddress;
16
+ timestamp: number;
17
+ payload?: unknown;
18
+ meta?: MapMessageMeta;
19
+ _meta?: Record<string, unknown>;
20
+ }
21
+ export type MapAddress = string | {
22
+ agent: string;
23
+ } | {
24
+ agents: string[];
25
+ } | {
26
+ scope: string;
27
+ } | {
28
+ role: string;
29
+ within?: string;
30
+ } | {
31
+ broadcast: true;
32
+ } | {
33
+ system: string;
34
+ agent: string;
35
+ } | Record<string, unknown>;
36
+ export interface MapMessageMeta {
37
+ priority?: "urgent" | "high" | "normal" | "low";
38
+ correlationId?: string;
39
+ delivery?: "fire-and-forget" | "acknowledged" | "guaranteed";
40
+ _meta?: Record<string, unknown>;
41
+ }
42
+ /**
43
+ * Convert a MAP Message from agentic-mesh into an agent-inbox Message.
44
+ *
45
+ * Inbox-specific fields are read from `_meta` (or `meta._meta`):
46
+ * - `_meta.subject` → `subject`
47
+ * - `_meta.threadTag` / `meta.correlationId` → `thread_tag`
48
+ * - `_meta.inReplyTo` → `in_reply_to`
49
+ * - `_meta.recipientKind` → per-recipient `kind`
50
+ * - `_meta.inboxMessageId` → used as `id` if present
51
+ * - `meta.priority` → `importance`
52
+ */
53
+ export declare function mapMessageToInbox(mapMsg: MapMessage, scope?: string): Message;
54
+ /**
55
+ * Convert an agent-inbox Message into partial MAP message fields
56
+ * suitable for sending via `AgentConnection.send()` or `FederationGateway.route()`.
57
+ *
58
+ * Returns `to`, `payload`, and `meta` (including `_meta` for inbox fields).
59
+ */
60
+ export declare function inboxMessageToMap(msg: Message): {
61
+ to: MapAddress;
62
+ payload: unknown;
63
+ meta: MapMessageMeta & {
64
+ _meta: Record<string, unknown>;
65
+ };
66
+ };
67
+ //# sourceMappingURL=type-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapper.d.ts","sourceRoot":"","sources":["../../src/mesh/type-mapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,OAAO,EAIR,MAAM,aAAa,CAAC;AAMrB,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,UAAU,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,UAAU,GAClB,MAAM,GACN;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,SAAS,EAAE,IAAI,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,cAAc,GAAG,YAAY,CAAC;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,KAAK,GAAE,MAAkB,GACxB,OAAO,CA6BT;AA+ED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG;IAC/C,EAAE,EAAE,UAAU,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;CAC3D,CAgCA"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Type mapping between agentic-mesh MAP messages and agent-inbox messages.
3
+ *
4
+ * Translates MAP Message (from agentic-mesh's MapServer/FederationGateway)
5
+ * into agent-inbox's internal Message format and vice versa.
6
+ *
7
+ * Inbox-specific fields (subject, thread_tag, importance, recipientKind)
8
+ * are encoded in the MAP message's `_meta` vendor extension field.
9
+ */
10
+ import { ulid } from "ulid";
11
+ import { normalizeContent } from "../router/message-router.js";
12
+ // ---------------------------------------------------------------------------
13
+ // MAP → Inbox
14
+ // ---------------------------------------------------------------------------
15
+ /**
16
+ * Convert a MAP Message from agentic-mesh into an agent-inbox Message.
17
+ *
18
+ * Inbox-specific fields are read from `_meta` (or `meta._meta`):
19
+ * - `_meta.subject` → `subject`
20
+ * - `_meta.threadTag` / `meta.correlationId` → `thread_tag`
21
+ * - `_meta.inReplyTo` → `in_reply_to`
22
+ * - `_meta.recipientKind` → per-recipient `kind`
23
+ * - `_meta.inboxMessageId` → used as `id` if present
24
+ * - `meta.priority` → `importance`
25
+ */
26
+ export function mapMessageToInbox(mapMsg, scope = "default") {
27
+ const vendorMeta = mapMsg._meta ?? mapMsg.meta?._meta ?? {};
28
+ const recipients = resolveMapAddress(mapMsg.to, vendorMeta);
29
+ const priority = mapMsg.meta?.priority;
30
+ const importance = priority === "urgent"
31
+ ? "urgent"
32
+ : priority === "high"
33
+ ? "high"
34
+ : priority === "low"
35
+ ? "low"
36
+ : "normal";
37
+ return {
38
+ id: vendorMeta.inboxMessageId ?? ulid(),
39
+ scope,
40
+ sender_id: mapMsg.from,
41
+ recipients,
42
+ content: normalizeContent(mapMsg.payload),
43
+ importance,
44
+ subject: vendorMeta.subject,
45
+ thread_tag: vendorMeta.threadTag ?? mapMsg.meta?.correlationId,
46
+ in_reply_to: vendorMeta.inReplyTo,
47
+ conversation_id: vendorMeta.conversationId,
48
+ metadata: stripInboxKeys(vendorMeta),
49
+ created_at: new Date(mapMsg.timestamp).toISOString(),
50
+ };
51
+ }
52
+ /**
53
+ * Resolve a MAP Address into agent-inbox Recipients.
54
+ */
55
+ function resolveMapAddress(addr, vendorMeta) {
56
+ const kind = vendorMeta.recipientKind ?? "to";
57
+ const now = new Date().toISOString();
58
+ if (typeof addr === "string") {
59
+ return [{ agent_id: addr, kind, delivered_at: now }];
60
+ }
61
+ // Federated address must be checked before simple agent address
62
+ // since { system: "x", agent: "y" } also matches "agent" in addr
63
+ if ("system" in addr &&
64
+ "agent" in addr &&
65
+ typeof addr.system === "string" &&
66
+ typeof addr.agent === "string") {
67
+ return [
68
+ { agent_id: `${addr.agent}@${addr.system}`, kind, delivered_at: now },
69
+ ];
70
+ }
71
+ if ("agent" in addr && typeof addr.agent === "string") {
72
+ return [{ agent_id: addr.agent, kind, delivered_at: now }];
73
+ }
74
+ if ("agents" in addr && Array.isArray(addr.agents)) {
75
+ return addr.agents.map((agentId) => ({
76
+ agent_id: agentId,
77
+ kind,
78
+ delivered_at: now,
79
+ }));
80
+ }
81
+ if ("scope" in addr && typeof addr.scope === "string") {
82
+ return [{ agent_id: addr.scope, kind, delivered_at: now }];
83
+ }
84
+ if ("broadcast" in addr) {
85
+ return [{ agent_id: "*", kind, delivered_at: now }];
86
+ }
87
+ return [];
88
+ }
89
+ // Keys that belong to the inbox layer, not stored in metadata
90
+ const INBOX_META_KEYS = new Set([
91
+ "subject",
92
+ "threadTag",
93
+ "inReplyTo",
94
+ "recipientKind",
95
+ "inboxMessageId",
96
+ "conversationId",
97
+ "importance",
98
+ ]);
99
+ function stripInboxKeys(meta) {
100
+ const result = {};
101
+ for (const [k, v] of Object.entries(meta)) {
102
+ if (!INBOX_META_KEYS.has(k)) {
103
+ result[k] = v;
104
+ }
105
+ }
106
+ return result;
107
+ }
108
+ // ---------------------------------------------------------------------------
109
+ // Inbox → MAP
110
+ // ---------------------------------------------------------------------------
111
+ /**
112
+ * Convert an agent-inbox Message into partial MAP message fields
113
+ * suitable for sending via `AgentConnection.send()` or `FederationGateway.route()`.
114
+ *
115
+ * Returns `to`, `payload`, and `meta` (including `_meta` for inbox fields).
116
+ */
117
+ export function inboxMessageToMap(msg) {
118
+ // Build the MAP address from recipients
119
+ const primaryRecipients = msg.recipients.filter((r) => r.kind === "to");
120
+ const to = resolveRecipientsToAddress(primaryRecipients);
121
+ const priority = msg.importance === "urgent"
122
+ ? "urgent"
123
+ : msg.importance === "high"
124
+ ? "high"
125
+ : msg.importance === "low"
126
+ ? "low"
127
+ : "normal";
128
+ return {
129
+ to,
130
+ payload: msg.content,
131
+ meta: {
132
+ priority,
133
+ correlationId: msg.thread_tag,
134
+ _meta: {
135
+ inboxMessageId: msg.id,
136
+ ...(msg.subject ? { subject: msg.subject } : {}),
137
+ ...(msg.thread_tag ? { threadTag: msg.thread_tag } : {}),
138
+ ...(msg.in_reply_to ? { inReplyTo: msg.in_reply_to } : {}),
139
+ ...(msg.conversation_id
140
+ ? { conversationId: msg.conversation_id }
141
+ : {}),
142
+ ...msg.metadata,
143
+ },
144
+ },
145
+ };
146
+ }
147
+ function resolveRecipientsToAddress(recipients) {
148
+ if (recipients.length === 0) {
149
+ return { broadcast: true };
150
+ }
151
+ if (recipients.length === 1) {
152
+ const agentId = recipients[0].agent_id;
153
+ // Check for federated address (agent@system)
154
+ const atIdx = agentId.indexOf("@");
155
+ if (atIdx > 0) {
156
+ return {
157
+ system: agentId.slice(atIdx + 1),
158
+ agent: agentId.slice(0, atIdx),
159
+ };
160
+ }
161
+ return { agent: agentId };
162
+ }
163
+ return { agents: recipients.map((r) => r.agent_id) };
164
+ }
165
+ //# sourceMappingURL=type-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-mapper.js","sourceRoot":"","sources":["../../src/mesh/type-mapper.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -130,14 +130,36 @@ export interface IpcCheckInboxCommand {
130
130
  unreadOnly?: boolean;
131
131
  clear?: boolean;
132
132
  }
133
+ export interface IpcReadThreadCommand {
134
+ action: "read_thread";
135
+ threadTag: string;
136
+ scope?: string;
137
+ }
138
+ export interface IpcListAgentsCommand {
139
+ action: "list_agents";
140
+ scope?: string;
141
+ includeFederated?: boolean;
142
+ }
133
143
  export interface IpcPingCommand {
134
144
  action: "ping";
135
145
  }
136
- export type IpcCommand = IpcSendCommand | IpcEmitCommand | IpcNotifyCommand | IpcCheckInboxCommand | IpcPingCommand;
146
+ export type IpcCommand = IpcSendCommand | IpcEmitCommand | IpcNotifyCommand | IpcCheckInboxCommand | IpcReadThreadCommand | IpcListAgentsCommand | IpcPingCommand;
137
147
  export interface IpcResponse {
138
148
  ok: boolean;
139
149
  messageId?: string;
140
150
  messages?: Message[];
151
+ agents?: Array<{
152
+ agentId: string;
153
+ name?: string;
154
+ scope: string;
155
+ status: string;
156
+ program?: string;
157
+ lastActive?: string;
158
+ location: "local" | "federated";
159
+ peerId?: string;
160
+ }>;
161
+ count?: number;
162
+ threadTag?: string;
141
163
  error?: string;
142
164
  pid?: number;
143
165
  }
@@ -157,7 +179,10 @@ export interface FederatedAddress {
157
179
  }
158
180
  export interface FederationPeerConfig {
159
181
  systemId: string;
160
- url: string;
182
+ /** WebSocket URL for MAP SDK connections. */
183
+ url?: string;
184
+ /** Mesh peer ID for agentic-mesh transport connections. */
185
+ meshPeerId?: string;
161
186
  auth?: FederationAuth;
162
187
  exposure?: ExposurePolicy;
163
188
  }
@@ -172,12 +197,14 @@ export interface ExposurePolicy {
172
197
  scopes?: string[];
173
198
  events?: ExposureLevel;
174
199
  }
200
+ export type FederationTransport = "websocket" | "mesh";
175
201
  export interface FederationLink {
176
202
  peerId: string;
177
203
  sessionId: string;
178
204
  status: "connected" | "disconnected" | "authenticating";
179
205
  exposure: ExposurePolicy;
180
206
  url: string;
207
+ transport: FederationTransport;
181
208
  connectedAt?: string;
182
209
  }
183
210
  export interface SystemId {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ # claude-code-swarm Migration Proposal: Embedded MeshPeer + agent-inbox
2
+
3
+ **Author:** agent-inbox team
4
+ **Date:** 2026-03-16
5
+ **Status:** Proposal
6
+ **Context:** agent-inbox has completed full agentic-mesh integration (Phase 1 + Phase 2). This document proposes migrating claude-code-swarm from its custom WebSocket sidecar to the shared agent-inbox + agentic-mesh stack.
7
+
8
+ ---
9
+
10
+ ## The Problem: Per-Agent-Runtime Reimplementation
11
+
12
+ claude-code-swarm currently uses a custom WebSocket sidecar (~1500 lines) tightly coupled to Claude Code's hook system. It handles MAP connections, agent registration, and message routing. If we want to support a different agent runtime (e.g., OpenAI-based agents, AutoGen, standalone scripts), we'd have to reimplement the sidecar each time.
13
+
14
+ ## The Solution: Three-Layer Architecture
15
+
16
+ ```
17
+ ┌────────────────────────────────────────────────┐
18
+ │ Agent-Specific Adapter (~200 lines) │
19
+ │ (Claude Code hooks, or OpenAI plugin, etc.) │
20
+ ├────────────────────────────────────────────────┤
21
+ │ agent-inbox │
22
+ │ (inbox/outbox, threading, traceability, MCP) │
23
+ ├────────────────────────────────────────────────┤
24
+ │ agentic-mesh (MeshPeer) │
25
+ │ (transport, encryption, MAP protocol, │
26
+ │ federation, discovery, CRDT sync) │
27
+ └────────────────────────────────────────────────┘
28
+ ```
29
+
30
+ **agentic-mesh is the layer every agent shares.** It handles networking, encryption, peer discovery, and MAP protocol once. agent-inbox adds structured messaging on top. The per-agent adapter is just lifecycle translation (~200 lines).
31
+
32
+ ## What's Ready Today
33
+
34
+ ### agent-inbox + agentic-mesh integration (complete)
35
+
36
+ | Capability | Status |
37
+ |-----------|--------|
38
+ | P2P message delivery over encrypted mesh | Working |
39
+ | Offline queuing (both layers) | Working |
40
+ | Agent discovery via MapServer registry | Working |
41
+ | Full MAP scoped addressing | Working |
42
+ | Federation with hop/loop detection | Working (FederationGateway) |
43
+ | `_meta` field passthrough (threading, importance, subjects) | Verified end-to-end |
44
+ | DeliveryHandler bridge (MAP → inbox storage) | Working |
45
+ | MAP ↔ Inbox type translation | Working (18 tests) |
46
+ | E2E with real MeshPeer instances | 13 tests passing |
47
+ | Total mesh-related tests | 85 tests, all passing |
48
+
49
+ ### How agent-inbox consumes MeshPeer
50
+
51
+ ```typescript
52
+ const inbox = await createAgentInbox({
53
+ meshPeer: myMeshPeer, // Embedded MeshPeer, full MAP protocol
54
+ enableFederation: true,
55
+ config: {
56
+ federation: {
57
+ peers: [
58
+ { systemId: "system-b", meshPeerId: "system-b" }
59
+ ]
60
+ }
61
+ }
62
+ });
63
+ ```
64
+
65
+ This single call:
66
+ 1. Registers `agent-inbox` as an agent on the MeshPeer's MapServer
67
+ 2. Installs a `DeliveryBridge` to intercept MAP message delivery → inbox storage
68
+ 3. Wires `FederationGateway` for cross-mesh routing with envelope wrapping and loop detection
69
+ 4. Sets up all inbox semantics (threading, read tracking, traceability)
70
+
71
+ ## Proposed Migration Path for claude-code-swarm
72
+
73
+ ### Step 1: Replace the sidecar with embedded MeshPeer + agent-inbox
74
+
75
+ The current sidecar handles:
76
+ - MAP WebSocket connection management
77
+ - Agent registration on connect/disconnect
78
+ - Message routing between agents
79
+ - Hook-based lifecycle (agent spawn/done events)
80
+
81
+ All of these are now handled by MeshPeer + agent-inbox. The sidecar reduces to a thin adapter that:
82
+ - Creates an embedded `MeshPeer` on startup
83
+ - Passes it to `createAgentInbox({ meshPeer })`
84
+ - Translates Claude Code hook events (agent spawn/done) into agent-inbox registry calls
85
+ - Exposes MCP tools for agents to send/receive messages
86
+
87
+ ### Step 2: Claude Code hook adapter (~200 lines)
88
+
89
+ ```typescript
90
+ // Pseudocode for the thin adapter
91
+ import { MeshPeer } from "agentic-mesh";
92
+ import { createAgentInbox } from "agent-inbox";
93
+
94
+ // 1. Start embedded MeshPeer
95
+ const peer = MeshPeer.createEmbedded({ peerId: "swarm-leader" });
96
+ await peer.start();
97
+
98
+ // 2. Create agent-inbox with MeshPeer
99
+ const inbox = await createAgentInbox({ meshPeer: peer, enableFederation: true });
100
+
101
+ // 3. Hook adapter: translate Claude Code events → inbox
102
+ onAgentSpawn(({ agentId, name }) => {
103
+ inbox.registry.register(agentId, { name });
104
+ });
105
+
106
+ onAgentDone(({ agentId }) => {
107
+ inbox.registry.disconnect(agentId);
108
+ });
109
+
110
+ // 4. MCP tools are automatically available via inbox
111
+ // Agents use send_message, check_inbox, read_thread, list_agents
112
+ ```
113
+
114
+ ### Step 3: Multi-runtime support
115
+
116
+ With the sidecar replaced, supporting new agent runtimes is just writing a new ~200-line adapter:
117
+ - OpenAI agent adapter: translates OpenAI function calls → inbox MCP tools
118
+ - AutoGen adapter: maps AutoGen conversation patterns → inbox threading
119
+ - Standalone script adapter: CLI wrapper around inbox IPC
120
+
121
+ Each adapter only handles lifecycle translation. Messaging, routing, federation, and storage are all shared.
122
+
123
+ ## Benefits
124
+
125
+ 1. **~1300 fewer lines** in claude-code-swarm (1500 LOC sidecar → 200 LOC adapter)
126
+ 2. **No more MAP WebSocket management** — MeshPeer handles transport
127
+ 3. **Encrypted P2P** — Nebula/Tailscale tunnels instead of plain WebSocket
128
+ 4. **Federation with safety** — hop counting, loop detection, message buffering
129
+ 5. **Multi-runtime** — any agent runtime can join the mesh with a thin adapter
130
+ 6. **Structured messaging** — threading, read tracking, importance levels, traceability
131
+
132
+ ## Open Questions
133
+
134
+ 1. **Migration timeline** — Can this be done incrementally (sidecar + inbox side-by-side) or does it need a clean cutover?
135
+ 2. **Hook compatibility** — Are there Claude Code hook behaviors the adapter can't replicate?
136
+ 3. **Performance** — Does the extra indirection (hook → adapter → inbox → MeshPeer) add unacceptable latency for real-time agent coordination?
137
+ 4. **State migration** — Any persistent state in the current sidecar that needs migrating?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-inbox",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
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",
@@ -37,16 +37,21 @@
37
37
  "ulid": "^2.3.0"
38
38
  },
39
39
  "peerDependencies": {
40
- "@multi-agent-protocol/sdk": "^0.1.4"
40
+ "@multi-agent-protocol/sdk": "^0.1.4",
41
+ "agentic-mesh": ">=0.2.0"
41
42
  },
42
43
  "peerDependenciesMeta": {
43
44
  "@multi-agent-protocol/sdk": {
44
45
  "optional": true
46
+ },
47
+ "agentic-mesh": {
48
+ "optional": true
45
49
  }
46
50
  },
47
51
  "devDependencies": {
48
52
  "@types/better-sqlite3": "^7.6.13",
49
53
  "@types/node": "^22.0.0",
54
+ "agentic-mesh": "^0.2.0",
50
55
  "typescript": "^5.7.0",
51
56
  "vitest": "^3.0.0"
52
57
  }