claudemesh-cli 0.8.1 → 0.8.3
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/dist/index.js +44 -2
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -47795,6 +47795,28 @@ async function signHello(meshId, memberId, pubkey, secretKeyHex) {
|
|
|
47795
47795
|
|
|
47796
47796
|
// src/ws/client.ts
|
|
47797
47797
|
init_keypair();
|
|
47798
|
+
function detectClaudeSessionId() {
|
|
47799
|
+
try {
|
|
47800
|
+
const { readdirSync, statSync, readFileSync: readFileSync2 } = __require("node:fs");
|
|
47801
|
+
const { join: join2 } = __require("node:path");
|
|
47802
|
+
const { homedir: homedir2 } = __require("node:os");
|
|
47803
|
+
const cwd = process.cwd();
|
|
47804
|
+
const projectsDir = join2(homedir2(), ".claude", "projects");
|
|
47805
|
+
const cwdHash = cwd.replace(/\//g, "-");
|
|
47806
|
+
const entries = readdirSync(projectsDir);
|
|
47807
|
+
const projectDir = entries.find((e) => e === cwdHash || e.startsWith(cwdHash));
|
|
47808
|
+
if (!projectDir)
|
|
47809
|
+
return null;
|
|
47810
|
+
const fullDir = join2(projectsDir, projectDir);
|
|
47811
|
+
const jsonls = readdirSync(fullDir).filter((f) => f.endsWith(".jsonl")).map((f) => ({ name: f, mtime: statSync(join2(fullDir, f)).mtimeMs })).sort((a, b) => b.mtime - a.mtime);
|
|
47812
|
+
if (jsonls.length === 0)
|
|
47813
|
+
return null;
|
|
47814
|
+
const latest = jsonls[0];
|
|
47815
|
+
return latest.name.replace(".jsonl", "");
|
|
47816
|
+
} catch {
|
|
47817
|
+
return null;
|
|
47818
|
+
}
|
|
47819
|
+
}
|
|
47798
47820
|
var MAX_QUEUED = 100;
|
|
47799
47821
|
var HELLO_ACK_TIMEOUT_MS = 5000;
|
|
47800
47822
|
var BACKOFF_CAPS = [1000, 2000, 4000, 8000, 16000, 30000];
|
|
@@ -47884,7 +47906,7 @@ class BrokerClient {
|
|
|
47884
47906
|
pubkey: this.mesh.pubkey,
|
|
47885
47907
|
sessionPubkey: this.sessionPubkey,
|
|
47886
47908
|
displayName: process.env.CLAUDEMESH_DISPLAY_NAME || this.opts.displayName || undefined,
|
|
47887
|
-
sessionId: `${process.pid}-${Date.now()}`,
|
|
47909
|
+
sessionId: process.env.CLAUDEMESH_SESSION_ID || detectClaudeSessionId() || `${process.pid}-${Date.now()}`,
|
|
47888
47910
|
pid: process.pid,
|
|
47889
47911
|
cwd: process.cwd(),
|
|
47890
47912
|
hostname: __require("os").hostname(),
|
|
@@ -52112,6 +52134,7 @@ async function runHook(args) {
|
|
|
52112
52134
|
// src/commands/launch.ts
|
|
52113
52135
|
init_config();
|
|
52114
52136
|
import { spawn } from "node:child_process";
|
|
52137
|
+
import { randomUUID } from "node:crypto";
|
|
52115
52138
|
import { mkdtempSync, writeFileSync as writeFileSync4, rmSync, readdirSync, statSync, existsSync as existsSync3, readFileSync as readFileSync3 } from "node:fs";
|
|
52116
52139
|
import { tmpdir, hostname as hostname2, homedir as homedir4 } from "node:os";
|
|
52117
52140
|
import { join as join4 } from "node:path";
|
|
@@ -52219,6 +52242,8 @@ async function runLaunch(flags, rawArgs) {
|
|
|
52219
52242
|
meshSlug: flags.mesh ?? null,
|
|
52220
52243
|
messageMode: ["push", "inbox", "off"].includes(flags["message-mode"] ?? "") ? flags["message-mode"] : null,
|
|
52221
52244
|
systemPrompt: flags["system-prompt"] ?? null,
|
|
52245
|
+
resume: flags.resume ?? null,
|
|
52246
|
+
continueSession: flags.continue ?? false,
|
|
52222
52247
|
quiet: flags.quiet ?? false,
|
|
52223
52248
|
skipPermConfirm: flags.yes ?? false,
|
|
52224
52249
|
claudeArgs: claudePassthrough
|
|
@@ -52420,9 +52445,14 @@ async function runLaunch(flags, rawArgs) {
|
|
|
52420
52445
|
}
|
|
52421
52446
|
filtered.push(args.claudeArgs[i]);
|
|
52422
52447
|
}
|
|
52448
|
+
const isResume = args.resume !== null || args.continueSession;
|
|
52449
|
+
const claudeSessionId = isResume ? undefined : randomUUID();
|
|
52423
52450
|
const claudeArgs = [
|
|
52424
52451
|
"--dangerously-load-development-channels",
|
|
52425
52452
|
"server:claudemesh",
|
|
52453
|
+
...claudeSessionId ? ["--session-id", claudeSessionId] : [],
|
|
52454
|
+
...args.resume ? ["--resume", args.resume] : [],
|
|
52455
|
+
...args.continueSession ? ["--continue"] : [],
|
|
52426
52456
|
...args.skipPermConfirm ? ["--dangerously-skip-permissions"] : [],
|
|
52427
52457
|
...args.systemPrompt ? ["--system-prompt", args.systemPrompt] : [],
|
|
52428
52458
|
...filtered
|
|
@@ -52435,6 +52465,7 @@ async function runLaunch(flags, rawArgs) {
|
|
|
52435
52465
|
...process.env,
|
|
52436
52466
|
CLAUDEMESH_CONFIG_DIR: tmpDir,
|
|
52437
52467
|
CLAUDEMESH_DISPLAY_NAME: displayName,
|
|
52468
|
+
...claudeSessionId ? { CLAUDEMESH_SESSION_ID: claudeSessionId } : {},
|
|
52438
52469
|
MCP_TIMEOUT: process.env.MCP_TIMEOUT ?? "30000",
|
|
52439
52470
|
MAX_MCP_OUTPUT_TOKENS: process.env.MAX_MCP_OUTPUT_TOKENS ?? "50000",
|
|
52440
52471
|
...role ? { CLAUDEMESH_ROLE: role } : {}
|
|
@@ -52491,7 +52522,7 @@ init_config();
|
|
|
52491
52522
|
// package.json
|
|
52492
52523
|
var package_default = {
|
|
52493
52524
|
name: "claudemesh-cli",
|
|
52494
|
-
version: "0.8.
|
|
52525
|
+
version: "0.8.3",
|
|
52495
52526
|
description: "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
|
|
52496
52527
|
keywords: [
|
|
52497
52528
|
"claude-code",
|
|
@@ -53476,6 +53507,17 @@ var launch = defineCommand({
|
|
|
53476
53507
|
description: "Skip the --dangerously-skip-permissions confirmation",
|
|
53477
53508
|
default: false
|
|
53478
53509
|
},
|
|
53510
|
+
resume: {
|
|
53511
|
+
type: "string",
|
|
53512
|
+
alias: "r",
|
|
53513
|
+
description: "Resume a previous Claude Code session by ID, or pass `true` for interactive picker"
|
|
53514
|
+
},
|
|
53515
|
+
continue: {
|
|
53516
|
+
type: "boolean",
|
|
53517
|
+
alias: "c",
|
|
53518
|
+
description: "Continue the most recent conversation in this directory",
|
|
53519
|
+
default: false
|
|
53520
|
+
},
|
|
53479
53521
|
quiet: {
|
|
53480
53522
|
type: "boolean",
|
|
53481
53523
|
description: "Suppress banner and interactive prompts",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claudemesh-cli",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
4
4
|
"description": "Claude Code MCP client for claudemesh — peer mesh messaging between Claude sessions.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -48,10 +48,10 @@
|
|
|
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
51
|
"@turbostarter/tsconfig": "0.1.0",
|
|
53
52
|
"@turbostarter/prettier-config": "0.1.0",
|
|
54
|
-
"@turbostarter/eslint-config": "0.1.0"
|
|
53
|
+
"@turbostarter/eslint-config": "0.1.0",
|
|
54
|
+
"@turbostarter/vitest-config": "0.1.0"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "bun build src/index.ts --target=node --outfile dist/index.js --banner \"#!/usr/bin/env node\" && chmod +x dist/index.js",
|