agent-comms 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/.claude-plugin/marketplace.json +21 -0
  2. package/.claude-plugin/plugin.json +21 -0
  3. package/README.md +83 -22
  4. package/dist/bridges/claude-code/channel.d.ts +1 -0
  5. package/dist/bridges/claude-code/channel.d.ts.map +1 -1
  6. package/dist/bridges/claude-code/channel.js +18 -37
  7. package/dist/bridges/claude-code/channel.js.map +1 -1
  8. package/dist/bridges/codex/tool.d.ts +2 -1
  9. package/dist/bridges/codex/tool.d.ts.map +1 -1
  10. package/dist/bridges/codex/tool.js +24 -19
  11. package/dist/bridges/codex/tool.js.map +1 -1
  12. package/dist/bridges/index.d.ts.map +1 -1
  13. package/dist/bridges/index.js +2 -4
  14. package/dist/bridges/index.js.map +1 -1
  15. package/dist/bridges/mcp/index.d.ts +11 -0
  16. package/dist/bridges/mcp/index.d.ts.map +1 -0
  17. package/dist/bridges/mcp/index.js +76 -0
  18. package/dist/bridges/mcp/index.js.map +1 -0
  19. package/dist/bridges/opencode/plugin.d.ts +2 -2
  20. package/dist/bridges/opencode/plugin.d.ts.map +1 -1
  21. package/dist/bridges/opencode/plugin.js +22 -22
  22. package/dist/bridges/opencode/plugin.js.map +1 -1
  23. package/dist/bridges/pi/index.d.ts +2 -2
  24. package/dist/bridges/pi/index.d.ts.map +1 -1
  25. package/dist/bridges/pi/index.js +12 -35
  26. package/dist/bridges/pi/index.js.map +1 -1
  27. package/dist/cli.js +4 -108
  28. package/dist/cli.js.map +1 -1
  29. package/dist/core/bridge.d.ts +7 -7
  30. package/dist/core/bridge.d.ts.map +1 -1
  31. package/dist/core/bridge.js +2 -2
  32. package/dist/core/bridge.js.map +1 -1
  33. package/dist/core/comms-store.d.ts +48 -0
  34. package/dist/core/comms-store.d.ts.map +1 -0
  35. package/dist/core/comms-store.js +11 -0
  36. package/dist/core/comms-store.js.map +1 -0
  37. package/dist/core/index.d.ts +6 -4
  38. package/dist/core/index.d.ts.map +1 -1
  39. package/dist/core/index.js +4 -3
  40. package/dist/core/index.js.map +1 -1
  41. package/dist/core/mesh-store.d.ts +88 -0
  42. package/dist/core/mesh-store.d.ts.map +1 -0
  43. package/dist/core/mesh-store.js +790 -0
  44. package/dist/core/mesh-store.js.map +1 -0
  45. package/dist/core/store.d.ts +3 -2
  46. package/dist/core/store.d.ts.map +1 -1
  47. package/dist/core/store.js +20 -20
  48. package/dist/core/store.js.map +1 -1
  49. package/dist/core/tool.d.ts +9 -9
  50. package/dist/core/tool.d.ts.map +1 -1
  51. package/dist/core/tool.js +5 -5
  52. package/dist/core/tool.js.map +1 -1
  53. package/dist/core/types.d.ts +2 -2
  54. package/dist/core/types.d.ts.map +1 -1
  55. package/dist/core/types.js +2 -2
  56. package/dist/core/types.js.map +1 -1
  57. package/dist/test/mesh-e2e.test.d.ts +8 -0
  58. package/dist/test/mesh-e2e.test.d.ts.map +1 -0
  59. package/dist/test/mesh-e2e.test.js +126 -0
  60. package/dist/test/mesh-e2e.test.js.map +1 -0
  61. package/dist/test/mesh-smoke.test.d.ts +9 -0
  62. package/dist/test/mesh-smoke.test.d.ts.map +1 -0
  63. package/dist/test/mesh-smoke.test.js +193 -0
  64. package/dist/test/mesh-smoke.test.js.map +1 -0
  65. package/package.json +17 -4
  66. package/dist/bridges/codex/post_tool_use.d.ts +0 -13
  67. package/dist/bridges/codex/post_tool_use.d.ts.map +0 -1
  68. package/dist/bridges/codex/post_tool_use.js +0 -118
  69. package/dist/bridges/codex/post_tool_use.js.map +0 -1
  70. package/dist/bridges/codex/stop_hook.d.ts +0 -13
  71. package/dist/bridges/codex/stop_hook.d.ts.map +0 -1
  72. package/dist/bridges/codex/stop_hook.js +0 -113
  73. package/dist/bridges/codex/stop_hook.js.map +0 -1
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * Agent Comms — cross-harness LLM agent communication.
3
3
  *
4
- * Core protocol: types, filesystem store, tool handler.
4
+ * Core protocol: types, store interface, tool handler.
5
5
  * Bridges (pi extension, Claude Code channel) are in ../bridges/.
6
6
  */
7
- export { BusStore, BusError } from "./store.js";
8
- export { BusTool } from "./tool.js";
9
- export type { ToolContext, ToolResult } from "./tool.js";
7
+ export type { CommsStore } from "./comms-store.js";
8
+ export { FileStore, CommsError } from "./store.js";
9
+ export { MeshStore } from "./mesh-store.js";
10
+ export { CommsTool } from "./tool.js";
11
+ export type { CommsContext, CommsResult } from "./tool.js";
10
12
  export { buildAction, formatDeliveryEvent, ensureRegistered, drainAndFormat, MCP_TOOL_PARAMS, } from "./bridge.js";
