nervepay 1.5.0 → 1.5.2
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 +202 -32
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +201 -15
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/bin/nervepay-cli.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import { readFile, writeFile, mkdir } from 'fs/promises';
|
|
8
8
|
import { existsSync } from 'fs';
|
|
9
|
-
import { homedir } from 'os';
|
|
9
|
+
import { homedir, networkInterfaces } from 'os';
|
|
10
10
|
import { join, dirname } from 'path';
|
|
11
11
|
import { fileURLToPath } from 'url';
|
|
12
12
|
import { Command } from 'commander';
|
|
@@ -97,25 +97,162 @@ async function readOpenClawConfig() {
|
|
|
97
97
|
catch { return {}; }
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
function isLocalHost(host) {
|
|
101
|
+
const normalized = String(host || '').trim().toLowerCase();
|
|
102
|
+
if (!normalized) return true;
|
|
103
|
+
if (
|
|
104
|
+
normalized === 'localhost' ||
|
|
105
|
+
normalized === '0.0.0.0' ||
|
|
106
|
+
normalized === '::' ||
|
|
107
|
+
normalized === '::1'
|
|
108
|
+
) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
if (normalized.startsWith('127.')) return true;
|
|
112
|
+
if (normalized.startsWith('fe80:') || normalized.startsWith('fc') || normalized.startsWith('fd')) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function isPrivateIpv4(ip) {
|
|
119
|
+
const parts = String(ip || '').split('.').map((part) => Number(part));
|
|
120
|
+
if (parts.length !== 4 || parts.some((part) => Number.isNaN(part) || part < 0 || part > 255)) {
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
if (parts[0] === 10 || parts[0] === 127) return true;
|
|
124
|
+
if (parts[0] === 192 && parts[1] === 168) return true;
|
|
125
|
+
if (parts[0] === 169 && parts[1] === 254) return true;
|
|
126
|
+
if (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31) return true;
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function normalizeHostCandidate(raw) {
|
|
131
|
+
if (typeof raw !== 'string') return null;
|
|
132
|
+
const value = raw.trim();
|
|
133
|
+
if (!value) return null;
|
|
134
|
+
|
|
135
|
+
try {
|
|
136
|
+
if (value.includes('://')) {
|
|
137
|
+
return new URL(value).hostname || null;
|
|
138
|
+
}
|
|
139
|
+
} catch {
|
|
140
|
+
// Fall back to plain host parsing.
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
if (value.startsWith('[') && value.includes(']')) {
|
|
144
|
+
return value.slice(1, value.indexOf(']'));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
const colonCount = (value.match(/:/g) || []).length;
|
|
148
|
+
if (colonCount === 1) {
|
|
149
|
+
const [host] = value.split(':');
|
|
150
|
+
return host || null;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return value;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
function parseHostFromBind(bindValue) {
|
|
157
|
+
if (typeof bindValue !== 'string') return null;
|
|
158
|
+
const bind = bindValue.trim();
|
|
159
|
+
if (!bind || bind.startsWith(':')) return null;
|
|
160
|
+
return normalizeHostCandidate(bind);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
function formatHostForUrl(host) {
|
|
164
|
+
return host.includes(':') ? `[${host}]` : host;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
function detectServerIp() {
|
|
168
|
+
const envIp =
|
|
169
|
+
process.env.OPENCLAW_PUBLIC_IP ||
|
|
170
|
+
process.env.NERVEPAY_GATEWAY_PUBLIC_IP ||
|
|
171
|
+
process.env.NERVEPAY_PUBLIC_IP;
|
|
172
|
+
if (envIp && envIp.trim()) return envIp.trim();
|
|
173
|
+
|
|
174
|
+
const ifaces = networkInterfaces();
|
|
175
|
+
const publicIpv4 = [];
|
|
176
|
+
const privateIpv4 = [];
|
|
177
|
+
|
|
178
|
+
for (const entries of Object.values(ifaces)) {
|
|
179
|
+
for (const entry of entries || []) {
|
|
180
|
+
const family = typeof entry.family === 'string' ? entry.family : `IPv${entry.family}`;
|
|
181
|
+
if (family !== 'IPv4' || entry.internal) continue;
|
|
182
|
+
if (isPrivateIpv4(entry.address)) privateIpv4.push(entry.address);
|
|
183
|
+
else publicIpv4.push(entry.address);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
return publicIpv4[0] || privateIpv4[0] || null;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
function buildGatewayUrl({ scheme, host, port }) {
|
|
191
|
+
return `${scheme}://${formatHostForUrl(host)}:${port}`;
|
|
192
|
+
}
|
|
193
|
+
|
|
100
194
|
function extractGatewayConfig(config) {
|
|
101
|
-
let
|
|
195
|
+
let connectUrl = null;
|
|
196
|
+
let publicUrl = null;
|
|
102
197
|
let token = null;
|
|
198
|
+
let warning = null;
|
|
199
|
+
|
|
200
|
+
const mode = config?.gateway?.mode;
|
|
201
|
+
const port = Number(config?.gateway?.port || config?.port || process.env.OPENCLAW_GATEWAY_PORT || 18789);
|
|
202
|
+
const scheme = config?.gateway?.tls?.enabled ? 'https' : 'http';
|
|
203
|
+
const bindHost = parseHostFromBind(config?.gateway?.bind || config?.bind);
|
|
204
|
+
const configuredHost =
|
|
205
|
+
normalizeHostCandidate(config?.gateway?.host) ||
|
|
206
|
+
normalizeHostCandidate(config?.host) ||
|
|
207
|
+
bindHost ||
|
|
208
|
+
'127.0.0.1';
|
|
209
|
+
|
|
210
|
+
if (mode === 'remote' && config?.gateway?.remote?.url) {
|
|
211
|
+
connectUrl = config.gateway.remote.url;
|
|
212
|
+
publicUrl = config.gateway.remote.url;
|
|
213
|
+
token = config.gateway.remote.token || token;
|
|
214
|
+
} else {
|
|
215
|
+
let localConnectHost = configuredHost;
|
|
216
|
+
if (localConnectHost === '0.0.0.0' || localConnectHost === '::') {
|
|
217
|
+
localConnectHost = '127.0.0.1';
|
|
218
|
+
}
|
|
219
|
+
connectUrl = buildGatewayUrl({ scheme, host: localConnectHost, port });
|
|
220
|
+
token = config?.gateway?.auth?.token || config?.auth?.token || config?.token || token;
|
|
221
|
+
}
|
|
103
222
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
223
|
+
const explicitPublic =
|
|
224
|
+
process.env.OPENCLAW_GATEWAY_URL ||
|
|
225
|
+
process.env.NERVEPAY_GATEWAY_URL ||
|
|
226
|
+
process.env.OPENCLAW_PUBLIC_URL ||
|
|
227
|
+
process.env.NERVEPAY_PUBLIC_URL ||
|
|
228
|
+
config?.gateway?.publicUrl ||
|
|
229
|
+
config?.gateway?.public_url ||
|
|
230
|
+
config?.gateway?.url ||
|
|
231
|
+
config?.publicUrl ||
|
|
232
|
+
config?.public_url ||
|
|
233
|
+
config?.url;
|
|
234
|
+
|
|
235
|
+
if (typeof explicitPublic === 'string' && explicitPublic.trim()) {
|
|
236
|
+
publicUrl = explicitPublic.trim();
|
|
237
|
+
} else if (!publicUrl) {
|
|
238
|
+
if (!isLocalHost(configuredHost)) {
|
|
239
|
+
publicUrl = buildGatewayUrl({ scheme, host: configuredHost, port });
|
|
240
|
+
} else {
|
|
241
|
+
const detectedIp = detectServerIp();
|
|
242
|
+
if (detectedIp) {
|
|
243
|
+
publicUrl = buildGatewayUrl({ scheme, host: detectedIp, port });
|
|
244
|
+
warning =
|
|
245
|
+
'Using detected non-loopback server IP. Set OPENCLAW_GATEWAY_URL if your public address is different.';
|
|
246
|
+
}
|
|
247
|
+
}
|
|
111
248
|
}
|
|
112
249
|
|
|
113
|
-
// Environment
|
|
114
|
-
if (process.env.OPENCLAW_GATEWAY_TOKEN) token =
|
|
115
|
-
|
|
116
|
-
|
|
250
|
+
// Environment token overrides should win.
|
|
251
|
+
if (process.env.OPENCLAW_GATEWAY_TOKEN) token = process.env.OPENCLAW_GATEWAY_TOKEN;
|
|
252
|
+
|
|
253
|
+
const url = publicUrl || connectUrl;
|
|
117
254
|
|
|
118
|
-
return { url, token };
|
|
255
|
+
return { url, publicUrl, connectUrl, token, warning };
|
|
119
256
|
}
|
|
120
257
|
|
|
121
258
|
async function loadConfig() {
|
|
@@ -254,8 +391,14 @@ program
|
|
|
254
391
|
field(' Path', ocPath);
|
|
255
392
|
const oc = await readOpenClawConfig();
|
|
256
393
|
const gw = extractGatewayConfig(oc);
|
|
257
|
-
if (gw.
|
|
394
|
+
if (gw.publicUrl && gw.connectUrl && gw.publicUrl !== gw.connectUrl) {
|
|
395
|
+
field(' Gateway (public)', gw.publicUrl);
|
|
396
|
+
field(' Gateway (connect)', gw.connectUrl);
|
|
397
|
+
} else if (gw.url) {
|
|
398
|
+
field(' Gateway', gw.url);
|
|
399
|
+
}
|
|
258
400
|
if (gw.token) field(' Token', gw.token.slice(0, 12) + '...');
|
|
401
|
+
if (gw.warning) field(' Gateway note', gw.warning);
|
|
259
402
|
} else {
|
|
260
403
|
logWarn('No OpenClaw config found');
|
|
261
404
|
}
|
|
@@ -299,11 +442,18 @@ program
|
|
|
299
442
|
const openclawConfig = await readOpenClawConfig();
|
|
300
443
|
const configPath = findOpenClawConfigPath();
|
|
301
444
|
const gw = extractGatewayConfig(openclawConfig);
|
|
302
|
-
let
|
|
445
|
+
let gatewayConnectUrl = options.gatewayUrl || gw.connectUrl || gw.url;
|
|
446
|
+
let gatewayPublicUrl = options.gatewayUrl || gw.publicUrl || gw.url || gatewayConnectUrl;
|
|
303
447
|
let gatewayToken = options.gatewayToken || gw.token;
|
|
304
448
|
|
|
305
|
-
if (
|
|
306
|
-
logOk(`Found OpenClaw gateway: ${
|
|
449
|
+
if (gatewayConnectUrl) {
|
|
450
|
+
logOk(`Found OpenClaw gateway: ${gatewayConnectUrl}`);
|
|
451
|
+
if (gatewayPublicUrl && gatewayPublicUrl !== gatewayConnectUrl) {
|
|
452
|
+
field(' Public URL for NervePay', gatewayPublicUrl);
|
|
453
|
+
}
|
|
454
|
+
if (gw.warning) {
|
|
455
|
+
logWarn(gw.warning);
|
|
456
|
+
}
|
|
307
457
|
} else {
|
|
308
458
|
logWarn('No OpenClaw gateway detected');
|
|
309
459
|
log(dim('You can pair later with:'), info('nervepay pair'));
|
|
@@ -406,11 +556,9 @@ program
|
|
|
406
556
|
}
|
|
407
557
|
}
|
|
408
558
|
|
|
409
|
-
const client = new NervePayClient({ apiUrl, agentDid, privateKey });
|
|
410
|
-
|
|
411
559
|
// Gateway pairing via device node protocol
|
|
412
560
|
let paired = false;
|
|
413
|
-
if (
|
|
561
|
+
if (gatewayConnectUrl && gatewayToken) {
|
|
414
562
|
console.log();
|
|
415
563
|
logInfo('Pairing gateway via device node protocol...');
|
|
416
564
|
try {
|
|
@@ -418,7 +566,8 @@ program
|
|
|
418
566
|
agentDid,
|
|
419
567
|
privateKey,
|
|
420
568
|
apiUrl,
|
|
421
|
-
gatewayUrl,
|
|
569
|
+
gatewayUrl: gatewayConnectUrl,
|
|
570
|
+
gatewayPublicUrl: gatewayPublicUrl || gatewayConnectUrl,
|
|
422
571
|
gatewayToken,
|
|
423
572
|
gatewayName: 'OpenClaw Gateway',
|
|
424
573
|
timeoutSeconds: 300,
|
|
@@ -441,7 +590,7 @@ program
|
|
|
441
590
|
logOk(bold('Setup complete'));
|
|
442
591
|
console.log();
|
|
443
592
|
|
|
444
|
-
if (!
|
|
593
|
+
if (!gatewayConnectUrl || !paired) {
|
|
445
594
|
log(dim('Next:'), info('nervepay pair'));
|
|
446
595
|
} else {
|
|
447
596
|
log(dim('Next:'), info('nervepay whoami'));
|
|
@@ -566,12 +715,24 @@ function attemptConnect(WebSocket, wsUrl, ctx) {
|
|
|
566
715
|
*
|
|
567
716
|
* Returns { gateway_id, device_id } on success, throws on failure.
|
|
568
717
|
*/
|
|
569
|
-
async function performDeviceNodePairing({
|
|
718
|
+
async function performDeviceNodePairing({
|
|
719
|
+
agentDid,
|
|
720
|
+
privateKey,
|
|
721
|
+
apiUrl,
|
|
722
|
+
gatewayUrl,
|
|
723
|
+
gatewayPublicUrl,
|
|
724
|
+
gatewayToken,
|
|
725
|
+
gatewayName,
|
|
726
|
+
timeoutSeconds = 300,
|
|
727
|
+
}) {
|
|
570
728
|
const { signRawBytes, deriveDeviceId, getPublicKeyFromPrivate, decodeBase58 } =
|
|
571
729
|
await import('../dist/utils/crypto.js');
|
|
572
730
|
|
|
573
731
|
const wsUrl = httpToWs(gatewayUrl);
|
|
574
732
|
field(' Gateway', wsUrl);
|
|
733
|
+
if (gatewayPublicUrl && gatewayPublicUrl !== gatewayUrl) {
|
|
734
|
+
field(' Public URL', gatewayPublicUrl);
|
|
735
|
+
}
|
|
575
736
|
|
|
576
737
|
// Device identity
|
|
577
738
|
const publicKeyBase58 = await getPublicKeyFromPrivate(privateKey);
|
|
@@ -638,7 +799,7 @@ async function performDeviceNodePairing({ agentDid, privateKey, apiUrl, gatewayU
|
|
|
638
799
|
const apiResult = await gateway.completeDevicePairing(client, {
|
|
639
800
|
device_token: gatewayToken,
|
|
640
801
|
device_id: deviceId,
|
|
641
|
-
gateway_url: gatewayUrl,
|
|
802
|
+
gateway_url: gatewayPublicUrl || gatewayUrl,
|
|
642
803
|
gateway_name: gatewayName || 'OpenClaw Gateway',
|
|
643
804
|
});
|
|
644
805
|
|
|
@@ -662,23 +823,29 @@ async function deviceNodePairing(options) {
|
|
|
662
823
|
logOk('Agent loaded');
|
|
663
824
|
field(' DID', agentDid);
|
|
664
825
|
|
|
665
|
-
// Resolve gateway
|
|
666
|
-
let
|
|
826
|
+
// Resolve gateway URLs and token
|
|
827
|
+
let gatewayConnectUrl = options.gatewayUrl;
|
|
828
|
+
let gatewayPublicUrl = options.gatewayUrl;
|
|
667
829
|
let gatewayToken = options.gatewayToken;
|
|
668
|
-
if (!
|
|
830
|
+
if (!gatewayConnectUrl || !gatewayToken || !gatewayPublicUrl) {
|
|
669
831
|
const oc = await readOpenClawConfig();
|
|
670
832
|
const gwConf = extractGatewayConfig(oc);
|
|
671
|
-
|
|
833
|
+
gatewayConnectUrl = gatewayConnectUrl || gwConf.connectUrl || gwConf.url;
|
|
834
|
+
gatewayPublicUrl = gatewayPublicUrl || gwConf.publicUrl || gwConf.url || gatewayConnectUrl;
|
|
672
835
|
gatewayToken = gatewayToken || gwConf.token;
|
|
836
|
+
if (gwConf.warning) {
|
|
837
|
+
logWarn(gwConf.warning);
|
|
838
|
+
}
|
|
673
839
|
}
|
|
674
|
-
if (!
|
|
840
|
+
if (!gatewayConnectUrl) die('No gateway URL found', 'Use: nervepay pair --gateway-url <url>');
|
|
675
841
|
if (!gatewayToken) die('No gateway token found', 'Use: nervepay pair --gateway-token <token>');
|
|
676
842
|
|
|
677
843
|
const result = await performDeviceNodePairing({
|
|
678
844
|
agentDid,
|
|
679
845
|
privateKey,
|
|
680
846
|
apiUrl: options.apiUrl || apiUrl,
|
|
681
|
-
gatewayUrl,
|
|
847
|
+
gatewayUrl: gatewayConnectUrl,
|
|
848
|
+
gatewayPublicUrl: gatewayPublicUrl || gatewayConnectUrl,
|
|
682
849
|
gatewayToken,
|
|
683
850
|
gatewayName: options.name,
|
|
684
851
|
timeoutSeconds: parseInt(options.timeout, 10),
|
|
@@ -795,8 +962,11 @@ async function legacyCodePairing(options) {
|
|
|
795
962
|
if (!gatewayUrl || !gatewayToken) {
|
|
796
963
|
const oc = await readOpenClawConfig();
|
|
797
964
|
const gw = extractGatewayConfig(oc);
|
|
798
|
-
gatewayUrl = gatewayUrl || gw.url;
|
|
965
|
+
gatewayUrl = gatewayUrl || gw.publicUrl || gw.url;
|
|
799
966
|
gatewayToken = gatewayToken || gw.token;
|
|
967
|
+
if (gw.warning) {
|
|
968
|
+
logWarn(gw.warning);
|
|
969
|
+
}
|
|
800
970
|
}
|
|
801
971
|
|
|
802
972
|
if (!gatewayToken) die('No gateway token found', 'Use: --gateway-token <token>');
|
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;AAwhBH;;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,CA6RrH"}
|
package/dist/setup.js
CHANGED
|
@@ -41,18 +41,46 @@ async function promptYesNo(rl, question, defaultValue = false) {
|
|
|
41
41
|
/**
|
|
42
42
|
* Find OpenClaw config path
|
|
43
43
|
*/
|
|
44
|
-
function
|
|
45
|
-
|
|
46
|
-
if (
|
|
47
|
-
return
|
|
44
|
+
function expandHomePath(inputPath) {
|
|
45
|
+
const trimmed = inputPath.trim();
|
|
46
|
+
if (trimmed === '~') {
|
|
47
|
+
return os.homedir();
|
|
48
|
+
}
|
|
49
|
+
if (trimmed.startsWith('~/')) {
|
|
50
|
+
return path.join(os.homedir(), trimmed.slice(2));
|
|
48
51
|
}
|
|
52
|
+
return trimmed;
|
|
53
|
+
}
|
|
54
|
+
function findOpenClawConfig() {
|
|
49
55
|
const home = os.homedir();
|
|
50
|
-
const candidates = [
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
const candidates = [];
|
|
57
|
+
const seen = new Set();
|
|
58
|
+
const addCandidate = (candidate) => {
|
|
59
|
+
if (!candidate)
|
|
60
|
+
return;
|
|
61
|
+
const expanded = expandHomePath(candidate);
|
|
62
|
+
if (!expanded || seen.has(expanded))
|
|
63
|
+
return;
|
|
64
|
+
seen.add(expanded);
|
|
65
|
+
candidates.push(expanded);
|
|
66
|
+
};
|
|
67
|
+
// OpenClaw docs: explicit config path has highest priority.
|
|
68
|
+
addCandidate(process.env.OPENCLAW_CONFIG_PATH);
|
|
69
|
+
// OpenClaw docs: config is stored in the state dir as <stateDir>/openclaw.json.
|
|
70
|
+
if (process.env.OPENCLAW_STATE_DIR) {
|
|
71
|
+
addCandidate(path.join(expandHomePath(process.env.OPENCLAW_STATE_DIR), 'openclaw.json'));
|
|
72
|
+
}
|
|
73
|
+
// OpenClaw docs: non-default profiles use ~/.openclaw-<profile>/openclaw.json.
|
|
74
|
+
const profile = process.env.OPENCLAW_PROFILE?.trim();
|
|
75
|
+
if (profile && profile !== 'default') {
|
|
76
|
+
addCandidate(path.join(home, `.openclaw-${profile}`, 'openclaw.json'));
|
|
77
|
+
}
|
|
78
|
+
// Standard defaults and compatibility fallbacks.
|
|
79
|
+
addCandidate(path.join(home, '.openclaw', 'openclaw.json'));
|
|
80
|
+
addCandidate(path.join(home, '.openclaw-dev', 'openclaw.json'));
|
|
81
|
+
addCandidate(path.join(home, '.config', 'openclaw', 'openclaw.json'));
|
|
82
|
+
addCandidate(path.join(home, '.moltbot', 'openclaw.json')); // Legacy "Moltbot" name
|
|
83
|
+
addCandidate(path.join(home, '.clawdbot', 'openclaw.json')); // Original "Clawdbot" name
|
|
56
84
|
for (const configPath of candidates) {
|
|
57
85
|
if (fs.existsSync(configPath)) {
|
|
58
86
|
return configPath;
|
|
@@ -60,6 +88,151 @@ function findOpenClawConfig() {
|
|
|
60
88
|
}
|
|
61
89
|
return null;
|
|
62
90
|
}
|
|
91
|
+
function isLocalHost(host) {
|
|
92
|
+
const normalized = host.trim().toLowerCase();
|
|
93
|
+
if (normalized === 'localhost' ||
|
|
94
|
+
normalized === '0.0.0.0' ||
|
|
95
|
+
normalized === '::' ||
|
|
96
|
+
normalized === '::1') {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
if (normalized.startsWith('127.')) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
if (normalized.startsWith('fe80:') || normalized.startsWith('fc') || normalized.startsWith('fd')) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
function isPrivateIpv4(ip) {
|
|
108
|
+
const parts = ip.split('.').map((part) => Number(part));
|
|
109
|
+
if (parts.length !== 4 || parts.some((part) => Number.isNaN(part) || part < 0 || part > 255)) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (parts[0] === 10 || parts[0] === 127)
|
|
113
|
+
return true;
|
|
114
|
+
if (parts[0] === 192 && parts[1] === 168)
|
|
115
|
+
return true;
|
|
116
|
+
if (parts[0] === 169 && parts[1] === 254)
|
|
117
|
+
return true;
|
|
118
|
+
if (parts[0] === 172 && parts[1] >= 16 && parts[1] <= 31)
|
|
119
|
+
return true;
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
function normalizeHostCandidate(raw) {
|
|
123
|
+
if (typeof raw !== 'string')
|
|
124
|
+
return null;
|
|
125
|
+
const value = raw.trim();
|
|
126
|
+
if (!value)
|
|
127
|
+
return null;
|
|
128
|
+
try {
|
|
129
|
+
if (value.includes('://')) {
|
|
130
|
+
const url = new URL(value);
|
|
131
|
+
return url.hostname || null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch {
|
|
135
|
+
// Keep trying with plain host parsing.
|
|
136
|
+
}
|
|
137
|
+
if (value.startsWith('[') && value.includes(']')) {
|
|
138
|
+
return value.slice(1, value.indexOf(']'));
|
|
139
|
+
}
|
|
140
|
+
const colonCount = (value.match(/:/g) || []).length;
|
|
141
|
+
if (colonCount === 1) {
|
|
142
|
+
const [host] = value.split(':');
|
|
143
|
+
return host || null;
|
|
144
|
+
}
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
function parseHostFromBind(bindValue) {
|
|
148
|
+
if (typeof bindValue !== 'string')
|
|
149
|
+
return null;
|
|
150
|
+
const bind = bindValue.trim();
|
|
151
|
+
if (!bind || bind.startsWith(':')) {
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
return normalizeHostCandidate(bind);
|
|
155
|
+
}
|
|
156
|
+
function formatHostForUrl(host) {
|
|
157
|
+
return host.includes(':') ? `[${host}]` : host;
|
|
158
|
+
}
|
|
159
|
+
function detectServerIp() {
|
|
160
|
+
const envIp = process.env.OPENCLAW_PUBLIC_IP ||
|
|
161
|
+
process.env.NERVEPAY_GATEWAY_PUBLIC_IP ||
|
|
162
|
+
process.env.NERVEPAY_PUBLIC_IP;
|
|
163
|
+
if (envIp && envIp.trim()) {
|
|
164
|
+
return envIp.trim();
|
|
165
|
+
}
|
|
166
|
+
const interfaces = os.networkInterfaces();
|
|
167
|
+
const publicIpv4 = [];
|
|
168
|
+
const privateIpv4 = [];
|
|
169
|
+
for (const iface of Object.keys(interfaces)) {
|
|
170
|
+
const entries = interfaces[iface];
|
|
171
|
+
if (!entries)
|
|
172
|
+
continue;
|
|
173
|
+
for (const entry of entries) {
|
|
174
|
+
const family = typeof entry.family === 'string' ? entry.family : `IPv${entry.family}`;
|
|
175
|
+
if (family !== 'IPv4' || entry.internal)
|
|
176
|
+
continue;
|
|
177
|
+
if (isPrivateIpv4(entry.address)) {
|
|
178
|
+
privateIpv4.push(entry.address);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
publicIpv4.push(entry.address);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
return publicIpv4[0] || privateIpv4[0] || null;
|
|
186
|
+
}
|
|
187
|
+
function detectGatewayUrl(config) {
|
|
188
|
+
const envUrl = process.env.OPENCLAW_GATEWAY_URL ||
|
|
189
|
+
process.env.NERVEPAY_GATEWAY_URL ||
|
|
190
|
+
process.env.OPENCLAW_PUBLIC_URL ||
|
|
191
|
+
process.env.NERVEPAY_PUBLIC_URL;
|
|
192
|
+
if (envUrl && envUrl.trim()) {
|
|
193
|
+
return { url: envUrl.trim(), source: 'env' };
|
|
194
|
+
}
|
|
195
|
+
const remoteUrl = config?.gateway?.remote?.url;
|
|
196
|
+
if (typeof remoteUrl === 'string' && remoteUrl.trim()) {
|
|
197
|
+
return { url: remoteUrl.trim(), source: 'gateway.remote.url' };
|
|
198
|
+
}
|
|
199
|
+
const explicitUrl = config?.gateway?.publicUrl ||
|
|
200
|
+
config?.gateway?.public_url ||
|
|
201
|
+
config?.gateway?.url ||
|
|
202
|
+
config?.publicUrl ||
|
|
203
|
+
config?.public_url ||
|
|
204
|
+
config?.url;
|
|
205
|
+
if (typeof explicitUrl === 'string' && explicitUrl.trim()) {
|
|
206
|
+
return { url: explicitUrl.trim(), source: 'config.url' };
|
|
207
|
+
}
|
|
208
|
+
const port = config?.gateway?.port || config?.port || 18789;
|
|
209
|
+
const bindHost = parseHostFromBind(config?.gateway?.bind || config?.bind);
|
|
210
|
+
const configuredHost = normalizeHostCandidate(config?.gateway?.host) ||
|
|
211
|
+
normalizeHostCandidate(config?.host) ||
|
|
212
|
+
bindHost ||
|
|
213
|
+
'127.0.0.1';
|
|
214
|
+
const tlsEnabled = config?.gateway?.tls?.enabled === true;
|
|
215
|
+
const scheme = tlsEnabled ? 'https' : 'http';
|
|
216
|
+
if (!isLocalHost(configuredHost)) {
|
|
217
|
+
return {
|
|
218
|
+
url: `${scheme}://${formatHostForUrl(configuredHost)}:${port}`,
|
|
219
|
+
source: bindHost ? 'gateway.bind' : 'gateway.host',
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const detectedIp = detectServerIp();
|
|
223
|
+
if (detectedIp) {
|
|
224
|
+
return {
|
|
225
|
+
url: `${scheme}://${formatHostForUrl(detectedIp)}:${port}`,
|
|
226
|
+
source: 'detected-server-ip',
|
|
227
|
+
warning: 'Detected a non-loopback server IP automatically. If this gateway is behind NAT, set OPENCLAW_GATEWAY_URL to a public URL.',
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
url: `${scheme}://127.0.0.1:${port}`,
|
|
232
|
+
source: 'loopback-fallback',
|
|
233
|
+
warning: 'Could not detect a non-loopback server IP. Set OPENCLAW_GATEWAY_URL to your public gateway URL before pairing.',
|
|
234
|
+
};
|
|
235
|
+
}
|
|
63
236
|
/**
|
|
64
237
|
* Ensure gateway has correct tool permissions for NervePay
|
|
65
238
|
* NervePay needs file tools (read, write) for config management
|
|
@@ -374,16 +547,29 @@ export async function runSetup(apiUrl = 'https://api.nervepay.xyz', options = {}
|
|
|
374
547
|
if (configPath) {
|
|
375
548
|
try {
|
|
376
549
|
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
377
|
-
const
|
|
378
|
-
gatewayUrl =
|
|
379
|
-
console.log(` Auto-detected: ${gatewayUrl}`);
|
|
550
|
+
const detected = detectGatewayUrl(config);
|
|
551
|
+
gatewayUrl = detected.url;
|
|
552
|
+
console.log(` Auto-detected (${detected.source}): ${gatewayUrl}`);
|
|
553
|
+
if (detected.warning) {
|
|
554
|
+
console.log(` ⚠️ ${detected.warning}`);
|
|
555
|
+
}
|
|
380
556
|
}
|
|
381
557
|
catch {
|
|
382
|
-
|
|
558
|
+
const detected = detectGatewayUrl();
|
|
559
|
+
gatewayUrl = detected.url;
|
|
560
|
+
console.log(` Auto-detected (${detected.source}): ${gatewayUrl}`);
|
|
561
|
+
if (detected.warning) {
|
|
562
|
+
console.log(` ⚠️ ${detected.warning}`);
|
|
563
|
+
}
|
|
383
564
|
}
|
|
384
565
|
}
|
|
385
566
|
else {
|
|
386
|
-
|
|
567
|
+
const detected = detectGatewayUrl();
|
|
568
|
+
gatewayUrl = detected.url;
|
|
569
|
+
console.log(` Auto-detected (${detected.source}): ${gatewayUrl}`);
|
|
570
|
+
if (detected.warning) {
|
|
571
|
+
console.log(` ⚠️ ${detected.warning}`);
|
|
572
|
+
}
|
|
387
573
|
}
|
|
388
574
|
}
|
|
389
575
|
console.log('\n Sending pairing request...');
|
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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"}
|