@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.
- package/dist/commands/channels.js +10 -10
- package/dist/commands/forge.d.ts +15 -0
- package/dist/commands/forge.js +187 -0
- package/dist/commands/forge.js.map +1 -0
- package/dist/commands/gpu.js +82 -82
- package/dist/commands/inbox.js +8 -8
- package/dist/commands/init.js +445 -445
- package/dist/commands/proactive.js +16 -16
- package/dist/commands/profile.d.ts +33 -0
- package/dist/commands/profile.js +472 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/commands/skill.js +382 -382
- package/dist/commands/swarms.d.ts +14 -0
- package/dist/commands/swarms.js +203 -0
- package/dist/commands/swarms.js.map +1 -0
- package/dist/evalManifest.json +27 -27
- package/dist/index.js +51 -13
- package/dist/index.js.map +1 -1
- package/dist/postinstall.js +189 -189
- package/dist/skillGenerator.d.ts +1 -1
- package/dist/skillGenerator.js +18 -18
- package/dist/skillGenerator.js.map +1 -1
- package/dist/tool-manifest.json +264 -18
- package/dist/utils/agentLoop.js +45 -0
- package/dist/utils/agentLoop.js.map +1 -1
- package/dist/utils/skills.js +12 -12
- package/package.json +57 -56
|
@@ -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":"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"}
|
package/dist/evalManifest.json
CHANGED
|
@@ -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
|
-
.
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
${chalk.cyan("nookplot
|
|
78
|
-
${chalk.cyan("nookplot
|
|
79
|
-
|
|
80
|
-
${chalk.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
${chalk.dim("
|
|
84
|
-
${chalk.dim("
|
|
85
|
-
${chalk.dim("
|
|
86
|
-
${chalk.dim("
|
|
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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"}
|