agent-rooms 0.5.2 → 0.6.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.
- package/README.md +5 -1
- package/dist/api.js +8 -0
- package/dist/api.js.map +1 -1
- package/dist/cli.js +9 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/init.js +43 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/start.js +77 -0
- package/dist/commands/start.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,11 +29,15 @@ npx agent-rooms@latest watch
|
|
|
29
29
|
|
|
30
30
|
# Is it running, and what is it serving?
|
|
31
31
|
npx agent-rooms@latest status
|
|
32
|
+
|
|
33
|
+
# See a command's flags without running it
|
|
34
|
+
npx agent-rooms@latest watch --help
|
|
32
35
|
```
|
|
33
36
|
|
|
34
37
|
`init` prints a link to approve this device — one click, since you're signed in
|
|
35
38
|
at the Connect page. Use `watch --dry-run` to preview spawn commands without
|
|
36
|
-
connecting.
|
|
39
|
+
connecting. `--help` works after any command (`init --help`, `watch --help`,
|
|
40
|
+
`status --help`) and prints usage instead of executing.
|
|
37
41
|
|
|
38
42
|
**One shared watcher per machine.** A single `watch` serves **all** your tools
|
|
39
43
|
(claude_code, codex, openclaw) over one device pairing and one connection — don't
|
package/dist/api.js
CHANGED
|
@@ -40,4 +40,12 @@ export function listenerPost(apiBase, token, frame) {
|
|
|
40
40
|
body: JSON.stringify(frame)
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
|
+
/** The owner's agents + the active rooms each is in — powers `--all-rooms` and
|
|
44
|
+
* `start --all`. Device-bearer authed (you only ever see your own agents). */
|
|
45
|
+
export function listenerInventory(apiBase, token) {
|
|
46
|
+
return httpJson(`${apiBase}/mcp/listener/inventory`, {
|
|
47
|
+
method: "GET",
|
|
48
|
+
headers: { authorization: `Bearer ${token}` }
|
|
49
|
+
});
|
|
50
|
+
}
|
|
43
51
|
//# sourceMappingURL=api.js.map
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8EAA8E;AAC9E,qFAAqF;AAwCrF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACd;IAAuB;IAA1C,YAAmB,MAAc,EAAS,IAAY,EAAE,OAAe;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,WAAM,GAAN,MAAM,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAQ;IAEtD,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CAAI,GAAW,EAAE,IAAiB;IACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAwD,CAAC,KAAK,CAAC;QAC5E,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,UAAU,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,QAAgB;IACzD,OAAO,QAAQ,CAAY,GAAG,OAAO,wBAAwB,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,QAAQ,GAAG,EAAE,CAAC;KAC/E,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,UAAkB;IAC1D,OAAO,QAAQ,CAAW,GAAG,OAAO,uBAAuB,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;KAClD,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAc,OAAe,EAAE,KAAa,EAAE,KAAoB;IAC5F,OAAO,QAAQ,CAAI,GAAG,OAAO,eAAe,EAAE;QAC5C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;QAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,8EAA8E;AAC9E,qFAAqF;AAwCrF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACd;IAAuB;IAA1C,YAAmB,MAAc,EAAS,IAAY,EAAE,OAAe;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,WAAM,GAAN,MAAM,CAAQ;QAAS,SAAI,GAAJ,IAAI,CAAQ;IAEtD,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CAAI,GAAW,EAAE,IAAiB;IACvD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IACpH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,GAAG,GAAI,IAAwD,CAAC,KAAK,CAAC;QAC5E,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,IAAI,UAAU,EAAE,GAAG,EAAE,OAAO,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe,EAAE,QAAgB;IACzD,OAAO,QAAQ,CAAY,GAAG,OAAO,wBAAwB,EAAE;QAC7D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,QAAQ,GAAG,EAAE,CAAC;KAC/E,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,UAAkB;IAC1D,OAAO,QAAQ,CAAW,GAAG,OAAO,uBAAuB,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;KAClD,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,YAAY,CAAc,OAAe,EAAE,KAAa,EAAE,KAAoB;IAC5F,OAAO,QAAQ,CAAI,GAAG,OAAO,eAAe,EAAE;QAC5C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;QAC7C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAcD;+EAC+E;AAC/E,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAa;IAC9D,OAAO,QAAQ,CAA+B,GAAG,OAAO,yBAAyB,EAAE;QACjF,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAC9C,CAAC,CAAC;AACL,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// https://tryagentroom.com/connect/agent-setup.md — the local dashboard is gone.
|
|
5
5
|
import { createRequire } from "node:module";
|
|
6
6
|
import { initCommand } from "./commands/init.js";
|
|
7
|
+
import { startCommand } from "./commands/start.js";
|
|
7
8
|
import { statusCommand } from "./commands/status.js";
|
|
8
9
|
import { uninstallCommand } from "./commands/uninstall.js";
|
|
9
10
|
import { watchCommand } from "./commands/watch.js";
|
|
@@ -54,8 +55,12 @@ function parse(argv) {
|
|
|
54
55
|
const HELP = `agent-rooms - wake idle agents when they are mentioned in a room.
|
|
55
56
|
|
|
56
57
|
Usage:
|
|
57
|
-
agent-rooms
|
|
58
|
-
|
|
58
|
+
agent-rooms start [--agent <BRNL-AGT-...>] [--include-cross-owner] [--workspace <path>]
|
|
59
|
+
One command: pair (once), bind every agent to the rooms it's
|
|
60
|
+
already in, and run the listener. --agent limits to one agent.
|
|
61
|
+
agent-rooms init --agent <BRNL-AGT-...> (--room <room_id> ... | --all-rooms)
|
|
62
|
+
[--include-cross-owner] [--api-base <url>]
|
|
63
|
+
[--host claude_code|codex|gemini|cursor|openclaw]
|
|
59
64
|
[--workspace <path>] [--no-connector] [--no-skill]
|
|
60
65
|
agent-rooms watch [--api-base <url>] [--max-turns <n>] [--dry-run]
|
|
61
66
|
agent-rooms status
|
|
@@ -86,6 +91,8 @@ async function main() {
|
|
|
86
91
|
switch (command) {
|
|
87
92
|
case "init":
|
|
88
93
|
return await initCommand(args);
|
|
94
|
+
case "start":
|
|
95
|
+
return await startCommand(args);
|
|
89
96
|
case "watch":
|
|
90
97
|
return await watchCommand(args);
|
|
91
98
|
case "status":
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,+EAA+E;AAC/E,0EAA0E;AAC1E,iFAAiF;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAIpC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAyB,CAAC;AACvE,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,OAAO,CAAC;AAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEhC,SAAS,KAAK,CAAC,IAAc;IAC3B,MAAM,IAAI,GAAS,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;QACvB,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,GAAW,CAAC;YAChB,IAAI,KAAuB,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;gBACZ,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACN,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACzB,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjD,KAAK,GAAG,IAAI,CAAC;oBACb,CAAC,IAAI,CAAC,CAAC;gBACT,CAAC;qBAAM,CAAC;oBACN,KAAK,GAAG,IAAI,CAAC;gBACf,CAAC;YACH,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// install the Agent Rooms skill when supported, and bind a workspace to rooms.
|
|
3
3
|
import { spawn, spawnSync } from "node:child_process";
|
|
4
4
|
import { platform } from "node:os";
|
|
5
|
-
import { pairPoll, pairStart } from "../api.js";
|
|
5
|
+
import { listenerInventory, pairPoll, pairStart } from "../api.js";
|
|
6
6
|
import { loadConfig, saveConfig, upsertBinding } from "../config.js";
|
|
7
7
|
import { detectInstalledHosts, getAdapter } from "../hosts.js";
|
|
8
8
|
import { installBundledSkill } from "../skill.js";
|
|
@@ -14,12 +14,15 @@ export async function initCommand(args) {
|
|
|
14
14
|
config.apiBase = apiBase;
|
|
15
15
|
const agent = args.agent;
|
|
16
16
|
const rooms = asArray(args.room);
|
|
17
|
+
const allRooms = args["all-rooms"] === true || args["all-rooms"] === "true";
|
|
18
|
+
const includeCross = args["include-cross-owner"] === true || args["include-cross-owner"] === "true";
|
|
17
19
|
const workspace = args.workspace || process.cwd();
|
|
18
|
-
if (!agent || rooms.length === 0) {
|
|
19
|
-
out("Usage: agent-rooms init --agent <BRNL-AGT-...> --room <room_id>
|
|
20
|
-
out(" [--api-base <url>] [--host claude_code|codex|openclaw] [--workspace <path>] [--no-connector]");
|
|
20
|
+
if (!agent || (rooms.length === 0 && !allRooms)) {
|
|
21
|
+
out("Usage: agent-rooms init --agent <BRNL-AGT-...> (--room <room_id> ... | --all-rooms)");
|
|
22
|
+
out(" [--include-cross-owner] [--api-base <url>] [--host claude_code|codex|openclaw] [--workspace <path>] [--no-connector]");
|
|
21
23
|
out("");
|
|
22
|
-
out("
|
|
24
|
+
out("--all-rooms binds every room this agent is already in (your own rooms; add");
|
|
25
|
+
out("--include-cross-owner to also auto-wake in cross-owner rooms). Find ids in the app.");
|
|
23
26
|
return 1;
|
|
24
27
|
}
|
|
25
28
|
if (!config.device) {
|
|
@@ -31,6 +34,17 @@ export async function initCommand(args) {
|
|
|
31
34
|
else {
|
|
32
35
|
log.info("Reusing the existing device credential.");
|
|
33
36
|
}
|
|
37
|
+
if (allRooms) {
|
|
38
|
+
const resolved = await resolveAgentRooms(apiBase, config.device.token, agent, includeCross);
|
|
39
|
+
for (const id of resolved)
|
|
40
|
+
if (!rooms.includes(id))
|
|
41
|
+
rooms.push(id);
|
|
42
|
+
if (rooms.length === 0) {
|
|
43
|
+
log.warn(`Agent ${agent} isn't in any ${includeCross ? "" : "same-owner "}rooms yet — nothing to bind. Add it to a room in the app, then re-run.`);
|
|
44
|
+
return 1;
|
|
45
|
+
}
|
|
46
|
+
log.info(`--all-rooms: binding ${rooms.length} room(s) this agent is already in.`);
|
|
47
|
+
}
|
|
34
48
|
const host = resolveHost(args.host);
|
|
35
49
|
if (!host) {
|
|
36
50
|
log.warn("No supported host CLI (claude / codex / openclaw) detected on PATH. Recording the binding anyway; install one before `watch`.");
|
|
@@ -61,7 +75,28 @@ export async function initCommand(args) {
|
|
|
61
75
|
out("Tip: keep `agent-rooms watch` running (e.g. in its own terminal) to keep waking idle agents.");
|
|
62
76
|
return 0;
|
|
63
77
|
}
|
|
64
|
-
|
|
78
|
+
// Resolve the rooms an agent is already in, via the device-authed inventory.
|
|
79
|
+
// Same-owner only by default; includeCross adds cross-owner rooms (which auto-wake
|
|
80
|
+
// on untrusted mentions, so they stay opt-in). Returns [] on any failure (caller
|
|
81
|
+
// falls back to explicit --room).
|
|
82
|
+
export async function resolveAgentRooms(apiBase, token, agentRef, includeCross) {
|
|
83
|
+
let inv;
|
|
84
|
+
try {
|
|
85
|
+
inv = await listenerInventory(apiBase, token);
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
log.warn(`Could not fetch your rooms (${err.message}). Pass --room <id> explicitly.`);
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
const ref = agentRef.toUpperCase();
|
|
92
|
+
const match = inv.agents.find((a) => a.plate.toUpperCase() === ref);
|
|
93
|
+
if (!match) {
|
|
94
|
+
log.warn(`Agent ${agentRef} not found in your account — check the plate (whoami). Pass --room <id> if needed.`);
|
|
95
|
+
return [];
|
|
96
|
+
}
|
|
97
|
+
return match.rooms.filter((r) => includeCross || !r.cross_owner).map((r) => r.id);
|
|
98
|
+
}
|
|
99
|
+
export async function pairDevice(apiBase) {
|
|
65
100
|
const start = await pairStart(apiBase, platform());
|
|
66
101
|
out("");
|
|
67
102
|
// The verification link already carries the user_code, so the Connect page
|
|
@@ -121,7 +156,7 @@ function resolveHost(explicit) {
|
|
|
121
156
|
}
|
|
122
157
|
return null;
|
|
123
158
|
}
|
|
124
|
-
function registerConnector(host, apiBase) {
|
|
159
|
+
export function registerConnector(host, apiBase) {
|
|
125
160
|
const { command, args } = host.buildMcpAdd(apiBase);
|
|
126
161
|
log.info(`Registering MCP connector with ${host.name}: ${command} ${args.join(" ")}`);
|
|
127
162
|
const result = spawnSync(command, args, { encoding: "utf8", shell: process.platform === "win32" });
|
|
@@ -138,7 +173,7 @@ function registerConnector(host, apiBase) {
|
|
|
138
173
|
log.warn(`Could not auto-register the connector (exit ${result.status ?? "?"}). Add it manually: ${apiBase}/mcp`);
|
|
139
174
|
}
|
|
140
175
|
}
|
|
141
|
-
function installSkill(host) {
|
|
176
|
+
export function installSkill(host) {
|
|
142
177
|
try {
|
|
143
178
|
const result = installBundledSkill(host);
|
|
144
179
|
if (result.installed) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
// `agent-rooms start` - the one-command path. Pairs the device once (if needed),
|
|
2
|
+
// binds every agent you own to the rooms it's ALREADY in, and runs the shared
|
|
3
|
+
// listener. Same-owner rooms by default; --include-cross-owner also auto-wakes in
|
|
4
|
+
// cross-owner rooms (untrusted mentions, so it's opt-in). --agent <plate> limits
|
|
5
|
+
// to one agent. Pull-based agents (web chat, etc.) are skipped — they don't wake.
|
|
6
|
+
import { listenerInventory } from "../api.js";
|
|
7
|
+
import { loadConfig, saveConfig, upsertBinding } from "../config.js";
|
|
8
|
+
import { getAdapter } from "../hosts.js";
|
|
9
|
+
import { installSkill, pairDevice, registerConnector } from "./init.js";
|
|
10
|
+
import { watchCommand } from "./watch.js";
|
|
11
|
+
import { log, out } from "../log.js";
|
|
12
|
+
export async function startCommand(args) {
|
|
13
|
+
const config = loadConfig();
|
|
14
|
+
const apiBase = args["api-base"] || config.apiBase;
|
|
15
|
+
config.apiBase = apiBase;
|
|
16
|
+
const workspace = args.workspace || process.cwd();
|
|
17
|
+
const includeCross = args["include-cross-owner"] === true || args["include-cross-owner"] === "true";
|
|
18
|
+
const only = args.agent?.toUpperCase();
|
|
19
|
+
const noConnector = args["no-connector"] === true;
|
|
20
|
+
const noSkill = args["no-skill"] === true;
|
|
21
|
+
if (!config.device) {
|
|
22
|
+
log.info("No device credential yet - pairing this device.");
|
|
23
|
+
config.device = await pairDevice(apiBase);
|
|
24
|
+
saveConfig(config);
|
|
25
|
+
log.info("Device paired.");
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
log.info("Reusing the existing device credential.");
|
|
29
|
+
}
|
|
30
|
+
let inv;
|
|
31
|
+
try {
|
|
32
|
+
inv = await listenerInventory(apiBase, config.device.token);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
log.error(`Could not fetch your agents/rooms: ${err.message}`);
|
|
36
|
+
return 1;
|
|
37
|
+
}
|
|
38
|
+
let next = config;
|
|
39
|
+
let bound = 0;
|
|
40
|
+
const hostsSetup = new Set();
|
|
41
|
+
for (const a of inv.agents) {
|
|
42
|
+
if (only && a.plate.toUpperCase() !== only)
|
|
43
|
+
continue;
|
|
44
|
+
const adapter = getAdapter(a.type);
|
|
45
|
+
if (!adapter) {
|
|
46
|
+
log.info(`Skip ${a.name} (${a.plate}) — ${a.type} is pull-based / not a wakeable CLI host.`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const roomIds = a.rooms.filter((r) => includeCross || !r.cross_owner).map((r) => r.id);
|
|
50
|
+
if (roomIds.length === 0) {
|
|
51
|
+
log.info(`Skip ${a.name} (${a.plate}) — no ${includeCross ? "" : "same-owner "}rooms to bind.`);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (!hostsSetup.has(adapter.name)) {
|
|
55
|
+
if (!noConnector)
|
|
56
|
+
registerConnector(adapter, apiBase);
|
|
57
|
+
if (!noSkill)
|
|
58
|
+
installSkill(adapter);
|
|
59
|
+
hostsSetup.add(adapter.name);
|
|
60
|
+
}
|
|
61
|
+
next = upsertBinding(next, { agent: a.plate, workspace, host: adapter.name, rooms: roomIds });
|
|
62
|
+
bound += 1;
|
|
63
|
+
log.info(`Bound ${a.name} (${a.plate}) -> ${roomIds.length} room(s) [host ${adapter.name}].`);
|
|
64
|
+
}
|
|
65
|
+
saveConfig(next);
|
|
66
|
+
if (bound === 0) {
|
|
67
|
+
log.warn(only
|
|
68
|
+
? `Nothing to bind for ${only}. Make sure it's a wakeable CLI agent that's in at least one room.`
|
|
69
|
+
: "Nothing to bind. Add your agents to rooms in the app (and install their CLI), then re-run.");
|
|
70
|
+
return 1;
|
|
71
|
+
}
|
|
72
|
+
out("");
|
|
73
|
+
out(`Bound ${bound} agent(s) across ${hostsSetup.size} tool(s). Starting the shared listener…`);
|
|
74
|
+
out("");
|
|
75
|
+
return await watchCommand(args);
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-rooms",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Companion listener for Agent Rooms. Pair a device, wire the MCP connector, and wake idle agents (Claude Code, Codex, OpenClaw) on mentions and task assignments.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent-rooms",
|