@privateclaw/privateclaw-relay 0.1.10 → 0.1.11

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.
@@ -3,6 +3,8 @@ export interface RelayProviderSetupStep {
3
3
  command: string;
4
4
  args: string[];
5
5
  display: string;
6
+ kind?: "command" | "npm-pack-install";
7
+ packageSpec?: string;
6
8
  }
7
9
  export interface LocalOpenClawStatus {
8
10
  openClawAvailable: boolean;
@@ -1,15 +1,19 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import { once } from "node:events";
3
+ import { mkdtemp, rm } from "node:fs/promises";
4
+ import os from "node:os";
5
+ import path from "node:path";
3
6
  import { createInterface } from "node:readline/promises";
4
7
  import { stdin, stdout } from "node:process";
5
8
  import { RelayCliUserError } from "./cli-error.js";
6
9
  const PRIVATECLAW_VERIFICATION_COMMAND = "openclaw privateclaw pair --help";
7
- function createStep(title, command, args, display) {
10
+ function createStep(title, command, args, display, extra) {
8
11
  return {
9
12
  title,
10
13
  command,
11
14
  args,
12
15
  display,
16
+ ...(extra ?? {}),
13
17
  };
14
18
  }
15
19
  function isUnavailableCommandError(error) {
@@ -106,6 +110,69 @@ async function runStreamingCommand(command, args) {
106
110
  throw error;
107
111
  }
108
112
  }
113
+ function resolveNpmCommand() {
114
+ return process.platform === "win32" ? "npm.cmd" : "npm";
115
+ }
116
+ function isExactSemverVersion(value) {
117
+ return /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/u.test(value.trim());
118
+ }
119
+ function buildPackedArchiveHint(packageSpec) {
120
+ const normalizedSpec = packageSpec.trim();
121
+ const lastAt = normalizedSpec.lastIndexOf("@");
122
+ const hasSelector = lastAt > 0;
123
+ const packageName = hasSelector ? normalizedSpec.slice(0, lastAt) : normalizedSpec;
124
+ const selector = hasSelector ? normalizedSpec.slice(lastAt + 1) : "";
125
+ const sanitizedName = packageName.replace(/^@/u, "").replace(/\//gu, "-");
126
+ if (selector && isExactSemverVersion(selector)) {
127
+ return `${sanitizedName}-${selector.replace(/^v/iu, "")}.tgz`;
128
+ }
129
+ return `${sanitizedName}-*.tgz`;
130
+ }
131
+ function createNpmPackInstallStep(packageSpec) {
132
+ return createStep("Pack the PrivateClaw npm package locally, then install the generated archive into OpenClaw", resolveNpmCommand(), ["pack", packageSpec], `npm pack ${packageSpec} && openclaw plugins install ./${buildPackedArchiveHint(packageSpec)}`, {
133
+ kind: "npm-pack-install",
134
+ packageSpec,
135
+ });
136
+ }
137
+ function createManualNpmArchiveInstallSteps(packageSpec) {
138
+ const archiveHint = buildPackedArchiveHint(packageSpec);
139
+ return [
140
+ createStep("Pack the PrivateClaw plugin from npm into a local archive", resolveNpmCommand(), ["pack", packageSpec], `npm pack ${packageSpec}`),
141
+ createStep("Install the generated PrivateClaw plugin archive into OpenClaw", "openclaw", ["plugins", "install", `./${archiveHint}`], `openclaw plugins install ./${archiveHint}`),
142
+ ];
143
+ }
144
+ async function runRelayNpmPackInstallStep(step) {
145
+ if (!step.packageSpec) {
146
+ throw new RelayCliUserError("Missing packageSpec for npm-pack-install step.");
147
+ }
148
+ const tempDir = await mkdtemp(path.join(os.tmpdir(), "privateclaw-relay-install-"));
149
+ try {
150
+ const packResult = await runOneShotCommand(resolveNpmCommand(), [
151
+ "pack",
152
+ step.packageSpec,
153
+ "--json",
154
+ "--ignore-scripts",
155
+ "--pack-destination",
156
+ tempDir,
157
+ ]);
158
+ const packOutput = packResult.stdout.trim() || packResult.combined.trim();
159
+ const parsed = JSON.parse(packOutput);
160
+ const archiveFileName = typeof parsed[0]?.filename === "string" && parsed[0].filename.trim() !== ""
161
+ ? parsed[0].filename.trim()
162
+ : undefined;
163
+ if (!archiveFileName) {
164
+ throw new RelayCliUserError(`Could not determine the generated archive for ${step.packageSpec}.`);
165
+ }
166
+ await runStreamingCommand("openclaw", [
167
+ "plugins",
168
+ "install",
169
+ path.join(tempDir, archiveFileName),
170
+ ]);
171
+ }
172
+ finally {
173
+ await rm(tempDir, { recursive: true, force: true });
174
+ }
175
+ }
109
176
  async function commandExists(command, runCommand = runOneShotCommand) {
110
177
  try {
111
178
  await runCommand(command, ["--version"]);
@@ -165,7 +232,8 @@ export async function detectLocalOpenClawStatus(runCommand = runOneShotCommand)
165
232
  };
166
233
  }
167
234
  export function buildRelayProviderSetupPlan(params) {
168
- const installStep = createStep("Install the PrivateClaw OpenClaw plugin", "openclaw", ["plugins", "install", "@privateclaw/privateclaw@latest"], "openclaw plugins install @privateclaw/privateclaw@latest");
235
+ const installStep = createNpmPackInstallStep("@privateclaw/privateclaw@latest");
236
+ const manualInstallSteps = createManualNpmArchiveInstallSteps("@privateclaw/privateclaw@latest");
169
237
  const updateStep = createStep("Update the existing PrivateClaw OpenClaw plugin", "openclaw", ["plugins", "update", "privateclaw"], "openclaw plugins update privateclaw");
170
238
  const enableStep = createStep("Enable the PrivateClaw OpenClaw plugin", "openclaw", ["plugins", "enable", "privateclaw"], "openclaw plugins enable privateclaw");
171
239
  const configStep = createStep("Point PrivateClaw at the public relay URL", "openclaw", [
@@ -187,7 +255,7 @@ export function buildRelayProviderSetupPlan(params) {
187
255
  privateClawCommandAvailable: false,
188
256
  introduction: "[privateclaw-relay] To connect an OpenClaw machine to this relay, run these commands on the machine where `openclaw` is installed:",
189
257
  automaticSteps: [],
190
- manualSteps: [installStep, enableStep, configStep, restartStep],
258
+ manualSteps: [...manualInstallSteps, enableStep, configStep, restartStep],
191
259
  verificationNotes,
192
260
  pairingCommand,
193
261
  };
@@ -250,6 +318,10 @@ async function promptForConfirmation(question) {
250
318
  }
251
319
  }
252
320
  async function runRelayProviderSetupStep(step) {
321
+ if (step.kind === "npm-pack-install") {
322
+ await runRelayNpmPackInstallStep(step);
323
+ return;
324
+ }
253
325
  const child = spawn(step.command, step.args, {
254
326
  stdio: "inherit",
255
327
  });
@@ -1 +1 @@
1
- {"version":3,"file":"provider-setup.js","sourceRoot":"","sources":["../src/provider-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AA+BnD,MAAM,gCAAgC,GAAG,kCAAkC,CAAC;AAwB5E,SAAS,UAAU,CACjB,KAAa,EACb,OAAe,EACf,IAAc,EACd,OAAe;IAEf,OAAO;QACL,KAAK;QACL,OAAO;QACP,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC;AAED,SAAS,yBAAyB,CAAC,KAAc;IAC/C,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;IAChE,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,CAAC;AACpE,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO,OAAO,CACZ,OAAO,CAAC,KAAK,CAAC,KAAK;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK;QACpB,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS;QACxB,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAC5B,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,OAAe,EACf,IAAc;IAEd,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,UAAU,IAAI,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,UAAU,IAAI,KAAK,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;QACvD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,MAAM;KACP,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBACvC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAC/D,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,IAAc;IAEd,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACjC,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC,CAAC;IACH,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,UAAU,IAAI,KAAK,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;QACxC,UAAU,IAAI,KAAK,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;QACvD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,MAAM;KACP,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,GAAG,UAAU,GAAG,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC;YACrD,MAAM,IAAI,iBAAiB,CACzB,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,kBACvC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAC/D,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,UAAU;YAClB,QAAQ,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE;SACvC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,OAAO,sCAAsC,CAC7G,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAAe,EACf,aAAmC,iBAAiB;IAEpD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,OAAO,wCAAwC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,oCAAoC,CACjD,UAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC/E,OAAO,2BAA2B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,UAAgC;IAEhC,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc;IACpD,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC1B,CAAC,CAAC;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;SACtE;QACH,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;YAClC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IAE7C,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,aAAmC,iBAAiB;IAEpD,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,iBAAiB,EAAE,KAAK;YACxB,2BAA2B,EAAE,KAAK;SACnC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,2BAA2B,EAAE,wBAAwB,CAAC,GAC3D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,oCAAoC,CAAC,UAAU,CAAC;QAChD,+BAA+B,CAAC,UAAU,CAAC;KAC5C,CAAC,CAAC;IAEL,OAAO;QACL,iBAAiB,EAAE,IAAI;QACvB,2BAA2B;QAC3B,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAG3C;IACC,MAAM,WAAW,GAAG,UAAU,CAC5B,yCAAyC,EACzC,UAAU,EACV,CAAC,SAAS,EAAE,SAAS,EAAE,iCAAiC,CAAC,EACzD,0DAA0D,CAC3D,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAC3B,iDAAiD,EACjD,UAAU,EACV,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,EACpC,qCAAqC,CACtC,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAC3B,wCAAwC,EACxC,UAAU,EACV,CAAC,SAAS,EAAE,QAAQ,EAAE,aAAa,CAAC,EACpC,qCAAqC,CACtC,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAC3B,2CAA2C,EAC3C,UAAU,EACV;QACE,QAAQ;QACR,KAAK;QACL,iDAAiD;QACjD,MAAM,CAAC,YAAY;KACpB,EACD,uEAAuE,MAAM,CAAC,YAAY,EAAE,CAC7F,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAC5B,wEAAwE,EACxE,UAAU,EACV,CAAC,SAAS,EAAE,SAAS,CAAC,EACtB,0BAA0B,CAC3B,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAC/B,+BAA+B,EAC/B,UAAU,EACV,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,EAClE,6CAA6C,MAAM,CAAC,YAAY,EAAE,CACnE,CAAC;IACF,MAAM,iBAAiB,GAAG;QACxB,4EAA4E,gCAAgC,EAAE;QAC9G,+EAA+E,cAAc,CAAC,OAAO,EAAE;KACxG,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;QACrC,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,KAAK;YACpB,2BAA2B,EAAE,KAAK;YAClC,YAAY,EACV,oIAAoI;YACtI,cAAc,EAAE,EAAE;YAClB,WAAW,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;YAC/D,iBAAiB;YACjB,cAAc;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,2BAA2B,EAAE,CAAC;QAC9C,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,aAAa,EAAE,IAAI;YACnB,2BAA2B,EAAE,IAAI;YACjC,YAAY,EACV,kHAAkH;YACpH,cAAc,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;YACzC,WAAW,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;YACtC,iBAAiB;YACjB,cAAc;SACf,CAAC;IACJ,CAAC;IAED,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,aAAa,EAAE,IAAI;QACnB,2BAA2B,EAAE,KAAK;QAClC,YAAY,EACV,MAAM,CAAC,MAAM,CAAC,wBAAwB;YACpC,CAAC,CAAC,wIAAwI;YAC1I,CAAC,CAAC,0GAA0G;QAChH,cAAc,EAAE;YACd,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1E,UAAU;YACV,UAAU;YACV,WAAW;SACZ;QACD,WAAW,EAAE;YACX,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;YAC1E,UAAU;YACV,UAAU;YACV,WAAW;SACZ;QACD,iBAAiB;QACjB,cAAc;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,IAA4B;IAE5B,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,YAAY;QACjB,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1E,GAAG,IAAI,CAAC,iBAAiB;KAC1B,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,QAAgB;IACnD,MAAM,EAAE,GAAG,eAAe,CAAC;QACzB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,OAAO,UAAU,KAAK,EAAE,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC;IACzE,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,IAA4B;IAE5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE;QAC3C,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;QACvD,MAAM,KAAK,CAAC;IACd,CAAC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAChE,IAAI;QACJ,MAAM;KACP,CAAC,CAAC,CAAC;IAEJ,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,iBAAiB,CACzB,aAAa,IAAI,CAAC,OAAO,kBACvB,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,EAC/D,GAAG,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,iBAAiB,CACzB,mBAAmB,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAC,OAAO,sCAAsC,CAClG,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,sBAAsB,CAC7B,UAAkB,EAClB,SAAiB;IAEjB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC1C,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,KAAK,UAAU,qCAAqC,CAClD,YAAgD,EAChD,SAAiB,EACjB,MAAc;IAEd,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,IAAI,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,OACE,MAAM,CAAC,iBAAiB;QACxB,CAAC,MAAM,CAAC,2BAA2B;QACnC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EACrB,CAAC;QACD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuC;IAEvC,MAAM,YAAY,GAChB,OAAO,CAAC,yBAAyB,IAAI,yBAAyB,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;IACpC,MAAM,IAAI,GAAG,2BAA2B,CAAC;QACvC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,MAAM;KACP,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,gCAAgC,CAAC,IAAI,CAAC,CAAC;IAExD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO;IACT,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,IAAI,qBAAqB,EAAE,CAAC;IACrE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,qBAAqB,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,yBAAyB,CAAC;IAC7D,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAC/D,mBAAmB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,iBAAiB,CAAC;IAC7D,MAAM,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,IAAI,MAAM,CAAC;IACtE,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,KAAK,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,gBAAgB,CACzC,IAAI,CAAC,2BAA2B;QAC9B,CAAC,CAAC,kFAAkF,OAAO,CAAC,YAAY,OAAO;QAC/G,CAAC,CAAC,MAAM,CAAC,wBAAwB;YAC/B,CAAC,CAAC,sFAAsF,OAAO,CAAC,YAAY,OAAO;YACnH,CAAC,CAAC,uFAAuF,OAAO,CAAC,YAAY,OAAO,CACzH,CAAC;IAEF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,EAAE,CACb,wEAAwE,CACzE,CAAC;QACF,OAAO;IACT,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,EAAE,CAAC,gCAAgC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,CACb,sEAAsE,CACvE,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,qCAAqC,CACjE,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,CACnB,CAAC;IACF,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC;QACjD,MAAM,IAAI,iBAAiB,CACzB,uEAAuE,gCAAgC,wFAAwF,CAChM,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,KAAK,EAAE,CACb,uEAAuE,gCAAgC,KAAK,CAC7G,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1C,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAC9C,8DAA8D,CAC/D,CAAC;IACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,CACb,+DAA+D,CAChE,CAAC;QACF,OAAO;IACT,CAAC;IAED,OAAO,CAAC,KAAK,EAAE,CACb,gCAAgC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAC9D,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnE,MAAM,SAAS,GAAG,2BAA2B,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,EAAE,CACb,mJAAmJ,CACpJ,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,EAAE,CACb,uKAAuK,CACxK,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,sBAAsB,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC3E,OAAO,CAAC,KAAK,EAAE,CACb,6DAA6D,YAAY,EAAE,CAC5E,CAAC;IACF,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,EAAE,CACb,iEAAiE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC1H,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"provider-setup.js","sourceRoot":"","sources":["../src/provider-setup.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  <meta name="description" content="PrivateClaw gives you beautiful, private rooms for the people you trust around one shared OpenClaw." />
8
8
  <title>PrivateClaw</title>
9
9
  <link rel="icon" type="image/png" href="./assets/privateclaw_app_icon.png?v=20260314-2" />
10
- <link rel="stylesheet" href="./styles.css?v=20260316-3" />
10
+ <link rel="stylesheet" href="./styles.css?v=20260322-2" />
11
11
  </head>
12
12
  <body class="marketing-page">
13
13
  <div class="aurora aurora-a"></div>
@@ -169,6 +169,6 @@
169
169
  </footer>
170
170
  </div>
171
171
 
172
- <script type="module" src="./scripts/site.js?v=20260316-3"></script>
172
+ <script type="module" src="./scripts/site.js?v=20260324-1"></script>
173
173
  </body>
174
174
  </html>
@@ -1,4 +1,4 @@
1
- import { applyTranslations, bindLocaleSelect, onLocaleChange, t } from "./i18n.js?v=20260318-1";
1
+ import { applyTranslations, bindLocaleSelect, onLocaleChange, t } from "./i18n.js?v=20260324-1";
2
2
  import {
3
3
  createIdentity,
4
4
  decodeBase64,
@@ -108,42 +108,44 @@ const BUNDLES = {
108
108
  body: "Spin up an invite-only room when you need a focused conversation without dragging people into another public chat silo.",
109
109
  },
110
110
  ],
111
- setupKicker: "Quick setup",
112
- setupTitle: "Get the provider ready in five short steps.",
111
+ setupKicker: "Simple install",
112
+ setupTitle: "Start with one command. Keep the manual path as backup.",
113
113
  setupBody:
114
- "If you already run OpenClaw, PrivateClaw is mostly a quick plugin setup. The public relay is already preconfigured, so the relay override is only needed for your own deployment.",
114
+ "On a fresh machine, the recommended path is the one-command npx wizard. It installs or updates the provider, enables it, restarts the gateway if needed, and starts pairing for you. The longer OpenClaw plugin flow is still here as a backup when you want full control or your own relay from the start.",
115
115
  setupSteps: [
116
116
  {
117
- step: "Step 1",
118
- title: "Install the provider",
119
- body: "Add the official PrivateClaw plugin from npm.",
120
- commands: ["openclaw plugins install @privateclaw/privateclaw@latest"],
117
+ step: "Recommended",
118
+ title: "Run the one-command setup wizard",
119
+ body: "Use this first on a fresh machine. The wizard handles install or update, enables the plugin, confirms the command is ready, and walks you straight into pairing.",
120
+ commands: ["npx -y @privateclaw/privateclaw@latest"],
121
+ note: "The wizard will ask whether you want a single chat or group chat, then let you choose a session duration from 30 minutes to permanent.",
122
+ featured: true,
123
+ variant: "recommended",
121
124
  },
122
125
  {
123
- step: "Step 2",
124
- title: "Enable it",
125
- body: "Turn the plugin on in your OpenClaw install.",
126
- commands: ["openclaw plugins enable privateclaw"],
127
- },
128
- {
129
- step: "Step 3",
130
- title: "Optional: use your own relay",
131
- body: "Skip this if you are happy with the default public relay at https://relay.privateclaw.us.",
126
+ step: "Backup",
127
+ title: "Manually install the plugin if you prefer",
128
+ body: "Choose this path only when you want to manage OpenClaw yourself or point at your own relay before pairing. Recent OpenClaw builds check ClawHub first for bare npm specs, so the reliable manual route is to pack the npm package locally and install the generated archive.",
132
129
  commands: [
130
+ "npm pack @privateclaw/privateclaw@latest",
131
+ "openclaw plugins install ./privateclaw-privateclaw-*.tgz",
132
+ "openclaw plugins enable privateclaw",
133
133
  "openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com",
134
134
  ],
135
+ note: "Skip the relay command if you are happy with the default public relay at https://relay.privateclaw.us. The generated archive will be named like `privateclaw-privateclaw-0.x.y.tgz`.",
136
+ variant: "fallback",
135
137
  },
136
138
  {
137
- step: "Step 4",
138
- title: "Restart the gateway",
139
- body: "Restart the running openclaw start process or whichever service hosts your gateway so the new plugin and config are reloaded.",
140
- },
141
- {
142
- step: "Step 5",
143
- title: "Generate a QR invite",
144
- body: "In any OpenClaw chat channel, create a room invite and let people scan it into PrivateClaw.",
145
- commands: ["/privateclaw", "/privateclaw group"],
146
- note: "Use `/privateclaw group` when you want multiple people sharing the same room.",
139
+ step: "Backup",
140
+ title: "Then restart and pair locally or from chat",
141
+ body: "If you used the manual path, restart the OpenClaw gateway, then either run the local pairing command or create a room invite from an existing OpenClaw chat channel.",
142
+ commands: [
143
+ "openclaw privateclaw pair --open",
144
+ "/privateclaw",
145
+ "/privateclaw group",
146
+ ],
147
+ note: "Use `openclaw privateclaw pair --group --open` or `/privateclaw group` when you want multiple people sharing the same room.",
148
+ variant: "fallback",
147
149
  },
148
150
  ],
149
151
  betaKicker: "Early access",
@@ -391,42 +393,44 @@ const BUNDLES = {
391
393
  body: "当你需要一个短期、专注、非公开的讨论空间时,随时开一个邀请制房间。",
392
394
  },
393
395
  ],
394
- setupKicker: "快速配置",
395
- setupTitle: "五个步骤,把 Provider 准备好。",
396
+ setupKicker: "简单安装",
397
+ setupTitle: "先用一条命令跑起来,复杂安装留作备用。",
396
398
  setupBody:
397
- "如果你已经在使用 OpenClaw,PrivateClaw 基本就是一次轻量插件配置。默认公共 relay 已经预设好,只有在你想切到自己的部署时,才需要额外写 relay 地址。",
399
+ "在新机器上,推荐直接使用一条 `npx` 命令启动向导。它会自动安装或更新 Provider、启用插件、在需要时重启网关,然后直接开始配对。只有当你想自己管理 OpenClaw 插件流程,或一开始就切到自己的 relay 时,再走手动模式。",
398
400
  setupSteps: [
399
401
  {
400
- step: "步骤 1",
401
- title: "安装 Provider",
402
- body: "通过 npm 安装官方 PrivateClaw 插件。",
403
- commands: ["openclaw plugins install @privateclaw/privateclaw@latest"],
404
- },
405
- {
406
- step: "步骤 2",
407
- title: "启用插件",
408
- body: "在你的 OpenClaw 安装里把它打开。",
409
- commands: ["openclaw plugins enable privateclaw"],
402
+ step: "推荐",
403
+ title: "先运行这一条命令",
404
+ body: "这是新机器上最快的方式。向导会处理安装或更新、启用插件、确认命令已经就绪,并马上进入配对流程。",
405
+ commands: ["npx -y @privateclaw/privateclaw@latest"],
406
+ note: "向导会询问你要单聊还是群聊,并让你选择会话时长:30 分钟、2/4/8/24 小时、1 周、1 个月、1 年或永久。",
407
+ featured: true,
408
+ variant: "recommended",
410
409
  },
411
410
  {
412
- step: "步骤 3",
413
- title: "可选:切到自己的 relay",
414
- body: "如果你直接使用默认公共 relay `https://relay.privateclaw.us`,这一步可以跳过。",
411
+ step: "备用",
412
+ title: "如果你想自己掌控,就手动安装",
413
+ body: "只有在你想手工管理插件,或想一开始就指向自己的 relay 时,才使用这条路径。最近的 OpenClaw 对裸 npm spec 会先查 ClawHub,所以更稳妥的手动路径是先把 npm 包打成本地归档,再安装生成的 `.tgz`。",
415
414
  commands: [
415
+ "npm pack @privateclaw/privateclaw@latest",
416
+ "openclaw plugins install ./privateclaw-privateclaw-*.tgz",
417
+ "openclaw plugins enable privateclaw",
416
418
  "openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com",
417
419
  ],
420
+ note: "如果你直接使用默认公共 relay `https://relay.privateclaw.us`,第四条可以跳过。生成的归档名会类似 `privateclaw-privateclaw-0.x.y.tgz`。",
421
+ variant: "fallback",
418
422
  },
419
423
  {
420
- step: "步骤 4",
421
- title: "重启网关",
422
- body: "重启正在运行的 `openclaw start` 进程,或者你用来托管 gateway 的服务,让插件和配置重新加载。",
423
- },
424
- {
425
- step: "步骤 5",
426
- title: "生成二维码邀请",
427
- body: "在任意 OpenClaw 聊天渠道里生成房间邀请,然后让大家扫码进入 PrivateClaw。",
428
- commands: ["/privateclaw", "/privateclaw group"],
429
- note: "如果你想让多人共享同一个房间,就使用 `/privateclaw group`。",
424
+ step: "备用",
425
+ title: "然后重启,并从本地或聊天渠道发起配对",
426
+ body: "如果你走的是手动路径,先重启 OpenClaw gateway,然后要么直接运行本地配对命令,要么在任意现有 OpenClaw 聊天渠道里生成二维码邀请。",
427
+ commands: [
428
+ "openclaw privateclaw pair --open",
429
+ "/privateclaw",
430
+ "/privateclaw group",
431
+ ],
432
+ note: "如果你想让多人共享同一个房间,可以使用 `openclaw privateclaw pair --group --open` 或 `/privateclaw group`。",
433
+ variant: "fallback",
430
434
  },
431
435
  ],
432
436
  betaKicker: "抢先体验",
@@ -662,42 +666,44 @@ const BUNDLES = {
662
666
  body: "當你需要一個短期、專注、非公開的討論空間時,隨時開一個邀請制房間。",
663
667
  },
664
668
  ],
665
- setupKicker: "快速設定",
666
- setupTitle: "五個步驟,把 Provider 準備好。",
669
+ setupKicker: "簡單安裝",
670
+ setupTitle: "先用一條命令跑起來,複雜安裝留作備用。",
667
671
  setupBody:
668
- "如果你已經在使用 OpenClaw,PrivateClaw 基本上只需要一次輕量的外掛設定。預設公共 relay 已經內建,只有當你想切到自己的部署時,才需要額外設定 relay 位址。",
672
+ "在新機器上,建議直接使用一條 `npx` 指令啟動精靈。它會自動安裝或更新 Provider、啟用外掛、在需要時重新啟動 gateway,然後直接開始配對。只有當你想自己管理 OpenClaw 外掛流程,或一開始就切到自己的 relay 時,再走手動模式。",
669
673
  setupSteps: [
670
674
  {
671
- step: "步驟 1",
672
- title: "安裝 Provider",
673
- body: "透過 npm 安裝官方 PrivateClaw 外掛。",
674
- commands: ["openclaw plugins install @privateclaw/privateclaw@latest"],
675
- },
676
- {
677
- step: "步驟 2",
678
- title: "啟用外掛",
679
- body: "在你的 OpenClaw 安裝裡把它打開。",
680
- commands: ["openclaw plugins enable privateclaw"],
675
+ step: "建議",
676
+ title: "先執行這一條指令",
677
+ body: "這是新機器上最快的方式。精靈會處理安裝或更新、啟用外掛、確認指令已經就緒,並立刻進入配對流程。",
678
+ commands: ["npx -y @privateclaw/privateclaw@latest"],
679
+ note: "精靈會詢問你要單聊還是群聊,並讓你選擇會話時長:30 分鐘、2/4/8/24 小時、1 週、1 個月、1 年或永久。",
680
+ featured: true,
681
+ variant: "recommended",
681
682
  },
682
683
  {
683
- step: "步驟 3",
684
- title: "可選:切到自己的 relay",
685
- body: "如果你直接使用預設公共 relay `https://relay.privateclaw.us`,這一步可以略過。",
684
+ step: "備用",
685
+ title: "如果你想自己掌控,就手動安裝",
686
+ body: "只有在你想手動管理外掛,或想一開始就指向自己的 relay 時,才使用這條路徑。最近的 OpenClaw 對裸 npm spec 會先查 ClawHub,所以更穩妥的手動路徑是先把 npm 套件打成本地封存,再安裝產生的 `.tgz`。",
686
687
  commands: [
688
+ "npm pack @privateclaw/privateclaw@latest",
689
+ "openclaw plugins install ./privateclaw-privateclaw-*.tgz",
690
+ "openclaw plugins enable privateclaw",
687
691
  "openclaw config set plugins.entries.privateclaw.config.relayBaseUrl https://your-relay.example.com",
688
692
  ],
693
+ note: "如果你直接使用預設公共 relay `https://relay.privateclaw.us`,第四條可以略過。產生的封存檔名會類似 `privateclaw-privateclaw-0.x.y.tgz`。",
694
+ variant: "fallback",
689
695
  },
690
696
  {
691
- step: "步驟 4",
692
- title: "重新啟動 gateway",
693
- body: "重新啟動正在執行的 `openclaw start` 行程,或你用來託管 gateway 的服務,讓外掛與設定重新載入。",
694
- },
695
- {
696
- step: "步驟 5",
697
- title: "產生 QR 邀請",
698
- body: "在任意 OpenClaw 聊天渠道裡建立房間邀請,然後讓大家掃碼加入 PrivateClaw。",
699
- commands: ["/privateclaw", "/privateclaw group"],
700
- note: "如果你想讓多人共享同一個房間,就使用 `/privateclaw group`。",
697
+ step: "備用",
698
+ title: "然後重新啟動,並從本地或聊天渠道開始配對",
699
+ body: "如果你走的是手動路徑,先重新啟動 OpenClaw gateway,然後可以直接執行本地配對指令,或在任意既有的 OpenClaw 聊天渠道裡產生 QR 邀請。",
700
+ commands: [
701
+ "openclaw privateclaw pair --open",
702
+ "/privateclaw",
703
+ "/privateclaw group",
704
+ ],
705
+ note: "如果你想讓多人共享同一個房間,可以使用 `openclaw privateclaw pair --group --open` 或 `/privateclaw group`。",
706
+ variant: "fallback",
701
707
  },
702
708
  ],
703
709
  betaKicker: "搶先體驗",
@@ -1,4 +1,4 @@
1
- import { applyTranslations, bindLocaleSelect, getLocale, onLocaleChange } from "./i18n.js?v=20260316-3";
1
+ import { applyTranslations, bindLocaleSelect, getLocale, onLocaleChange } from "./i18n.js?v=20260324-1";
2
2
 
3
3
  const POLICY_BUNDLES = {
4
4
  en: {
@@ -1,4 +1,4 @@
1
- import { applyTranslations, bindLocaleSelect, getValue, onLocaleChange, t } from "./i18n.js?v=20260316-3";
1
+ import { applyTranslations, bindLocaleSelect, getValue, onLocaleChange, t } from "./i18n.js?v=20260324-1";
2
2
 
3
3
  const localeSelect = document.getElementById("locale-select");
4
4
  const webEntry = document.getElementById("web-entry");
@@ -95,6 +95,12 @@ function renderSetupSteps() {
95
95
  for (const item of steps) {
96
96
  const card = document.createElement("article");
97
97
  card.className = "setup-card";
98
+ if (item.featured) {
99
+ card.classList.add("setup-card-featured");
100
+ }
101
+ if (typeof item.variant === "string" && item.variant.trim() !== "") {
102
+ card.classList.add(`setup-card-${item.variant.trim().toLowerCase()}`);
103
+ }
98
104
 
99
105
  const stepLabel = document.createElement("div");
100
106
  stepLabel.className = "setup-step-label";
@@ -602,6 +602,24 @@ img {
602
602
  box-shadow: 0 18px 42px rgba(0, 0, 0, 0.2);
603
603
  }
604
604
 
605
+ .setup-card-featured {
606
+ grid-column: span 2;
607
+ padding: 22px;
608
+ }
609
+
610
+ .setup-card-recommended {
611
+ border-color: rgba(62, 217, 255, 0.32);
612
+ background:
613
+ linear-gradient(160deg, rgba(143, 125, 255, 0.18), rgba(62, 217, 255, 0.1)),
614
+ rgba(5, 9, 20, 0.62);
615
+ }
616
+
617
+ .setup-card-fallback {
618
+ background:
619
+ linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02)),
620
+ rgba(5, 9, 20, 0.46);
621
+ }
622
+
605
623
  .setup-step-label {
606
624
  color: var(--accent-2);
607
625
  font-size: 0.82rem;
@@ -609,6 +627,14 @@ img {
609
627
  text-transform: uppercase;
610
628
  }
611
629
 
630
+ .setup-card-recommended .setup-step-label {
631
+ color: #91f5ff;
632
+ }
633
+
634
+ .setup-card-fallback .setup-step-label {
635
+ color: rgba(200, 221, 255, 0.72);
636
+ }
637
+
612
638
  .setup-card p {
613
639
  margin: 0;
614
640
  }
@@ -1493,6 +1519,10 @@ details.thinking-trace-card > summary::-webkit-details-marker {
1493
1519
  .community-card {
1494
1520
  flex-direction: column;
1495
1521
  }
1522
+
1523
+ .setup-card-featured {
1524
+ grid-column: auto;
1525
+ }
1496
1526
  }
1497
1527
 
1498
1528
  @media (max-width: 720px) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privateclaw/privateclaw-relay",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Blind WebSocket relay for PrivateClaw encrypted sessions with local CLI startup and optional Tailscale Funnel or Cloudflare Tunnel exposure",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",