claudemesh-cli 0.9.5 → 0.9.6

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.
Files changed (2) hide show
  1. package/dist/index.js +35 -35
  2. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -40069,7 +40069,7 @@ function moveTo(row, col) {
40069
40069
  function visibleLength(s) {
40070
40070
  return s.replace(/\x1b\[[^m]*m/g, "").length;
40071
40071
  }
40072
- var isTTY, esc2 = (code) => (s) => isTTY ? `${code}${s}\x1B[0m` : s, orange, clay, amber, bold2, dim, green2, yellow, red, cyan2, boldOrange, HIDE_CURSOR, SHOW_CURSOR, CLEAR_SCREEN, CLEAR_LINE;
40072
+ var isTTY, esc2 = (code) => (s) => isTTY ? `${code}${s}\x1B[0m` : s, orange, clay, amber, bold2, dim, green, yellow, red, cyan2, boldOrange, HIDE_CURSOR, SHOW_CURSOR, CLEAR_SCREEN, CLEAR_LINE;
40073
40073
  var init_colors = __esm(() => {
40074
40074
  isTTY = process.stdout.isTTY && !process.env.NO_COLOR && process.env.TERM !== "dumb";
40075
40075
  orange = esc2("\x1B[38;5;208m");
@@ -40077,7 +40077,7 @@ var init_colors = __esm(() => {
40077
40077
  amber = esc2("\x1B[38;5;214m");
40078
40078
  bold2 = esc2("\x1B[1m");
40079
40079
  dim = esc2("\x1B[2m");
40080
- green2 = esc2("\x1B[32m");
40080
+ green = esc2("\x1B[32m");
40081
40081
  yellow = esc2("\x1B[33m");
40082
40082
  red = esc2("\x1B[31m");
40083
40083
  cyan2 = esc2("\x1B[36m");
@@ -40093,7 +40093,7 @@ var package_default;
40093
40093
  var init_package = __esm(() => {
40094
40094
  package_default = {
40095
40095
  name: "claudemesh-cli",
40096
- version: "0.9.5",
40096
+ version: "0.9.6",
40097
40097
  description: "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
40098
40098
  keywords: [
40099
40099
  "claude-code",
@@ -54154,11 +54154,11 @@ async function runLaunchWizard(opts) {
54154
54154
  });
54155
54155
  spinner.start();
54156
54156
  let row = formRow;
54157
- writeCentered(row, `Directory ${green2("✓")} ${process.cwd()}`);
54157
+ writeCentered(row, `Directory ${green("✓")} ${process.cwd()}`);
54158
54158
  row++;
54159
- writeCentered(row, `Name ${green2("✓")} ${opts.displayName}`);
54159
+ writeCentered(row, `Name ${green("✓")} ${opts.displayName}`);
54160
54160
  row++;
54161
- writeCentered(row, `Mesh ${green2("✓")} ${opts.meshSlug}`);
54161
+ writeCentered(row, `Mesh ${green("✓")} ${opts.meshSlug}`);
54162
54162
  row += 2;
54163
54163
  let role = opts.existingRole;
54164
54164
  let groups = opts.existingGroups;
@@ -54171,7 +54171,7 @@ async function runLaunchWizard(opts) {
54171
54171
  spinner.start();
54172
54172
  row++;
54173
54173
  } else {
54174
- writeCentered(row, `Role ${green2("✓")} ${role}`);
54174
+ writeCentered(row, `Role ${green("✓")} ${role}`);
54175
54175
  row++;
54176
54176
  }
54177
54177
  if (groups.length === 0) {
@@ -54183,7 +54183,7 @@ async function runLaunchWizard(opts) {
54183
54183
  row++;
54184
54184
  } else {
54185
54185
  const tags = groups.map((g) => `@${g.name}${g.role ? `:${g.role}` : ""}`).join(", ");
54186
- writeCentered(row, `Groups ${green2("✓")} ${tags}`);
54186
+ writeCentered(row, `Groups ${green("✓")} ${tags}`);
54187
54187
  row++;
54188
54188
  }
54189
54189
  if (opts.existingMessageMode === null) {
@@ -54202,7 +54202,7 @@ async function runLaunchWizard(opts) {
54202
54202
  spinner.start();
54203
54203
  row += 5;
54204
54204
  } else {
54205
- writeCentered(row, `Messages ${green2("✓")} ${messageMode}`);
54205
+ writeCentered(row, `Messages ${green("✓")} ${messageMode}`);
54206
54206
  row++;
54207
54207
  }
54208
54208
  let skipPermissions = opts.skipPermConfirm;
@@ -54307,7 +54307,7 @@ async function runLaunch(flags, rawArgs) {
54307
54307
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
54308
54308
  const bold3 = (s) => useColor ? `\x1B[1m${s}\x1B[22m` : s;
54309
54309
  const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
54310
- const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
54310
+ const green2 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
54311
54311
  const code = generatePairingCode();
54312
54312
  const listener = await startCallbackListener();
54313
54313
  const url = `https://claudemesh.com/cli-auth?port=${listener.port}&code=${code}&action=sync`;
@@ -54366,7 +54366,7 @@ async function runLaunch(flags, rawArgs) {
54366
54366
  saveConfig2(config2);
54367
54367
  justSynced = true;
54368
54368
  console.log(`
54369
- ${green3("✓")} Synced ${result.meshes.length} mesh(es): ${result.meshes.map((m) => m.slug).join(", ")}
54369
+ ${green2("✓")} Synced ${result.meshes.length} mesh(es): ${result.meshes.map((m) => m.slug).join(", ")}
54370
54370
  `);
54371
54371
  }
54372
54372
  if (config2.meshes.length === 0) {
@@ -54632,7 +54632,7 @@ async function probeBroker(url, timeoutMs = 4000) {
54632
54632
  async function runStatus() {
54633
54633
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
54634
54634
  const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
54635
- const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
54635
+ const green2 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
54636
54636
  const red2 = (s) => useColor ? `\x1B[31m${s}\x1B[39m` : s;
54637
54637
  console.log(`claudemesh status (v${VERSION})`);
54638
54638
  console.log("─".repeat(60));
@@ -54664,7 +54664,7 @@ async function runStatus() {
54664
54664
  error: probe.error
54665
54665
  });
54666
54666
  if (probe.ok) {
54667
- console.log(green3("reachable"));
54667
+ console.log(green2("reachable"));
54668
54668
  } else {
54669
54669
  console.log(red2(`unreachable (${probe.error})`));
54670
54670
  }
@@ -54676,7 +54676,7 @@ async function runStatus() {
54676
54676
  const allOk = results.every((r) => r.reachable);
54677
54677
  console.log("");
54678
54678
  if (allOk) {
54679
- console.log(green3("All meshes reachable."));
54679
+ console.log(green2("All meshes reachable."));
54680
54680
  process.exit(0);
54681
54681
  } else {
54682
54682
  const broken = results.filter((r) => !r.reachable).length;
@@ -54837,7 +54837,7 @@ function checkKeypairs() {
54837
54837
  async function runDoctor() {
54838
54838
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
54839
54839
  const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
54840
- const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
54840
+ const green2 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
54841
54841
  const red2 = (s) => useColor ? `\x1B[31m${s}\x1B[39m` : s;
54842
54842
  console.log(`claudemesh doctor (v${VERSION})`);
54843
54843
  console.log("─".repeat(60));
@@ -54850,7 +54850,7 @@ async function runDoctor() {
54850
54850
  checkKeypairs()
54851
54851
  ];
54852
54852
  for (const c of checks3) {
54853
- const mark = c.pass ? green3("✓") : red2("✗");
54853
+ const mark = c.pass ? green2("✓") : red2("✗");
54854
54854
  const detail = c.detail ? dim2(` (${c.detail})`) : "";
54855
54855
  console.log(`${mark} ${c.name}${detail}`);
54856
54856
  if (!c.pass && c.fix) {
@@ -54860,7 +54860,7 @@ async function runDoctor() {
54860
54860
  const failing = checks3.filter((c) => !c.pass);
54861
54861
  console.log("");
54862
54862
  if (failing.length === 0) {
54863
- console.log(green3("All checks passed."));
54863
+ console.log(green2("All checks passed."));
54864
54864
  process.exit(0);
54865
54865
  } else {
54866
54866
  console.log(red2(`${failing.length} check(s) failed.`));
@@ -54933,14 +54933,14 @@ async function runWelcome() {
54933
54933
  });
54934
54934
  exitFullScreen();
54935
54935
  if (choice === 0) {
54936
- console.log(green2("$") + ` claudemesh install
54936
+ console.log(green("$") + ` claudemesh install
54937
54937
  `);
54938
54938
  }
54939
54939
  break;
54940
54940
  }
54941
54941
  case "no-meshes": {
54942
- writeCentered(contentRow, green2("✓") + " MCP registered. Now join a mesh.");
54943
- writeCentered(contentRow + 2, dim("MCP server ") + green2("✓") + dim(" registered"));
54942
+ writeCentered(contentRow, green("✓") + " MCP registered. Now join a mesh.");
54943
+ writeCentered(contentRow + 2, dim("MCP server ") + green("✓") + dim(" registered"));
54944
54944
  writeCentered(contentRow + 3, dim("Mesh ") + yellow("○") + dim(" none joined"));
54945
54945
  menuRow = contentRow + 5;
54946
54946
  spinner.stop();
@@ -54955,11 +54955,11 @@ async function runWelcome() {
54955
54955
  });
54956
54956
  exitFullScreen();
54957
54957
  if (choice === 0) {
54958
- console.log(green2("$") + ` claudemesh join https://claudemesh.com/join/<token>
54958
+ console.log(green("$") + ` claudemesh join https://claudemesh.com/join/<token>
54959
54959
  `);
54960
54960
  console.log(dim(" Don't have an invite? Create one at ") + bold2("https://claudemesh.com") + dim(" or ask a mesh owner."));
54961
54961
  } else if (choice === 1) {
54962
- console.log(green2("$") + ` claudemesh create
54962
+ console.log(green("$") + ` claudemesh create
54963
54963
  `);
54964
54964
  }
54965
54965
  break;
@@ -54967,8 +54967,8 @@ async function runWelcome() {
54967
54967
  case "ready": {
54968
54968
  const cfg = loadConfig();
54969
54969
  const meshNames = cfg.meshes.map((m) => m.slug).join(", ");
54970
- writeCentered(contentRow, green2("✓") + " MCP registered");
54971
- writeCentered(contentRow + 1, green2("✓") + ` ${cfg.meshes.length} mesh(es): ${meshNames}`);
54970
+ writeCentered(contentRow, green("✓") + " MCP registered");
54971
+ writeCentered(contentRow + 1, green("✓") + ` ${cfg.meshes.length} mesh(es): ${meshNames}`);
54972
54972
  writeCentered(contentRow + 2, "");
54973
54973
  writeCentered(contentRow + 3, bold2("Ready to launch."));
54974
54974
  menuRow = contentRow + 5;
@@ -54987,19 +54987,19 @@ async function runWelcome() {
54987
54987
  exitFullScreen();
54988
54988
  switch (choice) {
54989
54989
  case 0:
54990
- console.log(green2("$") + ` claudemesh launch
54990
+ console.log(green("$") + ` claudemesh launch
54991
54991
  `);
54992
54992
  break;
54993
54993
  case 1:
54994
- console.log(green2("$") + ` claudemesh peers
54994
+ console.log(green("$") + ` claudemesh peers
54995
54995
  `);
54996
54996
  break;
54997
54997
  case 2:
54998
- console.log(green2("$") + ` claudemesh status
54998
+ console.log(green("$") + ` claudemesh status
54999
54999
  `);
55000
55000
  break;
55001
55001
  case 3:
55002
- console.log(green2("$") + ` claudemesh doctor
55002
+ console.log(green("$") + ` claudemesh doctor
55003
55003
  `);
55004
55004
  break;
55005
55005
  }
@@ -55016,7 +55016,7 @@ async function runWelcome() {
55016
55016
  });
55017
55017
  exitFullScreen();
55018
55018
  if (choice === 0) {
55019
- console.log(green2("$") + ` claudemesh doctor
55019
+ console.log(green("$") + ` claudemesh doctor
55020
55020
  `);
55021
55021
  }
55022
55022
  break;
@@ -55087,7 +55087,7 @@ async function runPeers(flags) {
55087
55087
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
55088
55088
  const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
55089
55089
  const bold3 = (s) => useColor ? `\x1B[1m${s}\x1B[22m` : s;
55090
- const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
55090
+ const green2 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
55091
55091
  const yellow2 = (s) => useColor ? `\x1B[33m${s}\x1B[39m` : s;
55092
55092
  await withMesh({ meshSlug: flags.mesh ?? null }, async (client2, mesh) => {
55093
55093
  const peers = await client2.listPeers();
@@ -55103,7 +55103,7 @@ async function runPeers(flags) {
55103
55103
  console.log("");
55104
55104
  for (const p of peers) {
55105
55105
  const groups = p.groups.length ? " [" + p.groups.map((g) => `@${g.name}${g.role ? `:${g.role}` : ""}`).join(", ") + "]" : "";
55106
- const statusIcon = p.status === "working" ? yellow2("●") : green3("●");
55106
+ const statusIcon = p.status === "working" ? yellow2("●") : green2("●");
55107
55107
  const name = bold3(p.displayName);
55108
55108
  const meta2 = [];
55109
55109
  if (p.peerType)
@@ -55591,7 +55591,7 @@ init_keypair();
55591
55591
  async function runSync(args) {
55592
55592
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
55593
55593
  const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
55594
- const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
55594
+ const green2 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
55595
55595
  const config2 = loadConfig();
55596
55596
  const code = generatePairingCode();
55597
55597
  const listener = await startCallbackListener();
@@ -55642,7 +55642,7 @@ async function runSync(args) {
55642
55642
  config2.accountId = result.account_id;
55643
55643
  saveConfig(config2);
55644
55644
  if (added > 0) {
55645
- console.log(green3(`✓ Added ${added} new mesh(es)`));
55645
+ console.log(green2(`✓ Added ${added} new mesh(es)`));
55646
55646
  } else {
55647
55647
  console.log(`Already up to date (${config2.meshes.length} meshes)`);
55648
55648
  }
@@ -55653,7 +55653,7 @@ init_config();
55653
55653
  async function runProfile(flags) {
55654
55654
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
55655
55655
  const dim2 = (s) => useColor ? `\x1B[2m${s}\x1B[22m` : s;
55656
- const green3 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
55656
+ const green2 = (s) => useColor ? `\x1B[32m${s}\x1B[39m` : s;
55657
55657
  const config2 = loadConfig();
55658
55658
  if (config2.meshes.length === 0) {
55659
55659
  console.error("No meshes joined. Run `claudemesh join <url>` first.");
@@ -55693,7 +55693,7 @@ async function runProfile(flags) {
55693
55693
  if (flags.json) {
55694
55694
  console.log(JSON.stringify(result, null, 2));
55695
55695
  } else if (result.ok) {
55696
- console.log(green3("✓ Profile updated"));
55696
+ console.log(green2("✓ Profile updated"));
55697
55697
  const member = result.member;
55698
55698
  printProfile(member, dim2);
55699
55699
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudemesh-cli",
3
- "version": "0.9.5",
3
+ "version": "0.9.6",
4
4
  "description": "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -48,8 +48,8 @@
48
48
  "prettier": "3.6.2",
49
49
  "typescript": "5.9.3",
50
50
  "vitest": "4.0.14",
51
- "@turbostarter/tsconfig": "0.1.0",
52
51
  "@turbostarter/vitest-config": "0.1.0",
52
+ "@turbostarter/tsconfig": "0.1.0",
53
53
  "@turbostarter/prettier-config": "0.1.0",
54
54
  "@turbostarter/eslint-config": "0.1.0"
55
55
  },