import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry" ;
import { startGatewayBonjourAdvertiser } from "./src/advertiser.js" ;
function formatBonjourInstanceName(displayName: string) {
const trimmed = displayName.trim();
if (!trimmed) {
return "OpenClaw" ;
}
if (/openclaw/i.test(trimmed)) {
return trimmed;
}
return `${trimmed} (OpenClaw)`;
}
export default definePluginEntry({
id: "bonjour" ,
name: "Bonjour Gateway Discovery" ,
description: "Advertise the local OpenClaw gateway over Bonjour/mDNS." ,
register(api) {
api.registerGatewayDiscoveryService({
id: "bonjour" ,
advertise: async (ctx) => {
const advertiser = await startGatewayBonjourAdvertiser(
{
instanceName: formatBonjourInstanceName(ctx.machineDisplayName),
gatewayPort: ctx.gatewayPort,
gatewayTlsEnabled: ctx.gatewayTlsEnabled,
gatewayTlsFingerprintSha256: ctx.gatewayTlsFingerprintSha256,
canvasPort: ctx.canvasPort,
sshPort: ctx.sshPort,
tailnetDns: ctx.tailnetDns,
cliPath: ctx.cliPath,
minimal: ctx.minimal,
},
{ logger: api.logger },
);
return { stop: advertiser.stop };
},
});
},
});
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-06)
¤
*© Formatika GbR, Deutschland