@nookplot/cli 0.7.15 → 0.7.16
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/listen.js +1 -1
- package/dist/commands/listen.js.map +1 -1
- package/dist/commands/online.js +1 -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/evalManifest.json +27 -27
- package/dist/index.js +13 -53
- package/dist/index.js.map +1 -1
- package/dist/postinstall.js +189 -189
- package/dist/skillGenerator.js +17 -17
- package/dist/tool-manifest.json +4259 -4548
- 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 +4 -3
- 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/mine.d.ts +0 -21
- package/dist/commands/mine.js +0 -220
- package/dist/commands/mine.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/dist/utils/miningCapabilities.d.ts +0 -59
- package/dist/utils/miningCapabilities.js +0 -176
- package/dist/utils/miningCapabilities.js.map +0 -1
package/dist/commands/mine.js
DELETED
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `nookplot mine` — Unified mining loop across all enabled tracks.
|
|
3
|
-
*
|
|
4
|
-
* Auto-detects local capabilities (env vars / Ollama / Python / GPU), shows an
|
|
5
|
-
* earnings-preview banner per track, then runs `np.mining.start()` until
|
|
6
|
-
* Ctrl+C / once-mode completion / budget exhaustion.
|
|
7
|
-
*
|
|
8
|
-
* Examples:
|
|
9
|
-
* nookplot mine # auto-detect + run
|
|
10
|
-
* nookplot mine --tracks knowledge,rlm
|
|
11
|
-
* nookplot mine --once # solve open queue, then exit
|
|
12
|
-
* nookplot mine --max-credits 5000
|
|
13
|
-
* nookplot mine --guild <guildId>
|
|
14
|
-
* nookplot mine --dry-run # log decisions, no submissions
|
|
15
|
-
* nookplot mine --explain # print scoring math
|
|
16
|
-
*
|
|
17
|
-
* @module commands/mine
|
|
18
|
-
*/
|
|
19
|
-
import chalk from "chalk";
|
|
20
|
-
import ora from "ora";
|
|
21
|
-
import { NookplotRuntime } from "@nookplot/runtime";
|
|
22
|
-
import { loadConfig, validateConfig } from "../config.js";
|
|
23
|
-
import { CAPABILITY_REFRESH_INTERVAL_MS, detectCapabilities, enabledTracks, } from "../utils/miningCapabilities.js";
|
|
24
|
-
const VALID_TRACKS = ["knowledge", "embedding", "rlm", "gradient"];
|
|
25
|
-
/** Register `nookplot mine` on the commander program. */
|
|
26
|
-
export function registerMineCommand(program) {
|
|
27
|
-
program
|
|
28
|
-
.command("mine")
|
|
29
|
-
.description("Run a unified mining loop across all enabled tracks")
|
|
30
|
-
.option("--tracks <list>", "Comma-separated subset of tracks to mine (default: auto-detect)")
|
|
31
|
-
.option("--once", "Solve all currently-open challenges, then exit")
|
|
32
|
-
.option("--max-credits <n>", "Total credit budget for this session (default: 5000)")
|
|
33
|
-
.option("--guild <id>", "Submit through a guild for tier boost")
|
|
34
|
-
.option("--dry-run", "Show what would happen without submitting")
|
|
35
|
-
.option("--explain", "Print scoring math for ranked challenges")
|
|
36
|
-
.option("--tick-interval <ms>", "Loop tick interval in ms (default: 60000)")
|
|
37
|
-
.action(async (opts) => {
|
|
38
|
-
try {
|
|
39
|
-
await runMine(program.opts(), opts);
|
|
40
|
-
}
|
|
41
|
-
catch (err) {
|
|
42
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
43
|
-
console.error(chalk.red(`\nMine failed: ${msg}`));
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
async function runMine(globalOpts, opts) {
|
|
49
|
-
const config = loadConfig({
|
|
50
|
-
configPath: globalOpts.config,
|
|
51
|
-
gatewayOverride: globalOpts.gateway,
|
|
52
|
-
apiKeyOverride: globalOpts.apiKey,
|
|
53
|
-
});
|
|
54
|
-
const errors = validateConfig(config);
|
|
55
|
-
if (errors.length > 0) {
|
|
56
|
-
for (const e of errors)
|
|
57
|
-
console.error(chalk.red(` ✗ ${e}`));
|
|
58
|
-
process.exit(1);
|
|
59
|
-
}
|
|
60
|
-
// ── 1. Detect capabilities ─────────────────────────────────────────
|
|
61
|
-
const detectSpinner = ora("Detecting mining capabilities...").start();
|
|
62
|
-
let caps = await detectCapabilities();
|
|
63
|
-
detectSpinner.stop();
|
|
64
|
-
// ── 2. Filter to user-requested tracks (if any) ───────────────────
|
|
65
|
-
let tracks;
|
|
66
|
-
if (opts.tracks) {
|
|
67
|
-
const requested = opts.tracks
|
|
68
|
-
.split(",")
|
|
69
|
-
.map((s) => s.trim().toLowerCase())
|
|
70
|
-
.filter((s) => VALID_TRACKS.includes(s));
|
|
71
|
-
if (requested.length === 0) {
|
|
72
|
-
console.error(chalk.red(` ✗ No valid tracks in --tracks. Allowed: ${VALID_TRACKS.join(", ")}`));
|
|
73
|
-
process.exit(1);
|
|
74
|
-
}
|
|
75
|
-
tracks = enabledTracks(caps).filter((t) => requested.includes(t));
|
|
76
|
-
if (tracks.length === 0) {
|
|
77
|
-
console.error(chalk.red(` ✗ None of the requested tracks (${requested.join(", ")}) are enabled locally.`));
|
|
78
|
-
printCapabilityBanner(caps);
|
|
79
|
-
process.exit(1);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
tracks = enabledTracks(caps);
|
|
84
|
-
}
|
|
85
|
-
if (tracks.length === 0) {
|
|
86
|
-
console.error(chalk.red(" ✗ No mining tracks are enabled. Set up at least one of:"));
|
|
87
|
-
printCapabilityBanner(caps);
|
|
88
|
-
process.exit(1);
|
|
89
|
-
}
|
|
90
|
-
// ── 3. Show earnings preview banner ────────────────────────────────
|
|
91
|
-
const runtime = new NookplotRuntime({
|
|
92
|
-
gatewayUrl: config.gateway,
|
|
93
|
-
apiKey: config.apiKey,
|
|
94
|
-
privateKey: config.privateKey || undefined,
|
|
95
|
-
});
|
|
96
|
-
const previewSpinner = ora("Fetching earnings preview...").start();
|
|
97
|
-
let preview = [];
|
|
98
|
-
try {
|
|
99
|
-
const res = await runtime.connection.request("GET", `/v1/mining/earnings-preview?capabilities=${tracks.join(",")}`);
|
|
100
|
-
preview = res.tracks;
|
|
101
|
-
previewSpinner.stop();
|
|
102
|
-
}
|
|
103
|
-
catch (err) {
|
|
104
|
-
previewSpinner.warn("Earnings preview unavailable — proceeding without estimates");
|
|
105
|
-
}
|
|
106
|
-
printCapabilityBanner(caps, preview);
|
|
107
|
-
// ── 4. Build and start the mining session ─────────────────────────
|
|
108
|
-
await runtime.connect().catch((err) => {
|
|
109
|
-
console.error(chalk.red(` ✗ Connect failed: ${err instanceof Error ? err.message : String(err)}`));
|
|
110
|
-
process.exit(1);
|
|
111
|
-
});
|
|
112
|
-
const maxCredits = opts.maxCredits ? parseInt(opts.maxCredits, 10) : 5000;
|
|
113
|
-
const tickIntervalMs = opts.tickInterval ? parseInt(opts.tickInterval, 10) : 60_000;
|
|
114
|
-
const guildId = opts.guild;
|
|
115
|
-
// Always surface error-tagged lines; `--explain` opts in to all loop chatter.
|
|
116
|
-
// Runtime mining loop uses `[mining][error] ...` for failures and other
|
|
117
|
-
// `[mining] ...` / `[mining][rank] ...` tags for trace-level info.
|
|
118
|
-
const log = (msg) => {
|
|
119
|
-
if (opts.explain || msg.startsWith("[mining][error]"))
|
|
120
|
-
console.log(chalk.dim(msg));
|
|
121
|
-
};
|
|
122
|
-
const generateEmbeddings = makeOllamaEmbedder();
|
|
123
|
-
console.log(chalk.green(`\n Starting mining loop... press Ctrl+C to stop.\n`));
|
|
124
|
-
const session = await runtime.mining.start({
|
|
125
|
-
tracks,
|
|
126
|
-
maxCredits,
|
|
127
|
-
guildId,
|
|
128
|
-
once: opts.once,
|
|
129
|
-
dryRun: opts.dryRun,
|
|
130
|
-
explain: opts.explain,
|
|
131
|
-
tickIntervalMs,
|
|
132
|
-
generateEmbeddings,
|
|
133
|
-
log,
|
|
134
|
-
});
|
|
135
|
-
// ── 5. Schedule periodic capability re-detect (1h cadence) + SIGHUP refresh
|
|
136
|
-
const refreshTimer = setInterval(async () => {
|
|
137
|
-
caps = await detectCapabilities();
|
|
138
|
-
if (opts.explain) {
|
|
139
|
-
console.log(chalk.dim(`[mine] capabilities refreshed — ${caps.filter((c) => c.enabled).map((c) => c.track).join(", ")}`));
|
|
140
|
-
}
|
|
141
|
-
}, CAPABILITY_REFRESH_INTERVAL_MS);
|
|
142
|
-
process.on("SIGHUP", async () => {
|
|
143
|
-
caps = await detectCapabilities();
|
|
144
|
-
console.log(chalk.dim(`[mine] SIGHUP — capabilities re-detected: ${caps.filter((c) => c.enabled).map((c) => c.track).join(", ")}`));
|
|
145
|
-
});
|
|
146
|
-
// ── 6. Graceful shutdown on SIGINT ─────────────────────────────────
|
|
147
|
-
const shutdown = async () => {
|
|
148
|
-
clearInterval(refreshTimer);
|
|
149
|
-
await session.stop();
|
|
150
|
-
const stats = session.stats();
|
|
151
|
-
const dryRunNote = stats.dryRun > 0 ? ` Dry-run ${stats.dryRun}.` : "";
|
|
152
|
-
console.log(chalk.dim(`\n Mined ${stats.submitted} submissions in ${stats.ticks} ticks.`
|
|
153
|
-
+ ` Skipped ${stats.skipped}.${dryRunNote} Errors ${stats.errors}.`
|
|
154
|
-
+ ` Spent ${stats.creditsSpent} credits (estimate).`));
|
|
155
|
-
await runtime.disconnect().catch(() => undefined);
|
|
156
|
-
};
|
|
157
|
-
process.on("SIGINT", () => { void shutdown().then(() => process.exit(0)); });
|
|
158
|
-
await session.done;
|
|
159
|
-
await shutdown();
|
|
160
|
-
}
|
|
161
|
-
// ─── Capability banner ─────────────────────────────────────────────────
|
|
162
|
-
function printCapabilityBanner(caps, preview) {
|
|
163
|
-
const lookup = new Map(preview?.map((p) => [p.track, p]));
|
|
164
|
-
let total = 0;
|
|
165
|
-
for (const c of caps) {
|
|
166
|
-
const mark = c.enabled ? chalk.green("✓") : chalk.red("✗");
|
|
167
|
-
const provider = c.provider ? chalk.dim(` ${c.provider}`) : "";
|
|
168
|
-
const reason = c.reason ? chalk.dim(` ${c.reason}`) : "";
|
|
169
|
-
const trackLabel = c.track.padEnd(11);
|
|
170
|
-
const p = lookup.get(c.track);
|
|
171
|
-
const estStr = p && c.enabled
|
|
172
|
-
? chalk.cyan(` ~${p.estNookPerHour.toLocaleString()} NOOK/hr (${p.openCount} open, ${(p.successRate * 100).toFixed(0)}% success)`)
|
|
173
|
-
: "";
|
|
174
|
-
console.log(` ${mark} ${trackLabel}${provider || reason}${estStr}`);
|
|
175
|
-
if (c.enabled && p)
|
|
176
|
-
total += p.estNookPerHour;
|
|
177
|
-
}
|
|
178
|
-
if (total > 0) {
|
|
179
|
-
console.log(chalk.bold(` Total expected: ~${total.toLocaleString()} NOOK/hr`));
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// ─── Embedding callback (local Ollama) ─────────────────────────────────
|
|
183
|
-
/**
|
|
184
|
-
* Native dimension of the only Ollama model the CLI knows how to call. The
|
|
185
|
-
* embedding track will skip any challenge with a different `dimensions` ask
|
|
186
|
-
* — no silent vector-count mismatch, no fallback to a similar-but-wrong
|
|
187
|
-
* embedder. Future work: route to a different model when the challenge
|
|
188
|
-
* specifies one.
|
|
189
|
-
*/
|
|
190
|
-
const OLLAMA_NOMIC_DIM = 768;
|
|
191
|
-
function makeOllamaEmbedder() {
|
|
192
|
-
return async (prompts, dimensions) => {
|
|
193
|
-
if (dimensions !== OLLAMA_NOMIC_DIM) {
|
|
194
|
-
throw new Error(`Ollama embedder only supports nomic-embed-text (${OLLAMA_NOMIC_DIM}-d), `
|
|
195
|
-
+ `but challenge requested ${dimensions}-d vectors`);
|
|
196
|
-
}
|
|
197
|
-
const out = [];
|
|
198
|
-
for (const prompt of prompts) {
|
|
199
|
-
try {
|
|
200
|
-
const res = await fetch("http://127.0.0.1:11434/api/embeddings", {
|
|
201
|
-
method: "POST",
|
|
202
|
-
headers: { "Content-Type": "application/json" },
|
|
203
|
-
body: JSON.stringify({ model: "nomic-embed-text", prompt }),
|
|
204
|
-
});
|
|
205
|
-
if (!res.ok)
|
|
206
|
-
throw new Error(`ollama HTTP ${res.status}`);
|
|
207
|
-
const data = (await res.json());
|
|
208
|
-
if (!data.embedding || data.embedding.length !== OLLAMA_NOMIC_DIM) {
|
|
209
|
-
throw new Error(`ollama returned ${data.embedding?.length ?? 0}-d embedding, expected ${OLLAMA_NOMIC_DIM}-d`);
|
|
210
|
-
}
|
|
211
|
-
out.push(data.embedding);
|
|
212
|
-
}
|
|
213
|
-
catch (err) {
|
|
214
|
-
throw new Error(`Embedding failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
return out;
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
//# sourceMappingURL=mine.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mine.js","sourceRoot":"","sources":["../../src/commands/mine.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;
|