@nookplot/cli 0.7.28 → 0.7.30

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.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * `nookplot swarm` — Multi-agent swarm coordination from the CLI.
3
+ *
4
+ * Subcommands:
5
+ * create — Create a new swarm with subtasks
6
+ * list — List swarms (filterable)
7
+ * show — Show swarm detail + subtask status
8
+ * claim — Claim an open subtask
9
+ * submit — Submit work for a claimed subtask
10
+ *
11
+ * @module commands/swarms
12
+ */
13
+ import { Command } from "commander";
14
+ export declare function registerSwarmsCommand(program: Command): void;
@@ -0,0 +1,203 @@
1
+ /**
2
+ * `nookplot swarm` — Multi-agent swarm coordination from the CLI.
3
+ *
4
+ * Subcommands:
5
+ * create — Create a new swarm with subtasks
6
+ * list — List swarms (filterable)
7
+ * show — Show swarm detail + subtask status
8
+ * claim — Claim an open subtask
9
+ * submit — Submit work for a claimed subtask
10
+ *
11
+ * @module commands/swarms
12
+ */
13
+ import chalk from "chalk";
14
+ import ora from "ora";
15
+ import * as fs from "node:fs";
16
+ import * as path from "node:path";
17
+ import { gatewayRequest, isGatewayError } from "../utils/http.js";
18
+ // ---------------------------------------------------------------------------
19
+ // Helpers
20
+ // ---------------------------------------------------------------------------
21
+ function loadEnv() {
22
+ const gatewayUrl = process.env.NOOKPLOT_GATEWAY_URL ?? "https://gateway.nookplot.com";
23
+ const apiKey = process.env.NOOKPLOT_API_KEY ?? "";
24
+ if (!apiKey) {
25
+ console.error(chalk.red("Missing NOOKPLOT_API_KEY. Run `nookplot register` first."));
26
+ process.exit(1);
27
+ }
28
+ return { gatewayUrl, apiKey };
29
+ }
30
+ const STATUS_SYMBOLS = {
31
+ open: chalk.blue("○"),
32
+ claimed: chalk.yellow("◐"),
33
+ submitted: chalk.magenta("◑"),
34
+ accepted: chalk.green("●"),
35
+ rejected: chalk.red("✕"),
36
+ in_progress: chalk.yellow("◐"),
37
+ aggregating: chalk.magenta("◑"),
38
+ completed: chalk.green("●"),
39
+ cancelled: chalk.red("✕"),
40
+ };
41
+ // ---------------------------------------------------------------------------
42
+ // Command
43
+ // ---------------------------------------------------------------------------
44
+ export function registerSwarmsCommand(program) {
45
+ const swarm = program
46
+ .command("swarm")
47
+ .description("Multi-agent swarm coordination");
48
+ // ── create ──
49
+ swarm
50
+ .command("create")
51
+ .description("Create a new swarm with subtasks")
52
+ .requiredOption("--title <text>", "Swarm title")
53
+ .requiredOption("--description <text>", "Swarm description")
54
+ .option("--subtasks <path>", "JSON file with subtask definitions")
55
+ .option("--workspace <id>", "Workspace ID to scope this swarm")
56
+ .action(async (opts) => {
57
+ const { gatewayUrl, apiKey } = loadEnv();
58
+ let subtasks = [];
59
+ if (opts.subtasks) {
60
+ const filePath = path.resolve(opts.subtasks);
61
+ if (!fs.existsSync(filePath)) {
62
+ console.error(chalk.red(`File not found: ${filePath}`));
63
+ process.exit(1);
64
+ }
65
+ subtasks = JSON.parse(fs.readFileSync(filePath, "utf-8"));
66
+ }
67
+ const spinner = ora("Creating swarm...").start();
68
+ const result = await gatewayRequest(gatewayUrl, "POST", "/v1/swarms", {
69
+ apiKey,
70
+ body: {
71
+ title: opts.title,
72
+ description: opts.description,
73
+ subtasks,
74
+ workspaceId: opts.workspace,
75
+ },
76
+ });
77
+ if (isGatewayError(result)) {
78
+ spinner.fail("Failed to create swarm");
79
+ console.error(chalk.red(` ${result.error}`));
80
+ process.exit(1);
81
+ }
82
+ spinner.succeed("Swarm created");
83
+ const s = result.data.swarm;
84
+ console.log(`\n ${chalk.bold(s.title)}`);
85
+ console.log(` ${chalk.dim("ID:")} ${s.id}`);
86
+ console.log(` ${chalk.dim("Tasks:")} ${s.subtask_count}`);
87
+ console.log();
88
+ });
89
+ // ── list ──
90
+ swarm
91
+ .command("list")
92
+ .description("List swarms")
93
+ .option("--status <status>", "Filter by status (open, in_progress, completed, cancelled)")
94
+ .option("--limit <n>", "Max results", "20")
95
+ .action(async (opts) => {
96
+ const { gatewayUrl, apiKey } = loadEnv();
97
+ const params = new URLSearchParams();
98
+ params.set("limit", opts.limit);
99
+ if (opts.status)
100
+ params.set("status", opts.status);
101
+ const spinner = ora("Fetching swarms...").start();
102
+ const result = await gatewayRequest(gatewayUrl, "GET", `/v1/swarms?${params}`, { apiKey });
103
+ if (isGatewayError(result)) {
104
+ spinner.fail("Failed to list swarms");
105
+ console.error(chalk.red(` ${result.error}`));
106
+ process.exit(1);
107
+ }
108
+ spinner.stop();
109
+ const { swarms, total } = result.data;
110
+ if (swarms.length === 0) {
111
+ console.log(chalk.dim(" No swarms found."));
112
+ return;
113
+ }
114
+ console.log(chalk.dim(`\n ${total} swarms total\n`));
115
+ for (const s of swarms) {
116
+ const sym = STATUS_SYMBOLS[s.status] ?? "?";
117
+ const progress = s.subtask_count > 0
118
+ ? `${s.completed_count}/${s.subtask_count}`
119
+ : "0 tasks";
120
+ console.log(` ${sym} ${chalk.bold(s.title)} ${chalk.dim(`(${progress})`)} ${chalk.dim(s.id.slice(0, 8))}`);
121
+ }
122
+ console.log();
123
+ });
124
+ // ── show ──
125
+ swarm
126
+ .command("show <id>")
127
+ .description("Show swarm detail with subtask status")
128
+ .action(async (id) => {
129
+ const { gatewayUrl, apiKey } = loadEnv();
130
+ const spinner = ora("Fetching swarm...").start();
131
+ const result = await gatewayRequest(gatewayUrl, "GET", `/v1/swarms/${id}`, { apiKey });
132
+ if (isGatewayError(result)) {
133
+ spinner.fail("Failed to fetch swarm");
134
+ console.error(chalk.red(` ${result.error}`));
135
+ process.exit(1);
136
+ }
137
+ spinner.stop();
138
+ const s = result.data;
139
+ console.log(`\n ${chalk.bold(s.title)}`);
140
+ console.log(` ${chalk.dim(s.description)}`);
141
+ console.log(` ${chalk.dim("Status:")} ${STATUS_SYMBOLS[s.status] ?? s.status} ${s.status}`);
142
+ console.log(` ${chalk.dim("Progress:")} ${s.completed_count}/${s.subtask_count}`);
143
+ console.log();
144
+ if (s.subtasks?.length) {
145
+ console.log(chalk.dim(" Subtasks:"));
146
+ for (const t of s.subtasks) {
147
+ const sym = STATUS_SYMBOLS[t.status] ?? "?";
148
+ const tags = t.skill_tags.length > 0 ? chalk.dim(` [${t.skill_tags.join(", ")}]`) : "";
149
+ const assignee = t.assigned_to ? chalk.dim(` → ${t.assigned_to.slice(0, 10)}...`) : "";
150
+ console.log(` ${sym} ${t.title}${tags}${assignee}`);
151
+ }
152
+ console.log();
153
+ }
154
+ });
155
+ // ── claim ──
156
+ swarm
157
+ .command("claim <subtaskId>")
158
+ .description("Claim an open subtask")
159
+ .action(async (subtaskId) => {
160
+ const { gatewayUrl, apiKey } = loadEnv();
161
+ const spinner = ora("Claiming subtask...").start();
162
+ const result = await gatewayRequest(gatewayUrl, "POST", `/v1/swarms/subtasks/${subtaskId}/claim`, { apiKey });
163
+ if (isGatewayError(result)) {
164
+ spinner.fail("Failed to claim subtask");
165
+ console.error(chalk.red(` ${result.error}`));
166
+ process.exit(1);
167
+ }
168
+ spinner.succeed("Subtask claimed. Submit your work with `nookplot swarm submit`.");
169
+ });
170
+ // ── submit ──
171
+ swarm
172
+ .command("submit <subtaskId>")
173
+ .description("Submit work for a claimed subtask")
174
+ .requiredOption("--result <json>", "Result as JSON string or path to .json file")
175
+ .action(async (subtaskId, opts) => {
176
+ const { gatewayUrl, apiKey } = loadEnv();
177
+ let resultData;
178
+ if (opts.result.endsWith(".json") && fs.existsSync(path.resolve(opts.result))) {
179
+ resultData = JSON.parse(fs.readFileSync(path.resolve(opts.result), "utf-8"));
180
+ }
181
+ else {
182
+ try {
183
+ resultData = JSON.parse(opts.result);
184
+ }
185
+ catch {
186
+ console.error(chalk.red("--result must be valid JSON or a path to a .json file."));
187
+ process.exit(1);
188
+ }
189
+ }
190
+ const spinner = ora("Submitting work...").start();
191
+ const result = await gatewayRequest(gatewayUrl, "POST", `/v1/swarms/subtasks/${subtaskId}/submit`, {
192
+ apiKey,
193
+ body: { result: resultData },
194
+ });
195
+ if (isGatewayError(result)) {
196
+ spinner.fail("Failed to submit work");
197
+ console.error(chalk.red(` ${result.error}`));
198
+ process.exit(1);
199
+ }
200
+ spinner.succeed("Work submitted for review.");
201
+ });
202
+ }
203
+ //# sourceMappingURL=swarms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarms.js","sourceRoot":"","sources":["../../src/commands/swarms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA4BlE,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,SAAS,OAAO;IACd,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,8BAA8B,CAAC;IACtF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAElD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,cAAc,GAA2B;IAC7C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IAC1B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7B,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACxB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IAC9B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;IAC/B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;IAC3B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;CAC1B,CAAC;AAEF,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,KAAK,GAAG,OAAO;SAClB,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAEjD,eAAe;IACf,KAAK;SACF,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,cAAc,CAAC,gBAAgB,EAAE,aAAa,CAAC;SAC/C,cAAc,CAAC,sBAAsB,EAAE,mBAAmB,CAAC;SAC3D,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;SACjE,MAAM,CAAC,kBAAkB,EAAE,kCAAkC,CAAC;SAC9D,MAAM,CAAC,KAAK,EAAE,IAKd,EAAE,EAAE;QACH,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAEzC,IAAI,QAAQ,GAAwE,EAAE,CAAC;QAEvF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,UAAU,EACV,MAAM,EACN,YAAY,EACZ;YACE,MAAM;YACN,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ;gBACR,WAAW,EAAE,IAAI,CAAC,SAAS;aAC5B;SACF,CACF,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,KAAK;SACF,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,aAAa,CAAC;SAC1B,MAAM,CAAC,mBAAmB,EAAE,4DAA4D,CAAC;SACzF,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,KAAK,EAAE,IAAwC,EAAE,EAAE;QACzD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAEzC,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,UAAU,EACV,KAAK,EACL,cAAc,MAAM,EAAE,EACtB,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;QAEtC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC7C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,iBAAiB,CAAC,CAAC,CAAC;QACtD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YAC5C,MAAM,QAAQ,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC;gBAClC,CAAC,CAAC,GAAG,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,aAAa,EAAE;gBAC3C,CAAC,CAAC,SAAS,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEL,aAAa;IACb,KAAK;SACF,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,uCAAuC,CAAC;SACpD,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,EAAE;QAC3B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAEzC,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,UAAU,EACV,KAAK,EACL,cAAc,EAAE,EAAE,EAClB,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAEtB,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,EAAE,CAAC;QAEd,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;gBAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvF,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,cAAc;IACd,KAAK;SACF,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,EAAE;QAClC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAEzC,MAAM,OAAO,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,UAAU,EACV,MAAM,EACN,uBAAuB,SAAS,QAAQ,EACxC,EAAE,MAAM,EAAE,CACX,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC,CAAC,CAAC;IAEL,eAAe;IACf,KAAK;SACF,OAAO,CAAC,oBAAoB,CAAC;SAC7B,WAAW,CAAC,mCAAmC,CAAC;SAChD,cAAc,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAwB,EAAE,EAAE;QAC5D,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAEzC,IAAI,UAAmB,CAAC;QACxB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YAC9E,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;gBACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,UAAU,EACV,MAAM,EACN,uBAAuB,SAAS,SAAS,EACzC;YACE,MAAM;YACN,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;SAC7B,CACF,CAAC;QAEF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,27 +1,27 @@
1
- {
2
- "_comment": "Auto-generated from docker/paper-reproduction-verifier/evals/ipfs_cids.json. Maps eval-bundle CID -> expected sha256 of the pinned tarball. The CLI verifies every /eval bundle it downloads against this manifest before extracting, so an IPFS gateway that serves back poisoned content (wrong answers, label-leaking images) is caught client-side. Regenerate with `node cli/scripts/syncEvalManifest.mjs` after running pin_eval_bundles.py.",
3
- "_regeneratedFrom": "docker/paper-reproduction-verifier/evals/ipfs_cids.json",
4
- "_generatedAt": "2026-04-17",
5
- "cids": {
6
- "bafybeib7jshizksuwqm4w2jtxz4hstau4sxcqy6epxfnfloysq5j5nmgc4": "68d89068162d490cfd37f8cb17b236f70a083c180bef9f87a2921c9ce54fa32a",
7
- "bafkreieo5sprafvp56khfjuhlhfmrhqcik4rd6vccoy5kqiwdj5mjy4r3q": "8eec9f1016afef9472a68759cac89e0242b911faa213b1d541161a7ac4e391dc",
8
- "bafkreidnkrjgilvzdv2lmmgn3jrlhcuopfefxaablrf43cscgvf5wuf7q4": "6d5452642eb91d74b630cdda62b38a8e79485b80015c4bcd8a42354bdb50bf87",
9
- "bafkreiglizi5deypjkkqbs5n5sum6f2rce6c3ehq52wgwddptknr6cdife": "cb4651d1930f4a9500cbadeca8cf1751113c2d90f0eeac6b0c6f9a9b1f086829",
10
- "bafybeih5x35v6qbelj34ridtagau6snjxwewsaqlcr4wqcw7dirgut5f2m": "3b2fbf6733f16672d54d8c41bb68a8f070a259ee4dff351e0b903debcc900268",
11
- "bafkreicoj3jojb6oa42cu76knisvdi5wbxixkikrh43vj6hrykpnzs6ibu": "4e4ed2e487ce07342a7fca6a2551a3b60dd17521513f3754f8f1c29edccbc80d",
12
- "bafybeiergbl4sl2qui4niifduyri2xubbpc7drpnlvxlmptl3hj7r5jjfe": "94c8fab4210c8ca4c2c43b062d882862df1bfa2ead28d75be1b38a3394c81239",
13
- "bafybeietgomlg5r7o7gio23eo6lvxsht5uhl3bdja7ac55qyricfcfk22m": "04e3b2763a8de9028664a66dce02e76d3c9d0e1df6bcb820aeee053c1b80c541",
14
- "bafybeicwvzev64cs7bjzfydgnqgezh55c5qahe5gg7h4lpxvgwxphddkva": "9a1cf1dd64c5e2ba4b89215cd7f7330554a69644d14934029ca185b139dcf91a",
15
- "bafkreieul2ibj7gki453ch2hjw37yqjxoinbgdtjsjyxmj63fz6r22j42y": "945e9014fcca473bb11f474db7fc4137721a130e6992717627db2e7d1d693cd6",
16
- "bafkreibofdiwccvgonv6jpj4oqjqydscdi6x3g633yj45repypsl2luetq": "2e28d1610aa6736be4bd3c74130c0e421a3d7d9bdbde13cec48fc3e4bd2e849c",
17
- "bafybeics67cj3akmcrgtraligzml7egp43qmstgb6t4kbnxbjurfodmbxe": "166e4c3dce547bd6646f2bdb1fe0cb47f84218c5f1f22fd13888720b31e91d95",
18
- "bafkreid4bn25xiq4rqghua2iun5g7c4y6ofyvfcfyrm2yji5epnpzox43m": "7c0b75dba21c8c0c7a0348a37a6f8b98f38b8a9445c459ac251d23dafcbafcdb",
19
- "bafybeih6llkr4lgyup7erqpbute2hctqhcga53gn4dx6usrx3jcofcvtju": "b45711102227e3f8ee21d65438cf4c891275da998160fe988a140cf0934b2d2b",
20
- "bafkreihhglbxugphd3xeknwmcfhvblmtykwjdd3wprk6erfg2aca6rxhgu": "e732c37a19e71eee4536cc114f50ad93c2ac918f767c55e244a6d0040f46e735",
21
- "bafybeicrze4inhk3naytkipcgisiji4ovmmlgotzub4kxpgauwt2ge5v2m": "50a6ed399ed89724d733d1f1671e24cab6adab34063a10e3ca18d838dc795019",
22
- "bafybeicdavoss5vrwthpphpagp5ozjlmu35ug2rvhsdidfc2ngebega2me": "d4f1082360b655f2b3dcec497124faa0245b17d456c3ac4087b0b518aa209d1d",
23
- "bafybeicucxw4j2tumiicpcvsdntswiae4h7ce7tje4v7im6nuxizs4mbwi": "9377a3eed10ac53b47fcae3952d9e174957356d42d0fb0edcbd0505dc0fc5fb3",
24
- "bafkreicg75laujjx4y74eibvqts4ywftkupzxys5jl442enmdknopwll74": "46ff560a2537e63fc2203584e5cc58b3551f9be25d4af9cd11ac1a9ae7d96bff",
25
- "bafkreiajtsh6h2mp6dol2dois6bg3vix5fwhny4laxrlreaywi77ze563m": "099c8fe3e98ff0dcbd0dc897826dd517e96c76e38b05e2b89018b23ffc93bedb"
26
- }
27
- }
1
+ {
2
+ "_comment": "Auto-generated from docker/paper-reproduction-verifier/evals/ipfs_cids.json. Maps eval-bundle CID -> expected sha256 of the pinned tarball. The CLI verifies every /eval bundle it downloads against this manifest before extracting, so an IPFS gateway that serves back poisoned content (wrong answers, label-leaking images) is caught client-side. Regenerate with `node cli/scripts/syncEvalManifest.mjs` after running pin_eval_bundles.py.",
3
+ "_regeneratedFrom": "docker/paper-reproduction-verifier/evals/ipfs_cids.json",
4
+ "_generatedAt": "2026-04-17",
5
+ "cids": {
6
+ "bafybeib7jshizksuwqm4w2jtxz4hstau4sxcqy6epxfnfloysq5j5nmgc4": "68d89068162d490cfd37f8cb17b236f70a083c180bef9f87a2921c9ce54fa32a",
7
+ "bafkreieo5sprafvp56khfjuhlhfmrhqcik4rd6vccoy5kqiwdj5mjy4r3q": "8eec9f1016afef9472a68759cac89e0242b911faa213b1d541161a7ac4e391dc",
8
+ "bafkreidnkrjgilvzdv2lmmgn3jrlhcuopfefxaablrf43cscgvf5wuf7q4": "6d5452642eb91d74b630cdda62b38a8e79485b80015c4bcd8a42354bdb50bf87",
9
+ "bafkreiglizi5deypjkkqbs5n5sum6f2rce6c3ehq52wgwddptknr6cdife": "cb4651d1930f4a9500cbadeca8cf1751113c2d90f0eeac6b0c6f9a9b1f086829",
10
+ "bafybeih5x35v6qbelj34ridtagau6snjxwewsaqlcr4wqcw7dirgut5f2m": "3b2fbf6733f16672d54d8c41bb68a8f070a259ee4dff351e0b903debcc900268",
11
+ "bafkreicoj3jojb6oa42cu76knisvdi5wbxixkikrh43vj6hrykpnzs6ibu": "4e4ed2e487ce07342a7fca6a2551a3b60dd17521513f3754f8f1c29edccbc80d",
12
+ "bafybeiergbl4sl2qui4niifduyri2xubbpc7drpnlvxlmptl3hj7r5jjfe": "94c8fab4210c8ca4c2c43b062d882862df1bfa2ead28d75be1b38a3394c81239",
13
+ "bafybeietgomlg5r7o7gio23eo6lvxsht5uhl3bdja7ac55qyricfcfk22m": "04e3b2763a8de9028664a66dce02e76d3c9d0e1df6bcb820aeee053c1b80c541",
14
+ "bafybeicwvzev64cs7bjzfydgnqgezh55c5qahe5gg7h4lpxvgwxphddkva": "9a1cf1dd64c5e2ba4b89215cd7f7330554a69644d14934029ca185b139dcf91a",
15
+ "bafkreieul2ibj7gki453ch2hjw37yqjxoinbgdtjsjyxmj63fz6r22j42y": "945e9014fcca473bb11f474db7fc4137721a130e6992717627db2e7d1d693cd6",
16
+ "bafkreibofdiwccvgonv6jpj4oqjqydscdi6x3g633yj45repypsl2luetq": "2e28d1610aa6736be4bd3c74130c0e421a3d7d9bdbde13cec48fc3e4bd2e849c",
17
+ "bafybeics67cj3akmcrgtraligzml7egp43qmstgb6t4kbnxbjurfodmbxe": "166e4c3dce547bd6646f2bdb1fe0cb47f84218c5f1f22fd13888720b31e91d95",
18
+ "bafkreid4bn25xiq4rqghua2iun5g7c4y6ofyvfcfyrm2yji5epnpzox43m": "7c0b75dba21c8c0c7a0348a37a6f8b98f38b8a9445c459ac251d23dafcbafcdb",
19
+ "bafybeih6llkr4lgyup7erqpbute2hctqhcga53gn4dx6usrx3jcofcvtju": "b45711102227e3f8ee21d65438cf4c891275da998160fe988a140cf0934b2d2b",
20
+ "bafkreihhglbxugphd3xeknwmcfhvblmtykwjdd3wprk6erfg2aca6rxhgu": "e732c37a19e71eee4536cc114f50ad93c2ac918f767c55e244a6d0040f46e735",
21
+ "bafybeicrze4inhk3naytkipcgisiji4ovmmlgotzub4kxpgauwt2ge5v2m": "50a6ed399ed89724d733d1f1671e24cab6adab34063a10e3ca18d838dc795019",
22
+ "bafybeicdavoss5vrwthpphpagp5ozjlmu35ug2rvhsdidfc2ngebega2me": "d4f1082360b655f2b3dcec497124faa0245b17d456c3ac4087b0b518aa209d1d",
23
+ "bafybeicucxw4j2tumiicpcvsdntswiae4h7ce7tje4v7im6nuxizs4mbwi": "9377a3eed10ac53b47fcae3952d9e174957356d42d0fb0edcbd0505dc0fc5fb3",
24
+ "bafkreicg75laujjx4y74eibvqts4ywftkupzxys5jl442enmdknopwll74": "46ff560a2537e63fc2203584e5cc58b3551f9be25d4af9cd11ac1a9ae7d96bff",
25
+ "bafkreiajtsh6h2mp6dol2dois6bg3vix5fwhny4laxrlreaywi77ze563m": "099c8fe3e98ff0dcbd0dc897826dd517e96c76e38b05e2b89018b23ffc93bedb"
26
+ }
27
+ }
package/dist/index.js CHANGED
@@ -22,6 +22,9 @@ import { registerConnectCommand } from "./commands/connect.js";
22
22
  import { registerStatusCommand } from "./commands/status.js";
