libp2p-mesh 2026.6.27 → 2026.6.28

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 CHANGED
@@ -7,7 +7,7 @@ P2P mesh network plugin for OpenClaw. Enables direct peer-to-peer communication
7
7
  - **LAN Discovery** — Auto-discovers peers on the same local network via mDNS (Bonjour/Avahi)
8
8
  - **Direct Messaging** — Send messages directly to another peer by its Peer ID
9
9
  - **Broadcast** — Publish messages to a shared topic, flood-fill forwarded across the mesh
10
- - **Bootstrap Mode** — Optional static bootstrap peer list for non-LAN scenarios
10
+ - **Bootstrap Entries** — Optional static bootstrap peer list for non-LAN scenarios
11
11
  - **WebSocket Transport** — Optional WebSocket support for NAT/firewall-friendly connections
12
12
  - **NAT Traversal** — Built-in AutoNAT + UPnP + Circuit Relay v2 + DCUtR for peers behind home routers / firewalls
13
13
  - **User Public Attributes** — Announce public tags and structured profile attributes so agents can dry-run and send to locally discovered instances by attribute
@@ -69,7 +69,6 @@ The default generated config shape is:
69
69
  "libp2p-mesh": {
70
70
  "enabled": true,
71
71
  "config": {
72
- "discovery": "mdns",
73
72
  "deliveryAckTimeoutMs": 15000
74
73
  }
75
74
  }
@@ -251,7 +250,7 @@ Use the interactive setup command for advanced network settings and later edits:
251
250
  openclaw libp2p-mesh setup
252
251
  ```
253
252
 
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.
253
+ 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. Network discovery is automatic: mDNS, DHT, NAT traversal, relay transport, and hole punching are enabled by default. Network setup only adds optional bootstrap/relay entry addresses or public relay-node parameters; inbound delivery chooses where received P2P messages should appear. After each edit action, the wizard previews the final JSON and only writes after you confirm. When syncing from existing channels, leave a target empty to skip that channel.
255
254
 
256
255
  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"]`.
257
256
 
@@ -272,7 +271,6 @@ For two computers on the same WiFi or Ethernet segment, no setup wizard is requi
272
271
  "libp2p-mesh": {
273
272
  "enabled": true,
274
273
  "config": {
275
- "discovery": "mdns",
276
274
  "deliveryAckTimeoutMs": 15000
277
275
  }
278
276
  }
@@ -281,7 +279,7 @@ For two computers on the same WiFi or Ethernet segment, no setup wizard is requi
281
279
  }
282
280
  ```
283
281
 
284
- This is sufficient for two computers on the same WiFi to discover each other.
282
+ This is sufficient for two computers on the same WiFi to discover each other. The runtime still enables mDNS and DHT automatically even when these fields are not written to `openclaw.json`.
285
283
 
286
284
  ### With Static Port (Optional)
287
285
 
@@ -294,7 +292,6 @@ By default, the node picks a random TCP port. To use a fixed port:
294
292
  "libp2p-mesh": {
295
293
  "enabled": true,
296
294
  "config": {
297
- "discovery": "mdns",
298
295
  "listenAddrs": ["/ip4/0.0.0.0/tcp/4001"],
299
296
  "deliveryAckTimeoutMs": 15000
300
297
  }
@@ -306,7 +303,7 @@ By default, the node picks a random TCP port. To use a fixed port:
306
303
 
307
304
  ### With Bootstrap Nodes (Cross-Network)
308
305
 
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:
306
+ If peers are on different networks, run the setup wizard and add bootstrap and optional relay multiaddrs. These addresses are entry points; they do not replace LAN discovery or DHT. The address prompts can be left empty if you do not have an entry node yet.
310
307
 
311
308
  ```json
