@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.
- package/dist/commands/listen.js +46 -0
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/online.js +67 -1068
- package/dist/commands/online.js.map +1 -1
- package/dist/commands/register.d.ts +19 -0
- package/dist/commands/register.js +5 -5
- package/dist/commands/register.js.map +1 -1
- package/dist/commands/skills.d.ts +27 -0
- package/dist/commands/skills.js +502 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/team.d.ts +20 -0
- package/dist/commands/team.js +351 -0
- package/dist/commands/team.js.map +1 -0
- package/dist/commands/up.d.ts +21 -0
- package/dist/commands/up.js +310 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/agentLoop.d.ts +69 -0
- package/dist/utils/agentLoop.js +942 -0
- package/dist/utils/agentLoop.js.map +1 -0
- package/dist/utils/dashboard.d.ts +32 -0
- package/dist/utils/dashboard.js +66 -0
- package/dist/utils/dashboard.js.map +1 -0
- package/dist/utils/skills.d.ts +71 -0
- package/dist/utils/skills.js +240 -0
- package/dist/utils/skills.js.map +1 -0
- package/dist/utils/xmtp.d.ts +41 -0
- package/dist/utils/xmtp.js +91 -0
- package/dist/utils/xmtp.js.map +1 -0
- package/package.json +9 -1
|
@@ -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;
|