nervepay 1.1.1 → 1.2.0
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/bin/nervepay-cli.js +360 -75
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +6 -2
- package/dist/setup.js.map +1 -1
- package/dist/tools/gateway.d.ts +5 -1
- package/dist/tools/gateway.d.ts.map +1 -1
- package/dist/tools/gateway.js +37 -17
- package/dist/tools/gateway.js.map +1 -1
- package/package.json +10 -10
package/bin/nervepay-cli.js
CHANGED
|
@@ -15,15 +15,86 @@ import * as identity from '../dist/tools/identity.js';
|
|
|
15
15
|
import * as gateway from '../dist/tools/gateway.js';
|
|
16
16
|
import * as vault from '../dist/tools/vault.js';
|
|
17
17
|
|
|
18
|
-
const OPENCLAW_CONFIG_PATH = join(homedir(), '.openclaw', 'openclaw.json');
|
|
19
18
|
const NERVEPAY_CREDS_PATH = join(homedir(), '.nervepay', 'credentials.json');
|
|
20
19
|
|
|
20
|
+
/**
|
|
21
|
+
* Find OpenClaw config path — checks OPENCLAW_CONFIG_PATH env var,
|
|
22
|
+
* then standard locations, then legacy paths.
|
|
23
|
+
*/
|
|
24
|
+
async function findOpenClawConfigPath() {
|
|
25
|
+
const { existsSync } = await import('fs');
|
|
26
|
+
|
|
27
|
+
// Check env var override first
|
|
28
|
+
if (process.env.OPENCLAW_CONFIG_PATH && existsSync(process.env.OPENCLAW_CONFIG_PATH)) {
|
|
29
|
+
return process.env.OPENCLAW_CONFIG_PATH;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const candidates = [
|
|
33
|
+
join(homedir(), '.openclaw', 'openclaw.json'),
|
|
34
|
+
join(homedir(), '.config', 'openclaw', 'openclaw.json'),
|
|
35
|
+
join(homedir(), '.moltbot', 'openclaw.json'), // Legacy "Moltbot" name
|
|
36
|
+
join(homedir(), '.clawdbot', 'openclaw.json'), // Original "Clawdbot" name
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
for (const p of candidates) {
|
|
40
|
+
if (existsSync(p)) return p;
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Read OpenClaw config, returns empty object if not found.
|
|
47
|
+
*/
|
|
48
|
+
async function readOpenClawConfig() {
|
|
49
|
+
const configPath = await findOpenClawConfigPath();
|
|
50
|
+
if (!configPath) return {};
|
|
51
|
+
try {
|
|
52
|
+
return JSON.parse(await readFile(configPath, 'utf-8'));
|
|
53
|
+
} catch {
|
|
54
|
+
return {};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Extract gateway URL and token from OpenClaw config.
|
|
60
|
+
* Follows OpenClaw's config schema:
|
|
61
|
+
* - Remote mode: gateway.remote.url + gateway.remote.token
|
|
62
|
+
* - Local mode: gateway.auth.token + gateway.port (default 18789)
|
|
63
|
+
* - Env vars: OPENCLAW_GATEWAY_TOKEN, OPENCLAW_GATEWAY_PORT
|
|
64
|
+
*/
|
|
65
|
+
function extractGatewayConfig(config) {
|
|
66
|
+
let url = null;
|
|
67
|
+
let token = null;
|
|
68
|
+
|
|
69
|
+
if (config.gateway?.mode === 'remote' && config.gateway?.remote?.url) {
|
|
70
|
+
// Remote mode — CLI connects to a remote gateway
|
|
71
|
+
url = config.gateway.remote.url;
|
|
72
|
+
token = config.gateway.remote.token;
|
|
73
|
+
} else if (config.gateway?.auth?.token) {
|
|
74
|
+
// Local mode — gateway runs on this machine
|
|
75
|
+
const port = config.gateway?.port || 18789;
|
|
76
|
+
url = `http://127.0.0.1:${port}`;
|
|
77
|
+
token = config.gateway.auth.token;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Env var overrides (OpenClaw precedence: CLI flags > env vars > config)
|
|
81
|
+
if (process.env.OPENCLAW_GATEWAY_TOKEN) {
|
|
82
|
+
token = token || process.env.OPENCLAW_GATEWAY_TOKEN;
|
|
83
|
+
}
|
|
84
|
+
const envPort = process.env.OPENCLAW_GATEWAY_PORT;
|
|
85
|
+
if (envPort && !url) {
|
|
86
|
+
url = `http://127.0.0.1:${envPort}`;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return { url, token };
|
|
90
|
+
}
|
|
91
|
+
|
|
21
92
|
const program = new Command();
|
|
22
93
|
|
|
23
94
|
program
|
|
24
95
|
.name('nervepay')
|
|
25
96
|
.description('NervePay CLI - Self-sovereign identity for AI agents')
|
|
26
|
-
.version('1.0
|
|
97
|
+
.version('1.2.0');
|
|
27
98
|
|
|
28
99
|
// ============================================================================
|
|
29
100
|
// SETUP COMMAND
|
|
@@ -33,34 +104,28 @@ program
|
|
|
33
104
|
.command('setup')
|
|
34
105
|
.description('Interactive setup wizard - register identity, pair gateway')
|
|
35
106
|
.option('--api-url <url>', 'NervePay API URL', 'https://api.nervepay.xyz')
|
|
107
|
+
.option('--gateway-url <url>', 'Gateway URL (overrides config)')
|
|
108
|
+
.option('--gateway-token <token>', 'Gateway token (overrides config)')
|
|
36
109
|
.action(async (options) => {
|
|
37
110
|
console.log(chalk.cyan('\n🔐 NervePay Setup Wizard\n'));
|
|
38
111
|
|
|
39
112
|
try {
|
|
40
|
-
// Read OpenClaw config
|
|
41
|
-
const openclawConfig =
|
|
42
|
-
|
|
43
|
-
// Support both local and remote gateway modes
|
|
44
|
-
let gatewayUrl, gatewayToken;
|
|
45
|
-
if (openclawConfig.gateway?.remote?.url) {
|
|
46
|
-
// Remote mode
|
|
47
|
-
gatewayUrl = openclawConfig.gateway.remote.url;
|
|
48
|
-
gatewayToken = openclawConfig.gateway.remote.token;
|
|
49
|
-
} else if (openclawConfig.gateway?.auth?.token) {
|
|
50
|
-
// Local mode - construct URL from port (default 18789)
|
|
51
|
-
const port = openclawConfig.gateway?.port || 18789;
|
|
52
|
-
gatewayUrl = `http://127.0.0.1:${port}`;
|
|
53
|
-
gatewayToken = openclawConfig.gateway.auth.token;
|
|
54
|
-
}
|
|
113
|
+
// Read OpenClaw config (gracefully handles missing file)
|
|
114
|
+
const openclawConfig = await readOpenClawConfig();
|
|
115
|
+
const configPath = await findOpenClawConfigPath();
|
|
55
116
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
117
|
+
// Extract gateway config from OpenClaw config + env vars
|
|
118
|
+
const gw = extractGatewayConfig(openclawConfig);
|
|
119
|
+
let gatewayUrl = options.gatewayUrl || gw.url;
|
|
120
|
+
let gatewayToken = options.gatewayToken || gw.token;
|
|
61
121
|
|
|
62
|
-
|
|
63
|
-
|
|
122
|
+
if (gatewayUrl) {
|
|
123
|
+
console.log(chalk.green('✓ Found OpenClaw gateway:'), gatewayUrl);
|
|
124
|
+
} else {
|
|
125
|
+
console.log(chalk.yellow('⚠️ No OpenClaw gateway detected'));
|
|
126
|
+
console.log(chalk.gray(' Gateway pairing will be skipped. You can pair later with:'));
|
|
127
|
+
console.log(chalk.cyan(' nervepay pair --code <CODE> --gateway-token <TOKEN>\n'));
|
|
128
|
+
}
|
|
64
129
|
|
|
65
130
|
// Ask for agent details
|
|
66
131
|
const answers = await inquirer.prompt([
|
|
@@ -99,10 +164,12 @@ program
|
|
|
99
164
|
console.log(chalk.gray(' (Opens in browser automatically if possible)\n'));
|
|
100
165
|
|
|
101
166
|
// Try to open in browser
|
|
102
|
-
|
|
103
|
-
|
|
167
|
+
try {
|
|
168
|
+
const open = await import('open');
|
|
169
|
+
await open.default(registration.claim_url);
|
|
170
|
+
} catch {
|
|
104
171
|
console.log(chalk.gray(' (Could not open browser automatically)'));
|
|
105
|
-
}
|
|
172
|
+
}
|
|
106
173
|
|
|
107
174
|
// Poll for claim
|
|
108
175
|
console.log(chalk.cyan('⏳ Waiting for claim (checking every 5 seconds)...\n'));
|
|
@@ -121,7 +188,7 @@ program
|
|
|
121
188
|
|
|
122
189
|
if (data.status === 'claimed') {
|
|
123
190
|
claimed = true;
|
|
124
|
-
console.log(chalk.green('✓ Agent claimed successfully!\n'));
|
|
191
|
+
console.log(chalk.green('\n✓ Agent claimed successfully!\n'));
|
|
125
192
|
} else if (data.status === 'expired') {
|
|
126
193
|
console.error(chalk.red('❌ Claim session expired'));
|
|
127
194
|
process.exit(1);
|
|
@@ -134,8 +201,8 @@ program
|
|
|
134
201
|
}
|
|
135
202
|
|
|
136
203
|
if (!claimed) {
|
|
137
|
-
console.
|
|
138
|
-
|
|
204
|
+
console.log(chalk.yellow('\n⚠️ Claim timeout — continuing setup.'));
|
|
205
|
+
console.log(chalk.gray(' You can claim later at:'), chalk.yellow(registration.claim_url));
|
|
139
206
|
}
|
|
140
207
|
|
|
141
208
|
// Update client with credentials
|
|
@@ -144,8 +211,9 @@ program
|
|
|
144
211
|
privateKey: registration.private_key,
|
|
145
212
|
});
|
|
146
213
|
|
|
147
|
-
// Save credentials
|
|
148
|
-
const
|
|
214
|
+
// Save credentials to ~/.nervepay/
|
|
215
|
+
const { mkdir } = await import('fs/promises');
|
|
216
|
+
await mkdir(join(homedir(), '.nervepay'), { recursive: true });
|
|
149
217
|
await writeFile(
|
|
150
218
|
NERVEPAY_CREDS_PATH,
|
|
151
219
|
JSON.stringify(
|
|
@@ -153,6 +221,7 @@ program
|
|
|
153
221
|
agent_did: registration.did,
|
|
154
222
|
private_key: registration.private_key,
|
|
155
223
|
mnemonic: registration.mnemonic,
|
|
224
|
+
api_url: options.apiUrl,
|
|
156
225
|
created_at: new Date().toISOString(),
|
|
157
226
|
},
|
|
158
227
|
null,
|
|
@@ -161,42 +230,50 @@ program
|
|
|
161
230
|
);
|
|
162
231
|
console.log(chalk.green('✓ Credentials saved to ~/.nervepay/credentials.json'));
|
|
163
232
|
|
|
164
|
-
// Update OpenClaw config
|
|
165
|
-
if (
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
openclawConfig.plugins.entries.nervepay
|
|
169
|
-
|
|
233
|
+
// Update OpenClaw config if it exists
|
|
234
|
+
if (configPath) {
|
|
235
|
+
if (!openclawConfig.plugins) openclawConfig.plugins = {};
|
|
236
|
+
if (!openclawConfig.plugins.entries) openclawConfig.plugins.entries = {};
|
|
237
|
+
if (!openclawConfig.plugins.entries.nervepay) {
|
|
238
|
+
openclawConfig.plugins.entries.nervepay = { enabled: true, config: {} };
|
|
239
|
+
}
|
|
170
240
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
241
|
+
openclawConfig.plugins.entries.nervepay.config = {
|
|
242
|
+
...openclawConfig.plugins.entries.nervepay.config,
|
|
243
|
+
apiUrl: options.apiUrl,
|
|
244
|
+
agentDid: registration.did,
|
|
245
|
+
privateKey: registration.private_key,
|
|
246
|
+
enableOrchestration: true,
|
|
247
|
+
};
|
|
178
248
|
|
|
179
|
-
|
|
180
|
-
|
|
249
|
+
await writeFile(configPath, JSON.stringify(openclawConfig, null, 2));
|
|
250
|
+
console.log(chalk.green('✓ OpenClaw config updated'));
|
|
251
|
+
}
|
|
181
252
|
|
|
182
|
-
// Send pairing request
|
|
183
|
-
|
|
253
|
+
// Send pairing request if gateway available
|
|
254
|
+
if (gatewayUrl && gatewayToken) {
|
|
255
|
+
console.log(chalk.cyan('\n🔗 Pairing gateway...'));
|
|
184
256
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
257
|
+
const pairingRequest = await gateway.createPairingRequest(client, {
|
|
258
|
+
gateway_name: 'OpenClaw Gateway',
|
|
259
|
+
gateway_url: gatewayUrl,
|
|
260
|
+
max_concurrent_agents: 8,
|
|
261
|
+
default_timeout_seconds: 3600,
|
|
262
|
+
});
|
|
191
263
|
|
|
192
|
-
|
|
193
|
-
|
|
264
|
+
console.log(chalk.green('✓ Pairing request sent'));
|
|
265
|
+
console.log(chalk.yellow(' Approve in Mission Control > Task Board > Incoming tab'));
|
|
266
|
+
}
|
|
194
267
|
|
|
195
268
|
console.log(chalk.cyan('\n✅ Setup complete!'));
|
|
196
269
|
console.log(chalk.gray('\nNext steps:'));
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
270
|
+
if (gatewayUrl && gatewayToken) {
|
|
271
|
+
console.log(chalk.gray(' 1. Approve the pairing request in Mission Control'));
|
|
272
|
+
console.log(chalk.gray(' 2. Restart OpenClaw gateway:'), chalk.cyan('openclaw gateway restart'));
|
|
273
|
+
} else {
|
|
274
|
+
console.log(chalk.gray(' 1. Pair your gateway:'), chalk.cyan('nervepay pair --code <CODE> --gateway-token <TOKEN>'));
|
|
275
|
+
}
|
|
276
|
+
console.log(chalk.gray(` ${gatewayUrl ? '3' : '2'}. Test:`), chalk.cyan('nervepay whoami'));
|
|
200
277
|
console.log(chalk.gray('\n Mnemonic (backup phrase):'), chalk.yellow(registration.mnemonic));
|
|
201
278
|
console.log(chalk.red(' ⚠️ Save this mnemonic - you can recover your keys with it!'));
|
|
202
279
|
} catch (error) {
|
|
@@ -205,6 +282,199 @@ program
|
|
|
205
282
|
}
|
|
206
283
|
});
|
|
207
284
|
|
|
285
|
+
// ============================================================================
|
|
286
|
+
// PAIR COMMAND
|
|
287
|
+
// ============================================================================
|
|
288
|
+
|
|
289
|
+
program
|
|
290
|
+
.command('pair')
|
|
291
|
+
.description('Quick pair gateway using a dashboard pairing code')
|
|
292
|
+
.requiredOption('--code <code>', '6-character pairing code from NervePay dashboard')
|
|
293
|
+
.option('--api-url <url>', 'NervePay API URL', 'https://api.nervepay.xyz')
|
|
294
|
+
.option('--gateway-url <url>', 'Gateway URL (e.g. ws://127.0.0.1:18789)')
|
|
295
|
+
.option('--gateway-token <token>', 'Gateway authentication token')
|
|
296
|
+
.option('--name <name>', 'Agent name', 'OpenClaw Gateway')
|
|
297
|
+
.action(async (options) => {
|
|
298
|
+
console.log(chalk.cyan('\n🔗 NervePay Quick Pair\n'));
|
|
299
|
+
console.log(chalk.gray(' Code:'), chalk.white(options.code));
|
|
300
|
+
|
|
301
|
+
try {
|
|
302
|
+
// Step 1: Load existing credentials or create new identity
|
|
303
|
+
let agentDid, privateKey, mnemonic, claimUrl, sessionId, isNew = false;
|
|
304
|
+
|
|
305
|
+
try {
|
|
306
|
+
const config = await loadConfig();
|
|
307
|
+
agentDid = config.agentDid;
|
|
308
|
+
privateKey = config.privateKey;
|
|
309
|
+
console.log(chalk.green('✓ Using existing agent identity'));
|
|
310
|
+
console.log(chalk.gray(' DID:'), agentDid);
|
|
311
|
+
} catch {
|
|
312
|
+
// No existing config — create a new pending identity
|
|
313
|
+
console.log(chalk.cyan(' No existing identity found, creating one...\n'));
|
|
314
|
+
const tempClient = new NervePayClient({ apiUrl: options.apiUrl });
|
|
315
|
+
const reg = await identity.registerPendingIdentity(tempClient, {
|
|
316
|
+
name: options.name,
|
|
317
|
+
description: 'Gateway operator',
|
|
318
|
+
});
|
|
319
|
+
agentDid = reg.did;
|
|
320
|
+
privateKey = reg.private_key;
|
|
321
|
+
mnemonic = reg.mnemonic;
|
|
322
|
+
claimUrl = reg.claim_url;
|
|
323
|
+
sessionId = reg.session_id;
|
|
324
|
+
isNew = true;
|
|
325
|
+
console.log(chalk.green(' ✓ Agent identity created'));
|
|
326
|
+
console.log(chalk.gray(' DID:'), agentDid);
|
|
327
|
+
|
|
328
|
+
// Show claim URL and offer to open browser
|
|
329
|
+
if (claimUrl) {
|
|
330
|
+
console.log(chalk.cyan('\n 👤 Claim this agent to link it to your NervePay account:'));
|
|
331
|
+
console.log(chalk.yellow(` ${claimUrl}`));
|
|
332
|
+
console.log(chalk.gray(' (This links the agent to your dashboard for management)\n'));
|
|
333
|
+
|
|
334
|
+
try {
|
|
335
|
+
const open = await import('open');
|
|
336
|
+
await open.default(claimUrl);
|
|
337
|
+
console.log(chalk.gray(' Opened in browser.'));
|
|
338
|
+
} catch {
|
|
339
|
+
console.log(chalk.gray(' Open the URL above in your browser.'));
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// Poll for claim (30 seconds — quick pair shouldn't block too long)
|
|
343
|
+
console.log(chalk.cyan(' ⏳ Waiting for claim (30s timeout)...\n'));
|
|
344
|
+
let claimed = false;
|
|
345
|
+
for (let i = 0; i < 6; i++) {
|
|
346
|
+
await new Promise((r) => setTimeout(r, 5000));
|
|
347
|
+
try {
|
|
348
|
+
const status = await fetch(`${options.apiUrl}/v1/agent-identity/register-pending/${sessionId}/status`);
|
|
349
|
+
const data = await status.json();
|
|
350
|
+
if (data.status === 'claimed') {
|
|
351
|
+
claimed = true;
|
|
352
|
+
console.log(chalk.green(' ✓ Agent claimed successfully!\n'));
|
|
353
|
+
break;
|
|
354
|
+
} else if (data.status === 'expired') {
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
process.stdout.write(chalk.gray('.'));
|
|
358
|
+
} catch {
|
|
359
|
+
process.stdout.write(chalk.gray('.'));
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
if (!claimed) {
|
|
364
|
+
console.log(chalk.yellow('\n ⚠️ Not claimed yet — continuing with pairing.'));
|
|
365
|
+
console.log(chalk.gray(' You can claim later at:'), chalk.yellow(claimUrl));
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
// Show mnemonic
|
|
370
|
+
if (mnemonic) {
|
|
371
|
+
console.log(chalk.cyan('\n 🔐 Recovery mnemonic:'));
|
|
372
|
+
console.log(chalk.yellow(` ${mnemonic}`));
|
|
373
|
+
console.log(chalk.red(' ⚠️ Save this — you can recover your keys with it!\n'));
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
// Step 2: Read gateway config (from flags, env, or config files)
|
|
378
|
+
console.log(chalk.cyan('📡 Reading gateway config...'));
|
|
379
|
+
|
|
380
|
+
let gatewayUrl = options.gatewayUrl;
|
|
381
|
+
let gatewayToken = options.gatewayToken;
|
|
382
|
+
|
|
383
|
+
// Try OpenClaw config if flags not provided
|
|
384
|
+
if (!gatewayUrl || !gatewayToken) {
|
|
385
|
+
const openclawConfig = await readOpenClawConfig();
|
|
386
|
+
const gw = extractGatewayConfig(openclawConfig);
|
|
387
|
+
gatewayUrl = gatewayUrl || gw.url;
|
|
388
|
+
gatewayToken = gatewayToken || gw.token;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// Default URL if we have a token but no URL
|
|
392
|
+
if (gatewayToken && !gatewayUrl) {
|
|
393
|
+
gatewayUrl = 'http://127.0.0.1:18789';
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
if (!gatewayToken) {
|
|
397
|
+
console.error(chalk.red('\n❌ Could not find gateway token'));
|
|
398
|
+
console.error(chalk.yellow(' Provide it via one of:'));
|
|
399
|
+
console.error(chalk.gray(' --gateway-token <token>'));
|
|
400
|
+
console.error(chalk.gray(' ~/.openclaw/openclaw.json (gateway.auth.token)'));
|
|
401
|
+
console.error(chalk.gray(' OPENCLAW_GATEWAY_TOKEN env var'));
|
|
402
|
+
process.exit(1);
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
console.log(chalk.green('✓ Gateway found'));
|
|
406
|
+
console.log(chalk.gray(' URL:'), gatewayUrl);
|
|
407
|
+
|
|
408
|
+
// Step 3: Complete pairing
|
|
409
|
+
console.log(chalk.cyan('\n🔐 Completing pairing...'));
|
|
410
|
+
const client = new NervePayClient({
|
|
411
|
+
apiUrl: options.apiUrl,
|
|
412
|
+
agentDid,
|
|
413
|
+
privateKey,
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
const result = await gateway.completePairing(client, {
|
|
417
|
+
pairing_code: options.code,
|
|
418
|
+
gateway_url: gatewayUrl,
|
|
419
|
+
gateway_token: gatewayToken,
|
|
420
|
+
gateway_name: options.name,
|
|
421
|
+
});
|
|
422
|
+
|
|
423
|
+
console.log(chalk.green('\n✅ Pairing complete!'));
|
|
424
|
+
console.log(chalk.gray(' Gateway ID:'), result.gateway_id || 'created');
|
|
425
|
+
console.log(chalk.gray(' Agent DID: '), agentDid);
|
|
426
|
+
console.log(chalk.gray('\n Your gateway is now live in the NervePay dashboard.'));
|
|
427
|
+
console.log(chalk.gray(' Go to Mission Control to spawn agents and manage tasks.\n'));
|
|
428
|
+
|
|
429
|
+
// Save credentials if new
|
|
430
|
+
if (isNew) {
|
|
431
|
+
try {
|
|
432
|
+
const { mkdir } = await import('fs/promises');
|
|
433
|
+
await mkdir(join(homedir(), '.nervepay'), { recursive: true });
|
|
434
|
+
await writeFile(
|
|
435
|
+
NERVEPAY_CREDS_PATH,
|
|
436
|
+
JSON.stringify({
|
|
437
|
+
agent_did: agentDid,
|
|
438
|
+
private_key: privateKey,
|
|
439
|
+
mnemonic: mnemonic || undefined,
|
|
440
|
+
api_url: options.apiUrl,
|
|
441
|
+
created_at: new Date().toISOString(),
|
|
442
|
+
}, null, 2)
|
|
443
|
+
);
|
|
444
|
+
console.log(chalk.green(' ✓ Credentials saved to ~/.nervepay/credentials.json'));
|
|
445
|
+
|
|
446
|
+
// Update OpenClaw config if it exists
|
|
447
|
+
try {
|
|
448
|
+
const ocConfigPath = await findOpenClawConfigPath();
|
|
449
|
+
if (ocConfigPath) {
|
|
450
|
+
const existingConfig = JSON.parse(await readFile(ocConfigPath, 'utf-8'));
|
|
451
|
+
if (!existingConfig.plugins) existingConfig.plugins = {};
|
|
452
|
+
if (!existingConfig.plugins.entries) existingConfig.plugins.entries = {};
|
|
453
|
+
if (!existingConfig.plugins.entries.nervepay) {
|
|
454
|
+
existingConfig.plugins.entries.nervepay = { enabled: true, config: {} };
|
|
455
|
+
}
|
|
456
|
+
existingConfig.plugins.entries.nervepay.config = {
|
|
457
|
+
...existingConfig.plugins.entries.nervepay.config,
|
|
458
|
+
apiUrl: options.apiUrl,
|
|
459
|
+
agentDid,
|
|
460
|
+
privateKey,
|
|
461
|
+
};
|
|
462
|
+
await writeFile(ocConfigPath, JSON.stringify(existingConfig, null, 2));
|
|
463
|
+
console.log(chalk.green(' ✓ OpenClaw config updated'));
|
|
464
|
+
}
|
|
465
|
+
} catch {
|
|
466
|
+
// OpenClaw config doesn't exist — that's fine, we saved to ~/.nervepay/
|
|
467
|
+
}
|
|
468
|
+
} catch {
|
|
469
|
+
// Non-fatal — credentials shown above
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
} catch (error) {
|
|
473
|
+
console.error(chalk.red('\n❌ Pairing failed:'), error.message);
|
|
474
|
+
process.exit(1);
|
|
475
|
+
}
|
|
476
|
+
});
|
|
477
|
+
|
|
208
478
|
// ============================================================================
|
|
209
479
|
// WHOAMI COMMAND
|
|
210
480
|
// ============================================================================
|
|
@@ -300,25 +570,40 @@ program
|
|
|
300
570
|
// ============================================================================
|
|
301
571
|
|
|
302
572
|
async function loadConfig() {
|
|
573
|
+
// Try OpenClaw config first (checks env var, standard paths, legacy paths)
|
|
303
574
|
try {
|
|
304
|
-
const
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
575
|
+
const configPath = await findOpenClawConfigPath();
|
|
576
|
+
if (configPath) {
|
|
577
|
+
const openclawConfig = JSON.parse(await readFile(configPath, 'utf-8'));
|
|
578
|
+
const pluginConfig = openclawConfig.plugins?.entries?.nervepay?.config || {};
|
|
579
|
+
|
|
580
|
+
if (pluginConfig.agentDid && pluginConfig.privateKey) {
|
|
581
|
+
return {
|
|
582
|
+
apiUrl: pluginConfig.apiUrl || 'https://api.nervepay.xyz',
|
|
583
|
+
agentDid: pluginConfig.agentDid,
|
|
584
|
+
privateKey: pluginConfig.privateKey,
|
|
585
|
+
};
|
|
586
|
+
}
|
|
311
587
|
}
|
|
588
|
+
} catch {
|
|
589
|
+
// Config not found or invalid — fall through to backup
|
|
590
|
+
}
|
|
312
591
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
592
|
+
// Try NervePay credentials backup
|
|
593
|
+
try {
|
|
594
|
+
const creds = JSON.parse(await readFile(NERVEPAY_CREDS_PATH, 'utf-8'));
|
|
595
|
+
if (creds.agent_did && creds.private_key) {
|
|
596
|
+
return {
|
|
597
|
+
apiUrl: creds.api_url || 'https://api.nervepay.xyz',
|
|
598
|
+
agentDid: creds.agent_did,
|
|
599
|
+
privateKey: creds.private_key,
|
|
600
|
+
};
|
|
601
|
+
}
|
|
602
|
+
} catch {
|
|
603
|
+
// No backup either
|
|
321
604
|
}
|
|
605
|
+
|
|
606
|
+
throw new Error('No NervePay credentials found. Run: nervepay setup');
|
|
322
607
|
}
|
|
323
608
|
|
|
324
609
|
// ============================================================================
|
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiRH;;GAEG;AACH,UAAU,YAAY;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,QAAQ,CAAC,MAAM,GAAE,MAAmC,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2PrH"}
|
package/dist/setup.js
CHANGED
|
@@ -42,12 +42,16 @@ async function promptYesNo(rl, question, defaultValue = false) {
|
|
|
42
42
|
* Find OpenClaw config path
|
|
43
43
|
*/
|
|
44
44
|
function findOpenClawConfig() {
|
|
45
|
+
// Check OPENCLAW_CONFIG_PATH env var first
|
|
46
|
+
if (process.env.OPENCLAW_CONFIG_PATH && fs.existsSync(process.env.OPENCLAW_CONFIG_PATH)) {
|
|
47
|
+
return process.env.OPENCLAW_CONFIG_PATH;
|
|
48
|
+
}
|
|
45
49
|
const home = os.homedir();
|
|
46
50
|
const candidates = [
|
|
47
51
|
path.join(home, '.openclaw', 'openclaw.json'),
|
|
48
52
|
path.join(home, '.config', 'openclaw', 'openclaw.json'),
|
|
49
|
-
path.join(home, '.moltbot', 'openclaw.json'), // Legacy name
|
|
50
|
-
path.join(home, '.clawdbot', 'openclaw.json'), // Original name
|
|
53
|
+
path.join(home, '.moltbot', 'openclaw.json'), // Legacy "Moltbot" name
|
|
54
|
+
path.join(home, '.clawdbot', 'openclaw.json'), // Original "Clawdbot" name
|
|
51
55
|
];
|
|
52
56
|
for (const configPath of candidates) {
|
|
53
57
|
if (fs.existsSync(configPath)) {
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/gateway.d.ts
CHANGED
|
@@ -90,7 +90,11 @@ export declare function healthCheckGateway(client: NervePayClient, gatewayId: st
|
|
|
90
90
|
error?: string;
|
|
91
91
|
}>;
|
|
92
92
|
/**
|
|
93
|
-
* Helper: Read OpenClaw gateway token from local config
|
|
93
|
+
* Helper: Read OpenClaw gateway token from local config.
|
|
94
|
+
* Follows OpenClaw config schema:
|
|
95
|
+
* - Remote mode: gateway.remote.token
|
|
96
|
+
* - Local mode: gateway.auth.token
|
|
97
|
+
* - Env var: OPENCLAW_GATEWAY_TOKEN
|
|
94
98
|
*/
|
|
95
99
|
export declare function findGatewayToken(customPath?: string): string | null;
|
|
96
100
|
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/tools/gateway.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../src/tools/gateway.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/gateway.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* OpenClaw gateway pairing and management tools
|
|
3
3
|
*/
|
|
4
|
+
import { existsSync, readFileSync } from 'fs';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
import { homedir } from 'os';
|
|
4
7
|
/**
|
|
5
8
|
* Send pairing request to connect gateway
|
|
6
9
|
* Requires human approval in Mission Control dashboard
|
|
@@ -51,36 +54,53 @@ export async function healthCheckGateway(client, gatewayId) {
|
|
|
51
54
|
return client.post(`/v1/orchestration/gateways/${gatewayId}/health`, {}, true);
|
|
52
55
|
}
|
|
53
56
|
/**
|
|
54
|
-
* Helper: Read OpenClaw gateway token from local config
|
|
57
|
+
* Helper: Read OpenClaw gateway token from local config.
|
|
58
|
+
* Follows OpenClaw config schema:
|
|
59
|
+
* - Remote mode: gateway.remote.token
|
|
60
|
+
* - Local mode: gateway.auth.token
|
|
61
|
+
* - Env var: OPENCLAW_GATEWAY_TOKEN
|
|
55
62
|
*/
|
|
56
63
|
export function findGatewayToken(customPath) {
|
|
57
64
|
try {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
65
|
+
function extractToken(data) {
|
|
66
|
+
// Remote mode token
|
|
67
|
+
if (data?.gateway?.mode === 'remote' && data?.gateway?.remote?.token) {
|
|
68
|
+
return data.gateway.remote.token;
|
|
69
|
+
}
|
|
70
|
+
// Local mode token (gateway.auth.token)
|
|
71
|
+
if (data?.gateway?.auth?.token) {
|
|
72
|
+
return data.gateway.auth.token;
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
61
76
|
// Check custom path first
|
|
62
|
-
if (customPath &&
|
|
63
|
-
const data = JSON.parse(
|
|
64
|
-
const token = data
|
|
77
|
+
if (customPath && existsSync(customPath)) {
|
|
78
|
+
const data = JSON.parse(readFileSync(customPath, 'utf-8'));
|
|
79
|
+
const token = extractToken(data);
|
|
80
|
+
if (token)
|
|
81
|
+
return token;
|
|
82
|
+
}
|
|
83
|
+
// Check OPENCLAW_CONFIG_PATH env var
|
|
84
|
+
if (process.env.OPENCLAW_CONFIG_PATH && existsSync(process.env.OPENCLAW_CONFIG_PATH)) {
|
|
85
|
+
const data = JSON.parse(readFileSync(process.env.OPENCLAW_CONFIG_PATH, 'utf-8'));
|
|
86
|
+
const token = extractToken(data);
|
|
65
87
|
if (token)
|
|
66
88
|
return token;
|
|
67
89
|
}
|
|
68
90
|
// Check standard locations
|
|
69
|
-
const home =
|
|
91
|
+
const home = homedir();
|
|
70
92
|
const candidates = [
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
path.join(home, '.moltbot', 'openclaw.json'), // Legacy name
|
|
76
|
-
path.join(home, '.clawdbot', 'openclaw.json'), // Original name
|
|
93
|
+
join(home, '.openclaw', 'openclaw.json'),
|
|
94
|
+
join(home, '.config', 'openclaw', 'openclaw.json'),
|
|
95
|
+
join(home, '.moltbot', 'openclaw.json'), // Legacy "Moltbot" name
|
|
96
|
+
join(home, '.clawdbot', 'openclaw.json'), // Original "Clawdbot" name
|
|
77
97
|
];
|
|
78
98
|
for (const configPath of candidates) {
|
|
79
|
-
if (!
|
|
99
|
+
if (!existsSync(configPath))
|
|
80
100
|
continue;
|
|
81
101
|
try {
|
|
82
|
-
const data = JSON.parse(
|
|
83
|
-
const token = data
|
|
102
|
+
const data = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
103
|
+
const token = extractToken(data);
|
|
84
104
|
if (token)
|
|
85
105
|
return token;
|
|
86
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/tools/gateway.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"gateway.js","sourceRoot":"","sources":["../../src/tools/gateway.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nervepay",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "NervePay plugin for OpenClaw - Self-sovereign identity, vault, and orchestration",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -38,20 +38,20 @@
|
|
|
38
38
|
"url": "https://github.com/nervepay/nervepay-plugin"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@noble/ed25519": "^2.
|
|
42
|
-
"@noble/hashes": "^1.
|
|
43
|
-
"commander": "^
|
|
44
|
-
"inquirer": "^
|
|
45
|
-
"chalk": "^5.
|
|
46
|
-
"open": "^10.
|
|
41
|
+
"@noble/ed25519": "^2.2.0",
|
|
42
|
+
"@noble/hashes": "^1.7.0",
|
|
43
|
+
"commander": "^13.1.0",
|
|
44
|
+
"inquirer": "^12.4.0",
|
|
45
|
+
"chalk": "^5.4.1",
|
|
46
|
+
"open": "^10.1.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"openclaw": ">=1.0.0"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@types/node": "^22.
|
|
53
|
-
"typescript": "^5.
|
|
54
|
-
"vitest": "^
|
|
52
|
+
"@types/node": "^22.13.0",
|
|
53
|
+
"typescript": "^5.7.3",
|
|
54
|
+
"vitest": "^3.0.0"
|
|
55
55
|
},
|
|
56
56
|
"engines": {
|
|
57
57
|
"node": ">=22.0.0"
|