312
309
  {
@@ -315,7 +312,6 @@ If peers are on different networks, run the setup wizard and choose cross-networ
315
312
  "libp2p-mesh": {
316
313
  "enabled": true,
317
314
  "config": {
318
- "discovery": "bootstrap",
319
315
  "bootstrapList": [
320
316
  "/ip4/203.0.113.10/tcp/4001/p2p/12D3KooW..."
321
317
  ],
@@ -344,7 +340,6 @@ Example wizard output with two targets:
344
340
  "libp2p-mesh": {
345
341
  "enabled": true,
346
342
  "config": {
347
- "discovery": "mdns",
348
343
  "inboundTargets": [
349
344
  {
350
345
  "id": "feishu-main",
@@ -371,19 +366,21 @@ If `inboundTargets` is an empty array, inbound delivery is disabled. If `inbound
371
366
 
372
367
  | Key | Type | Default | Description |
373
368
  |-----|------|---------|-------------|
374
- | `discovery` | `string` | `"mdns"` | Discovery mechanism: `"mdns"` (LAN), `"bootstrap"` (static list), `"dht"` (Kademlia peer discovery and pubkey registry) |
369
+ | `discovery` | `string` | legacy-compatible | Legacy hint. New setup does not write this field; runtime composes discovery from mDNS, DHT, and optional entry lists. |
375
370
  | `listenAddrs` | `string[]` | `["/ip4/0.0.0.0/tcp/0"]` | libp2p listen multiaddrs |
376
- | `bootstrapList` | `string[]` | `[]` | Static bootstrap peer multiaddrs (when `discovery=bootstrap`) |
371
+ | `bootstrapList` | `string[]` | `[]` | Optional static bootstrap peer multiaddrs. Non-empty values add bootstrap discovery without disabling mDNS or DHT. |
377
372
  | `enableWebSocket` | `boolean` | `false` | Enable WebSocket transport for browser/NAT compatibility |
378
373
  | `meshTopic` | `string` | `"openclaw-mesh"` | Default broadcast topic |
379
374
  | `enableAgentSync` | `boolean` | `true` | Enable agent state synchronization over the mesh |
380
375
  | `enableNATTraversal` | `boolean` | `true` | Master switch for identify + AutoNAT + UPnP + Circuit Relay v2 + DCUtR |
376
+ | `enableMDNS` | `boolean` | `true` | Enable mDNS LAN peer discovery |
381
377
  | `enableIdentify` | `boolean` | `true` | libp2p identify protocol (required by AutoNAT and DCUtR) |
382
378
  | `enableAutoNAT` | `boolean` | `true` | AutoNAT — detect whether this node is publicly reachable |
383
379
  | `enableUPnP` | `boolean` | `true` | Attempt UPnP/PMP port mapping on the local gateway |
384
380
  | `enableCircuitRelay` | `boolean` | `true` | Dial peers via /p2p-circuit relay addresses |
385
381
  | `enableCircuitRelayServer` | `boolean` | `false` | Act as a Circuit Relay v2 server (only enable on a public node) |
386
382
  | `enableDCUtR` | `boolean` | `true` | Hole-punching: upgrade a relayed connection to a direct one |
383
+ | `enableDHT` | `boolean` | `true` | Enable DHT for WAN peer discovery and the pubkey registry |
387
384
  | `relayList` | `string[]` | `[]` | Multiaddrs of relays to reserve a slot on |
388
385
  | `discoverRelays` | `number` | `0` | Auto-discover this many relays via content routing |
389
386
  | `announceAddrs` | `string[]` | `[]` | Extra multiaddrs to announce on top of auto-detected ones |
@@ -435,7 +432,6 @@ You need at least one relay node with a public IP. Set it in `relayList`:
435
432
  "libp2p-mesh": {
436
433
  "enabled": true,
437
434
  "config": {
438
- "discovery": "bootstrap",
439
435
  "bootstrapList": [
440
436
  "/ip4/<RELAY-IP>/tcp/4001/p2p/<RELAY-PEER-ID>"
441
437
  ],
@@ -464,7 +460,6 @@ Add `enableCircuitRelayServer: true` to your config and announce the public addr
464
460
  "libp2p-mesh": {
465
461
  "enabled": true,
466
462
  "config": {
467
- "discovery": "bootstrap",
468
463
  "listenAddrs": ["/ip4/0.0.0.0/tcp/4001"],
469
464
  "announceAddrs": ["/ip4/<PUBLIC-IP>/tcp/4001"],
470
465
  "enableNATTraversal": true,
@@ -567,7 +562,6 @@ Example result for a single Feishu target:
567
562
  "libp2p-mesh": {
568
563
  "enabled": true,
569
564
  "config": {
570
- "discovery": "mdns",
571
565
  "inboundTargets": [
572
566
  {
573
567
  "id": "feishu-main",
@@ -595,7 +589,6 @@ The receiver chooses where inbound P2P messages appear:
595
589
  "libp2p-mesh": {
596
590
  "enabled": true,
597
591
  "config": {
598
- "discovery": "mdns",
599
592
  "inboundTargets": [
600
593
  {
601
594
  "id": "feishu-main",
@@ -843,10 +836,9 @@ Privacy boundary: public attributes are broadcast with instance announce message
843
836
  3. **Check mDNS** — Ensure mDNS/Bonjour/Avahi is running:
844
837
  - macOS: built-in, should work
845
838
  - Linux: `sudo systemctl status avahi-daemon`
846
- 4. **Use static port + manual IP** — If mDNS still fails, switch to bootstrap mode and use the LAN IP directly:
839
+ 4. **Use static port + manual IP** — If mDNS still fails, add the other node as a bootstrap entry by LAN IP:
847
840
  ```json
848
841
  {
849
- "discovery": "bootstrap",
850
842
  "bootstrapList": [
851
843
  "/ip4/192.168.1.42/tcp/4001/p2p/<PEER-ID-OF-OTHER-MACHINE>"
852
844
  ]
package/dist/index.js CHANGED
@@ -32,11 +32,12 @@ function createLibp2pMeshConfigSchema() {
32
32
  type: "string",
33
33
  enum: ["mdns", "bootstrap", "dht"],
34
34
  default: "mdns",
35
+ description: "Legacy discovery hint. Runtime now composes mDNS, DHT, and optional bootstrap entries automatically.",
35
36
  },
36
37
  bootstrapList: {
37
38
  type: "array",
38
39
  items: { type: "string" },
39
- description: "List of bootstrap multiaddrs for WAN discovery (required when discovery=dht or bootstrap)",
40
+ description: "Optional static bootstrap multiaddrs. Non-empty values add bootstrap discovery without disabling mDNS or DHT.",
40
41
  },
41
42
  meshTopic: {
42
43
  type: "string",
@@ -53,7 +54,7 @@ function createLibp2pMeshConfigSchema() {
53
54
  enableDHT: {
54
55
  type: "boolean",
55
56
  default: true,
56
- description: "Enable DHT for WAN peer discovery and pubkey registry. Default true when discovery=dht, can be explicitly disabled.",
57
+ description: "Enable DHT for WAN peer discovery and pubkey registry. Default true; can be explicitly disabled.",
57
58
  },
58
59
  instanceName: {
59
60
  type: "string",
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import type { MeshConfig, MeshNetwork } from "./types.js";
2
+ export declare function planPeerDiscovery(config: MeshConfig): {
3
+ useMDNS: boolean;
4
+ bootstrapList: string[];
5
+ enableDHT: boolean;
6
+ };
2
7
  export declare function createMeshNetwork(options: {
3
8
  config?: MeshConfig;
4
9
  logger?: {
package/dist/src/mesh.js CHANGED
@@ -58,6 +58,13 @@ async function loadOrCreatePeerId(customPath) {
58
58
  return peerId;
59
59
  }
60
60
  }
61
+ export function planPeerDiscovery(config) {
62
+ return {
63
+ useMDNS: config.enableMDNS !== false,
64
+ bootstrapList: config.bootstrapList ?? [],
65
+ enableDHT: config.enableDHT !== false,
66
+ };
67
+ }
61
68
  export function createMeshNetwork(options) {
62
69
  const config = options.config ?? {};
63
70
  const logger = options.logger;
@@ -97,28 +104,18 @@ export function createMeshNetwork(options) {
97
104
  transports.push(webSockets());
98
105
  }
99
106
  // Peer discovery: mDNS for LAN, bootstrap for WAN entry points
107
+ const discoveryPlan = planPeerDiscovery(config);
100
108
  const peerDiscovery = [];
101
- const discoveryMechanism = config.discovery ?? "mdns";
102
- if (discoveryMechanism === "mdns") {
109
+ if (discoveryPlan.useMDNS) {
103
110
  peerDiscovery.push(mdns({ interval: 1000 }));
104
111
  logger?.info?.("[libp2p-mesh] Using mDNS discovery (LAN)");
105
112
  }
106
- if (discoveryMechanism === "bootstrap" || discoveryMechanism === "dht") {
107
- const bootstrapList = config.bootstrapList ?? [];
108
- if (bootstrapList.length > 0) {
109
- peerDiscovery.push(bootstrap({ list: bootstrapList }));
110
- logger?.info?.(`[libp2p-mesh] Using bootstrap discovery (${bootstrapList.length} node(s))`);
111
- }
112
- else if (discoveryMechanism === "bootstrap") {
113
- logger?.warn?.("[libp2p-mesh] discovery=bootstrap but bootstrapList is empty; falling back to mDNS");
114
- peerDiscovery.push(mdns({ interval: 1000 }));
115
- }
116
- else {
117
- logger?.warn?.("[libp2p-mesh] discovery=dht but bootstrapList is empty; DHT may not find peers");
118
- }
113
+ if (discoveryPlan.bootstrapList.length > 0) {
114
+ peerDiscovery.push(bootstrap({ list: discoveryPlan.bootstrapList }));
115
+ logger?.info?.(`[libp2p-mesh] Using bootstrap discovery (${discoveryPlan.bootstrapList.length} node(s))`);
119
116
  }
120
117
  // Configure DHT for both WAN peer discovery and pubkey registry
121
- const enableDHT = discoveryMechanism === "dht" || config.enableDHT !== false;
118
+ const enableDHT = discoveryPlan.enableDHT;
122
119
  const services = {};
123
120
  if (enableDHT) {
124
121
  services.dht = kadDHT({
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/mesh.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mesh.js","sourceRoot":"","sources":["../../src/mesh.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,17 @@ export type RelayNodeOptions = {
21
21
  listenAddrs: string[];
22
22
  announceAddrs: string[];
23
23
  };
24
+ export type NetworkEntryOptions = {
25
+ bootstrapList: string[];
26
+ relayList: string[];
27
+ };
28
+ export type PublicRelayNodeOptions = {
29
+ enabled: false;
30
+ } | {
31
+ enabled: true;
32
+ listenAddrs: string[];
33
+ announceAddrs: string[];
34
+ };
24
35
  export type AddInboundTargetResult = {
25
36
  ok: true;
26
37
  targets: InboundTargetConfig[];
@@ -42,6 +53,8 @@ export declare function buildNetworkConfig(mode: SetupMode, options?: {
42
53
  crossNetwork?: CrossNetworkOptions;
43
54
  relayNode?: RelayNodeOptions;
44
55
  }): MeshConfig;
56
+ export declare function buildNetworkEntryConfig(options: NetworkEntryOptions): MeshConfig;
57
+ export declare function buildPublicRelayNodeConfig(options: PublicRelayNodeOptions): MeshConfig;
45
58
  export declare function applyDefaultMeshConfig(config: MeshConfig | undefined): MeshConfig;
46
59
  export declare function applyPluginConfig(config: OpenClawConfigLike, pluginConfig: MeshConfig): OpenClawConfigLike;
47
60
  export declare function applyAnnounceLogDetail(config: OpenClawConfigLike, announceLogDetail: AnnounceLogDetail): OpenClawConfigLike;
@@ -37,6 +37,27 @@ export function buildNetworkConfig(mode, options) {
37
37
  };
38
38
  }
39
39
  }
40
+ export function buildNetworkEntryConfig(options) {
41
+ return {
42
+ ...(options.bootstrapList.length > 0 ? { bootstrapList: [...options.bootstrapList] } : {}),
43
+ ...(options.relayList.length > 0 ? { relayList: [...options.relayList] } : {}),
44
+ deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
45
+ };
46
+ }
47
+ export function buildPublicRelayNodeConfig(options) {
48
+ if (!options.enabled) {
49
+ return {
50
+ enableCircuitRelayServer: false,
51
+ deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
52
+ };
53
+ }
54
+ return {
55
+ listenAddrs: [...options.listenAddrs],
56
+ ...(options.announceAddrs.length > 0 ? { announceAddrs: [...options.announceAddrs] } : {}),
57
+ enableCircuitRelayServer: true,
58
+ deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
59
+ };
60
+ }
40
61
  export function applyDefaultMeshConfig(config) {
41
62
  const base = config && typeof config === "object" && !Array.isArray(config)
42
63
  ? config
@@ -1 +1 @@
1
- {"version":3,"file":"setup-config.js","sourceRoot":"","sources":["../../src/setup-config.ts"],"names":[],"mappings":"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"}
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" | "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";
6
+ export type SetupPromptChoice = "continue" | "cancel" | "add-targets" | "sync-from-channels" | "disable-inbound" | "skip-inbound" | "network-entry-addresses" | "public-relay-node" | "inbound-targets" | "convert-legacy-inbound" | "keep-legacy-inbound" | "replace-legacy-inbound" | "add-target" | "edit-target" | "remove-target" | "finish-targets";
7
7
  export type SetupPrompter = {
8
8
  confirm(message: string, defaultValue?: boolean): Promise<boolean>;
9
9
  select<T extends string>(message: string, choices: Array<{
@@ -1,4 +1,4 @@
1
- import { addInboundTarget, applyPluginConfig, buildNetworkConfig, disableInboundDelivery, getLibp2pMeshConfig, listConfiguredChannels, mergeNetworkConfig, planInboundTargetSync, migrateLegacyInboundConfig, setInboundTargets, } from "./setup-config.js";
1
+ import { addInboundTarget, applyPluginConfig, buildNetworkEntryConfig, buildPublicRelayNodeConfig, disableInboundDelivery, getLibp2pMeshConfig, listConfiguredChannels, planInboundTargetSync, migrateLegacyInboundConfig, setInboundTargets, } from "./setup-config.js";
2
2
  const MANUAL_CHANNEL_VALUE = "__manual__";
3
3
  const CANCELLED_MESSAGE = "Configuration cancelled. No changes were written.";
4
4
  const APPLIED_MESSAGE = "Config updated.\n\nRestart the gateway to apply changes:\nopenclaw gateway restart";
@@ -49,8 +49,8 @@ async function runFirstConfigFlow(options) {
49
49
  if (!shouldContinue) {
50
50
  return undefined;
51
51
  }
52
- const mode = await selectSetupMode(options.prompter);
53
- let pluginConfig = await buildNetworkConfigFromPrompts(mode, options.prompter);
52
+ options.prompter.print("Network discovery is enabled automatically.\nmDNS, DHT, NAT traversal, relay transport, and hole punching are enabled by default.");
53
+ let pluginConfig = await promptForNetworkEntryConfig({}, options.prompter, { keepExistingOnEmpty: false });
54
54
  const inboundChoice = await options.prompter.select("Configure where received P2P messages should appear?", [
55
55
  { label: "Sync from existing channels", value: "sync-from-channels" },
56
56
  { label: "Add a target manually", value: "add-targets" },
@@ -74,32 +74,25 @@ async function runFirstConfigFlow(options) {
74
74
  }
75
75
  async function runExistingConfigFlow(existingConfig, options) {
76
76
  let pluginConfig = cloneMeshConfig(existingConfig) ?? {};
77
- while (true) {
78
- options.prompter.print(formatCurrentConfig(pluginConfig));
79
- const editChoice = await options.prompter.select("What do you want to edit?", [
80
- { label: "Sync inbound targets from channels", value: "sync-from-channels" },
81
- { label: "Network setup", value: "network-mode" },
82
- { label: "Where received P2P messages appear", value: "inbound-targets" },
83
- { label: "Preview and apply", value: "preview-apply" },
84
- { label: "Cancel", value: "cancel" },
85
- ]);
86
- switch (editChoice) {
87
- case "sync-from-channels":
88
- pluginConfig = await syncInboundTargetsFromConfiguredChannels(pluginConfig, options);
89
- break;
90
- case "network-mode": {
91
- const mode = await selectSetupMode(options.prompter);
92
- pluginConfig = mergeNetworkConfig(pluginConfig, await buildNetworkConfigFromPrompts(mode, options.prompter));
93
- break;
94
- }
95
- case "inbound-targets":
96
- pluginConfig = await promptForExistingInboundConfig(pluginConfig, options);
97
- break;
98
- case "preview-apply":
99
- return pluginConfig;
100
- case "cancel":
101
- return undefined;
102
- }
77
+ options.prompter.print(formatCurrentConfig(pluginConfig));
78
+ const editChoice = await options.prompter.select("What do you want to edit?", [
79
+ { label: "Sync inbound targets from channels", value: "sync-from-channels" },
80
+ { label: "Network entry addresses", value: "network-entry-addresses" },
81
+ { label: "Public relay-node settings", value: "public-relay-node" },
82
+ { label: "Where received P2P messages appear", value: "inbound-targets" },
83
+ { label: "Cancel", value: "cancel" },
84
+ ]);
85
+ switch (editChoice) {
86
+ case "sync-from-channels":
87
+ return syncInboundTargetsFromConfiguredChannels(pluginConfig, options);
88
+ case "network-entry-addresses":
89
+ return promptForNetworkEntryConfig(pluginConfig, options.prompter, { keepExistingOnEmpty: true });
90
+ case "public-relay-node":
91
+ return promptForPublicRelayNodeConfig(pluginConfig, options.prompter);
92
+ case "inbound-targets":
93
+ return promptForExistingInboundConfig(pluginConfig, options);
94
+ case "cancel":
95
+ return undefined;
103
96
  }
104
97
  }
105
98
  async function promptForExistingInboundConfig(pluginConfig, options) {
@@ -186,48 +179,59 @@ function formatInboundTargetLine(target) {
186
179
  function hasLegacyOnlyInboundConfig(pluginConfig) {
187
180
  return Boolean(pluginConfig.inboundChannel && pluginConfig.inboundTarget && !Array.isArray(pluginConfig.inboundTargets));
188
181
  }
189
- async function selectSetupMode(prompter) {
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" },
194
- ]);
195
- }
196
- async function buildNetworkConfigFromPrompts(mode, prompter) {
197
- switch (mode) {
198
- case "cross-network":
199
- return buildNetworkConfig("cross-network", {
200
- crossNetwork: {
201
- bootstrapList: await promptForAddressList(prompter, "Bootstrap multiaddr", "Add another bootstrap?"),
202
- relayList: await promptForOptionalAddressList(prompter, "Relay multiaddr (optional, leave empty to skip)", "Add another relay?"),
203
- },
204
- });
205
- case "relay-node":
206
- return buildNetworkConfig("relay-node", {
207
- relayNode: {
208
- listenAddrs: [await prompter.input("Listen address", { defaultValue: "/ip4/0.0.0.0/tcp/4001", required: true })],
209
- announceAddrs: [await prompter.input("Public announce address", { required: true })],
210
- },
211
- });
212
- default:
213
- return buildNetworkConfig(mode);
182
+ async function promptForNetworkEntryConfig(existing, prompter, options) {
183
+ const bootstrapList = await promptForOptionalAddressList(prompter, options.keepExistingOnEmpty
184
+ ? "Bootstrap multiaddr (optional, leave empty to keep unchanged)"
185
+ : "Bootstrap multiaddr (optional, leave empty to skip)", "Add another bootstrap?");
186
+ const relayList = await promptForOptionalAddressList(prompter, options.keepExistingOnEmpty
187
+ ? "Relay multiaddr (optional, leave empty to keep unchanged)"
188
+ : "Relay multiaddr (optional, leave empty to skip)", "Add another relay?");
189
+ if (options.keepExistingOnEmpty) {
190
+ return {
191
+ ...existing,
192
+ ...(bootstrapList.length > 0 ? { bootstrapList } : {}),
193
+ ...(relayList.length > 0 ? { relayList } : {}),
194
+ };
214
195
  }
196
+ return {
197
+ ...existing,
198
+ ...buildNetworkEntryConfig({ bootstrapList, relayList }),
199
+ };
215
200
  }
216
- async function promptForAddressList(prompter, message, addAnotherMessage) {
217
- const addresses = [await prompter.input(message, { required: true })];
218
- while (await prompter.confirm(addAnotherMessage, false)) {
219
- addresses.push(await prompter.input(message, { required: true }));
220
- }
221
- return addresses;
201
+ async function promptForPublicRelayNodeConfig(existing, prompter) {
202
+ const enabled = await prompter.confirm("Enable this machine as a public relay node?", false);
203
+ const relayConfig = enabled
204
+ ? buildPublicRelayNodeConfig({
205
+ enabled: true,
206
+ listenAddrs: [
207
+ await prompter.input("Listen address", {
208
+ defaultValue: "/ip4/0.0.0.0/tcp/4001",
209
+ required: true,
210
+ }),
211
+ ],
212
+ announceAddrs: await promptForOptionalAddressList(prompter, "Public announce address (optional, leave empty to skip)", "Add another public announce address?"),
213
+ })
214
+ : buildPublicRelayNodeConfig({ enabled: false });
215
+ const { listenAddrs: _listenAddrs, announceAddrs: _announceAddrs, enableCircuitRelayServer: _enableCircuitRelayServer, ...preserved } = existing;
216
+ return {
217
+ ...preserved,
218
+ enableCircuitRelayServer: relayConfig.enableCircuitRelayServer,
219
+ ...(relayConfig.listenAddrs ? { listenAddrs: relayConfig.listenAddrs } : {}),
220
+ ...(relayConfig.announceAddrs ? { announceAddrs: relayConfig.announceAddrs } : {}),
221
+ };
222
222
  }
223
223
  async function promptForOptionalAddressList(prompter, message, addAnotherMessage) {
224
- const firstAddress = await prompter.input(message);
224
+ const firstAddress = (await prompter.input(message, { required: false })).trim();
225
225
  if (!firstAddress) {
226
226
  return [];
227
227
  }
228
228
  const addresses = [firstAddress];
229
229
  while (await prompter.confirm(addAnotherMessage, false)) {
230
- addresses.push(await prompter.input(message, { required: true }));
230
+ let nextAddress = "";
231
+ while (!nextAddress) {
232
+ nextAddress = (await prompter.input(message, { required: true })).trim();
233
+ }
234
+ addresses.push(nextAddress);
231
235
  }
232
236
  return addresses;
233
237
  }
@@ -236,7 +240,7 @@ async function promptForInboundTargets(existingTargets, options, promptOptions)
236
240
  let action = promptOptions?.promptInitialAction
237
241
  ? await options.prompter.select("What do you want to do?", [
238
242
  { label: "Add target", value: "add-target" },
239
- { label: "Back", value: "finish-targets" },
243
+ { label: "Finish editing", value: "finish-targets" },
240
244
  ])
241
245
  : "add-target";
242
246
  while (action === "add-target") {
@@ -252,7 +256,7 @@ async function promptForInboundTargets(existingTargets, options, promptOptions)
252
256
  }
253
257
  action = await options.prompter.select("Add another target?", [
254
258
  { label: "Add another", value: "add-target" },
255
- { label: "Finish target setup", value: "finish-targets" },
259
+ { label: "Finish editing", value: "finish-targets" },
256
260
  ]);
257
261
  }
258
262
  return targets;
@@ -265,7 +269,7 @@ async function promptForInboundTargetEdits(existingTargets, options) {
265
269
  { label: "Edit target", value: "edit-target" },
266
270
  { label: "Remove target", value: "remove-target" },
267
271
  { label: "Disable inbound delivery", value: "disable-inbound" },
268
- { label: "Back", value: "finish-targets" },
272
+ { label: "Finish editing", value: "finish-targets" },
269
273
  ]);
270
274
  switch (action) {
271
275
  case "add-target":
@@ -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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"}
@@ -253,7 +253,9 @@ export interface MeshConfig {
253
253
  enableWebSocket?: boolean;
254
254
  peerIdPath?: string;
255
255
  instanceName?: string;
256
- /** Enable DHT for WAN peer discovery and pubkey registry (default: true when discovery=dht, false otherwise) */
256
+ /** Enable mDNS LAN peer discovery (default: true) */
257
+ enableMDNS?: boolean;
258
+ /** Enable DHT for WAN peer discovery and pubkey registry (default: true) */
257
259
  enableDHT?: boolean;
258
260
  /**
259
261
  * Master switch for the NAT traversal stack. When `false` none of the
package/index.ts CHANGED
@@ -34,11 +34,12 @@ function createLibp2pMeshConfigSchema(): OpenClawPluginConfigSchema {
34
34
  type: "string",
35
35
  enum: ["mdns", "bootstrap", "dht"],
36
36
  default: "mdns",
37
+ description: "Legacy discovery hint. Runtime now composes mDNS, DHT, and optional bootstrap entries automatically.",
37
38
  },
38
39
  bootstrapList: {
39
40
  type: "array",
40
41
  items: { type: "string" },
41
- description: "List of bootstrap multiaddrs for WAN discovery (required when discovery=dht or bootstrap)",
42
+ description: "Optional static bootstrap multiaddrs. Non-empty values add bootstrap discovery without disabling mDNS or DHT.",
42
43
  },
43
44
  meshTopic: {
44
45
  type: "string",
@@ -55,7 +56,7 @@ function createLibp2pMeshConfigSchema(): OpenClawPluginConfigSchema {
55
56
  enableDHT: {
56
57
  type: "boolean",
57
58
  default: true,
58
- description: "Enable DHT for WAN peer discovery and pubkey registry. Default true when discovery=dht, can be explicitly disabled.",
59
+ description: "Enable DHT for WAN peer discovery and pubkey registry. Default true; can be explicitly disabled.",
59
60
  },
60
61
  instanceName: {
61
62
  type: "string",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libp2p-mesh",
3
- "version": "2026.6.27",
3
+ "version": "2026.6.28",
4
4
  "description": "OpenClaw libp2p P2P mesh network plugin for cross-instance agent communication",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/src/mesh.ts CHANGED
@@ -70,6 +70,18 @@ async function loadOrCreatePeerId(customPath?: string): Promise<ReturnType<typeo
70
70
  }
71
71
  }
72
72
 
73
+ export function planPeerDiscovery(config: MeshConfig): {
74
+ useMDNS: boolean;
75
+ bootstrapList: string[];
76
+ enableDHT: boolean;
77
+ } {
78
+ return {
79
+ useMDNS: config.enableMDNS !== false,
80
+ bootstrapList: config.bootstrapList ?? [],
81
+ enableDHT: config.enableDHT !== false,
82
+ };
83
+ }
84
+
73
85
  export function createMeshNetwork(options: {
74
86
  config?: MeshConfig;
75
87
  logger?: { info?: (msg: string) => void; debug?: (msg: string) => void; warn?: (msg: string) => void; error?: (msg: string) => void };
@@ -122,29 +134,21 @@ export function createMeshNetwork(options: {
122
134
  }
123
135
 
124
136
  // Peer discovery: mDNS for LAN, bootstrap for WAN entry points
137
+ const discoveryPlan = planPeerDiscovery(config);
125
138
  const peerDiscovery: any[] = [];
126
- const discoveryMechanism = config.discovery ?? "mdns";
127
139
 
128
- if (discoveryMechanism === "mdns") {
140
+ if (discoveryPlan.useMDNS) {
129
141
  peerDiscovery.push(mdns({ interval: 1000 }));
130
142
  logger?.info?.("[libp2p-mesh] Using mDNS discovery (LAN)");
131
143
  }
132
144
 
133
- if (discoveryMechanism === "bootstrap" || discoveryMechanism === "dht") {
134
- const bootstrapList = config.bootstrapList ?? [];
135
- if (bootstrapList.length > 0) {
136
- peerDiscovery.push(bootstrap({ list: bootstrapList }));
137
- logger?.info?.(`[libp2p-mesh] Using bootstrap discovery (${bootstrapList.length} node(s))`);
138
- } else if (discoveryMechanism === "bootstrap") {
139
- logger?.warn?.("[libp2p-mesh] discovery=bootstrap but bootstrapList is empty; falling back to mDNS");
140
- peerDiscovery.push(mdns({ interval: 1000 }));
141
- } else {
142
- logger?.warn?.("[libp2p-mesh] discovery=dht but bootstrapList is empty; DHT may not find peers");
143
- }
145
+ if (discoveryPlan.bootstrapList.length > 0) {
146
+ peerDiscovery.push(bootstrap({ list: discoveryPlan.bootstrapList }));
147
+ logger?.info?.(`[libp2p-mesh] Using bootstrap discovery (${discoveryPlan.bootstrapList.length} node(s))`);
144
148
  }
145
149
 
146
150
  // Configure DHT for both WAN peer discovery and pubkey registry
147
- const enableDHT = discoveryMechanism === "dht" || config.enableDHT !== false;
151
+ const enableDHT = discoveryPlan.enableDHT;
148
152
  const services: Record<string, any> = {};
149
153
  if (enableDHT) {
150
154
  services.dht = kadDHT({
@@ -28,6 +28,15 @@ export type RelayNodeOptions = {
28
28
  announceAddrs: string[];
29
29
  };
30
30
 
31
+ export type NetworkEntryOptions = {
32
+ bootstrapList: string[];
33
+ relayList: string[];
34
+ };
35
+
36
+ export type PublicRelayNodeOptions =
37
+ | { enabled: false }
38
+ | { enabled: true; listenAddrs: string[]; announceAddrs: string[] };
39
+
31
40
  export type AddInboundTargetResult =
32
41
  | { ok: true; targets: InboundTargetConfig[]; added: InboundTargetConfig }
33
42
  | { ok: false; targets: InboundTargetConfig[]; error: string };
@@ -88,6 +97,30 @@ export function buildNetworkConfig(
88
97
  }
89
98
  }
90
99
 
100
+ export function buildNetworkEntryConfig(options: NetworkEntryOptions): MeshConfig {
101
+ return {
102
+ ...(options.bootstrapList.length > 0 ? { bootstrapList: [...options.bootstrapList] } : {}),
103
+ ...(options.relayList.length > 0 ? { relayList: [...options.relayList] } : {}),
104
+ deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
105
+ };
106
+ }
107
+
108
+ export function buildPublicRelayNodeConfig(options: PublicRelayNodeOptions): MeshConfig {
109
+ if (!options.enabled) {
110
+ return {
111
+ enableCircuitRelayServer: false,
112
+ deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
113
+ };
114
+ }
115
+
116
+ return {
117
+ listenAddrs: [...options.listenAddrs],
118
+ ...(options.announceAddrs.length > 0 ? { announceAddrs: [...options.announceAddrs] } : {}),
119
+ enableCircuitRelayServer: true,
120
+ deliveryAckTimeoutMs: DEFAULT_DELIVERY_ACK_TIMEOUT_MS,
121
+ };
122
+ }
123
+
91
124
  export function applyDefaultMeshConfig(config: MeshConfig | undefined): MeshConfig {
92
125
  const base =
93
126
  config && typeof config === "object" && !Array.isArray(config)
@@ -2,16 +2,15 @@ import type { InboundTargetConfig, MeshConfig } from "./types.js";
2
2
  import {
3
3
  addInboundTarget,
4
4
  applyPluginConfig,
5
- buildNetworkConfig,
5
+ buildNetworkEntryConfig,
6
+ buildPublicRelayNodeConfig,
6
7
  disableInboundDelivery,
7
8
  getLibp2pMeshConfig,
8
9
  listConfiguredChannels,
9
- mergeNetworkConfig,
10
10
  planInboundTargetSync,
11
11
  migrateLegacyInboundConfig,
12
12
  setInboundTargets,
13
13
  type OpenClawConfigLike,
14
- type SetupMode,
15
14
  } from "./setup-config.js";
16
15
 
17
16
  const MANUAL_CHANNEL_VALUE = "__manual__";
@@ -28,14 +27,12 @@ export class SetupCancelledError extends Error {
28
27
  export type SetupPromptChoice =
29
28
  | "continue"
30
29
  | "cancel"
31
- | "lan"
32
- | "cross-network"
33
- | "relay-node"
34
30
  | "add-targets"
35
31
  | "sync-from-channels"
36
32
  | "disable-inbound"
37
33
  | "skip-inbound"
38
- | "network-mode"
34
+ | "network-entry-addresses"
35
+ | "public-relay-node"
39
36
  | "inbound-targets"
40
37
  | "convert-legacy-inbound"
41
38
  | "keep-legacy-inbound"
@@ -43,8 +40,7 @@ export type SetupPromptChoice =
43
40
  | "add-target"
44
41
  | "edit-target"
45
42
  | "remove-target"
46
- | "finish-targets"
47
- | "preview-apply";
43
+ | "finish-targets";
48
44
 
49
45
  export type SetupPrompter = {
50
46
  confirm(message: string, defaultValue?: boolean): Promise<boolean>;
@@ -120,8 +116,10 @@ async function runFirstConfigFlow(options: RunSetupWizardOptions): Promise<MeshC
120
116
  return undefined;
121
117
  }
122
118
 
123
- const mode = await selectSetupMode(options.prompter);
124
- let pluginConfig = await buildNetworkConfigFromPrompts(mode, options.prompter);
119
+ options.prompter.print(
120
+ "Network discovery is enabled automatically.\nmDNS, DHT, NAT traversal, relay transport, and hole punching are enabled by default.",
121
+ );
122
+ let pluginConfig = await promptForNetworkEntryConfig({}, options.prompter, { keepExistingOnEmpty: false });
125
123
 
126
124
  const inboundChoice = await options.prompter.select("Configure where received P2P messages should appear?", [
127
125
  { label: "Sync from existing channels", value: "sync-from-channels" },
@@ -153,33 +151,26 @@ async function runExistingConfigFlow(
153
151
  ): Promise<MeshConfig | undefined> {
154
152
  let pluginConfig = cloneMeshConfig(existingConfig) ?? {};
155
153
 
156
- while (true) {
157
- options.prompter.print(formatCurrentConfig(pluginConfig));
158
- const editChoice = await options.prompter.select("What do you want to edit?", [
159
- { label: "Sync inbound targets from channels", value: "sync-from-channels" },
160
- { label: "Network setup", value: "network-mode" },
161
- { label: "Where received P2P messages appear", value: "inbound-targets" },
162
- { label: "Preview and apply", value: "preview-apply" },
163
- { label: "Cancel", value: "cancel" },
164
- ]);
154
+ options.prompter.print(formatCurrentConfig(pluginConfig));
155
+ const editChoice = await options.prompter.select("What do you want to edit?", [
156
+ { label: "Sync inbound targets from channels", value: "sync-from-channels" },
157
+ { label: "Network entry addresses", value: "network-entry-addresses" },
158
+ { label: "Public relay-node settings", value: "public-relay-node" },
159
+ { label: "Where received P2P messages appear", value: "inbound-targets" },
160
+ { label: "Cancel", value: "cancel" },
161
+ ]);
165
162
 
166
- switch (editChoice) {
167
- case "sync-from-channels":
168
- pluginConfig = await syncInboundTargetsFromConfiguredChannels(pluginConfig, options);
169
- break;
170
- case "network-mode": {
171
- const mode = await selectSetupMode(options.prompter);
172
- pluginConfig = mergeNetworkConfig(pluginConfig, await buildNetworkConfigFromPrompts(mode, options.prompter));
173
- break;
174
- }
175
- case "inbound-targets":
176
- pluginConfig = await promptForExistingInboundConfig(pluginConfig, options);
177
- break;
178
- case "preview-apply":
179
- return pluginConfig;
180
- case "cancel":
181
- return undefined;
182
- }
163
+ switch (editChoice) {
164
+ case "sync-from-channels":
165
+ return syncInboundTargetsFromConfiguredChannels(pluginConfig, options);
166
+ case "network-entry-addresses":
167
+ return promptForNetworkEntryConfig(pluginConfig, options.prompter, { keepExistingOnEmpty: true });
168
+ case "public-relay-node":
169
+ return promptForPublicRelayNodeConfig(pluginConfig, options.prompter);
170
+ case "inbound-targets":
171
+ return promptForExistingInboundConfig(pluginConfig, options);
172
+ case "cancel":
173
+ return undefined;
183
174
  }
184
175
  }
185
176
 
@@ -290,49 +281,71 @@ function hasLegacyOnlyInboundConfig(pluginConfig: MeshConfig): boolean {
290
281
  return Boolean(pluginConfig.inboundChannel && pluginConfig.inboundTarget && !Array.isArray(pluginConfig.inboundTargets));
291
282
  }
292
283
 
293
- async function selectSetupMode(prompter: SetupPrompter): Promise<SetupMode> {
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" },
298
- ]);
299
- }
284
+ async function promptForNetworkEntryConfig(
285
+ existing: MeshConfig,
286
+ prompter: SetupPrompter,
287
+ options: { keepExistingOnEmpty: boolean },
288
+ ): Promise<MeshConfig> {
289
+ const bootstrapList = await promptForOptionalAddressList(
290
+ prompter,
291
+ options.keepExistingOnEmpty
292
+ ? "Bootstrap multiaddr (optional, leave empty to keep unchanged)"
293
+ : "Bootstrap multiaddr (optional, leave empty to skip)",
294
+ "Add another bootstrap?",
295
+ );
296
+ const relayList = await promptForOptionalAddressList(
297
+ prompter,
298
+ options.keepExistingOnEmpty
299
+ ? "Relay multiaddr (optional, leave empty to keep unchanged)"
300
+ : "Relay multiaddr (optional, leave empty to skip)",
301
+ "Add another relay?",
302
+ );
300
303
 
301
- async function buildNetworkConfigFromPrompts(mode: SetupMode, prompter: SetupPrompter): Promise<MeshConfig> {
302
- switch (mode) {
303
- case "cross-network":
304
- return buildNetworkConfig("cross-network", {
305
- crossNetwork: {
306
- bootstrapList: await promptForAddressList(prompter, "Bootstrap multiaddr", "Add another bootstrap?"),
307
- relayList: await promptForOptionalAddressList(
308
- prompter,
309
- "Relay multiaddr (optional, leave empty to skip)",
310
- "Add another relay?",
311
- ),
312
- },
313
- });
314
- case "relay-node":
315
- return buildNetworkConfig("relay-node", {
316
- relayNode: {
317
- listenAddrs: [await prompter.input("Listen address", { defaultValue: "/ip4/0.0.0.0/tcp/4001", required: true })],
318
- announceAddrs: [await prompter.input("Public announce address", { required: true })],
319
- },
320
- });
321
- default:
322
- return buildNetworkConfig(mode);
304
+ if (options.keepExistingOnEmpty) {
305
+ return {
306
+ ...existing,
307
+ ...(bootstrapList.length > 0 ? { bootstrapList } : {}),
308
+ ...(relayList.length > 0 ? { relayList } : {}),
309
+ };
323
310
  }
311
+
312
+ return {
313
+ ...existing,
314
+ ...buildNetworkEntryConfig({ bootstrapList, relayList }),
315
+ };
324
316
  }
325
317
 
326
- async function promptForAddressList(
327
- prompter: SetupPrompter,
328
- message: string,
329
- addAnotherMessage: string,
330
- ): Promise<string[]> {
331
- const addresses = [await prompter.input(message, { required: true })];
332
- while (await prompter.confirm(addAnotherMessage, false)) {
333
- addresses.push(await prompter.input(message, { required: true }));
334
- }
335
- return addresses;
318
+ async function promptForPublicRelayNodeConfig(existing: MeshConfig, prompter: SetupPrompter): Promise<MeshConfig> {
319
+ const enabled = await prompter.confirm("Enable this machine as a public relay node?", false);
320
+ const relayConfig = enabled
321
+ ? buildPublicRelayNodeConfig({
322
+ enabled: true,
323
+ listenAddrs: [
324
+ await prompter.input("Listen address", {
325
+ defaultValue: "/ip4/0.0.0.0/tcp/4001",
326
+ required: true,
327
+ }),
328
+ ],
329
+ announceAddrs: await promptForOptionalAddressList(
330
+ prompter,
331
+ "Public announce address (optional, leave empty to skip)",
332
+ "Add another public announce address?",
333
+ ),
334
+ })
335
+ : buildPublicRelayNodeConfig({ enabled: false });
336
+ const {
337
+ listenAddrs: _listenAddrs,
338
+ announceAddrs: _announceAddrs,
339
+ enableCircuitRelayServer: _enableCircuitRelayServer,
340
+ ...preserved
341
+ } = existing;
342
+
343
+ return {
344
+ ...preserved,
345
+ enableCircuitRelayServer: relayConfig.enableCircuitRelayServer,
346
+ ...(relayConfig.listenAddrs ? { listenAddrs: relayConfig.listenAddrs } : {}),
347
+ ...(relayConfig.announceAddrs ? { announceAddrs: relayConfig.announceAddrs } : {}),
348
+ };
336
349
  }
337
350
 
338
351
  async function promptForOptionalAddressList(
@@ -340,13 +353,17 @@ async function promptForOptionalAddressList(
340
353
  message: string,
341
354
  addAnotherMessage: string,
342
355
  ): Promise<string[]> {
343
- const firstAddress = await prompter.input(message);
356
+ const firstAddress = (await prompter.input(message, { required: false })).trim();
344
357
  if (!firstAddress) {
345
358
  return [];
346
359
  }
347
360
  const addresses = [firstAddress];
348
361
  while (await prompter.confirm(addAnotherMessage, false)) {
349
- addresses.push(await prompter.input(message, { required: true }));
362
+ let nextAddress = "";
363
+ while (!nextAddress) {
364
+ nextAddress = (await prompter.input(message, { required: true })).trim();
365
+ }
366
+ addresses.push(nextAddress);
350
367
  }
351
368
  return addresses;
352
369
  }
@@ -360,7 +377,7 @@ async function promptForInboundTargets(
360
377
  let action: "add-target" | "finish-targets" = promptOptions?.promptInitialAction
361
378
  ? await options.prompter.select("What do you want to do?", [
362
379
  { label: "Add target", value: "add-target" },
363
- { label: "Back", value: "finish-targets" },
380
+ { label: "Finish editing", value: "finish-targets" },
364
381
  ])
365
382
  : "add-target";
366
383
 
@@ -378,7 +395,7 @@ async function promptForInboundTargets(
378
395
 
379
396
  action = await options.prompter.select("Add another target?", [
380
397
  { label: "Add another", value: "add-target" },
381
- { label: "Finish target setup", value: "finish-targets" },
398
+ { label: "Finish editing", value: "finish-targets" },
382
399
  ]);
383
400
  }
384
401
 
@@ -401,7 +418,7 @@ async function promptForInboundTargetEdits(
401
418
  { label: "Edit target", value: "edit-target" },
402
419
  { label: "Remove target", value: "remove-target" },
403
420
  { label: "Disable inbound delivery", value: "disable-inbound" },
404
- { label: "Back", value: "finish-targets" },
421
+ { label: "Finish editing", value: "finish-targets" },
405
422
  ]);
406
423
 
407
424
  switch (action) {
package/src/types.ts CHANGED
@@ -287,7 +287,9 @@ export interface MeshConfig {
287
287
  enableWebSocket?: boolean;
288
288
  peerIdPath?: string;
289
289
  instanceName?: string;
290
- /** Enable DHT for WAN peer discovery and pubkey registry (default: true when discovery=dht, false otherwise) */
290
+ /** Enable mDNS LAN peer discovery (default: true) */
291
+ enableMDNS?: boolean;
292
+ /** Enable DHT for WAN peer discovery and pubkey registry (default: true) */
291
293
  enableDHT?: boolean;
292
294
 
293
295
  // ---------------------------------------------------------------------