claudemesh-cli 0.9.7 → 0.9.8

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 +36 -6
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -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.7",
40096
+ version: "0.9.8",
40097
40097
  description: "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
40098
40098
  keywords: [
40099
40099
  "claude-code",
@@ -54119,6 +54119,7 @@ function parseGroupsString(raw) {
54119
54119
  async function runLaunchWizard(opts) {
54120
54120
  if (!process.stdout.isTTY) {
54121
54121
  return {
54122
+ mesh: opts.selectedMesh ?? opts.meshes[0],
54122
54123
  role: opts.existingRole,
54123
54124
  groups: opts.existingGroups,
54124
54125
  messageMode: opts.existingMessageMode ?? "push",
@@ -54147,9 +54148,32 @@ async function runLaunchWizard(opts) {
54147
54148
  writeCentered(row, `Directory ${green("✓")} ${process.cwd()}`);
54148
54149
  row++;
54149
54150
  writeCentered(row, `Name ${green("✓")} ${opts.displayName}`);
54150
- row++;
54151
- writeCentered(row, `Mesh ${green("✓")} ${opts.meshSlug}`);
54152
54151
  row += 2;
54152
+ let mesh;
54153
+ if (opts.selectedMesh) {
54154
+ mesh = opts.selectedMesh;
54155
+ writeCentered(row, `Mesh ${green("✓")} ${mesh.slug}`);
54156
+ row++;
54157
+ } else if (opts.meshes.length === 1) {
54158
+ mesh = opts.meshes[0];
54159
+ writeCentered(row, `Mesh ${green("✓")} ${mesh.slug}`);
54160
+ row++;
54161
+ } else {
54162
+ spinner.stop();
54163
+ const choice = await menuSelect({
54164
+ title: "Select mesh",
54165
+ items: opts.meshes.map((m) => m.slug),
54166
+ row
54167
+ });
54168
+ mesh = opts.meshes[choice];
54169
+ for (let i = 0;i < opts.meshes.length + 1; i++) {
54170
+ writeCentered(row + i, " ");
54171
+ }
54172
+ writeCentered(row, `Mesh ${green("✓")} ${mesh.slug}`);
54173
+ spinner.start();
54174
+ row++;
54175
+ }
54176
+ row++;
54153
54177
  let role = opts.existingRole;
54154
54178
  let groups = opts.existingGroups;
54155
54179
  let messageMode = opts.existingMessageMode ?? "push";
@@ -54222,7 +54246,7 @@ async function runLaunchWizard(opts) {
54222
54246
  await new Promise((r) => setTimeout(r, 800));
54223
54247
  spinner.stop();
54224
54248
  exitFullScreen();
54225
- return { role, groups, messageMode, skipPermissions };
54249
+ return { mesh, role, groups, messageMode, skipPermissions };
54226
54250
  }
54227
54251
  function printBanner(name, meshSlug, role, groups, messageMode) {
54228
54252
  const useColor = !process.env.NO_COLOR && process.env.TERM !== "dumb" && process.stdout.isTTY;
@@ -54370,8 +54394,10 @@ async function runLaunch(flags, rawArgs) {
54370
54394
  process.exit(1);
54371
54395
  }
54372
54396
  mesh = found;
54397
+ } else if (config2.meshes.length === 1) {
54398
+ mesh = config2.meshes[0];
54373
54399
  } else {
54374
- mesh = await pickMesh(config2.meshes);
54400
+ mesh = null;
54375
54401
  }
54376
54402
  const displayName = args.name ?? `${hostname2()}-${process.pid}`;
54377
54403
  let role = args.role;
@@ -54380,16 +54406,20 @@ async function runLaunch(flags, rawArgs) {
54380
54406
  if (!args.quiet && !justSynced) {
54381
54407
  const wizardResult = await runLaunchWizard({
54382
54408
  displayName,
54383
- meshSlug: mesh.slug,
54409
+ meshes: config2.meshes,
54410
+ selectedMesh: mesh ?? null,
54384
54411
  existingRole: args.role,
54385
54412
  existingGroups: parsedGroups,
54386
54413
  existingMessageMode: args.messageMode ?? null,
54387
54414
  skipPermConfirm: args.skipPermConfirm
54388
54415
  });
54416
+ mesh = wizardResult.mesh;
54389
54417
  role = wizardResult.role;
54390
54418
  parsedGroups = wizardResult.groups;
54391
54419
  messageMode = wizardResult.messageMode;
54392
54420
  args.skipPermConfirm = wizardResult.skipPermissions;
54421
+ } else if (!mesh) {
54422
+ mesh = await pickMesh(config2.meshes);
54393
54423
  }
54394
54424
  const tmpBase = tmpdir();
54395
54425
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudemesh-cli",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "description": "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -48,9 +48,9 @@
48
48
  "prettier": "3.6.2",
49
49
  "typescript": "5.9.3",
50
50
  "vitest": "4.0.14",
51
- "@turbostarter/vitest-config": "0.1.0",
52
- "@turbostarter/eslint-config": "0.1.0",
53
51
  "@turbostarter/prettier-config": "0.1.0",
52
+ "@turbostarter/eslint-config": "0.1.0",
53
+ "@turbostarter/vitest-config": "0.1.0",
54
54
  "@turbostarter/tsconfig": "0.1.0"
55
55
  },
56
56
  "scripts": {