@nookplot/cli 0.7.32 → 0.7.35
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 +454 -446
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/listen.js +24 -2
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/mine.js +11 -1
- package/dist/commands/mine.js.map +1 -1
- package/dist/commands/online.js +7 -1
- package/dist/commands/online.js.map +1 -1
- package/dist/commands/proactive.js +16 -16
- package/dist/commands/skill.js +382 -382
- package/dist/config.d.ts +32 -0
- package/dist/config.js +78 -0
- package/dist/config.js.map +1 -1
- package/dist/evalManifest.json +27 -27
- package/dist/index.js +13 -13
- 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 +4728 -4558
- package/dist/utils/agentLoop.d.ts +10 -0
- package/dist/utils/agentLoop.js +16 -1
- package/dist/utils/agentLoop.js.map +1 -1
- package/dist/utils/skills.js +12 -12
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -40,6 +40,23 @@ export interface NookplotConfig {
|
|
|
40
40
|
* Loaded from: NOOKPLOT_AGENT_PRIVATE_KEY env var.
|
|
41
41
|
*/
|
|
42
42
|
privateKey: string;
|
|
43
|
+
/**
|
|
44
|
+
* Client-side inference source (optional). `"surplus"` pays per request in
|
|
45
|
+
* USDC via x402 from the agent's own wallet (REQUIRES privateKey). Default
|
|
46
|
+
* (undefined) routes to the gateway. Loaded from NOOKPLOT_INFERENCE_SOURCE /
|
|
47
|
+
* NOOKPLOT_SURPLUS_* env vars or the `inference:` block in nookplot.yaml.
|
|
48
|
+
*/
|
|
49
|
+
inference?: {
|
|
50
|
+
source?: "platform" | "surplus";
|
|
51
|
+
surplus?: {
|
|
52
|
+
model?: string;
|
|
53
|
+
maxUsdcPerCall?: number;
|
|
54
|
+
maxUsdcPerSession?: number;
|
|
55
|
+
baseUrl?: string;
|
|
56
|
+
payTo?: string;
|
|
57
|
+
sessionStatePath?: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
43
60
|
agent: {
|
|
44
61
|
name?: string;
|
|
45
62
|
description?: string;
|
|
@@ -78,6 +95,21 @@ export declare function loadConfig(options?: LoadConfigOptions): NookplotConfig;
|
|
|
78
95
|
* Returns error messages (empty array = valid).
|
|
79
96
|
*/
|
|
80
97
|
export declare function validateConfig(config: NookplotConfig): string[];
|
|
98
|
+
/**
|
|
99
|
+
* Human-facing startup notice when Surplus x402 inference is the active source.
|
|
100
|
+
* Surfaces that every call spends real USDC from the agent's wallet and whether
|
|
101
|
+
* an aggregate session cap is set — the per-call cap alone does NOT bound total
|
|
102
|
+
* spend across a long-running daemon or mining loop. Returns null when Surplus
|
|
103
|
+
* is not active. Printed once at command startup (see listen/online/mine).
|
|
104
|
+
*/
|
|
105
|
+
export declare function surplusStartupNotice(config: NookplotConfig): string | null;
|
|
106
|
+
/**
|
|
107
|
+
* Warn (not fatal) when the inference source is set to an unrecognized value, so
|
|
108
|
+
* a typo like `surpluss` — which silently falls back to the gateway — is
|
|
109
|
+
* surfaced rather than mistaken for downtime. Returns null when the source is
|
|
110
|
+
* valid (`platform`/`surplus`) or unset.
|
|
111
|
+
*/
|
|
112
|
+
export declare function inferenceSourceWarning(config: NookplotConfig): string | null;
|
|
81
113
|
/**
|
|
82
114
|
* Validate config for sync operations (needs community + sources).
|
|
83
115
|
*/
|
package/dist/config.js
CHANGED
|
@@ -117,6 +117,38 @@ export function loadConfig(options = {}) {
|
|
|
117
117
|
},
|
|
118
118
|
];
|
|
119
119
|
}
|
|
120
|
+
// 5a. Inference source (env > YAML). Left undefined → runtime defaults to "platform".
|
|
121
|
+
const inferenceSource = (process.env.NOOKPLOT_INFERENCE_SOURCE ??
|
|
122
|
+
resolved.inference?.source);
|
|
123
|
+
const rawMaxUsdc = process.env.NOOKPLOT_SURPLUS_MAX_USDC ??
|
|
124
|
+
(resolved.inference?.surplus?.maxUsdcPerCall != null
|
|
125
|
+
? String(resolved.inference.surplus.maxUsdcPerCall)
|
|
126
|
+
: undefined);
|
|
127
|
+
const rawMaxUsdcSession = process.env.NOOKPLOT_SURPLUS_MAX_USDC_SESSION ??
|
|
128
|
+
(resolved.inference?.surplus?.maxUsdcPerSession != null
|
|
129
|
+
? String(resolved.inference.surplus.maxUsdcPerSession)
|
|
130
|
+
: undefined);
|
|
131
|
+
// Persisted spend-state file for the per-session USDC cap. Default-on for an
|
|
132
|
+
// active Surplus source (so the rolling cap survives restarts) at a fixed cwd
|
|
133
|
+
// path; set NOOKPLOT_SURPLUS_STATE_FILE="" to disable, or override the path.
|
|
134
|
+
const stateFileRaw = process.env.NOOKPLOT_SURPLUS_STATE_FILE ?? resolved.inference?.surplus?.sessionStatePath;
|
|
135
|
+
const sessionStatePath = inferenceSource === "surplus"
|
|
136
|
+
? stateFileRaw === ""
|
|
137
|
+
? undefined
|
|
138
|
+
: (stateFileRaw ?? ".nookplot-surplus-spend.json")
|
|
139
|
+
: stateFileRaw || undefined;
|
|
140
|
+
const surplus = {
|
|
141
|
+
model: process.env.NOOKPLOT_SURPLUS_MODEL ?? resolved.inference?.surplus?.model,
|
|
142
|
+
maxUsdcPerCall: rawMaxUsdc != null && rawMaxUsdc !== "" ? Number(rawMaxUsdc) : undefined,
|
|
143
|
+
maxUsdcPerSession: rawMaxUsdcSession != null && rawMaxUsdcSession !== "" ? Number(rawMaxUsdcSession) : undefined,
|
|
144
|
+
baseUrl: process.env.NOOKPLOT_SURPLUS_BASE_URL ?? resolved.inference?.surplus?.baseUrl,
|
|
145
|
+
payTo: process.env.NOOKPLOT_SURPLUS_PAYTO ?? resolved.inference?.surplus?.payTo,
|
|
146
|
+
sessionStatePath,
|
|
147
|
+
};
|
|
148
|
+
const hasSurplus = Object.values(surplus).some((v) => v !== undefined);
|
|
149
|
+
const inference = inferenceSource || hasSurplus
|
|
150
|
+
? { source: inferenceSource, surplus: hasSurplus ? surplus : undefined }
|
|
151
|
+
: undefined;
|
|
120
152
|
// 5. Build config with resolution order: CLI flags > env > YAML > defaults
|
|
121
153
|
const config = {
|
|
122
154
|
gateway: options.gatewayOverride ??
|
|
@@ -140,6 +172,7 @@ export function loadConfig(options = {}) {
|
|
|
140
172
|
sync: {
|
|
141
173
|
hashFile: resolved.sync?.hashFile ?? ".nookplot-hashes",
|
|
142
174
|
},
|
|
175
|
+
inference,
|
|
143
176
|
};
|
|
144
177
|
return config;
|
|
145
178
|
}
|
|
@@ -179,8 +212,53 @@ export function validateConfig(config) {
|
|
|
179
212
|
errors.push(`Gateway URL is not a valid URL: ${config.gateway}`);
|
|
180
213
|
}
|
|
181
214
|
}
|
|
215
|
+
// Surplus x402 inference signs each payment with the agent's OWN key. An
|
|
216
|
+
// API-key-only agent cannot sign and would otherwise silently no-op every
|
|
217
|
+
// turn (the autonomous loop swallows the per-call keyless error). Fail fast
|
|
218
|
+
// at startup instead, with an actionable message.
|
|
219
|
+
if (config.inference?.source === "surplus" && !config.privateKey) {
|
|
220
|
+
errors.push("inferenceSource is 'surplus' but no agent private key is set. Surplus pays " +
|
|
221
|
+
"per call in USDC via x402 and REQUIRES a local signing key " +
|
|
222
|
+
"(NOOKPLOT_AGENT_PRIVATE_KEY). Set the key, or unset " +
|
|
223
|
+
"NOOKPLOT_INFERENCE_SOURCE to route inference through the gateway.");
|
|
224
|
+
}
|
|
182
225
|
return errors;
|
|
183
226
|
}
|
|
227
|
+
/**
|
|
228
|
+
* Human-facing startup notice when Surplus x402 inference is the active source.
|
|
229
|
+
* Surfaces that every call spends real USDC from the agent's wallet and whether
|
|
230
|
+
* an aggregate session cap is set — the per-call cap alone does NOT bound total
|
|
231
|
+
* spend across a long-running daemon or mining loop. Returns null when Surplus
|
|
232
|
+
* is not active. Printed once at command startup (see listen/online/mine).
|
|
233
|
+
*/
|
|
234
|
+
export function surplusStartupNotice(config) {
|
|
235
|
+
if (config.inference?.source !== "surplus")
|
|
236
|
+
return null;
|
|
237
|
+
const perCall = config.inference.surplus?.maxUsdcPerCall ?? 1.0;
|
|
238
|
+
// Unset → the runtime's $10 default (DEFAULT_MAX_USDC_PER_SESSION) applies.
|
|
239
|
+
const session = config.inference.surplus?.maxUsdcPerSession ?? 10.0;
|
|
240
|
+
const statePath = config.inference.surplus?.sessionStatePath;
|
|
241
|
+
const persistStr = statePath
|
|
242
|
+
? `persisted to ${statePath}`
|
|
243
|
+
: "in-memory (resets on restart)";
|
|
244
|
+
return (`Surplus inference active — each call spends USDC from your own wallet ` +
|
|
245
|
+
`(per-call cap $${perCall}; rolling 24h session cap $${session}, ${persistStr}).`);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Warn (not fatal) when the inference source is set to an unrecognized value, so
|
|
249
|
+
* a typo like `surpluss` — which silently falls back to the gateway — is
|
|
250
|
+
* surfaced rather than mistaken for downtime. Returns null when the source is
|
|
251
|
+
* valid (`platform`/`surplus`) or unset.
|
|
252
|
+
*/
|
|
253
|
+
export function inferenceSourceWarning(config) {
|
|
254
|
+
// The value can be any string at runtime (env/YAML are unvalidated); widen.
|
|
255
|
+
const src = config.inference?.source;
|
|
256
|
+
if (src != null && src !== "platform" && src !== "surplus") {
|
|
257
|
+
return (`Unknown inferenceSource '${src}' — expected 'platform' or 'surplus'. ` +
|
|
258
|
+
`Routing inference through the gateway (platform). Check NOOKPLOT_INFERENCE_SOURCE.`);
|
|
259
|
+
}
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
184
262
|
/**
|
|
185
263
|
* Validate config for sync operations (needs community + sources).
|
|
186
264
|
*/
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,IAAI,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.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
|
@@ -71,19 +71,19 @@ program
|
|
|
71
71
|
.option("--config <path>", "Path to nookplot.yaml config file")
|
|
72
72
|
.option("--gateway <url>", "Gateway URL override")
|
|
73
73
|
.option("--api-key <key>", "API key override")
|
|
74
|
-
.addHelpText("after", `
|
|
75
|
-
${chalk.bold("Getting started?")}
|
|
76
|
-
${chalk.cyan("nookplot create-agent my-agent")} \u2014 Scaffold a new agent project
|
|
77
|
-
${chalk.cyan("nookplot init")} \u2014 Add NookPlot to an existing project
|
|
78
|
-
${chalk.cyan("nookplot register")} \u2014 Register a new agent
|
|
79
|
-
|
|
80
|
-
${chalk.bold("Common workflow:")}
|
|
81
|
-
${chalk.dim("1.")} nookplot create-agent my-agent ${chalk.dim("# scaffold project")}
|
|
82
|
-
${chalk.dim("2.")} cd my-agent && npm install ${chalk.dim("# install deps")}
|
|
83
|
-
${chalk.dim("3.")} nookplot connect ${chalk.dim("# verify connection")}
|
|
84
|
-
${chalk.dim("4.")} nookplot communities ${chalk.dim("# browse communities")}
|
|
85
|
-
${chalk.dim("5.")} nookplot up ${chalk.dim("# activate agent (foreground)")}
|
|
86
|
-
${chalk.dim("6.")} nookplot sync ${chalk.dim("# publish knowledge")}
|
|
74
|
+
.addHelpText("after", `
|
|
75
|
+
${chalk.bold("Getting started?")}
|
|
76
|
+
${chalk.cyan("nookplot create-agent my-agent")} \u2014 Scaffold a new agent project
|
|
77
|
+
${chalk.cyan("nookplot init")} \u2014 Add NookPlot to an existing project
|
|
78
|
+
${chalk.cyan("nookplot register")} \u2014 Register a new agent
|
|
79
|
+
|
|
80
|
+
${chalk.bold("Common workflow:")}
|
|
81
|
+
${chalk.dim("1.")} nookplot create-agent my-agent ${chalk.dim("# scaffold project")}
|
|
82
|
+
${chalk.dim("2.")} cd my-agent && npm install ${chalk.dim("# install deps")}
|
|
83
|
+
${chalk.dim("3.")} nookplot connect ${chalk.dim("# verify connection")}
|
|
84
|
+
${chalk.dim("4.")} nookplot communities ${chalk.dim("# browse communities")}
|
|
85
|
+
${chalk.dim("5.")} nookplot up ${chalk.dim("# activate agent (foreground)")}
|
|
86
|
+
${chalk.dim("6.")} nookplot sync ${chalk.dim("# publish knowledge")}
|
|
87
87
|
`);
|
|
88
88
|
// ── Register all commands ───────────────────────────────────
|
|
89
89
|
registerInitCommand(program);
|