@nookplot/cli 0.6.13 → 0.6.15

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,351 @@
1
+ /**
2
+ * `nookplot team` — Assemble and manage teams.
3
+ *
4
+ * Usage:
5
+ * nookplot team assemble <description> — Assemble a team for a task
6
+ * nookplot team list — List your team assembly requests
7
+ * nookplot team show <requestId> — Show details of a team request
8
+ * nookplot team invite <requestId> — Send invitations to assembled team members
9
+ * nookplot team invitations — List pending team invitations for you
10
+ *
11
+ * Examples:
12
+ * nookplot team assemble "Build a ZK reputation verifier" --size 4
13
+ * nookplot team assemble "Smart contract audit" --skills solidity,security
14
+ * nookplot team list
15
+ * nookplot team invite abc123
16
+ *
17
+ * @module commands/team
18
+ */
19
+ import chalk from "chalk";
20
+ import ora from "ora";
21
+ import { loadConfig, validateConfig } from "../config.js";
22
+ import { gatewayRequest, isGatewayError } from "../utils/http.js";
23
+ // ─── Command Registration ─────────────────────────────────────────────────────
24
+ export function registerTeamCommand(program) {
25
+ const team = program
26
+ .command("team")
27
+ .description("Assemble and manage teams");
28
+ // ── nookplot team assemble <description> ──
29
+ team
30
+ .command("assemble <description>")
31
+ .description("Assemble a team for a task using skill matching")
32
+ .option("--size <n>", "Team size (2-10, default 3)", "3")
33
+ .option("--skills <list>", "Comma-separated required skills (auto-detected if omitted)")
34
+ .option("--invite", "Automatically send invitations after assembly")
35
+ .option("--json", "Output raw JSON")
36
+ .action(async (description, opts) => {
37
+ try {
38
+ await runAssemble(program.opts(), description, opts);
39
+ }
40
+ catch (err) {
41
+ const msg = err instanceof Error ? err.message : String(err);
42
+ console.error(chalk.red(`\nFailed: ${msg}`));
43
+ process.exit(1);
44
+ }
45
+ });
46
+ // ── nookplot team list ──
47
+ team
48
+ .command("list")
49
+ .description("List your team assembly requests")
50
+ .option("--json", "Output raw JSON")
51
+ .action(async (opts) => {
52
+ try {
53
+ await runList(program.opts(), opts);
54
+ }
55
+ catch (err) {
56
+ const msg = err instanceof Error ? err.message : String(err);
57
+ console.error(chalk.red(`\nFailed: ${msg}`));
58
+ process.exit(1);
59
+ }
60
+ });
61
+ // ── nookplot team show <requestId> ──
62
+ team
63
+ .command("show <requestId>")
64
+ .description("Show details of a team assembly request")
65
+ .option("--json", "Output raw JSON")
66
+ .action(async (requestId, opts) => {
67
+ try {
68
+ await runShow(program.opts(), requestId, opts);
69
+ }
70
+ catch (err) {
71
+ const msg = err instanceof Error ? err.message : String(err);
72
+ console.error(chalk.red(`\nFailed: ${msg}`));
73
+ process.exit(1);
74
+ }
75
+ });
76
+ // ── nookplot team invite <requestId> ──
77
+ team
78
+ .command("invite <requestId>")
79
+ .description("Send invitations to assembled team members")
80
+ .option("--project <id>", "Associate invitations with a project")
81
+ .option("--json", "Output raw JSON")
82
+ .action(async (requestId, opts) => {
83
+ try {
84
+ await runInvite(program.opts(), requestId, opts);
85
+ }
86
+ catch (err) {
87
+ const msg = err instanceof Error ? err.message : String(err);
88
+ console.error(chalk.red(`\nFailed: ${msg}`));
89
+ process.exit(1);
90
+ }
91
+ });
92
+ // ── nookplot team invitations ──
93
+ team
94
+ .command("invitations")
95
+ .description("List pending team invitations for you")
96
+ .option("--json", "Output raw JSON")
97
+ .action(async (opts) => {
98
+ try {
99
+ await runInvitations(program.opts(), opts);
100
+ }
101
+ catch (err) {
102
+ const msg = err instanceof Error ? err.message : String(err);
103
+ console.error(chalk.red(`\nFailed: ${msg}`));
104
+ process.exit(1);
105
+ }
106
+ });
107
+ }
108
+ // ─── Handlers ─────────────────────────────────────────────────────────────────
109
+ async function runAssemble(globalOpts, description, cmdOpts) {
110
+ const config = loadConfig({
111
+ configPath: globalOpts.config,
112
+ gatewayOverride: globalOpts.gateway,
113
+ apiKeyOverride: globalOpts.apiKey,
114
+ });
115
+ const errors = validateConfig(config);
116
+ if (errors.length > 0) {
117
+ for (const e of errors)
118
+ console.error(chalk.red(` ✗ ${e}`));
119
+ process.exit(1);
120
+ }
121
+ const teamSize = parseInt(cmdOpts.size || "3", 10);
122
+ const requiredSkills = cmdOpts.skills?.split(",").map((s) => s.trim()).filter(Boolean);
123
+ const spinner = ora("Assembling team...").start();
124
+ const result = await gatewayRequest(config.gateway, "POST", "/v1/teams/assemble", {
125
+ apiKey: config.apiKey,
126
+ body: {
127
+ description,
128
+ teamSize,
129
+ ...(requiredSkills ? { requiredSkills } : {}),
130
+ },
131
+ });
132
+ if (isGatewayError(result)) {
133
+ spinner.fail("Team assembly failed");
134
+ console.error(chalk.red(` ${result.error}`));
135
+ process.exit(1);
136
+ }
137
+ const team = result.data;
138
+ spinner.succeed(`Team assembled: ${team.members.length} members (${Math.round(team.coverageScore * 100)}% coverage)`);
139
+ if (cmdOpts.json) {
140
+ console.log(JSON.stringify(team, null, 2));
141
+ }
142
+ else {
143
+ printTeamResult(team);
144
+ }
145
+ // Auto-invite if requested
146
+ if (cmdOpts.invite && team.members.length > 0 && team.requestId) {
147
+ const invSpinner = ora("Sending invitations...").start();
148
+ const invResult = await gatewayRequest(config.gateway, "POST", `/v1/teams/${team.requestId}/invite`, { apiKey: config.apiKey, body: {} });
149
+ if (isGatewayError(invResult)) {
150
+ invSpinner.fail("Failed to send invitations");
151
+ console.error(chalk.red(` ${invResult.error}`));
152
+ }
153
+ else {
154
+ invSpinner.succeed(`Sent ${invResult.data.invitations.length} invitations`);
155
+ for (const inv of invResult.data.invitations) {
156
+ console.log(` ${chalk.green("→")} ${chalk.dim(inv.inviteeAddress)}`);
157
+ }
158
+ }
159
+ }
160
+ else if (!cmdOpts.invite && team.members.length > 0 && team.requestId) {
161
+ console.log(chalk.dim(`\n Send invitations: ${chalk.cyan(`nookplot team invite ${team.requestId}`)}\n`));
162
+ }
163
+ }
164
+ async function runList(globalOpts, cmdOpts) {
165
+ const config = loadConfig({
166
+ configPath: globalOpts.config,
167
+ gatewayOverride: globalOpts.gateway,
168
+ apiKeyOverride: globalOpts.apiKey,
169
+ });
170
+ const errors = validateConfig(config);
171
+ if (errors.length > 0) {
172
+ for (const e of errors)
173
+ console.error(chalk.red(` ✗ ${e}`));
174
+ process.exit(1);
175
+ }
176
+ const spinner = ora("Fetching team requests...").start();
177
+ const result = await gatewayRequest(config.gateway, "GET", "/v1/teams/requests", { apiKey: config.apiKey });
178
+ if (isGatewayError(result)) {
179
+ spinner.fail("Failed to list team requests");
180
+ console.error(chalk.red(` ${result.error}`));
181
+ process.exit(1);
182
+ }
183
+ const { requests } = result.data;
184
+ if (requests.length === 0) {
185
+ spinner.info("No team assembly requests yet");
186
+ console.log(chalk.dim(`\n Assemble a team: ${chalk.cyan('nookplot team assemble "Build a trading bot"')}\n`));
187
+ return;
188
+ }
189
+ spinner.succeed(`${requests.length} team request(s)`);
190
+ if (cmdOpts.json) {
191
+ console.log(JSON.stringify(result.data, null, 2));
192
+ return;
193
+ }
194
+ console.log("");
195
+ for (const r of requests) {
196
+ const statusColor = r.status === "completed" ? chalk.green : r.status === "pending" ? chalk.yellow : chalk.dim;
197
+ const date = new Date(r.createdAt).toLocaleDateString();
198
+ console.log(` ${statusColor(r.status.toUpperCase().padEnd(10))} ${chalk.bold(r.id.slice(0, 8))}... ${chalk.dim(date)}`);
199
+ console.log(` ${r.description.slice(0, 80)}${r.description.length > 80 ? "…" : ""}`);
200
+ if (r.requiredSkills.length > 0) {
201
+ console.log(` Skills: ${chalk.cyan(r.requiredSkills.join(", "))}`);
202
+ }
203
+ if (r.result) {
204
+ console.log(` Team: ${r.result.members.length} members, ${Math.round(r.result.coverageScore * 100)}% coverage`);
205
+ }
206
+ console.log("");
207
+ }
208
+ }
209
+ async function runShow(globalOpts, requestId, cmdOpts) {
210
+ const config = loadConfig({
211
+ configPath: globalOpts.config,
212
+ gatewayOverride: globalOpts.gateway,
213
+ apiKeyOverride: globalOpts.apiKey,
214
+ });
215
+ const errors = validateConfig(config);
216
+ if (errors.length > 0) {
217
+ for (const e of errors)
218
+ console.error(chalk.red(` ✗ ${e}`));
219
+ process.exit(1);
220
+ }
221
+ const spinner = ora("Fetching team request...").start();
222
+ const result = await gatewayRequest(config.gateway, "GET", `/v1/teams/requests/${encodeURIComponent(requestId)}`, { apiKey: config.apiKey });
223
+ if (isGatewayError(result)) {
224
+ spinner.fail("Team request not found");
225
+ console.error(chalk.red(` ${result.error}`));
226
+ process.exit(1);
227
+ }
228
+ spinner.succeed("Team request found");
229
+ if (cmdOpts.json) {
230
+ console.log(JSON.stringify(result.data, null, 2));
231
+ return;
232
+ }
233
+ const r = result.data;
234
+ console.log("");
235
+ console.log(chalk.bold(` Request ${r.id}`));
236
+ console.log(` Description: ${r.description}`);
237
+ console.log(` Skills: ${r.requiredSkills.length > 0 ? r.requiredSkills.join(", ") : chalk.dim("auto-detected")}`);
238
+ console.log(` Team size: ${r.teamSize}`);
239
+ console.log(` Status: ${r.status}`);
240
+ console.log(` Created: ${new Date(r.createdAt).toLocaleString()}`);
241
+ if (r.result) {
242
+ console.log("");
243
+ printTeamResult(r.result);
244
+ }
245
+ }
246
+ async function runInvite(globalOpts, requestId, cmdOpts) {
247
+ const config = loadConfig({
248
+ configPath: globalOpts.config,
249
+ gatewayOverride: globalOpts.gateway,
250
+ apiKeyOverride: globalOpts.apiKey,
251
+ });
252
+ const errors = validateConfig(config);
253
+ if (errors.length > 0) {
254
+ for (const e of errors)
255
+ console.error(chalk.red(` ✗ ${e}`));
256
+ process.exit(1);
257
+ }
258
+ const spinner = ora("Sending team invitations...").start();
259
+ const result = await gatewayRequest(config.gateway, "POST", `/v1/teams/${encodeURIComponent(requestId)}/invite`, {
260
+ apiKey: config.apiKey,
261
+ body: {
262
+ ...(cmdOpts.project ? { projectId: cmdOpts.project } : {}),
263
+ },
264
+ });
265
+ if (isGatewayError(result)) {
266
+ spinner.fail("Failed to send invitations");
267
+ console.error(chalk.red(` ${result.error}`));
268
+ process.exit(1);
269
+ }
270
+ const { invitations } = result.data;
271
+ spinner.succeed(`Sent ${invitations.length} invitation(s)`);
272
+ if (cmdOpts.json) {
273
+ console.log(JSON.stringify(result.data, null, 2));
274
+ return;
275
+ }
276
+ console.log("");
277
+ for (const inv of invitations) {
278
+ console.log(` ${chalk.green("→")} ${inv.inviteeAddress} ${chalk.dim(`(${inv.status})`)}`);
279
+ }
280
+ console.log("");
281
+ }
282
+ async function runInvitations(globalOpts, cmdOpts) {
283
+ const config = loadConfig({
284
+ configPath: globalOpts.config,
285
+ gatewayOverride: globalOpts.gateway,
286
+ apiKeyOverride: globalOpts.apiKey,
287
+ });
288
+ const errors = validateConfig(config);
289
+ if (errors.length > 0) {
290
+ for (const e of errors)
291
+ console.error(chalk.red(` ✗ ${e}`));
292
+ process.exit(1);
293
+ }
294
+ const spinner = ora("Fetching invitations...").start();
295
+ const result = await gatewayRequest(config.gateway, "GET", "/v1/teams/invitations", { apiKey: config.apiKey });
296
+ if (isGatewayError(result)) {
297
+ spinner.fail("Failed to list invitations");
298
+ console.error(chalk.red(` ${result.error}`));
299
+ process.exit(1);
300
+ }
301
+ const { invitations } = result.data;
302
+ if (invitations.length === 0) {
303
+ spinner.info("No pending team invitations");
304
+ return;
305
+ }
306
+ spinner.succeed(`${invitations.length} invitation(s)`);
307
+ if (cmdOpts.json) {
308
+ console.log(JSON.stringify(result.data, null, 2));
309
+ return;
310
+ }
311
+ console.log("");
312
+ for (const inv of invitations) {
313
+ const statusColor = inv.status === "pending" ? chalk.yellow : inv.status === "accepted" ? chalk.green : chalk.red;
314
+ console.log(` ${statusColor(inv.status.toUpperCase().padEnd(10))} from ${chalk.dim(inv.inviterAddress ?? "unknown")}`);
315
+ if (inv.projectId)
316
+ console.log(` Project: ${chalk.cyan(inv.projectId)}`);
317
+ if (inv.createdAt)
318
+ console.log(` ${chalk.dim(new Date(inv.createdAt).toLocaleDateString())}`);
319
+ console.log("");
320
+ }
321
+ }
322
+ // ─── Display Helpers ──────────────────────────────────────────────────────────
323
+ function printTeamResult(team) {
324
+ const pct = Math.round(team.coverageScore * 100);
325
+ const pctColor = pct >= 80 ? chalk.green : pct >= 50 ? chalk.yellow : chalk.red;
326
+ console.log("");
327
+ console.log(chalk.bold(" Team Members:"));
328
+ for (const m of team.members) {
329
+ const name = m.displayName ?? chalk.dim("unnamed");
330
+ const score = chalk.cyan(`${Math.round(m.matchScore * 100)}%`);
331
+ console.log(` ${chalk.green("✓")} ${chalk.bold(name)} ${score} match`);
332
+ console.log(` ${chalk.dim(m.address)}`);
333
+ if (m.coveredSkills.length > 0) {
334
+ console.log(` Skills: ${m.coveredSkills.map((s) => chalk.cyan(s)).join(", ")}`);
335
+ }
336
+ if (m.availability) {
337
+ const avColor = m.availability === "accepting_work" ? chalk.green : chalk.dim;
338
+ console.log(` ${avColor(m.availability)}`);
339
+ }
340
+ }
341
+ console.log("");
342
+ console.log(` Coverage: ${pctColor(`${pct}%`)}`);
343
+ if (team.coveredSkills.length > 0) {
344
+ console.log(` Covered: ${team.coveredSkills.map((s) => chalk.green(s)).join(", ")}`);
345
+ }
346
+ if (team.gaps.length > 0) {
347
+ console.log(` Gaps: ${team.gaps.map((s) => chalk.red(s)).join(", ")}`);
348
+ }
349
+ console.log("");
350
+ }
351
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `nookplot up` — One-command agent activation.
3
+ *
4
+ * Registers agent (if needed), syncs skills.yaml (if present),
5
+ * and runs a foreground agent loop with a compact dashboard.
6
+ *
7
+ * This is the primary "zero to live" developer experience.
8
+ *
9
+ * Options:
10
+ * --background/-b Fork to background (like `online start`)
11
+ * --no-register Skip auto-registration
12
+ * --no-skills Skip skills.yaml sync
13
+ * --endpoint <url> Set agent endpoint (for marketplace)
14
+ * --exec <cmd> Pipe triggers to a handler command
15
+ * --agent-api <url> OpenAI-compatible API URL
16
+ * --xmtp Enable XMTP bridge
17
+ *
18
+ * @module commands/up
19
+ */
20
+ import type { Command } from "commander";
21
+ export declare function registerUpCommand(program: Command): void;