nervepay 1.1.2 → 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 +273 -117
- 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) {
|
|
@@ -214,13 +291,16 @@ program
|
|
|
214
291
|
.description('Quick pair gateway using a dashboard pairing code')
|
|
215
292
|
.requiredOption('--code <code>', '6-character pairing code from NervePay dashboard')
|
|
216
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')
|
|
217
297
|
.action(async (options) => {
|
|
218
298
|
console.log(chalk.cyan('\n🔗 NervePay Quick Pair\n'));
|
|
219
299
|
console.log(chalk.gray(' Code:'), chalk.white(options.code));
|
|
220
300
|
|
|
221
301
|
try {
|
|
222
|
-
// Step 1: Load existing credentials or
|
|
223
|
-
let agentDid, privateKey, isNew = false;
|
|
302
|
+
// Step 1: Load existing credentials or create new identity
|
|
303
|
+
let agentDid, privateKey, mnemonic, claimUrl, sessionId, isNew = false;
|
|
224
304
|
|
|
225
305
|
try {
|
|
226
306
|
const config = await loadConfig();
|
|
@@ -230,52 +310,98 @@ program
|
|
|
230
310
|
console.log(chalk.gray(' DID:'), agentDid);
|
|
231
311
|
} catch {
|
|
232
312
|
// No existing config — create a new pending identity
|
|
233
|
-
console.log(chalk.cyan(' No existing identity found, creating one
|
|
313
|
+
console.log(chalk.cyan(' No existing identity found, creating one...\n'));
|
|
234
314
|
const tempClient = new NervePayClient({ apiUrl: options.apiUrl });
|
|
235
315
|
const reg = await identity.registerPendingIdentity(tempClient, {
|
|
236
|
-
name:
|
|
316
|
+
name: options.name,
|
|
237
317
|
description: 'Gateway operator',
|
|
238
318
|
});
|
|
239
319
|
agentDid = reg.did;
|
|
240
320
|
privateKey = reg.private_key;
|
|
321
|
+
mnemonic = reg.mnemonic;
|
|
322
|
+
claimUrl = reg.claim_url;
|
|
323
|
+
sessionId = reg.session_id;
|
|
241
324
|
isNew = true;
|
|
242
|
-
console.log(chalk.green('✓ Agent identity created'));
|
|
325
|
+
console.log(chalk.green(' ✓ Agent identity created'));
|
|
243
326
|
console.log(chalk.gray(' DID:'), agentDid);
|
|
244
|
-
|
|
245
|
-
|
|
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
|
+
}
|
|
246
367
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
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'));
|
|
250
374
|
}
|
|
251
375
|
}
|
|
252
376
|
|
|
253
|
-
// Step 2: Read gateway config
|
|
254
|
-
console.log(chalk.cyan('
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
let
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
const
|
|
263
|
-
gatewayUrl =
|
|
264
|
-
gatewayToken =
|
|
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;
|
|
265
389
|
}
|
|
266
390
|
|
|
267
|
-
if
|
|
268
|
-
|
|
391
|
+
// Default URL if we have a token but no URL
|
|
392
|
+
if (gatewayToken && !gatewayUrl) {
|
|
393
|
+
gatewayUrl = 'http://127.0.0.1:18789';
|
|
269
394
|
}
|
|
270
395
|
|
|
271
396
|
if (!gatewayToken) {
|
|
272
397
|
console.error(chalk.red('\n❌ Could not find gateway token'));
|
|
273
|
-
console.error(chalk.yellow('
|
|
274
|
-
console.error(chalk.
|
|
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'));
|
|
275
402
|
process.exit(1);
|
|
276
403
|
}
|
|
277
404
|
|
|
278
|
-
gatewayUrl = gatewayUrl || 'ws://127.0.0.1:18789';
|
|
279
405
|
console.log(chalk.green('✓ Gateway found'));
|
|
280
406
|
console.log(chalk.gray(' URL:'), gatewayUrl);
|
|
281
407
|
|
|
@@ -291,7 +417,7 @@ program
|
|
|
291
417
|
pairing_code: options.code,
|
|
292
418
|
gateway_url: gatewayUrl,
|
|
293
419
|
gateway_token: gatewayToken,
|
|
294
|
-
gateway_name:
|
|
420
|
+
gateway_name: options.name,
|
|
295
421
|
});
|
|
296
422
|
|
|
297
423
|
console.log(chalk.green('\n✅ Pairing complete!'));
|
|
@@ -307,23 +433,38 @@ program
|
|
|
307
433
|
await mkdir(join(homedir(), '.nervepay'), { recursive: true });
|
|
308
434
|
await writeFile(
|
|
309
435
|
NERVEPAY_CREDS_PATH,
|
|
310
|
-
JSON.stringify({
|
|
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)
|
|
311
443
|
);
|
|
444
|
+
console.log(chalk.green(' ✓ Credentials saved to ~/.nervepay/credentials.json'));
|
|
312
445
|
|
|
313
|
-
// Update OpenClaw config
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
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/
|
|
318
467
|
}
|
|
319
|
-
openclawConfig.plugins.entries.nervepay.config = {
|
|
320
|
-
...openclawConfig.plugins.entries.nervepay.config,
|
|
321
|
-
apiUrl: options.apiUrl,
|
|
322
|
-
agentDid,
|
|
323
|
-
privateKey,
|
|
324
|
-
};
|
|
325
|
-
await writeFile(OPENCLAW_CONFIG_PATH, JSON.stringify(openclawConfig, null, 2));
|
|
326
|
-
console.log(chalk.green(' ✓ Credentials saved to ~/.nervepay/credentials.json'));
|
|
327
468
|
} catch {
|
|
328
469
|
// Non-fatal — credentials shown above
|
|
329
470
|
}
|
|
@@ -429,25 +570,40 @@ program
|
|
|
429
570
|
// ============================================================================
|
|
430
571
|
|
|
431
572
|
async function loadConfig() {
|
|
573
|
+
// Try OpenClaw config first (checks env var, standard paths, legacy paths)
|
|
432
574
|
try {
|
|
433
|
-
const
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
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
|
+
}
|
|
440
587
|
}
|
|
588
|
+
} catch {
|
|
589
|
+
// Config not found or invalid — fall through to backup
|
|
590
|
+
}
|
|
441
591
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
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
|
|
450
604
|
}
|
|
605
|
+
|
|
606
|
+
throw new Error('No NervePay credentials found. Run: nervepay setup');
|
|
451
607
|
}
|
|
452
608
|
|
|
453
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"
|