agent-comms 8.9.4 → 8.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +2 -2
- package/dist/bridges/claude-code/channel.d.ts +2 -1
- package/dist/bridges/claude-code/channel.d.ts.map +1 -1
- package/dist/bridges/claude-code/channel.js +3 -3
- package/dist/bridges/claude-code/channel.js.map +1 -1
- package/dist/bridges/mcp/server.d.ts +2 -10
- package/dist/bridges/mcp/server.d.ts.map +1 -1
- package/dist/bridges/mcp/server.js.map +1 -1
- package/dist/bridges/registry.d.ts +3 -1
- package/dist/bridges/registry.d.ts.map +1 -1
- package/dist/bridges/registry.js.map +1 -1
- package/dist/cli-main.d.ts +37 -0
- package/dist/cli-main.d.ts.map +1 -0
- package/dist/cli-main.js +511 -0
- package/dist/cli-main.js.map +1 -0
- package/dist/cli.d.ts +1 -22
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +6 -506
- package/dist/cli.js.map +1 -1
- package/dist/core/bridge-mesh.d.ts +7 -0
- package/dist/core/bridge-mesh.d.ts.map +1 -1
- package/dist/core/bridge-mesh.js.map +1 -1
- package/dist/core/data-frame-routing.d.ts +28 -2
- package/dist/core/data-frame-routing.d.ts.map +1 -1
- package/dist/core/data-frame-routing.js +75 -4
- package/dist/core/data-frame-routing.js.map +1 -1
- package/dist/core/hub-session.d.ts +7 -1
- package/dist/core/hub-session.d.ts.map +1 -1
- package/dist/core/hub-session.js +25 -0
- package/dist/core/hub-session.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/wire-mesh-transport.d.ts +0 -1
- package/dist/core/wire-mesh-transport.d.ts.map +1 -1
- package/dist/core/wire-mesh-transport.js +3 -2
- package/dist/core/wire-mesh-transport.js.map +1 -1
- package/dist/test/account-ledger-helpers.d.ts +35 -0
- package/dist/test/account-ledger-helpers.d.ts.map +1 -0
- package/dist/test/account-ledger-helpers.js +81 -0
- package/dist/test/account-ledger-helpers.js.map +1 -0
- package/dist/test/account-ledger-hub-replication.integration.test.d.ts +5 -0
- package/dist/test/account-ledger-hub-replication.integration.test.d.ts.map +1 -0
- package/dist/test/account-ledger-hub-replication.integration.test.js +100 -0
- package/dist/test/account-ledger-hub-replication.integration.test.js.map +1 -0
- package/dist/test/account-ledger-replication.integration.test.js +4 -66
- package/dist/test/account-ledger-replication.integration.test.js.map +1 -1
- package/dist/test/bridge-stdout.runner.d.ts +5 -0
- package/dist/test/bridge-stdout.runner.d.ts.map +1 -0
- package/dist/test/bridge-stdout.runner.js +49 -0
- package/dist/test/bridge-stdout.runner.js.map +1 -0
- package/dist/test/data-frame-routing.unit.test.d.ts +5 -0
- package/dist/test/data-frame-routing.unit.test.d.ts.map +1 -0
- package/dist/test/data-frame-routing.unit.test.js +79 -0
- package/dist/test/data-frame-routing.unit.test.js.map +1 -0
- package/dist/test/mcp-stdout-channel.integration.test.js +9 -3
- package/dist/test/mcp-stdout-channel.integration.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/test/mcp-bridge.runner.d.ts +0 -5
- package/dist/test/mcp-bridge.runner.d.ts.map +0 -1
- package/dist/test/mcp-bridge.runner.js +0 -25
- package/dist/test/mcp-bridge.runner.js.map +0 -1
package/dist/cli-main.js
ADDED
|
@@ -0,0 +1,511 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-comms — cross-harness LLM agent communication mesh.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* npx agent-comms # in a terminal: setup (auto-detect and configure); with a piped stdin: serve MCP, as `bridge mcp`
|
|
6
|
+
* npx agent-comms setup # same as above
|
|
7
|
+
* npx agent-comms status # check current configuration
|
|
8
|
+
* npx agent-comms remove # undo configuration
|
|
9
|
+
* npx agent-comms bridge <id> # run a bridge (used by harness configs)
|
|
10
|
+
* npx agent-comms chat # interactive TUI (web UI auto-starts)
|
|
11
|
+
* npx agent-comms send <room> <message> # one-shot send
|
|
12
|
+
* npx agent-comms dm <agent> <message> # one-shot DM
|
|
13
|
+
* npx agent-comms rooms # list rooms
|
|
14
|
+
* npx agent-comms agents # list agents
|
|
15
|
+
* npx agent-comms read <room> # read room messages
|
|
16
|
+
* npx agent-comms account export <file> # write this machine's account key, passphrase-sealed
|
|
17
|
+
* npx agent-comms account import <file> # make this machine hold an exported account
|
|
18
|
+
* npx agent-comms account invite # print a one-use invite that joins another machine to this account
|
|
19
|
+
* npx agent-comms account join # join this machine to an account with an invite
|
|
20
|
+
*
|
|
21
|
+
* The bridge subcommand lets harnesses invoke the bridge via npx:
|
|
22
|
+
* .mcp.json: \{ "command": "npx", "args": ["agent-comms", "bridge", "claude-code"] \}
|
|
23
|
+
* config.toml: command = "npx", args = ["agent-comms", "bridge", "codex"]
|
|
24
|
+
*/
|
|
25
|
+
import * as fs from "node:fs";
|
|
26
|
+
import * as path from "node:path";
|
|
27
|
+
import * as os from "node:os";
|
|
28
|
+
import { execSync } from "node:child_process";
|
|
29
|
+
import { z } from "zod";
|
|
30
|
+
import { bridges } from "./bridges/registry.js";
|
|
31
|
+
import { resolveDefaultCommand } from "./core/default-command.js";
|
|
32
|
+
import { runTui } from "./bridges/user/tui.js";
|
|
33
|
+
import { runCli } from "./bridges/user/cli.js";
|
|
34
|
+
import { readHiddenLine, runAccountCommand } from "./account-cli.js";
|
|
35
|
+
import { openMachineAccountStore } from "./account-join-cli.js";
|
|
36
|
+
// ---------------------------------------------------------------------------
|
|
37
|
+
// Zod schemas for config files
|
|
38
|
+
// ---------------------------------------------------------------------------
|
|
39
|
+
const PiSettingsSchema = z
|
|
40
|
+
.object({
|
|
41
|
+
extensions: z.array(z.string()).optional(),
|
|
42
|
+
})
|
|
43
|
+
.loose();
|
|
44
|
+
const McpServersSchema = z
|
|
45
|
+
.object({
|
|
46
|
+
mcpServers: z
|
|
47
|
+
.record(z.string(), z
|
|
48
|
+
.object({
|
|
49
|
+
command: z.string(),
|
|
50
|
+
args: z.array(z.string()).optional(),
|
|
51
|
+
})
|
|
52
|
+
.loose())
|
|
53
|
+
.default({}),
|
|
54
|
+
})
|
|
55
|
+
.loose();
|
|
56
|
+
const OpenCodeConfigSchema = z
|
|
57
|
+
.object({
|
|
58
|
+
plugin: z.array(z.string()).optional(),
|
|
59
|
+
})
|
|
60
|
+
.loose();
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Config I/O
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
function readJsonFile(filePath) {
|
|
65
|
+
try {
|
|
66
|
+
return JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function writeJsonFile(filePath, data) {
|
|
73
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
74
|
+
fs.writeFileSync(filePath, JSON.stringify(data, null, 2) + "\n");
|
|
75
|
+
console.log(` → Wrote ${filePath}`);
|
|
76
|
+
}
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
// Constants
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
const HOME = os.homedir();
|
|
81
|
+
const PKG_DIR = path.resolve(path.dirname(new URL(import.meta.url).pathname), "..");
|
|
82
|
+
// ---------------------------------------------------------------------------
|
|
83
|
+
// Harness definitions
|
|
84
|
+
// ---------------------------------------------------------------------------
|
|
85
|
+
const harnesses = [
|
|
86
|
+
{
|
|
87
|
+
id: "pi",
|
|
88
|
+
detect: () => fs.existsSync(path.join(HOME, ".pi", "agent", "extensions")),
|
|
89
|
+
configure: () => {
|
|
90
|
+
configurePi();
|
|
91
|
+
},
|
|
92
|
+
remove: () => {
|
|
93
|
+
removePi();
|
|
94
|
+
},
|
|
95
|
+
check: () => checkPi(),
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
id: "claude-code",
|
|
99
|
+
detect: () => {
|
|
100
|
+
try {
|
|
101
|
+
execSync("which claude", { stdio: "pipe" });
|
|
102
|
+
return true;
|
|
103
|
+
}
|
|
104
|
+
catch {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
configure: () => {
|
|
109
|
+
configureClaudeCode();
|
|
110
|
+
},
|
|
111
|
+
remove: () => {
|
|
112
|
+
removeClaudeCode();
|
|
113
|
+
},
|
|
114
|
+
check: () => checkClaudeCode(),
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: "codex",
|
|
118
|
+
detect: () => {
|
|
119
|
+
try {
|
|
120
|
+
execSync("which codex", { stdio: "pipe" });
|
|
121
|
+
return true;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
configure: () => {
|
|
128
|
+
configureCodex();
|
|
129
|
+
},
|
|
130
|
+
remove: () => {
|
|
131
|
+
removeCodex();
|
|
132
|
+
},
|
|
133
|
+
check: () => checkCodex(),
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "opencode",
|
|
137
|
+
detect: () => {
|
|
138
|
+
try {
|
|
139
|
+
execSync("which opencode", { stdio: "pipe" });
|
|
140
|
+
return true;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
configure: () => {
|
|
147
|
+
configureOpenCode();
|
|
148
|
+
},
|
|
149
|
+
remove: () => {
|
|
150
|
+
removeOpenCode();
|
|
151
|
+
},
|
|
152
|
+
check: () => checkOpenCode(),
|
|
153
|
+
},
|
|
154
|
+
];
|
|
155
|
+
// ---------------------------------------------------------------------------
|
|
156
|
+
// Main
|
|
157
|
+
// ---------------------------------------------------------------------------
|
|
158
|
+
// Within the resolved arguments, index 0 is the subcommand and everything after it is the subcommand's own args.
|
|
159
|
+
const SUBCOMMAND_ARGS_START_INDEX = 1;
|
|
160
|
+
/** Runs the subcommand the arguments name, or the default one for a bare command (see resolveDefaultCommand). */
|
|
161
|
+
export function main(options) {
|
|
162
|
+
const resolvedArgs = resolveDefaultCommand(options.args, options.stdinIsTerminal ?? false);
|
|
163
|
+
const command = resolvedArgs[0] ?? "setup";
|
|
164
|
+
switch (command) {
|
|
165
|
+
case "setup":
|
|
166
|
+
setup();
|
|
167
|
+
break;
|
|
168
|
+
case "status":
|
|
169
|
+
status();
|
|
170
|
+
break;
|
|
171
|
+
case "remove":
|
|
172
|
+
remove();
|
|
173
|
+
break;
|
|
174
|
+
case "bridge": {
|
|
175
|
+
const bridgeId = resolvedArgs[1];
|
|
176
|
+
if (bridgeId === undefined) {
|
|
177
|
+
console.error("Usage: agent-comms bridge <id>");
|
|
178
|
+
process.exit(1);
|
|
179
|
+
}
|
|
180
|
+
runBridge(bridgeId, options.bridge);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case "chat": {
|
|
184
|
+
const chatArgs = resolvedArgs.slice(SUBCOMMAND_ARGS_START_INDEX);
|
|
185
|
+
runChat(chatArgs);
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
case "send":
|
|
189
|
+
case "dm":
|
|
190
|
+
case "rooms":
|
|
191
|
+
case "agents":
|
|
192
|
+
case "read": {
|
|
193
|
+
const cliArgs = resolvedArgs.slice(SUBCOMMAND_ARGS_START_INDEX);
|
|
194
|
+
runUserCli(command, cliArgs);
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
case "account": {
|
|
198
|
+
runAccountCommand(resolvedArgs.slice(SUBCOMMAND_ARGS_START_INDEX), {
|
|
199
|
+
readSecret: readHiddenLine,
|
|
200
|
+
log: (line) => {
|
|
201
|
+
console.log(line);
|
|
202
|
+
},
|
|
203
|
+
env: process.env,
|
|
204
|
+
openStore: openMachineAccountStore,
|
|
205
|
+
}).then(() => {
|
|
206
|
+
// The store an invite or join ran leaves timers and sockets behind it, so the command ends the process itself once it is done.
|
|
207
|
+
process.exit(0);
|
|
208
|
+
}, (err) => {
|
|
209
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
210
|
+
process.exit(1);
|
|
211
|
+
});
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
default:
|
|
215
|
+
console.log("Usage: agent-comms [setup|status|remove|bridge <id>|chat|send|dm|rooms|agents|read|account <export|import|invite|join>]");
|
|
216
|
+
console.log("With no subcommand: setup when stdin is a terminal, the MCP server when it is not.");
|
|
217
|
+
process.exit(1);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// ---------------------------------------------------------------------------
|
|
221
|
+
// Bridge runner
|
|
222
|
+
// ---------------------------------------------------------------------------
|
|
223
|
+
function runBridge(id, options) {
|
|
224
|
+
const bridge = bridges[id];
|
|
225
|
+
if (!bridge) {
|
|
226
|
+
console.error(`Unknown bridge: ${id}. Available: ${Object.keys(bridges).join(", ")}`);
|
|
227
|
+
process.exit(1);
|
|
228
|
+
}
|
|
229
|
+
Promise.resolve(bridge.run(options)).catch((err) => {
|
|
230
|
+
console.error(err);
|
|
231
|
+
process.exit(1);
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
function parseNameArg(args) {
|
|
235
|
+
const nameIdx = args.indexOf("--name");
|
|
236
|
+
if (nameIdx !== -1) {
|
|
237
|
+
const val = args[nameIdx + 1];
|
|
238
|
+
if (val !== undefined) {
|
|
239
|
+
return {
|
|
240
|
+
name: val,
|
|
241
|
+
rest: [...args.slice(0, nameIdx), ...args.slice(nameIdx + 2)],
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return { name: "Joe", rest: args };
|
|
246
|
+
}
|
|
247
|
+
function runChat(args) {
|
|
248
|
+
const { name } = parseNameArg(args);
|
|
249
|
+
runTui(name).catch((err) => {
|
|
250
|
+
console.error(err);
|
|
251
|
+
process.exit(1);
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
function runUserCli(cliCommand, args) {
|
|
255
|
+
const { name, rest } = parseNameArg(args);
|
|
256
|
+
runCli(cliCommand, rest, name).catch((err) => {
|
|
257
|
+
console.error(err);
|
|
258
|
+
process.exit(1);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
// ---------------------------------------------------------------------------
|
|
262
|
+
// Commands
|
|
263
|
+
// ---------------------------------------------------------------------------
|
|
264
|
+
function setup() {
|
|
265
|
+
console.log("🔌 Agent Comms setup\n");
|
|
266
|
+
const detected = harnesses.filter((h) => h.detect());
|
|
267
|
+
console.log("Detected harnesses:");
|
|
268
|
+
for (const h of harnesses) {
|
|
269
|
+
console.log(` ${detected.includes(h) ? "✓" : "✗"} ${h.id}`);
|
|
270
|
+
}
|
|
271
|
+
if (detected.length === 0) {
|
|
272
|
+
console.log("\nNo supported harnesses found. Install one of: pi, Claude Code, Codex, OpenCode");
|
|
273
|
+
process.exit(1);
|
|
274
|
+
}
|
|
275
|
+
console.log();
|
|
276
|
+
for (const h of detected) {
|
|
277
|
+
console.log(`Configuring ${h.id}...`);
|
|
278
|
+
h.configure();
|
|
279
|
+
}
|
|
280
|
+
const plural = detected.length === 1 ? "" : "es";
|
|
281
|
+
console.log(`\n✓ Done! ${String(detected.length)} harness${plural} configured.`);
|
|
282
|
+
console.log("\nBridges run via: npx agent-comms bridge <id>");
|
|
283
|
+
}
|
|
284
|
+
function status() {
|
|
285
|
+
console.log("🔌 Agent Comms status\n");
|
|
286
|
+
for (const h of harnesses) {
|
|
287
|
+
const installed = h.detect();
|
|
288
|
+
const result = installed
|
|
289
|
+
? h.check()
|
|
290
|
+
: { configured: false, details: Array() };
|
|
291
|
+
if (!installed) {
|
|
292
|
+
console.log(` ✗ ${h.id} — not found`);
|
|
293
|
+
}
|
|
294
|
+
else if (result.configured) {
|
|
295
|
+
console.log(` ✓ ${h.id} — configured`);
|
|
296
|
+
for (const detail of result.details)
|
|
297
|
+
console.log(` ${detail}`);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
console.log(` ⚠ ${h.id} — detected but not configured`);
|
|
301
|
+
for (const detail of result.details)
|
|
302
|
+
console.log(` ${detail}`);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
function remove() {
|
|
307
|
+
console.log("🔌 Agent Comms removal\n");
|
|
308
|
+
for (const h of harnesses) {
|
|
309
|
+
if (h.detect()) {
|
|
310
|
+
console.log(`Removing ${h.id}...`);
|
|
311
|
+
h.remove();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
console.log("\n✓ Done!");
|
|
315
|
+
}
|
|
316
|
+
// ---------------------------------------------------------------------------
|
|
317
|
+
// pi
|
|
318
|
+
// ---------------------------------------------------------------------------
|
|
319
|
+
function configurePi() {
|
|
320
|
+
const settingsPath = path.join(HOME, ".pi", "agent", "settings.json");
|
|
321
|
+
const parsed = readJsonFile(settingsPath);
|
|
322
|
+
const settings = PiSettingsSchema.parse(parsed ?? {});
|
|
323
|
+
const bridgeDir = path.join(PKG_DIR, "src", "bridges", "pi");
|
|
324
|
+
const extensions = settings.extensions ?? [];
|
|
325
|
+
if (!extensions.includes(bridgeDir)) {
|
|
326
|
+
extensions.push(bridgeDir);
|
|
327
|
+
settings.extensions = extensions;
|
|
328
|
+
writeJsonFile(settingsPath, settings);
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
console.log(` → Already in ${settingsPath}`);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
function removePi() {
|
|
335
|
+
const settingsPath = path.join(HOME, ".pi", "agent", "settings.json");
|
|
336
|
+
const parsed = readJsonFile(settingsPath);
|
|
337
|
+
const settings = PiSettingsSchema.parse(parsed ?? {});
|
|
338
|
+
const extensions = settings.extensions;
|
|
339
|
+
if (extensions) {
|
|
340
|
+
settings.extensions = extensions.filter((e) => {
|
|
341
|
+
const segments = e.toLowerCase().split("/");
|
|
342
|
+
const busIdx = segments.indexOf("bridges");
|
|
343
|
+
return !(busIdx !== -1 &&
|
|
344
|
+
segments[busIdx + 1] === "pi" &&
|
|
345
|
+
e.toLowerCase().includes("agent-comms"));
|
|
346
|
+
});
|
|
347
|
+
writeJsonFile(settingsPath, settings);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
function checkPi() {
|
|
351
|
+
const settingsPath = path.join(HOME, ".pi", "agent", "settings.json");
|
|
352
|
+
const parsed = readJsonFile(settingsPath);
|
|
353
|
+
const settings = PiSettingsSchema.parse(parsed ?? {});
|
|
354
|
+
const bridgeDir = path.join(PKG_DIR, "src", "bridges", "pi");
|
|
355
|
+
const configured = (settings.extensions ?? []).includes(bridgeDir);
|
|
356
|
+
return {
|
|
357
|
+
configured,
|
|
358
|
+
details: configured
|
|
359
|
+
? [`Extension: ${bridgeDir}`]
|
|
360
|
+
: [`Not in ${settingsPath} extensions`],
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
// ---------------------------------------------------------------------------
|
|
364
|
+
// Claude Code
|
|
365
|
+
// ---------------------------------------------------------------------------
|
|
366
|
+
function configureClaudeCode() {
|
|
367
|
+
const mcpPath = path.join(process.cwd(), ".mcp.json");
|
|
368
|
+
const parsed = readJsonFile(mcpPath);
|
|
369
|
+
const config = McpServersSchema.parse(parsed ?? {});
|
|
370
|
+
config.mcpServers["agent-comms"] = {
|
|
371
|
+
command: "npx",
|
|
372
|
+
args: ["agent-comms", "bridge", "claude-code"],
|
|
373
|
+
};
|
|
374
|
+
writeJsonFile(mcpPath, config);
|
|
375
|
+
}
|
|
376
|
+
function removeClaudeCode() {
|
|
377
|
+
const mcpPath = path.join(process.cwd(), ".mcp.json");
|
|
378
|
+
const parsed = readJsonFile(mcpPath);
|
|
379
|
+
if (parsed === undefined)
|
|
380
|
+
return;
|
|
381
|
+
const config = McpServersSchema.safeParse(parsed);
|
|
382
|
+
if (!config.success)
|
|
383
|
+
return;
|
|
384
|
+
if ("agent-comms" in config.data.mcpServers) {
|
|
385
|
+
delete config.data.mcpServers["agent-comms"];
|
|
386
|
+
writeJsonFile(mcpPath, config.data);
|
|
387
|
+
console.log(` Removed agent-comms from ${mcpPath}`);
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
function checkClaudeCode() {
|
|
391
|
+
const mcpPath = path.join(process.cwd(), ".mcp.json");
|
|
392
|
+
const parsed = readJsonFile(mcpPath);
|
|
393
|
+
const config = McpServersSchema.safeParse(parsed ?? {});
|
|
394
|
+
const entry = config.success
|
|
395
|
+
? config.data.mcpServers["agent-comms"]
|
|
396
|
+
: undefined;
|
|
397
|
+
const configured = entry !== undefined;
|
|
398
|
+
return {
|
|
399
|
+
configured,
|
|
400
|
+
details: configured
|
|
401
|
+
? [`Config: ${mcpPath}`, `Command: ${entry.command}`]
|
|
402
|
+
: [`Not in ${mcpPath}`],
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
// ---------------------------------------------------------------------------
|
|
406
|
+
// Codex
|
|
407
|
+
// ---------------------------------------------------------------------------
|
|
408
|
+
function configureCodex() {
|
|
409
|
+
const configDir = path.join(HOME, ".codex");
|
|
410
|
+
// Add MCP server to config.toml
|
|
411
|
+
const tomlPath = path.join(configDir, "config.toml");
|
|
412
|
+
if (fs.existsSync(tomlPath)) {
|
|
413
|
+
const content = fs.readFileSync(tomlPath, "utf-8");
|
|
414
|
+
if (!content.includes("agent-comms")) {
|
|
415
|
+
const block = [
|
|
416
|
+
"",
|
|
417
|
+
"# Agent Comms MCP tool server",
|
|
418
|
+
"[mcp_servers.agent-comms]",
|
|
419
|
+
'command = "npx"',
|
|
420
|
+
'args = ["agent-comms", "bridge", "codex"]',
|
|
421
|
+
].join("\n");
|
|
422
|
+
fs.writeFileSync(tomlPath, content.trimEnd() + block + "\n");
|
|
423
|
+
console.log(` → Appended MCP server to ${tomlPath}`);
|
|
424
|
+
}
|
|
425
|
+
else {
|
|
426
|
+
console.log(` → Already in ${tomlPath}`);
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
const content = [
|
|
431
|
+
"# Agent Comms MCP tool server",
|
|
432
|
+
"[mcp_servers.agent-comms]",
|
|
433
|
+
'command = "npx"',
|
|
434
|
+
'args = ["agent-comms", "bridge", "codex"]',
|
|
435
|
+
].join("\n");
|
|
436
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
437
|
+
fs.writeFileSync(tomlPath, content + "\n");
|
|
438
|
+
console.log(` → Created ${tomlPath}`);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
function removeCodex() {
|
|
442
|
+
const configDir = path.join(HOME, ".codex");
|
|
443
|
+
// Remove from config.toml
|
|
444
|
+
const tomlPath = path.join(configDir, "config.toml");
|
|
445
|
+
if (fs.existsSync(tomlPath)) {
|
|
446
|
+
const content = fs.readFileSync(tomlPath, "utf-8");
|
|
447
|
+
const lines = content
|
|
448
|
+
.split("\n")
|
|
449
|
+
.filter((line) => !line.includes("agent-comms") && !line.includes("Agent Comms"));
|
|
450
|
+
fs.writeFileSync(tomlPath, lines.join("\n").trimEnd() + "\n");
|
|
451
|
+
console.log(` Removed agent-comms from ${tomlPath}`);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
function checkCodex() {
|
|
455
|
+
const details = [];
|
|
456
|
+
const tomlPath = path.join(HOME, ".codex", "config.toml");
|
|
457
|
+
if (fs.existsSync(tomlPath)) {
|
|
458
|
+
const content = fs.readFileSync(tomlPath, "utf-8");
|
|
459
|
+
const tomlOk = content.includes("agent-comms");
|
|
460
|
+
details.push(tomlOk ? `MCP server in ${tomlPath}` : `Not in ${tomlPath}`);
|
|
461
|
+
return { configured: tomlOk, details };
|
|
462
|
+
}
|
|
463
|
+
details.push(`${tomlPath} not found`);
|
|
464
|
+
return { configured: false, details };
|
|
465
|
+
}
|
|
466
|
+
// ---------------------------------------------------------------------------
|
|
467
|
+
// OpenCode
|
|
468
|
+
// ---------------------------------------------------------------------------
|
|
469
|
+
function configureOpenCode() {
|
|
470
|
+
const configPath = path.join(process.cwd(), "opencode.json");
|
|
471
|
+
const parsed = readJsonFile(configPath);
|
|
472
|
+
const config = OpenCodeConfigSchema.parse(parsed ?? {});
|
|
473
|
+
const bridgeDir = path.join(PKG_DIR, "src", "bridges", "opencode", "plugin.ts");
|
|
474
|
+
const plugins = config.plugin ?? [];
|
|
475
|
+
if (!plugins.includes(bridgeDir)) {
|
|
476
|
+
plugins.push(bridgeDir);
|
|
477
|
+
config.plugin = plugins;
|
|
478
|
+
writeJsonFile(configPath, config);
|
|
479
|
+
}
|
|
480
|
+
else {
|
|
481
|
+
console.log(` → Already in ${configPath}`);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
function removeOpenCode() {
|
|
485
|
+
const configPath = path.join(process.cwd(), "opencode.json");
|
|
486
|
+
const parsed = readJsonFile(configPath);
|
|
487
|
+
if (parsed === undefined)
|
|
488
|
+
return;
|
|
489
|
+
const config = OpenCodeConfigSchema.safeParse(parsed);
|
|
490
|
+
if (!config.success)
|
|
491
|
+
return;
|
|
492
|
+
const bridgeDir = path.join(PKG_DIR, "src", "bridges", "opencode", "plugin.ts");
|
|
493
|
+
const plugins = config.data.plugin;
|
|
494
|
+
if (plugins) {
|
|
495
|
+
config.data.plugin = plugins.filter((p) => p !== bridgeDir);
|
|
496
|
+
writeJsonFile(configPath, config.data);
|
|
497
|
+
console.log(` Removed agent-comms from ${configPath}`);
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
function checkOpenCode() {
|
|
501
|
+
const configPath = path.join(process.cwd(), "opencode.json");
|
|
502
|
+
const parsed = readJsonFile(configPath);
|
|
503
|
+
const config = OpenCodeConfigSchema.safeParse(parsed ?? {});
|
|
504
|
+
const bridgeDir = path.join(PKG_DIR, "src", "bridges", "opencode", "plugin.ts");
|
|
505
|
+
const configured = config.success && (config.data.plugin ?? []).includes(bridgeDir);
|
|
506
|
+
return {
|
|
507
|
+
configured,
|
|
508
|
+
details: configured ? [`Plugin: ${bridgeDir}`] : [`Not in ${configPath}`],
|
|
509
|
+
};
|
|
510
|
+
}
|
|
511
|
+
//# sourceMappingURL=cli-main.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-main.js","sourceRoot":"","sources":["../src/cli-main.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,26 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* agent-comms
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* npx agent-comms # in a terminal: setup (auto-detect and configure); with a piped stdin: serve MCP, as `bridge mcp`
|
|
6
|
-
* npx agent-comms setup # same as above
|
|
7
|
-
* npx agent-comms status # check current configuration
|
|
8
|
-
* npx agent-comms remove # undo configuration
|
|
9
|
-
* npx agent-comms bridge <id> # run a bridge (used by harness configs)
|
|
10
|
-
* npx agent-comms chat # interactive TUI (web UI auto-starts)
|
|
11
|
-
* npx agent-comms send <room> <message> # one-shot send
|
|
12
|
-
* npx agent-comms dm <agent> <message> # one-shot DM
|
|
13
|
-
* npx agent-comms rooms # list rooms
|
|
14
|
-
* npx agent-comms agents # list agents
|
|
15
|
-
* npx agent-comms read <room> # read room messages
|
|
16
|
-
* npx agent-comms account export <file> # write this machine's account key, passphrase-sealed
|
|
17
|
-
* npx agent-comms account import <file> # make this machine hold an exported account
|
|
18
|
-
* npx agent-comms account invite # print a one-use invite that joins another machine to this account
|
|
19
|
-
* npx agent-comms account join # join this machine to an account with an invite
|
|
20
|
-
*
|
|
21
|
-
* The bridge subcommand lets harnesses invoke the bridge via npx:
|
|
22
|
-
* .mcp.json: \{ "command": "npx", "args": ["agent-comms", "bridge", "claude-code"] \}
|
|
23
|
-
* config.toml: command = "npx", args = ["agent-comms", "bridge", "codex"]
|
|
2
|
+
* The `agent-comms` executable: runs the command line against this process's own arguments and stdin. The dispatch itself lives in cli-main.ts, where a test can reach it without binding this machine's default ports.
|
|
24
3
|
*/
|
|
25
4
|
export {};
|
|
26
5
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|