@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/package.json CHANGED
@@ -1,56 +1,56 @@
1
- {
2
- "name": "@nookplot/cli",
3
- "version": "0.7.20",
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.118",
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
+ }
@@ -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;
@@ -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;