libp2p-mesh 2026.6.26 → 2026.6.27
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/README.md +18 -8
- package/dist/src/setup-config.d.ts +1 -1
- package/dist/src/setup-config.js +8 -11
- package/dist/src/setup-config.js.map +1 -1
- package/dist/src/setup-wizard.d.ts +1 -1
- package/dist/src/setup-wizard.js +58 -18
- package/dist/src/setup-wizard.js.map +1 -1
- package/package.json +1 -1
- package/src/setup-config.ts +9 -13
- package/src/setup-wizard.ts +73 -19
package/README.md
CHANGED
|
@@ -108,12 +108,22 @@ openclaw gateway restart
|
|
|
108
108
|
openclaw libp2p-mesh setup
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
这个向导会写入 `plugins.entries["libp2p-mesh"].config`,不会写入 `channels["libp2p-mesh"]
|
|
111
|
+
这个向导会写入 `plugins.entries["libp2p-mesh"].config`,不会写入 `channels["libp2p-mesh"]`。
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
-
|
|
116
|
-
-
|
|
113
|
+
向导会把网络配置和入站投递分开处理。网络配置只决定当前节点如何发现或连接其他节点:
|
|
114
|
+
|
|
115
|
+
- 使用默认局域网发现。
|
|
116
|
+
- 添加 bootstrap / relay 地址用于跨网络连接。
|
|
117
|
+
- 将当前机器配置为公网 relay 节点。
|
|
118
|
+
|
|
119
|
+
入站投递配置决定收到 P2P 消息后显示到哪里:
|
|
120
|
+
|
|
121
|
+
- 从现有 channels 同步。
|
|
122
|
+
- 手动添加一个 target。
|
|
123
|
+
- 不把 P2P 消息投递到本地 channel。
|
|
124
|
+
- 暂时保持不变。
|
|
125
|
+
|
|
126
|
+
从现有 channels 同步时,某个 channel 的 target 可以直接留空,表示跳过该 channel。
|
|
117
127
|
|
|
118
128
|
入站目标示例:
|
|
119
129
|
|
|
@@ -241,7 +251,7 @@ Use the interactive setup command for advanced network settings and later edits:
|
|
|
241
251
|
openclaw libp2p-mesh setup
|
|
242
252
|
```
|
|
243
253
|
|
|
244
|
-
The wizard enables the plugin when needed and writes `plugins.entries["libp2p-mesh"].config`. On later runs, it edits the existing `libp2p-mesh` entry instead of replacing it blindly. It
|
|
254
|
+
The wizard enables the plugin when needed and writes `plugins.entries["libp2p-mesh"].config`. On later runs, it edits the existing `libp2p-mesh` entry instead of replacing it blindly. It separates network setup from inbound delivery: network setup chooses LAN discovery, bootstrap/relay addresses, or public relay-node parameters; inbound delivery chooses where received P2P messages should appear. It can sync inbound delivery targets from the currently configured channels, add or remove targets manually, preview the final JSON, and only writes after you confirm. When syncing from existing channels, leave a target empty to skip that channel.
|
|
245
255
|
|
|
246
256
|
The wizard uses OpenClaw's config writer, so the actual file is your normal OpenClaw config path, usually `~/.openclaw/openclaw.json`. You do not need to manually edit `openclaw.json`, and the wizard does not create `channels["libp2p-mesh"]`.
|
|
247
257
|
|
|
@@ -296,7 +306,7 @@ By default, the node picks a random TCP port. To use a fixed port:
|
|
|
296
306
|
|
|
297
307
|
### With Bootstrap Nodes (Cross-Network)
|
|
298
308
|
|
|
299
|
-
If peers are on different networks, run the setup wizard and choose cross-network
|
|
309
|
+
If peers are on different networks, run the setup wizard and choose cross-network setup. It prompts for bootstrap and optional relay multiaddrs, then writes:
|
|
300
310
|
|
|
301
311
|
```json
|
|
302
312
|
{
|
|
@@ -323,7 +333,7 @@ If peers are on different networks, run the setup wizard and choose cross-networ
|
|
|
323
333
|
|
|
324
334
|
### Multiple Inbound Targets
|
|
325
335
|
|
|
326
|
-
Inbound delivery is owned by the receiving OpenClaw instance. In the setup wizard, choose
|
|
336
|
+
Inbound delivery is owned by the receiving OpenClaw instance. In the setup wizard, choose where received P2P messages should appear: sync from existing channels, add a target manually, disable local-channel delivery, or leave the current setting unchanged. When syncing from existing channels, leave a target empty to skip that channel. The sender still sends to the receiver's peer ID or instance ID; the receiver decides which local channels display the incoming message.
|
|
327
337
|
|
|
328
338
|
Example wizard output with two targets:
|
|
329
339
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnnounceLogDetail, InboundTargetConfig, MeshConfig } from "./types.js";
|
|
2
2
|
export declare const LIBP2P_MESH_PLUGIN_ID = "libp2p-mesh";
|
|
3
3
|
export declare const DEFAULT_DELIVERY_ACK_TIMEOUT_MS = 15000;
|
|
4
|
-
export type SetupMode = "lan" | "cross-network" | "relay-node"
|
|
4
|
+
export type SetupMode = "lan" | "cross-network" | "relay-node";
|
|
5
5
|
export type OpenClawConfigLike = {
|
|
6
6
|
plugins?: {
|
|
7
7
|
entries?: Record<string, {
|
package/dist/src/setup-config.js
CHANGED
|
@@ -16,12 +16,6 @@ export function buildNetworkConfig(mode, options) {
|
|
|
16
16
|
discovery: "mdns",
|
|
17
17
|
deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
|
|
18
18
|
};
|
|
19
|
-
case "tools-only":
|
|
20
|
-
return {
|
|
21
|
-
discovery: "mdns",
|
|
22
|
-
inboundTargets: [],
|
|
23
|
-
deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
|
|
24
|
-
};
|
|
25
19
|
case "cross-network": {
|
|
26
20
|
const relayList = options?.crossNetwork?.relayList;
|
|
27
21
|
return {
|
|
@@ -108,14 +102,17 @@ export function listConfiguredChannels(config) {
|
|
|
108
102
|
export function planInboundTargetSync(existingTargets, configuredChannels) {
|
|
109
103
|
const targets = [];
|
|
110
104
|
const missingChannels = [];
|
|
111
|
-
const
|
|
105
|
+
const seenTargetKeys = new Set();
|
|
106
|
+
const coveredChannels = new Set();
|
|
112
107
|
for (const target of existingTargets) {
|
|
113
108
|
const channel = typeof target.channel === "string" ? target.channel.trim() : "";
|
|
114
109
|
const inboundTarget = typeof target.target === "string" ? target.target.trim() : "";
|
|
115
|
-
|
|
110
|
+
const targetKey = `${channel}\u0000${inboundTarget}`;
|
|
111
|
+
if (!channel || !inboundTarget || seenTargetKeys.has(targetKey)) {
|
|
116
112
|
continue;
|
|
117
113
|
}
|
|
118
|
-
|
|
114
|
+
seenTargetKeys.add(targetKey);
|
|
115
|
+
coveredChannels.add(channel);
|
|
119
116
|
targets.push({
|
|
120
117
|
...target,
|
|
121
118
|
channel,
|
|
@@ -124,10 +121,10 @@ export function planInboundTargetSync(existingTargets, configuredChannels) {
|
|
|
124
121
|
}
|
|
125
122
|
for (const configuredChannel of configuredChannels) {
|
|
126
123
|
const channel = typeof configuredChannel === "string" ? configuredChannel.trim() : "";
|
|
127
|
-
if (!channel || channel === LIBP2P_MESH_PLUGIN_ID ||
|
|
124
|
+
if (!channel || channel === LIBP2P_MESH_PLUGIN_ID || coveredChannels.has(channel)) {
|
|
128
125
|
continue;
|
|
129
126
|
}
|
|
130
|
-
|
|
127
|
+
coveredChannels.add(channel);
|
|
131
128
|
missingChannels.push(channel);
|
|
132
129
|
}
|
|
133
130
|
return { targets, missingChannels };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-config.js","sourceRoot":"","sources":["../../src/setup-config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAAC;AACnD,MAAM,CAAC,MAAM,+BAA+B,GAAG,KAAK,CAAC;AAsCrD,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,qBAAqB,CAAC,EAAE,MAAgC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA0B;IAC7D,OAAO,0BAA0B,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAe,EACf,OAGC;IAED,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK;YACR,OAAO;gBACL,SAAS,EAAE,MAAM;gBACjB,oBAAoB,EAAE,+BAA+B;aACtD,CAAC;QAEJ,KAAK,
|
|
1
|
+
{"version":3,"file":"setup-config.js","sourceRoot":"","sources":["../../src/setup-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { type OpenClawConfigLike } from "./setup-config.js";
|
|
|
3
3
|
export declare class SetupCancelledError extends Error {
|
|
4
4
|
constructor();
|
|
5
5
|
}
|
|
6
|
-
export type SetupPromptChoice = "continue" | "cancel" | "lan" | "cross-network" | "relay-node" | "
|
|
6
|
+
export type SetupPromptChoice = "continue" | "cancel" | "lan" | "cross-network" | "relay-node" | "add-targets" | "sync-from-channels" | "disable-inbound" | "skip-inbound" | "network-mode" | "inbound-targets" | "convert-legacy-inbound" | "keep-legacy-inbound" | "replace-legacy-inbound" | "add-target" | "edit-target" | "remove-target" | "finish-targets" | "preview-apply";
|
|
7
7
|
export type SetupPrompter = {
|
|
8
8
|
confirm(message: string, defaultValue?: boolean): Promise<boolean>;
|
|
9
9
|
select<T extends string>(message: string, choices: Array<{
|
package/dist/src/setup-wizard.js
CHANGED
|
@@ -51,11 +51,11 @@ async function runFirstConfigFlow(options) {
|
|
|
51
51
|
}
|
|
52
52
|
const mode = await selectSetupMode(options.prompter);
|
|
53
53
|
let pluginConfig = await buildNetworkConfigFromPrompts(mode, options.prompter);
|
|
54
|
-
const inboundChoice = await options.prompter.select("Configure
|
|
55
|
-
{ label: "Sync from
|
|
56
|
-
{ label: "Add
|
|
57
|
-
{ label: "
|
|
58
|
-
{ label: "
|
|
54
|
+
const inboundChoice = await options.prompter.select("Configure where received P2P messages should appear?", [
|
|
55
|
+
{ label: "Sync from existing channels", value: "sync-from-channels" },
|
|
56
|
+
{ label: "Add a target manually", value: "add-targets" },
|
|
57
|
+
{ label: "Do not receive P2P messages in local channels", value: "disable-inbound" },
|
|
58
|
+
{ label: "Leave unchanged for now", value: "skip-inbound" },
|
|
59
59
|
]);
|
|
60
60
|
switch (inboundChoice) {
|
|
61
61
|
case "sync-from-channels":
|
|
@@ -78,8 +78,8 @@ async function runExistingConfigFlow(existingConfig, options) {
|
|
|
78
78
|
options.prompter.print(formatCurrentConfig(pluginConfig));
|
|
79
79
|
const editChoice = await options.prompter.select("What do you want to edit?", [
|
|
80
80
|
{ label: "Sync inbound targets from channels", value: "sync-from-channels" },
|
|
81
|
-
{ label: "Network
|
|
82
|
-
{ label: "
|
|
81
|
+
{ label: "Network setup", value: "network-mode" },
|
|
82
|
+
{ label: "Where received P2P messages appear", value: "inbound-targets" },
|
|
83
83
|
{ label: "Preview and apply", value: "preview-apply" },
|
|
84
84
|
{ label: "Cancel", value: "cancel" },
|
|
85
85
|
]);
|
|
@@ -133,27 +133,64 @@ async function syncInboundTargetsFromConfiguredChannels(pluginConfig, options) {
|
|
|
133
133
|
options.prompter.print("All configured channels already have inbound targets.");
|
|
134
134
|
return setInboundTargets(pluginConfig, plan.targets);
|
|
135
135
|
}
|
|
136
|
+
options.prompter.print(formatInboundSyncPlan(plan));
|
|
136
137
|
let targets = plan.targets.map((target) => ({ ...target }));
|
|
138
|
+
const added = [];
|
|
139
|
+
const skipped = [];
|
|
137
140
|
for (const channel of plan.missingChannels) {
|
|
138
|
-
const target = await options.prompter.input(
|
|
141
|
+
const target = (await options.prompter.input(`${targetPromptForChannel(channel)} (leave empty to skip)`, { required: false })).trim();
|
|
142
|
+
if (!target) {
|
|
143
|
+
skipped.push(channel);
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
139
146
|
const addResult = addInboundTarget(targets, { channel, target });
|
|
140
147
|
if (!addResult.ok) {
|
|
141
148
|
options.prompter.print(addResult.error);
|
|
142
149
|
continue;
|
|
143
150
|
}
|
|
144
151
|
targets = addResult.targets;
|
|
152
|
+
added.push(addResult.added);
|
|
145
153
|
}
|
|
154
|
+
options.prompter.print(formatInboundSyncResult({ added, skipped }));
|
|
146
155
|
return setInboundTargets(pluginConfig, targets);
|
|
147
156
|
}
|
|
157
|
+
function formatInboundSyncPlan(plan) {
|
|
158
|
+
const alreadyConfigured = plan.targets.length > 0 ? plan.targets.map((target) => ` - ${formatInboundTargetLine(target)}`) : [" none"];
|
|
159
|
+
const missingChannels = plan.missingChannels.length > 0 ? plan.missingChannels.map((channel) => ` - ${channel}`) : [" none"];
|
|
160
|
+
return [
|
|
161
|
+
"Already configured:",
|
|
162
|
+
...alreadyConfigured,
|
|
163
|
+
"",
|
|
164
|
+
"Channels without inbound targets:",
|
|
165
|
+
...missingChannels,
|
|
166
|
+
"",
|
|
167
|
+
"Leave a target empty to skip that channel.",
|
|
168
|
+
].join("\n");
|
|
169
|
+
}
|
|
170
|
+
function formatInboundSyncResult(result) {
|
|
171
|
+
const lines = [];
|
|
172
|
+
if (result.added.length > 0) {
|
|
173
|
+
lines.push("Added:", ...result.added.map((target) => ` - ${formatInboundTargetLine(target)}`));
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
lines.push("No inbound targets were added.");
|
|
177
|
+
}
|
|
178
|
+
if (result.skipped.length > 0) {
|
|
179
|
+
lines.push("", "Skipped:", ...result.skipped.map((channel) => ` - ${channel}`));
|
|
180
|
+
}
|
|
181
|
+
return lines.join("\n");
|
|
182
|
+
}
|
|
183
|
+
function formatInboundTargetLine(target) {
|
|
184
|
+
return `${target.id ?? "(unnamed)"} ${target.channel} / ${target.target}`;
|
|
185
|
+
}
|
|
148
186
|
function hasLegacyOnlyInboundConfig(pluginConfig) {
|
|
149
187
|
return Boolean(pluginConfig.inboundChannel && pluginConfig.inboundTarget && !Array.isArray(pluginConfig.inboundTargets));
|
|
150
188
|
}
|
|
151
189
|
async function selectSetupMode(prompter) {
|
|
152
|
-
return prompter.select("Choose setup
|
|
153
|
-
{ label: "
|
|
154
|
-
{ label: "
|
|
155
|
-
{ label: "
|
|
156
|
-
{ label: "Tools only: no inbound delivery", value: "tools-only" },
|
|
190
|
+
return prompter.select("Choose network setup:", [
|
|
191
|
+
{ label: "Use default LAN discovery", value: "lan" },
|
|
192
|
+
{ label: "Add bootstrap / relay addresses for cross-network use", value: "cross-network" },
|
|
193
|
+
{ label: "Configure this machine as a public relay node", value: "relay-node" },
|
|
157
194
|
]);
|
|
158
195
|
}
|
|
159
196
|
async function buildNetworkConfigFromPrompts(mode, prompter) {
|
|
@@ -162,13 +199,13 @@ async function buildNetworkConfigFromPrompts(mode, prompter) {
|
|
|
162
199
|
return buildNetworkConfig("cross-network", {
|
|
163
200
|
crossNetwork: {
|
|
164
201
|
bootstrapList: await promptForAddressList(prompter, "Bootstrap multiaddr", "Add another bootstrap?"),
|
|
165
|
-
relayList: await promptForOptionalAddressList(prompter, "Relay multiaddr", "Add another relay?"),
|
|
202
|
+
relayList: await promptForOptionalAddressList(prompter, "Relay multiaddr (optional, leave empty to skip)", "Add another relay?"),
|
|
166
203
|
},
|
|
167
204
|
});
|
|
168
205
|
case "relay-node":
|
|
169
206
|
return buildNetworkConfig("relay-node", {
|
|
170
207
|
relayNode: {
|
|
171
|
-
listenAddrs: [await prompter.input("Listen address", { required: true })],
|
|
208
|
+
listenAddrs: [await prompter.input("Listen address", { defaultValue: "/ip4/0.0.0.0/tcp/4001", required: true })],
|
|
172
209
|
announceAddrs: [await prompter.input("Public announce address", { required: true })],
|
|
173
210
|
},
|
|
174
211
|
});
|
|
@@ -204,7 +241,7 @@ async function promptForInboundTargets(existingTargets, options, promptOptions)
|
|
|
204
241
|
: "add-target";
|
|
205
242
|
while (action === "add-target") {
|
|
206
243
|
const channel = await promptForChannel(options);
|
|
207
|
-
const target = await options.prompter.input(
|
|
244
|
+
const target = await options.prompter.input(targetPromptForChannel(channel), { required: true });
|
|
208
245
|
const addResult = addInboundTarget(targets, { channel, target });
|
|
209
246
|
if (addResult.ok) {
|
|
210
247
|
targets = addResult.targets;
|
|
@@ -249,7 +286,7 @@ async function promptForInboundTargetEdits(existingTargets, options) {
|
|
|
249
286
|
}
|
|
250
287
|
async function promptForOneInboundTarget(targets, options) {
|
|
251
288
|
const channel = await promptForChannel(options);
|
|
252
|
-
const target = await options.prompter.input(
|
|
289
|
+
const target = await options.prompter.input(targetPromptForChannel(channel), { required: true });
|
|
253
290
|
const addResult = addInboundTarget(targets, { channel, target });
|
|
254
291
|
if (addResult.ok) {
|
|
255
292
|
return addResult.targets;
|
|
@@ -264,7 +301,7 @@ async function promptForInboundTargetEdit(targets, options) {
|
|
|
264
301
|
}
|
|
265
302
|
const selectedIndex = await selectInboundTargetIndex(options.prompter, "Target to edit", targets);
|
|
266
303
|
const channel = await promptForChannel(options);
|
|
267
|
-
const target = await options.prompter.input(
|
|
304
|
+
const target = await options.prompter.input(targetPromptForChannel(channel), { required: true });
|
|
268
305
|
const duplicate = targets.some((existingTarget, index) => index !== selectedIndex && existingTarget.channel === channel && existingTarget.target === target);
|
|
269
306
|
if (duplicate) {
|
|
270
307
|
options.prompter.print(`inbound target already exists: ${channel} / ${target}`);
|
|
@@ -316,6 +353,9 @@ async function promptForChannel(options) {
|
|
|
316
353
|
}
|
|
317
354
|
return channel;
|
|
318
355
|
}
|
|
356
|
+
function targetPromptForChannel(channel) {
|
|
357
|
+
return `Target for ${channel}`;
|
|
358
|
+
}
|
|
319
359
|
function formatCurrentConfig(pluginConfig) {
|
|
320
360
|
const targets = pluginConfig.inboundTargets ?? [];
|
|
321
361
|
const targetLines = targets.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/setup-wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup-wizard.js","sourceRoot":"","sources":["../../src/setup-wizard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/setup-config.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { AnnounceLogDetail, InboundTargetConfig, MeshConfig } from "./types
|
|
|
3
3
|
export const LIBP2P_MESH_PLUGIN_ID = "libp2p-mesh";
|
|
4
4
|
export const DEFAULT_DELIVERY_ACK_TIMEOUT_MS = 15000;
|
|
5
5
|
|
|
6
|
-
export type SetupMode = "lan" | "cross-network" | "relay-node"
|
|
6
|
+
export type SetupMode = "lan" | "cross-network" | "relay-node";
|
|
7
7
|
|
|
8
8
|
export type OpenClawConfigLike = {
|
|
9
9
|
plugins?: {
|
|
@@ -65,13 +65,6 @@ export function buildNetworkConfig(
|
|
|
65
65
|
deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
|
|
66
66
|
};
|
|
67
67
|
|
|
68
|
-
case "tools-only":
|
|
69
|
-
return {
|
|
70
|
-
discovery: "mdns",
|
|
71
|
-
inboundTargets: [],
|
|
72
|
-
deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
|
|
73
|
-
};
|
|
74
|
-
|
|
75
68
|
case "cross-network": {
|
|
76
69
|
const relayList = options?.crossNetwork?.relayList;
|
|
77
70
|
return {
|
|
@@ -185,16 +178,19 @@ export function planInboundTargetSync(
|
|
|
185
178
|
): InboundTargetSyncPlan {
|
|
186
179
|
const targets: InboundTargetConfig[] = [];
|
|
187
180
|
const missingChannels: string[] = [];
|
|
188
|
-
const
|
|
181
|
+
const seenTargetKeys = new Set<string>();
|
|
182
|
+
const coveredChannels = new Set<string>();
|
|
189
183
|
|
|
190
184
|
for (const target of existingTargets) {
|
|
191
185
|
const channel = typeof target.channel === "string" ? target.channel.trim() : "";
|
|
192
186
|
const inboundTarget = typeof target.target === "string" ? target.target.trim() : "";
|
|
193
|
-
|
|
187
|
+
const targetKey = `${channel}\u0000${inboundTarget}`;
|
|
188
|
+
if (!channel || !inboundTarget || seenTargetKeys.has(targetKey)) {
|
|
194
189
|
continue;
|
|
195
190
|
}
|
|
196
191
|
|
|
197
|
-
|
|
192
|
+
seenTargetKeys.add(targetKey);
|
|
193
|
+
coveredChannels.add(channel);
|
|
198
194
|
targets.push({
|
|
199
195
|
...target,
|
|
200
196
|
channel,
|
|
@@ -204,11 +200,11 @@ export function planInboundTargetSync(
|
|
|
204
200
|
|
|
205
201
|
for (const configuredChannel of configuredChannels) {
|
|
206
202
|
const channel = typeof configuredChannel === "string" ? configuredChannel.trim() : "";
|
|
207
|
-
if (!channel || channel === LIBP2P_MESH_PLUGIN_ID ||
|
|
203
|
+
if (!channel || channel === LIBP2P_MESH_PLUGIN_ID || coveredChannels.has(channel)) {
|
|
208
204
|
continue;
|
|
209
205
|
}
|
|
210
206
|
|
|
211
|
-
|
|
207
|
+
coveredChannels.add(channel);
|
|
212
208
|
missingChannels.push(channel);
|
|
213
209
|
}
|
|
214
210
|
|
package/src/setup-wizard.ts
CHANGED
|
@@ -31,7 +31,6 @@ export type SetupPromptChoice =
|
|
|
31
31
|
| "lan"
|
|
32
32
|
| "cross-network"
|
|
33
33
|
| "relay-node"
|
|
34
|
-
| "tools-only"
|
|
35
34
|
| "add-targets"
|
|
36
35
|
| "sync-from-channels"
|
|
37
36
|
| "disable-inbound"
|
|
@@ -124,11 +123,11 @@ async function runFirstConfigFlow(options: RunSetupWizardOptions): Promise<MeshC
|
|
|
124
123
|
const mode = await selectSetupMode(options.prompter);
|
|
125
124
|
let pluginConfig = await buildNetworkConfigFromPrompts(mode, options.prompter);
|
|
126
125
|
|
|
127
|
-
const inboundChoice = await options.prompter.select("Configure
|
|
128
|
-
{ label: "Sync from
|
|
129
|
-
{ label: "Add
|
|
130
|
-
{ label: "
|
|
131
|
-
{ label: "
|
|
126
|
+
const inboundChoice = await options.prompter.select("Configure where received P2P messages should appear?", [
|
|
127
|
+
{ label: "Sync from existing channels", value: "sync-from-channels" },
|
|
128
|
+
{ label: "Add a target manually", value: "add-targets" },
|
|
129
|
+
{ label: "Do not receive P2P messages in local channels", value: "disable-inbound" },
|
|
130
|
+
{ label: "Leave unchanged for now", value: "skip-inbound" },
|
|
132
131
|
]);
|
|
133
132
|
|
|
134
133
|
switch (inboundChoice) {
|
|
@@ -158,8 +157,8 @@ async function runExistingConfigFlow(
|
|
|
158
157
|
options.prompter.print(formatCurrentConfig(pluginConfig));
|
|
159
158
|
const editChoice = await options.prompter.select("What do you want to edit?", [
|
|
160
159
|
{ label: "Sync inbound targets from channels", value: "sync-from-channels" },
|
|
161
|
-
{ label: "Network
|
|
162
|
-
{ label: "
|
|
160
|
+
{ label: "Network setup", value: "network-mode" },
|
|
161
|
+
{ label: "Where received P2P messages appear", value: "inbound-targets" },
|
|
163
162
|
{ label: "Preview and apply", value: "preview-apply" },
|
|
164
163
|
{ label: "Cancel", value: "cancel" },
|
|
165
164
|
]);
|
|
@@ -225,30 +224,77 @@ async function syncInboundTargetsFromConfiguredChannels(
|
|
|
225
224
|
return setInboundTargets(pluginConfig, plan.targets);
|
|
226
225
|
}
|
|
227
226
|
|
|
227
|
+
options.prompter.print(formatInboundSyncPlan(plan));
|
|
228
228
|
let targets = plan.targets.map((target) => ({ ...target }));
|
|
229
|
+
const added: InboundTargetConfig[] = [];
|
|
230
|
+
const skipped: string[] = [];
|
|
231
|
+
|
|
229
232
|
for (const channel of plan.missingChannels) {
|
|
230
|
-
const target = await options.prompter.input(
|
|
233
|
+
const target = (await options.prompter.input(`${targetPromptForChannel(channel)} (leave empty to skip)`, { required: false })).trim();
|
|
234
|
+
if (!target) {
|
|
235
|
+
skipped.push(channel);
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
|
|
231
239
|
const addResult = addInboundTarget(targets, { channel, target });
|
|
232
240
|
if (!addResult.ok) {
|
|
233
241
|
options.prompter.print(addResult.error);
|
|
234
242
|
continue;
|
|
235
243
|
}
|
|
236
244
|
targets = addResult.targets;
|
|
245
|
+
added.push(addResult.added);
|
|
237
246
|
}
|
|
238
247
|
|
|
248
|
+
options.prompter.print(formatInboundSyncResult({ added, skipped }));
|
|
239
249
|
return setInboundTargets(pluginConfig, targets);
|
|
240
250
|
}
|
|
241
251
|
|
|
252
|
+
function formatInboundSyncPlan(plan: { targets: InboundTargetConfig[]; missingChannels: string[] }): string {
|
|
253
|
+
const alreadyConfigured =
|
|
254
|
+
plan.targets.length > 0 ? plan.targets.map((target) => ` - ${formatInboundTargetLine(target)}`) : [" none"];
|
|
255
|
+
const missingChannels =
|
|
256
|
+
plan.missingChannels.length > 0 ? plan.missingChannels.map((channel) => ` - ${channel}`) : [" none"];
|
|
257
|
+
|
|
258
|
+
return [
|
|
259
|
+
"Already configured:",
|
|
260
|
+
...alreadyConfigured,
|
|
261
|
+
"",
|
|
262
|
+
"Channels without inbound targets:",
|
|
263
|
+
...missingChannels,
|
|
264
|
+
"",
|
|
265
|
+
"Leave a target empty to skip that channel.",
|
|
266
|
+
].join("\n");
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
function formatInboundSyncResult(result: { added: InboundTargetConfig[]; skipped: string[] }): string {
|
|
270
|
+
const lines: string[] = [];
|
|
271
|
+
|
|
272
|
+
if (result.added.length > 0) {
|
|
273
|
+
lines.push("Added:", ...result.added.map((target) => ` - ${formatInboundTargetLine(target)}`));
|
|
274
|
+
} else {
|
|
275
|
+
lines.push("No inbound targets were added.");
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
if (result.skipped.length > 0) {
|
|
279
|
+
lines.push("", "Skipped:", ...result.skipped.map((channel) => ` - ${channel}`));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
return lines.join("\n");
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
function formatInboundTargetLine(target: InboundTargetConfig): string {
|
|
286
|
+
return `${target.id ?? "(unnamed)"} ${target.channel} / ${target.target}`;
|
|
287
|
+
}
|
|
288
|
+
|
|
242
289
|
function hasLegacyOnlyInboundConfig(pluginConfig: MeshConfig): boolean {
|
|
243
290
|
return Boolean(pluginConfig.inboundChannel && pluginConfig.inboundTarget && !Array.isArray(pluginConfig.inboundTargets));
|
|
244
291
|
}
|
|
245
292
|
|
|
246
293
|
async function selectSetupMode(prompter: SetupPrompter): Promise<SetupMode> {
|
|
247
|
-
return prompter.select("Choose setup
|
|
248
|
-
{ label: "
|
|
249
|
-
{ label: "
|
|
250
|
-
{ label: "
|
|
251
|
-
{ label: "Tools only: no inbound delivery", value: "tools-only" },
|
|
294
|
+
return prompter.select("Choose network setup:", [
|
|
295
|
+
{ label: "Use default LAN discovery", value: "lan" },
|
|
296
|
+
{ label: "Add bootstrap / relay addresses for cross-network use", value: "cross-network" },
|
|
297
|
+
{ label: "Configure this machine as a public relay node", value: "relay-node" },
|
|
252
298
|
]);
|
|
253
299
|
}
|
|
254
300
|
|
|
@@ -258,13 +304,17 @@ async function buildNetworkConfigFromPrompts(mode: SetupMode, prompter: SetupPro
|
|
|
258
304
|
return buildNetworkConfig("cross-network", {
|
|
259
305
|
crossNetwork: {
|
|
260
306
|
bootstrapList: await promptForAddressList(prompter, "Bootstrap multiaddr", "Add another bootstrap?"),
|
|
261
|
-
relayList: await promptForOptionalAddressList(
|
|
307
|
+
relayList: await promptForOptionalAddressList(
|
|
308
|
+
prompter,
|
|
309
|
+
"Relay multiaddr (optional, leave empty to skip)",
|
|
310
|
+
"Add another relay?",
|
|
311
|
+
),
|
|
262
312
|
},
|
|
263
313
|
});
|
|
264
314
|
case "relay-node":
|
|
265
315
|
return buildNetworkConfig("relay-node", {
|
|
266
316
|
relayNode: {
|
|
267
|
-
listenAddrs: [await prompter.input("Listen address", { required: true })],
|
|
317
|
+
listenAddrs: [await prompter.input("Listen address", { defaultValue: "/ip4/0.0.0.0/tcp/4001", required: true })],
|
|
268
318
|
announceAddrs: [await prompter.input("Public announce address", { required: true })],
|
|
269
319
|
},
|
|
270
320
|
});
|
|
@@ -316,7 +366,7 @@ async function promptForInboundTargets(
|
|
|
316
366
|
|
|
317
367
|
while (action === "add-target") {
|
|
318
368
|
const channel = await promptForChannel(options);
|
|
319
|
-
const target = await options.prompter.input(
|
|
369
|
+
const target = await options.prompter.input(targetPromptForChannel(channel), { required: true });
|
|
320
370
|
const addResult = addInboundTarget(targets, { channel, target });
|
|
321
371
|
|
|
322
372
|
if (addResult.ok) {
|
|
@@ -377,7 +427,7 @@ async function promptForOneInboundTarget(
|
|
|
377
427
|
options: RunSetupWizardOptions,
|
|
378
428
|
): Promise<InboundTargetConfig[]> {
|
|
379
429
|
const channel = await promptForChannel(options);
|
|
380
|
-
const target = await options.prompter.input(
|
|
430
|
+
const target = await options.prompter.input(targetPromptForChannel(channel), { required: true });
|
|
381
431
|
const addResult = addInboundTarget(targets, { channel, target });
|
|
382
432
|
|
|
383
433
|
if (addResult.ok) {
|
|
@@ -399,7 +449,7 @@ async function promptForInboundTargetEdit(
|
|
|
399
449
|
|
|
400
450
|
const selectedIndex = await selectInboundTargetIndex(options.prompter, "Target to edit", targets);
|
|
401
451
|
const channel = await promptForChannel(options);
|
|
402
|
-
const target = await options.prompter.input(
|
|
452
|
+
const target = await options.prompter.input(targetPromptForChannel(channel), { required: true });
|
|
403
453
|
const duplicate = targets.some(
|
|
404
454
|
(existingTarget, index) => index !== selectedIndex && existingTarget.channel === channel && existingTarget.target === target,
|
|
405
455
|
);
|
|
@@ -477,6 +527,10 @@ async function promptForChannel(options: RunSetupWizardOptions): Promise<string>
|
|
|
477
527
|
return channel;
|
|
478
528
|
}
|
|
479
529
|
|
|
530
|
+
function targetPromptForChannel(channel: string): string {
|
|
531
|
+
return `Target for ${channel}`;
|
|
532
|
+
}
|
|
533
|
+
|
|
480
534
|
function formatCurrentConfig(pluginConfig: MeshConfig): string {
|
|
481
535
|
const targets = pluginConfig.inboundTargets ?? [];
|
|
482
536
|
const targetLines =
|