11
13
  export type { RegistrationResult } from "./bridge.js";
12
14
  export * from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,cAAc,YAAY,CAAC"}
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * Agent Comms — cross-harness LLM agent communication.
3
3
  *
4
- * Core protocol: types, filesystem store, tool handler.
4
+ * Core protocol: types, store interface, tool handler.
5
5
  * Bridges (pi extension, Claude Code channel) are in ../bridges/.
6
6
  */
7
- export { BusStore, BusError } from "./store.js";
8
- export { BusTool } from "./tool.js";
7
+ export { FileStore, CommsError } from "./store.js";
8
+ export { MeshStore } from "./mesh-store.js";
9
+ export { CommsTool } from "./tool.js";
9
10
  export { buildAction, formatDeliveryEvent, ensureRegistered, drainAndFormat, MCP_TOOL_PARAMS, } from "./bridge.js";
10
11
  export * from "./types.js";
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * MeshStore — TCP localhost peer mesh for agent communication.
3
+ *
4
+ * Each bridge instance is a peer in the mesh. Peers discover each other
5
+ * via a coordinator (the first instance to bind the well-known port).
6
+ * All state is held in memory and synchronised between peers.
7
+ * Delivery events are pushed directly over TCP — no polling, no filesystem.
8
+ *
9
+ * Falls back to FileStore if the mesh is unavailable.
10
+ */
11
+ import type { CommsStore } from "./comms-store.js";
12
+ import type { AgentIdentity, DeliveryEvent, DmMessage, Room, RoomMessage, RoomType, Visibility } from "./types.js";
13
+ export declare class MeshStore implements CommsStore {
14
+ readonly peerId: string;
15
+ readonly startedAt: string;
16
+ readonly coordinatorPort: number;
17
+ private agents;
18
+ private rooms;
19
+ private messages;
20
+ private dms;
21
+ private deliveryQueues;
22
+ private identityCache;
23
+ private dataServer;
24
+ private dataPort;
25
+ private coordinatorServer;
26
+ private isCoordinator;
27
+ private peerConnections;
28
+ private peerInfo;
29
+ private staleCheckTimer;
30
+ onDelivery: ((agentId: string, event: DeliveryEvent) => void | Promise<void>) | undefined;
31
+ constructor(coordinatorPort?: number);
32
+ init(): Promise<void>;
33
+ private startDataServer;
34
+ private tryJoinMesh;
35
+ private connectToCoordinator;
36
+ private handleCoordinatorResponse;
37
+ private becomeCoordinator;
38
+ private handleCoordinatorConnection;
39
+ private handleIntroduction;
40
+ private handleDataConnection;
41
+ private handleDataMessage;
42
+ private applyPatch;
43
+ private connectToPeerData;
44
+ private broadcastToDataConnections;
45
+ private broadcastPatch;
46
+ private deliverLocallyAndBroadcast;
47
+ readIdentity(harness: string, cwd: string): Promise<{
48
+ id: string;
49
+ } | undefined>;
50
+ writeIdentity(harness: string, cwd: string, id: string): Promise<void>;
51
+ registerAgent(opts: {
52
+ name: string;
53
+ harness: string;
54
+ cwd: string;
55
+ pid: number;
56
+ visibility: Visibility;
57
+ tags: string[];
58
+ }): Promise<AgentIdentity>;
59
+ getAgent(id: string): Promise<AgentIdentity | undefined>;
60
+ updateAgent(id: string, patch: Partial<Pick<AgentIdentity, "name" | "visibility" | "status" | "tags" | "pid">>): Promise<AgentIdentity>;
61
+ listAgents(requesterId: string): Promise<AgentIdentity[]>;
62
+ setAgentOffline(id: string): Promise<void>;
63
+ createRoom(opts: {
64
+ name: string;
65
+ type: RoomType;
66
+ owner: string;
67
+ description: string;
68
+ }): Promise<Room>;
69
+ getRoom(id: string): Promise<Room | undefined>;
70
+ listRooms(requesterId: string): Promise<Room[]>;
71
+ joinRoom(roomId: string, agentId: string): Promise<Room>;
72
+ leaveRoom(roomId: string, agentId: string): Promise<void>;
73
+ inviteToRoom(roomId: string, targetId: string, inviterId: string): Promise<void>;
74
+ kickFromRoom(roomId: string, targetId: string, kickerId: string): Promise<void>;
75
+ destroyRoom(roomId: string, agentId: string): Promise<void>;
76
+ sendRoomMessage(roomId: string, from: string, content: string, replyTo?: string): Promise<RoomMessage>;
77
+ readRoomMessages(roomId: string, since?: string): Promise<RoomMessage[]>;
78
+ sendDm(from: string, to: string, content: string): Promise<DmMessage>;
79
+ deliver(agentId: string, event: DeliveryEvent): Promise<void>;
80
+ drainDelivery(agentId: string): Promise<DeliveryEvent[]>;
81
+ private startStaleCheck;
82
+ private stopStaleCheck;
83
+ private probeStaleAgents;
84
+ private isProcessAlive;
85
+ private handoverCoordinator;
86
+ shutdown(): Promise<void>;
87
+ }
88
+ //# sourceMappingURL=mesh-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mesh-store.d.ts","sourceRoot":"","sources":["../../src/core/mesh-store.ts"],"names":[],"mappings":"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"}