@nookplot/cli 0.7.20 → 0.7.21
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/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/skill.js +382 -382
- package/dist/evalManifest.json +27 -27
- package/dist/index.js +13 -51
- package/dist/index.js.map +1 -1
- package/dist/postinstall.js +189 -189
- package/dist/skillGenerator.js +17 -17
- package/dist/tool-manifest.json +41 -177
- package/dist/utils/agentLoop.js +0 -45
- package/dist/utils/agentLoop.js.map +1 -1
- package/dist/utils/skills.js +12 -12
- package/package.json +56 -56
- package/dist/commands/forge.d.ts +0 -15
- package/dist/commands/forge.js +0 -187
- package/dist/commands/forge.js.map +0 -1
- package/dist/commands/profile.d.ts +0 -33
- package/dist/commands/profile.js +0 -472
- package/dist/commands/profile.js.map +0 -1
- package/dist/commands/swarms.d.ts +0 -14
- package/dist/commands/swarms.js +0 -203
- package/dist/commands/swarms.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nookplot/cli",
|
|
3
|
-
"version": "0.7.
|
|
4
|
-
"description": "CLI toolkit for NookPlot agent developers — scaffold, register, sync, and monitor agents",
|
|
5
|
-
"author": "nookplot",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"main": "dist/index.js",
|
|
8
|
-
"types": "dist/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
"dist",
|
|
11
|
-
"README.md"
|
|
12
|
-
],
|
|
13
|
-
"publishConfig": {
|
|
14
|
-
"access": "public"
|
|
15
|
-
},
|
|
16
|
-
"bin": {
|
|
17
|
-
"nookplot": "dist/index.js"
|
|
18
|
-
},
|
|
19
|
-
"scripts": {
|
|
20
|
-
"build": "tsc && cp src/tool-manifest.json dist/tool-manifest.json && cp src/evalManifest.json dist/evalManifest.json",
|
|
21
|
-
"clean": "rm -rf dist",
|
|
22
|
-
"dev": "tsx src/index.ts",
|
|
23
|
-
"test": "vitest run",
|
|
24
|
-
"postinstall": "node dist/postinstall.js 2>/dev/null || true"
|
|
25
|
-
},
|
|
26
|
-
"dependencies": {
|
|
27
|
-
"@nookplot/runtime": "^0.5.
|
|
28
|
-
"chalk": "5.6.2",
|
|
29
|
-
"commander": "12.1.0",
|
|
30
|
-
"dotenv": "16.6.1",
|
|
31
|
-
"ethers": "6.16.0",
|
|
32
|
-
"glob": "11.1.0",
|
|
33
|
-
"inquirer": "12.11.1",
|
|
34
|
-
"js-yaml": "4.1.1",
|
|
35
|
-
"ora": "8.2.0"
|
|
36
|
-
},
|
|
37
|
-
"peerDependencies": {
|
|
38
|
-
"@xmtp/agent-sdk": ">=0.1.0"
|
|
39
|
-
},
|
|
40
|
-
"peerDependenciesMeta": {
|
|
41
|
-
"@xmtp/agent-sdk": {
|
|
42
|
-
"optional": true
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
"devDependencies": {
|
|
46
|
-
"@types/inquirer": "^9.0.7",
|
|
47
|
-
"@types/js-yaml": "^4.0.9",
|
|
48
|
-
"@types/node": "20.14.10",
|
|
49
|
-
"typescript": "5.5.4",
|
|
50
|
-
"vitest": "3.0.5"
|
|
51
|
-
},
|
|
52
|
-
"engines": {
|
|
53
|
-
"node": ">=18.0.0"
|
|
54
|
-
},
|
|
55
|
-
"license": "MIT"
|
|
56
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@nookplot/cli",
|
|
3
|
+
"version": "0.7.21",
|
|
4
|
+
"description": "CLI toolkit for NookPlot agent developers — scaffold, register, sync, and monitor agents",
|
|
5
|
+
"author": "nookplot",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"main": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"bin": {
|
|
17
|
+
"nookplot": "dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"scripts": {
|
|
20
|
+
"build": "tsc && cp src/tool-manifest.json dist/tool-manifest.json && cp src/evalManifest.json dist/evalManifest.json",
|
|
21
|
+
"clean": "rm -rf dist",
|
|
22
|
+
"dev": "tsx src/index.ts",
|
|
23
|
+
"test": "vitest run",
|
|
24
|
+
"postinstall": "node dist/postinstall.js 2>/dev/null || true"
|
|
25
|
+
},
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@nookplot/runtime": "^0.5.127",
|
|
28
|
+
"chalk": "5.6.2",
|
|
29
|
+
"commander": "12.1.0",
|
|
30
|
+
"dotenv": "16.6.1",
|
|
31
|
+
"ethers": "6.16.0",
|
|
32
|
+
"glob": "11.1.0",
|
|
33
|
+
"inquirer": "12.11.1",
|
|
34
|
+
"js-yaml": "4.1.1",
|
|
35
|
+
"ora": "8.2.0"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@xmtp/agent-sdk": ">=0.1.0"
|
|
39
|
+
},
|
|
40
|
+
"peerDependenciesMeta": {
|
|
41
|
+
"@xmtp/agent-sdk": {
|
|
42
|
+
"optional": true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"devDependencies": {
|
|
46
|
+
"@types/inquirer": "^9.0.7",
|
|
47
|
+
"@types/js-yaml": "^4.0.9",
|
|
48
|
+
"@types/node": "20.14.10",
|
|
49
|
+
"typescript": "5.5.4",
|
|
50
|
+
"vitest": "3.0.5"
|
|
51
|
+
},
|
|
52
|
+
"engines": {
|
|
53
|
+
"node": ">=18.0.0"
|
|
54
|
+
},
|
|
55
|
+
"license": "MIT"
|
|
56
|
+
}
|
package/dist/commands/forge.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nookplot forge` — Deploy an agent on-chain via the browser-equivalent forge flow.
|
|
3
|
-
*
|
|
4
|
-
* Steps:
|
|
5
|
-
* 1. Build a soul document interactively (or from --soul file)
|
|
6
|
-
* 2. Upload soul to IPFS via gateway
|
|
7
|
-
* 3. Prepare → sign → relay the AgentFactory.deployAgent() call
|
|
8
|
-
* 4. Display results (tx hash, deployment ID, soul CID)
|
|
9
|
-
*
|
|
10
|
-
* Requires: NOOKPLOT_GATEWAY_URL, NOOKPLOT_API_KEY, NOOKPLOT_PRIVATE_KEY in env.
|
|
11
|
-
*
|
|
12
|
-
* @module commands/forge
|
|
13
|
-
*/
|
|
14
|
-
import { Command } from "commander";
|
|
15
|
-
export declare function registerForgeCommand(program: Command): void;
|
package/dist/commands/forge.js
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nookplot forge` — Deploy an agent on-chain via the browser-equivalent forge flow.
|
|
3
|
-
*
|
|
4
|
-
* Steps:
|
|
5
|
-
* 1. Build a soul document interactively (or from --soul file)
|
|
6
|
-
* 2. Upload soul to IPFS via gateway
|
|
7
|
-
* 3. Prepare → sign → relay the AgentFactory.deployAgent() call
|
|
8
|
-
* 4. Display results (tx hash, deployment ID, soul CID)
|
|
9
|
-
*
|
|
10
|
-
* Requires: NOOKPLOT_GATEWAY_URL, NOOKPLOT_API_KEY, NOOKPLOT_PRIVATE_KEY in env.
|
|
11
|
-
*
|
|
12
|
-
* @module commands/forge
|
|
13
|
-
*/
|
|
14
|
-
import chalk from "chalk";
|
|
15
|
-
import ora from "ora";
|
|
16
|
-
import { ethers } from "ethers";
|
|
17
|
-
import * as fs from "node:fs";
|
|
18
|
-
import * as path from "node:path";
|
|
19
|
-
import { gatewayRequest, isGatewayError } from "../utils/http.js";
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
// Helpers
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
function loadEnv() {
|
|
24
|
-
const gatewayUrl = process.env.NOOKPLOT_GATEWAY_URL ?? "https://gateway.nookplot.com";
|
|
25
|
-
const apiKey = process.env.NOOKPLOT_API_KEY ?? "";
|
|
26
|
-
const privateKey = process.env.NOOKPLOT_PRIVATE_KEY ?? "";
|
|
27
|
-
if (!apiKey) {
|
|
28
|
-
console.error(chalk.red("Missing NOOKPLOT_API_KEY. Run `nookplot register` first."));
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
|
-
if (!privateKey) {
|
|
32
|
-
console.error(chalk.red("Missing NOOKPLOT_PRIVATE_KEY. Run `nookplot register` first."));
|
|
33
|
-
process.exit(1);
|
|
34
|
-
}
|
|
35
|
-
return { gatewayUrl, apiKey, privateKey };
|
|
36
|
-
}
|
|
37
|
-
function buildDefaultSoul(name, mission) {
|
|
38
|
-
return {
|
|
39
|
-
version: "1.0",
|
|
40
|
-
identity: { name },
|
|
41
|
-
personality: {
|
|
42
|
-
traits: ["curious", "helpful"],
|
|
43
|
-
communication: { style: "balanced", tone: "friendly", verbosity: "moderate" },
|
|
44
|
-
},
|
|
45
|
-
purpose: { mission, domains: [], goals: [] },
|
|
46
|
-
avatar: { palette: "ocean", shape: "circle", complexity: 3 },
|
|
47
|
-
metadata: { clientVersion: "cli-forge-1.0", createdAt: Math.floor(Date.now() / 1000) },
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
// ---------------------------------------------------------------------------
|
|
51
|
-
// Command
|
|
52
|
-
// ---------------------------------------------------------------------------
|
|
53
|
-
export function registerForgeCommand(program) {
|
|
54
|
-
program
|
|
55
|
-
.command("forge")
|
|
56
|
-
.description("Deploy an agent on-chain (upload soul → prepare → sign → relay)")
|
|
57
|
-
.argument("<name>", "Agent name")
|
|
58
|
-
.requiredOption("--bundle-id <id>", "Knowledge bundle ID (numeric)")
|
|
59
|
-
.option("--mission <text>", "Agent mission statement")
|
|
60
|
-
.option("--soul <path>", "Path to soul.json file (skip interactive prompts)")
|
|
61
|
-
.option("--traits <items>", "Comma-separated personality traits")
|
|
62
|
-
.option("--domains <items>", "Comma-separated expertise domains")
|
|
63
|
-
.option("--dry-run", "Prepare only — show what would be deployed without submitting")
|
|
64
|
-
.action(async (name, opts) => {
|
|
65
|
-
const { gatewayUrl, apiKey, privateKey } = loadEnv();
|
|
66
|
-
const wallet = new ethers.Wallet(privateKey);
|
|
67
|
-
const bundleId = parseInt(opts.bundleId, 10);
|
|
68
|
-
if (isNaN(bundleId)) {
|
|
69
|
-
console.error(chalk.red("--bundle-id must be a number."));
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
console.log(chalk.bold(`\n Forging agent: ${chalk.cyan(name)}`));
|
|
73
|
-
console.log(chalk.dim(` Wallet: ${wallet.address}`));
|
|
74
|
-
console.log(chalk.dim(` Bundle: #${bundleId}\n`));
|
|
75
|
-
// ── 1. Build or load soul ──
|
|
76
|
-
let soul;
|
|
77
|
-
if (opts.soul) {
|
|
78
|
-
const soulPath = path.resolve(opts.soul);
|
|
79
|
-
if (!fs.existsSync(soulPath)) {
|
|
80
|
-
console.error(chalk.red(`Soul file not found: ${soulPath}`));
|
|
81
|
-
process.exit(1);
|
|
82
|
-
}
|
|
83
|
-
soul = JSON.parse(fs.readFileSync(soulPath, "utf-8"));
|
|
84
|
-
console.log(chalk.dim(` Loaded soul from ${soulPath}`));
|
|
85
|
-
}
|
|
86
|
-
else {
|
|
87
|
-
const mission = opts.mission ?? `Explore and contribute knowledge in the ${name} domain.`;
|
|
88
|
-
soul = buildDefaultSoul(name, mission);
|
|
89
|
-
if (opts.traits) {
|
|
90
|
-
soul.personality.traits = opts.traits.split(",").map((t) => t.trim());
|
|
91
|
-
}
|
|
92
|
-
if (opts.domains) {
|
|
93
|
-
soul.purpose.domains = opts.domains.split(",").map((d) => d.trim());
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// ── 2. Upload soul to IPFS ──
|
|
97
|
-
const uploadSpinner = ora("Uploading soul to IPFS...").start();
|
|
98
|
-
const uploadResult = await gatewayRequest(gatewayUrl, "POST", "/v1/ipfs/upload", {
|
|
99
|
-
apiKey,
|
|
100
|
-
body: { content: JSON.stringify(soul), filename: "soul.json" },
|
|
101
|
-
});
|
|
102
|
-
if (isGatewayError(uploadResult)) {
|
|
103
|
-
uploadSpinner.fail("Failed to upload soul");
|
|
104
|
-
console.error(chalk.red(` ${uploadResult.error}`));
|
|
105
|
-
process.exit(1);
|
|
106
|
-
}
|
|
107
|
-
const soulCid = uploadResult.data.cid;
|
|
108
|
-
uploadSpinner.succeed(`Soul uploaded: ${chalk.dim(soulCid)}`);
|
|
109
|
-
// ── 3. Prepare deployment ──
|
|
110
|
-
const prepSpinner = ora("Preparing deployment transaction...").start();
|
|
111
|
-
const prepResult = await gatewayRequest(gatewayUrl, "POST", "/v1/prepare/forge", {
|
|
112
|
-
apiKey,
|
|
113
|
-
body: {
|
|
114
|
-
bundleId,
|
|
115
|
-
agentAddress: wallet.address,
|
|
116
|
-
soulCid,
|
|
117
|
-
deploymentFee: "0",
|
|
118
|
-
},
|
|
119
|
-
});
|
|
120
|
-
if (isGatewayError(prepResult)) {
|
|
121
|
-
prepSpinner.fail("Failed to prepare deployment");
|
|
122
|
-
console.error(chalk.red(` ${prepResult.error}`));
|
|
123
|
-
process.exit(1);
|
|
124
|
-
}
|
|
125
|
-
const { forwardRequest, domain, types } = prepResult.data;
|
|
126
|
-
prepSpinner.succeed("Deployment prepared");
|
|
127
|
-
if (opts.dryRun) {
|
|
128
|
-
console.log(chalk.yellow("\n --dry-run: Skipping sign + relay.\n"));
|
|
129
|
-
console.log(chalk.dim(" Forward request:"));
|
|
130
|
-
console.log(chalk.dim(` to: ${forwardRequest.to}`));
|
|
131
|
-
console.log(chalk.dim(` from: ${forwardRequest.from}`));
|
|
132
|
-
console.log(chalk.dim(` gas: ${forwardRequest.gas}`));
|
|
133
|
-
console.log(chalk.dim(` data: ${forwardRequest.data.slice(0, 20)}...`));
|
|
134
|
-
console.log();
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
// ── 4. Sign ──
|
|
138
|
-
const signSpinner = ora("Signing transaction...").start();
|
|
139
|
-
let signature;
|
|
140
|
-
try {
|
|
141
|
-
signature = await wallet.signTypedData(domain, types, forwardRequest);
|
|
142
|
-
signSpinner.succeed("Transaction signed");
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
signSpinner.fail("Failed to sign");
|
|
146
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
147
|
-
console.error(chalk.red(` ${msg}`));
|
|
148
|
-
process.exit(1);
|
|
149
|
-
}
|
|
150
|
-
// ── 5. Relay ──
|
|
151
|
-
const relaySpinner = ora("Submitting to chain...").start();
|
|
152
|
-
const relayResult = await gatewayRequest(gatewayUrl, "POST", "/v1/relay", {
|
|
153
|
-
apiKey,
|
|
154
|
-
body: { ...forwardRequest, signature },
|
|
155
|
-
});
|
|
156
|
-
if (isGatewayError(relayResult)) {
|
|
157
|
-
relaySpinner.fail("Relay failed");
|
|
158
|
-
console.error(chalk.red(` ${relayResult.error}`));
|
|
159
|
-
process.exit(1);
|
|
160
|
-
}
|
|
161
|
-
relaySpinner.succeed(`Deployed on-chain`);
|
|
162
|
-
// ── 6. Results ──
|
|
163
|
-
console.log(chalk.green(`\n Agent "${name}" forged successfully.\n`));
|
|
164
|
-
console.log(` ${chalk.dim("Transaction:")} ${relayResult.data.txHash}`);
|
|
165
|
-
console.log(` ${chalk.dim("Soul CID:")} ${soulCid}`);
|
|
166
|
-
console.log(` ${chalk.dim("Address:")} ${wallet.address}`);
|
|
167
|
-
console.log(` ${chalk.dim("Bundle:")} #${bundleId}`);
|
|
168
|
-
console.log();
|
|
169
|
-
console.log(chalk.dim(" Next steps:"));
|
|
170
|
-
console.log(chalk.dim(" nookplot online start — bring your agent online"));
|
|
171
|
-
console.log(chalk.dim(" nookplot status — check registration status"));
|
|
172
|
-
console.log();
|
|
173
|
-
// Save deployment info
|
|
174
|
-
const deploymentInfo = {
|
|
175
|
-
name,
|
|
176
|
-
txHash: relayResult.data.txHash,
|
|
177
|
-
soulCid,
|
|
178
|
-
agentAddress: wallet.address,
|
|
179
|
-
bundleId,
|
|
180
|
-
createdAt: new Date().toISOString(),
|
|
181
|
-
};
|
|
182
|
-
const outPath = path.resolve("deployment.json");
|
|
183
|
-
fs.writeFileSync(outPath, JSON.stringify(deploymentInfo, null, 2));
|
|
184
|
-
console.log(chalk.dim(` Saved deployment info to ${outPath}`));
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
//# sourceMappingURL=forge.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/commands/forge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nookplot profile` — per-forged-agent profile management.
|
|
3
|
-
*
|
|
4
|
-
* Each forged agent gets its own profile at
|
|
5
|
-
* `~/.nookplot/profiles/<name>/profile.json`. The shared API key lives
|
|
6
|
-
* at `~/.nookplot/credentials.json` (stable, unchanged by profiles).
|
|
7
|
-
* Switching profiles is just setting `NOOKPLOT_PROFILE` env — or using
|
|
8
|
-
* `nookplot profile use <name>` to set a sticky default.
|
|
9
|
-
*
|
|
10
|
-
* Subcommands (mirror Hermes's `hermes profile` UX):
|
|
11
|
-
* nookplot profile list — show all profiles with scope + default
|
|
12
|
-
* nookplot profile current — which profile is active right now?
|
|
13
|
-
* nookplot profile use <name> — set sticky default (writes ~/.nookplot/active-profile)
|
|
14
|
-
* nookplot profile use --clear — back to unscoped (creator-direct) mode
|
|
15
|
-
* nookplot profile create <name> <addr> — register a new profile manually
|
|
16
|
-
* nookplot profile delete <name> — remove a profile (creds untouched)
|
|
17
|
-
* nookplot profile show <name> — inspect one profile's details
|
|
18
|
-
*
|
|
19
|
-
* @module commands/profile
|
|
20
|
-
*/
|
|
21
|
-
import type { Command } from "commander";
|
|
22
|
-
export declare function registerProfileCommand(program: Command): void;
|
|
23
|
-
/**
|
|
24
|
-
* Helper exposed to other commands — returns the active profile's scope
|
|
25
|
-
* (or null if no profile is active). Used by commands that want to honor
|
|
26
|
-
* `--profile <name>` / NOOKPLOT_PROFILE / sticky default.
|
|
27
|
-
*/
|
|
28
|
-
export declare function getActiveProfileScope(opts?: {
|
|
29
|
-
explicitProfile?: string;
|
|
30
|
-
}): {
|
|
31
|
-
profileName: string;
|
|
32
|
-
scopedAgentAddress: string;
|
|
33
|
-
} | null;
|