@whiteroom-ai/cli 1.1.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/dist/index.d.ts +2 -0
- package/dist/index.js +124 -0
- package/dist/index.js.map +1 -0
- package/package.json +22 -0
- package/src/index.ts +144 -0
- package/tsconfig.json +16 -0
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { WhiteRoomClient, WhiteRoomError } from "@whiteroom-ai/sdk";
|
|
3
|
+
const USAGE = `whiteroom — CLI for WhiteRoom agent governance
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
whiteroom health
|
|
7
|
+
whiteroom register <agent_id> [--fleet <id>] [--role <role>]
|
|
8
|
+
whiteroom pair <agent_a> <agent_b> [--fleet <id>]
|
|
9
|
+
whiteroom auto-pair [--fleet <id>]
|
|
10
|
+
whiteroom start <agent_id> [--fleet <id>]
|
|
11
|
+
whiteroom task <agent_id> <task_name> [--minutes <n>] [--tokens <n>] [--fleet <id>]
|
|
12
|
+
whiteroom check <agent_id> [--fleet <id>]
|
|
13
|
+
whiteroom handover <from_agent> <to_agent> [--fleet <id>]
|
|
14
|
+
whiteroom alarm <agent_id> [--fleet <id>]
|
|
15
|
+
whiteroom report [--fleet <id>]
|
|
16
|
+
whiteroom fleets
|
|
17
|
+
whiteroom login <fleet_token>
|
|
18
|
+
|
|
19
|
+
Options:
|
|
20
|
+
--url <base_url> Server URL (default: WHITEROOM_URL or http://localhost:3000)
|
|
21
|
+
--key <api_key> API key (default: WHITEROOM_API_KEY)
|
|
22
|
+
`;
|
|
23
|
+
function parseArgs(argv) {
|
|
24
|
+
const args = [];
|
|
25
|
+
const flags = {};
|
|
26
|
+
for (let i = 0; i < argv.length; i++) {
|
|
27
|
+
if (argv[i].startsWith("--") && i + 1 < argv.length) {
|
|
28
|
+
flags[argv[i].slice(2)] = argv[++i];
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
args.push(argv[i]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return { args, flags };
|
|
35
|
+
}
|
|
36
|
+
async function main() {
|
|
37
|
+
const { args, flags } = parseArgs(process.argv.slice(2));
|
|
38
|
+
const command = args[0];
|
|
39
|
+
if (!command || command === "help" || command === "--help") {
|
|
40
|
+
console.log(USAGE);
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}
|
|
43
|
+
const client = new WhiteRoomClient({
|
|
44
|
+
baseUrl: flags.url ?? process.env.WHITEROOM_URL ?? "http://localhost:3000",
|
|
45
|
+
apiKey: flags.key ?? process.env.WHITEROOM_API_KEY,
|
|
46
|
+
});
|
|
47
|
+
try {
|
|
48
|
+
switch (command) {
|
|
49
|
+
case "health":
|
|
50
|
+
print(await client.health());
|
|
51
|
+
break;
|
|
52
|
+
case "register":
|
|
53
|
+
requireArg(args[1], "agent_id");
|
|
54
|
+
print(await client.registerAgent(args[1], { fleetId: flags.fleet, role: flags.role }));
|
|
55
|
+
break;
|
|
56
|
+
case "pair":
|
|
57
|
+
requireArg(args[1], "agent_a");
|
|
58
|
+
requireArg(args[2], "agent_b");
|
|
59
|
+
print(await client.pairAgents(args[1], args[2], flags.fleet));
|
|
60
|
+
break;
|
|
61
|
+
case "auto-pair":
|
|
62
|
+
print(await client.autoPair(flags.fleet));
|
|
63
|
+
break;
|
|
64
|
+
case "start":
|
|
65
|
+
requireArg(args[1], "agent_id");
|
|
66
|
+
print(await client.startWatch(args[1], flags.fleet));
|
|
67
|
+
break;
|
|
68
|
+
case "task":
|
|
69
|
+
requireArg(args[1], "agent_id");
|
|
70
|
+
requireArg(args[2], "task_name");
|
|
71
|
+
print(await client.completeTask(args[1], args[2], {
|
|
72
|
+
fleetId: flags.fleet,
|
|
73
|
+
minutesSpent: flags.minutes ? Number(flags.minutes) : undefined,
|
|
74
|
+
tokensUsed: flags.tokens ? Number(flags.tokens) : undefined,
|
|
75
|
+
}));
|
|
76
|
+
break;
|
|
77
|
+
case "check":
|
|
78
|
+
requireArg(args[1], "agent_id");
|
|
79
|
+
print(await client.checkWatch(args[1], flags.fleet));
|
|
80
|
+
break;
|
|
81
|
+
case "handover":
|
|
82
|
+
requireArg(args[1], "from_agent");
|
|
83
|
+
requireArg(args[2], "to_agent");
|
|
84
|
+
print(await client.initiateHandover(args[1], args[2], { fleetId: flags.fleet }));
|
|
85
|
+
break;
|
|
86
|
+
case "alarm":
|
|
87
|
+
requireArg(args[1], "agent_id");
|
|
88
|
+
print(await client.fireAlarm(args[1], flags.fleet));
|
|
89
|
+
break;
|
|
90
|
+
case "report":
|
|
91
|
+
print(await client.fleetReport(flags.fleet));
|
|
92
|
+
break;
|
|
93
|
+
case "fleets":
|
|
94
|
+
print(await client.listFleets());
|
|
95
|
+
break;
|
|
96
|
+
case "login":
|
|
97
|
+
requireArg(args[1], "fleet_token");
|
|
98
|
+
print(await client.tokenLogin(args[1]));
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
console.error(`Unknown command: ${command}\n`);
|
|
102
|
+
console.log(USAGE);
|
|
103
|
+
process.exit(1);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
if (e instanceof WhiteRoomError) {
|
|
108
|
+
console.error(`Error ${e.status}: ${e.message}`);
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
throw e;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function requireArg(value, name) {
|
|
115
|
+
if (!value) {
|
|
116
|
+
console.error(`Missing required argument: <${name}>`);
|
|
117
|
+
process.exit(1);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function print(data) {
|
|
121
|
+
console.log(JSON.stringify(data, null, 2));
|
|
122
|
+
}
|
|
123
|
+
main();
|
|
124
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@whiteroom-ai/cli",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "CLI for WhiteRoom — manage AI agent fleets from the terminal",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"whiteroom": "dist/index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"typecheck": "tsc --noEmit",
|
|
12
|
+
"dev": "tsx src/index.ts"
|
|
13
|
+
},
|
|
14
|
+
"license": "Apache-2.0",
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@whiteroom-ai/sdk": "^1.1.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"typescript": "^5.6.0",
|
|
20
|
+
"tsx": "^4.19.0"
|
|
21
|
+
}
|
|
22
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { WhiteRoomClient, WhiteRoomError } from "@whiteroom-ai/sdk";
|
|
3
|
+
|
|
4
|
+
const USAGE = `whiteroom — CLI for WhiteRoom agent governance
|
|
5
|
+
|
|
6
|
+
Usage:
|
|
7
|
+
whiteroom health
|
|
8
|
+
whiteroom register <agent_id> [--fleet <id>] [--role <role>]
|
|
9
|
+
whiteroom pair <agent_a> <agent_b> [--fleet <id>]
|
|
10
|
+
whiteroom auto-pair [--fleet <id>]
|
|
11
|
+
whiteroom start <agent_id> [--fleet <id>]
|
|
12
|
+
whiteroom task <agent_id> <task_name> [--minutes <n>] [--tokens <n>] [--fleet <id>]
|
|
13
|
+
whiteroom check <agent_id> [--fleet <id>]
|
|
14
|
+
whiteroom handover <from_agent> <to_agent> [--fleet <id>]
|
|
15
|
+
whiteroom alarm <agent_id> [--fleet <id>]
|
|
16
|
+
whiteroom report [--fleet <id>]
|
|
17
|
+
whiteroom fleets
|
|
18
|
+
whiteroom login <fleet_token>
|
|
19
|
+
|
|
20
|
+
Options:
|
|
21
|
+
--url <base_url> Server URL (default: WHITEROOM_URL or http://localhost:3000)
|
|
22
|
+
--key <api_key> API key (default: WHITEROOM_API_KEY)
|
|
23
|
+
`;
|
|
24
|
+
|
|
25
|
+
function parseArgs(argv: string[]) {
|
|
26
|
+
const args: string[] = [];
|
|
27
|
+
const flags: Record<string, string> = {};
|
|
28
|
+
for (let i = 0; i < argv.length; i++) {
|
|
29
|
+
if (argv[i].startsWith("--") && i + 1 < argv.length) {
|
|
30
|
+
flags[argv[i].slice(2)] = argv[++i];
|
|
31
|
+
} else {
|
|
32
|
+
args.push(argv[i]);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return { args, flags };
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async function main() {
|
|
39
|
+
const { args, flags } = parseArgs(process.argv.slice(2));
|
|
40
|
+
const command = args[0];
|
|
41
|
+
|
|
42
|
+
if (!command || command === "help" || command === "--help") {
|
|
43
|
+
console.log(USAGE);
|
|
44
|
+
process.exit(0);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const client = new WhiteRoomClient({
|
|
48
|
+
baseUrl: flags.url ?? process.env.WHITEROOM_URL ?? "http://localhost:3000",
|
|
49
|
+
apiKey: flags.key ?? process.env.WHITEROOM_API_KEY,
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
try {
|
|
53
|
+
switch (command) {
|
|
54
|
+
case "health":
|
|
55
|
+
print(await client.health());
|
|
56
|
+
break;
|
|
57
|
+
|
|
58
|
+
case "register":
|
|
59
|
+
requireArg(args[1], "agent_id");
|
|
60
|
+
print(await client.registerAgent(args[1], { fleetId: flags.fleet, role: flags.role }));
|
|
61
|
+
break;
|
|
62
|
+
|
|
63
|
+
case "pair":
|
|
64
|
+
requireArg(args[1], "agent_a");
|
|
65
|
+
requireArg(args[2], "agent_b");
|
|
66
|
+
print(await client.pairAgents(args[1], args[2], flags.fleet));
|
|
67
|
+
break;
|
|
68
|
+
|
|
69
|
+
case "auto-pair":
|
|
70
|
+
print(await client.autoPair(flags.fleet));
|
|
71
|
+
break;
|
|
72
|
+
|
|
73
|
+
case "start":
|
|
74
|
+
requireArg(args[1], "agent_id");
|
|
75
|
+
print(await client.startWatch(args[1], flags.fleet));
|
|
76
|
+
break;
|
|
77
|
+
|
|
78
|
+
case "task":
|
|
79
|
+
requireArg(args[1], "agent_id");
|
|
80
|
+
requireArg(args[2], "task_name");
|
|
81
|
+
print(
|
|
82
|
+
await client.completeTask(args[1], args[2], {
|
|
83
|
+
fleetId: flags.fleet,
|
|
84
|
+
minutesSpent: flags.minutes ? Number(flags.minutes) : undefined,
|
|
85
|
+
tokensUsed: flags.tokens ? Number(flags.tokens) : undefined,
|
|
86
|
+
})
|
|
87
|
+
);
|
|
88
|
+
break;
|
|
89
|
+
|
|
90
|
+
case "check":
|
|
91
|
+
requireArg(args[1], "agent_id");
|
|
92
|
+
print(await client.checkWatch(args[1], flags.fleet));
|
|
93
|
+
break;
|
|
94
|
+
|
|
95
|
+
case "handover":
|
|
96
|
+
requireArg(args[1], "from_agent");
|
|
97
|
+
requireArg(args[2], "to_agent");
|
|
98
|
+
print(await client.initiateHandover(args[1], args[2], { fleetId: flags.fleet }));
|
|
99
|
+
break;
|
|
100
|
+
|
|
101
|
+
case "alarm":
|
|
102
|
+
requireArg(args[1], "agent_id");
|
|
103
|
+
print(await client.fireAlarm(args[1], flags.fleet));
|
|
104
|
+
break;
|
|
105
|
+
|
|
106
|
+
case "report":
|
|
107
|
+
print(await client.fleetReport(flags.fleet));
|
|
108
|
+
break;
|
|
109
|
+
|
|
110
|
+
case "fleets":
|
|
111
|
+
print(await client.listFleets());
|
|
112
|
+
break;
|
|
113
|
+
|
|
114
|
+
case "login":
|
|
115
|
+
requireArg(args[1], "fleet_token");
|
|
116
|
+
print(await client.tokenLogin(args[1]));
|
|
117
|
+
break;
|
|
118
|
+
|
|
119
|
+
default:
|
|
120
|
+
console.error(`Unknown command: ${command}\n`);
|
|
121
|
+
console.log(USAGE);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
}
|
|
124
|
+
} catch (e) {
|
|
125
|
+
if (e instanceof WhiteRoomError) {
|
|
126
|
+
console.error(`Error ${(e as WhiteRoomError).status}: ${(e as WhiteRoomError).message}`);
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
throw e;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
function requireArg(value: string | undefined, name: string): asserts value is string {
|
|
134
|
+
if (!value) {
|
|
135
|
+
console.error(`Missing required argument: <${name}>`);
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function print(data: unknown) {
|
|
141
|
+
console.log(JSON.stringify(data, null, 2));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
main();
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2022",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "bundler",
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"rootDir": "src",
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
10
|
+
"skipLibCheck": true,
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"sourceMap": true
|
|
13
|
+
},
|
|
14
|
+
"include": ["src"],
|
|
15
|
+
"exclude": ["node_modules", "dist"]
|
|
16
|
+
}
|