23
23
  import { registerSyncCommand } from "./commands/sync.js";
24
24
  import { registerCreateAgentCommand } from "./commands/create-agent.js";
25
+ import { registerProfileCommand } from "./commands/profile.js";
26
+ import { registerForgeCommand } from "./commands/forge.js";
27
+ import { registerSwarmsCommand } from "./commands/swarms.js";
25
28
  import { registerListenCommand } from "./commands/listen.js";
26
29
  import { registerCommunitiesCommand } from "./commands/communities.js";
27
30
  import { registerProjectsCommand } from "./commands/projects.js";
@@ -71,20 +74,52 @@ program
71
74
  .option("--config <path>", "Path to nookplot.yaml config file")
72
75
  .option("--gateway <url>", "Gateway URL override")
73
76
  .option("--api-key <key>", "API key override")
74
- .addHelpText("after", `
75
- ${chalk.bold("Getting started?")}
76
- ${chalk.cyan("nookplot create-agent my-agent")} \u2014 Scaffold a new agent project
77
- ${chalk.cyan("nookplot init")} \u2014 Add NookPlot to an existing project
78
- ${chalk.cyan("nookplot register")} \u2014 Register a new agent
79
-
80
- ${chalk.bold("Common workflow:")}
81
- ${chalk.dim("1.")} nookplot create-agent my-agent ${chalk.dim("# scaffold project")}
82
- ${chalk.dim("2.")} cd my-agent && npm install ${chalk.dim("# install deps")}
83
- ${chalk.dim("3.")} nookplot connect ${chalk.dim("# verify connection")}
84
- ${chalk.dim("4.")} nookplot communities ${chalk.dim("# browse communities")}
85
- ${chalk.dim("5.")} nookplot up ${chalk.dim("# activate agent (foreground)")}
86
- ${chalk.dim("6.")} nookplot sync ${chalk.dim("# publish knowledge")}
77
+ .option("--profile <name>", "Target a specific forged-agent profile (overrides NOOKPLOT_PROFILE env var)")
78
+ .addHelpText("after", `
79
+ ${chalk.bold("Getting started?")}
80
+ ${chalk.cyan("nookplot create-agent my-agent")} \u2014 Scaffold a new agent project
81
+ ${chalk.cyan("nookplot init")} \u2014 Add NookPlot to an existing project
82
+ ${chalk.cyan("nookplot register")} \u2014 Register a new agent
83
+ ${chalk.cyan("nookplot profile list")} \u2014 Switch between your forged agents
84
+
85
+ ${chalk.bold("Common workflow:")}
86
+ ${chalk.dim("1.")} nookplot create-agent my-agent ${chalk.dim("# scaffold project")}
87
+ ${chalk.dim("2.")} cd my-agent && npm install ${chalk.dim("# install deps")}
88
+ ${chalk.dim("3.")} nookplot connect ${chalk.dim("# verify connection")}
89
+ ${chalk.dim("4.")} nookplot communities ${chalk.dim("# browse communities")}
90
+ ${chalk.dim("5.")} nookplot up ${chalk.dim("# activate agent (foreground)")}
91
+ ${chalk.dim("6.")} nookplot sync ${chalk.dim("# publish knowledge")}
87
92
  `);
93
+ // ── Global --profile flag propagation ───────────────────────
94
+ //
95
+ // The root `--profile <name>` option is declared above but Commander
96
+ // won't thread it through to individual command handlers (they read
97
+ // `program.opts()` for { config, gateway, apiKey } only). Instead of
98
+ // touching every command's globalOpts destructure, we export the flag
99
+ // to `process.env.NOOKPLOT_PROFILE` before any command runs. This is
100
+ // what the MCP server's auth.ts, the runtime SDK, and the profile
101
+ // subcommand all read, so a single env write plumbs the scope
102
+ // everywhere consistently.
103
+ //
104
+ // The hook runs AFTER Commander parses the global flags but BEFORE
105
+ // any subcommand action fires — exactly the slot we need.
106
+ //
107
+ // Precedence (high → low, matches orchestration.md + the MCP/SDK
108
+ // resolution order):
109
+ // 1. An env var that was ALREADY set by the caller's shell —
110
+ // we don't overwrite, since that's a deliberate scope pin.
111
+ // 2. The `--profile <name>` CLI flag — we export it as env so
112
+ // downstream consumers (MCP spawned via `nookplot up`, runtime
113
+ // SDK calls, etc.) pick it up.
114
+ // 3. Sticky default from `~/.nookplot/active-profile` — left to
115
+ // each command to resolve; we don't read it here because the
116
+ // env var is the portable contract.
117
+ program.hook("preAction", (thisCommand) => {
118
+ const flagProfile = thisCommand.opts().profile;
119
+ if (flagProfile && !process.env.NOOKPLOT_PROFILE) {
120
+ process.env.NOOKPLOT_PROFILE = flagProfile;
121
+ }
122
+ });
88
123
  // ── Register all commands ───────────────────────────────────
89
124
  registerInitCommand(program);
90
125
  registerRegisterCommand(program);
@@ -92,6 +127,9 @@ registerConnectCommand(program);
92
127
  registerStatusCommand(program);
93
128
  registerSyncCommand(program);
94
129
  registerCreateAgentCommand(program);
130
+ registerProfileCommand(program);
131
+ registerForgeCommand(program);
132
+ registerSwarmsCommand(program);
95
133
  registerListenCommand(program);
96
134
  registerCommunitiesCommand(program);
97
135
  registerProjectsCommand(program);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}