claudemesh-cli 1.27.3 → 1.29.0

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.
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/ui/styles.ts", "../../src/constants/exit-codes.ts", "../../src/constants/urls.ts", "../../src/constants/timings.ts", "../../src/utils/url.ts", "../../src/constants/paths.ts", "../../src/services/config/schemas.ts", "../../src/services/config/read.ts", "../../src/services/config/write.ts", "../../src/services/config/facade.ts", "../../src/services/logger/logger.ts", "../../src/services/logger/facade.ts", "../../src/services/api/errors.ts", "../../src/services/api/client.ts", "../../src/services/api/my.ts", "../../src/services/api/public.ts", "../../src/services/api/facade.ts", "../../src/services/device/info.ts", "../../src/services/device/facade.ts", "../../src/services/spawn/claude.ts", "../../src/services/spawn/browser.ts", "../../src/services/spawn/facade.ts", "../../src/services/auth/token-store.ts", "../../src/services/auth/errors.ts", "../../src/services/auth/device-code.ts", "../../src/services/auth/client.ts", "../../src/services/auth/dashboard-sync.ts", "../../src/services/auth/callback-listener.ts", "../../src/services/auth/facade.ts", "../../src/services/crypto/keypair.ts", "../../src/services/crypto/file-crypto.ts", "../../src/services/crypto/box.ts", "../../src/services/crypto/random.ts", "../../src/services/crypto/facade.ts", "../../src/services/broker/hello-sig.ts", "../../src/services/broker/ws-client.ts", "../../src/services/broker/manager.ts", "../../src/services/broker/envelope.ts", "../../src/services/broker/facade.ts", "../../src/ui/render.ts", "../../src/ui/screen.ts", "../../src/ui/spinner.ts", "../../src/daemon/paths.ts", "../../src/daemon/local-token.ts", "../../src/daemon/ipc/client.ts", "../../src/services/daemon/lifecycle.ts", "../../src/commands/launch.ts", "../../src/ui/welcome/WelcomeScreen.ts", "../../src/ui/welcome/MeshPickerStep.ts", "../../src/ui/welcome/index.ts", "../../src/commands/login.ts", "../../src/commands/welcome.ts", "../../src/services/mesh/list.ts", "../../src/services/mesh/create.ts", "../../src/services/mesh/rename.ts", "../../src/services/mesh/leave.ts", "../../src/services/mesh/join.ts", "../../src/services/state/last-used.ts", "../../src/services/state/facade.ts", "../../src/services/mesh/resolve-target.ts", "../../src/services/mesh/facade.ts", "../../src/commands/new.ts", "../../src/services/invite/generate.ts", "../../src/services/invite/parse-v1.ts", "../../src/services/invite/enroll.ts", "../../src/services/invite/v2.ts", "../../src/services/invite/facade.ts", "../../src/commands/join.ts", "../../src/commands/list.ts", "../../src/commands/delete-mesh.ts", "../../src/commands/rename.ts", "../../src/services/clipboard/read.ts", "../../src/services/clipboard/facade.ts", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRMode.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRMath.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/index.js", "../../../../node_modules/qrcode-terminal/lib/main.js", "../../src/ui/qr.ts", "../../src/commands/invite.ts", "../../src/commands/connect.ts", "../../src/commands/info.ts", "../../src/services/api/with-rest-key.ts", "../../src/commands/me.ts", "../../src/commands/kick.ts", "../../src/commands/ban.ts", "../../src/services/bridge/protocol.ts", "../../src/services/bridge/client.ts", "../../src/ui/warnings.ts", "../../src/services/bridge/daemon-route.ts", "../../src/commands/peers.ts", "../../src/commands/send.ts", "../../src/commands/inbox.ts", "../../src/commands/state.ts", "../../src/commands/remember.ts", "../../src/commands/recall.ts", "../../src/cli/validators.ts", "../../src/commands/broker-actions.ts", "../../src/commands/remind.ts", "../../src/commands/register.ts", "../../src/commands/logout.ts", "../../src/commands/whoami.ts", "../../src/daemon/lock.ts", "../../src/daemon/db/outbox.ts", "../../src/daemon/db/sqlite.ts", "../../src/daemon/fingerprint.ts", "../../src/daemon/ipc/handlers/send.ts", "../../src/daemon/db/inbox.ts", "../../src/daemon/events.ts", "../../src/daemon/ipc/server.ts", "../../src/daemon/broker.ts", "../../src/daemon/drain.ts", "../../src/daemon/inbound.ts", "../../src/daemon/identity.ts", "../../src/daemon/run.ts", "../../src/daemon/service-install.ts", "../../src/commands/daemon.ts", "../../src/commands/install.ts", "../../src/commands/uninstall.ts", "../../src/commands/doctor.ts", "../../src/commands/status.ts", "../../src/commands/sync.ts", "../../src/services/health/check-node-version.ts", "../../src/services/health/check-claude-binary.ts", "../../src/services/health/check-mcp-registered.ts", "../../src/services/health/check-hooks-registered.ts", "../../src/services/health/check-config-perms.ts", "../../src/services/health/check-keypairs-valid.ts", "../../src/services/health/facade.ts", "../../src/commands/test.ts", "../../src/commands/completions.ts", "../../src/commands/verify.ts", "../../src/commands/url-handler.ts", "../../src/commands/status-line.ts", "../../src/commands/backup.ts", "../../src/commands/upgrade.ts", "../../src/commands/grants.ts", "../../src/commands/profile.ts", "../../src/commands/platform-actions.ts", "../../src/commands/skill.ts", "../../src/commands/file.ts", "../../../../packages/sdk/dist/crypto.js", "../../../../packages/sdk/dist/client.js", "../../../../packages/sdk/dist/bridge.js", "../../../../packages/sdk/dist/index.js", "../../src/commands/bridge.ts", "../../src/commands/apikey.ts", "../../src/commands/topic.ts", "../../src/services/crypto/topic-key.ts", "../../src/commands/topic-tail.ts", "../../src/commands/topic-post.ts", "../../src/commands/notification.ts", "../../src/commands/member.ts", "../../src/mcp/server.ts", "../../src/commands/mcp.ts", "../../src/commands/hook.ts", "../../src/commands/seed-test-mesh.ts", "../../src/cli/argv.ts", "../../src/cli/handlers/signal.ts", "../../src/cli/handlers/error.ts", "../../src/services/update/check.ts", "../../src/utils/semver.ts", "../../src/cli/update-notice.ts", "../../src/entrypoints/cli.ts", "../../src/cli/output/version.ts", "../../src/cli/policy-classify.ts", "../../src/services/policy/index.ts"],
3
+ "sources": ["../../src/ui/styles.ts", "../../src/constants/exit-codes.ts", "../../src/constants/urls.ts", "../../src/constants/timings.ts", "../../src/utils/url.ts", "../../src/services/daemon/policy.ts", "../../src/constants/paths.ts", "../../src/services/config/schemas.ts", "../../src/services/config/read.ts", "../../src/services/config/write.ts", "../../src/services/config/facade.ts", "../../src/services/logger/logger.ts", "../../src/services/logger/facade.ts", "../../src/services/api/errors.ts", "../../src/services/api/client.ts", "../../src/services/api/my.ts", "../../src/services/api/public.ts", "../../src/services/api/facade.ts", "../../src/services/device/info.ts", "../../src/services/device/facade.ts", "../../src/services/spawn/claude.ts", "../../src/services/spawn/browser.ts", "../../src/services/spawn/facade.ts", "../../src/services/auth/token-store.ts", "../../src/services/auth/errors.ts", "../../src/services/auth/device-code.ts", "../../src/services/auth/client.ts", "../../src/services/auth/dashboard-sync.ts", "../../src/services/auth/callback-listener.ts", "../../src/services/auth/facade.ts", "../../src/services/crypto/keypair.ts", "../../src/services/crypto/file-crypto.ts", "../../src/services/crypto/box.ts", "../../src/services/crypto/random.ts", "../../src/services/crypto/facade.ts", "../../src/services/broker/hello-sig.ts", "../../src/services/broker/ws-client.ts", "../../src/services/broker/manager.ts", "../../src/services/broker/envelope.ts", "../../src/services/broker/facade.ts", "../../src/ui/render.ts", "../../src/ui/screen.ts", "../../src/ui/spinner.ts", "../../src/daemon/paths.ts", "../../src/daemon/local-token.ts", "../../src/services/session/token.ts", "../../src/daemon/ipc/client.ts", "../../src/services/daemon/lifecycle.ts", "../../src/commands/launch.ts", "../../src/ui/welcome/WelcomeScreen.ts", "../../src/ui/welcome/MeshPickerStep.ts", "../../src/ui/welcome/index.ts", "../../src/commands/login.ts", "../../src/commands/welcome.ts", "../../src/services/mesh/list.ts", "../../src/services/mesh/create.ts", "../../src/services/mesh/rename.ts", "../../src/services/mesh/leave.ts", "../../src/services/mesh/join.ts", "../../src/services/state/last-used.ts", "../../src/services/state/facade.ts", "../../src/services/mesh/resolve-target.ts", "../../src/services/mesh/facade.ts", "../../src/commands/new.ts", "../../src/services/invite/generate.ts", "../../src/services/invite/parse-v1.ts", "../../src/services/invite/enroll.ts", "../../src/services/invite/v2.ts", "../../src/services/invite/facade.ts", "../../src/commands/join.ts", "../../src/commands/list.ts", "../../src/commands/delete-mesh.ts", "../../src/commands/rename.ts", "../../src/services/clipboard/read.ts", "../../src/services/clipboard/facade.ts", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRMode.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QR8bitByte.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRMath.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRPolynomial.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRMaskPattern.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRUtil.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRErrorCorrectLevel.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRRSBlock.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/QRBitBuffer.js", "../../../../node_modules/qrcode-terminal/vendor/QRCode/index.js", "../../../../node_modules/qrcode-terminal/lib/main.js", "../../src/ui/qr.ts", "../../src/commands/invite.ts", "../../src/commands/connect.ts", "../../src/commands/info.ts", "../../src/services/api/with-rest-key.ts", "../../src/commands/me.ts", "../../src/commands/kick.ts", "../../src/commands/ban.ts", "../../src/ui/warnings.ts", "../../src/services/bridge/daemon-route.ts", "../../src/services/session/resolve.ts", "../../src/commands/peers.ts", "../../src/commands/send.ts", "../../src/commands/inbox.ts", "../../src/commands/state.ts", "../../src/commands/remember.ts", "../../src/commands/recall.ts", "../../src/cli/validators.ts", "../../src/commands/broker-actions.ts", "../../src/commands/remind.ts", "../../src/commands/register.ts", "../../src/commands/logout.ts", "../../src/commands/whoami.ts", "../../src/daemon/lock.ts", "../../src/daemon/db/outbox.ts", "../../src/daemon/db/sqlite.ts", "../../src/daemon/fingerprint.ts", "../../src/daemon/ipc/handlers/send.ts", "../../src/daemon/db/inbox.ts", "../../src/daemon/events.ts", "../../src/daemon/session-registry.ts", "../../src/daemon/ipc/server.ts", "../../src/daemon/broker.ts", "../../src/daemon/drain.ts", "../../src/daemon/inbound.ts", "../../src/daemon/identity.ts", "../../src/daemon/run.ts", "../../src/daemon/service-install.ts", "../../src/commands/daemon.ts", "../../src/commands/install.ts", "../../src/commands/uninstall.ts", "../../src/commands/doctor.ts", "../../src/commands/status.ts", "../../src/commands/sync.ts", "../../src/services/health/check-node-version.ts", "../../src/services/health/check-claude-binary.ts", "../../src/services/health/check-mcp-registered.ts", "../../src/services/health/check-hooks-registered.ts", "../../src/services/health/check-config-perms.ts", "../../src/services/health/check-keypairs-valid.ts", "../../src/services/health/facade.ts", "../../src/commands/test.ts", "../../src/commands/completions.ts", "../../src/commands/verify.ts", "../../src/commands/url-handler.ts", "../../src/commands/status-line.ts", "../../src/commands/backup.ts", "../../src/commands/upgrade.ts", "../../src/commands/grants.ts", "../../src/commands/profile.ts", "../../src/commands/platform-actions.ts", "../../src/commands/skill.ts", "../../src/commands/file.ts", "../../../../packages/sdk/dist/crypto.js", "../../../../packages/sdk/dist/client.js", "../../../../packages/sdk/dist/bridge.js", "../../../../packages/sdk/dist/index.js", "../../src/commands/bridge.ts", "../../src/commands/apikey.ts", "../../src/commands/topic.ts", "../../src/services/crypto/topic-key.ts", "../../src/commands/topic-tail.ts", "../../src/commands/topic-post.ts", "../../src/commands/notification.ts", "../../src/commands/member.ts", "../../src/mcp/server.ts", "../../src/commands/mcp.ts", "../../src/commands/hook.ts", "../../src/commands/seed-test-mesh.ts", "../../src/cli/argv.ts", "../../src/cli/handlers/signal.ts", "../../src/cli/handlers/error.ts", "../../src/services/update/check.ts", "../../src/utils/semver.ts", "../../src/cli/update-notice.ts", "../../src/entrypoints/cli.ts", "../../src/cli/output/version.ts", "../../src/cli/policy-classify.ts", "../../src/services/policy/index.ts"],
4
4
  "sourcesContent": [
5
5
  "const isTTY =\n process.stdout.isTTY && !process.env.NO_COLOR && process.env.TERM !== \"dumb\";\n\nconst esc = (code: string) => (s: string) =>\n isTTY ? `${code}${s}\\x1b[0m` : s;\n\nexport const orange = esc(\"\\x1b[38;5;208m\");\nexport const clay = esc(\"\\x1b[38;5;173m\");\nexport const amber = esc(\"\\x1b[38;5;214m\");\n\nexport const bold = esc(\"\\x1b[1m\");\nexport const dim = esc(\"\\x1b[2m\");\nexport const green = esc(\"\\x1b[32m\");\nexport const yellow = esc(\"\\x1b[33m\");\nexport const red = esc(\"\\x1b[31m\");\nexport const cyan = esc(\"\\x1b[36m\");\nexport const boldOrange = esc(\"\\x1b[1m\\x1b[38;5;208m\");\n\nexport const HIDE_CURSOR = isTTY ? \"\\x1b[?25l\" : \"\";\nexport const SHOW_CURSOR = isTTY ? \"\\x1b[?25h\" : \"\";\nexport const CLEAR_SCREEN = isTTY ? \"\\x1b[2J\\x1b[H\" : \"\";\nexport const CLEAR_LINE = isTTY ? \"\\x1b[K\" : \"\";\n\nexport function moveTo(row: number, col: number): string {\n return isTTY ? `\\x1b[${row};${col}H` : \"\";\n}\n\nexport function moveUp(n: number): string {\n return isTTY ? `\\x1b[${n}A` : \"\";\n}\n\nexport function visibleLength(s: string): number {\n return s.replace(/\\x1b\\[[^m]*m/g, \"\").length;\n}\n\nexport const icons = {\n check: \"✔\",\n cross: \"✘\",\n warn: \"⚠\",\n arrow: \"→\",\n bullet: \"●\",\n dash: \"—\",\n ellipsis: \"…\",\n} as const;\n",
6
6
  "export const EXIT = {\n SUCCESS: 0,\n USER_CANCELLED: 1,\n AUTH_FAILED: 2,\n INVALID_ARGS: 3,\n NETWORK_ERROR: 4,\n NOT_FOUND: 5,\n ALREADY_EXISTS: 6,\n PERMISSION_DENIED: 7,\n INTERNAL_ERROR: 8,\n CLAUDE_MISSING: 9,\n} as const;\n\nexport type ExitCode = (typeof EXIT)[keyof typeof EXIT];\n",
7
7
  "export const URLS = {\n BROKER: process.env.CLAUDEMESH_BROKER_URL ?? \"wss://ic.claudemesh.com/ws\",\n API_BASE: process.env.CLAUDEMESH_API_URL ?? \"https://claudemesh.com\",\n DASHBOARD: \"https://claudemesh.com/dashboard\",\n NPM_REGISTRY: \"https://registry.npmjs.org/claudemesh-cli\",\n} as const;\n\n// Injected at build time from package.json#version via `bun build --define`\n// (see build.ts). Falls back to a dev sentinel when running from source.\ndeclare const __CLAUDEMESH_VERSION__: string;\nexport const VERSION: string =\n typeof __CLAUDEMESH_VERSION__ !== \"undefined\" ? __CLAUDEMESH_VERSION__ : \"0.0.0-dev\";\n\nexport const env = {\n CLAUDEMESH_BROKER_URL: URLS.BROKER,\n CLAUDEMESH_CONFIG_DIR: process.env.CLAUDEMESH_CONFIG_DIR || undefined,\n CLAUDEMESH_DEBUG: process.env.CLAUDEMESH_DEBUG === \"1\" || process.env.CLAUDEMESH_DEBUG === \"true\",\n};\n",
8
8
  "export const TIMINGS = {\n DEVICE_CODE_POLL_MS: 1500,\n DEVICE_CODE_TIMEOUT_MS: 5 * 60 * 1000,\n WS_RECONNECT_BASE_MS: 1000,\n WS_RECONNECT_MAX_MS: 30_000,\n UPDATE_CHECK_INTERVAL_MS: 24 * 60 * 60 * 1000,\n TELEGRAM_CONNECT_TIMEOUT_MS: 5 * 60 * 1000,\n TELEGRAM_POLL_INTERVAL_MS: 2000,\n API_TIMEOUT_MS: 15_000,\n API_RETRY_COUNT: 2,\n} as const;\n",
9
9
  "export function isInviteUrl(input: string): boolean {\n return (\n /^https?:\\/\\/[^/]+\\/(?:[a-z]{2}\\/)?i\\//.test(input) ||\n /^https?:\\/\\/[^/]+\\/(?:[a-z]{2}\\/)?join\\//.test(input) ||\n /^ic:\\/\\//.test(input) ||\n /^claudemesh:\\/\\//.test(input)\n );\n}\n\n/**\n * Normalise any accepted invite input to the canonical HTTPS short URL\n * (`https://claudemesh.com/i/<code>`) or long URL, so downstream parsers\n * only have to handle one scheme.\n */\nexport function normaliseInviteUrl(input: string, host = \"claudemesh.com\"): string {\n const trimmed = input.trim();\n if (trimmed.startsWith(\"claudemesh://\")) {\n const rest = trimmed.slice(\"claudemesh://\".length).replace(/^\\/+/, \"\");\n const m = rest.match(/^(?:i|join)\\/(.+)$/);\n const tail = m ? m[1]! : rest;\n const kind = rest.startsWith(\"join/\") ? \"join\" : \"i\";\n return `https://${host}/${kind}/${tail}`;\n }\n return trimmed;\n}\n\nexport function extractInviteCode(url: string): string | null {\n const match = url.match(/\\/i\\/([A-Za-z0-9]+)/) || url.match(/^ic:\\/\\/([A-Za-z0-9]+)/);\n return match?.[1] ?? null;\n}\n",
10
+ "/**\n * Per-process daemon policy — set once at CLI entry from --no-daemon /\n * --strict / env var, then read by daemon-routing helpers.\n *\n * Modes:\n * \"auto\" (default) probe → auto-spawn → retry → cold fallback\n * \"strict\" probe → auto-spawn → retry → ERROR (no cold fallback)\n * \"no-daemon\" skip daemon entirely → straight to cold path\n *\n * Env equivalents (for headless/CI use):\n * CLAUDEMESH_STRICT_DAEMON=1 → strict\n * CLAUDEMESH_NO_DAEMON=1 → no-daemon\n *\n * Flag wins over env when both are set.\n */\n\nexport type DaemonMode = \"auto\" | \"strict\" | \"no-daemon\";\n\nexport interface DaemonPolicy { mode: DaemonMode; }\n\nlet policy: DaemonPolicy = readEnvDefault();\n\nfunction readEnvDefault(): DaemonPolicy {\n if (process.env.CLAUDEMESH_NO_DAEMON === \"1\") return { mode: \"no-daemon\" };\n if (process.env.CLAUDEMESH_STRICT_DAEMON === \"1\") return { mode: \"strict\" };\n return { mode: \"auto\" };\n}\n\nexport function setDaemonPolicy(mode: DaemonMode): void {\n policy = { mode };\n}\n\nexport function getDaemonPolicy(): DaemonPolicy {\n return policy;\n}\n\n/** Pick a mode from parsed flags. CLI flags win over env. */\nexport function policyFromFlags(flags: Record<string, unknown>): DaemonMode {\n if (flags[\"no-daemon\"]) return \"no-daemon\";\n if (flags.strict) return \"strict\";\n return readEnvDefault().mode;\n}\n",
10
11
  "import { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nconst home = homedir();\n\nexport const PATHS = {\n CONFIG_DIR: process.env.CLAUDEMESH_CONFIG_DIR || join(home, \".claudemesh\"),\n get CONFIG_FILE() {\n return join(this.CONFIG_DIR, \"config.json\");\n },\n get AUTH_FILE() {\n return join(this.CONFIG_DIR, \"auth.json\");\n },\n get KEYS_DIR() {\n return join(this.CONFIG_DIR, \"keys\");\n },\n get LAST_USED_FILE() {\n return join(this.CONFIG_DIR, \"last-used.json\");\n },\n CLAUDE_JSON: join(home, \".claude.json\"),\n CLAUDE_SETTINGS: join(home, \".claude\", \"settings.json\"),\n} as const;\n",
11
12
  "export interface JoinedMesh {\n meshId: string;\n memberId: string;\n slug: string;\n name: string;\n pubkey: string;\n secretKey: string;\n brokerUrl: string;\n joinedAt: string;\n rootKey?: string;\n inviteVersion?: 1 | 2;\n}\n\nexport interface GroupEntry {\n name: string;\n role?: string;\n}\n\nexport interface Config {\n version: 1;\n meshes: JoinedMesh[];\n displayName?: string;\n role?: string;\n groups?: GroupEntry[];\n messageMode?: \"push\" | \"inbox\" | \"off\";\n accountId?: string;\n}\n\nexport function emptyConfig(): Config {\n return { version: 1, meshes: [] };\n}\n",
12
13
  "import { readFileSync, existsSync } from \"node:fs\";\nimport { PATHS } from \"~/constants/paths.js\";\nimport { emptyConfig } from \"./schemas.js\";\nimport type { Config, JoinedMesh } from \"./schemas.js\";\n\nexport function readConfig(): Config {\n if (!existsSync(PATHS.CONFIG_FILE)) return emptyConfig();\n try {\n const raw = readFileSync(PATHS.CONFIG_FILE, \"utf-8\");\n const parsed = JSON.parse(raw) as Partial<Config>;\n if (!parsed || !Array.isArray(parsed.meshes)) return emptyConfig();\n return {\n version: 1,\n meshes: parsed.meshes,\n displayName: parsed.displayName,\n role: parsed.role,\n groups: parsed.groups,\n messageMode: parsed.messageMode,\n accountId: parsed.accountId,\n };\n } catch (e) {\n throw new Error(\n `Failed to load ${PATHS.CONFIG_FILE}: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n}\n\nexport function getMeshConfig(slug: string): JoinedMesh | undefined {\n const config = readConfig();\n return config.meshes.find((m) => m.slug === slug);\n}\n",
@@ -46,9 +47,10 @@
46
47
  "import { boldOrange, clay, dim, visibleLength } from \"./styles.js\";\n\nconst W = 7, H = 5, CX = 3, CY = 2, RX = 3, RY = 2, TOTAL = 12;\n\nfunction edgeChar(dx: number, dy: number): string {\n const a = Math.abs(dx), b = Math.abs(dy);\n if (b < a * 0.4) return \"-\";\n if (a < b * 0.4) return \"|\";\n return (dx > 0) === (dy > 0) ? \"\\\\\" : \"/\";\n}\n\nfunction drawLine(grid: string[][], x0: number, y0: number, x1: number, y1: number) {\n const dx = x1 - x0, dy = y1 - y0;\n const steps = Math.max(Math.abs(dx), Math.abs(dy));\n for (let s = 1; s < steps; s++) {\n const x = Math.round(x0 + dx * s / steps);\n const y = Math.round(y0 + dy * s / steps);\n if (y >= 0 && y < H && x >= 0 && x < W) {\n const c = grid[y]![x]!;\n if (c === \" \") grid[y]![x] = edgeChar(dx, dy);\n else if (c !== edgeChar(dx, dy) && c !== \"\\u25CF\") grid[y]![x] = \"+\";\n }\n }\n}\n\nfunction buildFrame(i: number): string[] {\n const grid = Array.from({ length: H }, () => Array(W).fill(\" \") as string[]);\n const base = (i / TOTAL) * Math.PI * 2;\n const nodes = [0, 1, 2, 3].map(n => {\n const a = base + n * Math.PI / 2 - Math.PI / 2;\n return { x: Math.round(CX + RX * Math.cos(a)), y: Math.round(CY + RY * Math.sin(a)) };\n });\n for (let a = 0; a < 4; a++)\n for (let b = a + 1; b < 4; b++)\n drawLine(grid, nodes[a]!.x, nodes[a]!.y, nodes[b]!.x, nodes[b]!.y);\n for (const { x, y } of nodes)\n if (y >= 0 && y < H && x >= 0 && x < W) grid[y]![x] = \"\\u25CF\";\n return grid.map(r => r.join(\"\"));\n}\n\nconst seen = new Set<string>();\nconst RAW_FRAMES: string[][] = [];\nfor (let i = 0; i < TOTAL; i++) {\n const f = buildFrame(i);\n const key = f.join(\"\\n\");\n if (!seen.has(key)) { seen.add(key); RAW_FRAMES.push(f); }\n}\n\nfunction colorize(line: string): string {\n return line\n .replace(/\\u25CF/g, boldOrange(\"\\u25CF\"))\n .replace(/[-|/\\\\+]/g, c => dim(clay(c)));\n}\n\nexport const FRAME_COUNT = RAW_FRAMES.length;\nexport const FRAME_HEIGHT = H;\nexport const FRAME_WIDTH = W;\n\nexport function getFrame(index: number): string[] {\n return RAW_FRAMES[index % RAW_FRAMES.length]!.map(colorize);\n}\n\nexport function getRawFrame(index: number): string[] {\n return RAW_FRAMES[index % RAW_FRAMES.length]!;\n}\n\nexport function createSpinner(opts: {\n render: (lines: string[]) => void;\n interval?: number;\n}) {\n let frame = 0;\n let timer: ReturnType<typeof setInterval> | null = null;\n\n return {\n start() {\n if (timer) return;\n timer = setInterval(() => {\n opts.render(getFrame(frame++));\n }, opts.interval ?? 70);\n opts.render(getFrame(frame++));\n },\n stop() {\n if (timer) { clearInterval(timer); timer = null; }\n },\n get isRunning() { return timer !== null; },\n };\n}\n",
47
48
  "import { join } from \"node:path\";\n\nimport { PATHS } from \"~/constants/paths.js\";\n\nexport const DAEMON_PATHS = {\n get DAEMON_DIR() { return join(PATHS.CONFIG_DIR, \"daemon\"); },\n get PID_FILE() { return join(this.DAEMON_DIR, \"daemon.pid\"); },\n get SOCK_FILE() { return join(this.DAEMON_DIR, \"daemon.sock\"); },\n get TOKEN_FILE() { return join(this.DAEMON_DIR, \"local-token\"); },\n get OUTBOX_DB() { return join(this.DAEMON_DIR, \"outbox.db\"); },\n get INBOX_DB() { return join(this.DAEMON_DIR, \"inbox.db\"); },\n get LOG_FILE() { return join(this.DAEMON_DIR, \"daemon.log\"); },\n} as const;\n\nexport const DAEMON_TCP_HOST = \"127.0.0.1\";\nexport const DAEMON_TCP_DEFAULT_PORT = 47823;\n",
48
49
  "import { mkdirSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { dirname } from \"node:path\";\nimport { randomBytes } from \"node:crypto\";\n\nimport { DAEMON_PATHS } from \"./paths.js\";\n\n/**\n * Local IPC bearer token. Mode 0600. Rotated by deleting the file and\n * restarting the daemon.\n */\nexport function readLocalToken(): string | null {\n try {\n return readFileSync(DAEMON_PATHS.TOKEN_FILE, \"utf8\").trim();\n } catch {\n return null;\n }\n}\n\nexport function ensureLocalToken(): string {\n const existing = readLocalToken();\n if (existing) return existing;\n mkdirSync(dirname(DAEMON_PATHS.TOKEN_FILE), { recursive: true, mode: 0o700 });\n const tok = randomBytes(32).toString(\"base64url\");\n writeFileSync(DAEMON_PATHS.TOKEN_FILE, tok + \"\\n\", { mode: 0o600 });\n return tok;\n}\n",
49
- "import { request as httpRequest } from \"node:http\";\n\nimport { DAEMON_PATHS, DAEMON_TCP_HOST, DAEMON_TCP_DEFAULT_PORT } from \"../paths.js\";\nimport { readLocalToken } from \"../local-token.js\";\n\nexport interface IpcRequestOptions {\n method?: \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\";\n path: string;\n body?: unknown;\n /** Force TCP loopback instead of UDS (for tests / cross-container scenarios). */\n preferTcp?: boolean;\n timeoutMs?: number;\n}\n\nexport interface IpcResponse<T = unknown> {\n status: number;\n body: T;\n}\n\nexport class IpcError extends Error {\n constructor(public status: number, public payload: unknown, msg: string) {\n super(msg);\n }\n}\n\n/** Small, dependency-free IPC client for talking to the local daemon. */\nexport async function ipc<T = unknown>(opts: IpcRequestOptions): Promise<IpcResponse<T>> {\n const useTcp = !!opts.preferTcp;\n const headers: Record<string, string> = {\n accept: \"application/json\",\n host: \"localhost\",\n };\n\n let bodyBuf: Buffer | undefined;\n if (opts.body !== undefined) {\n bodyBuf = Buffer.from(JSON.stringify(opts.body), \"utf8\");\n headers[\"content-type\"] = \"application/json\";\n headers[\"content-length\"] = String(bodyBuf.length);\n }\n\n if (useTcp) {\n const tok = readLocalToken();\n if (!tok) throw new IpcError(0, null, \"daemon local token not found; is the daemon running?\");\n headers.authorization = `Bearer ${tok}`;\n }\n\n return new Promise<IpcResponse<T>>((resolve, reject) => {\n const req = httpRequest(\n useTcp\n ? { host: DAEMON_TCP_HOST, port: DAEMON_TCP_DEFAULT_PORT, path: opts.path, method: opts.method ?? \"GET\", headers }\n : { socketPath: DAEMON_PATHS.SOCK_FILE, path: opts.path, method: opts.method ?? \"GET\", headers },\n (res) => {\n const chunks: Buffer[] = [];\n res.on(\"data\", (c) => chunks.push(c));\n res.on(\"end\", () => {\n const raw = Buffer.concat(chunks).toString(\"utf8\");\n let parsed: unknown = raw;\n try { parsed = raw.length > 0 ? JSON.parse(raw) : null; } catch { /* leave raw */ }\n resolve({ status: res.statusCode ?? 0, body: parsed as T });\n });\n },\n );\n req.setTimeout(opts.timeoutMs ?? 5_000, () => req.destroy(new Error(\"ipc_timeout\")));\n req.on(\"error\", (err) => reject(err));\n if (bodyBuf) req.write(bodyBuf);\n req.end();\n });\n}\n",
50
+ "/**\n * Per-session IPC tokens mint, persist, read.\n *\n * Each `claudemesh launch` mints a 32-byte random token, writes it to\n * `<tmpdir>/session-token` (mode 0o600), and exposes the path to the\n * spawned `claude` via `CLAUDEMESH_IPC_TOKEN_FILE`. Subprocesses\n * inheriting this env auto-attach the token to every IPC request via\n * the `Authorization: ClaudeMesh-Session <hex>` header. The daemon's\n * registry resolves the token to `{sessionId, mesh, displayName, pid,\n * cwd, ...}` in O(1) and uses it for auto-scoping + attribution.\n *\n * Why a file path env var, not the value directly:\n * `ps eww -p <pid>` shows env values to other processes of the same\n * uid. The path leaks; the secret in mode-0600 files inside a\n * mode-0700 tmpdir does not. Same trick OpenSSH uses for SSH_AUTH_SOCK.\n */\n\nimport { randomBytes } from \"node:crypto\";\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\n\nconst ENV_TOKEN_FILE = \"CLAUDEMESH_IPC_TOKEN_FILE\";\n\nexport interface MintedToken {\n token: string;\n /** Filesystem path the token was written to. Pass via env to children. */\n filePath: string;\n}\n\n/** Generate a fresh 64-hex token and write it under `dir`. */\nexport function mintSessionToken(dir: string, fileName = \"session-token\"): MintedToken {\n const token = randomBytes(32).toString(\"hex\");\n const filePath = `${dir}/${fileName}`;\n writeFileSync(filePath, token, { mode: 0o600 });\n return { token, filePath };\n}\n\n/** Read a token from the path in CLAUDEMESH_IPC_TOKEN_FILE, if present.\n * Falls back to a literal CLAUDEMESH_IPC_TOKEN env value (for testing).\n * Returns null when neither is set or the file is unreadable. */\nexport function readSessionTokenFromEnv(env: NodeJS.ProcessEnv = process.env): string | null {\n const direct = env.CLAUDEMESH_IPC_TOKEN;\n if (direct && /^[0-9a-f]{64}$/i.test(direct)) return direct.toLowerCase();\n const path = env[ENV_TOKEN_FILE];\n if (!path) return null;\n try {\n if (!existsSync(path)) return null;\n const raw = readFileSync(path, \"utf8\").trim();\n if (/^[0-9a-f]{64}$/i.test(raw)) return raw.toLowerCase();\n return null;\n } catch { return null; }\n}\n\nexport const TOKEN_FILE_ENV = ENV_TOKEN_FILE;\n",
51
+ "import { request as httpRequest } from \"node:http\";\n\nimport { DAEMON_PATHS, DAEMON_TCP_HOST, DAEMON_TCP_DEFAULT_PORT } from \"../paths.js\";\nimport { readLocalToken } from \"../local-token.js\";\nimport { readSessionTokenFromEnv } from \"~/services/session/token.js\";\n\nexport interface IpcRequestOptions {\n method?: \"GET\" | \"POST\" | \"PATCH\" | \"DELETE\";\n path: string;\n body?: unknown;\n /** Force TCP loopback instead of UDS (for tests / cross-container scenarios). */\n preferTcp?: boolean;\n timeoutMs?: number;\n}\n\nexport interface IpcResponse<T = unknown> {\n status: number;\n body: T;\n}\n\nexport class IpcError extends Error {\n constructor(public status: number, public payload: unknown, msg: string) {\n super(msg);\n }\n}\n\n/** Small, dependency-free IPC client for talking to the local daemon. */\nexport async function ipc<T = unknown>(opts: IpcRequestOptions): Promise<IpcResponse<T>> {\n const useTcp = !!opts.preferTcp;\n const headers: Record<string, string> = {\n accept: \"application/json\",\n host: \"localhost\",\n };\n\n let bodyBuf: Buffer | undefined;\n if (opts.body !== undefined) {\n bodyBuf = Buffer.from(JSON.stringify(opts.body), \"utf8\");\n headers[\"content-type\"] = \"application/json\";\n headers[\"content-length\"] = String(bodyBuf.length);\n }\n\n if (useTcp) {\n const tok = readLocalToken();\n if (!tok) throw new IpcError(0, null, \"daemon local token not found; is the daemon running?\");\n headers.authorization = `Bearer ${tok}`;\n }\n\n // Per-session token attribution. When the calling process has\n // CLAUDEMESH_IPC_TOKEN_FILE set (a launched session and its\n // descendants), attach the session token. The daemon's auth\n // middleware resolves it to a SessionInfo and uses it for default-\n // mesh scoping. Sent as a second Authorization header is not\n // possible per HTTP semantics, so we layer: when both UDS and a\n // session token exist, send the session token; the bearer remains\n // only for TCP loopback callers.\n if (!useTcp) {\n const sessionTok = readSessionTokenFromEnv();\n if (sessionTok) headers.authorization = `ClaudeMesh-Session ${sessionTok}`;\n }\n\n return new Promise<IpcResponse<T>>((resolve, reject) => {\n const req = httpRequest(\n useTcp\n ? { host: DAEMON_TCP_HOST, port: DAEMON_TCP_DEFAULT_PORT, path: opts.path, method: opts.method ?? \"GET\", headers }\n : { socketPath: DAEMON_PATHS.SOCK_FILE, path: opts.path, method: opts.method ?? \"GET\", headers },\n (res) => {\n const chunks: Buffer[] = [];\n res.on(\"data\", (c) => chunks.push(c));\n res.on(\"end\", () => {\n const raw = Buffer.concat(chunks).toString(\"utf8\");\n let parsed: unknown = raw;\n try { parsed = raw.length > 0 ? JSON.parse(raw) : null; } catch { /* leave raw */ }\n resolve({ status: res.statusCode ?? 0, body: parsed as T });\n });\n },\n );\n req.setTimeout(opts.timeoutMs ?? 5_000, () => req.destroy(new Error(\"ipc_timeout\")));\n req.on(\"error\", (err) => reject(err));\n if (bodyBuf) req.write(bodyBuf);\n req.end();\n });\n}\n",
50
52
  "/**\n * Daemon lifecycle helper — probe, auto-spawn, retry, fall-through.\n *\n * Every daemon-routed CLI verb passes through `ensureDaemonReady()` before\n * its IPC call. The helper:\n *\n * 1. Probes the socket via a fast `/v1/version` IPC (~5-10 ms).\n * 2. If the socket is missing OR present-but-stale, attempts a detached\n * `claudemesh daemon up` spawn under a file-lock.\n * 3. Polls for the new socket up to a budget (default 3s).\n * 4. Returns a state describing what happened, so the caller can either\n * proceed warm or fall back to the cold path with a clear warning.\n *\n * State machine:\n * - \"up\" daemon was already running\n * - \"started\" daemon was down; we spawned it; it came up\n * - \"down\" daemon was down; auto-spawn skipped (e.g., recursion guard)\n * - \"spawn-failed\" spawn attempted but socket never appeared within budget\n * - \"spawn-suppressed\" recently-failed marker is fresh; skipped retry\n *\n * Stale-socket handling: if the socket file exists but the IPC probe\n * fails (ECONNREFUSED / timeout), we treat the file as stale, remove\n * it, and proceed as if the daemon were down. This fixes the prior bug\n * where `existsSync(SOCK_FILE)` was a false positive after a daemon\n * crash.\n *\n * Recursion guard: when we spawn the daemon we set\n * `CLAUDEMESH_INTERNAL_NO_AUTOSPAWN=1` in its env so any nested CLI\n * calls inside the daemon skip the auto-spawn check and avoid a loop.\n */\n\nimport { existsSync, readFileSync, statSync, unlinkSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\n\nimport { ipc, IpcError } from \"~/daemon/ipc/client.js\";\nimport { DAEMON_PATHS } from \"~/daemon/paths.js\";\n\nexport type DaemonReadyState =\n | \"up\"\n | \"started\"\n | \"down\"\n | \"spawn-failed\"\n | \"spawn-suppressed\";\n\nexport interface EnsureDaemonResult {\n state: DaemonReadyState;\n /** Total ms spent in this call (probe ± spawn ± poll). */\n durationMs: number;\n /** When state is `spawn-failed` or `spawn-suppressed`, a one-line reason. */\n reason?: string;\n}\n\nexport interface EnsureDaemonOpts {\n /** Total budget for socket-appearance polling after spawn. Default 3000ms. */\n budgetMs?: number;\n /** Skip auto-spawn entirely. Used by `--no-daemon` and the recursion guard. */\n noAutoSpawn?: boolean;\n /** When auto-spawning a legacy single-mesh daemon, pin a slug. Omit for multi-mesh (default). */\n mesh?: string;\n}\n\nconst SPAWN_LOCK_FILE = () => join(DAEMON_PATHS.DAEMON_DIR, \".spawn.lock\");\nconst SPAWN_FAIL_FILE = () => join(DAEMON_PATHS.DAEMON_DIR, \".spawn-failure\");\nconst SPAWN_FAIL_TTL_MS = 30_000;\nconst PROBE_TIMEOUT_MS = 800;\n\nlet lastResultThisProcess: EnsureDaemonResult | null = null;\n\n/** Probe daemon and return what we know. Cached per-process so a script\n * with 50 sends doesn't re-spawn 50 times. */\nexport async function ensureDaemonReady(opts: EnsureDaemonOpts = {}): Promise<EnsureDaemonResult> {\n if (lastResultThisProcess && (lastResultThisProcess.state === \"up\" || lastResultThisProcess.state === \"started\")) {\n return lastResultThisProcess;\n }\n if (process.env.CLAUDEMESH_INTERNAL_NO_AUTOSPAWN === \"1\") {\n opts = { ...opts, noAutoSpawn: true };\n }\n const result = await runEnsureDaemon(opts);\n lastResultThisProcess = result;\n return result;\n}\n\n/** Reset the per-process cache. Test helper. */\nexport function _resetDaemonReadyCache(): void {\n lastResultThisProcess = null;\n}\n\nasync function runEnsureDaemon(opts: EnsureDaemonOpts): Promise<EnsureDaemonResult> {\n const t0 = Date.now();\n\n // Step 1 — probe.\n const probe = await probeDaemon();\n if (probe === \"up\") return { state: \"up\", durationMs: Date.now() - t0 };\n if (probe === \"stale\") cleanupStaleFiles();\n\n // Step 2 — auto-spawn unless forbidden.\n if (opts.noAutoSpawn) {\n return { state: \"down\", durationMs: Date.now() - t0, reason: \"auto-spawn disabled\" };\n }\n if (recentSpawnFailureFresh()) {\n return {\n state: \"spawn-suppressed\",\n durationMs: Date.now() - t0,\n reason: `daemon failed to start within last ${Math.round(SPAWN_FAIL_TTL_MS / 1000)}s`,\n };\n }\n\n // Step 3 — spawn detached.\n const spawnRes = await spawnDaemon(opts);\n if (spawnRes.ok) {\n return { state: \"started\", durationMs: Date.now() - t0 };\n }\n\n // Step 4 — record failure for backoff and report.\n markSpawnFailure();\n return { state: \"spawn-failed\", durationMs: Date.now() - t0, reason: spawnRes.reason };\n}\n\nasync function probeDaemon(): Promise<\"up\" | \"absent\" | \"stale\"> {\n if (!existsSync(DAEMON_PATHS.SOCK_FILE)) return \"absent\";\n try {\n const res = await ipc<{ version?: string }>({ path: \"/v1/version\", timeoutMs: PROBE_TIMEOUT_MS });\n if (res.status === 200) return \"up\";\n return \"stale\";\n } catch (err) {\n if (err instanceof IpcError) return \"stale\";\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout|EPIPE|ECONNRESET/.test(msg)) return \"stale\";\n return \"stale\";\n }\n}\n\nfunction cleanupStaleFiles(): void {\n for (const p of [DAEMON_PATHS.SOCK_FILE, DAEMON_PATHS.PID_FILE]) {\n try { unlinkSync(p); } catch { /* best-effort */ }\n }\n}\n\nfunction recentSpawnFailureFresh(): boolean {\n try {\n const st = statSync(SPAWN_FAIL_FILE());\n return Date.now() - st.mtimeMs < SPAWN_FAIL_TTL_MS;\n } catch {\n return false;\n }\n}\n\nfunction markSpawnFailure(): void {\n try { writeFileSync(SPAWN_FAIL_FILE(), String(Date.now()), { mode: 0o600 }); } catch { /* best-effort */ }\n}\n\nfunction clearSpawnFailure(): void {\n try { unlinkSync(SPAWN_FAIL_FILE()); } catch { /* best-effort */ }\n}\n\ninterface SpawnResult { ok: boolean; reason?: string; }\n\nasync function spawnDaemon(opts: EnsureDaemonOpts): Promise<SpawnResult> {\n const lockResult = await acquireOrShareLock(opts);\n if (lockResult === \"wait-existing\") {\n // Another process is spawning; just wait for the socket to appear.\n return await pollForSocket(opts.budgetMs ?? 3_000);\n }\n\n try {\n const { spawn } = await import(\"node:child_process\");\n const binary = await resolveCliBinary();\n const args = [\"daemon\", \"up\"];\n if (opts.mesh) args.push(\"--mesh\", opts.mesh);\n\n const child = spawn(binary, args, {\n detached: true,\n stdio: \"ignore\",\n env: { ...process.env, CLAUDEMESH_INTERNAL_NO_AUTOSPAWN: \"1\" },\n });\n child.unref();\n\n const polled = await pollForSocket(opts.budgetMs ?? 3_000);\n if (polled.ok) clearSpawnFailure();\n return polled;\n } catch (err) {\n return { ok: false, reason: err instanceof Error ? err.message : String(err) };\n } finally {\n releaseLock();\n }\n}\n\n/** Acquire spawn lock. If another process holds it AND its pid is alive,\n * return \"wait-existing\" so we share that spawn attempt. If the pid is\n * dead, take over the lock. */\nasync function acquireOrShareLock(_opts: EnsureDaemonOpts): Promise<\"acquired\" | \"wait-existing\"> {\n const lockPath = SPAWN_LOCK_FILE();\n if (existsSync(lockPath)) {\n try {\n const pidStr = readFileSync(lockPath, \"utf8\").trim();\n const pid = Number.parseInt(pidStr, 10);\n if (Number.isFinite(pid) && pid > 0) {\n try {\n process.kill(pid, 0); // signal 0 = liveness probe\n return \"wait-existing\";\n } catch {\n // Holder is dead — fall through to take over.\n }\n }\n } catch { /* unreadable lock — take over */ }\n }\n try {\n writeFileSync(lockPath, String(process.pid), { mode: 0o600 });\n } catch { /* best-effort; lock is advisory */ }\n return \"acquired\";\n}\n\nfunction releaseLock(): void {\n try { unlinkSync(SPAWN_LOCK_FILE()); } catch { /* best-effort */ }\n}\n\nasync function pollForSocket(budgetMs: number): Promise<SpawnResult> {\n const start = Date.now();\n while (Date.now() - start < budgetMs) {\n if (existsSync(DAEMON_PATHS.SOCK_FILE)) {\n // Don't just trust file presence — confirm it answers.\n const probe = await probeDaemon();\n if (probe === \"up\") return { ok: true };\n }\n await new Promise((r) => setTimeout(r, 150));\n }\n return { ok: false, reason: `socket did not appear within ${budgetMs}ms` };\n}\n\n/** Resolve the absolute path to the `claudemesh` binary the user is running.\n * When invoked via tsx/bun in dev, fall back to the system `claudemesh`. */\nasync function resolveCliBinary(): Promise<string> {\n const argv1 = process.argv[1] ?? \"claudemesh\";\n if (/\\.ts$/.test(argv1) || /node_modules|src\\/entrypoints/.test(argv1)) {\n try {\n const { execSync } = await import(\"node:child_process\");\n return execSync(\"which claudemesh\", { encoding: \"utf8\" }).trim() || \"claudemesh\";\n } catch {\n return \"claudemesh\";\n }\n }\n return argv1;\n}\n",
51
- "// @ts-nocheck — v1 port, runtime-tested\n/**\n * `claudemesh launch` — spawn `claude` with peer mesh identity.\n *\n * Flags are defined in index.ts (citty command) — that is the source of\n * truth. This file receives already-parsed flags and rawArgs.\n *\n * Flow:\n * 1. Receive parsed flags from citty + rawArgs for -- passthrough\n * 2. If --join: run join flow first\n * 3. Load config → pick mesh (auto if 1, interactive picker if >1)\n * 4. Write per-session config to tmpdir (isolates mesh selection)\n * 5. Spawn claude with CLAUDEMESH_CONFIG_DIR + CLAUDEMESH_DISPLAY_NAME\n * 6. On exit: cleanup tmpdir\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdtempSync, writeFileSync, rmSync, readdirSync, statSync, existsSync, readFileSync } from \"node:fs\";\nimport { tmpdir, hostname, homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { readConfig, getConfigPath } from \"~/services/config/facade.js\";\nimport type { Config, JoinedMesh, GroupEntry } from \"~/services/config/facade.js\";\nimport { startCallbackListener, generatePairingCode } from \"~/services/auth/facade.js\";\nimport { openBrowser } from \"~/services/spawn/facade.js\";\nimport { BrokerClient } from \"~/services/broker/facade.js\";\nimport { render } from \"~/ui/render.js\";\n\n// Flags as parsed by citty (index.ts is the source of truth for definitions).\nexport interface LaunchFlags {\n name?: string;\n role?: string;\n groups?: string;\n join?: string;\n mesh?: string;\n \"message-mode\"?: string;\n \"system-prompt\"?: string;\n resume?: string;\n continue?: boolean;\n yes?: boolean;\n quiet?: boolean;\n}\n\n// --- Interactive mesh picker ---\n\n/**\n * Ensure the per-user daemon is running before we hand off to Claude Code.\n *\n * As of 1.24.0 the daemon owns the broker WS and feeds the MCP push-pipe\n * over IPC SSE. If the socket is absent when Claude boots its MCP shim,\n * the shim bails (no fallback). Delegates to the shared lifecycle helper\n * (services/daemon/lifecycle.ts) which probes the socket properly\n * (avoiding the stale-socket bug where existsSync was a false positive\n * after a daemon crash), spawns under a file-lock, and polls for liveness.\n */\nasync function ensureDaemonRunning(meshSlug: string, quiet: boolean): Promise<void> {\n const { ensureDaemonReady } = await import(\"~/services/daemon/lifecycle.js\");\n if (!quiet) render.info(\"ensuring claudemesh daemon is running…\");\n // Larger budget for `launch` — it's a one-shot flow where the user\n // is actively waiting; cold node start + broker hello can take\n // longer than the default 3s budget for ad-hoc verbs.\n const res = await ensureDaemonReady({ budgetMs: 10_000, mesh: meshSlug });\n if (res.state === \"up\") {\n if (!quiet) render.ok(\"daemon already running\");\n return;\n }\n if (res.state === \"started\") {\n if (!quiet) render.ok(`daemon ready (${res.durationMs}ms)`);\n return;\n }\n render.warn(\n `daemon ${res.state}${res.reason ? `: ${res.reason}` : \"\"}`,\n \"Run `claudemesh daemon up --mesh \" + meshSlug + \"` manually, then re-launch.\",\n );\n}\n\nasync function pickMesh(meshes: JoinedMesh[]): Promise<JoinedMesh> {\n if (meshes.length === 1) return meshes[0]!;\n\n console.log(\"\\n Select mesh:\");\n meshes.forEach((m, i) => {\n console.log(` ${i + 1}) ${m.slug}`);\n });\n console.log(\"\");\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(\" Choice [1]: \", (answer) => {\n rl.close();\n const idx = parseInt(answer || \"1\", 10) - 1;\n if (idx >= 0 && idx < meshes.length) {\n resolve(meshes[idx]!);\n } else {\n console.error(\" Invalid choice, using first mesh.\");\n resolve(meshes[0]!);\n }\n });\n });\n}\n\n// --- Group string parser ---\n\n/** Parse \"frontend:lead,reviewers:member,all\" → GroupEntry[] */\nfunction parseGroupsString(raw: string): GroupEntry[] {\n return raw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n .map((token) => {\n const idx = token.indexOf(\":\");\n if (idx === -1) return { name: token };\n return { name: token.slice(0, idx), role: token.slice(idx + 1) };\n });\n}\n\n// --- Interactive role/groups prompts ---\n\nfunction askLine(prompt: string): Promise<string> {\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(prompt, (answer) => {\n rl.close();\n resolve(answer.trim());\n });\n });\n}\n\n// --- Permission confirmation ---\n\nasync function confirmPermissions(): Promise<void> {\n const useColor =\n !process.env.NO_COLOR && process.env.TERM !== \"dumb\" && process.stdout.isTTY;\n const bold = (s: string): string => (useColor ? `\\x1b[1m${s}\\x1b[22m` : s);\n const dim = (s: string): string => (useColor ? `\\x1b[2m${s}\\x1b[22m` : s);\n const yellow = (s: string): string => (useColor ? `\\x1b[33m${s}\\x1b[39m` : s);\n\n console.log(yellow(bold(\" Autonomous mode\")));\n console.log(\"\");\n console.log(\" Claude will run with --dangerously-skip-permissions, bypassing\");\n console.log(\" ALL permission prompts — not just claudemesh tools.\");\n console.log(\" Peers exchange text only — no file access, no tool calls.\");\n console.log(\"\");\n console.log(dim(\" Without -y: only claudemesh tools are pre-approved (via allowedTools).\"));\n console.log(dim(\" Use -y for autonomous agents. Omit it for shared/multi-person meshes.\"));\n console.log(\"\");\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve, reject) => {\n rl.question(` ${bold(\"Continue?\")} [Y/n] `, (answer) => {\n rl.close();\n const a = answer.trim().toLowerCase();\n if (a === \"\" || a === \"y\" || a === \"yes\") {\n resolve();\n } else {\n console.log(\"\\n Aborted. Run without autonomous mode:\");\n console.log(\" claude --dangerously-load-development-channels server:claudemesh\\n\");\n process.exit(0);\n }\n });\n });\n}\n\n// --- Banner ---\n\nimport {\n bold as tBold, dim as tDim, green as tGreen, orange as tOrange,\n boldOrange, HIDE_CURSOR, SHOW_CURSOR,\n} from \"~/ui/styles.js\";\nimport {\n enterFullScreen, exitFullScreen, writeCentered, termSize,\n drawTopBar, drawBottomBar, menuSelect, textInput, confirmPrompt,\n} from \"~/ui/screen.js\";\nimport { createSpinner, FRAME_HEIGHT } from \"~/ui/spinner.js\";\n\ninterface LaunchWizardResult {\n mesh: JoinedMesh;\n role: string | null;\n groups: GroupEntry[];\n messageMode: \"push\" | \"inbox\" | \"off\";\n skipPermissions: boolean;\n}\n\n/**\n * Full-screen launch wizard — spinning logo + interactive config.\n * Mesh selection, role, groups, message mode, permissions — all in one TUI.\n * Falls back to plain text on non-TTY.\n */\nasync function runLaunchWizard(opts: {\n displayName: string;\n meshes: JoinedMesh[];\n selectedMesh: JoinedMesh | null;\n existingRole: string | null;\n existingGroups: GroupEntry[];\n existingMessageMode: \"push\" | \"inbox\" | \"off\" | null;\n skipPermConfirm: boolean;\n}): Promise<LaunchWizardResult> {\n if (!process.stdout.isTTY) {\n return {\n mesh: opts.selectedMesh ?? opts.meshes[0]!,\n role: opts.existingRole,\n groups: opts.existingGroups,\n messageMode: opts.existingMessageMode ?? \"push\",\n skipPermissions: opts.skipPermConfirm,\n };\n }\n\n const { rows } = termSize();\n enterFullScreen();\n drawTopBar();\n\n // Spinning logo centered in upper portion\n const logoTop = Math.floor((rows - FRAME_HEIGHT - 16) / 2);\n const brandRow = logoTop + FRAME_HEIGHT + 1;\n const subtitleRow = brandRow + 1;\n const formRow = subtitleRow + 2;\n\n writeCentered(brandRow, boldOrange(\"claudemesh\"));\n writeCentered(subtitleRow, tDim(\"peer mesh for Claude Code\"));\n\n const spinner = createSpinner({\n render(lines) {\n for (let i = 0; i < lines.length; i++) {\n writeCentered(logoTop + i, lines[i]!);\n }\n },\n interval: 70,\n });\n spinner.start();\n\n // Show detected info\n let row = formRow;\n writeCentered(row, `Directory ${tGreen(\"✓\")} ${process.cwd()}`);\n row++;\n writeCentered(row, `Name ${tGreen(\"✓\")} ${opts.displayName}`);\n row += 2;\n\n // Mesh selection\n let mesh: JoinedMesh;\n if (opts.selectedMesh) {\n mesh = opts.selectedMesh;\n writeCentered(row, `Mesh ${tGreen(\"✓\")} ${mesh.slug}`);\n row++;\n } else if (opts.meshes.length === 1) {\n mesh = opts.meshes[0]!;\n writeCentered(row, `Mesh ${tGreen(\"✓\")} ${mesh.slug}`);\n row++;\n } else {\n spinner.stop();\n const choice = await menuSelect({\n title: \"Select mesh\",\n items: opts.meshes.map((m) => m.slug),\n row,\n });\n mesh = opts.meshes[choice]!;\n // Redraw as confirmed\n for (let i = 0; i < opts.meshes.length + 1; i++) {\n writeCentered(row + i, \" \");\n }\n writeCentered(row, `Mesh ${tGreen(\"✓\")} ${mesh.slug}`);\n spinner.start();\n row++;\n }\n\n row++;\n\n // Interactive fields\n let role = opts.existingRole;\n let groups = opts.existingGroups;\n let messageMode = opts.existingMessageMode ?? \"push\" as \"push\" | \"inbox\" | \"off\";\n\n // Role input\n if (role === null) {\n spinner.stop();\n const answer = await textInput({ label: \"Role\", row, placeholder: \"optional — press Enter to skip\" });\n if (answer) role = answer;\n spinner.start();\n row++;\n } else {\n writeCentered(row, `Role ${tGreen(\"✓\")} ${role}`);\n row++;\n }\n\n // Groups input\n if (groups.length === 0) {\n spinner.stop();\n const answer = await textInput({ label: \"Groups\", row, placeholder: \"comma-separated, optional\" });\n if (answer) groups = parseGroupsString(answer);\n spinner.start();\n row++;\n } else {\n const tags = groups.map(g => `@${g.name}${g.role ? `:${g.role}` : \"\"}`).join(\", \");\n writeCentered(row, `Groups ${tGreen(\"✓\")} ${tags}`);\n row++;\n }\n\n // Message mode selection\n if (opts.existingMessageMode === null) {\n row++;\n spinner.stop();\n const choice = await menuSelect({\n title: \"Message mode\",\n items: [\n \"Push (real-time, peers can interrupt)\",\n \"Inbox (held until you check)\",\n \"Off (tools only, no messages)\",\n ],\n row,\n });\n messageMode = ([\"push\", \"inbox\", \"off\"] as const)[choice];\n spinner.start();\n row += 5;\n } else {\n writeCentered(row, `Messages ${tGreen(\"✓\")} ${messageMode}`);\n row++;\n }\n\n // Permissions confirmation\n let skipPermissions = opts.skipPermConfirm;\n if (!skipPermissions) {\n row++;\n spinner.stop();\n writeCentered(row, tDim(\"Claude will run with --dangerously-skip-permissions,\"));\n writeCentered(row + 1, tDim(\"bypassing ALL permission prompts — not just claudemesh.\"));\n row += 3;\n const confirmed = await confirmPrompt({\n message: boldOrange(\"Autonomous mode?\"),\n row,\n defaultYes: true,\n });\n if (!confirmed) {\n exitFullScreen();\n console.log(\" Run without autonomous mode:\");\n console.log(\" claude --dangerously-load-development-channels server:claudemesh\\n\");\n process.exit(0);\n }\n skipPermissions = true;\n spinner.start();\n }\n\n // Final animation\n row += 2;\n writeCentered(row, tDim(\"Launching Claude Code...\"));\n\n await new Promise(r => setTimeout(r, 800));\n spinner.stop();\n exitFullScreen();\n\n return { mesh, role, groups, messageMode, skipPermissions };\n}\n\nfunction printBanner(name: string, meshSlug: string, role: string | null, groups: GroupEntry[], messageMode: \"push\" | \"inbox\" | \"off\"): void {\n const useColor =\n !process.env.NO_COLOR && process.env.TERM !== \"dumb\" && process.stdout.isTTY;\n const dim = (s: string): string => (useColor ? `\\x1b[2m${s}\\x1b[22m` : s);\n const bold = (s: string): string => (useColor ? `\\x1b[1m${s}\\x1b[22m` : s);\n\n const roleSuffix = role ? ` (${role})` : \"\";\n const groupTags = groups.length\n ? \" [\" + groups.map((g) => `@${g.name}${g.role ? `:${g.role}` : \"\"}`).join(\", \") + \"]\"\n : \"\";\n\n const rule = \"─\".repeat(60);\n console.log(bold(`claudemesh launch`) + dim(` — as ${name}${roleSuffix} on ${meshSlug}${groupTags} [${messageMode}]`));\n console.log(rule);\n if (messageMode === \"push\") {\n console.log(\"Peer messages arrive as <channel> reminders in real-time.\");\n } else if (messageMode === \"inbox\") {\n console.log(\"Peer messages held in inbox. Use check_messages to read.\");\n } else {\n console.log(\"Messages off. Use check_messages to poll manually.\");\n }\n console.log(\"Peers send text only — they cannot call tools or read files.\");\n console.log(dim(`Config: ${getConfigPath()}`));\n console.log(rule);\n console.log(\"\");\n}\n\n// --- Main ---\n\nexport async function runLaunch(flags: LaunchFlags, rawArgs: string[]): Promise<void> {\n // Extract args that follow \"--\" — passed straight through to claude.\n const dashIdx = rawArgs.indexOf(\"--\");\n const claudePassthrough = dashIdx >= 0 ? rawArgs.slice(dashIdx + 1) : [];\n\n // Normalise flags into the internal shape used below.\n const args = {\n name: flags.name ?? null,\n role: flags.role ?? null,\n groups: flags.groups ?? null,\n joinLink: flags.join ?? null,\n meshSlug: flags.mesh ?? null,\n messageMode: ([\"push\", \"inbox\", \"off\"].includes(flags[\"message-mode\"] ?? \"\")\n ? flags[\"message-mode\"] as \"push\" | \"inbox\" | \"off\"\n : null),\n systemPrompt: flags[\"system-prompt\"] ?? null,\n resume: flags.resume ?? null,\n continueSession: flags.continue ?? false,\n quiet: flags.quiet ?? false,\n skipPermConfirm: flags.yes ?? false,\n claudeArgs: claudePassthrough,\n };\n\n // 1. If --join, run join flow first.\n if (args.joinLink) {\n render.info(tDim(\"Joining mesh…\"));\n const invite = await parseInviteLink(args.joinLink);\n const keypair = await generateKeypair();\n const displayName = (args.name ?? process.env.USER ?? process.env.USERNAME ?? hostname());\n const enroll = await enrollWithBroker({\n brokerWsUrl: invite.payload.broker_url,\n inviteToken: invite.token,\n invitePayload: invite.payload,\n peerPubkey: keypair.publicKey,\n displayName,\n });\n const config = readConfig();\n config.meshes = config.meshes.filter(\n (m) => m.slug !== invite.payload.mesh_slug,\n );\n config.meshes.push({\n meshId: invite.payload.mesh_id,\n memberId: enroll.memberId,\n slug: invite.payload.mesh_slug,\n name: invite.payload.mesh_slug,\n pubkey: keypair.publicKey,\n secretKey: keypair.secretKey,\n brokerUrl: invite.payload.broker_url,\n joinedAt: new Date().toISOString(),\n });\n const { writeConfig } = await import(\"~/services/config/facade.js\");\n writeConfig(config);\n render.ok(\n `joined ${tBold(invite.payload.mesh_slug)}`,\n enroll.alreadyMember ? \"already member\" : undefined,\n );\n }\n\n // 2. Load config, pick mesh.\n const config = readConfig();\n let justSynced = false;\n\n if (config.meshes.length === 0 && !args.joinLink) {\n const useColor = !process.env.NO_COLOR && process.env.TERM !== \"dumb\" && process.stdout.isTTY;\n const bold = (s: string): string => (useColor ? `\\x1b[1m${s}\\x1b[22m` : s);\n const dim = (s: string): string => (useColor ? `\\x1b[2m${s}\\x1b[22m` : s);\n const green = (s: string): string => (useColor ? `\\x1b[32m${s}\\x1b[39m` : s);\n\n const code = generatePairingCode();\n const listener = await startCallbackListener();\n const url = `https://claudemesh.com/cli-auth?port=${listener.port}&code=${code}&action=sync`;\n\n console.log(`\\n ${bold(\"Welcome to claudemesh!\")} No meshes found.`);\n console.log(` Opening browser to sign in...\\n`);\n\n const opened = await openBrowser(url);\n if (!opened) {\n console.log(` Couldn't open browser automatically.`);\n }\n console.log(` ${dim(`Visit: ${url}`)}`);\n console.log(` ${dim(`Or join with invite: claudemesh launch --join <url>`)}\\n`);\n\n // Race: localhost callback vs manual paste vs timeout\n const manualPromise = new Promise<string>((resolve) => {\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n rl.question(\" Paste sync token (or wait for browser): \", (answer) => {\n rl.close();\n if (answer.trim()) resolve(answer.trim());\n });\n });\n\n const timeoutPromise = new Promise<null>((resolve) => {\n setTimeout(() => resolve(null), 15 * 60_000);\n });\n\n const syncToken = await Promise.race([\n listener.token,\n manualPromise,\n timeoutPromise,\n ]);\n\n listener.close();\n\n if (!syncToken) {\n console.error(\"\\n Timed out waiting for sign-in.\");\n process.exit(1);\n }\n\n // Generate keypair and sync with broker\n const { generateKeypair } = await import(\"~/services/crypto/facade.js\");\n const keypair = await generateKeypair();\n const displayNameForSync = (args.name ?? process.env.USER ?? process.env.USERNAME ?? hostname());\n\n const { syncWithBroker } = await import(\"~/services/auth/facade.js\");\n const result = await syncWithBroker(syncToken, keypair.publicKey, displayNameForSync);\n\n // Write all meshes to config\n const { writeConfig } = await import(\"~/services/config/facade.js\");\n for (const m of result.meshes) {\n config.meshes.push({\n meshId: m.mesh_id,\n memberId: m.member_id,\n slug: m.slug,\n name: m.slug,\n pubkey: keypair.publicKey,\n secretKey: keypair.secretKey,\n brokerUrl: m.broker_url,\n joinedAt: new Date().toISOString(),\n });\n }\n config.accountId = result.account_id;\n writeConfig(config);\n justSynced = true;\n\n console.log(`\\n ${green(\"✓\")} Synced ${result.meshes.length} mesh(es): ${result.meshes.map(m => m.slug).join(\", \")}\\n`);\n }\n\n if (config.meshes.length === 0) {\n render.err(\"No meshes joined.\", \"Run `claudemesh join <url>` or use --join <url>.\");\n process.exit(1);\n }\n\n // Resolve mesh — by flag, auto (if 1), or defer to wizard (if >1)\n let mesh: JoinedMesh;\n if (args.meshSlug) {\n const found = config.meshes.find((m) => m.slug === args.meshSlug);\n if (!found) {\n render.err(\n `Mesh \"${args.meshSlug}\" not found.`,\n `Joined: ${config.meshes.map((m) => m.slug).join(\", \")}`,\n );\n process.exit(1);\n }\n mesh = found;\n } else if (config.meshes.length === 1) {\n mesh = config.meshes[0]!;\n } else {\n // Multiple meshes — wizard will handle selection\n mesh = null as unknown as JoinedMesh; // set by wizard below\n }\n\n // 3. Session identity + role/groups via TUI wizard.\n const displayName = (args.name ?? process.env.USER ?? process.env.USERNAME ?? hostname());\n\n let role: string | null = args.role;\n let parsedGroups: GroupEntry[] = args.groups ? parseGroupsString(args.groups) : [];\n let messageMode: \"push\" | \"inbox\" | \"off\" = args.messageMode ?? \"push\";\n\n // `-y` (skipPermConfirm) implies fully non-interactive — skip the wizard\n // entirely and use sensible defaults (role=member, no groups, push mode).\n // Same applies to `--quiet` and the post-sync path where we already picked.\n const nonInteractive = args.quiet || justSynced || args.skipPermConfirm;\n if (!nonInteractive) {\n const wizardResult = await runLaunchWizard({\n displayName,\n meshes: config.meshes,\n selectedMesh: mesh ?? null,\n existingRole: args.role,\n existingGroups: parsedGroups,\n existingMessageMode: args.messageMode ?? null,\n skipPermConfirm: args.skipPermConfirm,\n });\n mesh = wizardResult.mesh;\n role = wizardResult.role;\n parsedGroups = wizardResult.groups;\n messageMode = wizardResult.messageMode;\n args.skipPermConfirm = wizardResult.skipPermissions;\n } else if (!mesh) {\n // No mesh picked yet + non-interactive — pick the first one deterministically.\n mesh = config.meshes[0]!;\n }\n\n // Clean up orphaned tmpdirs from crashed sessions (older than 1 hour)\n const tmpBase = tmpdir();\n try {\n for (const entry of readdirSync(tmpBase)) {\n if (!entry.startsWith(\"claudemesh-\")) continue;\n const full = join(tmpBase, entry);\n const age = Date.now() - statSync(full).mtimeMs;\n if (age > 3600_000) rmSync(full, { recursive: true, force: true });\n }\n } catch { /* best effort */ }\n\n // Ensure the daemon is running before we spawn Claude. The MCP shim\n // (loaded by --dangerously-load-development-channels server:claudemesh)\n // requires the daemon's UDS to be reachable at boot — if it isn't,\n // channel push, slash commands, and resources fail.\n await ensureDaemonRunning(mesh.slug, args.quiet);\n\n // Clean up stale mesh MCP entries from crashed sessions\n try {\n const claudeConfigPath = join(homedir(), \".claude.json\");\n if (existsSync(claudeConfigPath)) {\n const claudeConfig = JSON.parse(readFileSync(claudeConfigPath, \"utf-8\"));\n const mcpServers = claudeConfig.mcpServers ?? {};\n let cleaned = 0;\n for (const key of Object.keys(mcpServers)) {\n if (!key.startsWith(\"mesh:\")) continue;\n const meta = mcpServers[key]?._meshSession;\n if (!meta?.pid) continue;\n // Check if the PID is still alive\n try {\n process.kill(meta.pid, 0); // signal 0 = check existence\n } catch {\n // PID is dead — remove stale entry\n delete mcpServers[key];\n cleaned++;\n }\n }\n if (cleaned > 0) {\n claudeConfig.mcpServers = mcpServers;\n writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + \"\\n\", \"utf-8\");\n }\n }\n } catch { /* best effort */ }\n\n // --- Fetch deployed services for native MCP entries ---\n let serviceCatalog: Array<{\n name: string;\n description: string;\n status: string;\n tools: Array<{ name: string; description: string; inputSchema: object }>;\n deployed_by: string;\n }> = [];\n\n try {\n const tmpClient = new BrokerClient(mesh, { displayName });\n await tmpClient.connect();\n // Wait briefly for hello_ack with service catalog\n await new Promise(r => setTimeout(r, 2000));\n serviceCatalog = tmpClient.serviceCatalog;\n tmpClient.close();\n } catch {\n // Non-fatal — launch without native service entries\n if (!args.quiet) {\n console.log(\" (Could not fetch service catalog — mesh services won't be natively available)\");\n }\n }\n\n // 4. Write session config to tmpdir (isolates mesh selection).\n const tmpDir = mkdtempSync(join(tmpdir(), \"claudemesh-\"));\n const sessionConfig: Config = {\n version: 1,\n meshes: [mesh],\n displayName,\n ...(role ? { role } : {}),\n ...(parsedGroups.length > 0 ? { groups: parsedGroups } : {}),\n messageMode,\n };\n writeFileSync(\n join(tmpDir, \"config.json\"),\n JSON.stringify(sessionConfig, null, 2) + \"\\n\",\n \"utf-8\",\n );\n\n // 5. Print summary banner (wizard already handled all interactive config).\n if (!args.quiet) {\n printBanner(displayName, mesh.slug, role, parsedGroups, messageMode);\n }\n\n // --- Install native MCP entries for deployed mesh services ---\n const meshMcpEntries: Array<{ key: string; entry: unknown }> = [];\n\n if (serviceCatalog.length > 0) {\n const claudeConfigPath = join(homedir(), \".claude.json\");\n\n // Read-modify-write: only touch mesh:* entries in mcpServers\n let claudeConfig: Record<string, unknown> = {};\n try {\n claudeConfig = JSON.parse(readFileSync(claudeConfigPath, \"utf-8\"));\n } catch {\n claudeConfig = {};\n }\n\n const mcpServers = (claudeConfig.mcpServers ?? {}) as Record<string, unknown>;\n\n // Session-scoped key: mesh:<service>:<sessionId>\n const sessionTag = `${process.pid}`;\n\n for (const svc of serviceCatalog) {\n if (svc.status !== \"running\") continue;\n const entryKey = `mesh:${svc.name}:${sessionTag}`;\n const entry = {\n command: \"claudemesh\",\n args: [\"mcp\", \"--service\", svc.name],\n env: {\n CLAUDEMESH_CONFIG_DIR: tmpDir,\n },\n _meshSession: {\n pid: process.pid,\n meshSlug: mesh.slug,\n serviceName: svc.name,\n createdAt: new Date().toISOString(),\n },\n };\n mcpServers[entryKey] = entry;\n meshMcpEntries.push({ key: entryKey, entry });\n }\n\n claudeConfig.mcpServers = mcpServers;\n writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + \"\\n\", \"utf-8\");\n\n if (!args.quiet && meshMcpEntries.length > 0) {\n console.log(` ${meshMcpEntries.length} mesh service(s) registered as native MCPs:`);\n for (const { key } of meshMcpEntries) {\n const svcName = key.split(\":\")[1];\n const svc = serviceCatalog.find(s => s.name === svcName);\n console.log(` ${svcName} (${svc?.tools.length ?? 0} tools)`);\n }\n console.log(\"\");\n }\n }\n\n // 6. Spawn claude with ephemeral config + dev channel + auto-permissions.\n // Strip any user-supplied --dangerously flags to avoid duplicates.\n const filtered: string[] = [];\n for (let i = 0; i < args.claudeArgs.length; i++) {\n if (args.claudeArgs[i] === \"--dangerously-load-development-channels\"\n || args.claudeArgs[i] === \"--dangerously-skip-permissions\") {\n if (args.claudeArgs[i] === \"--dangerously-load-development-channels\") i++;\n continue;\n }\n filtered.push(args.claudeArgs[i]!);\n }\n // --dangerously-skip-permissions is only added when the user explicitly\n // passes -y / --yes. Without it, claudemesh tools still work because\n // `claudemesh install` pre-approves them via allowedTools in settings.json.\n // This keeps permissions tight for multi-person meshes.\n // Session identity: --resume reuses existing session, otherwise generate new.\n // When resuming, Claude Code reuses the session ID so the mesh peer identity persists.\n const isResume = args.resume !== null || args.continueSession;\n const claudeSessionId = isResume ? undefined : randomUUID();\n\n const claudeArgs = [\n \"--dangerously-load-development-channels\",\n \"server:claudemesh\",\n ...(claudeSessionId ? [\"--session-id\", claudeSessionId] : []),\n ...(args.resume ? [\"--resume\", args.resume] : []),\n ...(args.continueSession ? [\"--continue\"] : []),\n ...(args.skipPermConfirm ? [\"--dangerously-skip-permissions\"] : []),\n ...(args.systemPrompt ? [\"--system-prompt\", args.systemPrompt] : []),\n ...filtered,\n ];\n\n // Resolve the full path to `claude` — when launched from a non-interactive\n // shell (e.g. nvm node shebang), ~/.local/bin may not be in PATH.\n const isWindows = process.platform === \"win32\";\n let claudeBin = \"claude\";\n if (!isWindows) {\n const candidates = [\n join(homedir(), \".local\", \"bin\", \"claude\"),\n \"/usr/local/bin/claude\",\n join(homedir(), \".claude\", \"bin\", \"claude\"),\n ];\n for (const c of candidates) {\n if (existsSync(c)) { claudeBin = c; break; }\n }\n }\n\n // 7. Define cleanup — runs on every exit path via process.on('exit').\n // Synchronous-only (rmSync + writeFileSync) so it works inside the\n // 'exit' event, which does not allow async work.\n const cleanup = (): void => {\n // Remove mesh MCP entries from ~/.claude.json\n if (meshMcpEntries.length > 0) {\n try {\n const claudeConfigPath = join(homedir(), \".claude.json\");\n const claudeConfig = JSON.parse(readFileSync(claudeConfigPath, \"utf-8\"));\n const mcpServers = claudeConfig.mcpServers ?? {};\n for (const { key } of meshMcpEntries) {\n delete mcpServers[key];\n }\n claudeConfig.mcpServers = mcpServers;\n writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + \"\\n\", \"utf-8\");\n } catch { /* best effort */ }\n }\n // Ephemeral config dir\n try {\n rmSync(tmpDir, { recursive: true, force: true });\n } catch { /* best effort */ }\n };\n\n // Register cleanup on every exit path — including normal exit, uncaught\n // throws, and fatal signals. process.on('exit') fires synchronously, which\n // is what the rmSync + writeFileSync above need.\n process.on(\"exit\", cleanup);\n\n // 8. Hard-reset the TTY before handing control to claude.\n //\n // Every interactive element in the pre-launch flow — the full-screen\n // wizard (tui/screen.ts), the permission confirmation, the callback-\n // listener paste prompt, the mesh picker — attaches listeners to\n // process.stdin, toggles raw mode, hides the cursor, and sometimes\n // enters the alt-screen. Those helpers do best-effort cleanup in their\n // own finally blocks, but any leak — an orphaned 'data' listener, a\n // still-raw TTY, a pending render paint — means the parent node process\n // keeps competing with claude's Ink TUI for the same keystrokes and\n // stdout frames. Symptoms: dropped keystrokes at the claude prompt, or\n // the wizard visibly repainting on top of claude after launch.\n //\n // Defensive reset here is cheap and guarantees a clean TTY regardless\n // of what the wizard helpers did or didn't restore.\n if (process.stdin.isTTY) {\n try { process.stdin.setRawMode(false); } catch { /* not a TTY under some parents */ }\n }\n process.stdin.removeAllListeners(\"data\");\n process.stdin.removeAllListeners(\"keypress\");\n process.stdin.removeAllListeners(\"readable\");\n process.stdin.pause();\n if (process.stdout.isTTY) {\n process.stdout.write(\"\\x1b[?25h\"); // show cursor\n process.stdout.write(\"\\x1b[?1049l\"); // exit alt-screen if any wizard step entered it\n }\n\n // 9. Block-and-wait on claude with spawnSync.\n //\n // Why spawnSync instead of spawn + child.on('exit'):\n // - spawn keeps the parent node event loop running alongside claude.\n // Any stray listener, setImmediate, or async wizard tail-end can\n // still fire during claude's lifetime, stealing input or painting\n // over claude's TUI.\n // - spawnSync blocks the parent event loop completely until claude\n // exits. No listeners fire. Nothing paints. The parent is effectively\n // suspended, and claude has exclusive ownership of the TTY.\n //\n // Signal forwarding: claude inherits the TTY process group via\n // stdio: \"inherit\". When the user hits Ctrl-C, the terminal sends\n // SIGINT to the whole group. Claude handles it (Ink unmounts, exits\n // cleanly); spawnSync returns with result.signal='SIGINT'. We re-raise\n // the same signal on the parent so it dies the same way.\n const result = spawnSync(claudeBin, claudeArgs, {\n stdio: \"inherit\",\n shell: isWindows,\n env: {\n ...process.env,\n CLAUDEMESH_CONFIG_DIR: tmpDir,\n CLAUDEMESH_DISPLAY_NAME: displayName,\n ...(claudeSessionId ? { CLAUDEMESH_SESSION_ID: claudeSessionId } : {}),\n MCP_TIMEOUT: process.env.MCP_TIMEOUT ?? \"30000\",\n MAX_MCP_OUTPUT_TOKENS: process.env.MAX_MCP_OUTPUT_TOKENS ?? \"50000\",\n ...(role ? { CLAUDEMESH_ROLE: role } : {}),\n },\n });\n\n // 10. Handle the result. Cleanup runs automatically via process.on('exit').\n if (result.error) {\n const err = result.error as NodeJS.ErrnoException;\n if (err.code === \"ENOENT\") {\n render.err(\"`claude` not found on PATH.\", \"Install Claude Code first.\");\n } else {\n render.err(`failed to launch claude: ${err.message}`);\n }\n process.exit(1);\n }\n\n if (result.signal) {\n // Re-raise the same signal so the parent dies the same way the child did.\n process.kill(process.pid, result.signal);\n return;\n }\n\n process.exit(result.status ?? 0);\n}\n",
53
+ "// @ts-nocheck — v1 port, runtime-tested\n/**\n * `claudemesh launch` — spawn `claude` with peer mesh identity.\n *\n * Flags are defined in index.ts (citty command) — that is the source of\n * truth. This file receives already-parsed flags and rawArgs.\n *\n * Flow:\n * 1. Receive parsed flags from citty + rawArgs for -- passthrough\n * 2. If --join: run join flow first\n * 3. Load config → pick mesh (auto if 1, interactive picker if >1)\n * 4. Write per-session config to tmpdir (isolates mesh selection)\n * 5. Spawn claude with CLAUDEMESH_CONFIG_DIR + CLAUDEMESH_DISPLAY_NAME\n * 6. On exit: cleanup tmpdir\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { randomUUID } from \"node:crypto\";\nimport { mkdtempSync, writeFileSync, rmSync, readdirSync, statSync, existsSync, readFileSync } from \"node:fs\";\nimport { tmpdir, hostname, homedir } from \"node:os\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { readConfig, getConfigPath } from \"~/services/config/facade.js\";\nimport type { Config, JoinedMesh, GroupEntry } from \"~/services/config/facade.js\";\nimport { startCallbackListener, generatePairingCode } from \"~/services/auth/facade.js\";\nimport { openBrowser } from \"~/services/spawn/facade.js\";\nimport { BrokerClient } from \"~/services/broker/facade.js\";\nimport { render } from \"~/ui/render.js\";\n\n// Flags as parsed by citty (index.ts is the source of truth for definitions).\nexport interface LaunchFlags {\n name?: string;\n role?: string;\n groups?: string;\n join?: string;\n mesh?: string;\n \"message-mode\"?: string;\n \"system-prompt\"?: string;\n resume?: string;\n continue?: boolean;\n yes?: boolean;\n quiet?: boolean;\n}\n\n// --- Interactive mesh picker ---\n\n/**\n * Ensure the per-user daemon is running before we hand off to Claude Code.\n *\n * As of 1.24.0 the daemon owns the broker WS and feeds the MCP push-pipe\n * over IPC SSE. If the socket is absent when Claude boots its MCP shim,\n * the shim bails (no fallback). Delegates to the shared lifecycle helper\n * (services/daemon/lifecycle.ts) which probes the socket properly\n * (avoiding the stale-socket bug where existsSync was a false positive\n * after a daemon crash), spawns under a file-lock, and polls for liveness.\n */\nasync function ensureDaemonRunning(meshSlug: string, quiet: boolean): Promise<void> {\n const { ensureDaemonReady } = await import(\"~/services/daemon/lifecycle.js\");\n if (!quiet) render.info(\"ensuring claudemesh daemon is running…\");\n // Larger budget for `launch` — it's a one-shot flow where the user\n // is actively waiting; cold node start + broker hello can take\n // longer than the default 3s budget for ad-hoc verbs.\n const res = await ensureDaemonReady({ budgetMs: 10_000, mesh: meshSlug });\n if (res.state === \"up\") {\n if (!quiet) render.ok(\"daemon already running\");\n return;\n }\n if (res.state === \"started\") {\n if (!quiet) render.ok(`daemon ready (${res.durationMs}ms)`);\n return;\n }\n render.warn(\n `daemon ${res.state}${res.reason ? `: ${res.reason}` : \"\"}`,\n \"Run `claudemesh daemon up --mesh \" + meshSlug + \"` manually, then re-launch.\",\n );\n}\n\nasync function pickMesh(meshes: JoinedMesh[]): Promise<JoinedMesh> {\n if (meshes.length === 1) return meshes[0]!;\n\n console.log(\"\\n Select mesh:\");\n meshes.forEach((m, i) => {\n console.log(` ${i + 1}) ${m.slug}`);\n });\n console.log(\"\");\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(\" Choice [1]: \", (answer) => {\n rl.close();\n const idx = parseInt(answer || \"1\", 10) - 1;\n if (idx >= 0 && idx < meshes.length) {\n resolve(meshes[idx]!);\n } else {\n console.error(\" Invalid choice, using first mesh.\");\n resolve(meshes[0]!);\n }\n });\n });\n}\n\n// --- Group string parser ---\n\n/** Parse \"frontend:lead,reviewers:member,all\" → GroupEntry[] */\nfunction parseGroupsString(raw: string): GroupEntry[] {\n return raw\n .split(\",\")\n .map((s) => s.trim())\n .filter(Boolean)\n .map((token) => {\n const idx = token.indexOf(\":\");\n if (idx === -1) return { name: token };\n return { name: token.slice(0, idx), role: token.slice(idx + 1) };\n });\n}\n\n// --- Interactive role/groups prompts ---\n\nfunction askLine(prompt: string): Promise<string> {\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(prompt, (answer) => {\n rl.close();\n resolve(answer.trim());\n });\n });\n}\n\n// --- Permission confirmation ---\n\nasync function confirmPermissions(): Promise<void> {\n const useColor =\n !process.env.NO_COLOR && process.env.TERM !== \"dumb\" && process.stdout.isTTY;\n const bold = (s: string): string => (useColor ? `\\x1b[1m${s}\\x1b[22m` : s);\n const dim = (s: string): string => (useColor ? `\\x1b[2m${s}\\x1b[22m` : s);\n const yellow = (s: string): string => (useColor ? `\\x1b[33m${s}\\x1b[39m` : s);\n\n console.log(yellow(bold(\" Autonomous mode\")));\n console.log(\"\");\n console.log(\" Claude will run with --dangerously-skip-permissions, bypassing\");\n console.log(\" ALL permission prompts — not just claudemesh tools.\");\n console.log(\" Peers exchange text only — no file access, no tool calls.\");\n console.log(\"\");\n console.log(dim(\" Without -y: only claudemesh tools are pre-approved (via allowedTools).\"));\n console.log(dim(\" Use -y for autonomous agents. Omit it for shared/multi-person meshes.\"));\n console.log(\"\");\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve, reject) => {\n rl.question(` ${bold(\"Continue?\")} [Y/n] `, (answer) => {\n rl.close();\n const a = answer.trim().toLowerCase();\n if (a === \"\" || a === \"y\" || a === \"yes\") {\n resolve();\n } else {\n console.log(\"\\n Aborted. Run without autonomous mode:\");\n console.log(\" claude --dangerously-load-development-channels server:claudemesh\\n\");\n process.exit(0);\n }\n });\n });\n}\n\n// --- Banner ---\n\nimport {\n bold as tBold, dim as tDim, green as tGreen, orange as tOrange,\n boldOrange, HIDE_CURSOR, SHOW_CURSOR,\n} from \"~/ui/styles.js\";\nimport {\n enterFullScreen, exitFullScreen, writeCentered, termSize,\n drawTopBar, drawBottomBar, menuSelect, textInput, confirmPrompt,\n} from \"~/ui/screen.js\";\nimport { createSpinner, FRAME_HEIGHT } from \"~/ui/spinner.js\";\n\ninterface LaunchWizardResult {\n mesh: JoinedMesh;\n role: string | null;\n groups: GroupEntry[];\n messageMode: \"push\" | \"inbox\" | \"off\";\n skipPermissions: boolean;\n}\n\n/**\n * Full-screen launch wizard — spinning logo + interactive config.\n * Mesh selection, role, groups, message mode, permissions — all in one TUI.\n * Falls back to plain text on non-TTY.\n */\nasync function runLaunchWizard(opts: {\n displayName: string;\n meshes: JoinedMesh[];\n selectedMesh: JoinedMesh | null;\n existingRole: string | null;\n existingGroups: GroupEntry[];\n existingMessageMode: \"push\" | \"inbox\" | \"off\" | null;\n skipPermConfirm: boolean;\n}): Promise<LaunchWizardResult> {\n if (!process.stdout.isTTY) {\n return {\n mesh: opts.selectedMesh ?? opts.meshes[0]!,\n role: opts.existingRole,\n groups: opts.existingGroups,\n messageMode: opts.existingMessageMode ?? \"push\",\n skipPermissions: opts.skipPermConfirm,\n };\n }\n\n const { rows } = termSize();\n enterFullScreen();\n drawTopBar();\n\n // Spinning logo centered in upper portion\n const logoTop = Math.floor((rows - FRAME_HEIGHT - 16) / 2);\n const brandRow = logoTop + FRAME_HEIGHT + 1;\n const subtitleRow = brandRow + 1;\n const formRow = subtitleRow + 2;\n\n writeCentered(brandRow, boldOrange(\"claudemesh\"));\n writeCentered(subtitleRow, tDim(\"peer mesh for Claude Code\"));\n\n const spinner = createSpinner({\n render(lines) {\n for (let i = 0; i < lines.length; i++) {\n writeCentered(logoTop + i, lines[i]!);\n }\n },\n interval: 70,\n });\n spinner.start();\n\n // Show detected info\n let row = formRow;\n writeCentered(row, `Directory ${tGreen(\"✓\")} ${process.cwd()}`);\n row++;\n writeCentered(row, `Name ${tGreen(\"✓\")} ${opts.displayName}`);\n row += 2;\n\n // Mesh selection\n let mesh: JoinedMesh;\n if (opts.selectedMesh) {\n mesh = opts.selectedMesh;\n writeCentered(row, `Mesh ${tGreen(\"✓\")} ${mesh.slug}`);\n row++;\n } else if (opts.meshes.length === 1) {\n mesh = opts.meshes[0]!;\n writeCentered(row, `Mesh ${tGreen(\"✓\")} ${mesh.slug}`);\n row++;\n } else {\n spinner.stop();\n const choice = await menuSelect({\n title: \"Select mesh\",\n items: opts.meshes.map((m) => m.slug),\n row,\n });\n mesh = opts.meshes[choice]!;\n // Redraw as confirmed\n for (let i = 0; i < opts.meshes.length + 1; i++) {\n writeCentered(row + i, \" \");\n }\n writeCentered(row, `Mesh ${tGreen(\"✓\")} ${mesh.slug}`);\n spinner.start();\n row++;\n }\n\n row++;\n\n // Interactive fields\n let role = opts.existingRole;\n let groups = opts.existingGroups;\n let messageMode = opts.existingMessageMode ?? \"push\" as \"push\" | \"inbox\" | \"off\";\n\n // Role input\n if (role === null) {\n spinner.stop();\n const answer = await textInput({ label: \"Role\", row, placeholder: \"optional — press Enter to skip\" });\n if (answer) role = answer;\n spinner.start();\n row++;\n } else {\n writeCentered(row, `Role ${tGreen(\"✓\")} ${role}`);\n row++;\n }\n\n // Groups input\n if (groups.length === 0) {\n spinner.stop();\n const answer = await textInput({ label: \"Groups\", row, placeholder: \"comma-separated, optional\" });\n if (answer) groups = parseGroupsString(answer);\n spinner.start();\n row++;\n } else {\n const tags = groups.map(g => `@${g.name}${g.role ? `:${g.role}` : \"\"}`).join(\", \");\n writeCentered(row, `Groups ${tGreen(\"✓\")} ${tags}`);\n row++;\n }\n\n // Message mode selection\n if (opts.existingMessageMode === null) {\n row++;\n spinner.stop();\n const choice = await menuSelect({\n title: \"Message mode\",\n items: [\n \"Push (real-time, peers can interrupt)\",\n \"Inbox (held until you check)\",\n \"Off (tools only, no messages)\",\n ],\n row,\n });\n messageMode = ([\"push\", \"inbox\", \"off\"] as const)[choice];\n spinner.start();\n row += 5;\n } else {\n writeCentered(row, `Messages ${tGreen(\"✓\")} ${messageMode}`);\n row++;\n }\n\n // Permissions confirmation\n let skipPermissions = opts.skipPermConfirm;\n if (!skipPermissions) {\n row++;\n spinner.stop();\n writeCentered(row, tDim(\"Claude will run with --dangerously-skip-permissions,\"));\n writeCentered(row + 1, tDim(\"bypassing ALL permission prompts — not just claudemesh.\"));\n row += 3;\n const confirmed = await confirmPrompt({\n message: boldOrange(\"Autonomous mode?\"),\n row,\n defaultYes: true,\n });\n if (!confirmed) {\n exitFullScreen();\n console.log(\" Run without autonomous mode:\");\n console.log(\" claude --dangerously-load-development-channels server:claudemesh\\n\");\n process.exit(0);\n }\n skipPermissions = true;\n spinner.start();\n }\n\n // Final animation\n row += 2;\n writeCentered(row, tDim(\"Launching Claude Code...\"));\n\n await new Promise(r => setTimeout(r, 800));\n spinner.stop();\n exitFullScreen();\n\n return { mesh, role, groups, messageMode, skipPermissions };\n}\n\nfunction printBanner(name: string, meshSlug: string, role: string | null, groups: GroupEntry[], messageMode: \"push\" | \"inbox\" | \"off\"): void {\n const useColor =\n !process.env.NO_COLOR && process.env.TERM !== \"dumb\" && process.stdout.isTTY;\n const dim = (s: string): string => (useColor ? `\\x1b[2m${s}\\x1b[22m` : s);\n const bold = (s: string): string => (useColor ? `\\x1b[1m${s}\\x1b[22m` : s);\n\n const roleSuffix = role ? ` (${role})` : \"\";\n const groupTags = groups.length\n ? \" [\" + groups.map((g) => `@${g.name}${g.role ? `:${g.role}` : \"\"}`).join(\", \") + \"]\"\n : \"\";\n\n const rule = \"─\".repeat(60);\n console.log(bold(`claudemesh launch`) + dim(` — as ${name}${roleSuffix} on ${meshSlug}${groupTags} [${messageMode}]`));\n console.log(rule);\n if (messageMode === \"push\") {\n console.log(\"Peer messages arrive as <channel> reminders in real-time.\");\n } else if (messageMode === \"inbox\") {\n console.log(\"Peer messages held in inbox. Use check_messages to read.\");\n } else {\n console.log(\"Messages off. Use check_messages to poll manually.\");\n }\n console.log(\"Peers send text only — they cannot call tools or read files.\");\n console.log(dim(`Config: ${getConfigPath()}`));\n console.log(rule);\n console.log(\"\");\n}\n\n// --- Main ---\n\nexport async function runLaunch(flags: LaunchFlags, rawArgs: string[]): Promise<void> {\n // Extract args that follow \"--\" — passed straight through to claude.\n const dashIdx = rawArgs.indexOf(\"--\");\n const claudePassthrough = dashIdx >= 0 ? rawArgs.slice(dashIdx + 1) : [];\n\n // Normalise flags into the internal shape used below.\n const args = {\n name: flags.name ?? null,\n role: flags.role ?? null,\n groups: flags.groups ?? null,\n joinLink: flags.join ?? null,\n meshSlug: flags.mesh ?? null,\n messageMode: ([\"push\", \"inbox\", \"off\"].includes(flags[\"message-mode\"] ?? \"\")\n ? flags[\"message-mode\"] as \"push\" | \"inbox\" | \"off\"\n : null),\n systemPrompt: flags[\"system-prompt\"] ?? null,\n resume: flags.resume ?? null,\n continueSession: flags.continue ?? false,\n quiet: flags.quiet ?? false,\n skipPermConfirm: flags.yes ?? false,\n claudeArgs: claudePassthrough,\n };\n\n // 1. If --join, run join flow first.\n if (args.joinLink) {\n render.info(tDim(\"Joining mesh…\"));\n const invite = await parseInviteLink(args.joinLink);\n const keypair = await generateKeypair();\n const displayName = (args.name ?? process.env.USER ?? process.env.USERNAME ?? hostname());\n const enroll = await enrollWithBroker({\n brokerWsUrl: invite.payload.broker_url,\n inviteToken: invite.token,\n invitePayload: invite.payload,\n peerPubkey: keypair.publicKey,\n displayName,\n });\n const config = readConfig();\n config.meshes = config.meshes.filter(\n (m) => m.slug !== invite.payload.mesh_slug,\n );\n config.meshes.push({\n meshId: invite.payload.mesh_id,\n memberId: enroll.memberId,\n slug: invite.payload.mesh_slug,\n name: invite.payload.mesh_slug,\n pubkey: keypair.publicKey,\n secretKey: keypair.secretKey,\n brokerUrl: invite.payload.broker_url,\n joinedAt: new Date().toISOString(),\n });\n const { writeConfig } = await import(\"~/services/config/facade.js\");\n writeConfig(config);\n render.ok(\n `joined ${tBold(invite.payload.mesh_slug)}`,\n enroll.alreadyMember ? \"already member\" : undefined,\n );\n }\n\n // 2. Load config, pick mesh.\n const config = readConfig();\n let justSynced = false;\n\n if (config.meshes.length === 0 && !args.joinLink) {\n const useColor = !process.env.NO_COLOR && process.env.TERM !== \"dumb\" && process.stdout.isTTY;\n const bold = (s: string): string => (useColor ? `\\x1b[1m${s}\\x1b[22m` : s);\n const dim = (s: string): string => (useColor ? `\\x1b[2m${s}\\x1b[22m` : s);\n const green = (s: string): string => (useColor ? `\\x1b[32m${s}\\x1b[39m` : s);\n\n const code = generatePairingCode();\n const listener = await startCallbackListener();\n const url = `https://claudemesh.com/cli-auth?port=${listener.port}&code=${code}&action=sync`;\n\n console.log(`\\n ${bold(\"Welcome to claudemesh!\")} No meshes found.`);\n console.log(` Opening browser to sign in...\\n`);\n\n const opened = await openBrowser(url);\n if (!opened) {\n console.log(` Couldn't open browser automatically.`);\n }\n console.log(` ${dim(`Visit: ${url}`)}`);\n console.log(` ${dim(`Or join with invite: claudemesh launch --join <url>`)}\\n`);\n\n // Race: localhost callback vs manual paste vs timeout\n const manualPromise = new Promise<string>((resolve) => {\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n rl.question(\" Paste sync token (or wait for browser): \", (answer) => {\n rl.close();\n if (answer.trim()) resolve(answer.trim());\n });\n });\n\n const timeoutPromise = new Promise<null>((resolve) => {\n setTimeout(() => resolve(null), 15 * 60_000);\n });\n\n const syncToken = await Promise.race([\n listener.token,\n manualPromise,\n timeoutPromise,\n ]);\n\n listener.close();\n\n if (!syncToken) {\n console.error(\"\\n Timed out waiting for sign-in.\");\n process.exit(1);\n }\n\n // Generate keypair and sync with broker\n const { generateKeypair } = await import(\"~/services/crypto/facade.js\");\n const keypair = await generateKeypair();\n const displayNameForSync = (args.name ?? process.env.USER ?? process.env.USERNAME ?? hostname());\n\n const { syncWithBroker } = await import(\"~/services/auth/facade.js\");\n const result = await syncWithBroker(syncToken, keypair.publicKey, displayNameForSync);\n\n // Write all meshes to config\n const { writeConfig } = await import(\"~/services/config/facade.js\");\n for (const m of result.meshes) {\n config.meshes.push({\n meshId: m.mesh_id,\n memberId: m.member_id,\n slug: m.slug,\n name: m.slug,\n pubkey: keypair.publicKey,\n secretKey: keypair.secretKey,\n brokerUrl: m.broker_url,\n joinedAt: new Date().toISOString(),\n });\n }\n config.accountId = result.account_id;\n writeConfig(config);\n justSynced = true;\n\n console.log(`\\n ${green(\"✓\")} Synced ${result.meshes.length} mesh(es): ${result.meshes.map(m => m.slug).join(\", \")}\\n`);\n }\n\n if (config.meshes.length === 0) {\n render.err(\"No meshes joined.\", \"Run `claudemesh join <url>` or use --join <url>.\");\n process.exit(1);\n }\n\n // Resolve mesh — by flag, auto (if 1), or defer to wizard (if >1)\n let mesh: JoinedMesh;\n if (args.meshSlug) {\n const found = config.meshes.find((m) => m.slug === args.meshSlug);\n if (!found) {\n render.err(\n `Mesh \"${args.meshSlug}\" not found.`,\n `Joined: ${config.meshes.map((m) => m.slug).join(\", \")}`,\n );\n process.exit(1);\n }\n mesh = found;\n } else if (config.meshes.length === 1) {\n mesh = config.meshes[0]!;\n } else {\n // Multiple meshes — wizard will handle selection\n mesh = null as unknown as JoinedMesh; // set by wizard below\n }\n\n // 3. Session identity + role/groups via TUI wizard.\n const displayName = (args.name ?? process.env.USER ?? process.env.USERNAME ?? hostname());\n\n let role: string | null = args.role;\n let parsedGroups: GroupEntry[] = args.groups ? parseGroupsString(args.groups) : [];\n let messageMode: \"push\" | \"inbox\" | \"off\" = args.messageMode ?? \"push\";\n\n // `-y` (skipPermConfirm) implies fully non-interactive — skip the wizard\n // entirely and use sensible defaults (role=member, no groups, push mode).\n // Same applies to `--quiet` and the post-sync path where we already picked.\n const nonInteractive = args.quiet || justSynced || args.skipPermConfirm;\n if (!nonInteractive) {\n const wizardResult = await runLaunchWizard({\n displayName,\n meshes: config.meshes,\n selectedMesh: mesh ?? null,\n existingRole: args.role,\n existingGroups: parsedGroups,\n existingMessageMode: args.messageMode ?? null,\n skipPermConfirm: args.skipPermConfirm,\n });\n mesh = wizardResult.mesh;\n role = wizardResult.role;\n parsedGroups = wizardResult.groups;\n messageMode = wizardResult.messageMode;\n args.skipPermConfirm = wizardResult.skipPermissions;\n } else if (!mesh) {\n // No mesh picked yet + non-interactive — pick the first one deterministically.\n mesh = config.meshes[0]!;\n }\n\n // Clean up orphaned tmpdirs from crashed sessions (older than 1 hour)\n const tmpBase = tmpdir();\n try {\n for (const entry of readdirSync(tmpBase)) {\n if (!entry.startsWith(\"claudemesh-\")) continue;\n const full = join(tmpBase, entry);\n const age = Date.now() - statSync(full).mtimeMs;\n if (age > 3600_000) rmSync(full, { recursive: true, force: true });\n }\n } catch { /* best effort */ }\n\n // Ensure the daemon is running before we spawn Claude. The MCP shim\n // (loaded by --dangerously-load-development-channels server:claudemesh)\n // requires the daemon's UDS to be reachable at boot — if it isn't,\n // channel push, slash commands, and resources fail.\n await ensureDaemonRunning(mesh.slug, args.quiet);\n\n // Clean up stale mesh MCP entries from crashed sessions\n try {\n const claudeConfigPath = join(homedir(), \".claude.json\");\n if (existsSync(claudeConfigPath)) {\n const claudeConfig = JSON.parse(readFileSync(claudeConfigPath, \"utf-8\"));\n const mcpServers = claudeConfig.mcpServers ?? {};\n let cleaned = 0;\n for (const key of Object.keys(mcpServers)) {\n if (!key.startsWith(\"mesh:\")) continue;\n const meta = mcpServers[key]?._meshSession;\n if (!meta?.pid) continue;\n // Check if the PID is still alive\n try {\n process.kill(meta.pid, 0); // signal 0 = check existence\n } catch {\n // PID is dead — remove stale entry\n delete mcpServers[key];\n cleaned++;\n }\n }\n if (cleaned > 0) {\n claudeConfig.mcpServers = mcpServers;\n writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + \"\\n\", \"utf-8\");\n }\n }\n } catch { /* best effort */ }\n\n // --- Fetch deployed services for native MCP entries ---\n let serviceCatalog: Array<{\n name: string;\n description: string;\n status: string;\n tools: Array<{ name: string; description: string; inputSchema: object }>;\n deployed_by: string;\n }> = [];\n\n try {\n const tmpClient = new BrokerClient(mesh, { displayName });\n await tmpClient.connect();\n // Wait briefly for hello_ack with service catalog\n await new Promise(r => setTimeout(r, 2000));\n serviceCatalog = tmpClient.serviceCatalog;\n tmpClient.close();\n } catch {\n // Non-fatal — launch without native service entries\n if (!args.quiet) {\n console.log(\" (Could not fetch service catalog — mesh services won't be natively available)\");\n }\n }\n\n // 4. Write session config to tmpdir (isolates mesh selection).\n const tmpDir = mkdtempSync(join(tmpdir(), \"claudemesh-\"));\n const sessionConfig: Config = {\n version: 1,\n meshes: [mesh],\n displayName,\n ...(role ? { role } : {}),\n ...(parsedGroups.length > 0 ? { groups: parsedGroups } : {}),\n messageMode,\n };\n writeFileSync(\n join(tmpDir, \"config.json\"),\n JSON.stringify(sessionConfig, null, 2) + \"\\n\",\n \"utf-8\",\n );\n\n // 4b. Mint a per-session IPC token, persist it under tmpDir, and\n // register it with the daemon. The token's path is exposed to\n // the spawned claude (and all its descendants) via env so\n // CLI invocations from inside the session auto-attribute to it.\n let sessionTokenFilePath: string | null = null;\n let sessionTokenForCleanup: string | null = null;\n try {\n const { mintSessionToken, TOKEN_FILE_ENV } = await import(\"~/services/session/token.js\");\n const minted = mintSessionToken(tmpDir);\n sessionTokenFilePath = minted.filePath;\n sessionTokenForCleanup = minted.token;\n\n // Register with the daemon. Best-effort: a daemon failure here\n // means the session falls back to user-level scope, which is fine.\n const { ipc } = await import(\"~/daemon/ipc/client.js\");\n const sessionIdForRegister = claudeSessionId ?? randomUUID();\n await ipc({\n method: \"POST\",\n path: \"/v1/sessions/register\",\n timeoutMs: 3_000,\n body: {\n token: minted.token,\n session_id: sessionIdForRegister,\n mesh: mesh.slug,\n display_name: displayName,\n pid: process.pid,\n cwd: process.cwd(),\n ...(role ? { role } : {}),\n ...(parsedGroups.length > 0 ? { groups: parsedGroups.map((g) => `@${g.name}${g.role ? `:${g.role}` : \"\"}`) } : {}),\n },\n }).catch(() => null);\n\n // Pin the env name on a global so the spawn block below can pick it up.\n (process as unknown as { _claudemeshTokenEnv?: { name: string; value: string } })._claudemeshTokenEnv = {\n name: TOKEN_FILE_ENV,\n value: minted.filePath,\n };\n } catch {\n // Token mint or registration failed — proceed without per-session\n // attribution. CLI invocations from the session will still work,\n // they'll just default to user-level scope.\n }\n\n // 5. Print summary banner (wizard already handled all interactive config).\n if (!args.quiet) {\n printBanner(displayName, mesh.slug, role, parsedGroups, messageMode);\n }\n\n // --- Install native MCP entries for deployed mesh services ---\n const meshMcpEntries: Array<{ key: string; entry: unknown }> = [];\n\n if (serviceCatalog.length > 0) {\n const claudeConfigPath = join(homedir(), \".claude.json\");\n\n // Read-modify-write: only touch mesh:* entries in mcpServers\n let claudeConfig: Record<string, unknown> = {};\n try {\n claudeConfig = JSON.parse(readFileSync(claudeConfigPath, \"utf-8\"));\n } catch {\n claudeConfig = {};\n }\n\n const mcpServers = (claudeConfig.mcpServers ?? {}) as Record<string, unknown>;\n\n // Session-scoped key: mesh:<service>:<sessionId>\n const sessionTag = `${process.pid}`;\n\n for (const svc of serviceCatalog) {\n if (svc.status !== \"running\") continue;\n const entryKey = `mesh:${svc.name}:${sessionTag}`;\n const entry = {\n command: \"claudemesh\",\n args: [\"mcp\", \"--service\", svc.name],\n env: {\n CLAUDEMESH_CONFIG_DIR: tmpDir,\n },\n _meshSession: {\n pid: process.pid,\n meshSlug: mesh.slug,\n serviceName: svc.name,\n createdAt: new Date().toISOString(),\n },\n };\n mcpServers[entryKey] = entry;\n meshMcpEntries.push({ key: entryKey, entry });\n }\n\n claudeConfig.mcpServers = mcpServers;\n writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + \"\\n\", \"utf-8\");\n\n if (!args.quiet && meshMcpEntries.length > 0) {\n console.log(` ${meshMcpEntries.length} mesh service(s) registered as native MCPs:`);\n for (const { key } of meshMcpEntries) {\n const svcName = key.split(\":\")[1];\n const svc = serviceCatalog.find(s => s.name === svcName);\n console.log(` ${svcName} (${svc?.tools.length ?? 0} tools)`);\n }\n console.log(\"\");\n }\n }\n\n // 6. Spawn claude with ephemeral config + dev channel + auto-permissions.\n // Strip any user-supplied --dangerously flags to avoid duplicates.\n const filtered: string[] = [];\n for (let i = 0; i < args.claudeArgs.length; i++) {\n if (args.claudeArgs[i] === \"--dangerously-load-development-channels\"\n || args.claudeArgs[i] === \"--dangerously-skip-permissions\") {\n if (args.claudeArgs[i] === \"--dangerously-load-development-channels\") i++;\n continue;\n }\n filtered.push(args.claudeArgs[i]!);\n }\n // --dangerously-skip-permissions is only added when the user explicitly\n // passes -y / --yes. Without it, claudemesh tools still work because\n // `claudemesh install` pre-approves them via allowedTools in settings.json.\n // This keeps permissions tight for multi-person meshes.\n // Session identity: --resume reuses existing session, otherwise generate new.\n // When resuming, Claude Code reuses the session ID so the mesh peer identity persists.\n const isResume = args.resume !== null || args.continueSession;\n const claudeSessionId = isResume ? undefined : randomUUID();\n\n const claudeArgs = [\n \"--dangerously-load-development-channels\",\n \"server:claudemesh\",\n ...(claudeSessionId ? [\"--session-id\", claudeSessionId] : []),\n ...(args.resume ? [\"--resume\", args.resume] : []),\n ...(args.continueSession ? [\"--continue\"] : []),\n ...(args.skipPermConfirm ? [\"--dangerously-skip-permissions\"] : []),\n ...(args.systemPrompt ? [\"--system-prompt\", args.systemPrompt] : []),\n ...filtered,\n ];\n\n // Resolve the full path to `claude` — when launched from a non-interactive\n // shell (e.g. nvm node shebang), ~/.local/bin may not be in PATH.\n const isWindows = process.platform === \"win32\";\n let claudeBin = \"claude\";\n if (!isWindows) {\n const candidates = [\n join(homedir(), \".local\", \"bin\", \"claude\"),\n \"/usr/local/bin/claude\",\n join(homedir(), \".claude\", \"bin\", \"claude\"),\n ];\n for (const c of candidates) {\n if (existsSync(c)) { claudeBin = c; break; }\n }\n }\n\n // 7. Define cleanup — runs on every exit path via process.on('exit').\n // Synchronous-only (rmSync + writeFileSync) so it works inside the\n // 'exit' event, which does not allow async work.\n const cleanup = (): void => {\n // Remove mesh MCP entries from ~/.claude.json\n if (meshMcpEntries.length > 0) {\n try {\n const claudeConfigPath = join(homedir(), \".claude.json\");\n const claudeConfig = JSON.parse(readFileSync(claudeConfigPath, \"utf-8\"));\n const mcpServers = claudeConfig.mcpServers ?? {};\n for (const { key } of meshMcpEntries) {\n delete mcpServers[key];\n }\n claudeConfig.mcpServers = mcpServers;\n writeFileSync(claudeConfigPath, JSON.stringify(claudeConfig, null, 2) + \"\\n\", \"utf-8\");\n } catch { /* best effort */ }\n }\n // The token's session-token file lives inside tmpDir; rmSync below\n // shreds the secret. The daemon's session reaper notices the\n // launched session's pid is gone within 30s and drops the registry\n // entry. Explicit DELETE on /v1/sessions is feasible only from an\n // async exit hook, which adds complexity for ~30s of memory the\n // reaper will reclaim anyway. Leaving as-is; revisit if the\n // registry ever grows persistence.\n // Ephemeral config dir (also drops the session-token file)\n try {\n rmSync(tmpDir, { recursive: true, force: true });\n } catch { /* best effort */ }\n };\n\n // Register cleanup on every exit path — including normal exit, uncaught\n // throws, and fatal signals. process.on('exit') fires synchronously, which\n // is what the rmSync + writeFileSync above need.\n process.on(\"exit\", cleanup);\n\n // 8. Hard-reset the TTY before handing control to claude.\n //\n // Every interactive element in the pre-launch flow — the full-screen\n // wizard (tui/screen.ts), the permission confirmation, the callback-\n // listener paste prompt, the mesh picker — attaches listeners to\n // process.stdin, toggles raw mode, hides the cursor, and sometimes\n // enters the alt-screen. Those helpers do best-effort cleanup in their\n // own finally blocks, but any leak — an orphaned 'data' listener, a\n // still-raw TTY, a pending render paint — means the parent node process\n // keeps competing with claude's Ink TUI for the same keystrokes and\n // stdout frames. Symptoms: dropped keystrokes at the claude prompt, or\n // the wizard visibly repainting on top of claude after launch.\n //\n // Defensive reset here is cheap and guarantees a clean TTY regardless\n // of what the wizard helpers did or didn't restore.\n if (process.stdin.isTTY) {\n try { process.stdin.setRawMode(false); } catch { /* not a TTY under some parents */ }\n }\n process.stdin.removeAllListeners(\"data\");\n process.stdin.removeAllListeners(\"keypress\");\n process.stdin.removeAllListeners(\"readable\");\n process.stdin.pause();\n if (process.stdout.isTTY) {\n process.stdout.write(\"\\x1b[?25h\"); // show cursor\n process.stdout.write(\"\\x1b[?1049l\"); // exit alt-screen if any wizard step entered it\n }\n\n // 9. Block-and-wait on claude with spawnSync.\n //\n // Why spawnSync instead of spawn + child.on('exit'):\n // - spawn keeps the parent node event loop running alongside claude.\n // Any stray listener, setImmediate, or async wizard tail-end can\n // still fire during claude's lifetime, stealing input or painting\n // over claude's TUI.\n // - spawnSync blocks the parent event loop completely until claude\n // exits. No listeners fire. Nothing paints. The parent is effectively\n // suspended, and claude has exclusive ownership of the TTY.\n //\n // Signal forwarding: claude inherits the TTY process group via\n // stdio: \"inherit\". When the user hits Ctrl-C, the terminal sends\n // SIGINT to the whole group. Claude handles it (Ink unmounts, exits\n // cleanly); spawnSync returns with result.signal='SIGINT'. We re-raise\n // the same signal on the parent so it dies the same way.\n const result = spawnSync(claudeBin, claudeArgs, {\n stdio: \"inherit\",\n shell: isWindows,\n env: {\n ...process.env,\n CLAUDEMESH_CONFIG_DIR: tmpDir,\n CLAUDEMESH_DISPLAY_NAME: displayName,\n ...(claudeSessionId ? { CLAUDEMESH_SESSION_ID: claudeSessionId } : {}),\n ...(sessionTokenFilePath ? { CLAUDEMESH_IPC_TOKEN_FILE: sessionTokenFilePath } : {}),\n MCP_TIMEOUT: process.env.MCP_TIMEOUT ?? \"30000\",\n MAX_MCP_OUTPUT_TOKENS: process.env.MAX_MCP_OUTPUT_TOKENS ?? \"50000\",\n ...(role ? { CLAUDEMESH_ROLE: role } : {}),\n },\n });\n\n // 10. Handle the result. Cleanup runs automatically via process.on('exit').\n if (result.error) {\n const err = result.error as NodeJS.ErrnoException;\n if (err.code === \"ENOENT\") {\n render.err(\"`claude` not found on PATH.\", \"Install Claude Code first.\");\n } else {\n render.err(`failed to launch claude: ${err.message}`);\n }\n process.exit(1);\n }\n\n if (result.signal) {\n // Re-raise the same signal so the parent dies the same way the child did.\n process.kill(process.pid, result.signal);\n return;\n }\n\n process.exit(result.status ?? 0);\n}\n",
52
54
  "import { bold, green, dim, orange, icons } from \"../styles.js\";\n\nexport function renderWelcome(): void {\n console.log(\"\");\n console.log(\" \" + orange(\"Welcome to claudemesh\"));\n console.log(\" \" + dim(\"Peer mesh for Claude Code sessions\"));\n console.log(\"\");\n console.log(\" What would you like to do?\");\n console.log(\"\");\n console.log(\" \" + bold(\"1)\") + \" \" + green(\"Register\") + \" a new account\");\n console.log(\" \" + bold(\"2)\") + \" \" + green(\"Login\") + \" to an existing account\");\n console.log(\" \" + bold(\"3)\") + \" \" + green(\"Join\") + \" a mesh from an invite link\");\n console.log(\" \" + bold(\"4)\") + \" Exit\");\n console.log(\"\");\n}\n",
53
55
  "import type { JoinedMesh } from \"~/services/config/facade.js\";\nimport { bold } from \"../styles.js\";\n\nexport function renderMeshPicker(meshes: JoinedMesh[]): void {\n console.log(\"\\n Select a mesh:\\n\");\n meshes.forEach((m, i) => {\n console.log(\" \" + bold((i + 1) + \")\") + \" \" + m.slug);\n });\n console.log(\"\");\n}\n",
54
56
  "export { renderWelcome } from \"./WelcomeScreen.js\";\nexport { renderRegisterStep } from \"./RegisterStep.js\";\nexport { renderLoginStep } from \"./LoginStep.js\";\nexport { renderMeshPicker } from \"./MeshPickerStep.js\";\n",
@@ -88,24 +90,23 @@
88
90
  "var QRCode = require('./../vendor/QRCode'),\n QRErrorCorrectLevel = require('./../vendor/QRCode/QRErrorCorrectLevel'),\n black = \"\\033[40m \\033[0m\",\n white = \"\\033[47m \\033[0m\",\n toCell = function (isBlack) {\n return isBlack ? black : white;\n },\n repeat = function (color) {\n return {\n times: function (count) {\n return new Array(count).join(color);\n }\n };\n },\n fill = function(length, value) {\n var arr = new Array(length);\n for (var i = 0; i < length; i++) {\n arr[i] = value;\n }\n return arr;\n };\n\nmodule.exports = {\n\n error: QRErrorCorrectLevel.L,\n\n generate: function (input, opts, cb) {\n if (typeof opts === 'function') {\n cb = opts;\n opts = {};\n }\n\n var qrcode = new QRCode(-1, this.error);\n qrcode.addData(input);\n qrcode.make();\n\n var output = '';\n if (opts && opts.small) {\n var BLACK = true, WHITE = false;\n var moduleCount = qrcode.getModuleCount();\n var moduleData = qrcode.modules.slice();\n\n var oddRow = moduleCount % 2 === 1;\n if (oddRow) {\n moduleData.push(fill(moduleCount, WHITE));\n }\n\n var platte= {\n WHITE_ALL: '\\u2588',\n WHITE_BLACK: '\\u2580',\n BLACK_WHITE: '\\u2584',\n BLACK_ALL: ' ',\n };\n\n var borderTop = repeat(platte.BLACK_WHITE).times(moduleCount + 3);\n var borderBottom = repeat(platte.WHITE_BLACK).times(moduleCount + 3);\n output += borderTop + '\\n';\n\n for (var row = 0; row < moduleCount; row += 2) {\n output += platte.WHITE_ALL;\n\n for (var col = 0; col < moduleCount; col++) {\n if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === WHITE) {\n output += platte.WHITE_ALL;\n } else if (moduleData[row][col] === WHITE && moduleData[row + 1][col] === BLACK) {\n output += platte.WHITE_BLACK;\n } else if (moduleData[row][col] === BLACK && moduleData[row + 1][col] === WHITE) {\n output += platte.BLACK_WHITE;\n } else {\n output += platte.BLACK_ALL;\n }\n }\n\n output += platte.WHITE_ALL + '\\n';\n }\n\n if (!oddRow) {\n output += borderBottom;\n }\n } else {\n var border = repeat(white).times(qrcode.getModuleCount() + 3);\n\n output += border + '\\n';\n qrcode.modules.forEach(function (row) {\n output += white;\n output += row.map(toCell).join(''); \n output += white + '\\n';\n });\n output += border;\n }\n\n if (cb) cb(output);\n else console.log(output);\n },\n\n setErrorLevel: function (error) {\n this.error = QRErrorCorrectLevel[error] || this.error;\n }\n\n};\n",
89
91
  "/**\n * Tiny ASCII QR renderer — no dependencies.\n *\n * Uses Reed-Solomon QR v4 (33x33) with ECC level L, sufficient for a\n * short URL like https://claudemesh.com/i/XXXXXXXX (~40 bytes). For\n * anything longer than ~77 alphanumeric chars we bail with a message\n * telling the user to copy the link instead.\n *\n * Writing a correct QR encoder from scratch is substantial. Rather than\n * add a dependency, we leverage Google Charts' deprecated chart QR\n * endpoint which is still live and returns a PNG, AND we print a\n * half-block ANSI fallback via a server-side render. But terminals\n * work best with real characters, so we use a simpler trick:\n *\n * 1. Request an SVG rasterization via qrserver.com (public, no API key)\n * 2. Parse the returned PNG into a 1-bit matrix via a tiny decoder\n *\n * That's still a dep. Simpler: just render a pure Unicode fallback that\n * shows the URL wrapped in a box. QR is a nice-to-have; the URL + copy\n * button on the terminal handles the common case.\n *\n * For a real QR we'd add `qrcode` or `qrcode-terminal` — one dep,\n * tiny. Let's do that; it's the standard choice.\n */\n\nimport qrcode from \"qrcode-terminal\";\n\n/**\n * Render a URL as a terminal-friendly QR code using half-block chars.\n * Falls back to a boxed URL if rendering fails.\n */\nexport function renderQr(text: string, opts: { small?: boolean } = {}): string {\n return new Promise<string>((resolve) => {\n try {\n qrcode.generate(text, { small: opts.small ?? true }, (ascii) => {\n resolve(ascii);\n });\n } catch {\n resolve(fallbackBox(text));\n }\n }) as unknown as string;\n}\n\nexport async function renderQrAsync(text: string, opts: { small?: boolean } = {}): Promise<string> {\n return new Promise<string>((resolve) => {\n try {\n qrcode.generate(text, { small: opts.small ?? true }, (ascii) => {\n resolve(ascii);\n });\n } catch {\n resolve(fallbackBox(text));\n }\n });\n}\n\nfunction fallbackBox(text: string): string {\n const padded = ` ${text} `;\n const w = padded.length;\n const top = \"┌\" + \"─\".repeat(w) + \"┐\";\n const mid = \"│\" + padded + \"│\";\n const bot = \"└\" + \"─\".repeat(w) + \"┘\";\n return `${top}\\n${mid}\\n${bot}`;\n}\n",
90
92
  "import { createInterface } from \"node:readline\";\nimport { getStoredToken } from \"~/services/auth/facade.js\";\nimport { generateInvite } from \"~/services/invite/generate.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { writeClipboard } from \"~/services/clipboard/facade.js\";\nimport { green, bold, dim, icons } from \"~/ui/styles.js\";\nimport { renderQrAsync } from \"~/ui/qr.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\nfunction prompt(question: string): Promise<string> {\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(question, (a) => { rl.close(); resolve(a.trim()); });\n });\n}\n\nexport async function invite(\n email?: string,\n opts: { mesh?: string; expires?: string; uses?: number; role?: string; json?: boolean } = {},\n): Promise<number> {\n const auth = getStoredToken();\n if (!auth) {\n console.error(\" Not signed in. Run `claudemesh login` first.\");\n return EXIT.AUTH_FAILED;\n }\n\n const config = readConfig();\n if (config.meshes.length === 0) {\n console.error(\" No meshes. Create one with `claudemesh mesh create <name>`.\");\n return EXIT.NOT_FOUND;\n }\n\n // Resolve which mesh to share\n let meshSlug = opts.mesh;\n if (!meshSlug) {\n if (config.meshes.length === 1) {\n meshSlug = config.meshes[0]!.slug;\n } else {\n // Show picker\n console.log(\"\\n Select mesh to share:\\n\");\n config.meshes.forEach((m, i) => {\n console.log(` ${bold(String(i + 1) + \")\")} ${m.slug}`);\n });\n console.log(\"\");\n const choice = await prompt(\" Choice [1]: \") || \"1\";\n const idx = parseInt(choice, 10) - 1;\n meshSlug = config.meshes[idx >= 0 && idx < config.meshes.length ? idx : 0]!.slug;\n }\n }\n\n try {\n const result = await generateInvite(meshSlug, {\n email,\n expires_in: opts.expires ?? \"7d\",\n max_uses: opts.uses,\n role: opts.role,\n });\n\n const copied = writeClipboard(result.url);\n\n if (opts.json) {\n console.log(JSON.stringify({ schema_version: \"1.0\", ...result, copied }, null, 2));\n } else {\n if (email) {\n if (result.emailed) {\n console.log(`\\n ${green(icons.check)} Invite sent to ${bold(email)}`);\n if (copied) console.log(` ${green(icons.check)} Link also copied to clipboard`);\n } else {\n console.log(`\\n ${icons.cross} Email to ${bold(email)} was NOT sent (server did not send).`);\n console.log(` ${dim(\"Share the link manually:\")}`);\n console.log(` ${result.url}`);\n if (copied) console.log(` ${green(icons.check)} Link copied to clipboard`);\n }\n } else {\n console.log(`\\n ${green(icons.check)} Invite link${copied ? \" copied to clipboard\" : \"\"}:`);\n console.log(` ${result.url}`);\n // Print QR for phone→laptop pairing. Small variant is ~17 lines tall.\n const qr = await renderQrAsync(result.url, { small: true });\n console.log(\"\");\n for (const line of qr.split(\"\\n\")) console.log(` ${line}`);\n }\n console.log(`\\n ${dim(\"Expires \" + result.expires_at + \". Anyone with this link can join \\\"\" + meshSlug + \"\\\".\")}\\n`);\n }\n\n return EXIT.SUCCESS;\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n if (msg.includes(\"403\") || msg.includes(\"permission\")) {\n console.error(` ${icons.cross} You don't have permission to invite to \"${meshSlug}\".`);\n console.error(` ${dim(\"Ask the mesh owner to grant you invite permissions.\")}`);\n } else {\n console.error(` ${icons.cross} Failed: ${msg}`);\n }\n return EXIT.INTERNAL_ERROR;\n }\n}\n",
91
- "/**\n * Short-lived WS connection helper for CLI commands (peers, send, inbox, state).\n *\n * Opens a connection to one mesh, runs a callback, then closes cleanly.\n * The caller never deals with connect/close lifecycle.\n */\n\nimport { hostname } from \"node:os\";\nimport { createInterface } from \"node:readline\";\nimport { BrokerClient } from \"~/services/broker/facade.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport type { JoinedMesh } from \"~/services/config/facade.js\";\n\nexport interface ConnectOpts {\n /** Mesh slug to connect to. Auto-selects if only one mesh joined. */\n meshSlug?: string | null;\n /** Display name for this session. Defaults to hostname-pid. */\n displayName?: string;\n /** Connect to all meshes and run fn for each. */\n all?: boolean;\n}\n\nasync function pickMesh(meshes: JoinedMesh[]): Promise<JoinedMesh> {\n console.log(\"\\n Select mesh:\");\n meshes.forEach((m, i) => {\n console.log(` ${i + 1}) ${m.slug}`);\n });\n console.log(\"\");\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(\" Choice [1]: \", (answer) => {\n rl.close();\n const idx = parseInt(answer || \"1\", 10) - 1;\n if (idx >= 0 && idx < meshes.length) {\n resolve(meshes[idx]!);\n } else {\n console.error(\" Invalid choice, using first mesh.\");\n resolve(meshes[0]!);\n }\n });\n });\n}\n\nexport async function withMesh<T>(\n opts: ConnectOpts,\n fn: (client: BrokerClient, mesh: JoinedMesh) => Promise<T>,\n): Promise<T> {\n const config = readConfig();\n if (config.meshes.length === 0) {\n console.error(\"No meshes joined. Run `claudemesh join <url>` first.\");\n process.exit(1);\n }\n\n let mesh: JoinedMesh;\n if (opts.meshSlug) {\n const found = config.meshes.find((m) => m.slug === opts.meshSlug);\n if (!found) {\n console.error(\n `Mesh \"${opts.meshSlug}\" not found. Joined: ${config.meshes.map((m) => m.slug).join(\", \")}`,\n );\n process.exit(1);\n }\n mesh = found;\n } else if (config.meshes.length === 1) {\n mesh = config.meshes[0]!;\n } else {\n mesh = await pickMesh(config.meshes);\n }\n\n const displayName = opts.displayName ?? config.displayName ?? `${hostname()}-${process.pid}`;\n const client = new BrokerClient(mesh, { displayName, quiet: true });\n\n try {\n await client.connect();\n const result = await fn(client, mesh);\n return result;\n } catch (e) {\n // Terminal close from the broker (banned / kicked). Give the user\n // a clear message instead of the low-level ws error.\n if (client.terminalClose) {\n const { code, reason } = client.terminalClose;\n if (code === 4002) {\n console.error(`\\n ✘ ${reason}\\n`);\n } else if (code === 4001) {\n console.error(`\\n ✘ Kicked from this mesh. Run \\`claudemesh\\` to rejoin.\\n`);\n } else {\n console.error(`\\n ✘ Broker closed connection: ${reason}\\n`);\n }\n process.exit(1);\n }\n throw e;\n } finally {\n client.close();\n }\n}\n",
93
+ "/**\n * Short-lived WS connection helper for CLI commands (peers, send, inbox, state).\n *\n * Opens a connection to one mesh, runs a callback, then closes cleanly.\n * The caller never deals with connect/close lifecycle.\n */\n\nimport { hostname } from \"node:os\";\nimport { createInterface } from \"node:readline\";\nimport { BrokerClient } from \"~/services/broker/facade.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport type { JoinedMesh } from \"~/services/config/facade.js\";\nimport { getDaemonPolicy } from \"~/services/daemon/policy.js\";\n\nexport interface ConnectOpts {\n /** Mesh slug to connect to. Auto-selects if only one mesh joined. */\n meshSlug?: string | null;\n /** Display name for this session. Defaults to hostname-pid. */\n displayName?: string;\n /** Connect to all meshes and run fn for each. */\n all?: boolean;\n}\n\nasync function pickMesh(meshes: JoinedMesh[]): Promise<JoinedMesh> {\n console.log(\"\\n Select mesh:\");\n meshes.forEach((m, i) => {\n console.log(` ${i + 1}) ${m.slug}`);\n });\n console.log(\"\");\n\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n return new Promise((resolve) => {\n rl.question(\" Choice [1]: \", (answer) => {\n rl.close();\n const idx = parseInt(answer || \"1\", 10) - 1;\n if (idx >= 0 && idx < meshes.length) {\n resolve(meshes[idx]!);\n } else {\n console.error(\" Invalid choice, using first mesh.\");\n resolve(meshes[0]!);\n }\n });\n });\n}\n\nexport async function withMesh<T>(\n opts: ConnectOpts,\n fn: (client: BrokerClient, mesh: JoinedMesh) => Promise<T>,\n): Promise<T> {\n // --strict gate: every cold-path verb funnels through here, so a single\n // policy check covers the whole CLI surface. The daemon-routing helpers\n // already returned null (auto-spawn failed); under --strict we refuse\n // the cold-path fallback and exit loudly instead.\n if (getDaemonPolicy().mode === \"strict\") {\n console.error(\n \"\\n ✘ daemon not reachable — --strict refuses cold-path fallback.\\n\" +\n \" run `claudemesh daemon up` (or `claudemesh doctor`) and retry.\\n\",\n );\n process.exit(1);\n }\n\n const config = readConfig();\n if (config.meshes.length === 0) {\n console.error(\"No meshes joined. Run `claudemesh join <url>` first.\");\n process.exit(1);\n }\n\n let mesh: JoinedMesh;\n if (opts.meshSlug) {\n const found = config.meshes.find((m) => m.slug === opts.meshSlug);\n if (!found) {\n console.error(\n `Mesh \"${opts.meshSlug}\" not found. Joined: ${config.meshes.map((m) => m.slug).join(\", \")}`,\n );\n process.exit(1);\n }\n mesh = found;\n } else if (config.meshes.length === 1) {\n mesh = config.meshes[0]!;\n } else {\n mesh = await pickMesh(config.meshes);\n }\n\n const displayName = opts.displayName ?? config.displayName ?? `${hostname()}-${process.pid}`;\n const client = new BrokerClient(mesh, { displayName, quiet: true });\n\n try {\n await client.connect();\n const result = await fn(client, mesh);\n return result;\n } catch (e) {\n // Terminal close from the broker (banned / kicked). Give the user\n // a clear message instead of the low-level ws error.\n if (client.terminalClose) {\n const { code, reason } = client.terminalClose;\n if (code === 4002) {\n console.error(`\\n ✘ ${reason}\\n`);\n } else if (code === 4001) {\n console.error(`\\n ✘ Kicked from this mesh. Run \\`claudemesh\\` to rejoin.\\n`);\n } else {\n console.error(`\\n ✘ Broker closed connection: ${reason}\\n`);\n }\n process.exit(1);\n }\n throw e;\n } finally {\n client.close();\n }\n}\n",
92
94
  "/**\n * `claudemesh info` — show mesh overview: slug, broker URL, peer count, state count.\n *\n * Useful for AI agents to orient themselves in a mesh via bash.\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { render } from \"~/ui/render.js\";\n\nexport interface InfoFlags {\n mesh?: string;\n json?: boolean;\n}\n\nexport async function runInfo(flags: InfoFlags): Promise<void> {\n const config = readConfig();\n\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client, mesh) => {\n const [brokerInfo, peers, state] = await Promise.all([\n client.meshInfo(),\n client.listPeers(),\n client.listState(),\n ]);\n\n const output = {\n slug: mesh.slug,\n meshId: mesh.meshId,\n memberId: mesh.memberId,\n brokerUrl: mesh.brokerUrl,\n displayName: config.displayName ?? null,\n peerCount: peers.length,\n stateCount: state.length,\n ...(brokerInfo ?? {}),\n };\n\n if (flags.json) {\n process.stdout.write(JSON.stringify(output, null, 2) + \"\\n\");\n return;\n }\n\n render.section(`${mesh.slug} · ${mesh.brokerUrl}`);\n render.kv([\n [\"mesh\", mesh.meshId],\n [\"member\", mesh.memberId],\n [\"peers\", `${peers.length} connected`],\n [\"state\", `${state.length} keys`],\n ]);\n if (brokerInfo && typeof brokerInfo === \"object\") {\n const extras: Array<[string, string]> = [];\n for (const [k, v] of Object.entries(brokerInfo)) {\n if ([\"slug\", \"meshId\", \"brokerUrl\"].includes(k)) continue;\n extras.push([k, JSON.stringify(v)]);\n }\n if (extras.length) render.kv(extras);\n }\n });\n}\n",
93
95
  "/**\n * Mint an ephemeral apikey via the broker WS, hand it to a REST callback,\n * and revoke on exit. Lets `notification list`, `member list`, and\n * `topic tail` reuse the v1 REST surface without making the user manage\n * their own bearer tokens.\n *\n * The key is bound to the same mesh the WS connection picked, lives for\n * 5 minutes max, and gets read-only capability + a label that makes the\n * mesh dashboard's apikey list legible. We revoke even when fn throws.\n */\n\nimport { withMesh } from \"~/commands/connect.js\";\nimport type { BrokerClient } from \"~/services/broker/facade.js\";\nimport type { JoinedMesh } from \"~/services/config/facade.js\";\n\nexport interface RestKeyContext {\n secret: string;\n meshId: string;\n meshSlug: string;\n client: BrokerClient;\n mesh: JoinedMesh;\n}\n\nexport interface WithRestKeyOpts {\n meshSlug?: string | null;\n /** Capabilities to grant — defaults to [\"read\"]. */\n capabilities?: Array<\"send\" | \"read\" | \"state_write\" | \"admin\">;\n /** Topic-scope allowlist — null = all topics. */\n topicScopes?: string[] | null;\n /** Label suffix for the apikey list. */\n purpose?: string;\n}\n\nexport async function withRestKey<T>(\n opts: WithRestKeyOpts,\n fn: (ctx: RestKeyContext) => Promise<T>,\n): Promise<T> {\n return withMesh({ meshSlug: opts.meshSlug ?? null }, async (client, mesh) => {\n const result = await client.apiKeyCreate({\n label: `cli-${opts.purpose ?? \"rest\"}-${process.pid}`,\n capabilities: opts.capabilities ?? [\"read\"],\n topicScopes: opts.topicScopes ?? undefined,\n expiresAt: new Date(Date.now() + 5 * 60 * 1000).toISOString(),\n });\n if (!result || !result.secret) {\n throw new Error(\"apikey mint failed — broker did not return a secret\");\n }\n try {\n return await fn({\n secret: result.secret,\n meshId: mesh.meshId,\n meshSlug: mesh.slug,\n client,\n mesh,\n });\n } finally {\n // Best-effort cleanup. If the broker connection already closed we\n // just leak a 5-minute key — acceptable trade-off for keeping the\n // command code linear.\n try {\n await client.apiKeyRevoke(result.id);\n } catch {\n // swallow — diagnostic noise without value\n }\n }\n });\n}\n",
94
96
  "/**\n * `claudemesh me` — cross-mesh workspace overview for the caller's user.\n *\n * Calls GET /v1/me/workspace which aggregates over every mesh the\n * authenticated user belongs to: peer count, online count, topic count,\n * unread @-mention count per mesh + global totals.\n *\n * Auth: mints a temporary read-scoped REST apikey on whichever mesh\n * the user has joined first (any mesh works — the endpoint resolves\n * to the issuing user, not the apikey's mesh).\n *\n * v0.4.0 substrate. Future verbs (`me topics`, `me notifications`,\n * `me activity`, `me search`) layer on top of similar aggregating\n * endpoints once they ship.\n */\n\nimport { withRestKey } from \"~/services/api/with-rest-key.js\";\nimport { request } from \"~/services/api/client.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, clay, cyan, dim, green, yellow } from \"~/ui/styles.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\n/**\n * /v1/me/* endpoints resolve the caller's user from the apikey issuer\n * regardless of which mesh issued the key — every mesh works. When the\n * user didn't pass --mesh, silently pick the first joined mesh for\n * apikey-mint instead of prompting; the endpoint sees the same user.\n */\nfunction resolveMeshForMint(explicit: string | null | undefined): string | null {\n if (explicit) return explicit;\n const cfg = readConfig();\n return cfg.meshes[0]?.slug ?? null;\n}\n\ninterface WorkspaceMesh {\n meshId: string;\n slug: string;\n name: string;\n memberId: string;\n myRole: string;\n joinedAt: string;\n peers: number;\n online: number;\n topics: number;\n unreadMentions: number;\n}\n\ninterface WorkspaceResponse {\n userId: string;\n meshes: WorkspaceMesh[];\n totals: {\n meshes: number;\n peers: number;\n online: number;\n topics: number;\n unreadMentions: number;\n };\n}\n\nexport interface MeFlags {\n mesh?: string;\n json?: boolean;\n}\n\nexport async function runMe(flags: MeFlags): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-overview\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const ws = await request<WorkspaceResponse>({\n path: \"/api/v1/me/workspace\",\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n render.section(\n `${clay(\"workspace\")} — ${bold(ws.userId.slice(0, 8))} ${dim(\n `· ${ws.totals.meshes} mesh${ws.totals.meshes === 1 ? \"\" : \"es\"}`,\n )}`,\n );\n\n const totalsLine = [\n `${green(String(ws.totals.online))}/${ws.totals.peers} online`,\n `${ws.totals.topics} topic${ws.totals.topics === 1 ? \"\" : \"s\"}`,\n ws.totals.unreadMentions > 0\n ? yellow(`${ws.totals.unreadMentions} unread @you`)\n : dim(\"0 unread @you\"),\n ].join(dim(\" · \"));\n process.stdout.write(\" \" + totalsLine + \"\\n\\n\");\n\n if (ws.meshes.length === 0) {\n process.stdout.write(\n dim(\" no meshes joined — run `claudemesh new` or accept an invite\\n\"),\n );\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(...ws.meshes.map((m) => m.slug.length), 8);\n for (const m of ws.meshes) {\n const slug = cyan(m.slug.padEnd(slugWidth));\n const peers = `${m.online}/${m.peers}`;\n const role = dim(m.myRole);\n const unread =\n m.unreadMentions > 0\n ? \" \" + yellow(`${m.unreadMentions} @you`)\n : \"\";\n process.stdout.write(\n ` ${slug} ${peers.padStart(5)} online ${dim(\n String(m.topics).padStart(2) + \" topics\",\n )} ${role}${unread}\\n`,\n );\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\ninterface WorkspaceTopic {\n topicId: string;\n name: string;\n description: string | null;\n visibility: string;\n createdAt: string;\n meshId: string;\n meshSlug: string;\n meshName: string;\n memberId: string;\n unread: number;\n lastMessageAt: string | null;\n}\n\ninterface WorkspaceTopicsResponse {\n topics: WorkspaceTopic[];\n totals: { topics: number; unread: number };\n}\n\nexport interface MeTopicsFlags extends MeFlags {\n unread?: boolean;\n}\n\nexport async function runMeTopics(flags: MeTopicsFlags): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-topics\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const ws = await request<WorkspaceTopicsResponse>({\n path: \"/api/v1/me/topics\",\n token: secret,\n });\n\n const visible = flags.unread\n ? ws.topics.filter((t) => t.unread > 0)\n : ws.topics;\n\n if (flags.json) {\n console.log(\n JSON.stringify(\n { topics: visible, totals: ws.totals },\n null,\n 2,\n ),\n );\n return EXIT.SUCCESS;\n }\n\n render.section(\n `${clay(\"topics\")} — ${ws.totals.topics} across all meshes ${dim(\n ws.totals.unread > 0\n ? `· ${ws.totals.unread} unread`\n : \"· all read\",\n )}`,\n );\n\n if (visible.length === 0) {\n process.stdout.write(\n dim(\n flags.unread\n ? \" no unread topics\\n\"\n : \" no topics — run `claudemesh topic create #general`\\n\",\n ),\n );\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(...visible.map((t) => t.meshSlug.length), 6);\n const nameWidth = Math.max(...visible.map((t) => t.name.length), 8);\n\n for (const t of visible) {\n const slug = dim(t.meshSlug.padEnd(slugWidth));\n const name = cyan(t.name.padEnd(nameWidth));\n const unread =\n t.unread > 0\n ? yellow(`${t.unread} unread`.padStart(10))\n : dim(\"·\".padStart(10));\n const last = t.lastMessageAt\n ? dim(formatRelativeTime(t.lastMessageAt))\n : dim(\"never\");\n process.stdout.write(` ${slug} ${name} ${unread} ${last}\\n`);\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\ninterface WorkspaceNotification {\n notificationId: string;\n messageId: string;\n topicId: string;\n topicName: string;\n meshId: string;\n meshSlug: string;\n meshName: string;\n senderName: string | null;\n snippet: string | null;\n ciphertext: string | null;\n bodyVersion: number;\n read: boolean;\n readAt: string | null;\n createdAt: string;\n}\n\ninterface WorkspaceNotificationsResponse {\n notifications: WorkspaceNotification[];\n totals: { unread: number; total: number };\n}\n\nexport interface MeNotificationsFlags extends MeFlags {\n all?: boolean;\n since?: string;\n}\n\nexport async function runMeNotifications(\n flags: MeNotificationsFlags,\n): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-notifications\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const params = new URLSearchParams();\n if (flags.all) params.set(\"include\", \"all\");\n if (flags.since) params.set(\"since\", flags.since);\n const path =\n \"/api/v1/me/notifications\" +\n (params.toString() ? `?${params.toString()}` : \"\");\n const ws = await request<WorkspaceNotificationsResponse>({\n path,\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n const headerLabel = flags.all ? \"@-mentions (all)\" : \"@-mentions (unread)\";\n render.section(\n `${clay(headerLabel)} — ${ws.totals.total} ${dim(\n ws.totals.unread > 0 ? `· ${ws.totals.unread} unread` : \"· nothing pending\",\n )}`,\n );\n\n if (ws.notifications.length === 0) {\n process.stdout.write(\n dim(\n flags.all\n ? \" no @-mentions in window\\n\"\n : \" inbox zero — nothing waiting\\n\",\n ),\n );\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(\n ...ws.notifications.map((n) => n.meshSlug.length),\n 6,\n );\n\n for (const n of ws.notifications) {\n const slug = dim(n.meshSlug.padEnd(slugWidth));\n const topic = cyan(`#${n.topicName}`);\n const sender = n.senderName ? `from ${n.senderName}` : \"from ?\";\n const ago = formatRelativeTime(n.createdAt);\n const dot = n.read ? dim(\"·\") : yellow(\"●\");\n const snippet =\n n.snippet ?? (n.ciphertext ? dim(\"[encrypted]\") : dim(\"[empty]\"));\n process.stdout.write(\n ` ${dot} ${slug} ${topic} ${dim(sender)} ${dim(ago)}\\n` +\n ` ${snippet.length > 200 ? snippet.slice(0, 200) + \"…\" : snippet}\\n`,\n );\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\ninterface WorkspaceActivity {\n messageId: string;\n topicId: string;\n topicName: string;\n meshId: string;\n meshSlug: string;\n meshName: string;\n senderName: string;\n senderMemberId: string;\n snippet: string | null;\n ciphertext: string | null;\n bodyVersion: number;\n createdAt: string;\n}\n\ninterface WorkspaceActivityResponse {\n activity: WorkspaceActivity[];\n totals: { events: number };\n}\n\nexport interface MeActivityFlags extends MeFlags {\n since?: string;\n}\n\nexport async function runMeActivity(flags: MeActivityFlags): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-activity\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const params = new URLSearchParams();\n if (flags.since) params.set(\"since\", flags.since);\n const path =\n \"/api/v1/me/activity\" +\n (params.toString() ? `?${params.toString()}` : \"\");\n const ws = await request<WorkspaceActivityResponse>({\n path,\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n render.section(\n `${clay(\"activity\")} — ${ws.totals.events} ${dim(\n flags.since ? `since ${flags.since}` : \"in the last 24h\",\n )}`,\n );\n\n if (ws.activity.length === 0) {\n process.stdout.write(dim(\" quiet — no activity in window\\n\"));\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(\n ...ws.activity.map((a) => a.meshSlug.length),\n 6,\n );\n\n for (const a of ws.activity) {\n const slug = dim(a.meshSlug.padEnd(slugWidth));\n const topic = cyan(`#${a.topicName}`);\n const sender = a.senderName ?? \"?\";\n const ago = formatRelativeTime(a.createdAt);\n const snippet =\n a.snippet ?? (a.ciphertext ? dim(\"[encrypted]\") : dim(\"[empty]\"));\n process.stdout.write(\n ` ${slug} ${topic} ${dim(sender + \" ·\")} ${dim(ago)}\\n` +\n ` ${snippet.length > 200 ? snippet.slice(0, 200) + \"…\" : snippet}\\n`,\n );\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\ninterface WorkspaceSearchTopicHit {\n id: string;\n name: string;\n description: string | null;\n meshId: string;\n meshSlug: string;\n meshName: string;\n}\n\ninterface WorkspaceSearchMessageHit {\n messageId: string;\n topicId: string;\n topicName: string;\n meshId: string;\n meshSlug: string;\n senderName: string;\n snippet: string | null;\n bodyVersion: number;\n createdAt: string;\n}\n\ninterface WorkspaceSearchResponse {\n query: string;\n topics: WorkspaceSearchTopicHit[];\n messages: WorkspaceSearchMessageHit[];\n totals: { topics: number; messages: number };\n}\n\nexport interface MeSearchFlags extends MeFlags {\n query: string;\n}\n\nexport async function runMeSearch(flags: MeSearchFlags): Promise<number> {\n if (!flags.query || flags.query.length < 2) {\n process.stderr.write(\n \"Usage: claudemesh me search <query> (min 2 chars)\\n\",\n );\n return EXIT.INVALID_ARGS;\n }\n\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-search\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const params = new URLSearchParams({ q: flags.query });\n const ws = await request<WorkspaceSearchResponse>({\n path: `/api/v1/me/search?${params.toString()}`,\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n render.section(\n `${clay(\"search\")} — \"${flags.query}\" ${dim(\n `${ws.totals.topics} topic${ws.totals.topics === 1 ? \"\" : \"s\"}, ` +\n `${ws.totals.messages} message${ws.totals.messages === 1 ? \"\" : \"s\"}`,\n )}`,\n );\n\n if (ws.topics.length === 0 && ws.messages.length === 0) {\n process.stdout.write(dim(\" no matches\\n\"));\n return EXIT.SUCCESS;\n }\n\n if (ws.topics.length > 0) {\n process.stdout.write(dim(\"\\n topics\\n\"));\n const slugWidth = Math.max(\n ...ws.topics.map((t) => t.meshSlug.length),\n 6,\n );\n for (const t of ws.topics) {\n const slug = dim(t.meshSlug.padEnd(slugWidth));\n const name = cyan(`#${t.name}`);\n const desc = t.description ? dim(` — ${t.description}`) : \"\";\n process.stdout.write(` ${slug} ${name}${desc}\\n`);\n }\n }\n\n if (ws.messages.length > 0) {\n process.stdout.write(dim(\"\\n messages\\n\"));\n const slugWidth = Math.max(\n ...ws.messages.map((m) => m.meshSlug.length),\n 6,\n );\n for (const m of ws.messages) {\n const slug = dim(m.meshSlug.padEnd(slugWidth));\n const topic = cyan(`#${m.topicName}`);\n const sender = m.senderName;\n const ago = formatRelativeTime(m.createdAt);\n const snippet =\n m.snippet ??\n (m.bodyVersion === 2 ? dim(\"[encrypted — open the topic to decrypt]\") : dim(\"[empty]\"));\n const highlighted =\n m.snippet\n ? highlightMatch(snippet, flags.query)\n : snippet;\n process.stdout.write(\n ` ${slug} ${topic} ${dim(sender + \" ·\")} ${dim(ago)}\\n` +\n ` ${highlighted}\\n`,\n );\n }\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\nfunction highlightMatch(text: string, query: string): string {\n if (!query) return text;\n const idx = text.toLowerCase().indexOf(query.toLowerCase());\n if (idx === -1) return text;\n const before = text.slice(0, idx);\n const match = text.slice(idx, idx + query.length);\n const after = text.slice(idx + query.length);\n return `${before}${yellow(match)}${after}`;\n}\n\ninterface WorkspaceTask {\n id: string;\n meshId: string;\n meshSlug: string;\n title: string;\n assignee: string | null;\n claimedByName: string | null;\n priority: string;\n status: string;\n tags: string[];\n result: string | null;\n createdByName: string | null;\n createdAt: string;\n claimedAt: string | null;\n completedAt: string | null;\n}\n\ninterface WorkspaceTasksResponse {\n tasks: WorkspaceTask[];\n totals: { open: number; claimed: number; completed: number };\n}\n\nexport interface MeTasksFlags extends MeFlags {\n status?: string;\n}\n\nexport async function runMeTasks(flags: MeTasksFlags): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-tasks\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const params = new URLSearchParams();\n if (flags.status) params.set(\"status\", flags.status);\n const path =\n \"/api/v1/me/tasks\" +\n (params.toString() ? `?${params.toString()}` : \"\");\n const ws = await request<WorkspaceTasksResponse>({\n path,\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n render.section(\n `${clay(\"tasks\")} — ${dim(\n `${ws.totals.open} open · ${ws.totals.claimed} in-flight · ${ws.totals.completed} done`,\n )}`,\n );\n\n if (ws.tasks.length === 0) {\n process.stdout.write(dim(\" no tasks in window\\n\"));\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(...ws.tasks.map((t) => t.meshSlug.length), 6);\n for (const t of ws.tasks) {\n const slug = dim(t.meshSlug.padEnd(slugWidth));\n const status =\n t.status === \"open\"\n ? yellow(\"open \")\n : t.status === \"claimed\"\n ? cyan(\"working \")\n : green(\"done \");\n const prio =\n t.priority === \"urgent\"\n ? yellow(\"!\")\n : t.priority === \"low\"\n ? dim(\"·\")\n : \" \";\n const claimer = t.claimedByName ? dim(` ← ${t.claimedByName}`) : \"\";\n process.stdout.write(\n ` ${slug} ${prio} ${status} ${t.title}${claimer}\\n`,\n );\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\ninterface WorkspaceStateEntry {\n meshId: string;\n meshSlug: string;\n key: string;\n value: unknown;\n updatedByName: string | null;\n updatedAt: string;\n}\n\ninterface WorkspaceStateResponse {\n entries: WorkspaceStateEntry[];\n totals: { entries: number; meshes: number };\n}\n\nexport interface MeStateFlags extends MeFlags {\n key?: string;\n}\n\nexport async function runMeState(flags: MeStateFlags): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-state\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const params = new URLSearchParams();\n if (flags.key) params.set(\"key\", flags.key);\n const path =\n \"/api/v1/me/state\" +\n (params.toString() ? `?${params.toString()}` : \"\");\n const ws = await request<WorkspaceStateResponse>({\n path,\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n render.section(\n `${clay(\"state\")} — ${ws.totals.entries} entr${ws.totals.entries === 1 ? \"y\" : \"ies\"} ${dim(\n `across ${ws.totals.meshes} mesh${ws.totals.meshes === 1 ? \"\" : \"es\"}`,\n )}`,\n );\n\n if (ws.entries.length === 0) {\n process.stdout.write(dim(\" no state entries\\n\"));\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(...ws.entries.map((e) => e.meshSlug.length), 6);\n const keyWidth = Math.max(...ws.entries.map((e) => e.key.length), 8);\n for (const e of ws.entries) {\n const slug = dim(e.meshSlug.padEnd(slugWidth));\n const key = cyan(e.key.padEnd(keyWidth));\n const valueStr =\n typeof e.value === \"string\"\n ? e.value\n : JSON.stringify(e.value);\n const trimmed =\n valueStr.length > 80 ? valueStr.slice(0, 80) + \"…\" : valueStr;\n const ago = dim(formatRelativeTime(e.updatedAt));\n process.stdout.write(` ${slug} ${key} ${trimmed} ${ago}\\n`);\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\ninterface WorkspaceMemory {\n id: string;\n meshId: string;\n meshSlug: string;\n content: string;\n tags: string[];\n rememberedByName: string | null;\n rememberedAt: string;\n}\n\ninterface WorkspaceMemoryResponse {\n query: string;\n memories: WorkspaceMemory[];\n totals: { entries: number };\n}\n\nexport interface MeMemoryFlags extends MeFlags {\n query?: string;\n}\n\nexport async function runMeMemory(flags: MeMemoryFlags): Promise<number> {\n return withRestKey(\n {\n meshSlug: resolveMeshForMint(flags.mesh),\n purpose: \"workspace-memory\",\n capabilities: [\"read\"],\n },\n async ({ secret }) => {\n const params = new URLSearchParams();\n if (flags.query) params.set(\"q\", flags.query);\n const path =\n \"/api/v1/me/memory\" +\n (params.toString() ? `?${params.toString()}` : \"\");\n const ws = await request<WorkspaceMemoryResponse>({\n path,\n token: secret,\n });\n\n if (flags.json) {\n console.log(JSON.stringify(ws, null, 2));\n return EXIT.SUCCESS;\n }\n\n const headerLabel = flags.query\n ? `recall — \"${flags.query}\"`\n : \"recall — last 30 days\";\n render.section(\n `${clay(headerLabel)} ${dim(`${ws.totals.entries} match${ws.totals.entries === 1 ? \"\" : \"es\"}`)}`,\n );\n\n if (ws.memories.length === 0) {\n process.stdout.write(dim(\" no memories\\n\"));\n return EXIT.SUCCESS;\n }\n\n const slugWidth = Math.max(\n ...ws.memories.map((m) => m.meshSlug.length),\n 6,\n );\n for (const m of ws.memories) {\n const slug = dim(m.meshSlug.padEnd(slugWidth));\n const ago = dim(formatRelativeTime(m.rememberedAt));\n const tags =\n m.tags.length > 0\n ? \" \" + dim(\"[\" + m.tags.join(\", \") + \"]\")\n : \"\";\n const content =\n m.content.length > 240 ? m.content.slice(0, 240) + \"…\" : m.content;\n process.stdout.write(` ${slug} ${ago}${tags}\\n ${content}\\n`);\n }\n return EXIT.SUCCESS;\n },\n );\n}\n\nfunction formatRelativeTime(iso: string): string {\n const then = new Date(iso).getTime();\n const now = Date.now();\n const sec = Math.max(0, Math.floor((now - then) / 1000));\n if (sec < 60) return `${sec}s ago`;\n if (sec < 3600) return `${Math.floor(sec / 60)}m ago`;\n if (sec < 86_400) return `${Math.floor(sec / 3600)}h ago`;\n if (sec < 86_400 * 30) return `${Math.floor(sec / 86_400)}d ago`;\n if (sec < 86_400 * 365)\n return `${Math.floor(sec / (86_400 * 30))}mo ago`;\n return `${Math.floor(sec / (86_400 * 365))}y ago`;\n}\n",
95
97
  "/**\n * `claudemesh disconnect` — soft disconnect (session reset, auto-reconnects).\n * `claudemesh kick` — hard kick (session ends, no auto-reconnect).\n *\n * claudemesh disconnect <peer> # nudge, reconnects in seconds\n * claudemesh kick <peer> # stop session, user runs claudemesh to rejoin\n * claudemesh kick --stale 30m # kick peers idle > 30m\n * claudemesh kick --all # kick everyone except yourself\n *\n * Ban (permanent, revokes membership) is in ban.ts.\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\nfunction parseStaleMs(input: string): number | null {\n const m = input.match(/^(\\d+)(s|m|h)$/);\n if (!m) return null;\n const val = parseInt(m[1]!, 10);\n const unit = m[2]!;\n if (unit === \"s\") return val * 1000;\n if (unit === \"m\") return val * 60_000;\n if (unit === \"h\") return val * 3600_000;\n return null;\n}\n\nfunction buildPayload(\n kind: \"disconnect\" | \"kick\",\n target: string | undefined,\n opts: { stale?: string; all?: boolean },\n): Record<string, unknown> | { error: string } {\n if (opts.all) return { type: kind, all: true };\n if (opts.stale) {\n const ms = parseStaleMs(opts.stale);\n if (!ms) return { error: `Invalid stale duration: \"${opts.stale}\". Use e.g. 30m, 1h, 300s.` };\n return { type: kind, stale: ms };\n }\n if (target) return { type: kind, target };\n return { error: `Usage: claudemesh ${kind} <peer> | --stale 30m | --all` };\n}\n\nexport async function runDisconnect(\n target: string | undefined,\n opts: { mesh?: string; stale?: string; all?: boolean } = {},\n): Promise<number> {\n const config = readConfig();\n const meshSlug = opts.mesh ?? config.meshes[0]?.slug;\n if (!meshSlug) { render.err(\"No mesh joined.\"); return EXIT.NOT_FOUND; }\n\n const built = buildPayload(\"disconnect\", target, opts);\n if (\"error\" in built) { render.err(String(built.error)); return EXIT.INVALID_ARGS; }\n\n return await withMesh({ meshSlug }, async (client) => {\n const result = await client.sendAndWait(built as Record<string, unknown>) as { affected?: string[]; kicked?: string[] };\n const peers = result?.affected ?? result?.kicked ?? [];\n if (peers.length === 0) render.info(\"No peers matched.\");\n else {\n render.ok(`Disconnected ${peers.length} peer(s): ${peers.join(\", \")}`);\n render.hint(\"They will auto-reconnect within seconds. For a session-ending kick, use `claudemesh kick`.\");\n }\n return EXIT.SUCCESS;\n });\n}\n\nexport async function runKick(\n target: string | undefined,\n opts: { mesh?: string; stale?: string; all?: boolean } = {},\n): Promise<number> {\n const config = readConfig();\n const meshSlug = opts.mesh ?? config.meshes[0]?.slug;\n if (!meshSlug) { render.err(\"No mesh joined.\"); return EXIT.NOT_FOUND; }\n\n const built = buildPayload(\"kick\", target, opts);\n if (\"error\" in built) { render.err(String(built.error)); return EXIT.INVALID_ARGS; }\n\n return await withMesh({ meshSlug }, async (client) => {\n const result = await client.sendAndWait(built as Record<string, unknown>) as { affected?: string[]; kicked?: string[] };\n const peers = result?.affected ?? result?.kicked ?? [];\n if (peers.length === 0) render.info(\"No peers matched.\");\n else {\n render.ok(`Kicked ${peers.length} peer(s): ${peers.join(\", \")}`);\n render.hint(\"Their Claude Code session ended. They can rejoin anytime by running `claudemesh`.\");\n }\n return EXIT.SUCCESS;\n });\n}\n",
96
98
  "/**\n * `claudemesh ban <peer>` — kick + permanently revoke member (can't reconnect)\n * `claudemesh unban <peer>` — clear revocation, peer can rejoin\n * `claudemesh bans` — list banned members\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\nexport async function runBan(\n target: string | undefined,\n opts: { mesh?: string } = {},\n): Promise<number> {\n if (!target) { render.err(\"Usage: claudemesh ban <peer-name-or-pubkey>\"); return EXIT.INVALID_ARGS; }\n const config = readConfig();\n const meshSlug = opts.mesh ?? config.meshes[0]?.slug;\n if (!meshSlug) { render.err(\"No mesh joined.\"); return EXIT.NOT_FOUND; }\n\n return await withMesh({ meshSlug }, async (client) => {\n const result = await client.sendAndWait({ type: \"ban\", target }) as { banned?: string; error?: string; message?: string; code?: string };\n if (result?.banned) {\n render.ok(`Banned ${result.banned} from ${meshSlug}. They cannot reconnect until unbanned.`);\n render.hint(`Undo: claudemesh unban ${result.banned} --mesh ${meshSlug}`);\n } else {\n render.err(result?.message ?? result?.error ?? result?.code ?? \"ban failed\");\n }\n return result?.banned ? EXIT.SUCCESS : EXIT.INTERNAL_ERROR;\n });\n}\n\nexport async function runUnban(\n target: string | undefined,\n opts: { mesh?: string } = {},\n): Promise<number> {\n if (!target) { render.err(\"Usage: claudemesh unban <peer-name-or-pubkey>\"); return EXIT.INVALID_ARGS; }\n const config = readConfig();\n const meshSlug = opts.mesh ?? config.meshes[0]?.slug;\n if (!meshSlug) { render.err(\"No mesh joined.\"); return EXIT.NOT_FOUND; }\n\n return await withMesh({ meshSlug }, async (client) => {\n const result = await client.sendAndWait({ type: \"unban\", target }) as { unbanned?: string; error?: string; message?: string; code?: string };\n if (result?.unbanned) {\n render.ok(`Unbanned ${result.unbanned} from ${meshSlug}. They can rejoin.`);\n } else {\n render.err(result?.message ?? result?.error ?? result?.code ?? \"unban failed\");\n }\n return result?.unbanned ? EXIT.SUCCESS : EXIT.INTERNAL_ERROR;\n });\n}\n\nexport async function runBans(\n opts: { mesh?: string; json?: boolean } = {},\n): Promise<number> {\n const config = readConfig();\n const meshSlug = opts.mesh ?? config.meshes[0]?.slug;\n if (!meshSlug) { render.err(\"No mesh joined.\"); return EXIT.NOT_FOUND; }\n\n return await withMesh({ meshSlug }, async (client) => {\n const result = await client.sendAndWait({ type: \"list_bans\" }) as { bans?: Array<{ name: string; pubkey: string; revokedAt: string }> };\n const bans = result?.bans ?? [];\n\n if (opts.json) {\n process.stdout.write(JSON.stringify(bans, null, 2) + \"\\n\");\n return EXIT.SUCCESS;\n }\n\n if (bans.length === 0) {\n render.info(\"No banned members.\");\n return EXIT.SUCCESS;\n }\n\n render.section(`banned members on ${meshSlug}`);\n for (const b of bans) {\n render.kv([[b.name, `${b.pubkey.slice(0, 16)}… · banned ${new Date(b.revokedAt).toLocaleDateString()}`]]);\n }\n return EXIT.SUCCESS;\n });\n}\n",
97
- "/**\n * Bridge protocol — wire format between the MCP push-pipe (server) and\n * CLI invocations (client) over a per-mesh Unix domain socket.\n *\n * Why: every CLI op should reuse the warm WS the push-pipe already holds\n * (~5ms) instead of opening its own (~300-700ms cold start). The bridge is\n * the load-bearing piece of the CLI-first architecture — see\n * .artifacts/specs/2026-05-02-architecture-north-star.md commitment #3.\n *\n * Wire format: line-delimited JSON. One JSON object per \"\\n\"-terminated line.\n * Each request carries an `id` string; the response echoes it.\n *\n * Socket path: ~/.claudemesh/sockets/<mesh-slug>.sock (mode 0600).\n *\n * Connection model: persistent. A CLI invocation opens, sends one or more\n * requests, reads matching responses, then closes. Multiplexing via `id`\n * means concurrent CLI calls don't have to serialize on the same socket\n * (though current callers all do one round-trip and exit).\n */\n\nimport { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\nexport const PROTOCOL_VERSION = 1;\n\n/** Socket path for a given mesh. Caller is responsible for ensuring the\n * parent directory exists (`~/.claudemesh/sockets/`). */\nexport function socketPath(meshSlug: string): string {\n return join(homedir(), \".claudemesh\", \"sockets\", `${meshSlug}.sock`);\n}\n\n/** Directory holding all per-mesh sockets. Created with mode 0700 on push-pipe boot. */\nexport function socketDir(): string {\n return join(homedir(), \".claudemesh\", \"sockets\");\n}\n\n/**\n * Verbs the bridge accepts. Keep this list narrow in 1.2.0 — three writes\n * (send, summary, status), the read-shaped peers, plus ping for health.\n * Expand in 1.3.0 once the bridge is proven.\n */\nexport type BridgeVerb =\n | \"ping\"\n | \"peers\"\n | \"send\"\n | \"summary\"\n | \"status_set\"\n | \"visible\";\n\nexport interface BridgeRequest {\n id: string;\n verb: BridgeVerb;\n args?: Record<string, unknown>;\n}\n\nexport interface BridgeResponseOk {\n id: string;\n ok: true;\n result: unknown;\n}\n\nexport interface BridgeResponseErr {\n id: string;\n ok: false;\n error: string;\n}\n\nexport type BridgeResponse = BridgeResponseOk | BridgeResponseErr;\n\n/** Serialise a request/response to a single line (\"\\n\"-terminated). */\nexport function frame(obj: BridgeRequest | BridgeResponse): string {\n return JSON.stringify(obj) + \"\\n\";\n}\n\n/**\n * Stateful line-buffered parser. Pass each chunk from the socket via\n * `feed`; collect completed lines from the returned array.\n */\nexport class LineParser {\n private buf = \"\";\n\n feed(chunk: Buffer | string): string[] {\n this.buf += typeof chunk === \"string\" ? chunk : chunk.toString(\"utf-8\");\n const lines: string[] = [];\n let nl = this.buf.indexOf(\"\\n\");\n while (nl !== -1) {\n lines.push(this.buf.slice(0, nl));\n this.buf = this.buf.slice(nl + 1);\n nl = this.buf.indexOf(\"\\n\");\n }\n return lines;\n }\n}\n",
98
- "/**\n * Bridge client CLI invocations dial the per-mesh Unix socket the\n * MCP push-pipe holds open, so they reuse its warm WS instead of opening\n * a fresh one (~5ms vs ~300-700ms).\n *\n * Usage from a command:\n *\n * const result = await tryBridge(meshSlug, \"send\", { to, message });\n * if (result === null) { ...fall through to cold withMesh()... }\n * else { ...warm path succeeded... }\n *\n * `tryBridge` returns null on:\n * - socket file absent (no push-pipe running)\n * - socket connect fails (push-pipe crashed without cleanup)\n * - bridge timeout\n * That null is the caller's signal to fall back to a cold WS connection\n * via `withMesh`. So the bridge is purely an optimization — every verb\n * still works without it.\n */\n\nimport { createConnection } from \"node:net\";\nimport { existsSync } from \"node:fs\";\nimport { randomUUID } from \"node:crypto\";\nimport {\n socketPath,\n frame,\n LineParser,\n type BridgeRequest,\n type BridgeResponse,\n type BridgeVerb,\n} from \"./protocol.js\";\n\nconst DEFAULT_TIMEOUT_MS = 5_000;\n\n/**\n * Send one request and await the matching response. Returns:\n * - { ok: true, result } on success\n * - { ok: false, error } on bridge-reachable-but-broker-error\n * - null on bridge-unreachable (caller should fall back to cold WS)\n */\nexport async function tryBridge(\n meshSlug: string,\n verb: BridgeVerb,\n args: Record<string, unknown> = {},\n timeoutMs: number = DEFAULT_TIMEOUT_MS,\n): Promise<{ ok: true; result: unknown } | { ok: false; error: string } | null> {\n const path = socketPath(meshSlug);\n if (!existsSync(path)) return null;\n\n return new Promise((resolve) => {\n const id = randomUUID();\n const req: BridgeRequest = { id, verb, args };\n const parser = new LineParser();\n let settled = false;\n\n const finish = (\n value: { ok: true; result: unknown } | { ok: false; error: string } | null,\n ): void => {\n if (settled) return;\n settled = true;\n try { socket.destroy(); } catch {}\n clearTimeout(timer);\n resolve(value);\n };\n\n const socket = createConnection({ path });\n\n const timer = setTimeout(() => {\n finish(null); // timeout = bridge unreachable, fall back to cold path\n }, timeoutMs);\n\n socket.on(\"connect\", () => {\n try {\n socket.write(frame(req));\n } catch {\n finish(null);\n }\n });\n\n socket.on(\"data\", (chunk) => {\n const lines = parser.feed(chunk);\n for (const line of lines) {\n if (!line.trim()) continue;\n let res: BridgeResponse;\n try {\n res = JSON.parse(line) as BridgeResponse;\n } catch {\n continue;\n }\n if (res.id !== id) continue; // not our response keep reading\n if (res.ok) finish({ ok: true, result: res.result });\n else finish({ ok: false, error: res.error });\n return;\n }\n });\n\n socket.on(\"error\", (err) => {\n // ENOENT (file disappeared between existsSync and connect),\n // ECONNREFUSED (stale socket), EPERM (permission), etc. all mean\n // bridge unreachable.\n const code = (err as NodeJS.ErrnoException).code;\n if (code === \"ECONNREFUSED\" || code === \"ENOENT\" || code === \"EPERM\") {\n finish(null);\n } else {\n finish(null);\n }\n });\n\n socket.on(\"close\", () => {\n // If we close without a response, treat as unreachable.\n finish(null);\n });\n });\n}\n",
99
- "/**\n * Once-per-process daemon-state warnings, routed to stderr.\n *\n * Suppressed under --quiet (caller responsibility — we never inspect\n * argv). JSON callers should consult the result's `state` field\n * directly and skip calling this helper.\n */\n\nimport type { EnsureDaemonResult } from \"~/services/daemon/lifecycle.js\";\nimport { dim } from \"./styles.js\";\n\nlet alreadyWarned = false;\n\nexport interface WarnDaemonOpts {\n quiet?: boolean;\n /** When true, emit nothing the caller will surface the state in JSON. */\n json?: boolean;\n}\n\n/** Print a single, severity-appropriate line to stderr describing the\n * result of `ensureDaemonReady`. Returns whether anything was printed. */\nexport function warnDaemonState(\n res: EnsureDaemonResult,\n opts: WarnDaemonOpts = {},\n): boolean {\n if (alreadyWarned) return false;\n if (opts.quiet || opts.json) return false;\n if (res.state === \"up\") return false;\n\n alreadyWarned = true;\n const tag = (label: string) => `[claudemesh] ${label}`;\n const hint = (s: string) => dim(s);\n\n switch (res.state) {\n case \"started\":\n process.stderr.write(`${tag(\"info\")} daemon restarted automatically ${hint(`(took ${res.durationMs}ms)`)}\\n`);\n return true;\n case \"down\":\n process.stderr.write(`${tag(\"info\")} daemon not running using cold path ${hint(\"(slower; run `claudemesh daemon up` for warm path)\")}\\n`);\n return true;\n case \"spawn-suppressed\":\n process.stderr.write(`${tag(\"warn\")} ${res.reason ?? \"daemon failed to start recently\"} using cold path ${hint(\"(run `claudemesh doctor`)\")}\\n`);\n return true;\n case \"spawn-failed\":\n process.stderr.write(`${tag(\"warn\")} daemon spawn failed${res.reason ? `: ${res.reason}` : \"\"} using cold path ${hint(\"(check ~/.claudemesh/daemon/daemon.log)\")}\\n`);\n return true;\n }\n return false;\n}\n\n/** Reset the once-per-process latch. Test helper. */\nexport function _resetDaemonWarningLatch(): void {\n alreadyWarned = false;\n}\n",
100
- "// Try forwarding a send through the local daemon's IPC. Returns null if\n// the daemon isn't running or the daemon's mesh doesn't match the target\n// mesh the caller falls back to the bridge or cold path.\n//\n// Auto-recovery: when the daemon socket is missing or stale, every\n// helper here calls into the lifecycle module which probes, spawns\n// (under a lock), polls, and retries — so cold-path fallback only\n// fires if auto-spawn failed. The lifecycle module caches its\n// per-process result, so a script doing 50 sends pays the spawn cost\n// at most once.\n\nimport { ipc } from \"~/daemon/ipc/client.js\";\nimport { ensureDaemonReady } from \"~/services/daemon/lifecycle.js\";\nimport { warnDaemonState } from \"~/ui/warnings.ts\";\n\nfunction meshQuery(mesh?: string): string {\n return mesh ? `?mesh=${encodeURIComponent(mesh)}` : \"\";\n}\n\n/** Common entry: ensure the daemon is reachable, emitting a one-shot\n * stderr warning describing what we did. Returns true when the daemon\n * is now reachable, false when the caller should fall back. */\nasync function daemonReachable(): Promise<boolean> {\n const res = await ensureDaemonReady();\n // Suppress the warning under JSON / quiet at the call site —\n // helpers here can't see those flags. JSON callers should switch\n // to lifecycle directly. For now we always print; --quiet at the\n // top of each verb already redirects stderr where needed.\n warnDaemonState(res, {});\n return res.state === \"up\" || res.state === \"started\";\n}\n\n/** Try fetching the peer list through the daemon (~1ms warm IPC).\n * Returns null when the daemon socket isn't present so the caller can\n * fall back to bridge / cold paths. */\nexport async function tryListPeersViaDaemon(mesh?: string): Promise<unknown[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ peers?: unknown[] }>({ path: `/v1/peers${meshQuery(mesh)}`, timeoutMs: 3_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.peers) ? res.body.peers : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\n/** Try fetching mesh-published skills through the daemon. */\nexport async function tryListSkillsViaDaemon(mesh?: string): Promise<unknown[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ skills?: unknown[] }>({ path: `/v1/skills${meshQuery(mesh)}`, timeoutMs: 3_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.skills) ? res.body.skills : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\n/** Try fetching one skill body through the daemon. */\nexport async function tryGetSkillViaDaemon(name: string, mesh?: string): Promise<unknown | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ skill?: unknown }>({\n path: `/v1/skills/${encodeURIComponent(name)}${meshQuery(mesh)}`,\n timeoutMs: 3_000,\n });\n if (res.status === 404) return null;\n if (res.status !== 200) return null;\n return res.body.skill ?? null;\n } catch { return null; }\n}\n\n// --- state ---\n\nexport type StateEntry = {\n key: string;\n value: unknown;\n updatedBy: string;\n updatedAt: string;\n mesh?: string;\n};\n\n/** Try reading a single state key through the daemon. Returns:\n * - the entry when the daemon found it\n * - undefined when the daemon ran but the key is unset (404)\n * - null when the daemon socket isn't present (caller falls back) */\nexport async function tryGetStateViaDaemon(key: string, mesh?: string): Promise<StateEntry | undefined | null> {\n if (!(await daemonReachable())) return null;\n try {\n const path = `/v1/state?key=${encodeURIComponent(key)}${mesh ? `&mesh=${encodeURIComponent(mesh)}` : \"\"}`;\n const res = await ipc<{ state?: StateEntry; error?: string }>({ path, timeoutMs: 3_000 });\n if (res.status === 404) return undefined;\n if (res.status !== 200) return null;\n return res.body.state ?? undefined;\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\nexport async function tryListStateViaDaemon(mesh?: string): Promise<StateEntry[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ entries?: StateEntry[] }>({ path: `/v1/state${meshQuery(mesh)}`, timeoutMs: 3_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.entries) ? res.body.entries : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\nexport async function trySetStateViaDaemon(key: string, value: unknown, mesh?: string): Promise<boolean> {\n if (!(await daemonReachable())) return false;\n try {\n const res = await ipc<{ ok?: boolean; error?: string }>({\n method: \"POST\",\n path: \"/v1/state\",\n timeoutMs: 3_000,\n body: { key, value, ...(mesh ? { mesh } : {}) },\n });\n return res.status === 200 && res.body.ok === true;\n } catch { return false; }\n}\n\n// --- memory ---\n\nexport type MemoryEntry = {\n id: string;\n content: string;\n tags: string[];\n rememberedBy: string;\n rememberedAt: string;\n mesh?: string;\n};\n\nexport async function tryRememberViaDaemon(content: string, tags?: string[], mesh?: string): Promise<{ id: string; mesh?: string } | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ id?: string; mesh?: string; error?: string }>({\n method: \"POST\",\n path: \"/v1/memory\",\n timeoutMs: 5_000,\n body: { content, ...(tags?.length ? { tags } : {}), ...(mesh ? { mesh } : {}) },\n });\n if (res.status !== 200 || !res.body.id) return null;\n return { id: res.body.id, mesh: res.body.mesh };\n } catch { return null; }\n}\n\nexport async function tryRecallViaDaemon(query: string, mesh?: string): Promise<MemoryEntry[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const path = `/v1/memory?q=${encodeURIComponent(query)}${mesh ? `&mesh=${encodeURIComponent(mesh)}` : \"\"}`;\n const res = await ipc<{ matches?: MemoryEntry[] }>({ path, timeoutMs: 5_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.matches) ? res.body.matches : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\nexport async function tryForgetViaDaemon(id: string, mesh?: string): Promise<boolean> {\n if (!(await daemonReachable())) return false;\n try {\n const path = `/v1/memory/${encodeURIComponent(id)}${meshQuery(mesh)}`;\n const res = await ipc<{ ok?: boolean }>({ method: \"DELETE\", path, timeoutMs: 3_000 });\n return res.status === 200 && res.body.ok === true;\n } catch { return false; }\n}\n\nexport type DaemonSendOk = {\n ok: true;\n messageId: string;\n duplicate?: boolean;\n status?: \"queued\" | \"inflight\";\n};\nexport type DaemonSendErr = { ok: false; error: string };\nexport type DaemonSendResult = DaemonSendOk | DaemonSendErr;\n\nexport async function trySendViaDaemon(args: {\n to: string;\n message: string;\n priority: \"now\" | \"next\" | \"low\";\n /** Caller-stable id for cross-invocation idempotency. Optional. */\n idempotencyKey?: string;\n /** When set, only forward to the daemon if it's attached to this mesh.\n * We can't query the daemon's mesh today (no IPC route exposes it),\n * so for v0.9.0 this is informational; the caller already picked the\n * right mesh by either flag or single-mesh-default. */\n expectedMesh?: string;\n}): Promise<DaemonSendResult | null> {\n if (!(await daemonReachable())) return null;\n\n try {\n const res = await ipc<{\n client_message_id?: string;\n status?: \"queued\" | \"inflight\";\n broker_message_id?: string;\n duplicate?: boolean;\n error?: string;\n }>({\n method: \"POST\",\n path: \"/v1/send\",\n timeoutMs: 3_000,\n body: {\n to: args.to,\n message: args.message,\n priority: args.priority,\n ...(args.idempotencyKey ? { client_message_id: args.idempotencyKey } : {}),\n // v1.26.0 multi-mesh: forward the caller's chosen mesh so the\n // daemon picks the right broker. Omitting it on a single-mesh\n // daemon still works (auto-pick); omitting it on a multi-mesh\n // daemon returns 400 with the attached list.\n ...(args.expectedMesh ? { mesh: args.expectedMesh } : {}),\n },\n });\n\n if (res.status === 202 || res.status === 200) {\n return {\n ok: true,\n messageId: res.body.broker_message_id ?? res.body.client_message_id ?? \"\",\n duplicate: res.body.duplicate,\n status: res.body.status,\n };\n }\n return { ok: false, error: res.body.error ?? `daemon http ${res.status}` };\n } catch (err) {\n // Connection errors daemon went away mid-call. Treat as \"not present\"\n // so the caller falls back rather than failing.\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return { ok: false, error: msg };\n }\n}\n",
101
- "/**\n * `claudemesh peers`list connected peers in the mesh.\n *\n * Shows all meshes by default, or filter with --mesh.\n *\n * Warm path: dials the per-mesh bridge socket the push-pipe holds open.\n * Cold path: opens its own WS via `withMesh`. Bridge fall-through is\n * transparent — output is identical.\n *\n * `--json` accepts an optional comma-separated field list:\n * claudemesh peers --json (full record)\n * claudemesh peers --json name,pubkey,status (projection)\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { tryBridge } from \"~/services/bridge/client.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, dim, green, yellow } from \"~/ui/styles.js\";\n\nexport interface PeersFlags {\n mesh?: string;\n /** `true`/`undefined` = full record; comma-separated string = field projection. */\n json?: boolean | string;\n}\n\ninterface PeerRecord {\n pubkey: string;\n /** Stable member pubkey (independent of session). When sender shares\n * this with a peer, they're talking to the same person across all\n * their open sessions. */\n memberPubkey?: string;\n displayName: string;\n status?: string;\n summary?: string;\n groups: Array<{ name: string; role?: string }>;\n peerType?: string;\n channel?: string;\n model?: string;\n cwd?: string;\n /** True when this peer is one of the caller's own member's sessions.\n * Set in the cli (not the broker) by comparing memberPubkey against\n * the caller's stable JoinedMesh.pubkey. */\n isSelf?: boolean;\n /** When isSelf is true, true if this is the exact session running\n * the command (vs a sibling session of the same member). */\n isThisSession?: boolean;\n [k: string]: unknown;\n}\n\n/** Friendly aliases — `name` is what users will type; broker calls it `displayName`. */\nconst FIELD_ALIAS: Record<string, string> = {\n name: \"displayName\",\n};\n\nfunction projectFields(record: PeerRecord, fields: string[]): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const f of fields) {\n const sourceKey = FIELD_ALIAS[f] ?? f;\n out[f] = (record as Record<string, unknown>)[sourceKey];\n }\n return out;\n}\n\nasync function listPeersForMesh(slug: string): Promise<PeerRecord[]> {\n const config = readConfig();\n const joined = config.meshes.find((m) => m.slug === slug);\n const selfMemberPubkey = joined?.pubkey ?? null;\n\n // Daemon path preferred when running. Same routing pattern as send.ts:\n // ~1 ms IPC round-trip; broker WS already warm in the daemon.\n try {\n const { tryListPeersViaDaemon } = await import(\"~/services/bridge/daemon-route.js\");\n const dr = await tryListPeersViaDaemon();\n if (dr !== null) {\n return dr.map((p) => annotateSelf(p as PeerRecord, selfMemberPubkey, null));\n }\n } catch { /* daemon route helper not available; fall through */ }\n\n // Try warm bridge path next.\n const bridged = await tryBridge(slug, \"peers\");\n if (bridged && bridged.ok) {\n const peers = bridged.result as PeerRecord[];\n return peers.map((p) => annotateSelf(p, selfMemberPubkey, null));\n }\n // Cold path open our own WS.\n let result: PeerRecord[] = [];\n await withMesh({ meshSlug: slug }, async (client) => {\n const all = (await client.listPeers()) as unknown as PeerRecord[];\n const selfSessionPubkey = client.getSessionPubkey();\n result = all.map((p) =>\n annotateSelf(p, selfMemberPubkey, selfSessionPubkey),\n );\n });\n return result;\n}\n\n/**\n * Tag each peer record with `isSelf` / `isThisSession` so the renderer\n * (and downstream code that picks targets, e.g. `claudemesh send`) can\n * tell sender's own sessions from real peers. The broker has always\n * surfaced a sender's siblings as separate rows because they're separate\n * presence rows; the cli just hadn't been making that visible.\n */\nfunction annotateSelf(\n peer: PeerRecord,\n selfMemberPubkey: string | null,\n selfSessionPubkey: string | null,\n): PeerRecord {\n const isSelf = !!(\n selfMemberPubkey &&\n peer.memberPubkey &&\n peer.memberPubkey === selfMemberPubkey\n );\n const isThisSession = !!(\n isSelf &&\n selfSessionPubkey &&\n peer.pubkey === selfSessionPubkey\n );\n return { ...peer, isSelf, isThisSession };\n}\n\nexport async function runPeers(flags: PeersFlags): Promise<void> {\n const config = readConfig();\n const slugs = flags.mesh ? [flags.mesh] : config.meshes.map((m) => m.slug);\n\n if (slugs.length === 0) {\n render.err(\"No meshes joined.\");\n render.hint(\"claudemesh <invite-url> # join + launch\");\n process.exit(1);\n }\n\n // Field projection: --json a,b,c\n const fieldList: string[] | null =\n typeof flags.json === \"string\" && flags.json.length > 0\n ? flags.json.split(\",\").map((s) => s.trim()).filter(Boolean)\n : null;\n const wantsJson = flags.json !== undefined && flags.json !== false;\n\n const allJson: Array<{ mesh: string; peers: unknown[] }> = [];\n\n for (const slug of slugs) {\n try {\n const peers = await listPeersForMesh(slug);\n\n if (wantsJson) {\n const projected = fieldList\n ? peers.map((p) => projectFields(p, fieldList))\n : peers;\n allJson.push({ mesh: slug, peers: projected });\n continue;\n }\n\n render.section(`peers on ${slug} (${peers.length})`);\n\n if (peers.length === 0) {\n render.info(dim(\" (no peers connected)\"));\n continue;\n }\n\n for (const p of peers) {\n const groups = p.groups.length\n ? \" [\" +\n p.groups\n .map((g) => `@${g.name}${g.role ? `:${g.role}` : \"\"}`)\n .join(\", \") +\n \"]\"\n : \"\";\n const statusDot = p.status === \"working\" ? yellow(\"●\") : green(\"●\");\n const name = bold(p.displayName);\n const meta: string[] = [];\n if (p.peerType) meta.push(p.peerType);\n if (p.channel) meta.push(p.channel);\n if (p.model) meta.push(p.model);\n const metaStr = meta.length ? dim(` (${meta.join(\", \")})`) : \"\";\n const summary = p.summary ? dim(` ${p.summary}`) : \"\";\n const pubkeyTag = dim(` · ${p.pubkey.slice(0, 16)}…`);\n const selfTag = p.isThisSession\n ? dim(\" \") + yellow(\"(this session)\")\n : p.isSelf\n ? dim(\" \") + yellow(\"(your other session)\")\n : \"\";\n render.info(\n `${statusDot} ${name}${selfTag}${groups}${metaStr}${pubkeyTag}${summary}`,\n );\n if (p.cwd) render.info(dim(` cwd: ${p.cwd}`));\n }\n } catch (e) {\n render.err(`${slug}: ${e instanceof Error ? e.message : String(e)}`);\n }\n }\n\n if (wantsJson) {\n process.stdout.write(\n JSON.stringify(slugs.length === 1 ? allJson[0]?.peers : allJson, null, 2) + \"\\n\",\n );\n }\n}\n",
102
- "/**\n * `claudemesh send <to> <message>` — send a message to a peer or group.\n *\n * <to> can be:\n * - a display name (\"Mou\")\n * - a pubkey hex (\"abc123...\")\n * - @group (\"@flexicar\")\n * - * (broadcast to all)\n *\n * Warm path: dials the per-mesh bridge socket the push-pipe holds open\n * (~5ms). Cold path: opens its own WS via `withMesh` (~300-700ms).\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { tryBridge } from \"~/services/bridge/client.js\";\nimport { trySendViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport type { Priority } from \"~/services/broker/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { dim } from \"~/ui/styles.js\";\n\nexport interface SendFlags {\n mesh?: string;\n priority?: string;\n json?: boolean;\n /** Allow sending to a target that resolves to one of the caller's\n * own sessions. Off by default — trying to message your own\n * sibling session is almost always an accident (copying a hex\n * pubkey from `peer list` without realizing it was your own row). */\n self?: boolean;\n}\n\nexport async function runSend(flags: SendFlags, to: string, message: string): Promise<void> {\n if (!to || !message) {\n render.err(\"Usage: claudemesh send <to> <message>\");\n process.exit(1);\n }\n\n const priority: Priority =\n flags.priority === \"now\" ? \"now\"\n : flags.priority === \"low\" ? \"low\"\n : \"next\";\n\n // Resolve which mesh to use. With --mesh, target it directly.\n // Without, use first joined mesh — same default as withMesh.\n const config = readConfig();\n const meshSlug =\n flags.mesh ??\n (config.meshes.length === 1 ? config.meshes[0]!.slug : null);\n\n // Self-DM safety check: if target is a 64-char hex that matches the\n // caller's own member pubkey (or any of the caller's session/member\n // entries), refuse without --self. Catches the common pasted-from-\n // peer-list-not-realizing-it-was-mine footgun.\n if (!flags.self && meshSlug) {\n const joined = config.meshes.find((m) => m.slug === meshSlug);\n if (joined && /^[0-9a-f]{64}$/i.test(to) && to.toLowerCase() === joined.pubkey.toLowerCase()) {\n render.err(\n `Target \"${to.slice(0, 16)}…\" is your own member pubkey on mesh \"${meshSlug}\".`,\n );\n render.hint(\n \"Pass --self to message a sibling session of your own member, or pick a different peer's pubkey.\",\n );\n process.exit(1);\n }\n }\n\n // Daemon path — preferred when a long-lived daemon is local. UDS at\n // ~/.claudemesh/daemon/daemon.sock; ~1ms round-trip; persists outbox\n // across CLI invocations so a `claudemesh send` survives a daemon\n // crash via the on-disk outbox.\n {\n const dr = await trySendViaDaemon({ to, message, priority, expectedMesh: meshSlug ?? undefined });\n if (dr !== null) {\n if (dr.ok) {\n if (flags.json) console.log(JSON.stringify({ ok: true, messageId: dr.messageId, target: to, via: \"daemon\", duplicate: !!dr.duplicate }));\n else render.ok(`sent to ${to} (daemon)`, dr.messageId ? dim(dr.messageId.slice(0, 8)) : undefined);\n return;\n }\n // Daemon answered but rejected (409 idempotency, 400 schema). Surface; do not fall through.\n if (flags.json) console.log(JSON.stringify({ ok: false, error: dr.error, via: \"daemon\" }));\n else render.err(`send failed (daemon): ${dr.error}`);\n process.exit(1);\n }\n // dr === null → daemon not running; fall through to bridge.\n }\n\n // Warm path — only when mesh is unambiguous.\n if (meshSlug) {\n const bridged = await tryBridge(meshSlug, \"send\", { to, message, priority });\n if (bridged !== null) {\n if (bridged.ok) {\n const r = bridged.result as { messageId?: string };\n if (flags.json) {\n console.log(JSON.stringify({ ok: true, messageId: r.messageId, target: to }));\n } else {\n render.ok(`sent to ${to}`, r.messageId ? dim(r.messageId.slice(0, 8)) : undefined);\n }\n return;\n }\n // Bridge reachable but op failed — surface error, don't fall through.\n if (flags.json) {\n console.log(JSON.stringify({ ok: false, error: bridged.error }));\n } else {\n render.err(`send failed: ${bridged.error}`);\n }\n process.exit(1);\n }\n // bridged === null → bridge unreachable, fall through to cold path\n }\n\n // Cold path\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n let targetSpec = to;\n if (to.startsWith(\"#\") && !/^#[0-9a-z_-]{20,}$/i.test(to)) {\n // Topic by name → resolve to \"#<topicId>\" via topicList. The broker\n // wire format is \"#<topicId>\"; users type \"#<name>\" for ergonomics.\n const name = to.slice(1);\n const topics = await client.topicList();\n const match = topics.find((t) => t.name === name);\n if (!match) {\n const names = topics.map((t) => \"#\" + t.name).join(\", \");\n render.err(`Topic \"${to}\" not found.`, `topics: ${names || \"(none)\"}`);\n process.exit(1);\n }\n targetSpec = \"#\" + match.id;\n } else if (!to.startsWith(\"@\") && !to.startsWith(\"#\") && to !== \"*\" && !/^[0-9a-f]{64}$/i.test(to)) {\n const peers = await client.listPeers();\n const match = peers.find(\n (p) => p.displayName.toLowerCase() === to.toLowerCase(),\n );\n if (!match) {\n const names = peers.map((p) => p.displayName).join(\", \");\n render.err(`Peer \"${to}\" not found.`, `online: ${names || \"(none)\"}`);\n process.exit(1);\n }\n targetSpec = match.pubkey;\n }\n\n const result = await client.send(targetSpec, message, priority);\n if (result.ok) {\n if (flags.json) {\n console.log(JSON.stringify({ ok: true, messageId: result.messageId, target: to }));\n } else {\n render.ok(`sent to ${to}`, result.messageId ? dim(result.messageId.slice(0, 8)) : undefined);\n }\n } else {\n if (flags.json) {\n console.log(JSON.stringify({ ok: false, error: result.error ?? \"unknown\" }));\n } else {\n render.err(`send failed: ${result.error ?? \"unknown error\"}`);\n }\n process.exit(1);\n }\n });\n}\n",
99
+ "/**\n * Once-per-process daemon-state warnings, routed to stderr.\n *\n * Suppressed under --quiet (caller responsibility we never inspect\n * argv). JSON callers should consult the result's `state` field\n * directly and skip calling this helper.\n */\n\nimport type { EnsureDaemonResult } from \"~/services/daemon/lifecycle.js\";\nimport { getDaemonPolicy } from \"~/services/daemon/policy.js\";\nimport { dim } from \"./styles.js\";\n\nlet alreadyWarned = false;\n\nexport interface WarnDaemonOpts {\n quiet?: boolean;\n /** When true, emit nothing the caller will surface the state in JSON. */\n json?: boolean;\n}\n\n/** Print a single, severity-appropriate line to stderr describing the\n * result of `ensureDaemonReady`. Returns whether anything was printed. */\nexport function warnDaemonState(\n res: EnsureDaemonResult,\n opts: WarnDaemonOpts = {},\n): boolean {\n if (alreadyWarned) return false;\n if (opts.quiet || opts.json) return false;\n if (res.state === \"up\") return false;\n\n // Under --strict, the cold-path gate at `withMesh` will print its own\n // refusal message suppress the misleading \"using cold path\" hint\n // here so the user sees a single, accurate error.\n if (getDaemonPolicy().mode === \"strict\" && res.state !== \"started\") return false;\n\n alreadyWarned = true;\n const tag = (label: string) => `[claudemesh] ${label}`;\n const hint = (s: string) => dim(s);\n\n switch (res.state) {\n case \"started\":\n process.stderr.write(`${tag(\"info\")} daemon restarted automatically ${hint(`(took ${res.durationMs}ms)`)}\\n`);\n return true;\n case \"down\":\n process.stderr.write(`${tag(\"info\")} daemon not running using cold path ${hint(\"(slower; run `claudemesh daemon up` for warm path)\")}\\n`);\n return true;\n case \"spawn-suppressed\":\n process.stderr.write(`${tag(\"warn\")} ${res.reason ?? \"daemon failed to start recently\"} using cold path ${hint(\"(run `claudemesh doctor`)\")}\\n`);\n return true;\n case \"spawn-failed\":\n process.stderr.write(`${tag(\"warn\")} daemon spawn failed${res.reason ? `: ${res.reason}` : \"\"} using cold path ${hint(\"(check ~/.claudemesh/daemon/daemon.log)\")}\\n`);\n return true;\n }\n return false;\n}\n\n/** Reset the once-per-process latch. Test helper. */\nexport function _resetDaemonWarningLatch(): void {\n alreadyWarned = false;\n}\n",
100
+ "// Daemon-routed CLI helpers. Returns null when the daemon is unreachable\n// AND auto-spawn could not bring it up caller is expected to fall back\n// to its cold-path WS or to error out under `--strict`.\n//\n// Auto-recovery: when the daemon socket is missing or stale, every\n// helper here calls into the lifecycle module which probes, spawns\n// (under a lock), polls, and retries so cold-path fallback only\n// fires if auto-spawn failed. The lifecycle module caches its\n// per-process result, so a script doing 50 sends pays the spawn cost\n// at most once.\n//\n// 1.28.0: the orphaned bridge tier between daemon and cold paths was\n// removed. Two paths only: daemon (with auto-spawn) cold.\n\nimport { ipc } from \"~/daemon/ipc/client.js\";\nimport { ensureDaemonReady } from \"~/services/daemon/lifecycle.js\";\nimport { getDaemonPolicy } from \"~/services/daemon/policy.js\";\nimport { warnDaemonState } from \"~/ui/warnings.ts\";\n\nfunction meshQuery(mesh?: string): string {\n return mesh ? `?mesh=${encodeURIComponent(mesh)}` : \"\";\n}\n\n/** Common entry: ensure the daemon is reachable, emitting a one-shot\n * stderr warning describing what we did. Returns true when the daemon\n * is now reachable, false when the caller should fall back.\n *\n * --no-daemon short-circuits to false; --strict's enforcement lives at\n * the cold-path entry point (`withMesh` in commands/connect.ts) so a\n * single chokepoint covers every verb. */\nasync function daemonReachable(): Promise<boolean> {\n const policy = getDaemonPolicy();\n if (policy.mode === \"no-daemon\") return false;\n const res = await ensureDaemonReady({ noAutoSpawn: false });\n warnDaemonState(res, {});\n return res.state === \"up\" || res.state === \"started\";\n}\n\n/** Try fetching the peer list through the daemon (~1ms warm IPC).\n * Returns null when the daemon socket isn't present so the caller can\n * fall back to bridge / cold paths. */\nexport async function tryListPeersViaDaemon(mesh?: string): Promise<unknown[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ peers?: unknown[] }>({ path: `/v1/peers${meshQuery(mesh)}`, timeoutMs: 3_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.peers) ? res.body.peers : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\n/** Try fetching mesh-published skills through the daemon. */\nexport async function tryListSkillsViaDaemon(mesh?: string): Promise<unknown[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ skills?: unknown[] }>({ path: `/v1/skills${meshQuery(mesh)}`, timeoutMs: 3_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.skills) ? res.body.skills : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\n/** Try fetching one skill body through the daemon. */\nexport async function tryGetSkillViaDaemon(name: string, mesh?: string): Promise<unknown | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ skill?: unknown }>({\n path: `/v1/skills/${encodeURIComponent(name)}${meshQuery(mesh)}`,\n timeoutMs: 3_000,\n });\n if (res.status === 404) return null;\n if (res.status !== 200) return null;\n return res.body.skill ?? null;\n } catch { return null; }\n}\n\n// --- state ---\n\nexport type StateEntry = {\n key: string;\n value: unknown;\n updatedBy: string;\n updatedAt: string;\n mesh?: string;\n};\n\n/** Try reading a single state key through the daemon. Returns:\n * - the entry when the daemon found it\n * - undefined when the daemon ran but the key is unset (404)\n * - null when the daemon socket isn't present (caller falls back) */\nexport async function tryGetStateViaDaemon(key: string, mesh?: string): Promise<StateEntry | undefined | null> {\n if (!(await daemonReachable())) return null;\n try {\n const path = `/v1/state?key=${encodeURIComponent(key)}${mesh ? `&mesh=${encodeURIComponent(mesh)}` : \"\"}`;\n const res = await ipc<{ state?: StateEntry; error?: string }>({ path, timeoutMs: 3_000 });\n if (res.status === 404) return undefined;\n if (res.status !== 200) return null;\n return res.body.state ?? undefined;\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\nexport async function tryListStateViaDaemon(mesh?: string): Promise<StateEntry[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ entries?: StateEntry[] }>({ path: `/v1/state${meshQuery(mesh)}`, timeoutMs: 3_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.entries) ? res.body.entries : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\nexport async function trySetStateViaDaemon(key: string, value: unknown, mesh?: string): Promise<boolean> {\n if (!(await daemonReachable())) return false;\n try {\n const res = await ipc<{ ok?: boolean; error?: string }>({\n method: \"POST\",\n path: \"/v1/state\",\n timeoutMs: 3_000,\n body: { key, value, ...(mesh ? { mesh } : {}) },\n });\n return res.status === 200 && res.body.ok === true;\n } catch { return false; }\n}\n\n// --- memory ---\n\nexport type MemoryEntry = {\n id: string;\n content: string;\n tags: string[];\n rememberedBy: string;\n rememberedAt: string;\n mesh?: string;\n};\n\nexport async function tryRememberViaDaemon(content: string, tags?: string[], mesh?: string): Promise<{ id: string; mesh?: string } | null> {\n if (!(await daemonReachable())) return null;\n try {\n const res = await ipc<{ id?: string; mesh?: string; error?: string }>({\n method: \"POST\",\n path: \"/v1/memory\",\n timeoutMs: 5_000,\n body: { content, ...(tags?.length ? { tags } : {}), ...(mesh ? { mesh } : {}) },\n });\n if (res.status !== 200 || !res.body.id) return null;\n return { id: res.body.id, mesh: res.body.mesh };\n } catch { return null; }\n}\n\nexport async function tryRecallViaDaemon(query: string, mesh?: string): Promise<MemoryEntry[] | null> {\n if (!(await daemonReachable())) return null;\n try {\n const path = `/v1/memory?q=${encodeURIComponent(query)}${mesh ? `&mesh=${encodeURIComponent(mesh)}` : \"\"}`;\n const res = await ipc<{ matches?: MemoryEntry[] }>({ path, timeoutMs: 5_000 });\n if (res.status !== 200) return null;\n return Array.isArray(res.body.matches) ? res.body.matches : [];\n } catch (err) {\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return null;\n }\n}\n\nexport async function tryForgetViaDaemon(id: string, mesh?: string): Promise<boolean> {\n if (!(await daemonReachable())) return false;\n try {\n const path = `/v1/memory/${encodeURIComponent(id)}${meshQuery(mesh)}`;\n const res = await ipc<{ ok?: boolean }>({ method: \"DELETE\", path, timeoutMs: 3_000 });\n return res.status === 200 && res.body.ok === true;\n } catch { return false; }\n}\n\nexport type DaemonSendOk = {\n ok: true;\n messageId: string;\n duplicate?: boolean;\n status?: \"queued\" | \"inflight\";\n};\nexport type DaemonSendErr = { ok: false; error: string };\nexport type DaemonSendResult = DaemonSendOk | DaemonSendErr;\n\nexport async function trySendViaDaemon(args: {\n to: string;\n message: string;\n priority: \"now\" | \"next\" | \"low\";\n /** Caller-stable id for cross-invocation idempotency. Optional. */\n idempotencyKey?: string;\n /** When set, only forward to the daemon if it's attached to this mesh.\n * We can't query the daemon's mesh today (no IPC route exposes it),\n * so for v0.9.0 this is informational; the caller already picked the\n * right mesh by either flag or single-mesh-default. */\n expectedMesh?: string;\n}): Promise<DaemonSendResult | null> {\n if (!(await daemonReachable())) return null;\n\n try {\n const res = await ipc<{\n client_message_id?: string;\n status?: \"queued\" | \"inflight\";\n broker_message_id?: string;\n duplicate?: boolean;\n error?: string;\n }>({\n method: \"POST\",\n path: \"/v1/send\",\n timeoutMs: 3_000,\n body: {\n to: args.to,\n message: args.message,\n priority: args.priority,\n ...(args.idempotencyKey ? { client_message_id: args.idempotencyKey } : {}),\n // v1.26.0 multi-mesh: forward the caller's chosen mesh so the\n // daemon picks the right broker. Omitting it on a single-mesh\n // daemon still works (auto-pick); omitting it on a multi-mesh\n // daemon returns 400 with the attached list.\n ...(args.expectedMesh ? { mesh: args.expectedMesh } : {}),\n },\n });\n\n if (res.status === 202 || res.status === 200) {\n return {\n ok: true,\n messageId: res.body.broker_message_id ?? res.body.client_message_id ?? \"\",\n duplicate: res.body.duplicate,\n status: res.body.status,\n };\n }\n return { ok: false, error: res.body.error ?? `daemon http ${res.status}` };\n } catch (err) {\n // Connection errors daemon went away mid-call. Treat as \"not present\"\n // so the caller falls back rather than failing.\n const msg = String(err);\n if (/ENOENT|ECONNREFUSED|ipc_timeout/.test(msg)) return null;\n return { ok: false, error: msg };\n }\n}\n",
101
+ "/**\n * CLI-side session resolver. Reads the session token from env, asks\n * the daemon `GET /v1/sessions/me`, and caches the result for the\n * lifetime of this CLI invocation.\n *\n * Used by verbs that iterate multiple meshes client-side (peer list,\n * me, member list) so that, when invoked from inside a launched\n * session, they auto-scope to that session's workspace instead of\n * aggregating across every joined mesh.\n *\n * Returns null when:\n * - no token in env (caller is outside a launched session, or\n * bare `claudemesh` with no installed daemon).\n * - token present but daemon doesn't recognize it (registry was\n * reset by a daemon restart).\n * - any IPC error (treat as \"no scoping info, fall back to default\n * behavior\").\n */\n\nimport { ipc } from \"~/daemon/ipc/client.js\";\nimport { readSessionTokenFromEnv } from \"./token.js\";\n\nexport interface ResolvedSession {\n sessionId: string;\n mesh: string;\n displayName: string;\n pid: number;\n cwd?: string;\n role?: string;\n groups?: string[];\n}\n\nlet cached: ResolvedSession | null | undefined = undefined;\n\nexport async function getSessionInfo(): Promise<ResolvedSession | null> {\n if (cached !== undefined) return cached;\n const tok = readSessionTokenFromEnv();\n if (!tok) { cached = null; return null; }\n try {\n const res = await ipc<{ session?: ResolvedSession }>({\n path: \"/v1/sessions/me\",\n timeoutMs: 1_500,\n });\n if (res.status !== 200 || !res.body.session) { cached = null; return null; }\n cached = res.body.session;\n return cached;\n } catch {\n cached = null;\n return null;\n }\n}\n\n/** Test helper. */\nexport function _resetSessionCache(): void {\n cached = undefined;\n}\n",
102
+ "/**\n * `claudemesh peers` list connected peers in the mesh.\n *\n * Shows all meshes by default, or filter with --mesh.\n *\n * Warm path: dials the per-mesh bridge socket the push-pipe holds open.\n * Cold path: opens its own WS via `withMesh`. Bridge fall-through is\n * transparent output is identical.\n *\n * `--json` accepts an optional comma-separated field list:\n * claudemesh peers --json (full record)\n * claudemesh peers --json name,pubkey,status (projection)\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, dim, green, yellow } from \"~/ui/styles.js\";\n\nexport interface PeersFlags {\n mesh?: string;\n /** `true`/`undefined` = full record; comma-separated string = field projection. */\n json?: boolean | string;\n}\n\ninterface PeerRecord {\n pubkey: string;\n /** Stable member pubkey (independent of session). When sender shares\n * this with a peer, they're talking to the same person across all\n * their open sessions. */\n memberPubkey?: string;\n displayName: string;\n status?: string;\n summary?: string;\n groups: Array<{ name: string; role?: string }>;\n peerType?: string;\n channel?: string;\n model?: string;\n cwd?: string;\n /** True when this peer is one of the caller's own member's sessions.\n * Set in the cli (not the broker) by comparing memberPubkey against\n * the caller's stable JoinedMesh.pubkey. */\n isSelf?: boolean;\n /** When isSelf is true, true if this is the exact session running\n * the command (vs a sibling session of the same member). */\n isThisSession?: boolean;\n [k: string]: unknown;\n}\n\n/** Friendly aliases `name` is what users will type; broker calls it `displayName`. */\nconst FIELD_ALIAS: Record<string, string> = {\n name: \"displayName\",\n};\n\nfunction projectFields(record: PeerRecord, fields: string[]): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n for (const f of fields) {\n const sourceKey = FIELD_ALIAS[f] ?? f;\n out[f] = (record as Record<string, unknown>)[sourceKey];\n }\n return out;\n}\n\nasync function listPeersForMesh(slug: string): Promise<PeerRecord[]> {\n const config = readConfig();\n const joined = config.meshes.find((m) => m.slug === slug);\n const selfMemberPubkey = joined?.pubkey ?? null;\n\n // Daemon path preferred when running. Same routing pattern as send.ts:\n // ~1 ms IPC round-trip; broker WS already warm in the daemon. The\n // lifecycle helper inside tryListPeersViaDaemon auto-spawns the\n // daemon if it's down and probes it for liveness no separate bridge\n // tier is needed any more (1.28.0).\n try {\n const { tryListPeersViaDaemon } = await import(\"~/services/bridge/daemon-route.js\");\n const dr = await tryListPeersViaDaemon();\n if (dr !== null) {\n return dr.map((p) => annotateSelf(p as PeerRecord, selfMemberPubkey, null));\n }\n } catch { /* daemon route helper not available; fall through */ }\n\n // Cold path open our own WS. Reached only when the lifecycle helper\n // could not bring the daemon up.\n let result: PeerRecord[] = [];\n await withMesh({ meshSlug: slug }, async (client) => {\n const all = (await client.listPeers()) as unknown as PeerRecord[];\n const selfSessionPubkey = client.getSessionPubkey();\n result = all.map((p) =>\n annotateSelf(p, selfMemberPubkey, selfSessionPubkey),\n );\n });\n return result;\n}\n\n/**\n * Tag each peer record with `isSelf` / `isThisSession` so the renderer\n * (and downstream code that picks targets, e.g. `claudemesh send`) can\n * tell sender's own sessions from real peers. The broker has always\n * surfaced a sender's siblings as separate rows because they're separate\n * presence rows; the cli just hadn't been making that visible.\n */\nfunction annotateSelf(\n peer: PeerRecord,\n selfMemberPubkey: string | null,\n selfSessionPubkey: string | null,\n): PeerRecord {\n const isSelf = !!(\n selfMemberPubkey &&\n peer.memberPubkey &&\n peer.memberPubkey === selfMemberPubkey\n );\n const isThisSession = !!(\n isSelf &&\n selfSessionPubkey &&\n peer.pubkey === selfSessionPubkey\n );\n return { ...peer, isSelf, isThisSession };\n}\n\nexport async function runPeers(flags: PeersFlags): Promise<void> {\n const config = readConfig();\n\n // Mesh selection precedence:\n // 1. explicit --mesh <slug> (always wins)\n // 2. session-token mesh (when invoked from inside a launched session)\n // 3. all joined meshes (default for bare shells)\n let slugs: string[];\n if (flags.mesh) {\n slugs = [flags.mesh];\n } else {\n const { getSessionInfo } = await import(\"~/services/session/resolve.js\");\n const sess = await getSessionInfo();\n slugs = sess ? [sess.mesh] : config.meshes.map((m) => m.slug);\n }\n\n if (slugs.length === 0) {\n render.err(\"No meshes joined.\");\n render.hint(\"claudemesh <invite-url> # join + launch\");\n process.exit(1);\n }\n\n // Field projection: --json a,b,c\n const fieldList: string[] | null =\n typeof flags.json === \"string\" && flags.json.length > 0\n ? flags.json.split(\",\").map((s) => s.trim()).filter(Boolean)\n : null;\n const wantsJson = flags.json !== undefined && flags.json !== false;\n\n const allJson: Array<{ mesh: string; peers: unknown[] }> = [];\n\n for (const slug of slugs) {\n try {\n const peers = await listPeersForMesh(slug);\n\n if (wantsJson) {\n const projected = fieldList\n ? peers.map((p) => projectFields(p, fieldList))\n : peers;\n allJson.push({ mesh: slug, peers: projected });\n continue;\n }\n\n render.section(`peers on ${slug} (${peers.length})`);\n\n if (peers.length === 0) {\n render.info(dim(\" (no peers connected)\"));\n continue;\n }\n\n for (const p of peers) {\n const groups = p.groups.length\n ? \" [\" +\n p.groups\n .map((g) => `@${g.name}${g.role ? `:${g.role}` : \"\"}`)\n .join(\", \") +\n \"]\"\n : \"\";\n const statusDot = p.status === \"working\" ? yellow(\"●\") : green(\"●\");\n const name = bold(p.displayName);\n const meta: string[] = [];\n if (p.peerType) meta.push(p.peerType);\n if (p.channel) meta.push(p.channel);\n if (p.model) meta.push(p.model);\n const metaStr = meta.length ? dim(` (${meta.join(\", \")})`) : \"\";\n const summary = p.summary ? dim(` — ${p.summary}`) : \"\";\n const pubkeyTag = dim(` · ${p.pubkey.slice(0, 16)}…`);\n const selfTag = p.isThisSession\n ? dim(\" \") + yellow(\"(this session)\")\n : p.isSelf\n ? dim(\" \") + yellow(\"(your other session)\")\n : \"\";\n render.info(\n `${statusDot} ${name}${selfTag}${groups}${metaStr}${pubkeyTag}${summary}`,\n );\n if (p.cwd) render.info(dim(` cwd: ${p.cwd}`));\n }\n } catch (e) {\n render.err(`${slug}: ${e instanceof Error ? e.message : String(e)}`);\n }\n }\n\n if (wantsJson) {\n process.stdout.write(\n JSON.stringify(slugs.length === 1 ? allJson[0]?.peers : allJson, null, 2) + \"\\n\",\n );\n }\n}\n",
103
+ "/**\n * `claudemesh send <to> <message>` send a message to a peer or group.\n *\n * <to> can be:\n * - a display name (\"Mou\")\n * - a pubkey hex (\"abc123...\")\n * - @group (\"@flexicar\")\n * - * (broadcast to all)\n *\n * Warm path: dials the per-mesh bridge socket the push-pipe holds open\n * (~5ms). Cold path: opens its own WS via `withMesh` (~300-700ms).\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { trySendViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport type { Priority } from \"~/services/broker/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { dim } from \"~/ui/styles.js\";\n\nexport interface SendFlags {\n mesh?: string;\n priority?: string;\n json?: boolean;\n /** Allow sending to a target that resolves to one of the caller's\n * own sessions. Off by default trying to message your own\n * sibling session is almost always an accident (copying a hex\n * pubkey from `peer list` without realizing it was your own row). */\n self?: boolean;\n}\n\nexport async function runSend(flags: SendFlags, to: string, message: string): Promise<void> {\n if (!to || !message) {\n render.err(\"Usage: claudemesh send <to> <message>\");\n process.exit(1);\n }\n\n const priority: Priority =\n flags.priority === \"now\" ? \"now\"\n : flags.priority === \"low\" ? \"low\"\n : \"next\";\n\n // Resolve which mesh to use. With --mesh, target it directly.\n // Without, use first joined mesh same default as withMesh.\n const config = readConfig();\n const meshSlug =\n flags.mesh ??\n (config.meshes.length === 1 ? config.meshes[0]!.slug : null);\n\n // Self-DM safety check: if target is a 64-char hex that matches the\n // caller's own member pubkey (or any of the caller's session/member\n // entries), refuse without --self. Catches the common pasted-from-\n // peer-list-not-realizing-it-was-mine footgun.\n if (!flags.self && meshSlug) {\n const joined = config.meshes.find((m) => m.slug === meshSlug);\n if (joined && /^[0-9a-f]{64}$/i.test(to) && to.toLowerCase() === joined.pubkey.toLowerCase()) {\n render.err(\n `Target \"${to.slice(0, 16)}…\" is your own member pubkey on mesh \"${meshSlug}\".`,\n );\n render.hint(\n \"Pass --self to message a sibling session of your own member, or pick a different peer's pubkey.\",\n );\n process.exit(1);\n }\n }\n\n // Daemon path preferred when a long-lived daemon is local. UDS at\n // ~/.claudemesh/daemon/daemon.sock; ~1ms round-trip; persists outbox\n // across CLI invocations so a `claudemesh send` survives a daemon\n // crash via the on-disk outbox.\n {\n const dr = await trySendViaDaemon({ to, message, priority, expectedMesh: meshSlug ?? undefined });\n if (dr !== null) {\n if (dr.ok) {\n if (flags.json) console.log(JSON.stringify({ ok: true, messageId: dr.messageId, target: to, via: \"daemon\", duplicate: !!dr.duplicate }));\n else render.ok(`sent to ${to} (daemon)`, dr.messageId ? dim(dr.messageId.slice(0, 8)) : undefined);\n return;\n }\n // Daemon answered but rejected (409 idempotency, 400 schema). Surface; do not fall through.\n if (flags.json) console.log(JSON.stringify({ ok: false, error: dr.error, via: \"daemon\" }));\n else render.err(`send failed (daemon): ${dr.error}`);\n process.exit(1);\n }\n // dr === null → daemon not running and lifecycle couldn't auto-\n // spawn it; fall through to cold path. The orphaned bridge tier\n // was removed in 1.28.0.\n }\n\n // Cold path open our own WS, encrypt locally, fire envelope.\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n let targetSpec = to;\n if (to.startsWith(\"#\") && !/^#[0-9a-z_-]{20,}$/i.test(to)) {\n // Topic by name resolve to \"#<topicId>\" via topicList. The broker\n // wire format is \"#<topicId>\"; users type \"#<name>\" for ergonomics.\n const name = to.slice(1);\n const topics = await client.topicList();\n const match = topics.find((t) => t.name === name);\n if (!match) {\n const names = topics.map((t) => \"#\" + t.name).join(\", \");\n render.err(`Topic \"${to}\" not found.`, `topics: ${names || \"(none)\"}`);\n process.exit(1);\n }\n targetSpec = \"#\" + match.id;\n } else if (!to.startsWith(\"@\") && !to.startsWith(\"#\") && to !== \"*\" && !/^[0-9a-f]{64}$/i.test(to)) {\n const peers = await client.listPeers();\n const match = peers.find(\n (p) => p.displayName.toLowerCase() === to.toLowerCase(),\n );\n if (!match) {\n const names = peers.map((p) => p.displayName).join(\", \");\n render.err(`Peer \"${to}\" not found.`, `online: ${names || \"(none)\"}`);\n process.exit(1);\n }\n targetSpec = match.pubkey;\n }\n\n const result = await client.send(targetSpec, message, priority);\n if (result.ok) {\n if (flags.json) {\n console.log(JSON.stringify({ ok: true, messageId: result.messageId, target: to }));\n } else {\n render.ok(`sent to ${to}`, result.messageId ? dim(result.messageId.slice(0, 8)) : undefined);\n }\n } else {\n if (flags.json) {\n console.log(JSON.stringify({ ok: false, error: result.error ?? \"unknown\" }));\n } else {\n render.err(`send failed: ${result.error ?? \"unknown error\"}`);\n }\n process.exit(1);\n }\n });\n}\n",
103
104
  "/**\n * `claudemesh inbox` — read pending peer messages.\n *\n * Connects, waits briefly for push delivery, drains the buffer, prints.\n * Works best when message-mode is \"inbox\" or \"off\" (messages held at broker).\n */\n\nimport { withMesh } from \"./connect.js\";\nimport type { InboundPush } from \"~/services/broker/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, dim } from \"~/ui/styles.js\";\n\nexport interface InboxFlags {\n mesh?: string;\n json?: boolean;\n wait?: number;\n}\n\nfunction formatMessage(msg: InboundPush): string {\n const text = msg.plaintext ?? `[encrypted: ${msg.ciphertext.slice(0, 32)}…]`;\n const from = msg.senderPubkey.slice(0, 8);\n const time = new Date(msg.createdAt).toLocaleTimeString();\n const kindTag = msg.kind === \"direct\" ? \"→ direct\" : msg.kind;\n return ` ${bold(from)} ${dim(`[${kindTag}] ${time}`)}\\n ${text}`;\n}\n\nexport async function runInbox(flags: InboxFlags): Promise<void> {\n const waitMs = (flags.wait ?? 1) * 1000;\n\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client, mesh) => {\n await new Promise<void>((resolve) => setTimeout(resolve, waitMs));\n const messages = client.drainPushBuffer();\n\n if (flags.json) {\n process.stdout.write(JSON.stringify(messages, null, 2) + \"\\n\");\n return;\n }\n\n if (messages.length === 0) {\n render.info(dim(`No messages on mesh \"${mesh.slug}\".`));\n return;\n }\n\n render.section(`inbox — ${mesh.slug} (${messages.length} message${messages.length === 1 ? \"\" : \"s\"})`);\n for (const msg of messages) {\n process.stdout.write(formatMessage(msg) + \"\\n\\n\");\n }\n });\n}\n",
104
105
  "/**\n * `claudemesh state get <key>` — read a shared state value\n * `claudemesh state set <key> <value>` — write a shared state value\n * `claudemesh state list` — list all state entries\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { tryGetStateViaDaemon, tryListStateViaDaemon, trySetStateViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, dim } from \"~/ui/styles.js\";\n\nexport interface StateFlags {\n mesh?: string;\n json?: boolean;\n}\n\nexport async function runStateGet(flags: StateFlags, key: string): Promise<void> {\n // Daemon path first.\n const daemonEntry = await tryGetStateViaDaemon(key, flags.mesh);\n if (daemonEntry !== null) {\n if (!daemonEntry) { render.info(dim(\"(not set)\")); return; }\n if (flags.json) { console.log(JSON.stringify(daemonEntry, null, 2)); return; }\n const val = typeof daemonEntry.value === \"string\" ? daemonEntry.value : JSON.stringify(daemonEntry.value);\n render.info(val);\n render.info(dim(` set by ${daemonEntry.updatedBy} at ${new Date(daemonEntry.updatedAt).toLocaleString()}`));\n return;\n }\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n const entry = await client.getState(key);\n if (!entry) {\n render.info(dim(\"(not set)\"));\n return;\n }\n if (flags.json) {\n console.log(JSON.stringify(entry, null, 2));\n return;\n }\n const val = typeof entry.value === \"string\" ? entry.value : JSON.stringify(entry.value);\n render.info(val);\n render.info(dim(` set by ${entry.updatedBy} at ${new Date(entry.updatedAt).toLocaleString()}`));\n });\n}\n\nexport async function runStateSet(flags: StateFlags, key: string, value: string): Promise<void> {\n let parsed: unknown;\n try {\n parsed = JSON.parse(value);\n } catch {\n parsed = value;\n }\n\n // Daemon path first.\n const daemonOk = await trySetStateViaDaemon(key, parsed, flags.mesh);\n if (daemonOk) {\n render.ok(`${bold(key)} = ${JSON.stringify(parsed)}`);\n return;\n }\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n await client.setState(key, parsed);\n render.ok(`${bold(key)} = ${JSON.stringify(parsed)}`);\n });\n}\n\nexport async function runStateList(flags: StateFlags): Promise<void> {\n // Daemon path first.\n const daemonRows = await tryListStateViaDaemon(flags.mesh);\n if (daemonRows !== null) {\n if (flags.json) { console.log(JSON.stringify(daemonRows, null, 2)); return; }\n if (daemonRows.length === 0) { render.info(dim(\"(no state)\")); return; }\n render.section(`state (${daemonRows.length})`);\n for (const e of daemonRows) {\n const val = typeof e.value === \"string\" ? e.value : JSON.stringify(e.value);\n process.stdout.write(` ${bold(e.key)}: ${val}\\n`);\n process.stdout.write(` ${dim(e.updatedBy + \" · \" + new Date(e.updatedAt).toLocaleString())}\\n`);\n }\n return;\n }\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client, mesh) => {\n const entries = await client.listState();\n\n if (flags.json) {\n console.log(JSON.stringify(entries, null, 2));\n return;\n }\n\n if (entries.length === 0) {\n render.info(dim(`No state on mesh \"${mesh.slug}\".`));\n return;\n }\n\n render.section(`state (${entries.length})`);\n for (const e of entries) {\n const val = typeof e.value === \"string\" ? e.value : JSON.stringify(e.value);\n process.stdout.write(` ${bold(e.key)}: ${val}\\n`);\n process.stdout.write(` ${dim(e.updatedBy + \" · \" + new Date(e.updatedAt).toLocaleString())}\\n`);\n }\n });\n}\n",
105
106
  "import { withMesh } from \"./connect.js\";\nimport { tryRememberViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport { render } from \"~/ui/render.js\";\nimport { dim } from \"~/ui/styles.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\nexport async function remember(\n content: string,\n opts: { mesh?: string; tags?: string; json?: boolean } = {},\n): Promise<number> {\n if (!content) {\n render.err(\"Usage: claudemesh remember <text>\");\n return EXIT.INVALID_ARGS;\n }\n const tags = opts.tags?.split(\",\").map((t) => t.trim()).filter(Boolean);\n\n // Daemon path first.\n const daemonRes = await tryRememberViaDaemon(content, tags, opts.mesh);\n if (daemonRes) {\n if (opts.json) {\n console.log(JSON.stringify({ id: daemonRes.id, content, tags, mesh: daemonRes.mesh }));\n return EXIT.SUCCESS;\n }\n render.ok(\"remembered\", dim(daemonRes.id.slice(0, 8)));\n return EXIT.SUCCESS;\n }\n\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const id = await client.remember(content, tags);\n\n if (opts.json) {\n console.log(JSON.stringify({ id, content, tags }));\n return EXIT.SUCCESS;\n }\n\n if (id) {\n render.ok(\"remembered\", dim(id.slice(0, 8)));\n return EXIT.SUCCESS;\n }\n render.err(\"failed to store memory\");\n return EXIT.INTERNAL_ERROR;\n });\n}\n",
106
107
  "import { withMesh } from \"./connect.js\";\nimport { tryRecallViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, clay, dim } from \"~/ui/styles.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\nexport async function recall(\n query: string,\n opts: { mesh?: string; json?: boolean } = {},\n): Promise<number> {\n if (!query) {\n render.err(\"Usage: claudemesh recall <query>\");\n return EXIT.INVALID_ARGS;\n }\n\n // Daemon path first.\n const daemonMatches = await tryRecallViaDaemon(query, opts.mesh);\n if (daemonMatches !== null) {\n if (opts.json) { console.log(JSON.stringify(daemonMatches, null, 2)); return EXIT.SUCCESS; }\n if (daemonMatches.length === 0) { render.info(dim(\"no memories found.\")); return EXIT.SUCCESS; }\n render.section(`memories (${daemonMatches.length})`);\n for (const m of daemonMatches) {\n const tags = m.tags.length ? dim(` [${m.tags.map((t) => clay(t)).join(dim(\", \"))}]`) : \"\";\n process.stdout.write(` ${bold(m.id.slice(0, 8))}${tags}\\n`);\n process.stdout.write(` ${m.content}\\n`);\n process.stdout.write(` ${dim(m.rememberedBy + \" · \" + new Date(m.rememberedAt).toLocaleString())}\\n\\n`);\n }\n return EXIT.SUCCESS;\n }\n\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const memories = await client.recall(query);\n\n if (opts.json) {\n console.log(JSON.stringify(memories, null, 2));\n return EXIT.SUCCESS;\n }\n\n if (memories.length === 0) {\n render.info(dim(\"no memories found.\"));\n return EXIT.SUCCESS;\n }\n\n render.section(`memories (${memories.length})`);\n for (const m of memories) {\n const tags = m.tags.length ? dim(` [${m.tags.map((t) => clay(t)).join(dim(\", \"))}]`) : \"\";\n process.stdout.write(` ${bold(m.id.slice(0, 8))}${tags}\\n`);\n process.stdout.write(` ${m.content}\\n`);\n process.stdout.write(` ${dim(m.rememberedBy + \" · \" + new Date(m.rememberedAt).toLocaleString())}\\n\\n`);\n }\n return EXIT.SUCCESS;\n });\n}\n",
107
108
  "/**\n * Argument validators — fail loud at the boundary, with specific reasons.\n *\n * Each validator returns a discriminated `ValidationResult` so callers can\n * branch cleanly between \"shape is wrong\" (INVALID_ARGS exit) vs \"value\n * is well-shaped, do the lookup\" (proceed). Hints (`reason`, `expected`,\n * `nearest`) drive the three-tier error message contract:\n *\n * 1. WHAT'S WRONG — the failed assertion.\n * 2. WHAT WOULD BE VALID — the canonical shape.\n * 3. CLOSEST VALID ALTERNATIVE — best-effort suggestion.\n *\n * Use these instead of throwing strings or returning `null` for malformed\n * input. They make argument errors structurally distinct from \"thing\n * doesn't exist\" errors, which today's CLI conflates.\n */\n\nexport type ValidationResult<T = string> =\n | { ok: true; value: T }\n | { ok: false; code: string; reason: string; expected?: string };\n\nconst HEX_RE = /^[0-9a-f]+$/i;\nconst BASE62_RE = /^[A-Za-z0-9]+$/;\nconst SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\n\n/**\n * 64-char lowercase hex peer pubkey (member or session).\n * Accepts UPPERCASE hex and normalizes to lowercase.\n */\nexport function validatePubkey(input: string | undefined): ValidationResult {\n if (!input) {\n return {\n ok: false,\n code: \"missing\",\n reason: \"pubkey is required\",\n expected: \"64 lowercase hex chars\",\n };\n }\n if (input.length !== 64) {\n return {\n ok: false,\n code: \"wrong_length\",\n reason: `pubkey is ${input.length} chars, expected 64`,\n expected: \"64 lowercase hex chars (try `claudemesh peer list --json`)\",\n };\n }\n if (!HEX_RE.test(input)) {\n return {\n ok: false,\n code: \"non_hex\",\n reason: \"pubkey contains non-hex characters\",\n expected: \"characters [0-9a-f] only\",\n };\n }\n return { ok: true, value: input.toLowerCase() };\n}\n\n/**\n * Hex pubkey *prefix* — used for short-form references. Min 8 chars\n * to keep collisions vanishingly rare on a per-mesh roster, max 64.\n */\nexport function validatePubkeyPrefix(\n input: string | undefined,\n { min = 8 }: { min?: number } = {},\n): ValidationResult {\n if (!input) {\n return {\n ok: false,\n code: \"missing\",\n reason: \"pubkey prefix is required\",\n expected: `${min}-64 lowercase hex chars`,\n };\n }\n if (input.length < min) {\n return {\n ok: false,\n code: \"too_short\",\n reason: `prefix is ${input.length} chars, needs ≥${min}`,\n expected: `${min}+ hex chars (full pubkey is 64)`,\n };\n }\n if (input.length > 64) {\n return {\n ok: false,\n code: \"too_long\",\n reason: `prefix is ${input.length} chars, max 64`,\n expected: \"drop trailing characters\",\n };\n }\n if (!HEX_RE.test(input)) {\n return {\n ok: false,\n code: \"non_hex\",\n reason: \"prefix contains non-hex characters\",\n expected: \"characters [0-9a-f] only\",\n };\n }\n return { ok: true, value: input.toLowerCase() };\n}\n\n/**\n * Message id — base62, 32 chars exact, OR a prefix of ≥8 chars.\n * Returns `{ value, isPrefix }` so callers can decide whether to\n * resolve via lookup or treat as full id.\n */\nexport function validateMessageId(\n input: string | undefined,\n): ValidationResult<{ value: string; isPrefix: boolean }> {\n if (!input) {\n return {\n ok: false,\n code: \"missing\",\n reason: \"message id is required\",\n expected: \"32-char base62 id, or ≥8-char prefix\",\n };\n }\n if (input.length < 8) {\n return {\n ok: false,\n code: \"too_short\",\n reason: `id is ${input.length} chars, needs ≥8`,\n expected: \"8+ chars (paste from a previous send/post output)\",\n };\n }\n if (input.length > 32) {\n return {\n ok: false,\n code: \"too_long\",\n reason: `id is ${input.length} chars, max 32`,\n expected: \"trim trailing characters\",\n };\n }\n if (!BASE62_RE.test(input)) {\n return {\n ok: false,\n code: \"bad_charset\",\n reason: \"id contains characters outside [A-Za-z0-9]\",\n expected: \"base62 only\",\n };\n }\n return { ok: true, value: { value: input, isPrefix: input.length < 32 } };\n}\n\n/**\n * Mesh slug — kebab-case, lowercase, 2-64 chars.\n */\nexport function validateMeshSlug(input: string | undefined): ValidationResult {\n if (!input) {\n return {\n ok: false,\n code: \"missing\",\n reason: \"mesh slug is required\",\n expected: \"kebab-case slug (e.g. `openclaw`)\",\n };\n }\n if (input.length < 2 || input.length > 64) {\n return {\n ok: false,\n code: \"wrong_length\",\n reason: `slug is ${input.length} chars, expected 2-64`,\n expected: \"lowercase kebab-case\",\n };\n }\n if (!SLUG_RE.test(input)) {\n return {\n ok: false,\n code: \"bad_format\",\n reason: \"slug must be lowercase letters, digits, and hyphens (no leading/trailing hyphen)\",\n expected: \"e.g. `team-alpha`, `flexicar-2`\",\n };\n }\n return { ok: true, value: input };\n}\n\n/**\n * Render a structured validation error to stderr in the canonical\n * three-line shape: `✘ <verb> <input>` / ` <reason>` / ` <expected>`.\n *\n * Optional fourth line for `nearest` when a fuzzy suggestion is available.\n */\nexport function renderValidationError(\n args: {\n verb: string;\n input: string;\n result: Extract<ValidationResult, { ok: false }>;\n nearest?: string;\n },\n write: (s: string) => void = (s) => process.stderr.write(s),\n): void {\n write(` \\x1b[31m✘\\x1b[0m ${args.verb} ${args.input}\\n`);\n write(` ${args.result.reason}.\\n`);\n if (args.result.expected) {\n write(` expected: ${args.result.expected}\\n`);\n }\n if (args.nearest) {\n write(` did you mean: \\x1b[36m${args.nearest}\\x1b[0m\\n`);\n }\n}\n",
108
- "/**\n * Small broker-side action verbs that previously lived only as MCP tools.\n *\n * These are the CLI replacements for the soft-deprecated tools\n * (set_status / set_summary / set_visible / set_profile / join_group /\n * leave_group / forget / message_status / mesh_clock / mesh_stats /\n * ping_mesh / claim_task / complete_task).\n *\n * Each verb runs against ONE mesh — pick with --mesh <slug>, or let the\n * picker prompt when multiple meshes are joined. This is the deliberate\n * difference from the MCP tools' fan-out-across-all-meshes behavior:\n * the CLI invocation model binds one connection per call.\n *\n * Spec: .artifacts/specs/2026-05-01-mcp-tool-surface-trim.md\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { tryBridge } from \"~/services/bridge/client.js\";\nimport { tryForgetViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, clay, dim } from \"~/ui/styles.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\nimport { validateMessageId, renderValidationError } from \"~/cli/validators.js\";\n\ntype StateFlags = { mesh?: string; json?: boolean };\ntype PeerStatus = \"idle\" | \"working\" | \"dnd\";\n\n/** Resolve unambiguous mesh slug for warm-path bridging. Returns null if\n * the user has multiple joined meshes and didn't pick one. */\nfunction unambiguousMesh(opts: StateFlags): string | null {\n if (opts.mesh) return opts.mesh;\n const config = readConfig();\n return config.meshes.length === 1 ? config.meshes[0]!.slug : null;\n}\n\n// --- status ---\n\nexport async function runStatusSet(state: string, opts: StateFlags): Promise<number> {\n const valid: PeerStatus[] = [\"idle\", \"working\", \"dnd\"];\n if (!valid.includes(state as PeerStatus)) {\n render.err(`Invalid status: ${state}`, `must be one of: ${valid.join(\", \")}`);\n return EXIT.INVALID_ARGS;\n }\n\n // Warm path\n const meshSlug = unambiguousMesh(opts);\n if (meshSlug) {\n const bridged = await tryBridge(meshSlug, \"status_set\", { status: state });\n if (bridged !== null) {\n if (bridged.ok) {\n if (opts.json) console.log(JSON.stringify({ status: state }));\n else render.ok(`status set to ${bold(state)}`);\n return EXIT.SUCCESS;\n }\n render.err(bridged.error);\n return EXIT.INTERNAL_ERROR;\n }\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.setStatus(state as PeerStatus);\n });\n if (opts.json) console.log(JSON.stringify({ status: state }));\n else render.ok(`status set to ${bold(state)}`);\n return EXIT.SUCCESS;\n}\n\n// --- summary ---\n\nexport async function runSummary(text: string, opts: StateFlags): Promise<number> {\n if (!text) {\n render.err(\"Usage: claudemesh summary <text>\");\n return EXIT.INVALID_ARGS;\n }\n\n // Warm path\n const meshSlug = unambiguousMesh(opts);\n if (meshSlug) {\n const bridged = await tryBridge(meshSlug, \"summary\", { summary: text });\n if (bridged !== null) {\n if (bridged.ok) {\n if (opts.json) console.log(JSON.stringify({ summary: text }));\n else render.ok(\"summary set\", dim(text));\n return EXIT.SUCCESS;\n }\n render.err(bridged.error);\n return EXIT.INTERNAL_ERROR;\n }\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.setSummary(text);\n });\n if (opts.json) console.log(JSON.stringify({ summary: text }));\n else render.ok(\"summary set\", dim(text));\n return EXIT.SUCCESS;\n}\n\n// --- visible ---\n\nexport async function runVisible(value: string | undefined, opts: StateFlags): Promise<number> {\n let visible: boolean;\n if (value === \"true\" || value === \"1\" || value === \"yes\") visible = true;\n else if (value === \"false\" || value === \"0\" || value === \"no\") visible = false;\n else {\n render.err(\"Usage: claudemesh visible <true|false>\");\n return EXIT.INVALID_ARGS;\n }\n\n // Warm path\n const meshSlug = unambiguousMesh(opts);\n if (meshSlug) {\n const bridged = await tryBridge(meshSlug, \"visible\", { visible });\n if (bridged !== null) {\n if (bridged.ok) {\n if (opts.json) console.log(JSON.stringify({ visible }));\n else render.ok(visible ? \"you are now visible to peers\" : \"you are now hidden\", visible ? undefined : \"direct messages still reach you\");\n return EXIT.SUCCESS;\n }\n render.err(bridged.error);\n return EXIT.INTERNAL_ERROR;\n }\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.setVisible(visible);\n });\n if (opts.json) console.log(JSON.stringify({ visible }));\n else render.ok(visible ? \"you are now visible to peers\" : \"you are now hidden\", visible ? undefined : \"direct messages still reach you\");\n return EXIT.SUCCESS;\n}\n\n// --- group ---\n\nexport async function runGroupJoin(name: string | undefined, opts: StateFlags & { role?: string }): Promise<number> {\n if (!name) {\n render.err(\"Usage: claudemesh group join @<name> [--role X]\");\n return EXIT.INVALID_ARGS;\n }\n const cleanName = name.startsWith(\"@\") ? name.slice(1) : name;\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.joinGroup(cleanName, opts.role);\n });\n if (opts.json) {\n console.log(JSON.stringify({ group: cleanName, role: opts.role ?? null }));\n return EXIT.SUCCESS;\n }\n render.ok(`joined ${clay(\"@\" + cleanName)}`, opts.role ? `as ${opts.role}` : undefined);\n return EXIT.SUCCESS;\n}\n\nexport async function runGroupLeave(name: string | undefined, opts: StateFlags): Promise<number> {\n if (!name) {\n render.err(\"Usage: claudemesh group leave @<name>\");\n return EXIT.INVALID_ARGS;\n }\n const cleanName = name.startsWith(\"@\") ? name.slice(1) : name;\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.leaveGroup(cleanName);\n });\n if (opts.json) {\n console.log(JSON.stringify({ group: cleanName, left: true }));\n return EXIT.SUCCESS;\n }\n render.ok(`left ${clay(\"@\" + cleanName)}`);\n return EXIT.SUCCESS;\n}\n\n// --- forget ---\n\nexport async function runForget(id: string | undefined, opts: StateFlags): Promise<number> {\n if (!id) {\n render.err(\"Usage: claudemesh forget <memory-id>\");\n return EXIT.INVALID_ARGS;\n }\n\n // Daemon path first.\n if (await tryForgetViaDaemon(id, opts.mesh)) {\n if (opts.json) { console.log(JSON.stringify({ id, forgotten: true })); return EXIT.SUCCESS; }\n render.ok(`forgot ${dim(id.slice(0, 8))}`);\n return EXIT.SUCCESS;\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.forget(id);\n });\n if (opts.json) {\n console.log(JSON.stringify({ id, forgotten: true }));\n return EXIT.SUCCESS;\n }\n render.ok(`forgot ${dim(id.slice(0, 8))}`);\n return EXIT.SUCCESS;\n}\n\n// --- msg-status ---\n\nexport async function runMsgStatus(id: string | undefined, opts: StateFlags): Promise<number> {\n // Validate input shape *before* we open a WS connection, so a typo\n // returns a structured error instead of \"not found or timed out\".\n const v = validateMessageId(id);\n if (!v.ok) {\n if (opts.json) {\n console.log(\n JSON.stringify({\n ok: false,\n error: \"invalid_argument\",\n field: \"messageId\",\n code: v.code,\n reason: v.reason,\n expected: v.expected,\n }),\n );\n } else {\n renderValidationError({\n verb: \"msg-status\",\n input: id ?? \"(missing)\",\n result: v,\n });\n }\n return EXIT.INVALID_ARGS;\n }\n const lookupId = v.value.value;\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const result = await client.messageStatus(lookupId);\n if (!result) {\n if (opts.json) {\n console.log(\n JSON.stringify({\n ok: false,\n error: \"not_found\",\n id: lookupId,\n isPrefix: v.value.isPrefix,\n }),\n );\n } else {\n const hint = v.value.isPrefix\n ? ` no message id starts with ${dim(\"\\\"\" + lookupId + \"\\\"\")} in this mesh.\\n try: claudemesh msg-status <full-32-char-id>`\n : ` message ${dim(lookupId.slice(0, 12) + \"…\")} not in queue (already drained, expired, or never sent in this mesh).`;\n render.err(`message not found`);\n process.stderr.write(hint + \"\\n\");\n }\n return EXIT.NOT_FOUND;\n }\n if (opts.json) {\n console.log(JSON.stringify(result, null, 2));\n return EXIT.SUCCESS;\n }\n render.section(`message ${id.slice(0, 12)}…`);\n render.kv([\n [\"target\", result.targetSpec],\n [\"delivered\", result.delivered ? \"yes\" : \"no\"],\n [\"delivered_at\", result.deliveredAt ?? dim(\"—\")],\n ]);\n if (result.recipients.length > 0) {\n render.blank();\n render.heading(\"recipients\");\n for (const r of result.recipients) {\n process.stdout.write(` ${bold(r.name)} ${dim(r.pubkey.slice(0, 12) + \"…\")} ${dim(\"·\")} ${r.status}\\n`);\n }\n }\n return EXIT.SUCCESS;\n });\n}\n\n// --- clock ---\n\nexport async function runClock(opts: StateFlags): Promise<number> {\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const result = await client.getClock();\n if (!result) {\n if (opts.json) console.log(JSON.stringify({ error: \"timed out\" }));\n else render.err(\"Clock query timed out\");\n return EXIT.INTERNAL_ERROR;\n }\n if (opts.json) {\n console.log(JSON.stringify(result, null, 2));\n return EXIT.SUCCESS;\n }\n const statusLabel = result.speed === 0 ? \"not started\" : result.paused ? \"paused\" : \"running\";\n render.section(`mesh clock — ${statusLabel}`);\n render.kv([\n [\"speed\", `x${result.speed}`],\n [\"tick\", String(result.tick)],\n [\"sim_time\", result.simTime],\n [\"started_at\", result.startedAt],\n ]);\n return EXIT.SUCCESS;\n });\n}\n\n// --- stats ---\n\nexport async function runStats(opts: StateFlags): Promise<number> {\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const peers = await client.listPeers();\n if (opts.json) {\n console.log(JSON.stringify({\n mesh: client.meshSlug,\n peers: peers.map((p) => ({ name: p.displayName, pubkey: p.pubkey, stats: p.stats ?? null })),\n }, null, 2));\n return EXIT.SUCCESS;\n }\n render.section(client.meshSlug);\n for (const p of peers) {\n const s = p.stats;\n if (!s) {\n process.stdout.write(` ${bold(p.displayName)} ${dim(\"(no stats)\")}\\n`);\n continue;\n }\n const up = s.uptime != null ? `${Math.floor(s.uptime / 60)}m` : \"—\";\n process.stdout.write(\n ` ${bold(p.displayName)} ${dim(`in:${s.messagesIn ?? 0} out:${s.messagesOut ?? 0} tools:${s.toolCalls ?? 0} up:${up} err:${s.errors ?? 0}`)}\\n`,\n );\n }\n return EXIT.SUCCESS;\n });\n}\n\n// --- ping ---\n\nexport async function runPing(opts: StateFlags): Promise<number> {\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const peers = await client.listPeers();\n if (opts.json) {\n console.log(JSON.stringify({\n mesh: client.meshSlug,\n ws_status: client.status,\n peers_online: peers.length,\n push_buffer: client.pushHistory.length,\n }, null, 2));\n return EXIT.SUCCESS;\n }\n render.section(`ping ${client.meshSlug}`);\n render.kv([\n [\"ws_status\", client.status],\n [\"peers_online\", String(peers.length)],\n [\"push_buffer\", String(client.pushHistory.length)],\n ]);\n return EXIT.SUCCESS;\n });\n}\n\n// --- task ---\n\nexport async function runTaskClaim(id: string | undefined, opts: StateFlags): Promise<number> {\n if (!id) {\n render.err(\"Usage: claudemesh task claim <id>\");\n return EXIT.INVALID_ARGS;\n }\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.claimTask(id);\n });\n if (opts.json) {\n console.log(JSON.stringify({ id, claimed: true }));\n return EXIT.SUCCESS;\n }\n render.ok(`claimed ${dim(id.slice(0, 8))}`);\n return EXIT.SUCCESS;\n}\n\nexport async function runTaskComplete(id: string | undefined, result: string | undefined, opts: StateFlags): Promise<number> {\n if (!id) {\n render.err(\"Usage: claudemesh task complete <id> [result]\");\n return EXIT.INVALID_ARGS;\n }\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.completeTask(id, result);\n });\n if (opts.json) {\n console.log(JSON.stringify({ id, completed: true, result: result ?? null }));\n return EXIT.SUCCESS;\n }\n render.ok(`completed ${dim(id.slice(0, 8))}`, result);\n return EXIT.SUCCESS;\n}\n",
109
+ "/**\n * Small broker-side action verbs that previously lived only as MCP tools.\n *\n * These are the CLI replacements for the soft-deprecated tools\n * (set_status / set_summary / set_visible / set_profile / join_group /\n * leave_group / forget / message_status / mesh_clock / mesh_stats /\n * ping_mesh / claim_task / complete_task).\n *\n * Each verb runs against ONE mesh — pick with --mesh <slug>, or let the\n * picker prompt when multiple meshes are joined. This is the deliberate\n * difference from the MCP tools' fan-out-across-all-meshes behavior:\n * the CLI invocation model binds one connection per call.\n *\n * Spec: .artifacts/specs/2026-05-01-mcp-tool-surface-trim.md\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { tryForgetViaDaemon } from \"~/services/bridge/daemon-route.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, clay, dim } from \"~/ui/styles.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\nimport { validateMessageId, renderValidationError } from \"~/cli/validators.js\";\n\ntype StateFlags = { mesh?: string; json?: boolean };\ntype PeerStatus = \"idle\" | \"working\" | \"dnd\";\n\n// --- status ---\n\nexport async function runStatusSet(state: string, opts: StateFlags): Promise<number> {\n const valid: PeerStatus[] = [\"idle\", \"working\", \"dnd\"];\n if (!valid.includes(state as PeerStatus)) {\n render.err(`Invalid status: ${state}`, `must be one of: ${valid.join(\", \")}`);\n return EXIT.INVALID_ARGS;\n }\n\n // Bridge tier deleted in 1.28.0 (dead code; the orphaned warm-path\n // socket was never opened by anyone). Daemon route would belong here;\n // adding it for status/summary/visible is queued for 1.29.0.\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.setStatus(state as PeerStatus);\n });\n if (opts.json) console.log(JSON.stringify({ status: state }));\n else render.ok(`status set to ${bold(state)}`);\n return EXIT.SUCCESS;\n}\n\n// --- summary ---\n\nexport async function runSummary(text: string, opts: StateFlags): Promise<number> {\n if (!text) {\n render.err(\"Usage: claudemesh summary <text>\");\n return EXIT.INVALID_ARGS;\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.setSummary(text);\n });\n if (opts.json) console.log(JSON.stringify({ summary: text }));\n else render.ok(\"summary set\", dim(text));\n return EXIT.SUCCESS;\n}\n\n// --- visible ---\n\nexport async function runVisible(value: string | undefined, opts: StateFlags): Promise<number> {\n let visible: boolean;\n if (value === \"true\" || value === \"1\" || value === \"yes\") visible = true;\n else if (value === \"false\" || value === \"0\" || value === \"no\") visible = false;\n else {\n render.err(\"Usage: claudemesh visible <true|false>\");\n return EXIT.INVALID_ARGS;\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.setVisible(visible);\n });\n if (opts.json) console.log(JSON.stringify({ visible }));\n else render.ok(visible ? \"you are now visible to peers\" : \"you are now hidden\", visible ? undefined : \"direct messages still reach you\");\n return EXIT.SUCCESS;\n}\n\n// --- group ---\n\nexport async function runGroupJoin(name: string | undefined, opts: StateFlags & { role?: string }): Promise<number> {\n if (!name) {\n render.err(\"Usage: claudemesh group join @<name> [--role X]\");\n return EXIT.INVALID_ARGS;\n }\n const cleanName = name.startsWith(\"@\") ? name.slice(1) : name;\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.joinGroup(cleanName, opts.role);\n });\n if (opts.json) {\n console.log(JSON.stringify({ group: cleanName, role: opts.role ?? null }));\n return EXIT.SUCCESS;\n }\n render.ok(`joined ${clay(\"@\" + cleanName)}`, opts.role ? `as ${opts.role}` : undefined);\n return EXIT.SUCCESS;\n}\n\nexport async function runGroupLeave(name: string | undefined, opts: StateFlags): Promise<number> {\n if (!name) {\n render.err(\"Usage: claudemesh group leave @<name>\");\n return EXIT.INVALID_ARGS;\n }\n const cleanName = name.startsWith(\"@\") ? name.slice(1) : name;\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.leaveGroup(cleanName);\n });\n if (opts.json) {\n console.log(JSON.stringify({ group: cleanName, left: true }));\n return EXIT.SUCCESS;\n }\n render.ok(`left ${clay(\"@\" + cleanName)}`);\n return EXIT.SUCCESS;\n}\n\n// --- forget ---\n\nexport async function runForget(id: string | undefined, opts: StateFlags): Promise<number> {\n if (!id) {\n render.err(\"Usage: claudemesh forget <memory-id>\");\n return EXIT.INVALID_ARGS;\n }\n\n // Daemon path first.\n if (await tryForgetViaDaemon(id, opts.mesh)) {\n if (opts.json) { console.log(JSON.stringify({ id, forgotten: true })); return EXIT.SUCCESS; }\n render.ok(`forgot ${dim(id.slice(0, 8))}`);\n return EXIT.SUCCESS;\n }\n\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.forget(id);\n });\n if (opts.json) {\n console.log(JSON.stringify({ id, forgotten: true }));\n return EXIT.SUCCESS;\n }\n render.ok(`forgot ${dim(id.slice(0, 8))}`);\n return EXIT.SUCCESS;\n}\n\n// --- msg-status ---\n\nexport async function runMsgStatus(id: string | undefined, opts: StateFlags): Promise<number> {\n // Validate input shape *before* we open a WS connection, so a typo\n // returns a structured error instead of \"not found or timed out\".\n const v = validateMessageId(id);\n if (!v.ok) {\n if (opts.json) {\n console.log(\n JSON.stringify({\n ok: false,\n error: \"invalid_argument\",\n field: \"messageId\",\n code: v.code,\n reason: v.reason,\n expected: v.expected,\n }),\n );\n } else {\n renderValidationError({\n verb: \"msg-status\",\n input: id ?? \"(missing)\",\n result: v,\n });\n }\n return EXIT.INVALID_ARGS;\n }\n const lookupId = v.value.value;\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const result = await client.messageStatus(lookupId);\n if (!result) {\n if (opts.json) {\n console.log(\n JSON.stringify({\n ok: false,\n error: \"not_found\",\n id: lookupId,\n isPrefix: v.value.isPrefix,\n }),\n );\n } else {\n const hint = v.value.isPrefix\n ? ` no message id starts with ${dim(\"\\\"\" + lookupId + \"\\\"\")} in this mesh.\\n try: claudemesh msg-status <full-32-char-id>`\n : ` message ${dim(lookupId.slice(0, 12) + \"…\")} not in queue (already drained, expired, or never sent in this mesh).`;\n render.err(`message not found`);\n process.stderr.write(hint + \"\\n\");\n }\n return EXIT.NOT_FOUND;\n }\n if (opts.json) {\n console.log(JSON.stringify(result, null, 2));\n return EXIT.SUCCESS;\n }\n render.section(`message ${id.slice(0, 12)}…`);\n render.kv([\n [\"target\", result.targetSpec],\n [\"delivered\", result.delivered ? \"yes\" : \"no\"],\n [\"delivered_at\", result.deliveredAt ?? dim(\"—\")],\n ]);\n if (result.recipients.length > 0) {\n render.blank();\n render.heading(\"recipients\");\n for (const r of result.recipients) {\n process.stdout.write(` ${bold(r.name)} ${dim(r.pubkey.slice(0, 12) + \"…\")} ${dim(\"·\")} ${r.status}\\n`);\n }\n }\n return EXIT.SUCCESS;\n });\n}\n\n// --- clock ---\n\nexport async function runClock(opts: StateFlags): Promise<number> {\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const result = await client.getClock();\n if (!result) {\n if (opts.json) console.log(JSON.stringify({ error: \"timed out\" }));\n else render.err(\"Clock query timed out\");\n return EXIT.INTERNAL_ERROR;\n }\n if (opts.json) {\n console.log(JSON.stringify(result, null, 2));\n return EXIT.SUCCESS;\n }\n const statusLabel = result.speed === 0 ? \"not started\" : result.paused ? \"paused\" : \"running\";\n render.section(`mesh clock — ${statusLabel}`);\n render.kv([\n [\"speed\", `x${result.speed}`],\n [\"tick\", String(result.tick)],\n [\"sim_time\", result.simTime],\n [\"started_at\", result.startedAt],\n ]);\n return EXIT.SUCCESS;\n });\n}\n\n// --- stats ---\n\nexport async function runStats(opts: StateFlags): Promise<number> {\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const peers = await client.listPeers();\n if (opts.json) {\n console.log(JSON.stringify({\n mesh: client.meshSlug,\n peers: peers.map((p) => ({ name: p.displayName, pubkey: p.pubkey, stats: p.stats ?? null })),\n }, null, 2));\n return EXIT.SUCCESS;\n }\n render.section(client.meshSlug);\n for (const p of peers) {\n const s = p.stats;\n if (!s) {\n process.stdout.write(` ${bold(p.displayName)} ${dim(\"(no stats)\")}\\n`);\n continue;\n }\n const up = s.uptime != null ? `${Math.floor(s.uptime / 60)}m` : \"—\";\n process.stdout.write(\n ` ${bold(p.displayName)} ${dim(`in:${s.messagesIn ?? 0} out:${s.messagesOut ?? 0} tools:${s.toolCalls ?? 0} up:${up} err:${s.errors ?? 0}`)}\\n`,\n );\n }\n return EXIT.SUCCESS;\n });\n}\n\n// --- ping ---\n\nexport async function runPing(opts: StateFlags): Promise<number> {\n return await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n const peers = await client.listPeers();\n if (opts.json) {\n console.log(JSON.stringify({\n mesh: client.meshSlug,\n ws_status: client.status,\n peers_online: peers.length,\n push_buffer: client.pushHistory.length,\n }, null, 2));\n return EXIT.SUCCESS;\n }\n render.section(`ping ${client.meshSlug}`);\n render.kv([\n [\"ws_status\", client.status],\n [\"peers_online\", String(peers.length)],\n [\"push_buffer\", String(client.pushHistory.length)],\n ]);\n return EXIT.SUCCESS;\n });\n}\n\n// --- task ---\n\nexport async function runTaskClaim(id: string | undefined, opts: StateFlags): Promise<number> {\n if (!id) {\n render.err(\"Usage: claudemesh task claim <id>\");\n return EXIT.INVALID_ARGS;\n }\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.claimTask(id);\n });\n if (opts.json) {\n console.log(JSON.stringify({ id, claimed: true }));\n return EXIT.SUCCESS;\n }\n render.ok(`claimed ${dim(id.slice(0, 8))}`);\n return EXIT.SUCCESS;\n}\n\nexport async function runTaskComplete(id: string | undefined, result: string | undefined, opts: StateFlags): Promise<number> {\n if (!id) {\n render.err(\"Usage: claudemesh task complete <id> [result]\");\n return EXIT.INVALID_ARGS;\n }\n await withMesh({ meshSlug: opts.mesh ?? null }, async (client) => {\n await client.completeTask(id, result);\n });\n if (opts.json) {\n console.log(JSON.stringify({ id, completed: true, result: result ?? null }));\n return EXIT.SUCCESS;\n }\n render.ok(`completed ${dim(id.slice(0, 8))}`, result);\n return EXIT.SUCCESS;\n}\n",
109
110
  "/**\n * `claudemesh remind <message> --in <duration> | --at <time>`\n * `claudemesh remind list`\n * `claudemesh remind cancel <id>`\n *\n * Human-facing interface to the broker's scheduled message delivery.\n */\n\nimport { withMesh } from \"./connect.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, clay, dim } from \"~/ui/styles.js\";\n\nexport interface RemindFlags {\n mesh?: string;\n in?: string; // e.g. \"2h\", \"30m\", \"90s\"\n at?: string; // ISO or HH:MM\n cron?: string; // 5-field cron expression for recurring\n to?: string; // default: self\n json?: boolean;\n}\n\nfunction parseDuration(raw: string): number | null {\n const m = raw.trim().match(/^(\\d+(?:\\.\\d+)?)\\s*(s|sec|m|min|h|hr|d|day)?$/i);\n if (!m) return null;\n const n = parseFloat(m[1]!);\n const unit = (m[2] ?? \"s\").toLowerCase();\n if (unit.startsWith(\"d\")) return n * 86_400_000;\n if (unit.startsWith(\"h\")) return n * 3_600_000;\n if (unit.startsWith(\"m\")) return n * 60_000;\n return n * 1_000;\n}\n\nfunction parseDeliverAt(flags: RemindFlags): number | null {\n if (flags.in) {\n const ms = parseDuration(flags.in);\n if (ms === null) return null;\n return Date.now() + ms;\n }\n if (flags.at) {\n const hm = flags.at.match(/^(\\d{1,2}):(\\d{2})$/);\n if (hm) {\n const now = new Date();\n const target = new Date(now);\n target.setHours(parseInt(hm[1]!, 10), parseInt(hm[2]!, 10), 0, 0);\n if (target <= now) target.setDate(target.getDate() + 1);\n return target.getTime();\n }\n const ts = Date.parse(flags.at);\n return isNaN(ts) ? null : ts;\n }\n return null;\n}\n\nexport async function runRemind(\n flags: RemindFlags,\n positional: string[],\n): Promise<void> {\n const action = positional[0];\n\n if (action === \"list\") {\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n const scheduled = await client.listScheduled();\n if (flags.json) { console.log(JSON.stringify(scheduled, null, 2)); return; }\n if (scheduled.length === 0) { render.info(dim(\"No pending reminders.\")); return; }\n render.section(`reminders (${scheduled.length})`);\n for (const m of scheduled) {\n const when = new Date(m.deliverAt).toLocaleString();\n const to = m.to === client.getSessionPubkey() ? dim(\"(self)\") : m.to;\n process.stdout.write(` ${bold(m.id.slice(0, 8))} ${dim(\"→\")} ${to} ${dim(\"at\")} ${when}\\n`);\n process.stdout.write(` ${dim(m.message.slice(0, 80))}\\n\\n`);\n }\n });\n return;\n }\n\n if (action === \"cancel\") {\n const id = positional[1];\n if (!id) { render.err(\"Usage: claudemesh remind cancel <id>\"); process.exit(1); }\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n const ok = await client.cancelScheduled(id);\n if (ok) render.ok(`cancelled ${bold(id.slice(0, 8))}`);\n else { render.err(`not found or already fired: ${id}`); process.exit(1); }\n });\n return;\n }\n\n const message = action ?? positional.join(\" \");\n if (!message) {\n render.err(\"Usage: claudemesh remind <message> --in <duration>\");\n render.info(dim(\" claudemesh remind <message> --at <time>\"));\n render.info(dim(' claudemesh remind <message> --cron \"0 */2 * * *\"'));\n render.info(dim(\" claudemesh remind list\"));\n render.info(dim(\" claudemesh remind cancel <id>\"));\n process.exit(1);\n }\n\n const isCron = !!flags.cron;\n const deliverAt = isCron ? 0 : parseDeliverAt(flags);\n if (!isCron && deliverAt === null) {\n render.err('Specify when', 'use --in <duration> (e.g. \"2h\", \"30m\"), --at <time> (e.g. \"15:00\"), or --cron <expression>');\n process.exit(1);\n }\n\n await withMesh({ meshSlug: flags.mesh ?? null }, async (client) => {\n let targetSpec: string;\n if (flags.to && flags.to !== \"self\") {\n if (flags.to.startsWith(\"@\") || flags.to === \"*\" || /^[0-9a-f]{64}$/i.test(flags.to)) {\n targetSpec = flags.to;\n } else {\n const peers = await client.listPeers();\n const match = peers.find((p) => p.displayName.toLowerCase() === flags.to!.toLowerCase());\n if (!match) {\n render.err(`Peer \"${flags.to}\" not found`, `online: ${peers.map((p) => p.displayName).join(\", \") || \"(none)\"}`);\n process.exit(1);\n }\n targetSpec = match.pubkey;\n }\n } else {\n targetSpec = client.getSessionPubkey() ?? \"*\";\n }\n\n const result = await client.scheduleMessage(targetSpec, message, deliverAt ?? 0, false, flags.cron);\n if (!result) { render.err(\"Broker did not acknowledge — check connection\"); process.exit(1); }\n\n if (flags.json) { console.log(JSON.stringify(result)); return; }\n const toLabel = !flags.to || flags.to === \"self\" ? \"yourself\" : flags.to;\n if (isCron) {\n const nextFire = new Date(result.deliverAt).toLocaleString();\n render.ok(\n `recurring reminder set`,\n `${result.scheduledId.slice(0, 8)} · ${clay(message)} → ${toLabel} · cron ${flags.cron} · next ${nextFire}`,\n );\n } else {\n const when = new Date(result.deliverAt).toLocaleString();\n render.ok(\n `reminder set`,\n `${result.scheduledId.slice(0, 8)} · ${clay(message)} → ${toLabel} at ${when}`,\n );\n }\n });\n}\n",
110
111
  "import { login } from \"./login.js\";\n\n// Register and login use the same device-code flow.\n// The browser page (/cli-auth) redirects to /auth/login if not authenticated,\n// which has a \"Don't have an account? Register\" link.\nexport async function register(): Promise<number> {\n return login();\n}\n",
111
112
  "import { logout as doLogout } from \"~/services/auth/facade.js\";\nimport { green, yellow, icons } from \"~/ui/styles.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\n\nexport async function logout(): Promise<number> {\n try {\n const { revoked } = await doLogout();\n\n if (revoked) {\n console.log(` ${green(icons.check)} Revoked session on claudemesh.com`);\n } else {\n console.log(` ${yellow(icons.warn)} Could not revoke session on claudemesh.com.`);\n console.log(` Revoke manually at https://claudemesh.com/dashboard/settings/sessions`);\n }\n console.log(` ${green(icons.check)} Removed local credentials.`);\n\n return EXIT.SUCCESS;\n } catch (err) {\n console.error(` ${icons.cross} Logout failed: ${err instanceof Error ? err.message : err}`);\n return EXIT.AUTH_FAILED;\n }\n}\n",
@@ -117,12 +118,13 @@
117
118
  "// IPC accept handler for POST /v1/send. Implements the §4.5.1 lookup table:\n// daemon-local idempotency over outbox states × fingerprint match/mismatch.\n//\n// Broker delivery (drain → broker WS) is a separate concern and not part of\n// this handler — this only serializes the daemon-local accept.\n\nimport { randomUUID } from \"node:crypto\";\n\nimport {\n findByClientId,\n fingerprintsEqual,\n insertPending,\n type OutboxRow,\n} from \"../../db/outbox.js\";\nimport { inImmediateTx, type SqliteDb } from \"../../db/sqlite.js\";\nimport {\n computeRequestFingerprint,\n fingerprintHexPrefix,\n type DestKind,\n type Priority,\n} from \"../../fingerprint.js\";\n\nexport interface SendRequest {\n to: string; // peer name | pubkey hex | @group | * | topic name\n message: string;\n priority?: Priority;\n meta?: Record<string, unknown>;\n reply_to_id?: string;\n /** Optional caller-supplied id. Wins over Idempotency-Key header. */\n client_message_id?: string;\n /** Destination kind + ref must be supplied by the IPC layer after parsing `to`. */\n destination_kind: DestKind;\n destination_ref: string;\n /** Sprint 4: pre-resolved broker-format target (pubkey hex, \"#topicId\", @group, *). */\n target_spec?: string;\n /** Sprint 4: pre-encrypted ciphertext (base64). For DMs: crypto_box. For broadcast/topic: base64-of-plaintext. */\n ciphertext?: string;\n /** Sprint 4: nonce that pairs with ciphertext (base64). */\n nonce?: string;\n /** Sprint 4: which mesh this send is for (single-mesh daemon today; multi-mesh later). */\n mesh?: string;\n}\n\nexport type AcceptOutcome =\n | { kind: \"accepted_pending\"; status: 202; client_message_id: string }\n | { kind: \"accepted_inflight\"; status: 202; client_message_id: string }\n | { kind: \"accepted_done\"; status: 200; client_message_id: string; broker_message_id: string | null }\n | { kind: \"conflict\"; status: 409; reason: string; daemon_fingerprint_prefix: string; broker_message_id?: string | null };\n\nexport interface AcceptDeps {\n db: SqliteDb;\n /** Override for testing. */\n now?: () => number;\n /** Override for testing. */\n newId?: () => string;\n}\n\nexport const ENVELOPE_VERSION = 1;\n\n/**\n * Daemon-local idempotency: serialized via BEGIN IMMEDIATE so concurrent\n * IPC requests with the same client_message_id produce one outcome.\n */\nexport function acceptSend(req: SendRequest, deps: AcceptDeps): AcceptOutcome {\n const now = (deps.now ?? Date.now)();\n const newId = deps.newId ?? randomUUID;\n\n // Per spec, caller-supplied client_message_id wins; otherwise daemon mints one.\n const clientId = req.client_message_id?.trim() || ulidLike(newId);\n\n const body = Buffer.from(req.message, \"utf8\");\n const fingerprint = computeRequestFingerprint({\n envelope_version: ENVELOPE_VERSION,\n destination_kind: req.destination_kind,\n destination_ref: req.destination_ref,\n reply_to_id: req.reply_to_id ?? null,\n priority: req.priority ?? \"next\",\n meta: req.meta ?? null,\n body,\n });\n\n return inImmediateTx(deps.db, () => {\n const existing = findByClientId(deps.db, clientId);\n if (!existing) {\n insertPending(deps.db, {\n id: newId(),\n client_message_id: clientId,\n request_fingerprint: fingerprint,\n payload: body,\n now,\n mesh: req.mesh,\n target_spec: req.target_spec,\n nonce: req.nonce,\n ciphertext: req.ciphertext,\n priority: req.priority,\n });\n return { kind: \"accepted_pending\", status: 202, client_message_id: clientId };\n }\n\n return decideForExistingRow(existing, fingerprint);\n });\n}\n\nfunction decideForExistingRow(row: OutboxRow, fp: Buffer): AcceptOutcome {\n const match = fingerprintsEqual(fp, row.request_fingerprint);\n const fpPrefix = fingerprintHexPrefix(fp);\n\n // Spec §4.5.1 lookup table.\n switch (row.status) {\n case \"pending\":\n return match\n ? { kind: \"accepted_pending\", status: 202, client_message_id: row.client_message_id }\n : conflict(\"outbox_pending_fingerprint_mismatch\", fpPrefix);\n\n case \"inflight\":\n return match\n ? { kind: \"accepted_inflight\", status: 202, client_message_id: row.client_message_id }\n : conflict(\"outbox_inflight_fingerprint_mismatch\", fpPrefix);\n\n case \"done\":\n return match\n ? {\n kind: \"accepted_done\",\n status: 200,\n client_message_id: row.client_message_id,\n broker_message_id: row.broker_message_id,\n }\n : conflict(\"outbox_done_fingerprint_mismatch\", fpPrefix, row.broker_message_id);\n\n case \"dead\":\n return match\n ? conflict(\"outbox_dead_fingerprint_match\", fpPrefix, row.broker_message_id)\n : conflict(\"outbox_dead_fingerprint_mismatch\", fpPrefix);\n\n case \"aborted\":\n return match\n ? conflict(\"outbox_aborted_fingerprint_match\", fpPrefix)\n : conflict(\"outbox_aborted_fingerprint_mismatch\", fpPrefix);\n\n default: {\n // Exhaustiveness check.\n const _: never = row.status;\n throw new Error(`unknown outbox status: ${String(_)}`);\n }\n }\n}\n\nfunction conflict(reason: string, fpPrefix: string, brokerMessageId: string | null = null): AcceptOutcome {\n return {\n kind: \"conflict\",\n status: 409,\n reason,\n daemon_fingerprint_prefix: fpPrefix,\n broker_message_id: brokerMessageId,\n };\n}\n\n/** Tiny ULID-ish generator: 26-char Crockford-base32 from time + random. */\nfunction ulidLike(newId: () => string): string {\n // We don't ship a full ULID lib for one fallback path; uuid is fine here.\n // The wire-stable id is whatever we return; downstream just uses it as text.\n return newId();\n}\n",
118
119
  "// Inbox schema + accessors. Schema is the v0.9.0 spec §4.10 / v3 §4.5\n// content table; FTS5 index is deferred to the followups doc.\n\nimport type { SqliteDb } from \"./sqlite.js\";\n\nexport interface InboxRow {\n id: string;\n client_message_id: string;\n broker_message_id: string | null;\n mesh: string;\n topic: string | null;\n sender_pubkey: string;\n sender_name: string;\n body: string | null;\n meta: string | null;\n received_at: number;\n reply_to_id: string | null;\n}\n\nexport function migrateInbox(db: SqliteDb): void {\n db.exec(`\n CREATE TABLE IF NOT EXISTS inbox (\n id TEXT PRIMARY KEY,\n client_message_id TEXT NOT NULL UNIQUE,\n broker_message_id TEXT,\n mesh TEXT NOT NULL,\n topic TEXT,\n sender_pubkey TEXT NOT NULL,\n sender_name TEXT NOT NULL,\n body TEXT,\n meta TEXT,\n received_at INTEGER NOT NULL,\n reply_to_id TEXT\n );\n CREATE INDEX IF NOT EXISTS inbox_received_at ON inbox(received_at);\n CREATE INDEX IF NOT EXISTS inbox_topic ON inbox(topic);\n CREATE INDEX IF NOT EXISTS inbox_sender ON inbox(sender_pubkey);\n `);\n}\n\n/**\n * Spec §4.5 insert path:\n * INSERT ... ON CONFLICT(client_message_id) DO NOTHING RETURNING id\n *\n * Returns the new row id when this was a fresh insert, or null when the\n * message id was already known (idempotent receive).\n */\nexport function insertIfNew(db: SqliteDb, row: Omit<InboxRow, \"id\"> & { id: string }): string | null {\n // node:sqlite does support RETURNING. bun:sqlite does too. We branch on\n // the row count instead so it works on both.\n const before = db.prepare(`SELECT id FROM inbox WHERE client_message_id = ?`).get<{ id: string }>(row.client_message_id);\n if (before) return null;\n db.prepare(`\n INSERT INTO inbox (\n id, client_message_id, broker_message_id, mesh, topic,\n sender_pubkey, sender_name, body, meta, received_at, reply_to_id\n ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)\n ON CONFLICT(client_message_id) DO NOTHING\n `).run(\n row.id, row.client_message_id, row.broker_message_id, row.mesh, row.topic,\n row.sender_pubkey, row.sender_name, row.body, row.meta, row.received_at, row.reply_to_id,\n );\n // Confirm the insert landed (handles the conflict-noop race).\n const after = db.prepare(`SELECT id FROM inbox WHERE client_message_id = ?`).get<{ id: string }>(row.client_message_id);\n return after?.id === row.id ? row.id : null;\n}\n\nexport interface ListInboxParams {\n since?: number; // received_at >= since\n topic?: string;\n fromPubkey?: string;\n limit?: number;\n}\n\nexport function listInbox(db: SqliteDb, p: ListInboxParams): InboxRow[] {\n const where: string[] = [];\n const args: unknown[] = [];\n if (p.since !== undefined) { where.push(\"received_at >= ?\"); args.push(p.since); }\n if (p.topic !== undefined) { where.push(\"topic = ?\"); args.push(p.topic); }\n if (p.fromPubkey !== undefined){ where.push(\"sender_pubkey = ?\"); args.push(p.fromPubkey); }\n const sql = `\n SELECT id, client_message_id, broker_message_id, mesh, topic,\n sender_pubkey, sender_name, body, meta, received_at, reply_to_id\n FROM inbox\n ${where.length ? \"WHERE \" + where.join(\" AND \") : \"\"}\n ORDER BY received_at DESC\n LIMIT ?\n `;\n args.push(Math.min(Math.max(p.limit ?? 100, 1), 1000));\n return db.prepare(sql).all<InboxRow>(...args);\n}\n",
119
120
  "// Lightweight in-process event bus + SSE writer. Used by /v1/events SSE\n// stream and consumed by hooks (post-v0.9.0).\n\nimport type { ServerResponse } from \"node:http\";\n\nexport type DaemonEventKind =\n | \"message\"\n | \"peer_join\"\n | \"peer_leave\"\n | \"broker_status\"\n | \"system\";\n\nexport interface DaemonEvent {\n kind: DaemonEventKind;\n ts: string;\n data: Record<string, unknown>;\n}\n\ntype Subscriber = (e: DaemonEvent) => void;\n\nexport class EventBus {\n private subs = new Set<Subscriber>();\n\n publish(kind: DaemonEventKind, data: Record<string, unknown>): void {\n const e: DaemonEvent = { kind, ts: new Date().toISOString(), data };\n for (const s of this.subs) {\n try { s(e); } catch { /* one bad subscriber must not poison the rest */ }\n }\n }\n\n subscribe(fn: Subscriber): () => void {\n this.subs.add(fn);\n return () => this.subs.delete(fn);\n }\n}\n\n/** Write an event to an open SSE response. */\nexport function writeSse(res: ServerResponse, e: DaemonEvent, idCounter: number): void {\n res.write(`id: ${idCounter}\\n`);\n res.write(`event: ${e.kind}\\n`);\n res.write(`data: ${JSON.stringify({ ts: e.ts, ...e.data })}\\n\\n`);\n}\n\n/** Open an SSE stream on the response and route bus events to it. */\nexport function bindSseStream(res: ServerResponse, bus: EventBus): () => void {\n res.statusCode = 200;\n res.setHeader(\"Content-Type\", \"text/event-stream\");\n res.setHeader(\"Cache-Control\", \"no-cache, no-transform\");\n res.setHeader(\"Connection\", \"keep-alive\");\n res.setHeader(\"X-Accel-Buffering\", \"no\");\n res.write(\": connected\\n\\n\");\n\n let counter = 0;\n const unsubscribe = bus.subscribe((e) => writeSse(res, e, ++counter));\n\n const heartbeat = setInterval(() => {\n try { res.write(\": keepalive\\n\\n\"); }\n catch { /* socket already torn down; cleanup handled below */ }\n }, 15_000);\n\n const cleanup = () => {\n clearInterval(heartbeat);\n unsubscribe();\n try { res.end(); } catch { /* ignore */ }\n };\n res.on(\"close\", cleanup);\n res.on(\"error\", cleanup);\n return cleanup;\n}\n",
120
- "import { createServer, type IncomingMessage, type Server, type ServerResponse } from \"node:http\";\nimport { chmodSync, existsSync, unlinkSync } from \"node:fs\";\nimport { timingSafeEqual } from \"node:crypto\";\n\nimport { DAEMON_PATHS, DAEMON_TCP_HOST, DAEMON_TCP_DEFAULT_PORT } from \"../paths.js\";\nimport type { SqliteDb } from \"../db/sqlite.js\";\nimport { acceptSend, type SendRequest } from \"./handlers/send.js\";\nimport { listInbox } from \"../db/inbox.js\";\nimport { listOutbox, requeueDeadOrPending, type OutboxStatus } from \"../db/outbox.js\";\nimport { randomUUID } from \"node:crypto\";\nimport { bindSseStream, type EventBus } from \"../events.js\";\nimport type { DaemonBrokerClient } from \"../broker.js\";\nimport { VERSION } from \"~/constants/urls.js\";\n\n/**\n * Per spec §3.3:\n * - UDS reaches via filesystem perms (0600): no bearer required.\n * - TCP loopback + SSE require `Authorization: Bearer <local_token>`.\n * - Token in query string returns 400 + security log.\n * - Host header must be localhost / 127.0.0.1 / [::1] / empty.\n * - All endpoints auth-required by default; `/v1/health` opt-in public.\n *\n * v0.9.0 surface: /v1/version, /v1/health (auth-required), more added later.\n */\nexport interface IpcServerOptions {\n localToken: string;\n /** Bind a TCP loopback listener too (default true; container default is UDS-only). */\n tcpEnabled?: boolean;\n /** Override the default TCP port. */\n tcpPort?: number;\n /** Make /v1/health reachable without a token (k8s probe scenario). */\n publicHealthCheck?: boolean;\n /** Optional logger. Falls back to console.error for warnings/security events. */\n log?: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n /** Outbox database handle for /v1/send. */\n outboxDb?: SqliteDb;\n /** Inbox database handle for /v1/inbox. */\n inboxDb?: SqliteDb;\n /** Event bus backing /v1/events SSE stream. */\n bus?: EventBus;\n /** v1.26.0: per-mesh broker map for peers/skills/profile passthrough. */\n brokers?: Map<string, DaemonBrokerClient>;\n /** v1.26.0: per-mesh JoinedMesh entries (carry pubkey + secretKey for crypto). */\n meshConfigs?: Map<string, { slug: string; pubkey: string; secretKey: string }>;\n /** Notify when a new outbox row was inserted (drains can wake). */\n onPendingInserted?: () => void;\n}\n\nexport interface IpcServerHandle {\n uds: Server;\n tcp: Server | null;\n /** Resolves once both listeners are live. */\n ready: Promise<void>;\n close: () => Promise<void>;\n}\n\nexport function startIpcServer(opts: IpcServerOptions): IpcServerHandle {\n const log = opts.log ?? defaultLogger;\n\n const handler = makeHandler({\n localToken: opts.localToken,\n publicHealthCheck: !!opts.publicHealthCheck,\n log,\n outboxDb: opts.outboxDb,\n inboxDb: opts.inboxDb,\n bus: opts.bus,\n brokers: opts.brokers,\n meshConfigs: opts.meshConfigs,\n onPendingInserted: opts.onPendingInserted,\n });\n\n // --- UDS listener -------------------------------------------------------\n if (existsSync(DAEMON_PATHS.SOCK_FILE)) {\n // Possible stale socket from a previous crashed daemon. We hold the\n // singleton lock by the time we reach here, so it's safe to remove.\n try { unlinkSync(DAEMON_PATHS.SOCK_FILE); } catch { /* ignore */ }\n }\n const uds = createServer(handler);\n const udsReady = new Promise<void>((resolve, reject) => {\n uds.once(\"error\", reject);\n uds.listen(DAEMON_PATHS.SOCK_FILE, () => {\n // Restrict the socket file itself; node creates it 0755 by default.\n try { chmodSync(DAEMON_PATHS.SOCK_FILE, 0o600); }\n catch (err) { log(\"warn\", \"uds_chmod_failed\", { err: String(err) }); }\n resolve();\n });\n });\n\n // --- TCP listener (optional, off in container defaults) ----------------\n let tcp: Server | null = null;\n let tcpReady: Promise<void> = Promise.resolve();\n if (opts.tcpEnabled !== false) {\n tcp = createServer(handler);\n tcpReady = new Promise<void>((resolve, reject) => {\n tcp!.once(\"error\", reject);\n tcp!.listen(opts.tcpPort ?? DAEMON_TCP_DEFAULT_PORT, DAEMON_TCP_HOST, () => resolve());\n });\n }\n\n return {\n uds,\n tcp,\n ready: Promise.all([udsReady, tcpReady]).then(() => undefined),\n close: async () => {\n await Promise.allSettled([\n new Promise<void>((res) => uds.close(() => res())),\n tcp ? new Promise<void>((res) => tcp!.close(() => res())) : Promise.resolve(),\n ]);\n try { unlinkSync(DAEMON_PATHS.SOCK_FILE); } catch { /* ignore */ }\n },\n };\n}\n\nfunction defaultLogger(level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) {\n const line = JSON.stringify({ level, msg, ...meta, ts: new Date().toISOString() });\n if (level === \"info\") process.stdout.write(line + \"\\n\");\n else process.stderr.write(line + \"\\n\");\n}\n\nfunction makeHandler(opts: {\n localToken: string;\n publicHealthCheck: boolean;\n log: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n outboxDb?: SqliteDb;\n inboxDb?: SqliteDb;\n bus?: EventBus;\n brokers?: Map<string, DaemonBrokerClient>;\n meshConfigs?: Map<string, { slug: string; pubkey: string; secretKey: string }>;\n onPendingInserted?: () => void;\n}) {\n const tokenBytes = Buffer.from(opts.localToken, \"utf8\");\n\n return async (req: IncomingMessage, res: ServerResponse) => {\n const url = new URL(req.url ?? \"/\", \"http://daemon.local\");\n\n // Token in query string → security event + 400.\n if (url.searchParams.has(\"token\")) {\n opts.log(\"warn\", \"ipc_token_in_query_string_rejected\", { path: url.pathname });\n respond(res, 400, { error: \"token must be in Authorization header, not query string\" });\n return;\n }\n\n // Host header check — only the loopback names allowed.\n const host = (req.headers.host ?? \"\").toLowerCase().split(\":\")[0]?.trim() ?? \"\";\n if (host && host !== \"localhost\" && host !== \"127.0.0.1\" && host !== \"[::1]\" && host !== \"::1\") {\n respond(res, 403, { error: \"forbidden host\" });\n return;\n }\n\n // Origin allowlist — empty by default (no browsers should hit this).\n if (req.headers.origin) {\n respond(res, 403, { error: \"forbidden origin\" });\n return;\n }\n\n // Authentication. UDS connections (over unix socket) skip the bearer\n // check because filesystem perms gate access; TCP requires it.\n const isUds = (req.socket as { remoteAddress?: string }).remoteAddress === undefined;\n const isPublicHealth = opts.publicHealthCheck && url.pathname === \"/v1/health\";\n if (!isUds && !isPublicHealth) {\n const authz = req.headers.authorization ?? \"\";\n const m = /^Bearer\\s+(.+)$/.exec(authz.trim());\n if (!m || !m[1]) {\n respond(res, 401, { error: \"missing bearer token\" });\n return;\n }\n const provided = Buffer.from(m[1], \"utf8\");\n if (provided.length !== tokenBytes.length || !timingSafeEqual(provided, tokenBytes)) {\n opts.log(\"warn\", \"ipc_bearer_mismatch\", { path: url.pathname });\n respond(res, 401, { error: \"invalid bearer token\" });\n return;\n }\n }\n\n // Routing.\n if (req.method === \"GET\" && url.pathname === \"/v1/version\") {\n respond(res, 200, {\n daemon_version: VERSION,\n ipc_api: \"v1\",\n ipc_features: [\"version\", \"health\", \"send\", \"inbox\", \"events\", \"peers\", \"profile\", \"skills\", \"state\", \"memory\"],\n schema_version: 1,\n });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/health\") {\n respond(res, 200, { ok: true, pid: process.pid });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/events\") {\n if (!opts.bus) {\n respond(res, 503, { error: \"event bus not initialised\" });\n return;\n }\n bindSseStream(res, opts.bus);\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/peers\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const filterMesh = url.searchParams.get(\"mesh\") ?? undefined;\n try {\n // Aggregate across all attached meshes; each peer record gets a\n // `mesh` field so the caller can scope client-side. A single\n // ?mesh=<slug> filter narrows the set server-side.\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n try {\n const peers = await b.listPeers();\n for (const p of peers) all.push({ ...(p as Record<string, unknown>), mesh: slug });\n } catch (e) {\n opts.log(\"warn\", \"ipc_peers_broker_failed\", { mesh: slug, err: String(e) });\n }\n }\n respond(res, 200, { peers: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/state\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const filterMesh = url.searchParams.get(\"mesh\") ?? undefined;\n const key = url.searchParams.get(\"key\");\n try {\n if (key) {\n // Single key lookup. Walk attached meshes; first match wins\n // (or ?mesh=<slug> scopes the search).\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const row = await b.getState(key).catch(() => null);\n if (row) { respond(res, 200, { state: { ...row, mesh: slug } }); return; }\n }\n respond(res, 404, { error: \"state_not_found\", key });\n return;\n }\n // No key — list all entries across attached meshes.\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const rows = await b.listState().catch(() => []);\n for (const r of rows) all.push({ ...(r as unknown as Record<string, unknown>), mesh: slug });\n }\n respond(res, 200, { entries: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/state\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 256 * 1024) as Record<string, unknown> | null;\n if (!body || typeof body.key !== \"string\") {\n respond(res, 400, { error: \"missing 'key' (string)\" });\n return;\n }\n const requested = (typeof body.mesh === \"string\" ? body.mesh : null) || null;\n let chosen = requested;\n if (!chosen && opts.brokers.size === 1) chosen = opts.brokers.keys().next().value as string;\n if (!chosen) {\n respond(res, 400, { error: \"mesh_required\", attached: [...opts.brokers.keys()] });\n return;\n }\n const broker = opts.brokers.get(chosen);\n if (!broker) { respond(res, 404, { error: \"mesh_not_attached\", mesh: chosen }); return; }\n broker.setState(body.key, body.value);\n respond(res, 200, { ok: true, key: body.key, mesh: chosen });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/memory\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const query = url.searchParams.get(\"q\") ?? \"\";\n const filterMesh = url.searchParams.get(\"mesh\") ?? undefined;\n try {\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const rows = await b.recall(query).catch(() => []);\n for (const r of rows) all.push({ ...(r as unknown as Record<string, unknown>), mesh: slug });\n }\n respond(res, 200, { matches: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/memory\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 256 * 1024) as Record<string, unknown> | null;\n if (!body || typeof body.content !== \"string\") {\n respond(res, 400, { error: \"missing 'content' (string)\" });\n return;\n }\n const requested = (typeof body.mesh === \"string\" ? body.mesh : null) || null;\n let chosen = requested;\n if (!chosen && opts.brokers.size === 1) chosen = opts.brokers.keys().next().value as string;\n if (!chosen) {\n respond(res, 400, { error: \"mesh_required\", attached: [...opts.brokers.keys()] });\n return;\n }\n const broker = opts.brokers.get(chosen);\n if (!broker) { respond(res, 404, { error: \"mesh_not_attached\", mesh: chosen }); return; }\n const tags = Array.isArray(body.tags) ? body.tags.filter((t) => typeof t === \"string\") as string[] : undefined;\n const id = await broker.remember(body.content, tags);\n if (!id) { respond(res, 502, { error: \"remember_timeout\" }); return; }\n respond(res, 200, { id, mesh: chosen });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"DELETE\" && url.pathname.startsWith(\"/v1/memory/\")) {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const id = decodeURIComponent(url.pathname.slice(\"/v1/memory/\".length));\n if (!id) { respond(res, 400, { error: \"missing memory id\" }); return; }\n const requested = url.searchParams.get(\"mesh\");\n let chosen = requested;\n if (!chosen && opts.brokers.size === 1) chosen = opts.brokers.keys().next().value as string;\n if (!chosen) {\n respond(res, 400, { error: \"mesh_required\", attached: [...opts.brokers.keys()] });\n return;\n }\n const broker = opts.brokers.get(chosen);\n if (!broker) { respond(res, 404, { error: \"mesh_not_attached\", mesh: chosen }); return; }\n broker.forget(id);\n respond(res, 200, { ok: true, id, mesh: chosen });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/skills\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const query = url.searchParams.get(\"query\") ?? undefined;\n const filterMesh = url.searchParams.get(\"mesh\") ?? undefined;\n try {\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n try {\n const skills = await b.listSkills(query);\n for (const s of skills) all.push({ ...(s as Record<string, unknown>), mesh: slug });\n } catch (e) {\n opts.log(\"warn\", \"ipc_skills_broker_failed\", { mesh: slug, err: String(e) });\n }\n }\n respond(res, 200, { skills: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname.startsWith(\"/v1/skills/\")) {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const name = decodeURIComponent(url.pathname.slice(\"/v1/skills/\".length));\n if (!name) { respond(res, 400, { error: \"missing skill name\" }); return; }\n const filterMesh = url.searchParams.get(\"mesh\") ?? undefined;\n try {\n // First mesh that has the skill wins. With ?mesh=<slug>, only that\n // mesh is queried.\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const skill = await b.getSkill(name).catch(() => null);\n if (skill) { respond(res, 200, { skill: { ...skill, mesh: slug } }); return; }\n }\n respond(res, 404, { error: \"skill_not_found\", name });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/profile\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 16 * 1024) as Record<string, unknown> | null;\n if (!body) { respond(res, 400, { error: \"expected JSON object\" }); return; }\n // v1.26.0: profile updates apply to a specific mesh if `mesh` is\n // present in the body or query, otherwise broadcast to all attached\n // meshes (presence is per-mesh, but most users want consistent\n // presence across all of theirs).\n const requested = (typeof body.mesh === \"string\" ? body.mesh : url.searchParams.get(\"mesh\")) || null;\n const targets = requested\n ? [opts.brokers.get(requested)].filter(Boolean) as DaemonBrokerClient[]\n : [...opts.brokers.values()];\n if (targets.length === 0) { respond(res, 404, { error: \"mesh_not_attached\", mesh: requested }); return; }\n const updates: Record<string, unknown> = {};\n for (const b of targets) {\n if (typeof body.summary === \"string\") b.setSummary(body.summary);\n if (body.status === \"idle\" || body.status === \"working\" || body.status === \"dnd\") b.setStatus(body.status);\n if (typeof body.visible === \"boolean\") b.setVisible(body.visible);\n const profile: { avatar?: string; title?: string; bio?: string; capabilities?: string[] } = {};\n if (typeof body.avatar === \"string\") profile.avatar = body.avatar;\n if (typeof body.title === \"string\") profile.title = body.title;\n if (typeof body.bio === \"string\") profile.bio = body.bio;\n if (Array.isArray(body.capabilities)) profile.capabilities = body.capabilities.filter((c) => typeof c === \"string\") as string[];\n if (Object.keys(profile).length > 0) b.setProfile(profile);\n }\n Object.assign(updates, body);\n respond(res, 200, { ok: true, applied: Object.keys(updates), meshes: requested ? [requested] : [...opts.brokers.keys()] });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/inbox\") {\n if (!opts.inboxDb) {\n respond(res, 503, { error: \"inbox not initialised\" });\n return;\n }\n const sinceRaw = url.searchParams.get(\"since\");\n const since = sinceRaw ? Date.parse(sinceRaw) : undefined;\n const topic = url.searchParams.get(\"topic\") ?? undefined;\n const fromPubkey = url.searchParams.get(\"from\") ?? undefined;\n const limitRaw = url.searchParams.get(\"limit\");\n const limit = limitRaw ? Number.parseInt(limitRaw, 10) : undefined;\n const rows = listInbox(opts.inboxDb, {\n since: Number.isFinite(since) ? since : undefined,\n topic,\n fromPubkey,\n limit: Number.isFinite(limit ?? NaN) ? limit : undefined,\n });\n respond(res, 200, {\n items: rows.map((r) => ({\n id: r.id,\n client_message_id: r.client_message_id,\n broker_message_id: r.broker_message_id,\n mesh: r.mesh,\n topic: r.topic,\n sender_pubkey: r.sender_pubkey,\n sender_name: r.sender_name,\n body: r.body,\n received_at: new Date(r.received_at).toISOString(),\n reply_to_id: r.reply_to_id,\n })),\n });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/outbox\") {\n if (!opts.outboxDb) { respond(res, 503, { error: \"outbox not initialised\" }); return; }\n const statusParam = url.searchParams.get(\"status\") ?? undefined;\n const allowed: OutboxStatus[] = [\"pending\",\"inflight\",\"done\",\"dead\",\"aborted\"];\n const status = (statusParam && (allowed as string[]).includes(statusParam))\n ? statusParam as OutboxStatus\n : undefined;\n const limitRaw = url.searchParams.get(\"limit\");\n const limit = limitRaw ? Number.parseInt(limitRaw, 10) : undefined;\n const rows = listOutbox(opts.outboxDb, {\n status,\n limit: Number.isFinite(limit ?? NaN) ? limit : undefined,\n });\n respond(res, 200, {\n items: rows.map((r) => ({\n id: r.id,\n client_message_id: r.client_message_id,\n status: r.status,\n attempts: r.attempts,\n enqueued_at: new Date(r.enqueued_at).toISOString(),\n next_attempt_at: new Date(r.next_attempt_at).toISOString(),\n delivered_at: r.delivered_at ? new Date(r.delivered_at).toISOString() : null,\n broker_message_id: r.broker_message_id,\n last_error: r.last_error,\n aborted_at: r.aborted_at ? new Date(r.aborted_at).toISOString() : null,\n aborted_by: r.aborted_by,\n superseded_by: r.superseded_by,\n payload_bytes: r.payload?.byteLength ?? 0,\n })),\n });\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/outbox/requeue\") {\n if (!opts.outboxDb) { respond(res, 503, { error: \"outbox not initialised\" }); return; }\n try {\n const body = await readJsonBody(req, 4 * 1024) as Record<string, unknown> | null;\n if (!body || typeof body.id !== \"string\") { respond(res, 400, { error: \"missing 'id'\" }); return; }\n const newId = typeof body.new_client_message_id === \"string\" && body.new_client_message_id.trim()\n ? body.new_client_message_id.trim()\n : randomUUID();\n const result = requeueDeadOrPending(opts.outboxDb, {\n id: body.id,\n newClientMessageId: newId,\n newRowId: randomUUID(),\n now: Date.now(),\n abortedBy: typeof body.aborted_by === \"string\" ? body.aborted_by : \"operator\",\n });\n if (!result) {\n respond(res, 409, { error: \"row not found, already aborted, or already done\" });\n return;\n }\n respond(res, 200, {\n aborted_row_id: result.abortedRowId,\n new_row_id: result.newRowId,\n new_client_message_id: result.newClientMessageId,\n });\n opts.onPendingInserted?.();\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/send\") {\n if (!opts.outboxDb) {\n respond(res, 503, { error: \"outbox not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 256 * 1024);\n const parsed = parseSendRequest(body, req.headers[\"idempotency-key\"]);\n if (\"error\" in parsed) {\n respond(res, 400, { error: parsed.error });\n return;\n }\n // v1.26.0: pick the mesh. Order of preference:\n // 1. Explicit `mesh` field in body\n // 2. Single attached mesh — auto-pick\n // 3. Bail with 400 — caller must disambiguate\n if (opts.brokers && opts.brokers.size > 0 && opts.meshConfigs) {\n let chosenSlug: string | null = parsed.req.mesh ?? null;\n if (!chosenSlug && opts.brokers.size === 1) {\n chosenSlug = opts.brokers.keys().next().value as string;\n }\n if (!chosenSlug) {\n respond(res, 400, {\n error: \"mesh_required\",\n detail: `daemon attached to ${opts.brokers.size} meshes; pass 'mesh' in request body`,\n attached: [...opts.brokers.keys()],\n });\n return;\n }\n const broker = opts.brokers.get(chosenSlug);\n const meshCfg = opts.meshConfigs.get(chosenSlug);\n if (!broker || !meshCfg) {\n respond(res, 404, { error: \"mesh_not_attached\", mesh: chosenSlug });\n return;\n }\n try {\n const routed = await resolveAndEncrypt(parsed.req, broker, meshCfg.secretKey, chosenSlug);\n parsed.req.target_spec = routed.target_spec;\n parsed.req.ciphertext = routed.ciphertext;\n parsed.req.nonce = routed.nonce;\n parsed.req.mesh = routed.mesh;\n } catch (e) {\n respond(res, 502, { error: \"route_failed\", detail: String(e) });\n return;\n }\n }\n const outcome = acceptSend(parsed.req, { db: opts.outboxDb });\n switch (outcome.kind) {\n case \"accepted_pending\":\n respond(res, outcome.status, {\n client_message_id: outcome.client_message_id,\n status: \"queued\",\n });\n opts.onPendingInserted?.();\n return;\n case \"accepted_inflight\":\n respond(res, outcome.status, {\n client_message_id: outcome.client_message_id,\n status: \"inflight\",\n });\n return;\n case \"accepted_done\":\n respond(res, outcome.status, {\n client_message_id: outcome.client_message_id,\n broker_message_id: outcome.broker_message_id,\n duplicate: true,\n });\n return;\n case \"conflict\":\n respond(res, outcome.status, {\n error: \"idempotency_key_reused\",\n conflict: outcome.reason,\n daemon_fingerprint_prefix: outcome.daemon_fingerprint_prefix,\n broker_message_id: outcome.broker_message_id ?? null,\n });\n return;\n }\n } catch (err) {\n opts.log(\"error\", \"ipc_send_failed\", { err: String(err) });\n respond(res, 500, { error: \"internal\" });\n return;\n }\n }\n\n respond(res, 404, { error: \"not found\" });\n };\n}\n\nasync function readJsonBody(req: IncomingMessage, maxBytes: number): Promise<unknown> {\n const chunks: Buffer[] = [];\n let total = 0;\n for await (const chunk of req) {\n const buf = chunk as Buffer;\n total += buf.length;\n if (total > maxBytes) throw new Error(\"payload_too_large\");\n chunks.push(buf);\n }\n if (total === 0) return null;\n const text = Buffer.concat(chunks).toString(\"utf8\");\n try { return JSON.parse(text); }\n catch { throw new Error(\"invalid_json\"); }\n}\n\ninterface ParsedSend { req: SendRequest }\ninterface ParseError { error: string }\n\nfunction parseSendRequest(body: unknown, idempotencyHeader: string | string[] | undefined): ParsedSend | ParseError {\n if (!body || typeof body !== \"object\") return { error: \"expected JSON object\" };\n const b = body as Record<string, unknown>;\n\n const to = typeof b.to === \"string\" ? b.to.trim() : \"\";\n const message = typeof b.message === \"string\" ? b.message : \"\";\n if (!to) return { error: \"missing 'to'\" };\n if (!message) return { error: \"missing 'message'\" };\n\n const priority = b.priority;\n if (priority !== undefined && priority !== \"now\" && priority !== \"next\" && priority !== \"low\") {\n return { error: \"priority must be 'now' | 'next' | 'low'\" };\n }\n\n const meta = b.meta;\n if (meta !== undefined && meta !== null && (typeof meta !== \"object\" || Array.isArray(meta))) {\n return { error: \"'meta' must be an object\" };\n }\n\n // Resolve destination_kind / destination_ref from the `to` shape.\n // For v0.9.0 we accept three forms:\n // \"@<topic>\" → topic\n // \"*\" → broadcast (modeled as topic *)\n // anything else → dm to peer name|pubkey (resolution happens later)\n let destination_kind: SendRequest[\"destination_kind\"];\n let destination_ref: string;\n if (to.startsWith(\"@\")) {\n destination_kind = \"topic\";\n destination_ref = to.slice(1);\n } else if (to === \"*\") {\n destination_kind = \"topic\";\n destination_ref = \"*\";\n } else {\n destination_kind = \"dm\";\n destination_ref = to;\n }\n\n const headerId = Array.isArray(idempotencyHeader) ? idempotencyHeader[0] : idempotencyHeader;\n const client_message_id = typeof b.client_message_id === \"string\" && b.client_message_id.trim()\n ? b.client_message_id.trim()\n : (typeof headerId === \"string\" && headerId.trim() ? headerId.trim() : undefined);\n\n const reply_to_id = typeof b.reply_to_id === \"string\" ? b.reply_to_id : undefined;\n\n const mesh = typeof b.mesh === \"string\" ? b.mesh.trim() : undefined;\n\n return {\n req: {\n to,\n message,\n priority: priority as SendRequest[\"priority\"] | undefined,\n meta: (meta as Record<string, unknown> | undefined) ?? undefined,\n reply_to_id,\n client_message_id,\n destination_kind,\n destination_ref,\n mesh,\n },\n };\n}\n\n/**\n * Sprint 4: resolve a user-friendly `to` (peer name, pubkey hex, @group, *,\n * topic name, \"#topicId\") into a broker-format target_spec, and encrypt\n * the plaintext payload appropriately for the destination kind.\n *\n * - DM by 64-char hex pubkey: target_spec = pubkey hex, ciphertext via\n * crypto_box (recipient pubkey + sender session secret).\n * - DM by display name: resolve via broker.listPeers, then same as above.\n * - Group / broadcast / topic: target_spec = `@<group>` / `*` / `#<topicId>`,\n * ciphertext = base64(plaintext) [matches the cold path's pre-encryption\n * convention until topic crypto lands].\n */\nasync function resolveAndEncrypt(\n req: SendRequest,\n broker: DaemonBrokerClient,\n meshSecretKey: string,\n meshSlug: string | null,\n): Promise<{ target_spec: string; ciphertext: string; nonce: string; mesh: string }> {\n const { encryptDirect } = await import(\"~/services/crypto/box.js\");\n const { randomBytes } = await import(\"node:crypto\");\n const to = req.to.trim();\n\n // Topic by id (\"#<topicId>\") — hex-like 20+ chars.\n if (to.startsWith(\"#\") && /^#[0-9a-z_-]{20,}$/i.test(to)) {\n const ciphertext = Buffer.from(req.message, \"utf8\").toString(\"base64\");\n const nonce = randomBytes(24).toString(\"base64\");\n return { target_spec: to, ciphertext, nonce, mesh: meshSlug ?? \"\" };\n }\n\n // Group, broadcast — pass through. (Topic-by-name resolution happens\n // when the daemon hooks topic_list later; not required for v1.25.0.)\n if (to.startsWith(\"@\") || to === \"*\") {\n const ciphertext = Buffer.from(req.message, \"utf8\").toString(\"base64\");\n const nonce = randomBytes(24).toString(\"base64\");\n return { target_spec: to, ciphertext, nonce, mesh: meshSlug ?? \"\" };\n }\n\n // 64-char hex pubkey → DM directly.\n if (/^[0-9a-f]{64}$/i.test(to)) {\n const sessionKeys = broker.getSessionKeys();\n const senderSecret = sessionKeys?.sessionSecretKey ?? meshSecretKey;\n const env = await encryptDirect(req.message, to, senderSecret);\n return { target_spec: to, ciphertext: env.ciphertext, nonce: env.nonce, mesh: meshSlug ?? \"\" };\n }\n\n // Hex prefix (16+ chars but <64) → resolve via peer list prefix match.\n // Matches the ergonomics of `claudemesh peer list` which shows 16-char\n // prefixes, so users naturally paste prefixes back.\n const peers = await broker.listPeers().catch(() => []);\n if (/^[0-9a-f]{16,63}$/i.test(to)) {\n const matches = peers.filter((p) =>\n p.pubkey.toLowerCase().startsWith(to.toLowerCase()) ||\n (p.memberPubkey ?? \"\").toLowerCase().startsWith(to.toLowerCase()),\n );\n if (matches.length === 0) throw new Error(`no peer matching prefix \"${to}\"`);\n if (matches.length > 1) throw new Error(`prefix \"${to}\" is ambiguous (${matches.length} matches)`);\n const recipient = matches[0]!.pubkey;\n const sessionKeys = broker.getSessionKeys();\n const senderSecret = sessionKeys?.sessionSecretKey ?? meshSecretKey;\n const env = await encryptDirect(req.message, recipient, senderSecret);\n return { target_spec: recipient, ciphertext: env.ciphertext, nonce: env.nonce, mesh: meshSlug ?? \"\" };\n }\n\n // Otherwise — display name.\n const match = peers.find((p) => p.displayName.toLowerCase() === to.toLowerCase());\n if (!match) throw new Error(`peer \"${to}\" not found`);\n const recipient = match.pubkey;\n const sessionKeys = broker.getSessionKeys();\n const senderSecret = sessionKeys?.sessionSecretKey ?? meshSecretKey;\n const env = await encryptDirect(req.message, recipient, senderSecret);\n return { target_spec: recipient, ciphertext: env.ciphertext, nonce: env.nonce, mesh: meshSlug ?? \"\" };\n}\n\nfunction respond(res: ServerResponse, status: number, body: unknown) {\n const json = JSON.stringify(body);\n res.statusCode = status;\n res.setHeader(\"Content-Type\", \"application/json\");\n res.setHeader(\"Content-Length\", Buffer.byteLength(json));\n res.end(json);\n}\n",
121
+ "/**\n * In-memory per-token session registry kept by the daemon.\n *\n * `claudemesh launch` POSTs `/v1/sessions/register` with the token it\n * minted plus session metadata (sessionId, mesh, displayName, pid,\n * cwd, role, groups). Subsequent CLI invocations from inside that\n * session present the token via `Authorization: ClaudeMesh-Session\n * <hex>` and the daemon's IPC auth middleware resolves it here in O(1).\n *\n * Lifecycle:\n * - register replaces any prior entry under the same `sessionId`\n * (handles re-launch and `--resume` flows cleanly).\n * - reaper polls every 30 s and drops entries whose pid is dead.\n * - hard ttl ceiling of 24 h is a leak guard for forgotten sessions.\n *\n * Persistence: in-memory only for v1. A daemon restart clears the\n * registry — every launched session needs to re-register. That's fine\n * for now because launch.ts re-registers on `ensureDaemonRunning`'s\n * success path, and most ad-hoc CLI invocations from outside a launched\n * session have no token to begin with.\n */\n\nexport interface SessionInfo {\n token: string;\n sessionId: string;\n mesh: string;\n displayName: string;\n pid: number;\n cwd?: string;\n role?: string;\n groups?: string[];\n registeredAt: number;\n}\n\nconst TTL_MS = 24 * 60 * 60 * 1000;\nconst REAPER_INTERVAL_MS = 30 * 1000;\n\nconst byToken = new Map<string, SessionInfo>();\nconst bySessionId = new Map<string, string>();\n\nlet reaperHandle: NodeJS.Timeout | null = null;\n\nexport function startReaper(): void {\n if (reaperHandle) return;\n reaperHandle = setInterval(reapDead, REAPER_INTERVAL_MS).unref?.() ?? reaperHandle;\n}\n\nexport function stopReaper(): void {\n if (reaperHandle) { clearInterval(reaperHandle); reaperHandle = null; }\n}\n\nexport function registerSession(info: Omit<SessionInfo, \"registeredAt\">): SessionInfo {\n // Replace any prior entry under the same sessionId.\n const priorToken = bySessionId.get(info.sessionId);\n if (priorToken && priorToken !== info.token) byToken.delete(priorToken);\n\n const stored: SessionInfo = { ...info, registeredAt: Date.now() };\n byToken.set(info.token, stored);\n bySessionId.set(info.sessionId, info.token);\n return stored;\n}\n\nexport function deregisterByToken(token: string): boolean {\n const entry = byToken.get(token);\n if (!entry) return false;\n byToken.delete(token);\n if (bySessionId.get(entry.sessionId) === token) bySessionId.delete(entry.sessionId);\n return true;\n}\n\nexport function resolveToken(token: string): SessionInfo | null {\n const entry = byToken.get(token);\n if (!entry) return null;\n if (Date.now() - entry.registeredAt > TTL_MS) {\n deregisterByToken(token);\n return null;\n }\n return entry;\n}\n\nexport function listSessions(): SessionInfo[] {\n return [...byToken.values()];\n}\n\nfunction reapDead(): void {\n const dead: string[] = [];\n for (const [token, info] of byToken.entries()) {\n if (Date.now() - info.registeredAt > TTL_MS) { dead.push(token); continue; }\n try { process.kill(info.pid, 0); } catch { dead.push(token); }\n }\n for (const t of dead) deregisterByToken(t);\n}\n\n/** Test helper. */\nexport function _resetRegistry(): void {\n byToken.clear();\n bySessionId.clear();\n}\n",
122
+ "import { createServer, type IncomingMessage, type Server, type ServerResponse } from \"node:http\";\nimport { chmodSync, existsSync, unlinkSync } from \"node:fs\";\nimport { timingSafeEqual } from \"node:crypto\";\n\nimport { DAEMON_PATHS, DAEMON_TCP_HOST, DAEMON_TCP_DEFAULT_PORT } from \"../paths.js\";\nimport type { SqliteDb } from \"../db/sqlite.js\";\nimport { acceptSend, type SendRequest } from \"./handlers/send.js\";\nimport { listInbox } from \"../db/inbox.js\";\nimport { listOutbox, requeueDeadOrPending, type OutboxStatus } from \"../db/outbox.js\";\nimport { randomUUID } from \"node:crypto\";\nimport { bindSseStream, type EventBus } from \"../events.js\";\nimport type { DaemonBrokerClient } from \"../broker.js\";\nimport {\n registerSession, deregisterByToken, resolveToken, listSessions, startReaper,\n type SessionInfo,\n} from \"../session-registry.js\";\nimport { VERSION } from \"~/constants/urls.js\";\n\n/**\n * Per spec §3.3:\n * - UDS reaches via filesystem perms (0600): no bearer required.\n * - TCP loopback + SSE require `Authorization: Bearer <local_token>`.\n * - Token in query string returns 400 + security log.\n * - Host header must be localhost / 127.0.0.1 / [::1] / empty.\n * - All endpoints auth-required by default; `/v1/health` opt-in public.\n *\n * v0.9.0 surface: /v1/version, /v1/health (auth-required), more added later.\n */\nexport interface IpcServerOptions {\n localToken: string;\n /** Bind a TCP loopback listener too (default true; container default is UDS-only). */\n tcpEnabled?: boolean;\n /** Override the default TCP port. */\n tcpPort?: number;\n /** Make /v1/health reachable without a token (k8s probe scenario). */\n publicHealthCheck?: boolean;\n /** Optional logger. Falls back to console.error for warnings/security events. */\n log?: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n /** Outbox database handle for /v1/send. */\n outboxDb?: SqliteDb;\n /** Inbox database handle for /v1/inbox. */\n inboxDb?: SqliteDb;\n /** Event bus backing /v1/events SSE stream. */\n bus?: EventBus;\n /** v1.26.0: per-mesh broker map for peers/skills/profile passthrough. */\n brokers?: Map<string, DaemonBrokerClient>;\n /** v1.26.0: per-mesh JoinedMesh entries (carry pubkey + secretKey for crypto). */\n meshConfigs?: Map<string, { slug: string; pubkey: string; secretKey: string }>;\n /** Notify when a new outbox row was inserted (drains can wake). */\n onPendingInserted?: () => void;\n}\n\nexport interface IpcServerHandle {\n uds: Server;\n tcp: Server | null;\n /** Resolves once both listeners are live. */\n ready: Promise<void>;\n close: () => Promise<void>;\n}\n\nexport function startIpcServer(opts: IpcServerOptions): IpcServerHandle {\n const log = opts.log ?? defaultLogger;\n\n const handler = makeHandler({\n localToken: opts.localToken,\n publicHealthCheck: !!opts.publicHealthCheck,\n log,\n outboxDb: opts.outboxDb,\n inboxDb: opts.inboxDb,\n bus: opts.bus,\n brokers: opts.brokers,\n meshConfigs: opts.meshConfigs,\n onPendingInserted: opts.onPendingInserted,\n });\n\n // --- UDS listener -------------------------------------------------------\n if (existsSync(DAEMON_PATHS.SOCK_FILE)) {\n // Possible stale socket from a previous crashed daemon. We hold the\n // singleton lock by the time we reach here, so it's safe to remove.\n try { unlinkSync(DAEMON_PATHS.SOCK_FILE); } catch { /* ignore */ }\n }\n const uds = createServer(handler);\n const udsReady = new Promise<void>((resolve, reject) => {\n uds.once(\"error\", reject);\n uds.listen(DAEMON_PATHS.SOCK_FILE, () => {\n // Restrict the socket file itself; node creates it 0755 by default.\n try { chmodSync(DAEMON_PATHS.SOCK_FILE, 0o600); }\n catch (err) { log(\"warn\", \"uds_chmod_failed\", { err: String(err) }); }\n resolve();\n });\n });\n\n // --- TCP listener (optional, off in container defaults) ----------------\n let tcp: Server | null = null;\n let tcpReady: Promise<void> = Promise.resolve();\n if (opts.tcpEnabled !== false) {\n tcp = createServer(handler);\n tcpReady = new Promise<void>((resolve, reject) => {\n tcp!.once(\"error\", reject);\n tcp!.listen(opts.tcpPort ?? DAEMON_TCP_DEFAULT_PORT, DAEMON_TCP_HOST, () => resolve());\n });\n }\n\n return {\n uds,\n tcp,\n ready: Promise.all([udsReady, tcpReady]).then(() => undefined),\n close: async () => {\n await Promise.allSettled([\n new Promise<void>((res) => uds.close(() => res())),\n tcp ? new Promise<void>((res) => tcp!.close(() => res())) : Promise.resolve(),\n ]);\n try { unlinkSync(DAEMON_PATHS.SOCK_FILE); } catch { /* ignore */ }\n },\n };\n}\n\nfunction defaultLogger(level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) {\n const line = JSON.stringify({ level, msg, ...meta, ts: new Date().toISOString() });\n if (level === \"info\") process.stdout.write(line + \"\\n\");\n else process.stderr.write(line + \"\\n\");\n}\n\nfunction makeHandler(opts: {\n localToken: string;\n publicHealthCheck: boolean;\n log: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n outboxDb?: SqliteDb;\n inboxDb?: SqliteDb;\n bus?: EventBus;\n brokers?: Map<string, DaemonBrokerClient>;\n meshConfigs?: Map<string, { slug: string; pubkey: string; secretKey: string }>;\n onPendingInserted?: () => void;\n}) {\n const tokenBytes = Buffer.from(opts.localToken, \"utf8\");\n\n return async (req: IncomingMessage, res: ServerResponse) => {\n const url = new URL(req.url ?? \"/\", \"http://daemon.local\");\n\n // Token in query string → security event + 400.\n if (url.searchParams.has(\"token\")) {\n opts.log(\"warn\", \"ipc_token_in_query_string_rejected\", { path: url.pathname });\n respond(res, 400, { error: \"token must be in Authorization header, not query string\" });\n return;\n }\n\n // Host header check — only the loopback names allowed.\n const host = (req.headers.host ?? \"\").toLowerCase().split(\":\")[0]?.trim() ?? \"\";\n if (host && host !== \"localhost\" && host !== \"127.0.0.1\" && host !== \"[::1]\" && host !== \"::1\") {\n respond(res, 403, { error: \"forbidden host\" });\n return;\n }\n\n // Origin allowlist — empty by default (no browsers should hit this).\n if (req.headers.origin) {\n respond(res, 403, { error: \"forbidden origin\" });\n return;\n }\n\n // Authentication. UDS connections (over unix socket) skip the bearer\n // check because filesystem perms gate access; TCP requires it.\n const isUds = (req.socket as { remoteAddress?: string }).remoteAddress === undefined;\n const isPublicHealth = opts.publicHealthCheck && url.pathname === \"/v1/health\";\n if (!isUds && !isPublicHealth) {\n const authz = req.headers.authorization ?? \"\";\n const m = /^Bearer\\s+(.+)$/.exec(authz.trim());\n if (!m || !m[1]) {\n respond(res, 401, { error: \"missing bearer token\" });\n return;\n }\n const provided = Buffer.from(m[1], \"utf8\");\n if (provided.length !== tokenBytes.length || !timingSafeEqual(provided, tokenBytes)) {\n opts.log(\"warn\", \"ipc_bearer_mismatch\", { path: url.pathname });\n respond(res, 401, { error: \"invalid bearer token\" });\n return;\n }\n }\n\n // Per-session token resolution. Layers on top of the machine-level\n // local-token auth above: callers from inside a `claudemesh launch`-\n // spawned session pass `Authorization: ClaudeMesh-Session <hex>`\n // (instead of, or in addition to, Bearer over TCP) and we resolve\n // it to a SessionInfo that downstream routes use for default-mesh\n // scoping and attribution.\n let session: SessionInfo | null = null;\n {\n const authz = req.headers.authorization ?? \"\";\n const sm = /^ClaudeMesh-Session\\s+([0-9a-f]{64})$/i.exec(authz.trim());\n if (sm && sm[1]) session = resolveToken(sm[1].toLowerCase());\n }\n /** Pick mesh from explicit body/query first, then session default. */\n const meshFromCtx = (explicit?: string | null): string | null =>\n (explicit && explicit.trim()) ? explicit : (session?.mesh ?? null);\n\n // Routing.\n if (req.method === \"GET\" && url.pathname === \"/v1/version\") {\n respond(res, 200, {\n daemon_version: VERSION,\n ipc_api: \"v1\",\n ipc_features: [\"version\", \"health\", \"send\", \"inbox\", \"events\", \"peers\", \"profile\", \"skills\", \"state\", \"memory\", \"sessions\"],\n schema_version: 1,\n });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/health\") {\n respond(res, 200, { ok: true, pid: process.pid });\n return;\n }\n\n // Session registry routes (1.29.0)\n if (req.method === \"POST\" && url.pathname === \"/v1/sessions/register\") {\n try {\n const body = await readJsonBody(req, 64 * 1024) as Record<string, unknown> | null;\n if (!body) { respond(res, 400, { error: \"missing body\" }); return; }\n const token = typeof body.token === \"string\" ? body.token : \"\";\n if (!/^[0-9a-f]{64}$/i.test(token)) { respond(res, 400, { error: \"token must be 64 hex chars\" }); return; }\n const sessionId = typeof body.session_id === \"string\" ? body.session_id : \"\";\n const mesh = typeof body.mesh === \"string\" ? body.mesh : \"\";\n const displayName = typeof body.display_name === \"string\" ? body.display_name : \"\";\n const pid = typeof body.pid === \"number\" ? body.pid : 0;\n if (!sessionId || !mesh || !displayName || !pid) {\n respond(res, 400, { error: \"session_id, mesh, display_name, pid all required\" });\n return;\n }\n const cwd = typeof body.cwd === \"string\" ? body.cwd : undefined;\n const role = typeof body.role === \"string\" ? body.role : undefined;\n const groups = Array.isArray(body.groups)\n ? body.groups.filter((g): g is string => typeof g === \"string\")\n : undefined;\n const stored = registerSession({\n token: token.toLowerCase(),\n sessionId, mesh, displayName, pid, cwd, role, groups,\n });\n opts.log(\"info\", \"session_registered\", { sessionId, mesh, pid });\n respond(res, 200, { ok: true, registered_at: stored.registeredAt });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"DELETE\" && url.pathname.startsWith(\"/v1/sessions/\")) {\n const tail = url.pathname.slice(\"/v1/sessions/\".length);\n if (!/^[0-9a-f]{64}$/i.test(tail)) { respond(res, 400, { error: \"invalid token\" }); return; }\n const ok = deregisterByToken(tail.toLowerCase());\n respond(res, ok ? 200 : 404, { ok, token_prefix: tail.slice(0, 8) });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/sessions/me\") {\n if (!session) { respond(res, 401, { error: \"no session token\" }); return; }\n const { token, ...redacted } = session;\n respond(res, 200, { session: { ...redacted, token_prefix: token.slice(0, 8) } });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/sessions\") {\n const all = listSessions().map(({ token, ...rest }) => ({ ...rest, token_prefix: token.slice(0, 8) }));\n respond(res, 200, { sessions: all });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/events\") {\n if (!opts.bus) {\n respond(res, 503, { error: \"event bus not initialised\" });\n return;\n }\n bindSseStream(res, opts.bus);\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/peers\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const filterMesh = meshFromCtx(url.searchParams.get(\"mesh\")) ?? undefined;\n try {\n // Aggregate across all attached meshes; each peer record gets a\n // `mesh` field so the caller can scope client-side. A single\n // ?mesh=<slug> filter narrows the set server-side.\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n try {\n const peers = await b.listPeers();\n for (const p of peers) all.push({ ...(p as Record<string, unknown>), mesh: slug });\n } catch (e) {\n opts.log(\"warn\", \"ipc_peers_broker_failed\", { mesh: slug, err: String(e) });\n }\n }\n respond(res, 200, { peers: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/state\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const filterMesh = meshFromCtx(url.searchParams.get(\"mesh\")) ?? undefined;\n const key = url.searchParams.get(\"key\");\n try {\n if (key) {\n // Single key lookup. Walk attached meshes; first match wins\n // (or ?mesh=<slug> scopes the search).\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const row = await b.getState(key).catch(() => null);\n if (row) { respond(res, 200, { state: { ...row, mesh: slug } }); return; }\n }\n respond(res, 404, { error: \"state_not_found\", key });\n return;\n }\n // No key — list all entries across attached meshes.\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const rows = await b.listState().catch(() => []);\n for (const r of rows) all.push({ ...(r as unknown as Record<string, unknown>), mesh: slug });\n }\n respond(res, 200, { entries: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/state\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 256 * 1024) as Record<string, unknown> | null;\n if (!body || typeof body.key !== \"string\") {\n respond(res, 400, { error: \"missing 'key' (string)\" });\n return;\n }\n const requested = meshFromCtx(typeof body.mesh === \"string\" ? body.mesh : null);\n let chosen = requested;\n if (!chosen && opts.brokers.size === 1) chosen = opts.brokers.keys().next().value as string;\n if (!chosen) {\n respond(res, 400, { error: \"mesh_required\", attached: [...opts.brokers.keys()] });\n return;\n }\n const broker = opts.brokers.get(chosen);\n if (!broker) { respond(res, 404, { error: \"mesh_not_attached\", mesh: chosen }); return; }\n broker.setState(body.key, body.value);\n respond(res, 200, { ok: true, key: body.key, mesh: chosen });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/memory\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const query = url.searchParams.get(\"q\") ?? \"\";\n const filterMesh = meshFromCtx(url.searchParams.get(\"mesh\")) ?? undefined;\n try {\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const rows = await b.recall(query).catch(() => []);\n for (const r of rows) all.push({ ...(r as unknown as Record<string, unknown>), mesh: slug });\n }\n respond(res, 200, { matches: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/memory\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 256 * 1024) as Record<string, unknown> | null;\n if (!body || typeof body.content !== \"string\") {\n respond(res, 400, { error: \"missing 'content' (string)\" });\n return;\n }\n const requested = meshFromCtx(typeof body.mesh === \"string\" ? body.mesh : null);\n let chosen = requested;\n if (!chosen && opts.brokers.size === 1) chosen = opts.brokers.keys().next().value as string;\n if (!chosen) {\n respond(res, 400, { error: \"mesh_required\", attached: [...opts.brokers.keys()] });\n return;\n }\n const broker = opts.brokers.get(chosen);\n if (!broker) { respond(res, 404, { error: \"mesh_not_attached\", mesh: chosen }); return; }\n const tags = Array.isArray(body.tags) ? body.tags.filter((t) => typeof t === \"string\") as string[] : undefined;\n const id = await broker.remember(body.content, tags);\n if (!id) { respond(res, 502, { error: \"remember_timeout\" }); return; }\n respond(res, 200, { id, mesh: chosen });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"DELETE\" && url.pathname.startsWith(\"/v1/memory/\")) {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const id = decodeURIComponent(url.pathname.slice(\"/v1/memory/\".length));\n if (!id) { respond(res, 400, { error: \"missing memory id\" }); return; }\n const requested = url.searchParams.get(\"mesh\");\n let chosen = requested;\n if (!chosen && opts.brokers.size === 1) chosen = opts.brokers.keys().next().value as string;\n if (!chosen) {\n respond(res, 400, { error: \"mesh_required\", attached: [...opts.brokers.keys()] });\n return;\n }\n const broker = opts.brokers.get(chosen);\n if (!broker) { respond(res, 404, { error: \"mesh_not_attached\", mesh: chosen }); return; }\n broker.forget(id);\n respond(res, 200, { ok: true, id, mesh: chosen });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/skills\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const query = url.searchParams.get(\"query\") ?? undefined;\n const filterMesh = meshFromCtx(url.searchParams.get(\"mesh\")) ?? undefined;\n try {\n const all: Array<Record<string, unknown> & { mesh: string }> = [];\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n try {\n const skills = await b.listSkills(query);\n for (const s of skills) all.push({ ...(s as Record<string, unknown>), mesh: slug });\n } catch (e) {\n opts.log(\"warn\", \"ipc_skills_broker_failed\", { mesh: slug, err: String(e) });\n }\n }\n respond(res, 200, { skills: all });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname.startsWith(\"/v1/skills/\")) {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n const name = decodeURIComponent(url.pathname.slice(\"/v1/skills/\".length));\n if (!name) { respond(res, 400, { error: \"missing skill name\" }); return; }\n const filterMesh = meshFromCtx(url.searchParams.get(\"mesh\")) ?? undefined;\n try {\n // First mesh that has the skill wins. With ?mesh=<slug>, only that\n // mesh is queried.\n for (const [slug, b] of opts.brokers.entries()) {\n if (filterMesh && filterMesh !== slug) continue;\n const skill = await b.getSkill(name).catch(() => null);\n if (skill) { respond(res, 200, { skill: { ...skill, mesh: slug } }); return; }\n }\n respond(res, 404, { error: \"skill_not_found\", name });\n } catch (e) {\n respond(res, 502, { error: \"broker_unreachable\", detail: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/profile\") {\n if (!opts.brokers || opts.brokers.size === 0) {\n respond(res, 503, { error: \"broker not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 16 * 1024) as Record<string, unknown> | null;\n if (!body) { respond(res, 400, { error: \"expected JSON object\" }); return; }\n // v1.26.0: profile updates apply to a specific mesh if `mesh` is\n // present in the body or query, otherwise broadcast to all attached\n // meshes (presence is per-mesh, but most users want consistent\n // presence across all of theirs).\n const requested = meshFromCtx(typeof body.mesh === \"string\" ? body.mesh : url.searchParams.get(\"mesh\"));\n const targets = requested\n ? [opts.brokers.get(requested)].filter(Boolean) as DaemonBrokerClient[]\n : [...opts.brokers.values()];\n if (targets.length === 0) { respond(res, 404, { error: \"mesh_not_attached\", mesh: requested }); return; }\n const updates: Record<string, unknown> = {};\n for (const b of targets) {\n if (typeof body.summary === \"string\") b.setSummary(body.summary);\n if (body.status === \"idle\" || body.status === \"working\" || body.status === \"dnd\") b.setStatus(body.status);\n if (typeof body.visible === \"boolean\") b.setVisible(body.visible);\n const profile: { avatar?: string; title?: string; bio?: string; capabilities?: string[] } = {};\n if (typeof body.avatar === \"string\") profile.avatar = body.avatar;\n if (typeof body.title === \"string\") profile.title = body.title;\n if (typeof body.bio === \"string\") profile.bio = body.bio;\n if (Array.isArray(body.capabilities)) profile.capabilities = body.capabilities.filter((c) => typeof c === \"string\") as string[];\n if (Object.keys(profile).length > 0) b.setProfile(profile);\n }\n Object.assign(updates, body);\n respond(res, 200, { ok: true, applied: Object.keys(updates), meshes: requested ? [requested] : [...opts.brokers.keys()] });\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/inbox\") {\n if (!opts.inboxDb) {\n respond(res, 503, { error: \"inbox not initialised\" });\n return;\n }\n const sinceRaw = url.searchParams.get(\"since\");\n const since = sinceRaw ? Date.parse(sinceRaw) : undefined;\n const topic = url.searchParams.get(\"topic\") ?? undefined;\n const fromPubkey = url.searchParams.get(\"from\") ?? undefined;\n const limitRaw = url.searchParams.get(\"limit\");\n const limit = limitRaw ? Number.parseInt(limitRaw, 10) : undefined;\n const rows = listInbox(opts.inboxDb, {\n since: Number.isFinite(since) ? since : undefined,\n topic,\n fromPubkey,\n limit: Number.isFinite(limit ?? NaN) ? limit : undefined,\n });\n respond(res, 200, {\n items: rows.map((r) => ({\n id: r.id,\n client_message_id: r.client_message_id,\n broker_message_id: r.broker_message_id,\n mesh: r.mesh,\n topic: r.topic,\n sender_pubkey: r.sender_pubkey,\n sender_name: r.sender_name,\n body: r.body,\n received_at: new Date(r.received_at).toISOString(),\n reply_to_id: r.reply_to_id,\n })),\n });\n return;\n }\n\n if (req.method === \"GET\" && url.pathname === \"/v1/outbox\") {\n if (!opts.outboxDb) { respond(res, 503, { error: \"outbox not initialised\" }); return; }\n const statusParam = url.searchParams.get(\"status\") ?? undefined;\n const allowed: OutboxStatus[] = [\"pending\",\"inflight\",\"done\",\"dead\",\"aborted\"];\n const status = (statusParam && (allowed as string[]).includes(statusParam))\n ? statusParam as OutboxStatus\n : undefined;\n const limitRaw = url.searchParams.get(\"limit\");\n const limit = limitRaw ? Number.parseInt(limitRaw, 10) : undefined;\n const rows = listOutbox(opts.outboxDb, {\n status,\n limit: Number.isFinite(limit ?? NaN) ? limit : undefined,\n });\n respond(res, 200, {\n items: rows.map((r) => ({\n id: r.id,\n client_message_id: r.client_message_id,\n status: r.status,\n attempts: r.attempts,\n enqueued_at: new Date(r.enqueued_at).toISOString(),\n next_attempt_at: new Date(r.next_attempt_at).toISOString(),\n delivered_at: r.delivered_at ? new Date(r.delivered_at).toISOString() : null,\n broker_message_id: r.broker_message_id,\n last_error: r.last_error,\n aborted_at: r.aborted_at ? new Date(r.aborted_at).toISOString() : null,\n aborted_by: r.aborted_by,\n superseded_by: r.superseded_by,\n payload_bytes: r.payload?.byteLength ?? 0,\n })),\n });\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/outbox/requeue\") {\n if (!opts.outboxDb) { respond(res, 503, { error: \"outbox not initialised\" }); return; }\n try {\n const body = await readJsonBody(req, 4 * 1024) as Record<string, unknown> | null;\n if (!body || typeof body.id !== \"string\") { respond(res, 400, { error: \"missing 'id'\" }); return; }\n const newId = typeof body.new_client_message_id === \"string\" && body.new_client_message_id.trim()\n ? body.new_client_message_id.trim()\n : randomUUID();\n const result = requeueDeadOrPending(opts.outboxDb, {\n id: body.id,\n newClientMessageId: newId,\n newRowId: randomUUID(),\n now: Date.now(),\n abortedBy: typeof body.aborted_by === \"string\" ? body.aborted_by : \"operator\",\n });\n if (!result) {\n respond(res, 409, { error: \"row not found, already aborted, or already done\" });\n return;\n }\n respond(res, 200, {\n aborted_row_id: result.abortedRowId,\n new_row_id: result.newRowId,\n new_client_message_id: result.newClientMessageId,\n });\n opts.onPendingInserted?.();\n } catch (e) {\n respond(res, 400, { error: String(e) });\n }\n return;\n }\n\n if (req.method === \"POST\" && url.pathname === \"/v1/send\") {\n if (!opts.outboxDb) {\n respond(res, 503, { error: \"outbox not initialised\" });\n return;\n }\n try {\n const body = await readJsonBody(req, 256 * 1024);\n const parsed = parseSendRequest(body, req.headers[\"idempotency-key\"]);\n if (\"error\" in parsed) {\n respond(res, 400, { error: parsed.error });\n return;\n }\n // v1.26.0: pick the mesh. Order of preference:\n // 1. Explicit `mesh` field in body\n // 2. Single attached mesh — auto-pick\n // 3. Bail with 400 — caller must disambiguate\n if (opts.brokers && opts.brokers.size > 0 && opts.meshConfigs) {\n let chosenSlug: string | null = parsed.req.mesh ?? null;\n if (!chosenSlug && opts.brokers.size === 1) {\n chosenSlug = opts.brokers.keys().next().value as string;\n }\n if (!chosenSlug) {\n respond(res, 400, {\n error: \"mesh_required\",\n detail: `daemon attached to ${opts.brokers.size} meshes; pass 'mesh' in request body`,\n attached: [...opts.brokers.keys()],\n });\n return;\n }\n const broker = opts.brokers.get(chosenSlug);\n const meshCfg = opts.meshConfigs.get(chosenSlug);\n if (!broker || !meshCfg) {\n respond(res, 404, { error: \"mesh_not_attached\", mesh: chosenSlug });\n return;\n }\n try {\n const routed = await resolveAndEncrypt(parsed.req, broker, meshCfg.secretKey, chosenSlug);\n parsed.req.target_spec = routed.target_spec;\n parsed.req.ciphertext = routed.ciphertext;\n parsed.req.nonce = routed.nonce;\n parsed.req.mesh = routed.mesh;\n } catch (e) {\n respond(res, 502, { error: \"route_failed\", detail: String(e) });\n return;\n }\n }\n const outcome = acceptSend(parsed.req, { db: opts.outboxDb });\n switch (outcome.kind) {\n case \"accepted_pending\":\n respond(res, outcome.status, {\n client_message_id: outcome.client_message_id,\n status: \"queued\",\n });\n opts.onPendingInserted?.();\n return;\n case \"accepted_inflight\":\n respond(res, outcome.status, {\n client_message_id: outcome.client_message_id,\n status: \"inflight\",\n });\n return;\n case \"accepted_done\":\n respond(res, outcome.status, {\n client_message_id: outcome.client_message_id,\n broker_message_id: outcome.broker_message_id,\n duplicate: true,\n });\n return;\n case \"conflict\":\n respond(res, outcome.status, {\n error: \"idempotency_key_reused\",\n conflict: outcome.reason,\n daemon_fingerprint_prefix: outcome.daemon_fingerprint_prefix,\n broker_message_id: outcome.broker_message_id ?? null,\n });\n return;\n }\n } catch (err) {\n opts.log(\"error\", \"ipc_send_failed\", { err: String(err) });\n respond(res, 500, { error: \"internal\" });\n return;\n }\n }\n\n respond(res, 404, { error: \"not found\" });\n };\n}\n\nasync function readJsonBody(req: IncomingMessage, maxBytes: number): Promise<unknown> {\n const chunks: Buffer[] = [];\n let total = 0;\n for await (const chunk of req) {\n const buf = chunk as Buffer;\n total += buf.length;\n if (total > maxBytes) throw new Error(\"payload_too_large\");\n chunks.push(buf);\n }\n if (total === 0) return null;\n const text = Buffer.concat(chunks).toString(\"utf8\");\n try { return JSON.parse(text); }\n catch { throw new Error(\"invalid_json\"); }\n}\n\ninterface ParsedSend { req: SendRequest }\ninterface ParseError { error: string }\n\nfunction parseSendRequest(body: unknown, idempotencyHeader: string | string[] | undefined): ParsedSend | ParseError {\n if (!body || typeof body !== \"object\") return { error: \"expected JSON object\" };\n const b = body as Record<string, unknown>;\n\n const to = typeof b.to === \"string\" ? b.to.trim() : \"\";\n const message = typeof b.message === \"string\" ? b.message : \"\";\n if (!to) return { error: \"missing 'to'\" };\n if (!message) return { error: \"missing 'message'\" };\n\n const priority = b.priority;\n if (priority !== undefined && priority !== \"now\" && priority !== \"next\" && priority !== \"low\") {\n return { error: \"priority must be 'now' | 'next' | 'low'\" };\n }\n\n const meta = b.meta;\n if (meta !== undefined && meta !== null && (typeof meta !== \"object\" || Array.isArray(meta))) {\n return { error: \"'meta' must be an object\" };\n }\n\n // Resolve destination_kind / destination_ref from the `to` shape.\n // For v0.9.0 we accept three forms:\n // \"@<topic>\" → topic\n // \"*\" → broadcast (modeled as topic *)\n // anything else → dm to peer name|pubkey (resolution happens later)\n let destination_kind: SendRequest[\"destination_kind\"];\n let destination_ref: string;\n if (to.startsWith(\"@\")) {\n destination_kind = \"topic\";\n destination_ref = to.slice(1);\n } else if (to === \"*\") {\n destination_kind = \"topic\";\n destination_ref = \"*\";\n } else {\n destination_kind = \"dm\";\n destination_ref = to;\n }\n\n const headerId = Array.isArray(idempotencyHeader) ? idempotencyHeader[0] : idempotencyHeader;\n const client_message_id = typeof b.client_message_id === \"string\" && b.client_message_id.trim()\n ? b.client_message_id.trim()\n : (typeof headerId === \"string\" && headerId.trim() ? headerId.trim() : undefined);\n\n const reply_to_id = typeof b.reply_to_id === \"string\" ? b.reply_to_id : undefined;\n\n const mesh = typeof b.mesh === \"string\" ? b.mesh.trim() : undefined;\n\n return {\n req: {\n to,\n message,\n priority: priority as SendRequest[\"priority\"] | undefined,\n meta: (meta as Record<string, unknown> | undefined) ?? undefined,\n reply_to_id,\n client_message_id,\n destination_kind,\n destination_ref,\n mesh,\n },\n };\n}\n\n/**\n * Sprint 4: resolve a user-friendly `to` (peer name, pubkey hex, @group, *,\n * topic name, \"#topicId\") into a broker-format target_spec, and encrypt\n * the plaintext payload appropriately for the destination kind.\n *\n * - DM by 64-char hex pubkey: target_spec = pubkey hex, ciphertext via\n * crypto_box (recipient pubkey + sender session secret).\n * - DM by display name: resolve via broker.listPeers, then same as above.\n * - Group / broadcast / topic: target_spec = `@<group>` / `*` / `#<topicId>`,\n * ciphertext = base64(plaintext) [matches the cold path's pre-encryption\n * convention until topic crypto lands].\n */\nasync function resolveAndEncrypt(\n req: SendRequest,\n broker: DaemonBrokerClient,\n meshSecretKey: string,\n meshSlug: string | null,\n): Promise<{ target_spec: string; ciphertext: string; nonce: string; mesh: string }> {\n const { encryptDirect } = await import(\"~/services/crypto/box.js\");\n const { randomBytes } = await import(\"node:crypto\");\n const to = req.to.trim();\n\n // Topic by id (\"#<topicId>\") — hex-like 20+ chars.\n if (to.startsWith(\"#\") && /^#[0-9a-z_-]{20,}$/i.test(to)) {\n const ciphertext = Buffer.from(req.message, \"utf8\").toString(\"base64\");\n const nonce = randomBytes(24).toString(\"base64\");\n return { target_spec: to, ciphertext, nonce, mesh: meshSlug ?? \"\" };\n }\n\n // Group, broadcast — pass through. (Topic-by-name resolution happens\n // when the daemon hooks topic_list later; not required for v1.25.0.)\n if (to.startsWith(\"@\") || to === \"*\") {\n const ciphertext = Buffer.from(req.message, \"utf8\").toString(\"base64\");\n const nonce = randomBytes(24).toString(\"base64\");\n return { target_spec: to, ciphertext, nonce, mesh: meshSlug ?? \"\" };\n }\n\n // 64-char hex pubkey → DM directly.\n if (/^[0-9a-f]{64}$/i.test(to)) {\n const sessionKeys = broker.getSessionKeys();\n const senderSecret = sessionKeys?.sessionSecretKey ?? meshSecretKey;\n const env = await encryptDirect(req.message, to, senderSecret);\n return { target_spec: to, ciphertext: env.ciphertext, nonce: env.nonce, mesh: meshSlug ?? \"\" };\n }\n\n // Hex prefix (16+ chars but <64) → resolve via peer list prefix match.\n // Matches the ergonomics of `claudemesh peer list` which shows 16-char\n // prefixes, so users naturally paste prefixes back.\n const peers = await broker.listPeers().catch(() => []);\n if (/^[0-9a-f]{16,63}$/i.test(to)) {\n const matches = peers.filter((p) =>\n p.pubkey.toLowerCase().startsWith(to.toLowerCase()) ||\n (p.memberPubkey ?? \"\").toLowerCase().startsWith(to.toLowerCase()),\n );\n if (matches.length === 0) throw new Error(`no peer matching prefix \"${to}\"`);\n if (matches.length > 1) throw new Error(`prefix \"${to}\" is ambiguous (${matches.length} matches)`);\n const recipient = matches[0]!.pubkey;\n const sessionKeys = broker.getSessionKeys();\n const senderSecret = sessionKeys?.sessionSecretKey ?? meshSecretKey;\n const env = await encryptDirect(req.message, recipient, senderSecret);\n return { target_spec: recipient, ciphertext: env.ciphertext, nonce: env.nonce, mesh: meshSlug ?? \"\" };\n }\n\n // Otherwise — display name.\n const match = peers.find((p) => p.displayName.toLowerCase() === to.toLowerCase());\n if (!match) throw new Error(`peer \"${to}\" not found`);\n const recipient = match.pubkey;\n const sessionKeys = broker.getSessionKeys();\n const senderSecret = sessionKeys?.sessionSecretKey ?? meshSecretKey;\n const env = await encryptDirect(req.message, recipient, senderSecret);\n return { target_spec: recipient, ciphertext: env.ciphertext, nonce: env.nonce, mesh: meshSlug ?? \"\" };\n}\n\nfunction respond(res: ServerResponse, status: number, body: unknown) {\n const json = JSON.stringify(body);\n res.statusCode = status;\n res.setHeader(\"Content-Type\", \"application/json\");\n res.setHeader(\"Content-Length\", Buffer.byteLength(json));\n res.end(json);\n}\n",
121
123
  "// Minimal broker WS connector for the daemon. Reuses the existing CLI\n// hello-sign protocol so it speaks the wire current brokers understand.\n//\n// Differences from BrokerClient (services/broker/ws-client.ts):\n// - Slim: no in-memory pending-sends queue, no list_peers/state/topic\n// RPCs. The daemon's outbox is the source of truth.\n// - Wire envelope adds `client_message_id` (broker may ignore in legacy\n// mode; Sprint 7 promotes it to authoritative dedupe).\n// - Reconnect with exponential backoff, signaled to the drain worker.\n\nimport WebSocket from \"ws\";\n\nimport type { JoinedMesh } from \"~/services/config/facade.js\";\nimport { signHello } from \"~/services/broker/hello-sig.js\";\n\nexport type ConnStatus = \"connecting\" | \"open\" | \"closed\" | \"reconnecting\";\n\nexport interface BrokerSendArgs {\n /** Target as the broker expects it: peer name | pubkey | @group | * | topic. */\n targetSpec: string;\n priority: \"now\" | \"next\" | \"low\";\n nonce: string;\n ciphertext: string;\n /** Daemon-issued idempotency id. Echoed back by the broker for dedupe. */\n client_message_id: string;\n /** Sha256-32 fingerprint of the request, hex. Forwarded for Sprint 7 dedupe. */\n request_fingerprint_hex: string;\n}\n\nexport type BrokerSendResult =\n | { ok: true; messageId: string }\n | { ok: false; error: string; permanent: boolean };\n\ninterface PendingAck {\n resolve: (r: BrokerSendResult) => void;\n timer: NodeJS.Timeout;\n}\n\nexport interface PeerSummary {\n pubkey: string;\n memberPubkey?: string;\n displayName: string;\n status: string;\n summary: string | null;\n groups: Array<{ name: string; role?: string }>;\n sessionId: string;\n connectedAt: string;\n cwd?: string;\n hostname?: string;\n peerType?: string;\n channel?: string;\n}\n\ninterface PendingPeerList {\n resolve: (peers: PeerSummary[]) => void;\n timer: NodeJS.Timeout;\n}\n\nexport interface SkillSummary {\n name: string;\n description: string;\n tags: string[];\n author: string;\n createdAt: string;\n}\n\nexport interface SkillFull extends SkillSummary {\n instructions: string;\n manifest?: unknown;\n}\n\nexport interface StateRow {\n key: string;\n value: unknown;\n updatedBy: string;\n updatedAt: string;\n}\n\nexport interface MemoryRow {\n id: string;\n content: string;\n tags: string[];\n rememberedBy: string;\n rememberedAt: string;\n}\n\nconst HELLO_ACK_TIMEOUT_MS = 5_000;\nconst SEND_ACK_TIMEOUT_MS = 15_000;\nconst BACKOFF_CAPS_MS = [1_000, 2_000, 4_000, 8_000, 16_000, 30_000];\n\nexport interface DaemonBrokerOptions {\n displayName?: string;\n onStatusChange?: (s: ConnStatus) => void;\n onPush?: (msg: Record<string, unknown>) => void;\n log?: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n}\n\nexport class DaemonBrokerClient {\n private ws: WebSocket | null = null;\n private _status: ConnStatus = \"closed\";\n private closed = false;\n private reconnectAttempt = 0;\n private reconnectTimer: NodeJS.Timeout | null = null;\n private helloTimer: NodeJS.Timeout | null = null;\n private pendingAcks = new Map<string, PendingAck>();\n private peerListResolvers = new Map<string, PendingPeerList>();\n private skillListResolvers = new Map<string, { resolve: (rows: SkillSummary[]) => void; timer: NodeJS.Timeout }>();\n private skillDataResolvers = new Map<string, { resolve: (row: SkillFull | null) => void; timer: NodeJS.Timeout }>();\n private stateGetResolvers = new Map<string, { resolve: (row: StateRow | null) => void; timer: NodeJS.Timeout }>();\n private stateListResolvers = new Map<string, { resolve: (rows: StateRow[]) => void; timer: NodeJS.Timeout }>();\n private memoryStoreResolvers = new Map<string, { resolve: (id: string | null) => void; timer: NodeJS.Timeout }>();\n private memoryRecallResolvers = new Map<string, { resolve: (rows: MemoryRow[]) => void; timer: NodeJS.Timeout }>();\n private sessionPubkey: string | null = null;\n private sessionSecretKey: string | null = null;\n private opens: Array<() => void> = [];\n private reqCounter = 0;\n\n constructor(private mesh: JoinedMesh, private opts: DaemonBrokerOptions = {}) {}\n\n get status(): ConnStatus { return this._status; }\n get meshSlug(): string { return this.mesh.slug; }\n get meshId(): string { return this.mesh.meshId; }\n\n private log = (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => {\n (this.opts.log ?? defaultLog)(level, msg, { mesh: this.mesh.slug, ...meta });\n };\n\n private setConnStatus(s: ConnStatus) {\n if (this._status === s) return;\n this._status = s;\n this.opts.onStatusChange?.(s);\n }\n\n /** Open the WS, run the hello handshake, resolve once the broker accepts. */\n async connect(): Promise<void> {\n if (this.closed) throw new Error(\"client_closed\");\n if (this._status === \"connecting\" || this._status === \"open\") return;\n this.setConnStatus(\"connecting\");\n\n const ws = new WebSocket(this.mesh.brokerUrl);\n this.ws = ws;\n\n return new Promise<void>((resolve, reject) => {\n ws.on(\"open\", async () => {\n try {\n if (!this.sessionPubkey) {\n const { generateKeypair } = await import(\"~/services/crypto/facade.js\");\n const kp = await generateKeypair();\n this.sessionPubkey = kp.publicKey;\n this.sessionSecretKey = kp.secretKey;\n }\n const { timestamp, signature } = await signHello(\n this.mesh.meshId, this.mesh.memberId, this.mesh.pubkey, this.mesh.secretKey,\n );\n ws.send(JSON.stringify({\n type: \"hello\",\n meshId: this.mesh.meshId,\n memberId: this.mesh.memberId,\n pubkey: this.mesh.pubkey,\n sessionPubkey: this.sessionPubkey,\n displayName: this.opts.displayName,\n sessionId: `daemon-${process.pid}`,\n pid: process.pid,\n cwd: process.cwd(),\n hostname: require(\"node:os\").hostname(),\n peerType: \"ai\" as const,\n channel: \"claudemesh-daemon\",\n timestamp,\n signature,\n }));\n this.helloTimer = setTimeout(() => {\n this.log(\"warn\", \"broker_hello_ack_timeout\");\n try { ws.close(); } catch { /* ignore */ }\n reject(new Error(\"hello_ack_timeout\"));\n }, HELLO_ACK_TIMEOUT_MS);\n } catch (e) {\n reject(e instanceof Error ? e : new Error(String(e)));\n }\n });\n\n ws.on(\"message\", (raw) => {\n let msg: Record<string, unknown>;\n try { msg = JSON.parse(raw.toString()) as Record<string, unknown>; }\n catch { return; }\n\n if (msg.type === \"hello_ack\") {\n if (this.helloTimer) clearTimeout(this.helloTimer);\n this.helloTimer = null;\n this.setConnStatus(\"open\");\n this.reconnectAttempt = 0;\n // Flush deferred openers (drain worker, etc.)\n const queued = this.opens.slice();\n this.opens.length = 0;\n for (const fn of queued) { try { fn(); } catch (e) { this.log(\"warn\", \"open_handler_failed\", { err: String(e) }); } }\n resolve();\n return;\n }\n\n if (msg.type === \"ack\") {\n // Broker shape: { type: \"ack\", id, messageId, queued, error? }\n const id = String(msg.id ?? \"\");\n const ack = this.pendingAcks.get(id);\n if (ack) {\n this.pendingAcks.delete(id);\n clearTimeout(ack.timer);\n if (typeof msg.error === \"string\" && msg.error.length > 0) {\n ack.resolve({ ok: false, error: msg.error, permanent: classifyPermanent(msg.error) });\n } else {\n ack.resolve({ ok: true, messageId: String(msg.messageId ?? id) });\n }\n }\n return;\n }\n\n if (msg.type === \"peers_list\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.peerListResolvers.get(reqId);\n if (pending) {\n this.peerListResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve(Array.isArray(msg.peers) ? (msg.peers as PeerSummary[]) : []);\n }\n return;\n }\n\n if (msg.type === \"skill_list\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.skillListResolvers.get(reqId);\n if (pending) {\n this.skillListResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve(Array.isArray(msg.skills) ? (msg.skills as SkillSummary[]) : []);\n }\n return;\n }\n\n if (msg.type === \"skill_data\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.skillDataResolvers.get(reqId);\n if (pending) {\n this.skillDataResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve((msg.skill as SkillFull) ?? null);\n }\n return;\n }\n\n if (msg.type === \"state_value\" || msg.type === \"state_data\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.stateGetResolvers.get(reqId);\n if (pending) {\n this.stateGetResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve((msg.state ?? msg.row ?? null) as StateRow | null);\n }\n return;\n }\n\n if (msg.type === \"state_list\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.stateListResolvers.get(reqId);\n if (pending) {\n this.stateListResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve(Array.isArray(msg.entries) ? (msg.entries as StateRow[]) : []);\n }\n return;\n }\n\n if (msg.type === \"memory_stored\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.memoryStoreResolvers.get(reqId);\n if (pending) {\n this.memoryStoreResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve(typeof msg.memoryId === \"string\" ? msg.memoryId : null);\n }\n return;\n }\n\n if (msg.type === \"memory_recall_result\") {\n const reqId = String(msg._reqId ?? \"\");\n const pending = this.memoryRecallResolvers.get(reqId);\n if (pending) {\n this.memoryRecallResolvers.delete(reqId);\n clearTimeout(pending.timer);\n pending.resolve(Array.isArray(msg.matches) ? (msg.matches as MemoryRow[]) : []);\n }\n return;\n }\n\n if (msg.type === \"push\" || msg.type === \"inbound\") {\n this.opts.onPush?.(msg);\n return;\n }\n });\n\n ws.on(\"close\", (code, reason) => {\n if (this.helloTimer) { clearTimeout(this.helloTimer); this.helloTimer = null; }\n this.failPendingAcks(`broker_disconnected_${code}`);\n if (this.closed) { this.setConnStatus(\"closed\"); return; }\n this.setConnStatus(\"reconnecting\");\n const wait = BACKOFF_CAPS_MS[Math.min(this.reconnectAttempt, BACKOFF_CAPS_MS.length - 1)] ?? 30_000;\n this.reconnectAttempt++;\n this.log(\"info\", \"broker_reconnect_scheduled\", { wait_ms: wait, code, reason: reason.toString(\"utf8\") });\n this.reconnectTimer = setTimeout(() => this.connect().catch((err) => this.log(\"warn\", \"broker_reconnect_failed\", { err: String(err) })), wait);\n // First connection failure also rejects the original connect() promise.\n if (this._status === \"connecting\") reject(new Error(`closed_before_hello_${code}`));\n });\n\n ws.on(\"error\", (err) => this.log(\"warn\", \"broker_ws_error\", { err: err.message }));\n });\n }\n\n /** Send one outbox row. Resolves on broker ack/timeout. */\n send(req: BrokerSendArgs): Promise<BrokerSendResult> {\n return new Promise<BrokerSendResult>((resolve) => {\n const dispatch = () => {\n if (!this.ws || this.ws.readyState !== this.ws.OPEN) {\n resolve({ ok: false, error: \"broker_not_open\", permanent: false });\n return;\n }\n const id = req.client_message_id;\n const timer = setTimeout(() => {\n if (this.pendingAcks.delete(id)) {\n resolve({ ok: false, error: \"ack_timeout\", permanent: false });\n }\n }, SEND_ACK_TIMEOUT_MS);\n this.pendingAcks.set(id, { resolve, timer });\n try {\n this.ws.send(JSON.stringify({\n type: \"send\",\n id, // legacy correlation id\n client_message_id: id, // forward-compat per spec §4.2\n request_fingerprint: req.request_fingerprint_hex,\n targetSpec: req.targetSpec,\n priority: req.priority,\n nonce: req.nonce,\n ciphertext: req.ciphertext,\n }));\n } catch (e) {\n this.pendingAcks.delete(id);\n clearTimeout(timer);\n resolve({ ok: false, error: `ws_write_failed: ${String(e)}`, permanent: false });\n }\n };\n\n if (this._status === \"open\") dispatch();\n else this.opens.push(dispatch);\n });\n }\n\n /** Ask the broker for the current peer list. */\n async listPeers(timeoutMs = 5_000): Promise<PeerSummary[]> {\n if (this._status !== \"open\" || !this.ws) return [];\n return new Promise<PeerSummary[]>((resolve) => {\n const reqId = `pl-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.peerListResolvers.delete(reqId)) resolve([]);\n }, timeoutMs);\n this.peerListResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"list_peers\", _reqId: reqId })); }\n catch { this.peerListResolvers.delete(reqId); clearTimeout(timer); resolve([]); }\n });\n }\n\n /** List mesh-published skills. Empty array on disconnect / timeout. */\n async listSkills(query?: string, timeoutMs = 5_000): Promise<SkillSummary[]> {\n if (this._status !== \"open\" || !this.ws) return [];\n return new Promise<SkillSummary[]>((resolve) => {\n const reqId = `sl-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.skillListResolvers.delete(reqId)) resolve([]);\n }, timeoutMs);\n this.skillListResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"list_skills\", query, _reqId: reqId })); }\n catch { this.skillListResolvers.delete(reqId); clearTimeout(timer); resolve([]); }\n });\n }\n\n /** Fetch one skill's full body. Null on not-found / disconnect / timeout. */\n async getSkill(name: string, timeoutMs = 5_000): Promise<SkillFull | null> {\n if (this._status !== \"open\" || !this.ws) return null;\n return new Promise<SkillFull | null>((resolve) => {\n const reqId = `sg-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.skillDataResolvers.delete(reqId)) resolve(null);\n }, timeoutMs);\n this.skillDataResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"get_skill\", name, _reqId: reqId })); }\n catch { this.skillDataResolvers.delete(reqId); clearTimeout(timer); resolve(null); }\n });\n }\n\n /** Read a single shared state row. Null on disconnect / timeout / not-found. */\n async getState(key: string, timeoutMs = 5_000): Promise<StateRow | null> {\n if (this._status !== \"open\" || !this.ws) return null;\n return new Promise<StateRow | null>((resolve) => {\n const reqId = `sg-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.stateGetResolvers.delete(reqId)) resolve(null);\n }, timeoutMs);\n this.stateGetResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"get_state\", key, _reqId: reqId })); }\n catch { this.stateGetResolvers.delete(reqId); clearTimeout(timer); resolve(null); }\n });\n }\n\n /** List all shared state rows in the mesh. */\n async listState(timeoutMs = 5_000): Promise<StateRow[]> {\n if (this._status !== \"open\" || !this.ws) return [];\n return new Promise<StateRow[]>((resolve) => {\n const reqId = `sl-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.stateListResolvers.delete(reqId)) resolve([]);\n }, timeoutMs);\n this.stateListResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"list_state\", _reqId: reqId })); }\n catch { this.stateListResolvers.delete(reqId); clearTimeout(timer); resolve([]); }\n });\n }\n\n /** Set a shared state value. Fire-and-forget. */\n setState(key: string, value: unknown): void {\n if (this._status !== \"open\" || !this.ws) return;\n try { this.ws.send(JSON.stringify({ type: \"set_state\", key, value })); }\n catch { /* ignore */ }\n }\n\n /** Store a memory in the mesh. Returns the assigned id, or null on timeout. */\n async remember(content: string, tags?: string[], timeoutMs = 5_000): Promise<string | null> {\n if (this._status !== \"open\" || !this.ws) return null;\n return new Promise<string | null>((resolve) => {\n const reqId = `mr-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.memoryStoreResolvers.delete(reqId)) resolve(null);\n }, timeoutMs);\n this.memoryStoreResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"remember\", content, tags, _reqId: reqId })); }\n catch { this.memoryStoreResolvers.delete(reqId); clearTimeout(timer); resolve(null); }\n });\n }\n\n /** Search memories by relevance. */\n async recall(query: string, timeoutMs = 5_000): Promise<MemoryRow[]> {\n if (this._status !== \"open\" || !this.ws) return [];\n return new Promise<MemoryRow[]>((resolve) => {\n const reqId = `mc-${++this.reqCounter}`;\n const timer = setTimeout(() => {\n if (this.memoryRecallResolvers.delete(reqId)) resolve([]);\n }, timeoutMs);\n this.memoryRecallResolvers.set(reqId, { resolve, timer });\n try { this.ws!.send(JSON.stringify({ type: \"recall\", query, _reqId: reqId })); }\n catch { this.memoryRecallResolvers.delete(reqId); clearTimeout(timer); resolve([]); }\n });\n }\n\n /** Forget a memory by id. Fire-and-forget. */\n forget(memoryId: string): void {\n if (this._status !== \"open\" || !this.ws) return;\n try { this.ws.send(JSON.stringify({ type: \"forget\", memoryId })); }\n catch { /* ignore */ }\n }\n\n /** Set the daemon's profile (avatar/title/bio/capabilities). Fire-and-forget. */\n setProfile(profile: { avatar?: string; title?: string; bio?: string; capabilities?: string[] }): void {\n if (this._status !== \"open\" || !this.ws) return;\n try { this.ws.send(JSON.stringify({ type: \"set_profile\", ...profile })); }\n catch { /* ignore */ }\n }\n\n setSummary(summary: string): void {\n if (this._status !== \"open\" || !this.ws) return;\n try { this.ws.send(JSON.stringify({ type: \"set_summary\", summary })); }\n catch { /* ignore */ }\n }\n\n setStatus(status: \"idle\" | \"working\" | \"dnd\"): void {\n if (this._status !== \"open\" || !this.ws) return;\n try { this.ws.send(JSON.stringify({ type: \"set_status\", status })); }\n catch { /* ignore */ }\n }\n\n setVisible(visible: boolean): void {\n if (this._status !== \"open\" || !this.ws) return;\n try { this.ws.send(JSON.stringify({ type: \"set_visible\", visible })); }\n catch { /* ignore */ }\n }\n\n async close(): Promise<void> {\n this.closed = true;\n if (this.reconnectTimer) { clearTimeout(this.reconnectTimer); this.reconnectTimer = null; }\n if (this.helloTimer) { clearTimeout(this.helloTimer); this.helloTimer = null; }\n this.failPendingAcks(\"daemon_shutdown\");\n try { this.ws?.close(); } catch { /* ignore */ }\n this.setConnStatus(\"closed\");\n }\n\n getSessionKeys(): { sessionPubkey: string; sessionSecretKey: string } | null {\n if (!this.sessionPubkey || !this.sessionSecretKey) return null;\n return { sessionPubkey: this.sessionPubkey, sessionSecretKey: this.sessionSecretKey };\n }\n\n private failPendingAcks(reason: string) {\n for (const [id, ack] of this.pendingAcks) {\n clearTimeout(ack.timer);\n ack.resolve({ ok: false, error: reason, permanent: false });\n this.pendingAcks.delete(id);\n }\n }\n}\n\nfunction defaultLog(level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) {\n const line = JSON.stringify({ level, msg, ...meta, ts: new Date().toISOString() });\n if (level === \"info\") process.stdout.write(line + \"\\n\");\n else process.stderr.write(line + \"\\n\");\n}\n\n/** Heuristic: which broker errors are unrecoverable for this id. */\nfunction classifyPermanent(err: string): boolean {\n return /payload_too_large|forbidden|not_found|invalid|schema|auth|signature/i.test(err);\n}\n",
122
124
  "// Outbox drain worker. Walks `outbox.pending` rows, sends them to the\n// broker via DaemonBrokerClient, and transitions row state per spec §4.6.1.\n//\n// Lifecycle per row:\n// pending → inflight → done (broker accepted)\n// → pending+backoff (transient broker error)\n// → dead (permanent broker error or\n// attempt cap reached)\n//\n// Wakeable: insertPending in the IPC handler can call wake() to skip the\n// idle interval. We use a simple promise-replacing pattern instead of a\n// pollable signal.\n\nimport type { SqliteDb } from \"./db/sqlite.js\";\nimport type { DaemonBrokerClient } from \"./broker.js\";\nimport type { OutboxStatus } from \"./db/outbox.js\";\n\nconst POLL_INTERVAL_MS = 500;\nconst MAX_ATTEMPTS_PER_ROW = 25;\nconst BACKOFF_BASE_MS = 500;\nconst BACKOFF_CAP_MS = 30_000;\n\ninterface PendingRow {\n id: string;\n client_message_id: string;\n request_fingerprint: Uint8Array;\n payload: Uint8Array;\n attempts: number;\n /** Sprint 4 routing fields. NULL on legacy v0.9.0 rows → broadcast fallback. */\n target_spec: string | null;\n nonce: string | null;\n ciphertext: string | null;\n priority: string | null;\n mesh: string | null;\n}\n\nexport interface DrainOptions {\n db: SqliteDb;\n /** v1.26.0: per-mesh broker map. Drain dispatches each row to the\n * broker keyed by its `mesh` column. Single-mesh daemons pass a\n * Map of size 1; multi-mesh daemons pass one entry per joined mesh. */\n brokers: Map<string, DaemonBrokerClient>;\n log?: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n}\n\nexport interface DrainHandle {\n wake(): void;\n close(): Promise<void>;\n}\n\nexport function startDrainWorker(opts: DrainOptions): DrainHandle {\n const log = opts.log ?? defaultLog;\n let stopped = false;\n let wakeResolve: (() => void) | null = null;\n let wakePromise = new Promise<void>((r) => { wakeResolve = r; });\n\n const wake = () => {\n if (wakeResolve) {\n const r = wakeResolve;\n wakeResolve = null;\n r();\n }\n };\n\n const tick = async () => {\n while (!stopped) {\n try { await drainOnce(opts, log); }\n catch (e) { log(\"warn\", \"drain_tick_failed\", { err: String(e) }); }\n // Sleep up to POLL_INTERVAL_MS, but wake immediately on signal.\n await Promise.race([\n wakePromise,\n new Promise<void>((r) => setTimeout(r, POLL_INTERVAL_MS)),\n ]);\n // Reset wake promise after each loop.\n wakePromise = new Promise<void>((r) => { wakeResolve = r; });\n }\n };\n\n void tick();\n\n return {\n wake,\n close: async () => { stopped = true; wake(); },\n };\n}\n\nasync function drainOnce(opts: DrainOptions, log: NonNullable<DrainOptions[\"log\"]>): Promise<void> {\n const now = Date.now();\n const rows = opts.db.prepare(`\n SELECT id, client_message_id, request_fingerprint, payload, attempts,\n target_spec, nonce, ciphertext, priority, mesh\n FROM outbox\n WHERE status = 'pending' AND next_attempt_at <= ?\n ORDER BY enqueued_at\n LIMIT 32\n `).all<PendingRow>(now);\n\n if (rows.length === 0) return;\n\n for (const row of rows) {\n if (markInflight(opts.db, row.id, now) === 0) continue; // raced with another drainer\n const fpHex = bufferToHex(row.request_fingerprint);\n\n // v1.26.0: pick the broker keyed by the row's mesh. Legacy rows\n // (mesh=NULL) fall back to the only broker if there's exactly one;\n // otherwise mark dead because we don't know where to send them.\n let broker: DaemonBrokerClient | undefined;\n if (row.mesh) {\n broker = opts.brokers.get(row.mesh);\n } else if (opts.brokers.size === 1) {\n broker = opts.brokers.values().next().value;\n }\n if (!broker) {\n log(\"warn\", \"drain_no_broker_for_mesh\", { id: row.id, mesh: row.mesh ?? \"(null)\" });\n markDead(opts.db, row.id, `no_broker_for_mesh:${row.mesh ?? \"null\"}`);\n continue;\n }\n\n // Sprint 4: use the row's resolved target/ciphertext if present.\n // Legacy v0.9.0 rows (NULL on these columns) fall back to the\n // broadcast smoke-test shape so existing in-flight rows still drain.\n let targetSpec: string;\n let nonce: string;\n let ciphertext: string;\n let priority: \"now\" | \"next\" | \"low\";\n if (row.target_spec && row.nonce && row.ciphertext) {\n targetSpec = row.target_spec;\n nonce = row.nonce;\n ciphertext = row.ciphertext;\n priority = (row.priority === \"now\" || row.priority === \"low\") ? row.priority : \"next\";\n } else {\n targetSpec = \"*\";\n nonce = await randomNonce();\n ciphertext = Buffer.from(row.payload).toString(\"base64\");\n priority = \"next\";\n }\n\n let res;\n try {\n res = await broker.send({\n targetSpec,\n priority,\n nonce,\n ciphertext,\n client_message_id: row.client_message_id,\n request_fingerprint_hex: fpHex,\n });\n } catch (e) {\n log(\"warn\", \"drain_send_threw\", { id: row.id, err: String(e) });\n backoffPending(opts.db, row.id, row.attempts + 1, \"exception\", String(e));\n continue;\n }\n\n if (res.ok) {\n markDone(opts.db, row.id, res.messageId, Date.now());\n } else if (res.permanent) {\n log(\"warn\", \"drain_permanent_failure\", { id: row.id, err: res.error });\n markDead(opts.db, row.id, res.error);\n } else if (row.attempts + 1 >= MAX_ATTEMPTS_PER_ROW) {\n log(\"warn\", \"drain_max_attempts\", { id: row.id, err: res.error });\n markDead(opts.db, row.id, `max_attempts: ${res.error}`);\n } else {\n backoffPending(opts.db, row.id, row.attempts + 1, \"retry\", res.error);\n }\n }\n}\n\nfunction markInflight(db: SqliteDb, id: string, now: number): number {\n return Number(db.prepare(`\n UPDATE outbox\n SET status = 'inflight', attempts = attempts + 1, next_attempt_at = ?\n WHERE id = ? AND status = 'pending'\n `).run(now + BACKOFF_CAP_MS, id).changes);\n}\n\nfunction markDone(db: SqliteDb, id: string, brokerMessageId: string, now: number) {\n db.prepare(`\n UPDATE outbox\n SET status = 'done', delivered_at = ?, broker_message_id = ?, last_error = NULL\n WHERE id = ?\n `).run(now, brokerMessageId, id);\n}\n\nfunction markDead(db: SqliteDb, id: string, err: string) {\n db.prepare(`UPDATE outbox SET status = 'dead', last_error = ? WHERE id = ?`).run(err, id);\n}\n\nfunction backoffPending(db: SqliteDb, id: string, attempts: number, _kind: string, err: string) {\n const wait = Math.min(BACKOFF_CAP_MS, BACKOFF_BASE_MS * (2 ** Math.min(attempts, 12)));\n const next = Date.now() + wait;\n db.prepare(`\n UPDATE outbox\n SET status = 'pending', attempts = ?, next_attempt_at = ?, last_error = ?\n WHERE id = ?\n `).run(attempts, next, err, id);\n}\n\nfunction bufferToHex(b: Uint8Array): string {\n let s = \"\";\n for (let i = 0; i < b.length; i++) s += b[i]!.toString(16).padStart(2, \"0\");\n return s;\n}\n\nasync function randomNonce(): Promise<string> {\n const { randomBytes } = await import(\"node:crypto\");\n return randomBytes(24).toString(\"base64\");\n}\n\nfunction defaultLog(level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) {\n const line = JSON.stringify({ level, msg, ...meta, ts: new Date().toISOString() });\n if (level === \"info\") process.stdout.write(line + \"\\n\");\n else process.stderr.write(line + \"\\n\");\n}\n\n// Suppress unused-status warning under strict tsc:\nconst _statuses: OutboxStatus[] = [\"pending\", \"inflight\", \"done\", \"dead\", \"aborted\"];\nvoid _statuses;\n",
123
125
  "// Decode incoming broker pushes and dedupe-insert them into the daemon\n// inbox. Publishes a `message` event to the daemon's event bus on every\n// new row (idempotent receives suppress the event).\n\nimport { randomUUID } from \"node:crypto\";\n\nimport type { SqliteDb } from \"./db/sqlite.js\";\nimport { insertIfNew } from \"./db/inbox.js\";\nimport type { EventBus } from \"./events.js\";\nimport { decryptDirect } from \"~/services/crypto/facade.js\";\n\nexport interface InboundContext {\n db: SqliteDb;\n bus: EventBus;\n meshSlug: string;\n /** Daemon's mesh secret key hex, used to decrypt sealed DMs. */\n recipientSecretKeyHex?: string;\n /** Daemon's session secret key hex (rotates per connect). When the\n * sender encrypted to our session pubkey, decrypt with this instead. */\n sessionSecretKeyHex?: string;\n log?: (level: \"info\" | \"warn\" | \"error\", msg: string, meta?: Record<string, unknown>) => void;\n}\n\n/**\n * Spec §4.5: dedupe by `client_message_id` (broker echoes it from the\n * sender's daemon). When the broker doesn't yet propagate the field\n * (Sprint 7 prereq), fall back to the broker's `messageId` as the\n * dedupe key — at-least-once still holds; we just lose the\n * sender-attested form.\n */\nexport async function handleBrokerPush(msg: Record<string, unknown>, ctx: InboundContext): Promise<void> {\n // System/topology pushes (peer_join, tick, …) — emit verbatim.\n if (msg.subtype === \"system\" && typeof msg.event === \"string\") {\n ctx.bus.publish(mapSystemEventKind(msg.event), {\n mesh: ctx.meshSlug,\n event: msg.event,\n ...(msg.eventData as Record<string, unknown> | undefined ?? {}),\n });\n return;\n }\n\n if (msg.type !== \"push\") return;\n\n const brokerMessageId = stringOrNull(msg.messageId);\n const senderPubkey = stringOrNull(msg.senderPubkey) ?? \"\";\n const senderName = stringOrNull(msg.senderName) ?? senderPubkey.slice(0, 8);\n const senderMemberPk = stringOrNull(msg.senderMemberPubkey);\n const topic = stringOrNull(msg.topic);\n const replyToId = stringOrNull(msg.replyToId);\n const ciphertext = stringOrNull(msg.ciphertext) ?? \"\";\n const nonce = stringOrNull(msg.nonce) ?? \"\";\n const createdAt = stringOrNull(msg.createdAt);\n const priority = stringOrNull(msg.priority) ?? \"next\";\n const subtype = stringOrNull(msg.subtype);\n // Forward-compat: Sprint 7 brokers will send client_message_id alongside.\n const clientMessageId = stringOrNull(msg.client_message_id) ?? brokerMessageId ?? randomUUID();\n const body = await decryptOrFallback({\n ciphertext, nonce, senderPubkey, ctx,\n });\n\n const id = randomUUID();\n const inserted = insertIfNew(ctx.db, {\n id,\n client_message_id: clientMessageId,\n broker_message_id: brokerMessageId,\n mesh: ctx.meshSlug,\n topic,\n sender_pubkey: senderPubkey,\n sender_name: senderName,\n body,\n meta: createdAt ? JSON.stringify({ created_at: createdAt }) : null,\n received_at: Date.now(),\n reply_to_id: replyToId,\n });\n\n if (!inserted) return; // already had this id; no event\n\n ctx.bus.publish(\"message\", {\n id,\n mesh: ctx.meshSlug,\n client_message_id: clientMessageId,\n broker_message_id: brokerMessageId,\n sender_pubkey: senderPubkey,\n sender_member_pubkey: senderMemberPk,\n sender_name: senderName,\n topic,\n reply_to_id: replyToId,\n priority,\n ...(subtype ? { subtype } : {}),\n body,\n created_at: createdAt,\n });\n}\n\nasync function decryptOrFallback(args: {\n ciphertext: string;\n nonce: string;\n senderPubkey: string;\n ctx: InboundContext;\n}): Promise<string | null> {\n const { ciphertext, nonce, senderPubkey, ctx } = args;\n if (!ciphertext) return null;\n\n // Try DM decrypt first (sender used crypto_box against our session/member key).\n if (nonce && senderPubkey) {\n const envelope = { nonce, ciphertext };\n // Try session key (sender encrypted to our session pubkey, the common case).\n if (ctx.sessionSecretKeyHex) {\n const pt = await decryptDirect(envelope, senderPubkey, ctx.sessionSecretKeyHex);\n if (pt !== null) return pt;\n }\n // Fall back to member key (sender encrypted to our stable mesh pubkey).\n if (ctx.recipientSecretKeyHex) {\n const pt = await decryptDirect(envelope, senderPubkey, ctx.recipientSecretKeyHex);\n if (pt !== null) return pt;\n }\n }\n\n // Fallback: broadcast/topic posts are base64 plaintext (existing CLI\n // pre-encryption convention for `*` and `@topic`). Sprint 7+ adds per-\n // topic symmetric keys.\n try { return Buffer.from(ciphertext, \"base64\").toString(\"utf8\"); }\n catch (e) { ctx.log?.(\"warn\", \"inbound_b64_decode_failed\", { err: String(e) }); return null; }\n}\n\nfunction stringOrNull(v: unknown): string | null {\n return typeof v === \"string\" && v.length > 0 ? v : null;\n}\n\nfunction mapSystemEventKind(event: string): \"peer_join\" | \"peer_leave\" | \"system\" {\n if (event === \"peer_joined\") return \"peer_join\";\n if (event === \"peer_left\") return \"peer_leave\";\n return \"system\";\n}\n",
124
126
  "// Accidental-clone detection per spec §2.2. Catches restored backups\n// and copy-pasted homedirs by comparing a stable host fingerprint\n// against the one we wrote at first daemon start.\n//\n// NOT attacker-grade: anyone copying both the keypair AND the\n// host_fingerprint defeats this. Threat model §16 says so explicitly.\n\nimport { existsSync, readFileSync, writeFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createHash, randomUUID } from \"node:crypto\";\nimport { networkInterfaces } from \"node:os\";\n\nimport { DAEMON_PATHS } from \"./paths.js\";\n\nexport type ClonePolicy = \"refuse\" | \"warn\" | \"allow\";\n\nexport interface FingerprintRecord {\n schema_version: 1;\n fingerprint: string; // sha256 hex\n host_id: string; // raw, for diagnostics\n stable_mac: string; // raw, for diagnostics\n written_at: string; // ISO date\n}\n\nexport interface FingerprintCheck {\n result: \"first_run\" | \"match\" | \"mismatch\" | \"unavailable\";\n current: FingerprintRecord;\n stored?: FingerprintRecord;\n}\n\nconst FILE_NAME = \"host_fingerprint.json\";\n\nfunction path(): string { return join(DAEMON_PATHS.DAEMON_DIR, FILE_NAME); }\n\n/** Compute (without writing) the current host fingerprint. */\nexport function computeCurrentFingerprint(): FingerprintRecord {\n // Per spec §2.2 / followups doc: when neither host_id nor a stable MAC\n // are readable we fall back to a persisted random UUID. We DO NOT mint\n // a fresh random per call (that would make every restart look like a\n // clone). Instead, leave host_id empty when unknown — the MAC alone\n // identifies the host for accidental-clone detection.\n const host_id = readHostId() ?? \"\";\n const stable_mac = pickStableMac() ?? \"\";\n const fp = createHash(\"sha256\").update(host_id, \"utf8\").update(\"\\0\").update(stable_mac, \"utf8\").digest(\"hex\");\n return {\n schema_version: 1,\n fingerprint: fp,\n host_id,\n stable_mac,\n written_at: new Date().toISOString(),\n };\n}\n\n// `randomUUID` is no longer used after the random-fallback fix; keep the\n// import only if other helpers need it.\nvoid randomUUID;\n\n/** Read or write the persisted fingerprint and report the result. */\nexport function checkFingerprint(): FingerprintCheck {\n const current = computeCurrentFingerprint();\n if (!existsSync(path())) {\n writeFileSync(path(), JSON.stringify(current, null, 2), { mode: 0o600 });\n return { result: \"first_run\", current };\n }\n let stored: FingerprintRecord;\n try { stored = JSON.parse(readFileSync(path(), \"utf8\")) as FingerprintRecord; }\n catch { return { result: \"unavailable\", current }; }\n if (stored.fingerprint === current.fingerprint) return { result: \"match\", current, stored };\n return { result: \"mismatch\", current, stored };\n}\n\n/** Re-write the fingerprint file. Used by `daemon accept-host`. */\nexport function acceptCurrentHost(): FingerprintRecord {\n const current = computeCurrentFingerprint();\n writeFileSync(path(), JSON.stringify(current, null, 2), { mode: 0o600 });\n return current;\n}\n\n// ── platform helpers ───────────────────────────────────────────────────\n\nfunction readHostId(): string | null {\n // Linux: /etc/machine-id (or /var/lib/dbus/machine-id).\n if (process.platform === \"linux\") {\n for (const p of [\"/etc/machine-id\", \"/var/lib/dbus/machine-id\"]) {\n try {\n const raw = readFileSync(p, \"utf8\").trim();\n if (raw) return `linux:${raw}`;\n } catch { /* try next */ }\n }\n return null;\n }\n // macOS: IOPlatformUUID via ioreg. We avoid spawning by checking ENV.\n if (process.platform === \"darwin\") {\n // No reliable file; fall back to MAC-only fingerprint.\n return null;\n }\n // Windows: HKLM\\SOFTWARE\\Microsoft\\Cryptography\\MachineGuid. Skip in v0.9.0.\n return null;\n}\n\nfunction pickStableMac(): string | null {\n const ifs = networkInterfaces();\n const candidates: string[] = [];\n for (const [name, addrs] of Object.entries(ifs)) {\n if (!addrs) continue;\n if (isIgnoredInterface(name)) continue;\n for (const a of addrs) {\n if (a.internal) continue;\n if (!a.mac || a.mac === \"00:00:00:00:00:00\") continue;\n candidates.push(`${name}::${a.mac}`);\n break;\n }\n }\n if (candidates.length === 0) return null;\n candidates.sort(); // lex by interface name\n const first = candidates[0]!;\n const idx = first.indexOf(\"::\");\n return idx >= 0 ? first.slice(idx + 2) : first;\n}\n\nfunction isIgnoredInterface(name: string): boolean {\n return /^(lo|docker|br-|veth|tap|tun|tailscale|wg|utun|ppp|vboxnet|vmnet|awdl|llw)/i.test(name);\n}\n",
125
- "import { existsSync, mkdirSync, readFileSync } from \"node:fs\";\n\nimport { DAEMON_PATHS } from \"./paths.js\";\nimport { acquireSingletonLock, releaseSingletonLock } from \"./lock.js\";\nimport { ensureLocalToken } from \"./local-token.js\";\nimport { startIpcServer } from \"./ipc/server.js\";\nimport { openSqlite, type SqliteDb } from \"./db/sqlite.js\";\nimport { migrateOutbox } from \"./db/outbox.js\";\nimport { migrateInbox } from \"./db/inbox.js\";\nimport { DaemonBrokerClient } from \"./broker.js\";\nimport { startDrainWorker, type DrainHandle } from \"./drain.js\";\nimport { handleBrokerPush } from \"./inbound.js\";\nimport { EventBus } from \"./events.js\";\nimport { checkFingerprint, type ClonePolicy } from \"./identity.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\n\nexport interface RunDaemonOptions {\n /** Disable TCP loopback (UDS-only). Defaults true in container envs. */\n tcpEnabled?: boolean;\n publicHealthCheck?: boolean;\n /** Mesh slug to attach to. Required when the user has joined multiple meshes. */\n mesh?: string;\n /** Daemon's display name on the mesh. */\n displayName?: string;\n /** Behavior on host_fingerprint mismatch. Defaults 'refuse'. */\n clonePolicy?: ClonePolicy;\n}\n\n/** Detect a few common container environments to pick UDS-only by default. */\nfunction detectContainer(): boolean {\n if (process.env.KUBERNETES_SERVICE_HOST) return true;\n if (process.env.CONTAINER === \"1\") return true;\n try {\n if (existsSync(\"/.dockerenv\")) return true;\n const cg = readFileSync(\"/proc/1/cgroup\", \"utf8\");\n if (/(docker|kubepods|containerd)/.test(cg)) return true;\n } catch { /* not linux or no /proc */ }\n return false;\n}\n\nexport async function runDaemon(opts: RunDaemonOptions = {}): Promise<number> {\n mkdirSync(DAEMON_PATHS.DAEMON_DIR, { recursive: true, mode: 0o700 });\n\n const lock = acquireSingletonLock();\n if (lock.result === \"already-running\") {\n process.stderr.write(`daemon already running (pid ${lock.pid})\\n`);\n return 1;\n }\n if (lock.result === \"stale\") {\n process.stderr.write(`recovered stale pid file; starting fresh\\n`);\n }\n\n // Accidental-clone detection (spec §2.2). Default policy: refuse.\n const fpCheck = checkFingerprint();\n const policy: ClonePolicy = opts.clonePolicy ?? \"refuse\";\n if (fpCheck.result === \"mismatch\") {\n const msg = `host_fingerprint mismatch: this daemon dir was started on a different host.`;\n if (policy === \"refuse\") {\n process.stderr.write(`${msg}\\n`);\n process.stderr.write(` stored host_id: ${fpCheck.stored?.host_id}\\n`);\n process.stderr.write(` current host_id: ${fpCheck.current.host_id}\\n`);\n process.stderr.write(`Run \\`claudemesh daemon accept-host\\` to write a fresh fingerprint, or\\n`);\n process.stderr.write(`run \\`claudemesh daemon remint\\` to mint a new keypair (Sprint 7+).\\n`);\n releaseSingletonLock();\n return 4;\n }\n if (policy === \"warn\") {\n process.stderr.write(`WARN: ${msg} (continuing per [clone] policy=warn)\\n`);\n }\n // 'allow' is silent.\n }\n if (fpCheck.result === \"first_run\") {\n process.stdout.write(JSON.stringify({\n msg: \"host_fingerprint_written\", fingerprint_prefix: fpCheck.current.fingerprint.slice(0, 16), ts: new Date().toISOString(),\n }) + \"\\n\");\n }\n\n const localToken = ensureLocalToken();\n const tcpEnabled = opts.tcpEnabled ?? !detectContainer();\n\n let outboxDb: SqliteDb;\n let inboxDb: SqliteDb;\n try {\n outboxDb = await openSqlite(DAEMON_PATHS.OUTBOX_DB);\n migrateOutbox(outboxDb);\n inboxDb = await openSqlite(DAEMON_PATHS.INBOX_DB);\n migrateInbox(inboxDb);\n } catch (err) {\n process.stderr.write(`db open failed: ${String(err)}\\n`);\n releaseSingletonLock();\n return 1;\n }\n\n const bus = new EventBus();\n\n // 1.26.0 — multi-mesh by default. With --mesh <slug>, the daemon\n // scopes to one mesh (legacy mode). Without it, attaches to every\n // joined mesh simultaneously so ambient mode (raw `claude`) works\n // for all meshes with one daemon process.\n const cfg = readConfig();\n let meshes: Array<typeof cfg.meshes[number]>;\n if (opts.mesh) {\n const found = cfg.meshes.find((m) => m.slug === opts.mesh);\n if (!found) {\n process.stderr.write(`mesh not found: ${opts.mesh}\\n`);\n process.stderr.write(`joined meshes: ${cfg.meshes.map((m) => m.slug).join(\", \") || \"(none)\"}\\n`);\n releaseSingletonLock();\n try { outboxDb.close(); } catch { /* ignore */ }\n return 2;\n }\n meshes = [found];\n } else if (cfg.meshes.length === 0) {\n process.stderr.write(`no mesh joined; run \\`claudemesh join <invite-url>\\` first\\n`);\n releaseSingletonLock();\n try { outboxDb.close(); } catch { /* ignore */ }\n return 2;\n } else {\n meshes = cfg.meshes;\n }\n\n // Spin up one broker per mesh. Connection failures are non-fatal:\n // the outbox keeps queuing per-mesh and reconnect logic in\n // DaemonBrokerClient handles reattach.\n const brokers = new Map<string, DaemonBrokerClient>();\n const meshConfigs = new Map<string, typeof cfg.meshes[number]>();\n for (const mesh of meshes) {\n meshConfigs.set(mesh.slug, mesh);\n const broker = new DaemonBrokerClient(mesh, {\n displayName: opts.displayName,\n onStatusChange: (s) => {\n process.stdout.write(JSON.stringify({\n msg: \"broker_status\", status: s, mesh: mesh.slug, ts: new Date().toISOString(),\n }) + \"\\n\");\n bus.publish(\"broker_status\", { mesh: mesh.slug, status: s });\n },\n onPush: (m) => {\n const sessionKeys = broker.getSessionKeys();\n void handleBrokerPush(m, {\n db: inboxDb,\n bus,\n meshSlug: mesh.slug,\n recipientSecretKeyHex: mesh.secretKey,\n sessionSecretKeyHex: sessionKeys?.sessionSecretKey,\n });\n },\n });\n broker.connect().catch((err) => process.stderr.write(`broker connect failed for ${mesh.slug}: ${String(err)}\\n`));\n brokers.set(mesh.slug, broker);\n }\n\n // Start the drain worker. With multi-mesh, drain dispatches each\n // outbox row to its mesh's broker via the `mesh` column.\n let drain: DrainHandle | null = null;\n drain = startDrainWorker({ db: outboxDb, brokers });\n\n const ipc = startIpcServer({\n localToken,\n tcpEnabled,\n publicHealthCheck: opts.publicHealthCheck,\n outboxDb,\n inboxDb,\n bus,\n brokers,\n meshConfigs,\n onPendingInserted: () => drain?.wake(),\n });\n\n try {\n await ipc.ready;\n } catch (err) {\n process.stderr.write(`ipc listen failed: ${String(err)}\\n`);\n releaseSingletonLock();\n return 1;\n }\n\n process.stdout.write(JSON.stringify({\n msg: \"daemon_started\",\n pid: process.pid,\n sock: DAEMON_PATHS.SOCK_FILE,\n tcp: tcpEnabled ? `127.0.0.1:47823` : null,\n meshes: meshes.map((m) => m.slug),\n ts: new Date().toISOString(),\n }) + \"\\n\");\n\n let shuttingDown = false;\n const shutdown = async (sig: string) => {\n if (shuttingDown) return;\n shuttingDown = true;\n process.stdout.write(JSON.stringify({ msg: \"daemon_shutdown\", signal: sig, ts: new Date().toISOString() }) + \"\\n\");\n if (drain) await drain.close();\n for (const b of brokers.values()) {\n try { await b.close(); } catch { /* ignore */ }\n }\n await ipc.close();\n try { outboxDb.close(); } catch { /* ignore */ }\n try { inboxDb.close(); } catch { /* ignore */ }\n releaseSingletonLock();\n process.exit(0);\n };\n\n process.on(\"SIGINT\", () => shutdown(\"SIGINT\"));\n process.on(\"SIGTERM\", () => shutdown(\"SIGTERM\"));\n\n // Hold the event loop open until a signal arrives.\n return new Promise<number>(() => { /* never resolves; signals call process.exit */ });\n}\n",
127
+ "import { existsSync, mkdirSync, readFileSync } from \"node:fs\";\n\nimport { DAEMON_PATHS } from \"./paths.js\";\nimport { acquireSingletonLock, releaseSingletonLock } from \"./lock.js\";\nimport { ensureLocalToken } from \"./local-token.js\";\nimport { startIpcServer } from \"./ipc/server.js\";\nimport { startReaper } from \"./session-registry.js\";\nimport { openSqlite, type SqliteDb } from \"./db/sqlite.js\";\nimport { migrateOutbox } from \"./db/outbox.js\";\nimport { migrateInbox } from \"./db/inbox.js\";\nimport { DaemonBrokerClient } from \"./broker.js\";\nimport { startDrainWorker, type DrainHandle } from \"./drain.js\";\nimport { handleBrokerPush } from \"./inbound.js\";\nimport { EventBus } from \"./events.js\";\nimport { checkFingerprint, type ClonePolicy } from \"./identity.js\";\nimport { readConfig } from \"~/services/config/facade.js\";\n\nexport interface RunDaemonOptions {\n /** Disable TCP loopback (UDS-only). Defaults true in container envs. */\n tcpEnabled?: boolean;\n publicHealthCheck?: boolean;\n /** Mesh slug to attach to. Required when the user has joined multiple meshes. */\n mesh?: string;\n /** Daemon's display name on the mesh. */\n displayName?: string;\n /** Behavior on host_fingerprint mismatch. Defaults 'refuse'. */\n clonePolicy?: ClonePolicy;\n}\n\n/** Detect a few common container environments to pick UDS-only by default. */\nfunction detectContainer(): boolean {\n if (process.env.KUBERNETES_SERVICE_HOST) return true;\n if (process.env.CONTAINER === \"1\") return true;\n try {\n if (existsSync(\"/.dockerenv\")) return true;\n const cg = readFileSync(\"/proc/1/cgroup\", \"utf8\");\n if (/(docker|kubepods|containerd)/.test(cg)) return true;\n } catch { /* not linux or no /proc */ }\n return false;\n}\n\nexport async function runDaemon(opts: RunDaemonOptions = {}): Promise<number> {\n mkdirSync(DAEMON_PATHS.DAEMON_DIR, { recursive: true, mode: 0o700 });\n\n const lock = acquireSingletonLock();\n if (lock.result === \"already-running\") {\n process.stderr.write(`daemon already running (pid ${lock.pid})\\n`);\n return 1;\n }\n if (lock.result === \"stale\") {\n process.stderr.write(`recovered stale pid file; starting fresh\\n`);\n }\n\n // Accidental-clone detection (spec §2.2). Default policy: refuse.\n const fpCheck = checkFingerprint();\n const policy: ClonePolicy = opts.clonePolicy ?? \"refuse\";\n if (fpCheck.result === \"mismatch\") {\n const msg = `host_fingerprint mismatch: this daemon dir was started on a different host.`;\n if (policy === \"refuse\") {\n process.stderr.write(`${msg}\\n`);\n process.stderr.write(` stored host_id: ${fpCheck.stored?.host_id}\\n`);\n process.stderr.write(` current host_id: ${fpCheck.current.host_id}\\n`);\n process.stderr.write(`Run \\`claudemesh daemon accept-host\\` to write a fresh fingerprint, or\\n`);\n process.stderr.write(`run \\`claudemesh daemon remint\\` to mint a new keypair (Sprint 7+).\\n`);\n releaseSingletonLock();\n return 4;\n }\n if (policy === \"warn\") {\n process.stderr.write(`WARN: ${msg} (continuing per [clone] policy=warn)\\n`);\n }\n // 'allow' is silent.\n }\n if (fpCheck.result === \"first_run\") {\n process.stdout.write(JSON.stringify({\n msg: \"host_fingerprint_written\", fingerprint_prefix: fpCheck.current.fingerprint.slice(0, 16), ts: new Date().toISOString(),\n }) + \"\\n\");\n }\n\n const localToken = ensureLocalToken();\n const tcpEnabled = opts.tcpEnabled ?? !detectContainer();\n\n let outboxDb: SqliteDb;\n let inboxDb: SqliteDb;\n try {\n outboxDb = await openSqlite(DAEMON_PATHS.OUTBOX_DB);\n migrateOutbox(outboxDb);\n inboxDb = await openSqlite(DAEMON_PATHS.INBOX_DB);\n migrateInbox(inboxDb);\n } catch (err) {\n process.stderr.write(`db open failed: ${String(err)}\\n`);\n releaseSingletonLock();\n return 1;\n }\n\n const bus = new EventBus();\n\n // 1.26.0 — multi-mesh by default. With --mesh <slug>, the daemon\n // scopes to one mesh (legacy mode). Without it, attaches to every\n // joined mesh simultaneously so ambient mode (raw `claude`) works\n // for all meshes with one daemon process.\n const cfg = readConfig();\n let meshes: Array<typeof cfg.meshes[number]>;\n if (opts.mesh) {\n const found = cfg.meshes.find((m) => m.slug === opts.mesh);\n if (!found) {\n process.stderr.write(`mesh not found: ${opts.mesh}\\n`);\n process.stderr.write(`joined meshes: ${cfg.meshes.map((m) => m.slug).join(\", \") || \"(none)\"}\\n`);\n releaseSingletonLock();\n try { outboxDb.close(); } catch { /* ignore */ }\n return 2;\n }\n meshes = [found];\n } else if (cfg.meshes.length === 0) {\n process.stderr.write(`no mesh joined; run \\`claudemesh join <invite-url>\\` first\\n`);\n releaseSingletonLock();\n try { outboxDb.close(); } catch { /* ignore */ }\n return 2;\n } else {\n meshes = cfg.meshes;\n }\n\n // Spin up one broker per mesh. Connection failures are non-fatal:\n // the outbox keeps queuing per-mesh and reconnect logic in\n // DaemonBrokerClient handles reattach.\n const brokers = new Map<string, DaemonBrokerClient>();\n const meshConfigs = new Map<string, typeof cfg.meshes[number]>();\n for (const mesh of meshes) {\n meshConfigs.set(mesh.slug, mesh);\n const broker = new DaemonBrokerClient(mesh, {\n displayName: opts.displayName,\n onStatusChange: (s) => {\n process.stdout.write(JSON.stringify({\n msg: \"broker_status\", status: s, mesh: mesh.slug, ts: new Date().toISOString(),\n }) + \"\\n\");\n bus.publish(\"broker_status\", { mesh: mesh.slug, status: s });\n },\n onPush: (m) => {\n const sessionKeys = broker.getSessionKeys();\n void handleBrokerPush(m, {\n db: inboxDb,\n bus,\n meshSlug: mesh.slug,\n recipientSecretKeyHex: mesh.secretKey,\n sessionSecretKeyHex: sessionKeys?.sessionSecretKey,\n });\n },\n });\n broker.connect().catch((err) => process.stderr.write(`broker connect failed for ${mesh.slug}: ${String(err)}\\n`));\n brokers.set(mesh.slug, broker);\n }\n\n // Start the drain worker. With multi-mesh, drain dispatches each\n // outbox row to its mesh's broker via the `mesh` column.\n let drain: DrainHandle | null = null;\n drain = startDrainWorker({ db: outboxDb, brokers });\n\n startReaper();\n\n const ipc = startIpcServer({\n localToken,\n tcpEnabled,\n publicHealthCheck: opts.publicHealthCheck,\n outboxDb,\n inboxDb,\n bus,\n brokers,\n meshConfigs,\n onPendingInserted: () => drain?.wake(),\n });\n\n try {\n await ipc.ready;\n } catch (err) {\n process.stderr.write(`ipc listen failed: ${String(err)}\\n`);\n releaseSingletonLock();\n return 1;\n }\n\n process.stdout.write(JSON.stringify({\n msg: \"daemon_started\",\n pid: process.pid,\n sock: DAEMON_PATHS.SOCK_FILE,\n tcp: tcpEnabled ? `127.0.0.1:47823` : null,\n meshes: meshes.map((m) => m.slug),\n ts: new Date().toISOString(),\n }) + \"\\n\");\n\n let shuttingDown = false;\n const shutdown = async (sig: string) => {\n if (shuttingDown) return;\n shuttingDown = true;\n process.stdout.write(JSON.stringify({ msg: \"daemon_shutdown\", signal: sig, ts: new Date().toISOString() }) + \"\\n\");\n if (drain) await drain.close();\n for (const b of brokers.values()) {\n try { await b.close(); } catch { /* ignore */ }\n }\n await ipc.close();\n try { outboxDb.close(); } catch { /* ignore */ }\n try { inboxDb.close(); } catch { /* ignore */ }\n releaseSingletonLock();\n process.exit(0);\n };\n\n process.on(\"SIGINT\", () => shutdown(\"SIGINT\"));\n process.on(\"SIGTERM\", () => shutdown(\"SIGTERM\"));\n\n // Hold the event loop open until a signal arrives.\n return new Promise<number>(() => { /* never resolves; signals call process.exit */ });\n}\n",
126
128
  "// Service-install for daemon mode (spec §9). Two platforms:\n// - macOS: ~/Library/LaunchAgents/com.claudemesh.daemon.plist (launchctl bootstrap)\n// - Linux: ~/.config/systemd/user/claudemesh-daemon.service (systemctl --user enable)\n//\n// Both run as the invoking user, redirect stdout/stderr to ~/.claudemesh/\n// daemon/daemon.log, restart on crash, and start at login. CI envs are\n// refused unless --allow-ci-persistent is passed (spec §9 / §16.3).\n\nimport { existsSync, mkdirSync, writeFileSync, unlinkSync, readFileSync } from \"node:fs\";\nimport { execSync } from \"node:child_process\";\nimport { homedir } from \"node:os\";\nimport { join, dirname } from \"node:path\";\n\nimport { DAEMON_PATHS } from \"./paths.js\";\n\nexport type ServicePlatform = \"darwin\" | \"linux\";\nexport interface InstallResult {\n platform: ServicePlatform;\n unitPath: string;\n /** Shell snippet that the operator can run to bring the service up now. */\n bootCommand: string;\n}\n\nconst SERVICE_LABEL = \"com.claudemesh.daemon\";\nconst SYSTEMD_UNIT = \"claudemesh-daemon.service\";\n\nexport function detectPlatform(): ServicePlatform | null {\n if (process.platform === \"darwin\") return \"darwin\";\n if (process.platform === \"linux\") return \"linux\";\n return null;\n}\n\nfunction isCi(): boolean {\n return !!(process.env.CI || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI || process.env.BUILDKITE\n || process.env.CIRCLECI || process.env.JENKINS_URL);\n}\n\nexport interface InstallArgs {\n /** Path to the `claudemesh` binary, e.g. /opt/homebrew/bin/claudemesh */\n binaryPath: string;\n /** Mesh slug to attach to. */\n meshSlug: string;\n /** Optional display name. */\n displayName?: string;\n /** Override the auto-detected CI refusal. */\n allowCi?: boolean;\n}\n\nexport function installService(args: InstallArgs): InstallResult {\n const platform = detectPlatform();\n if (!platform) throw new Error(`unsupported platform: ${process.platform}`);\n if (isCi() && !args.allowCi) {\n throw new Error(\"Refusing to install persistent service in CI; pass --allow-ci-persistent to override.\");\n }\n if (!existsSync(args.binaryPath)) {\n throw new Error(`binary not found at ${args.binaryPath}`);\n }\n // Make sure the daemon dir exists so the launchd/systemd log paths resolve.\n mkdirSync(DAEMON_PATHS.DAEMON_DIR, { recursive: true, mode: 0o700 });\n\n if (platform === \"darwin\") return installDarwin(args);\n return installLinux(args);\n}\n\nexport function uninstallService(): { platform: ServicePlatform | null; removed: string[] } {\n const platform = detectPlatform();\n const removed: string[] = [];\n if (platform === \"darwin\") {\n const p = darwinPlistPath();\n try { execSync(`launchctl bootout gui/$(id -u)/${SERVICE_LABEL}`, { stdio: \"ignore\" }); } catch { /* not loaded */ }\n if (existsSync(p)) { unlinkSync(p); removed.push(p); }\n } else if (platform === \"linux\") {\n const p = linuxUnitPath();\n try { execSync(`systemctl --user disable --now ${SYSTEMD_UNIT}`, { stdio: \"ignore\" }); } catch { /* not loaded */ }\n if (existsSync(p)) { unlinkSync(p); removed.push(p); }\n }\n return { platform, removed };\n}\n\n// ── macOS ──────────────────────────────────────────────────────────────\n\nfunction darwinPlistPath(): string {\n return join(homedir(), \"Library\", \"LaunchAgents\", `${SERVICE_LABEL}.plist`);\n}\n\nfunction installDarwin(args: InstallArgs): InstallResult {\n const plist = darwinPlistPath();\n mkdirSync(dirname(plist), { recursive: true });\n const log = DAEMON_PATHS.LOG_FILE;\n const meshArgs = [\n \"<string>daemon</string>\",\n \"<string>up</string>\",\n \"<string>--mesh</string>\",\n `<string>${escapeXml(args.meshSlug)}</string>`,\n ...(args.displayName ? [\"<string>--name</string>\", `<string>${escapeXml(args.displayName)}</string>`] : []),\n ].join(\"\\n \");\n\n const xml = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n <key>Label</key>\n <string>${SERVICE_LABEL}</string>\n <key>ProgramArguments</key>\n <array>\n <string>${escapeXml(args.binaryPath)}</string>\n ${meshArgs}\n </array>\n <key>RunAtLoad</key>\n <true/>\n <key>KeepAlive</key>\n <true/>\n <key>StandardOutPath</key>\n <string>${escapeXml(log)}</string>\n <key>StandardErrorPath</key>\n <string>${escapeXml(log)}</string>\n <key>WorkingDirectory</key>\n <string>${escapeXml(homedir())}</string>\n <key>EnvironmentVariables</key>\n <dict>\n <key>HOME</key>\n <string>${escapeXml(homedir())}</string>\n <key>PATH</key>\n <string>/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>\n </dict>\n</dict>\n</plist>\n`;\n writeFileSync(plist, xml, { mode: 0o644 });\n\n return {\n platform: \"darwin\",\n unitPath: plist,\n bootCommand: `launchctl bootstrap gui/$(id -u) ${shellQuote(plist)}`,\n };\n}\n\n// ── Linux ──────────────────────────────────────────────────────────────\n\nfunction linuxUnitPath(): string {\n return join(homedir(), \".config\", \"systemd\", \"user\", SYSTEMD_UNIT);\n}\n\nfunction installLinux(args: InstallArgs): InstallResult {\n const unit = linuxUnitPath();\n mkdirSync(dirname(unit), { recursive: true });\n const execArgs = [\n \"daemon\", \"up\",\n \"--mesh\", args.meshSlug,\n ...(args.displayName ? [\"--name\", args.displayName] : []),\n ].map(shellQuote).join(\" \");\n\n const content = `[Unit]\nDescription=claudemesh daemon (peer mesh runtime)\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nExecStart=${shellQuote(args.binaryPath)} ${execArgs}\nRestart=always\nRestartSec=3\nStandardOutput=append:${DAEMON_PATHS.LOG_FILE}\nStandardError=append:${DAEMON_PATHS.LOG_FILE}\nEnvironment=PATH=/usr/local/bin:/usr/bin:/bin\n\n[Install]\nWantedBy=default.target\n`;\n writeFileSync(unit, content, { mode: 0o644 });\n\n return {\n platform: \"linux\",\n unitPath: unit,\n bootCommand: `systemctl --user daemon-reload && systemctl --user enable --now ${SYSTEMD_UNIT}`,\n };\n}\n\n// ── helpers ────────────────────────────────────────────────────────────\n\nfunction escapeXml(s: string): string {\n return s.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\");\n}\n\nfunction shellQuote(s: string): string {\n if (/^[\\w@%+=:,./-]+$/.test(s)) return s;\n return \"'\" + s.replace(/'/g, \"'\\\"'\\\"'\") + \"'\";\n}\n\n/** Diagnostic helper: dump current install status for `claudemesh daemon status --json`. */\nexport function readInstalledUnit(): { platform: ServicePlatform | null; path: string | null; content: string | null } {\n const platform = detectPlatform();\n if (!platform) return { platform: null, path: null, content: null };\n const path = platform === \"darwin\" ? darwinPlistPath() : linuxUnitPath();\n if (!existsSync(path)) return { platform, path: null, content: null };\n try { return { platform, path, content: readFileSync(path, \"utf8\") }; }\n catch { return { platform, path, content: null }; }\n}\n",
127
129
  "import { runDaemon } from \"~/daemon/run.js\";\nimport { ipc, IpcError } from \"~/daemon/ipc/client.js\";\nimport { readRunningPid } from \"~/daemon/lock.js\";\nimport { DAEMON_PATHS } from \"~/daemon/paths.js\";\n\nexport interface DaemonOptions {\n json?: boolean;\n noTcp?: boolean;\n publicHealth?: boolean;\n mesh?: string;\n displayName?: string;\n /** outbox-list status filter, set from boolean flags --failed/--pending/etc. */\n outboxStatus?: \"pending\" | \"inflight\" | \"done\" | \"dead\" | \"aborted\";\n /** outbox requeue: optional id to mint a fresh client_message_id with. */\n newClientId?: string;\n}\n\nexport async function runDaemonCommand(\n sub: string | undefined,\n opts: DaemonOptions,\n rest: string[] = [],\n): Promise<number> {\n switch (sub) {\n case undefined:\n return printDaemonUsage();\n\n case \"up\":\n case \"start\":\n return runDaemon({\n tcpEnabled: !opts.noTcp,\n publicHealthCheck: opts.publicHealth,\n mesh: opts.mesh,\n displayName: opts.displayName,\n });\n\n case \"help\":\n case \"--help\":\n case \"-h\":\n return printDaemonUsage();\n\n case \"status\":\n return runStatus(opts);\n\n case \"version\":\n return runVersion(opts);\n\n case \"down\":\n case \"stop\":\n return runStop(opts);\n\n case \"accept-host\":\n return runAcceptHost(opts);\n\n case \"outbox\":\n return runOutbox(rest, opts);\n\n case \"install-service\":\n return runInstallService(opts);\n\n case \"uninstall-service\":\n return runUninstallService(opts);\n\n default:\n process.stderr.write(`unknown daemon subcommand: ${sub}\\n\\n`);\n printDaemonUsage(process.stderr);\n return 2;\n }\n}\n\nfunction printDaemonUsage(stream: NodeJS.WritableStream = process.stdout): number {\n stream.write(`claudemesh daemon — long-lived peer mesh runtime (v0.9.0)\n\nUSAGE\n claudemesh daemon <command> [options]\n\nCOMMANDS\n up | start start the daemon in the foreground\n status show running pid + IPC health\n version ipc + schema version of the running daemon\n down | stop stop the running daemon (SIGTERM, then wait)\n accept-host pin the current host fingerprint\n outbox list list local outbox rows (newest first)\n outbox requeue <id> re-enqueue an aborted / dead outbox row\n install-service --mesh <s> write launchd (macOS) / systemd-user (Linux) unit\n uninstall-service remove the platform service unit\n\nOPTIONS\n --mesh <slug> attach to / target this mesh\n --name <displayName> override CLAUDEMESH_DISPLAY_NAME\n --no-tcp disable the loopback TCP listener (UDS only)\n --public-health expose /v1/health unauthenticated on TCP\n --json machine-readable output where supported\n\nOUTBOX FLAGS (for 'daemon outbox list')\n --pending --inflight --done --failed --aborted filter by status\n\nOUTBOX FLAGS (for 'daemon outbox requeue')\n --new-client-id <id> mint the new row with this client_message_id\n\nSee ${\"https://claudemesh.com/docs\"} for the full daemon spec.\n`);\n return 0;\n}\n\ninterface OutboxRowResp {\n id: string;\n client_message_id: string;\n status: string;\n attempts: number;\n enqueued_at: string;\n next_attempt_at: string;\n delivered_at: string | null;\n broker_message_id: string | null;\n last_error: string | null;\n aborted_at: string | null;\n aborted_by: string | null;\n superseded_by: string | null;\n payload_bytes: number;\n}\n\nasync function runOutbox(rest: string[], opts: DaemonOptions): Promise<number> {\n const sub = rest[0];\n switch (sub) {\n case undefined:\n case \"list\": {\n const status = opts.outboxStatus;\n const path = `/v1/outbox${status ? `?status=${status}` : \"\"}`;\n try {\n const res = await ipc<{ items: OutboxRowResp[] }>({ path });\n if (opts.json) {\n process.stdout.write(JSON.stringify(res.body) + \"\\n\");\n return 0;\n }\n if (!res.body.items?.length) {\n process.stdout.write(\"(empty)\\n\");\n return 0;\n }\n for (const r of res.body.items) {\n const tag = r.status.padEnd(8);\n const bm = r.broker_message_id ? ` → ${r.broker_message_id}` : \"\";\n const err = r.last_error ? ` last_error=\"${r.last_error.slice(0, 60)}\"` : \"\";\n process.stdout.write(`${tag} ${r.id} cid=${r.client_message_id} attempts=${r.attempts}${bm}${err}\\n`);\n }\n return 0;\n } catch (err) {\n process.stderr.write(`daemon unreachable: ${String(err)}\\n`);\n return 1;\n }\n }\n\n case \"requeue\": {\n const id = rest[1];\n if (!id) { process.stderr.write(\"usage: claudemesh daemon outbox requeue <id> [--new-client-id <id>]\\n\"); return 2; }\n const newClientMessageId = opts.newClientId;\n try {\n const res = await ipc<{\n aborted_row_id: string; new_row_id: string; new_client_message_id: string; error?: string;\n }>({\n method: \"POST\",\n path: \"/v1/outbox/requeue\",\n body: { id, new_client_message_id: newClientMessageId },\n });\n if (res.status === 200) {\n if (opts.json) process.stdout.write(JSON.stringify(res.body) + \"\\n\");\n else process.stdout.write(\n `requeued: aborted ${res.body.aborted_row_id} → new ${res.body.new_row_id} ` +\n `(client_message_id=${res.body.new_client_message_id})\\n`,\n );\n return 0;\n }\n process.stderr.write(`requeue failed (${res.status}): ${res.body.error ?? \"unknown\"}\\n`);\n return 1;\n } catch (err) {\n process.stderr.write(`daemon unreachable: ${String(err)}\\n`);\n return 1;\n }\n }\n\n default:\n process.stderr.write(`unknown outbox subcommand: ${sub}\\n`);\n process.stderr.write(`usage: claudemesh daemon outbox [list|requeue <id>]\\n`);\n return 2;\n }\n}\n\nasync function runInstallService(opts: DaemonOptions): Promise<number> {\n const { installService, detectPlatform } = await import(\"~/daemon/service-install.js\");\n const platform = detectPlatform();\n if (!platform) {\n process.stderr.write(`unsupported platform: ${process.platform}\\n`);\n return 2;\n }\n if (!opts.mesh) {\n process.stderr.write(`pass --mesh <slug> so the service knows which mesh to attach to\\n`);\n return 2;\n }\n // Resolve the binary path. Prefer the running argv[0] when it's an\n // installed claudemesh binary; fall back to whichever `claudemesh` is\n // first on PATH.\n let binary = process.argv[1] ?? \"\";\n if (!binary || /\\.ts$/.test(binary) || /node_modules|src\\/entrypoints/.test(binary)) {\n try {\n const { execSync } = await import(\"node:child_process\");\n binary = execSync(\"which claudemesh\", { encoding: \"utf8\" }).trim();\n } catch {\n process.stderr.write(`couldn't resolve a 'claudemesh' binary on PATH; install via npm/homebrew first\\n`);\n return 1;\n }\n }\n try {\n const r = installService({\n binaryPath: binary,\n meshSlug: opts.mesh,\n displayName: opts.displayName,\n });\n if (opts.json) {\n process.stdout.write(JSON.stringify({ ok: true, ...r }) + \"\\n\");\n } else {\n process.stdout.write(`installed ${r.platform} service unit: ${r.unitPath}\\n`);\n process.stdout.write(`bring it up now: ${r.bootCommand}\\n`);\n }\n return 0;\n } catch (err) {\n process.stderr.write(`install-service failed: ${String(err)}\\n`);\n return 1;\n }\n}\n\nasync function runUninstallService(opts: DaemonOptions): Promise<number> {\n const { uninstallService } = await import(\"~/daemon/service-install.js\");\n const r = uninstallService();\n if (opts.json) process.stdout.write(JSON.stringify(r) + \"\\n\");\n else if (r.removed.length === 0) process.stdout.write(\"no service unit installed\\n\");\n else process.stdout.write(`removed: ${r.removed.join(\", \")}\\n`);\n return 0;\n}\n\nasync function runAcceptHost(opts: DaemonOptions): Promise<number> {\n const { acceptCurrentHost } = await import(\"~/daemon/identity.js\");\n const fp = acceptCurrentHost();\n if (opts.json) process.stdout.write(JSON.stringify({ ok: true, fingerprint_prefix: fp.fingerprint.slice(0, 16) }) + \"\\n\");\n else process.stdout.write(`host fingerprint accepted: ${fp.fingerprint.slice(0, 16)}…\\n`);\n return 0;\n}\n\nasync function runStatus(opts: DaemonOptions): Promise<number> {\n const pid = readRunningPid();\n if (!pid) {\n if (opts.json) process.stdout.write(JSON.stringify({ running: false }) + \"\\n\");\n else process.stdout.write(\"daemon: not running\\n\");\n return 1;\n }\n try {\n const res = await ipc<{ ok: boolean; pid: number }>({ path: \"/v1/health\" });\n if (opts.json) {\n process.stdout.write(JSON.stringify({ running: true, pid, health: res.body }) + \"\\n\");\n } else {\n process.stdout.write(`daemon: running (pid ${pid})\\n`);\n process.stdout.write(`socket: ${DAEMON_PATHS.SOCK_FILE}\\n`);\n }\n return 0;\n } catch (err) {\n if (opts.json) process.stdout.write(JSON.stringify({ running: true, pid, ipc_error: String(err) }) + \"\\n\");\n else process.stdout.write(`daemon: pid ${pid} alive but IPC unreachable (${String(err)})\\n`);\n return 1;\n }\n}\n\nasync function runVersion(opts: DaemonOptions): Promise<number> {\n try {\n const res = await ipc<Record<string, unknown>>({ path: \"/v1/version\" });\n if (opts.json) process.stdout.write(JSON.stringify(res.body) + \"\\n\");\n else {\n const v = res.body as { daemon_version?: string; ipc_api?: string; schema_version?: number };\n process.stdout.write(`daemon ${v.daemon_version ?? \"unknown\"} (ipc ${v.ipc_api ?? \"?\"}, schema ${v.schema_version ?? \"?\"})\\n`);\n }\n return 0;\n } catch (err) {\n if (err instanceof IpcError) {\n process.stderr.write(`${err.message}\\n`);\n return err.status === 401 ? 3 : 1;\n }\n process.stderr.write(`daemon unreachable: ${String(err)}\\n`);\n return 1;\n }\n}\n\nasync function runStop(opts: DaemonOptions): Promise<number> {\n const pid = readRunningPid();\n if (!pid) {\n if (opts.json) process.stdout.write(JSON.stringify({ stopped: false, reason: \"not_running\" }) + \"\\n\");\n else process.stdout.write(\"daemon: not running\\n\");\n return 0;\n }\n try {\n process.kill(pid, \"SIGTERM\");\n } catch (err) {\n process.stderr.write(`failed to signal pid ${pid}: ${String(err)}\\n`);\n return 1;\n }\n // Brief wait for the daemon to release its lock cleanly.\n for (let i = 0; i < 50; i++) {\n await new Promise<void>((r) => setTimeout(r, 100));\n if (!readRunningPid()) {\n if (opts.json) process.stdout.write(JSON.stringify({ stopped: true, pid }) + \"\\n\");\n else process.stdout.write(`daemon: stopped (was pid ${pid})\\n`);\n return 0;\n }\n }\n if (opts.json) process.stdout.write(JSON.stringify({ stopped: false, pid, reason: \"shutdown_timeout\" }) + \"\\n\");\n else process.stdout.write(`daemon: signaled but did not exit within 5s (pid ${pid})\\n`);\n return 1;\n}\n",
128
130
  "/**\n * `claudemesh install` / `uninstall` — manage Claude Code MCP registration.\n *\n * install:\n * 1. Preflight: bun is on PATH, this package's MCP entry is on disk.\n * 2. Read ~/.claude.json (or empty object if absent).\n * 3. Add/update `mcpServers.claudemesh` with the resolved entry path.\n * 4. Write back with 0600 perms.\n * 5. Verify via read-back, print success.\n *\n * uninstall:\n * 1. Read ~/.claude.json (bail if missing).\n * 2. Delete `mcpServers.claudemesh` if present.\n * 3. Write back.\n *\n * Both are idempotent — re-running install is a no-op if the entry is\n * already correct, and uninstall is a no-op if no entry exists.\n */\n\nimport {\n chmodSync,\n copyFileSync,\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from \"node:fs\";\nimport { homedir, platform } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { spawnSync } from \"node:child_process\";\nimport { readConfig } from \"~/services/config/facade.js\";\nimport { render } from \"~/ui/render.js\";\nimport { bold, clay, dim, yellow } from \"~/ui/styles.js\";\n\nconst MCP_NAME = \"claudemesh\";\nconst CLAUDE_CONFIG = join(homedir(), \".claude.json\");\nconst CLAUDE_SETTINGS = join(homedir(), \".claude\", \"settings.json\");\nconst HOOK_COMMAND_STOP = \"claudemesh hook idle\";\nconst HOOK_COMMAND_USER_PROMPT = \"claudemesh hook working\";\nconst HOOK_MARKER = \"claudemesh hook \";\n\ntype McpEntry = {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n};\n\ninterface HookCommand {\n type: \"command\";\n command: string;\n}\ninterface HookMatcher {\n matcher?: string;\n hooks: HookCommand[];\n}\ntype HooksConfig = Record<string, HookMatcher[]>;\n\nfunction readClaudeConfig(): Record<string, unknown> {\n if (!existsSync(CLAUDE_CONFIG)) return {};\n const text = readFileSync(CLAUDE_CONFIG, \"utf-8\").trim();\n if (!text) return {};\n try {\n return JSON.parse(text) as Record<string, unknown>;\n } catch (e) {\n throw new Error(\n `failed to parse ${CLAUDE_CONFIG}: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n}\n\n/**\n * Create a timestamped backup of ~/.claude.json before any write.\n */\nfunction backupClaudeConfig(): void {\n if (!existsSync(CLAUDE_CONFIG)) return;\n const backupDir = join(dirname(CLAUDE_CONFIG), \".claude\", \"backups\");\n mkdirSync(backupDir, { recursive: true });\n const ts = Date.now();\n const dest = join(backupDir, `.claude.json.pre-claudemesh.${ts}`);\n copyFileSync(CLAUDE_CONFIG, dest);\n}\n\n/**\n * Atomic read-merge-write: re-reads ~/.claude.json at write time and\n * patches ONLY the `claudemesh` MCP entry. Never touches other keys.\n * Returns the action taken (\"added\" | \"updated\" | \"unchanged\").\n */\nfunction patchMcpServer(entry: McpEntry): \"added\" | \"updated\" | \"unchanged\" {\n backupClaudeConfig();\n const cfg = readClaudeConfig();\n const servers =\n ((cfg.mcpServers as Record<string, McpEntry>) ?? {});\n if (!cfg.mcpServers) cfg.mcpServers = servers;\n\n const existing = servers[MCP_NAME];\n let action: \"added\" | \"updated\" | \"unchanged\";\n if (!existing) {\n servers[MCP_NAME] = entry;\n action = \"added\";\n } else if (entriesEqual(existing, entry)) {\n return \"unchanged\";\n } else {\n servers[MCP_NAME] = entry;\n action = \"updated\";\n }\n\n flushClaudeConfig(cfg);\n return action;\n}\n\n/**\n * Atomic read-merge-write: re-reads ~/.claude.json at write time and\n * removes ONLY the `claudemesh` MCP entry. Never touches other keys.\n * Returns true if an entry was removed.\n */\nfunction removeMcpServer(): boolean {\n if (!existsSync(CLAUDE_CONFIG)) return false;\n backupClaudeConfig();\n const cfg = readClaudeConfig();\n const servers = cfg.mcpServers as Record<string, McpEntry> | undefined;\n if (!servers || !(MCP_NAME in servers)) return false;\n delete servers[MCP_NAME];\n cfg.mcpServers = servers;\n flushClaudeConfig(cfg);\n return true;\n}\n\n/** Low-level write — callers must backup + merge first. */\nfunction flushClaudeConfig(obj: Record<string, unknown>): void {\n mkdirSync(dirname(CLAUDE_CONFIG), { recursive: true });\n writeFileSync(\n CLAUDE_CONFIG,\n JSON.stringify(obj, null, 2) + \"\\n\",\n \"utf-8\",\n );\n try {\n chmodSync(CLAUDE_CONFIG, 0o600);\n } catch {\n /* windows has no chmod */\n }\n}\n\n\n/** Check `bun` is on PATH — OS-agnostic, node:child_process. */\nfunction bunAvailable(): boolean {\n const res =\n platform() === \"win32\"\n ? spawnSync(\"where\", [\"bun\"])\n : spawnSync(\"sh\", [\"-c\", \"command -v bun\"]);\n return res.status === 0;\n}\n\n/** Is this file running from a bundled `dist/` directory? */\nfunction isBundledFile(p: string): boolean {\n // Match any file under dist/ — e.g. dist/index.js or dist/entrypoints/cli.js.\n return /[/\\\\]dist[/\\\\]/.test(p);\n}\n\n/** Absolute path to this CLI's entry file. */\nfunction resolveEntry(): string {\n const here = fileURLToPath(import.meta.url);\n // Bundled: this file IS reachable as the entry; return self.\n // Source: walk up to apps/cli/src/index.ts (legacy) or fall back.\n if (isBundledFile(here)) return here;\n return resolve(dirname(here), \"..\", \"index.ts\");\n}\n\n/** Find the bundled `skills/` directory at install time. Walks up from\n * the entry file: dist/entrypoints/cli.js → dist/ → package root → skills/. */\nfunction resolveBundledSkillsDir(): string | null {\n const here = fileURLToPath(import.meta.url);\n // Bundled: <pkg>/dist/entrypoints/cli.js → walk up two levels to <pkg>\n // Source: <pkg>/src/commands/install.ts → walk up two levels to <pkg>\n const pkgRoot = resolve(dirname(here), \"..\", \"..\");\n const skillsDir = join(pkgRoot, \"skills\");\n if (existsSync(skillsDir)) return skillsDir;\n return null;\n}\n\n/** ~/.claude/skills/ — where Claude Code looks for user-scoped skills. */\nconst CLAUDE_SKILLS_ROOT = join(homedir(), \".claude\", \"skills\");\n\n/**\n * Copy bundled skills into ~/.claude/skills/. Idempotent — overwrites\n * existing files (so updates flow through on `claudemesh install` re-run).\n * Returns the list of skill names installed.\n */\nfunction installSkills(): string[] {\n const src = resolveBundledSkillsDir();\n if (!src) return [];\n // Each subdirectory of skills/ is one skill (matches Claude Code convention).\n const fs = require(\"node:fs\") as typeof import(\"node:fs\");\n const installed: string[] = [];\n for (const entry of fs.readdirSync(src, { withFileTypes: true })) {\n if (!entry.isDirectory()) continue;\n const srcDir = join(src, entry.name);\n const dstDir = join(CLAUDE_SKILLS_ROOT, entry.name);\n mkdirSync(dstDir, { recursive: true });\n for (const file of fs.readdirSync(srcDir, { withFileTypes: true })) {\n if (!file.isFile()) continue;\n copyFileSync(join(srcDir, file.name), join(dstDir, file.name));\n }\n installed.push(entry.name);\n }\n return installed;\n}\n\n/** Remove claudemesh-shipped skills from ~/.claude/skills/. Returns names removed. */\nfunction uninstallSkills(): string[] {\n const src = resolveBundledSkillsDir();\n if (!src) return [];\n const fs = require(\"node:fs\") as typeof import(\"node:fs\");\n const removed: string[] = [];\n for (const entry of fs.readdirSync(src, { withFileTypes: true })) {\n if (!entry.isDirectory()) continue;\n const dstDir = join(CLAUDE_SKILLS_ROOT, entry.name);\n if (existsSync(dstDir)) {\n try {\n fs.rmSync(dstDir, { recursive: true, force: true });\n removed.push(entry.name);\n } catch { /* best effort */ }\n }\n }\n return removed;\n}\n\n/**\n * Build the MCP server entry for Claude Code's config.\n *\n * Two modes:\n * - Installed globally (npm i -g claudemesh-cli): use `claudemesh`\n * as the command, relies on it being on PATH.\n * - Local dev (bun apps/cli/src/index.ts): use `bun <absolute-path>`.\n */\nfunction buildMcpEntry(entryPath: string): McpEntry {\n if (isBundledFile(entryPath)) {\n return {\n command: \"claudemesh\",\n args: [\"mcp\"],\n };\n }\n return {\n command: \"bun\",\n args: [entryPath, \"mcp\"],\n };\n}\n\nfunction entriesEqual(a: McpEntry, b: McpEntry): boolean {\n return (\n a.command === b.command &&\n JSON.stringify(a.args ?? []) === JSON.stringify(b.args ?? [])\n );\n}\n\nfunction readClaudeSettings(): Record<string, unknown> {\n if (!existsSync(CLAUDE_SETTINGS)) return {};\n const text = readFileSync(CLAUDE_SETTINGS, \"utf-8\").trim();\n if (!text) return {};\n try {\n return JSON.parse(text) as Record<string, unknown>;\n } catch (e) {\n throw new Error(\n `failed to parse ${CLAUDE_SETTINGS}: ${e instanceof Error ? e.message : String(e)}`,\n );\n }\n}\n\nfunction writeClaudeSettings(obj: Record<string, unknown>): void {\n mkdirSync(dirname(CLAUDE_SETTINGS), { recursive: true });\n writeFileSync(\n CLAUDE_SETTINGS,\n JSON.stringify(obj, null, 2) + \"\\n\",\n \"utf-8\",\n );\n}\n\n/**\n * All claudemesh MCP tool names, prefixed for allowedTools.\n * These let Claude Code use claudemesh tools without --dangerously-skip-permissions.\n */\nconst CLAUDEMESH_TOOLS = [\n \"mcp__claudemesh__cancel_scheduled\",\n \"mcp__claudemesh__check_messages\",\n \"mcp__claudemesh__claim_task\",\n \"mcp__claudemesh__complete_task\",\n \"mcp__claudemesh__create_stream\",\n \"mcp__claudemesh__create_task\",\n \"mcp__claudemesh__delete_file\",\n \"mcp__claudemesh__file_status\",\n \"mcp__claudemesh__forget\",\n \"mcp__claudemesh__get_context\",\n \"mcp__claudemesh__get_file\",\n \"mcp__claudemesh__get_state\",\n \"mcp__claudemesh__grant_file_access\",\n \"mcp__claudemesh__graph_execute\",\n \"mcp__claudemesh__graph_query\",\n \"mcp__claudemesh__join_group\",\n \"mcp__claudemesh__leave_group\",\n \"mcp__claudemesh__list_collections\",\n \"mcp__claudemesh__list_contexts\",\n \"mcp__claudemesh__list_files\",\n \"mcp__claudemesh__list_peers\",\n \"mcp__claudemesh__list_scheduled\",\n \"mcp__claudemesh__list_state\",\n \"mcp__claudemesh__list_streams\",\n \"mcp__claudemesh__list_tasks\",\n \"mcp__claudemesh__mesh_execute\",\n \"mcp__claudemesh__mesh_info\",\n \"mcp__claudemesh__mesh_query\",\n \"mcp__claudemesh__mesh_schema\",\n \"mcp__claudemesh__message_status\",\n \"mcp__claudemesh__ping_mesh\",\n \"mcp__claudemesh__publish\",\n \"mcp__claudemesh__recall\",\n \"mcp__claudemesh__remember\",\n \"mcp__claudemesh__schedule_reminder\",\n \"mcp__claudemesh__send_message\",\n \"mcp__claudemesh__set_state\",\n \"mcp__claudemesh__set_status\",\n \"mcp__claudemesh__set_summary\",\n \"mcp__claudemesh__share_context\",\n \"mcp__claudemesh__share_file\",\n \"mcp__claudemesh__subscribe\",\n \"mcp__claudemesh__vector_delete\",\n \"mcp__claudemesh__vector_search\",\n \"mcp__claudemesh__vector_store\",\n];\n\n/**\n * Pre-approve all claudemesh MCP tools in allowedTools.\n * Merges into any existing list — never overwrites other entries.\n * Returns which tools were added vs already present.\n */\nfunction installAllowedTools(): { added: string[]; unchanged: number } {\n const settings = readClaudeSettings();\n const existing = new Set<string>((settings.allowedTools as string[] | undefined) ?? []);\n const toAdd = CLAUDEMESH_TOOLS.filter((t) => !existing.has(t));\n if (toAdd.length > 0) {\n settings.allowedTools = [...Array.from(existing), ...toAdd];\n writeClaudeSettings(settings);\n }\n return { added: toAdd, unchanged: CLAUDEMESH_TOOLS.length - toAdd.length };\n}\n\n/**\n * Remove claudemesh tools from allowedTools.\n * Leaves all other entries intact. Returns count removed.\n */\nfunction uninstallAllowedTools(): number {\n if (!existsSync(CLAUDE_SETTINGS)) return 0;\n const settings = readClaudeSettings();\n const existing = (settings.allowedTools as string[] | undefined) ?? [];\n const toolSet = new Set(CLAUDEMESH_TOOLS);\n const kept = existing.filter((t) => !toolSet.has(t));\n const removed = existing.length - kept.length;\n if (removed > 0) {\n settings.allowedTools = kept;\n writeClaudeSettings(settings);\n }\n return removed;\n}\n\n/**\n * Add a Stop + UserPromptSubmit hook entry to ~/.claude/settings.json,\n * idempotent on the command string. Returns counts for reporting.\n */\nfunction installHooks(): { added: number; unchanged: number } {\n const settings = readClaudeSettings();\n const hooks = ((settings.hooks ??= {}) as HooksConfig) ?? {};\n let added = 0;\n let unchanged = 0;\n\n const ensure = (event: string, command: string): void => {\n const list = (hooks[event] ??= []);\n const alreadyPresent = list.some((entry) =>\n (entry.hooks ?? []).some((h) => h.command === command),\n );\n if (alreadyPresent) {\n unchanged += 1;\n return;\n }\n list.push({ hooks: [{ type: \"command\", command }] });\n added += 1;\n };\n ensure(\"Stop\", HOOK_COMMAND_STOP);\n ensure(\"UserPromptSubmit\", HOOK_COMMAND_USER_PROMPT);\n\n settings.hooks = hooks;\n writeClaudeSettings(settings);\n return { added, unchanged };\n}\n\n/**\n * Remove every hook entry whose command contains \"claudemesh hook \"\n * from ~/.claude/settings.json. Idempotent. Returns removed count.\n */\nfunction uninstallHooks(): number {\n if (!existsSync(CLAUDE_SETTINGS)) return 0;\n const settings = readClaudeSettings();\n const hooks = settings.hooks as HooksConfig | undefined;\n if (!hooks) return 0;\n let removed = 0;\n for (const event of Object.keys(hooks)) {\n const kept: HookMatcher[] = [];\n for (const entry of hooks[event] ?? []) {\n const filtered = (entry.hooks ?? []).filter(\n (h) => !(h.command ?? \"\").includes(HOOK_MARKER),\n );\n removed += (entry.hooks ?? []).length - filtered.length;\n if (filtered.length > 0) kept.push({ ...entry, hooks: filtered });\n }\n if (kept.length === 0) delete hooks[event];\n else hooks[event] = kept;\n }\n settings.hooks = hooks;\n writeClaudeSettings(settings);\n return removed;\n}\n\nfunction installStatusLine(): { installed: boolean } {\n const settings = readClaudeSettings();\n const cmd = `claudemesh status-line`;\n const current = (settings as { statusLine?: { command?: string } }).statusLine;\n // If the user has their own statusLine command, don't clobber it.\n if (current?.command && !current.command.includes(\"claudemesh status-line\")) {\n return { installed: false };\n }\n (settings as { statusLine?: { type: string; command: string } }).statusLine = {\n type: \"command\",\n command: cmd,\n };\n writeClaudeSettings(settings);\n return { installed: true };\n}\n\nexport function runInstall(args: string[] = []): void {\n const skipHooks = args.includes(\"--no-hooks\");\n const skipSkill = args.includes(\"--no-skill\");\n const skipService = args.includes(\"--no-service\");\n const wantStatusLine = args.includes(\"--status-line\");\n render.section(\"claudemesh install\");\n\n const entry = resolveEntry();\n const bundled = isBundledFile(entry);\n\n if (!bundled && !bunAvailable()) {\n render.err(\"`bun` is not on PATH.\", \"Install Bun first: https://bun.com\");\n process.exit(1);\n }\n if (!existsSync(entry)) {\n render.err(`MCP entry not found at ${entry}`);\n process.exit(1);\n }\n\n const desired = buildMcpEntry(entry);\n const action = patchMcpServer(desired);\n\n const verify = readClaudeConfig();\n const verifyServers = (verify.mcpServers ?? {}) as Record<string, McpEntry>;\n const stored = verifyServers[MCP_NAME];\n if (!stored || !entriesEqual(stored, desired)) {\n render.err(\"post-write verification failed\", `${CLAUDE_CONFIG} may be corrupt`);\n process.exit(1);\n }\n\n render.ok(`MCP server \"${bold(MCP_NAME)}\" ${action}`);\n render.kv([\n [\"config\", dim(CLAUDE_CONFIG)],\n [\"command\", dim(`${desired.command}${desired.args?.length ? \" \" + desired.args.join(\" \") : \"\"}`)],\n ]);\n\n try {\n const { added, unchanged } = installAllowedTools();\n if (added.length > 0) {\n render.ok(\n `allowedTools: ${added.length} claudemesh tools pre-approved`,\n unchanged > 0 ? `${unchanged} already present` : undefined,\n );\n render.info(dim(\"This lets claudemesh tools run without --dangerously-skip-permissions.\"));\n render.info(dim(\"Your existing allowedTools entries were preserved.\"));\n } else {\n render.ok(`allowedTools: all ${unchanged} claudemesh tools already pre-approved`);\n }\n render.info(dim(` config: ${CLAUDE_SETTINGS}`));\n } catch (e) {\n render.warn(`allowedTools update failed: ${e instanceof Error ? e.message : String(e)}`);\n }\n\n if (!skipHooks) {\n try {\n const { added, unchanged } = installHooks();\n if (added > 0) {\n render.ok(\n `Hooks registered (Stop + UserPromptSubmit)`,\n `${added} added, ${unchanged} already present`,\n );\n } else {\n render.ok(`Hooks already registered`, `${unchanged} present`);\n }\n render.info(dim(` config: ${CLAUDE_SETTINGS}`));\n } catch (e) {\n render.warn(\n `hook registration failed: ${e instanceof Error ? e.message : String(e)}`,\n \"MCP is still installed — hooks just skip. Retry with --no-hooks to suppress.\",\n );\n }\n } else {\n render.info(dim(\"· Hooks skipped (--no-hooks)\"));\n }\n\n // Claude skill — discoverability replacement for the (now-empty) MCP\n // tool surface. Claude reads ~/.claude/skills/claudemesh/SKILL.md on\n // demand, learns every CLI verb, JSON shape, and gotcha. See spec\n // 2026-05-02 commitment #6.\n if (!skipSkill) {\n try {\n const installed = installSkills();\n if (installed.length > 0) {\n render.ok(\n `Claude skill${installed.length === 1 ? \"\" : \"s\"} installed`,\n installed.join(\", \"),\n );\n render.info(dim(` ${join(CLAUDE_SKILLS_ROOT, installed[0]!)}/SKILL.md`));\n }\n } catch (e) {\n render.warn(`skill install failed: ${e instanceof Error ? e.message : String(e)}`);\n }\n } else {\n render.info(dim(\"· Skill install skipped (--no-skill)\"));\n }\n\n if (wantStatusLine) {\n try {\n const { installed } = installStatusLine();\n if (installed) {\n render.ok(`Claude Code statusLine → ${clay(\"claudemesh status-line\")}`);\n render.info(dim(\" Shows: ◇ <mesh> · <online>/<total> online · <you>\"));\n } else {\n render.info(dim(\"· statusLine already set to a custom command — left alone\"));\n }\n } catch (e) {\n render.warn(`statusLine install failed: ${e instanceof Error ? e.message : String(e)}`);\n }\n }\n\n let hasMeshes = false;\n let primaryMesh: string | undefined;\n try {\n const meshConfig = readConfig();\n hasMeshes = meshConfig.meshes.length > 0;\n primaryMesh = meshConfig.meshes[0]?.slug;\n } catch {}\n\n // Daemon service install — required for MCP integration as of 1.24.0.\n // The daemon owns the broker WS and feeds the MCP push-pipe via SSE;\n // skipping it leaves channel push, slash commands, and resources broken.\n if (!skipService && hasMeshes && primaryMesh) {\n try {\n installDaemonService(entry, primaryMesh);\n } catch (e) {\n render.warn(\n `daemon service install failed: ${e instanceof Error ? e.message : String(e)}`,\n \"Run `claudemesh daemon install-service --mesh <slug>` to retry.\",\n );\n }\n } else if (skipService) {\n render.info(dim(\"· Daemon service skipped (--no-service)\"));\n render.info(dim(\" MCP integration will fail at boot until you start the daemon manually:\"));\n render.info(dim(\" claudemesh daemon up --mesh <slug>\"));\n } else if (!hasMeshes) {\n render.info(dim(\"· Daemon service deferred — join a mesh first, then run install again.\"));\n }\n\n render.blank();\n render.warn(`${bold(\"RESTART CLAUDE CODE\")} ${yellow(\"for MCP tools to appear.\")}`);\n\n if (!hasMeshes) {\n render.blank();\n render.info(`${yellow(\"No meshes joined.\")} To connect with peers:`);\n render.info(` ${bold(\"claudemesh <invite-url>\")}${dim(\" — joins + launches in one step\")}`);\n render.info(` ${dim(\"Create one at\")} ${bold(\"https://claudemesh.com/dashboard\")}`);\n } else {\n render.blank();\n render.info(`Next: ${bold(\"claudemesh\")}${dim(\" — launch with your joined mesh\")}`);\n }\n\n render.blank();\n render.info(dim(\"Optional:\"));\n render.info(dim(` claudemesh url-handler install # click-to-launch from email`));\n render.info(dim(` claudemesh install --status-line # live peer count in Claude Code`));\n render.info(dim(` claudemesh completions zsh # shell completions`));\n}\n\n/**\n * Install + start the per-user daemon service for the primary mesh.\n *\n * Refuses on CI hosts (the service-install module guards this); falls\n * back to a friendly message and lets the install otherwise succeed.\n * The MCP push-pipe will fail loudly if the daemon isn't reachable, so\n * the user knows there's a problem before it shows up as \"no messages\n * arriving.\"\n */\nfunction installDaemonService(binaryEntry: string, meshSlug: string): void {\n const {\n installService,\n detectPlatform,\n } = require(\"~/daemon/service-install.js\") as typeof import(\"../daemon/service-install.js\");\n\n const platform = detectPlatform();\n if (!platform) {\n render.info(dim(`· Daemon service skipped — unsupported platform: ${process.platform}`));\n return;\n }\n\n // Resolve the binary the service unit should launch. When invoked from a\n // bundled binary, argv[1] is correct. When invoked under tsx / dev, fall\n // back to whatever `claudemesh` resolves to on PATH so the unit launches\n // a shipped binary, not a dev script.\n let binary = process.argv[1] ?? binaryEntry;\n if (!binary || /\\.ts$/.test(binary) || /node_modules|src\\/entrypoints/.test(binary)) {\n try {\n const { execSync } = require(\"node:child_process\") as typeof import(\"node:child_process\");\n binary = execSync(\"which claudemesh\", { encoding: \"utf8\" }).trim();\n } catch {\n render.warn(\n \"couldn't resolve a 'claudemesh' binary on PATH; daemon service skipped\",\n \"Install via npm/homebrew, then run `claudemesh daemon install-service --mesh \" + meshSlug + \"`\",\n );\n return;\n }\n }\n\n const r = installService({ binaryPath: binary, meshSlug });\n render.ok(`daemon service installed (${r.platform})`);\n render.kv([\n [\"unit\", dim(r.unitPath)],\n [\"mesh\", dim(meshSlug)],\n ]);\n\n // Boot the unit immediately so MCP has a daemon to attach to on next\n // Claude Code launch. Best-effort: if launchctl/systemctl errors out we\n // log and continue — the user can run the boot command manually.\n try {\n const { execSync } = require(\"node:child_process\") as typeof import(\"node:child_process\");\n execSync(r.bootCommand, { stdio: \"ignore\" });\n render.ok(\"daemon started\");\n } catch (e) {\n render.warn(\n `daemon service installed but failed to start: ${e instanceof Error ? e.message : String(e)}`,\n `Run manually: ${r.bootCommand}`,\n );\n }\n}\n\nexport function runUninstall(): void {\n render.section(\"claudemesh uninstall\");\n\n if (removeMcpServer()) {\n render.ok(`MCP server \"${bold(MCP_NAME)}\" removed`);\n } else {\n render.info(dim(`· MCP server \"${MCP_NAME}\" not present`));\n }\n\n try {\n const removed = uninstallAllowedTools();\n if (removed > 0) {\n render.ok(`allowedTools: ${removed} claudemesh tools removed`);\n } else {\n render.info(dim(\"· No claudemesh allowedTools to remove\"));\n }\n } catch (e) {\n render.warn(`allowedTools removal failed: ${e instanceof Error ? e.message : String(e)}`);\n }\n\n try {\n const removed = uninstallHooks();\n if (removed > 0) {\n render.ok(`Hooks removed`, `${removed} entries`);\n } else {\n render.info(dim(\"· No claudemesh hooks to remove\"));\n }\n } catch (e) {\n render.warn(`hook removal failed: ${e instanceof Error ? e.message : String(e)}`);\n }\n\n try {\n const removed = uninstallSkills();\n if (removed.length > 0) {\n render.ok(`Skill${removed.length === 1 ? \"\" : \"s\"} removed`, removed.join(\", \"));\n } else {\n render.info(dim(\"· No claudemesh skills to remove\"));\n }\n } catch (e) {\n render.warn(`skill removal failed: ${e instanceof Error ? e.message : String(e)}`);\n }\n\n render.blank();\n render.info(\"Restart Claude Code to drop the MCP connection + hooks.\");\n}\n",
@@ -171,12 +173,12 @@
171
173
  "import { URLS } from \"~/constants/urls.js\";\nimport { TIMINGS } from \"~/constants/timings.js\";\nimport { isNewer } from \"~/utils/semver.js\";\n\nexport interface UpdateInfo {\n current: string;\n latest: string;\n updateAvailable: boolean;\n}\n\nexport async function checkForUpdate(currentVersion: string): Promise<UpdateInfo> {\n const controller = new AbortController();\n const timeout = setTimeout(() => controller.abort(), TIMINGS.API_TIMEOUT_MS);\n\n try {\n const res = await fetch(URLS.NPM_REGISTRY, {\n signal: controller.signal,\n headers: { Accept: \"application/vnd.npm.install-v1+json\" },\n });\n if (!res.ok) return { current: currentVersion, latest: currentVersion, updateAvailable: false };\n\n const data = (await res.json()) as { \"dist-tags\"?: { latest?: string } };\n const latest = data[\"dist-tags\"]?.latest ?? currentVersion;\n\n return {\n current: currentVersion,\n latest,\n updateAvailable: isNewer(currentVersion, latest),\n };\n } catch {\n return { current: currentVersion, latest: currentVersion, updateAvailable: false };\n } finally {\n clearTimeout(timeout);\n }\n}\n",
172
174
  "export function isNewer(current: string, latest: string): boolean {\n const cp = current.split(\".\").map(Number);\n const lp = latest.split(\".\").map(Number);\n const a = cp[0] ?? 0, b = cp[1] ?? 0, c = cp[2] ?? 0;\n const x = lp[0] ?? 0, y = lp[1] ?? 0, z = lp[2] ?? 0;\n return x > a || (x === a && y > b) || (x === a && y === b && z > c);\n}\n",
173
175
  "import { checkForUpdate } from \"~/services/update/facade.js\";\nimport { dim, yellow } from \"~/ui/styles.js\";\nexport async function showUpdateNotice(currentVersion: string): Promise<void> {\n try {\n const info = await checkForUpdate(currentVersion);\n if (info.updateAvailable) {\n console.error(yellow(\" Update available: \" + info.current + \" \\u2192 \" + info.latest));\n console.error(dim(\" Run: npm i -g claudemesh-cli\"));\n }\n } catch {}\n}\n",
174
- "#!/usr/bin/env node\nimport { parseArgv } from \"~/cli/argv.js\";\nimport { installSignalHandlers } from \"~/cli/handlers/signal.js\";\nimport { installErrorHandlers } from \"~/cli/handlers/error.js\";\nimport { showUpdateNotice } from \"~/cli/update-notice.js\";\nimport { VERSION } from \"~/constants/urls.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\nimport { renderVersion } from \"~/cli/output/version.js\";\nimport { isInviteUrl, normaliseInviteUrl } from \"~/utils/url.js\";\nimport { classifyInvocation } from \"~/cli/policy-classify.js\";\nimport { gate, type ApprovalMode } from \"~/services/policy/index.js\";\nimport { bold, clay, cyan, dim, orange } from \"~/ui/styles.js\";\n\ninstallSignalHandlers();\ninstallErrorHandlers();\n\nconst { command, positionals, flags } = parseArgv(process.argv);\n\n/**\n * Resolve the coarse approval mode from CLI flags + env.\n * --approval-mode <plan|read-only|write|yolo> explicit\n * -y / --yes legacy: yolo\n * $CLAUDEMESH_APPROVAL_MODE env override\n * default 'write'\n */\nfunction resolveApprovalMode(): ApprovalMode {\n const raw = (flags[\"approval-mode\"] as string | undefined)\n ?? process.env.CLAUDEMESH_APPROVAL_MODE\n ?? null;\n if (raw === \"plan\" || raw === \"read-only\" || raw === \"write\" || raw === \"yolo\") return raw;\n if (flags.y || flags.yes) return \"yolo\";\n return \"write\";\n}\n\n/**\n * Run the policy gate before dispatching a command. Returns `true` if the\n * caller should proceed; on `false`, the process should exit non-zero.\n *\n * Off-mesh commands (help, login, install...) classify as `null` and skip\n * the gate entirely — there's no broker to mutate.\n */\nasync function policyGate(): Promise<boolean> {\n const cls = classifyInvocation(command, positionals);\n if (!cls) return true;\n const mode = resolveApprovalMode();\n const yes = !!flags.y || !!flags.yes || mode === \"yolo\";\n const ok = await gate(\n {\n resource: cls.resource,\n verb: cls.verb,\n mesh: flags.mesh as string | undefined,\n mode,\n isWrite: cls.isWrite,\n yes,\n },\n { policyPath: flags.policy as string | undefined },\n );\n return ok;\n}\n\nconst HELP = `\nclaudemesh — peer mesh for Claude Code sessions\n${VERSION}\n\nUSAGE\n claudemesh auto-connect to your mesh\n claudemesh <invite-url> join a mesh, then launch\n claudemesh launch --name <n> --join <url> join + launch in one step\n\nMesh (alias: \"workspace\" — claudemesh workspace <verb> mirrors each)\n claudemesh create <name> create a new mesh\n claudemesh join <url> join a mesh (accepts short /i/ or long /join/ link)\n claudemesh launch [slug] launch Claude Code on a mesh (alias: connect)\n claudemesh list show your meshes (alias: ls)\n claudemesh delete [slug] delete a mesh (alias: rm)\n claudemesh rename <old> <new> change a mesh's slug (the identifier you see and type)\n claudemesh share [email] share mesh (invite link / send email)\n\nPeer (resource form, recommended)\n claudemesh peer list see who's online (alias: peers)\n claudemesh peer kick <p> end session (alias: kick)\n claudemesh peer disconnect <p> soft disconnect (alias: disconnect)\n claudemesh peer ban <p> ban + revoke (alias: ban)\n claudemesh peer unban <p> lift a ban (alias: unban)\n claudemesh peer bans list banned members (alias: bans)\n claudemesh peer verify [p] safety numbers (alias: verify)\n\nMessage (resource form)\n claudemesh message send <to> <m> send a message (alias: send)\n claudemesh message inbox drain pending (alias: inbox)\n claudemesh message status <id> delivery status (alias: msg-status)\n\nMemory (resource form)\n claudemesh memory remember <txt> store a memory (alias: remember)\n claudemesh memory recall <q> search memories (alias: recall)\n claudemesh memory forget <id> remove a memory (alias: forget)\n\nProfile / presence (resource form)\n claudemesh profile view or edit profile\n claudemesh profile summary <txt> broadcast summary (alias: summary)\n claudemesh profile visible y|n toggle visibility (alias: visible)\n claudemesh profile status set X set status idle/working/dnd (alias: status set)\n claudemesh group join @<name> join a group (--role X)\n claudemesh group leave @<name> leave a group\n\nAPI keys (REST + external WS auth, v0.2.0)\n claudemesh apikey create <label> issue [--cap send,read] [--topic deploys]\n claudemesh apikey list show keys (status, last-used, scope)\n claudemesh apikey revoke <id> revoke a key\n\nBridge (forward a topic between two meshes, v0.2.0)\n claudemesh bridge init print config template\n claudemesh bridge run <config> run bridge as a long-lived process\n\nTopic (conversation scope, v0.2.0)\n claudemesh topic create <name> create a topic [--description --visibility]\n claudemesh topic list list topics across all meshes (or --mesh <slug>)\n claudemesh topic join <topic> subscribe (via name or id)\n claudemesh topic leave <topic> unsubscribe\n claudemesh topic members <t> list topic subscribers\n claudemesh topic history <t> fetch message history [--limit --before]\n claudemesh topic read <topic> mark all as read\n claudemesh topic tail <topic> live SSE tail [--limit --forward-only]\n claudemesh topic post <t> <msg> encrypted REST post (v0.3.0 v2) [--reply-to <id>]\n claudemesh send \"#topic\" \"msg\" send to a topic (WS path, v1 plaintext)\n claudemesh skill print the bundled SKILL.md to stdout\n claudemesh me cross-mesh workspace overview (v0.4.0)\n claudemesh me topics cross-mesh topic list [--unread]\n claudemesh me notifications cross-mesh @-mentions [--all] [--since=ISO]\n claudemesh me activity cross-mesh recent messages [--since=ISO]\n claudemesh me search <q> cross-mesh search (topics + messages)\n claudemesh member list mesh roster with online state [--online]\n claudemesh notification list @-mentions across all meshes (or --mesh <slug>)\n\nSchedule (resource form)\n claudemesh schedule msg <m> one-shot or recurring (alias: remind)\n claudemesh schedule list list pending\n claudemesh schedule cancel <id> remove a scheduled item\n\nState / mesh introspection\n claudemesh state get|set|list shared state\n claudemesh info mesh overview\n claudemesh stats per-peer activity counters\n claudemesh ping diagnostic round-trip\n\nTasks\n claudemesh task create <title> create a new task [--assignee --priority --tags]\n claudemesh task list list tasks [--status --assignee]\n claudemesh task claim <id> claim an unclaimed task\n claudemesh task complete <id> mark task done [result]\n\nPlatform\n claudemesh vector store|search|delete|collections embedding store\n claudemesh graph query|execute \"<cypher>\" graph operations\n claudemesh context share|get|list work-context summaries\n claudemesh stream create|publish|list pub/sub event bus\n claudemesh sql query|execute|schema per-mesh SQL\n claudemesh skill list|get|remove mesh-published skills\n claudemesh vault set|list|delete encrypted secrets (set: --type env|file --mount /p)\n claudemesh watch add|list|remove URL change watchers (add: --label --interval --extract)\n claudemesh webhook create|list|delete outbound HTTP triggers\n claudemesh file share <path> [--to peer] upload (or local-host fast path if --to matches)\n claudemesh file get <id> [--out path] download by id\n claudemesh file list|status|delete shared mesh files\n claudemesh mesh-mcp list|call|catalog deployed mesh-MCP servers\n claudemesh clock set|pause|resume mesh logical clock\n\nAuth\n claudemesh login sign in (browser or paste token)\n claudemesh register create account + sign in\n claudemesh logout sign out\n claudemesh whoami show current identity\n\nSecurity\n claudemesh verify [peer] show ed25519 safety numbers (SAS)\n claudemesh grant <peer> <cap> grant capability (dm, broadcast, state-read, all)\n claudemesh revoke <peer> <cap> revoke capability (or 'all')\n claudemesh block <peer> revoke all capabilities (silent drop)\n claudemesh grants list per-peer overrides for current mesh\n claudemesh backup [file] encrypt config → portable recovery file\n claudemesh restore <file> restore config from a backup file\n\nDaemon (long-lived peer mesh runtime, v0.9.0)\n claudemesh daemon up start daemon (alias: start) [--mesh <slug>] [--no-tcp]\n claudemesh daemon status show running pid + IPC health [--json]\n claudemesh daemon down stop daemon (alias: stop)\n claudemesh daemon version ipc + schema version of running daemon\n claudemesh daemon outbox list list local outbox rows [--failed|--pending|--inflight|--done]\n claudemesh daemon outbox requeue <id> re-enqueue an aborted/dead row [--new-client-id <id>]\n claudemesh daemon accept-host pin current host fingerprint\n claudemesh daemon install-service --mesh <slug> write launchd / systemd-user unit\n claudemesh daemon uninstall-service remove the unit\n\nSetup\n claudemesh install register MCP server + hooks\n claudemesh uninstall remove MCP server + hooks\n claudemesh doctor diagnose issues (broker, node, claude)\n claudemesh status check broker connectivity\n claudemesh sync refresh mesh list from dashboard\n claudemesh completions <shell> emit bash / zsh / fish completion script\n claudemesh url-handler install register claudemesh:// click-to-launch\n claudemesh upgrade self-update to latest alpha (rustup-style)\n\nFlags\n --version, -V show version\n --help, -h show this help\n --json machine-readable output\n --mesh <slug> override mesh selection\n --approval-mode <mode> plan | read-only | write (default) | yolo\n --policy <path> override policy file\n -y, --yes skip confirmations (= --approval-mode yolo)\n -q, --quiet suppress non-essential output\n`;\n\n/**\n * Apply color treatment to the HELP block for terminal readability.\n *\n * Strategy is line-based and intentionally conservative:\n * - Section header lines (the title-case categories like `Mesh`,\n * `Topic`, `Auth`, `USAGE`) get bold + accent.\n * - Each verb row (` claudemesh <verb> ...`) gets the command tinted\n * cyan up to the second whitespace gap (separating the syntax from\n * the description), and any trailing `(alias: ...)` parenthetical\n * dimmed so it reads as secondary metadata.\n * - The header (program name + version) gets the brand orange.\n *\n * Falls through to plain output when stdout is not a TTY or NO_COLOR\n * is set — the underlying style helpers already gate on that.\n */\nfunction colorizeHelp(raw: string): string {\n const lines = raw.split(\"\\n\");\n const SECTION_HEADER_RE = /^([A-Z][A-Za-z0-9 /+-]*?)(\\s*\\(.*\\))?$/;\n const VERB_ROW_RE = /^(\\s{2})(claudemesh[^\\s]*(?:\\s+[^\\s]+)*?)(\\s{2,})(.*)$/;\n const ALIAS_RE = /(\\(alias[^)]*\\))/g;\n const out: string[] = [];\n for (const line of lines) {\n if (line.startsWith(\"claudemesh —\")) {\n out.push(orange(line));\n continue;\n }\n if (line.trim() === \"\") {\n out.push(line);\n continue;\n }\n // Section header: a line with no leading spaces that isn't a verb.\n if (!line.startsWith(\" \") && SECTION_HEADER_RE.test(line)) {\n const m = line.match(SECTION_HEADER_RE)!;\n const head = bold(clay(m[1]!));\n const meta = m[2] ? dim(m[2]) : \"\";\n out.push(head + meta);\n continue;\n }\n // Verb row: tint the syntax, dim the alias parenthetical.\n const verbMatch = line.match(VERB_ROW_RE);\n if (verbMatch) {\n const [, indent, syntax, gap, rest] = verbMatch;\n const dimmedRest = rest!.replace(ALIAS_RE, (m) => dim(m));\n out.push(`${indent}${cyan(syntax!)}${gap}${dimmedRest}`);\n continue;\n }\n out.push(line);\n }\n return out.join(\"\\n\");\n}\n\nasync function main(): Promise<void> {\n if (flags.help || flags.h) { console.log(colorizeHelp(HELP)); process.exit(EXIT.SUCCESS); }\n if (flags.version || flags.V) { console.log(renderVersion()); process.exit(EXIT.SUCCESS); }\n\n // Policy gate — runs before any broker-touching command. Skipped for help,\n // version, login/install, list, and other local-only ops via classifier.\n if (!(await policyGate())) process.exit(EXIT.PERMISSION_DENIED);\n\n // Bare command or invite URL\n if (!command || isInviteUrl(command)) {\n // `claudemesh <invite-url>` → join + launch in one step.\n // `-y` skips all interactive prompts (role=member, no groups, push mode).\n if (command && isInviteUrl(command)) {\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: flags.mesh as string | undefined,\n name: flags.name as string | undefined,\n join: normaliseInviteUrl(command),\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string | undefined,\n role: flags.role as string | undefined,\n groups: flags.groups as string | undefined,\n \"message-mode\": flags[\"message-mode\"] as string | undefined,\n \"system-prompt\": flags[\"system-prompt\"] as string | undefined,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n return;\n }\n const { readConfig } = await import(\"~/services/config/facade.js\");\n const config = readConfig();\n if (config.meshes.length === 0) {\n const { runWelcome } = await import(\"~/commands/welcome.js\");\n process.exit(await runWelcome());\n }\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: flags.mesh as string | undefined,\n name: flags.name as string | undefined,\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string | undefined,\n role: flags.role as string | undefined,\n groups: flags.groups as string | undefined,\n \"message-mode\": flags[\"message-mode\"] as string | undefined,\n \"system-prompt\": flags[\"system-prompt\"] as string | undefined,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n return;\n }\n\n switch (command) {\n case \"help\": { console.log(HELP); break; }\n\n // Mesh management\n case \"create\": case \"new\": { const { newMesh } = await import(\"~/commands/new.js\"); process.exit(await newMesh(positionals[0] ?? \"\", { json: !!flags.json })); break; }\n case \"add\": case \"join\": { const { runJoin } = await import(\"~/commands/join.js\"); await runJoin(positionals); break; }\n case \"connect\": case \"launch\": {\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: positionals[0] ?? flags.mesh as string,\n name: flags.name as string,\n join: flags.join as string,\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string,\n role: flags.role as string,\n groups: flags.groups as string,\n \"message-mode\": flags[\"message-mode\"] as string,\n \"system-prompt\": flags[\"system-prompt\"] as string,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n break;\n }\n case \"disconnect\": { console.log(\" Connection closed.\"); process.exit(EXIT.SUCCESS); break; }\n case \"list\": case \"ls\": { const { runList } = await import(\"~/commands/list.js\"); await runList(); break; }\n case \"delete\": case \"rm\": { const { deleteMesh } = await import(\"~/commands/delete-mesh.js\"); process.exit(await deleteMesh(positionals[0] ?? \"\", { yes: !!flags.y || !!flags.yes })); break; }\n case \"rename\": { const { rename } = await import(\"~/commands/rename.js\"); process.exit(await rename(positionals[0] ?? \"\", positionals[1] ?? \"\")); break; }\n case \"share\": case \"invite\": { const { invite } = await import(\"~/commands/invite.js\"); process.exit(await invite(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n // workspace — alias surface for mesh-management verbs (v1.27.0 teaser; full\n // rename arrives in 1.28.0). Each sub mirrors an existing top-level verb.\n case \"workspace\": {\n const sub = positionals[0];\n if (!sub || sub === \"launch\" || sub === \"connect\" || sub === \"open\") {\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: positionals[1] ?? flags.mesh as string,\n name: flags.name as string,\n join: flags.join as string,\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string,\n role: flags.role as string,\n groups: flags.groups as string,\n \"message-mode\": flags[\"message-mode\"] as string,\n \"system-prompt\": flags[\"system-prompt\"] as string,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n }\n else if (sub === \"list\" || sub === \"ls\") { const { runList } = await import(\"~/commands/list.js\"); await runList(); }\n else if (sub === \"info\") { const { runInfo } = await import(\"~/commands/info.js\"); await runInfo({}); }\n else if (sub === \"create\" || sub === \"new\") { const { newMesh } = await import(\"~/commands/new.js\"); process.exit(await newMesh(positionals[1] ?? \"\", { json: !!flags.json })); }\n else if (sub === \"join\" || sub === \"add\") { const { runJoin } = await import(\"~/commands/join.js\"); await runJoin(positionals.slice(1)); }\n else if (sub === \"delete\" || sub === \"rm\") { const { deleteMesh } = await import(\"~/commands/delete-mesh.js\"); process.exit(await deleteMesh(positionals[1] ?? \"\", { yes: !!flags.y || !!flags.yes })); }\n else if (sub === \"rename\") { const { rename } = await import(\"~/commands/rename.js\"); process.exit(await rename(positionals[1] ?? \"\", positionals[2] ?? \"\")); }\n else if (sub === \"share\" || sub === \"invite\") { const { invite } = await import(\"~/commands/invite.js\"); process.exit(await invite(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"overview\") { const { runMe } = await import(\"~/commands/me.js\"); process.exit(await runMe({ mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh workspace <list|info|create|join|delete|rename|share|launch|overview>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"disconnect\": { const { runDisconnect } = await import(\"~/commands/kick.js\"); process.exit(await runDisconnect(positionals[0], { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); break; }\n case \"kick\": { const { runKick } = await import(\"~/commands/kick.js\"); process.exit(await runKick(positionals[0], { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); break; }\n case \"ban\": { const { runBan } = await import(\"~/commands/ban.js\"); process.exit(await runBan(positionals[0], { mesh: flags.mesh as string })); break; }\n case \"unban\": { const { runUnban } = await import(\"~/commands/ban.js\"); process.exit(await runUnban(positionals[0], { mesh: flags.mesh as string })); break; }\n case \"bans\": { const { runBans } = await import(\"~/commands/ban.js\"); process.exit(await runBans({ mesh: flags.mesh as string, json: !!flags.json })); break; }\n\n // Messaging\n case \"peers\": { const { runPeers } = await import(\"~/commands/peers.js\"); await runPeers({ mesh: flags.mesh as string, json: flags.json as boolean | string | undefined }); break; }\n case \"send\": { const { runSend } = await import(\"~/commands/send.js\"); await runSend({ mesh: flags.mesh as string, priority: flags.priority as string, json: !!flags.json, self: !!flags.self }, positionals[0] ?? \"\", positionals.slice(1).join(\" \")); break; }\n case \"inbox\": { const { runInbox } = await import(\"~/commands/inbox.js\"); await runInbox({ json: !!flags.json }); break; }\n case \"state\": {\n const sub = positionals[0];\n if (sub === \"set\") { const { runStateSet } = await import(\"~/commands/state.js\"); await runStateSet({}, positionals[1] ?? \"\", positionals[2] ?? \"\"); }\n else if (sub === \"list\") {\n // v0.5.0 phase 2: aggregate across every mesh when --mesh is omitted.\n if (!flags.mesh) {\n const { runMeState } = await import(\"~/commands/me.js\");\n process.exit(await runMeState({ json: !!flags.json, key: flags.key as string | undefined }));\n }\n const { runStateList } = await import(\"~/commands/state.js\");\n await runStateList({});\n }\n else { const { runStateGet } = await import(\"~/commands/state.js\"); await runStateGet({}, positionals[0] ?? \"\"); }\n break;\n }\n case \"info\": { const { runInfo } = await import(\"~/commands/info.js\"); await runInfo({}); break; }\n case \"remember\": { const { remember } = await import(\"~/commands/remember.js\"); process.exit(await remember(positionals.join(\" \"), { mesh: flags.mesh as string, tags: flags.tags as string, json: !!flags.json })); break; }\n case \"recall\": {\n // v0.5.0 phase 2: aggregate across every mesh when --mesh is omitted.\n if (!flags.mesh) {\n const { runMeMemory } = await import(\"~/commands/me.js\");\n process.exit(await runMeMemory({ json: !!flags.json, query: positionals.join(\" \") }));\n }\n const { recall } = await import(\"~/commands/recall.js\");\n process.exit(await recall(positionals.join(\" \"), { mesh: flags.mesh as string, json: !!flags.json }));\n break;\n }\n case \"forget\": { const { runForget } = await import(\"~/commands/broker-actions.js\"); process.exit(await runForget(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"remind\": { const { runRemind } = await import(\"~/commands/remind.js\"); await runRemind({ mesh: flags.mesh as string }, positionals); break; }\n // (profile case moved to resource-aliases block below for sub-command extensibility)\n\n // Profile / status / visibility / groups (replacing soft-deprecated MCP tools)\n case \"summary\": { const { runSummary } = await import(\"~/commands/broker-actions.js\"); process.exit(await runSummary(positionals.join(\" \"), { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"visible\": { const { runVisible } = await import(\"~/commands/broker-actions.js\"); process.exit(await runVisible(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"group\": {\n const sub = positionals[0];\n if (sub === \"join\") { const { runGroupJoin } = await import(\"~/commands/broker-actions.js\"); process.exit(await runGroupJoin(positionals[1], { mesh: flags.mesh as string, role: flags.role as string, json: !!flags.json })); }\n else if (sub === \"leave\") { const { runGroupLeave } = await import(\"~/commands/broker-actions.js\"); process.exit(await runGroupLeave(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh group <join|leave> @<name> [--role X]\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // Mesh diagnostics + tasks\n case \"msg-status\": { const { runMsgStatus } = await import(\"~/commands/broker-actions.js\"); process.exit(await runMsgStatus(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"stats\": { const { runStats } = await import(\"~/commands/broker-actions.js\"); process.exit(await runStats({ mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"ping\": { const { runPing } = await import(\"~/commands/broker-actions.js\"); process.exit(await runPing({ mesh: flags.mesh as string, json: !!flags.json })); break; }\n // (clock + task moved to platform-actions block below for sub-command extensibility)\n\n // Auth\n case \"login\": { const { login } = await import(\"~/commands/login.js\"); process.exit(await login()); break; }\n case \"register\": { const { register } = await import(\"~/commands/register.js\"); process.exit(await register()); break; }\n case \"logout\": { const { logout } = await import(\"~/commands/logout.js\"); process.exit(await logout()); break; }\n case \"whoami\": { const { whoami } = await import(\"~/commands/whoami.js\"); process.exit(await whoami({ json: !!flags.json })); break; }\n\n // Daemon (v0.9.0)\n case \"daemon\": {\n const { runDaemonCommand } = await import(\"~/commands/daemon.js\");\n const sub = positionals[0];\n const rest = positionals.slice(1);\n const outboxStatus =\n flags.failed ? \"dead\" :\n flags.pending ? \"pending\" :\n flags.inflight ? \"inflight\" :\n flags.done ? \"done\" :\n flags.aborted ? \"aborted\" : undefined;\n const code = await runDaemonCommand(sub, {\n json: !!flags.json,\n noTcp: !!flags[\"no-tcp\"],\n publicHealth: !!flags[\"public-health\"],\n mesh: flags.mesh as string | undefined,\n displayName: flags.name as string | undefined,\n outboxStatus,\n newClientId: flags[\"new-client-id\"] as string | undefined,\n }, rest);\n process.exit(code);\n break;\n }\n\n // Setup\n case \"install\": { const { runInstall } = await import(\"~/commands/install.js\"); runInstall(positionals); break; }\n case \"uninstall\": { const { uninstall } = await import(\"~/commands/uninstall.js\"); process.exit(await uninstall()); break; }\n case \"doctor\": { const { runDoctor } = await import(\"~/commands/doctor.js\"); await runDoctor(); break; }\n case \"status\": {\n // `claudemesh status set <state>` → set peer status (idle/working/dnd)\n // `claudemesh status` (no args) → broker connectivity diagnostic\n if (positionals[0] === \"set\") {\n const { runStatusSet } = await import(\"~/commands/broker-actions.js\");\n process.exit(await runStatusSet(positionals[1] ?? \"\", { mesh: flags.mesh as string, json: !!flags.json }));\n } else {\n const { runStatus } = await import(\"~/commands/status.js\");\n await runStatus();\n }\n break;\n }\n case \"sync\": { const { runSync } = await import(\"~/commands/sync.js\"); await runSync({ force: !!flags.force }); break; }\n\n // Test\n case \"test\": { const { runTest } = await import(\"~/commands/test.js\"); process.exit(await runTest()); break; }\n\n // CLI utilities\n case \"completions\": { const { runCompletions } = await import(\"~/commands/completions.js\"); process.exit(await runCompletions(positionals[0])); break; }\n case \"verify\": { const { runVerify } = await import(\"~/commands/verify.js\"); process.exit(await runVerify(positionals[0], { mesh: flags.mesh as string | undefined, json: !!flags.json })); break; }\n case \"url-handler\": { const { runUrlHandler } = await import(\"~/commands/url-handler.js\"); process.exit(await runUrlHandler(positionals[0])); break; }\n case \"status-line\": { const { runStatusLine } = await import(\"~/commands/status-line.js\"); process.exit(await runStatusLine()); break; }\n case \"backup\": { const { runBackup } = await import(\"~/commands/backup.js\"); process.exit(await runBackup(positionals[0])); break; }\n case \"restore\": { const { runRestore } = await import(\"~/commands/backup.js\"); process.exit(await runRestore(positionals[0])); break; }\n case \"upgrade\": case \"update\": { const { runUpgrade } = await import(\"~/commands/upgrade.js\"); process.exit(await runUpgrade({ check: !!flags.check, yes: !!flags.y || !!flags.yes })); break; }\n case \"grant\": { const { runGrant } = await import(\"~/commands/grants.js\"); process.exit(await runGrant(positionals[0], positionals.slice(1), { mesh: flags.mesh as string | undefined })); break; }\n case \"revoke\": { const { runRevoke } = await import(\"~/commands/grants.js\"); process.exit(await runRevoke(positionals[0], positionals.slice(1), { mesh: flags.mesh as string | undefined })); break; }\n case \"block\": { const { runBlock } = await import(\"~/commands/grants.js\"); process.exit(await runBlock(positionals[0], { mesh: flags.mesh as string | undefined })); break; }\n case \"grants\": { const { runGrants } = await import(\"~/commands/grants.js\"); process.exit(await runGrants({ mesh: flags.mesh as string | undefined, json: !!flags.json })); break; }\n\n // ── Resource-model aliases (1.4.0) ─────────────────────────────────\n // Each `<resource> <verb>` form proxies to the existing legacy verb.\n // The legacy verbs (`send`, `peers`, `kick`, `remember`, ...) keep\n // working so old scripts never break. Spec: 2026-05-02 commitment #2.\n\n case \"peer\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: flags.json as boolean | string | undefined };\n const id = positionals[1] ?? \"\";\n if (sub === \"list\") { const { runPeers } = await import(\"~/commands/peers.js\"); await runPeers(f); }\n else if (sub === \"kick\") { const { runKick } = await import(\"~/commands/kick.js\"); process.exit(await runKick(id, { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); }\n else if (sub === \"disconnect\") { const { runDisconnect } = await import(\"~/commands/kick.js\"); process.exit(await runDisconnect(id, { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); }\n else if (sub === \"ban\") { const { runBan } = await import(\"~/commands/ban.js\"); process.exit(await runBan(id, { mesh: flags.mesh as string })); }\n else if (sub === \"unban\") { const { runUnban } = await import(\"~/commands/ban.js\"); process.exit(await runUnban(id, { mesh: flags.mesh as string })); }\n else if (sub === \"bans\") { const { runBans } = await import(\"~/commands/ban.js\"); process.exit(await runBans({ mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"verify\") { const { runVerify } = await import(\"~/commands/verify.js\"); process.exit(await runVerify(id || undefined, { mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh peer <list|kick|disconnect|ban|unban|bans|verify>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"message\": {\n const sub = positionals[0];\n if (sub === \"send\") { const { runSend } = await import(\"~/commands/send.js\"); await runSend({ mesh: flags.mesh as string, priority: flags.priority as string, json: !!flags.json }, positionals[1] ?? \"\", positionals.slice(2).join(\" \")); }\n else if (sub === \"inbox\") { const { runInbox } = await import(\"~/commands/inbox.js\"); await runInbox({ json: !!flags.json }); }\n else if (sub === \"status\") { const { runMsgStatus } = await import(\"~/commands/broker-actions.js\"); process.exit(await runMsgStatus(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh message <send|inbox|status>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"memory\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"remember\") { const { remember } = await import(\"~/commands/remember.js\"); process.exit(await remember(positionals.slice(1).join(\" \"), { ...f, tags: flags.tags as string })); }\n else if (sub === \"recall\") { const { recall } = await import(\"~/commands/recall.js\"); process.exit(await recall(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"forget\") { const { runForget } = await import(\"~/commands/broker-actions.js\"); process.exit(await runForget(positionals[1], f)); }\n else { console.error(\"Usage: claudemesh memory <remember|recall|forget>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"profile\": {\n const sub = positionals[0];\n // `claudemesh profile` (no sub) → existing runProfile (interactive view/edit)\n // `claudemesh profile summary \"x\"` → set summary\n // `claudemesh profile visible true` → set visibility\n // `claudemesh profile status set <state>` → set peer status\n if (!sub) { const { runProfile } = await import(\"~/commands/profile.js\"); await runProfile(flags as any); }\n else if (sub === \"summary\") { const { runSummary } = await import(\"~/commands/broker-actions.js\"); process.exit(await runSummary(positionals.slice(1).join(\" \"), { mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"visible\") { const { runVisible } = await import(\"~/commands/broker-actions.js\"); process.exit(await runVisible(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"status\") {\n // `profile status` (no further sub) → diagnostic via runStatus\n // `profile status set <state>` → set peer status\n if (positionals[1] === \"set\") { const { runStatusSet } = await import(\"~/commands/broker-actions.js\"); process.exit(await runStatusSet(positionals[2] ?? \"\", { mesh: flags.mesh as string, json: !!flags.json })); }\n else { const { runStatus } = await import(\"~/commands/status.js\"); await runStatus(); }\n }\n else { console.error(\"Usage: claudemesh profile [summary|visible|status]\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"schedule\": {\n // Aliases `remind` and its subcommands under a unified `schedule` verb.\n // The unified `schedule webhook/tool` primitives need broker work and\n // arrive in a later release — for now `schedule` only covers msg-style.\n const sub = positionals[0];\n if (sub === \"msg\" || sub === \"remind\" || sub === undefined || sub === \"list\" || sub === \"cancel\") {\n const { runRemind } = await import(\"~/commands/remind.js\");\n // Translate `schedule msg ...` and bare `schedule list/cancel` into\n // the legacy remind positional layout.\n const remindPositionals =\n sub === \"msg\" ? positionals.slice(1)\n : sub === \"remind\" ? positionals.slice(1)\n : positionals; // list / cancel / undefined\n await runRemind({ mesh: flags.mesh as string, in: flags.in as string, at: flags.at as string, cron: flags.cron as string, to: flags.to as string, json: !!flags.json }, remindPositionals);\n }\n else if (sub === \"webhook\" || sub === \"tool\") {\n console.error(` schedule ${sub} arrives in a later release — broker primitive not yet shipped`);\n process.exit(EXIT.INVALID_ARGS);\n }\n else { console.error(\"Usage: claudemesh schedule <msg|list|cancel>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // Platform — vector / graph / context / stream / sql / skill / vault / watch / webhook / file / mesh-mcp\n case \"vector\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"store\") { const { runVectorStore } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorStore(positionals[1] ?? \"\", positionals.slice(2).join(\" \"), { ...f, metadata: flags.metadata as string })); }\n else if (sub === \"search\") { const { runVectorSearch } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorSearch(positionals[1] ?? \"\", positionals.slice(2).join(\" \"), { ...f, limit: flags.limit as string })); }\n else if (sub === \"delete\") { const { runVectorDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorDelete(positionals[1] ?? \"\", positionals[2] ?? \"\", f)); }\n else if (sub === \"collections\") { const { runVectorCollections } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorCollections(f)); }\n else { console.error(\"Usage: claudemesh vector <store|search|delete|collections>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"graph\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"query\") { const { runGraphQuery } = await import(\"~/commands/platform-actions.js\"); process.exit(await runGraphQuery(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"execute\") { const { runGraphExecute } = await import(\"~/commands/platform-actions.js\"); process.exit(await runGraphExecute(positionals.slice(1).join(\" \"), f)); }\n else { console.error(\"Usage: claudemesh graph <query|execute> \\\"<cypher>\\\"\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"context\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"share\") { const { runContextShare } = await import(\"~/commands/platform-actions.js\"); process.exit(await runContextShare(positionals.slice(1).join(\" \"), { ...f, files: flags.files as string, findings: flags.findings as string, tags: flags.tags as string })); }\n else if (sub === \"get\") { const { runContextGet } = await import(\"~/commands/platform-actions.js\"); process.exit(await runContextGet(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"list\") { const { runContextList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runContextList(f)); }\n else { console.error(\"Usage: claudemesh context <share|get|list>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"stream\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"create\") { const { runStreamCreate } = await import(\"~/commands/platform-actions.js\"); process.exit(await runStreamCreate(positionals[1] ?? \"\", f)); }\n else if (sub === \"publish\") { const { runStreamPublish } = await import(\"~/commands/platform-actions.js\"); process.exit(await runStreamPublish(positionals[1] ?? \"\", positionals.slice(2).join(\" \"), f)); }\n else if (sub === \"list\") { const { runStreamList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runStreamList(f)); }\n else { console.error(\"Usage: claudemesh stream <create|publish|list>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"sql\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"query\") { const { runSqlQuery } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSqlQuery(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"execute\") { const { runSqlExecute } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSqlExecute(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"schema\") { const { runSqlSchema } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSqlSchema(f)); }\n else { console.error(\"Usage: claudemesh sql <query|execute|schema>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"skill\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n // No subcommand → print the bundled SKILL.md to stdout. Lets a\n // fresh user pipe `claudemesh skill | claude --skill-add -`\n // without copying anything into ~/.claude/skills (v1.18.0).\n if (!sub) { const { runSkill } = await import(\"~/commands/skill.js\"); process.exit(await runSkill()); }\n else if (sub === \"list\") { const { runSkillList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSkillList({ ...f, query: positionals[1] })); }\n else if (sub === \"get\") { const { runSkillGet } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSkillGet(positionals[1] ?? \"\", f)); }\n else if (sub === \"remove\") { const { runSkillRemove } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSkillRemove(positionals[1] ?? \"\", f)); }\n else { console.error(\"Usage: claudemesh skill (print bundled SKILL.md)\\n claudemesh skill <list|get|remove>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"vault\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runVaultList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVaultList(f)); }\n else if (sub === \"delete\") { const { runVaultDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVaultDelete(positionals[1] ?? \"\", f)); }\n else if (sub === \"set\") {\n const { runVaultSet } = await import(\"~/commands/platform-actions.js\");\n process.exit(await runVaultSet(positionals[1] ?? \"\", positionals[2] ?? \"\", {\n ...f,\n entryType: (flags.type as \"env\" | \"file\" | undefined),\n mountPath: flags.mount as string | undefined,\n description: flags.description as string | undefined,\n }));\n }\n else { console.error(\"Usage: claudemesh vault <list|set|delete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"watch\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runWatchList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWatchList(f)); }\n else if (sub === \"remove\") { const { runUnwatch } = await import(\"~/commands/platform-actions.js\"); process.exit(await runUnwatch(positionals[1] ?? \"\", f)); }\n else if (sub === \"add\") {\n const { runWatchAdd } = await import(\"~/commands/platform-actions.js\");\n process.exit(await runWatchAdd(positionals[1] ?? \"\", {\n ...f,\n label: flags.label as string | undefined,\n interval: flags.interval ? Number(flags.interval) : undefined,\n mode: flags.mode as string | undefined,\n extract: flags.extract as string | undefined,\n notifyOn: flags[\"notify-on\"] as string | undefined,\n }));\n }\n else { console.error(\"Usage: claudemesh watch <list|add|remove>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"webhook\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runWebhookList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWebhookList(f)); }\n else if (sub === \"delete\") { const { runWebhookDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWebhookDelete(positionals[1] ?? \"\", f)); }\n else if (sub === \"create\") { const { runWebhookCreate } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWebhookCreate(positionals[1] ?? \"\", f)); }\n else { console.error(\"Usage: claudemesh webhook <list|create|delete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"file\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"share\") {\n const { runFileShare } = await import(\"~/commands/file.js\");\n process.exit(await runFileShare(positionals[1] ?? \"\", {\n ...f,\n to: flags.to as string | undefined,\n tags: flags.tags as string | undefined,\n message: flags.message as string | undefined,\n upload: !!flags.upload,\n }));\n }\n else if (sub === \"get\") {\n const { runFileGet } = await import(\"~/commands/file.js\");\n process.exit(await runFileGet(positionals[1] ?? \"\", { ...f, out: flags.out as string | undefined }));\n }\n else if (sub === \"list\") { const { runFileList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runFileList({ ...f, query: positionals[1] })); }\n else if (sub === \"status\") { const { runFileStatus } = await import(\"~/commands/platform-actions.js\"); process.exit(await runFileStatus(positionals[1] ?? \"\", f)); }\n else if (sub === \"delete\") { const { runFileDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runFileDelete(positionals[1] ?? \"\", f)); }\n else { console.error(\"Usage: claudemesh file <share|get|list|status|delete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"mesh-mcp\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runMeshMcpList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runMeshMcpList(f)); }\n else if (sub === \"call\") { const { runMeshMcpCall } = await import(\"~/commands/platform-actions.js\"); process.exit(await runMeshMcpCall(positionals[1] ?? \"\", positionals[2] ?? \"\", positionals.slice(3).join(\" \"), f)); }\n else if (sub === \"catalog\") { const { runMeshMcpCatalog } = await import(\"~/commands/platform-actions.js\"); process.exit(await runMeshMcpCatalog(f)); }\n else { console.error(\"Usage: claudemesh mesh-mcp <list|call|catalog>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"clock\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"set\") { const { runClockSet } = await import(\"~/commands/platform-actions.js\"); process.exit(await runClockSet(positionals[1] ?? \"\", f)); }\n else if (sub === \"pause\") { const { runClockPause } = await import(\"~/commands/platform-actions.js\"); process.exit(await runClockPause(f)); }\n else if (sub === \"resume\") { const { runClockResume } = await import(\"~/commands/platform-actions.js\"); process.exit(await runClockResume(f)); }\n else { const { runClock } = await import(\"~/commands/broker-actions.js\"); process.exit(await runClock(f)); }\n break;\n }\n\n // bridge — forward a topic between two meshes (v0.2.0)\n case \"bridge\": {\n const sub = positionals[0];\n if (sub === \"run\") {\n const { runBridge } = await import(\"~/commands/bridge.js\");\n process.exit(await runBridge(positionals[1] ?? \"\"));\n } else if (sub === \"init\" || sub === \"config\") {\n const { bridgeConfigTemplate } = await import(\"~/commands/bridge.js\");\n console.log(bridgeConfigTemplate());\n process.exit(EXIT.SUCCESS);\n } else {\n console.error(\"Usage: claudemesh bridge <run <config.yaml> | init>\");\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // apikey — REST + external WS bearer tokens (v0.2.0)\n case \"apikey\": case \"api-key\": {\n const sub = positionals[0];\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n cap: flags.cap as string,\n topic: flags.topic as string,\n expires: flags.expires as string,\n };\n const arg = positionals[1] ?? \"\";\n if (sub === \"create\") { const { runApiKeyCreate } = await import(\"~/commands/apikey.js\"); process.exit(await runApiKeyCreate(arg, f)); }\n else if (sub === \"list\") { const { runApiKeyList } = await import(\"~/commands/apikey.js\"); process.exit(await runApiKeyList(f)); }\n else if (sub === \"revoke\") { const { runApiKeyRevoke } = await import(\"~/commands/apikey.js\"); process.exit(await runApiKeyRevoke(arg, f)); }\n else { console.error(\"Usage: claudemesh apikey <create|list|revoke>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // topic — conversational primitive within a mesh (v0.2.0)\n case \"topic\": {\n const sub = positionals[0];\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n description: flags.description as string,\n visibility: flags.visibility as \"public\" | \"private\" | \"dm\" | undefined,\n role: flags.role as \"lead\" | \"member\" | \"observer\" | undefined,\n limit: flags.limit as string | undefined,\n before: flags.before as string | undefined,\n };\n const arg = positionals[1] ?? \"\";\n if (sub === \"create\") { const { runTopicCreate } = await import(\"~/commands/topic.js\"); process.exit(await runTopicCreate(arg, f)); }\n else if (sub === \"list\") {\n // v0.5.0: aggregate across every joined mesh when --mesh is omitted.\n // The per-mesh runTopicList prompts for a mesh; me topics doesn't\n // need one and surfaces last-activity + unread per topic.\n if (!f.mesh) {\n const { runMeTopics } = await import(\"~/commands/me.js\");\n process.exit(await runMeTopics({ mesh: undefined, json: f.json, unread: !!flags.unread }));\n }\n const { runTopicList } = await import(\"~/commands/topic.js\");\n process.exit(await runTopicList(f));\n }\n else if (sub === \"join\") { const { runTopicJoin } = await import(\"~/commands/topic.js\"); process.exit(await runTopicJoin(arg, f)); }\n else if (sub === \"leave\") { const { runTopicLeave } = await import(\"~/commands/topic.js\"); process.exit(await runTopicLeave(arg, f)); }\n else if (sub === \"members\") { const { runTopicMembers } = await import(\"~/commands/topic.js\"); process.exit(await runTopicMembers(arg, f)); }\n else if (sub === \"history\") { const { runTopicHistory } = await import(\"~/commands/topic.js\"); process.exit(await runTopicHistory(arg, f)); }\n else if (sub === \"read\") { const { runTopicMarkRead } = await import(\"~/commands/topic.js\"); process.exit(await runTopicMarkRead(arg, f)); }\n else if (sub === \"tail\") {\n const tailFlags = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n limit: flags.limit as string | undefined,\n forwardOnly: !!flags[\"forward-only\"],\n };\n const { runTopicTail } = await import(\"~/commands/topic-tail.js\");\n process.exit(await runTopicTail(arg, tailFlags));\n }\n else if (sub === \"post\") {\n const postFlags = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n plaintext: !!flags.plaintext,\n replyTo: (flags[\"reply-to\"] as string) || (flags.replyTo as string),\n };\n const message = positionals.slice(2).join(\" \");\n const { runTopicPost } = await import(\"~/commands/topic-post.js\");\n process.exit(await runTopicPost(arg, message, postFlags));\n }\n else { console.error(\"Usage: claudemesh topic <create|list|join|leave|members|history|read|tail|post>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // notification — recent @-mentions of the viewer (v1.7.0)\n case \"notification\": case \"notifications\": {\n const sub = positionals[0] ?? \"list\";\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n since: flags.since as string,\n };\n if (sub === \"list\") {\n // v0.5.0: aggregate across every joined mesh when --mesh is omitted.\n if (!f.mesh) {\n const { runMeNotifications } = await import(\"~/commands/me.js\");\n process.exit(\n await runMeNotifications({\n mesh: undefined,\n json: f.json,\n all: !!flags.all,\n since: f.since,\n }),\n );\n }\n const { runNotificationList } = await import(\"~/commands/notification.js\");\n process.exit(await runNotificationList(f));\n } else {\n console.error(\"Usage: claudemesh notification list [--mesh <slug>] [--since <ISO>] [--all]\");\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // me — cross-mesh workspace overview (v0.4.0)\n case \"me\": {\n const sub = positionals[0];\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n };\n if (!sub || sub === \"workspace\" || sub === \"overview\") {\n const { runMe } = await import(\"~/commands/me.js\");\n process.exit(await runMe(f));\n } else if (sub === \"topics\") {\n const { runMeTopics } = await import(\"~/commands/me.js\");\n process.exit(await runMeTopics({ ...f, unread: !!flags.unread }));\n } else if (sub === \"notifications\" || sub === \"notifs\") {\n const { runMeNotifications } = await import(\"~/commands/me.js\");\n process.exit(\n await runMeNotifications({\n ...f,\n all: !!flags.all,\n since: flags.since as string | undefined,\n }),\n );\n } else if (sub === \"activity\") {\n const { runMeActivity } = await import(\"~/commands/me.js\");\n process.exit(\n await runMeActivity({\n ...f,\n since: flags.since as string | undefined,\n }),\n );\n } else if (sub === \"search\") {\n const { runMeSearch } = await import(\"~/commands/me.js\");\n const query = positionals.slice(1).join(\" \").trim();\n process.exit(await runMeSearch({ ...f, query }));\n } else {\n console.error(\n \"Usage: claudemesh me (cross-mesh overview)\\n\" +\n \" claudemesh me topics (cross-mesh topic list)\\n\" +\n \" claudemesh me topics --unread (only unread topics)\\n\" +\n \" claudemesh me notifications (unread @-mentions, last 7d)\\n\" +\n \" claudemesh me notifications --all (include already-read)\\n\" +\n \" claudemesh me notifications --since=ISO (custom window)\\n\" +\n \" claudemesh me activity (recent messages, last 24h)\\n\" +\n \" claudemesh me activity --since=ISO (custom window)\\n\" +\n \" claudemesh me search <query> (cross-mesh search)\",\n );\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // member — mesh roster with online state (v1.7.0)\n case \"member\": case \"members\": {\n const sub = positionals[0] ?? \"list\";\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n online: !!flags.online,\n };\n if (sub === \"list\") {\n const { runMemberList } = await import(\"~/commands/member.js\");\n process.exit(await runMemberList(f));\n } else {\n console.error(\"Usage: claudemesh member list [--online]\");\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // task — extends broker-actions.ts (claim/complete) with list/create\n case \"task\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"claim\") { const { runTaskClaim } = await import(\"~/commands/broker-actions.js\"); process.exit(await runTaskClaim(positionals[1], f)); }\n else if (sub === \"complete\") { const { runTaskComplete } = await import(\"~/commands/broker-actions.js\"); process.exit(await runTaskComplete(positionals[1], positionals.slice(2).join(\" \") || undefined, f)); }\n else if (sub === \"list\") {\n // v0.5.0 phase 2: aggregate across every mesh when --mesh is omitted.\n if (!f.mesh) {\n const { runMeTasks } = await import(\"~/commands/me.js\");\n process.exit(await runMeTasks({ json: f.json, status: flags.status as string | undefined }));\n }\n const { runTaskList } = await import(\"~/commands/platform-actions.js\");\n process.exit(await runTaskList({ ...f, status: flags.status as string, assignee: flags.assignee as string }));\n }\n else if (sub === \"create\") { const { runTaskCreate } = await import(\"~/commands/platform-actions.js\"); process.exit(await runTaskCreate(positionals.slice(1).join(\" \"), { ...f, assignee: flags.assignee as string, priority: flags.priority as string, tags: flags.tags as string })); }\n else { console.error(\"Usage: claudemesh task <create|list|claim|complete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // Internal\n case \"mcp\": { const { runMcp } = await import(\"~/commands/mcp.js\"); await runMcp(); break; }\n case \"hook\": { const { runHook } = await import(\"~/commands/hook.js\"); await runHook(positionals); break; }\n case \"seed-test-mesh\": { const { runSeedTestMesh } = await import(\"~/commands/seed-test-mesh.js\"); runSeedTestMesh(positionals); break; }\n\n default: {\n console.error(` Unknown command: ${command}. Run \\`claudemesh --help\\` for usage.`);\n process.exit(EXIT.INVALID_ARGS);\n }\n }\n\n showUpdateNotice(VERSION).catch(() => {});\n}\n\nmain().catch((err) => {\n console.error(\"Fatal: \" + (err instanceof Error ? err.message : String(err)));\n process.exit(EXIT.INTERNAL_ERROR);\n});\n",
176
+ "#!/usr/bin/env node\nimport { parseArgv } from \"~/cli/argv.js\";\nimport { installSignalHandlers } from \"~/cli/handlers/signal.js\";\nimport { installErrorHandlers } from \"~/cli/handlers/error.js\";\nimport { showUpdateNotice } from \"~/cli/update-notice.js\";\nimport { VERSION } from \"~/constants/urls.js\";\nimport { EXIT } from \"~/constants/exit-codes.js\";\nimport { renderVersion } from \"~/cli/output/version.js\";\nimport { isInviteUrl, normaliseInviteUrl } from \"~/utils/url.js\";\nimport { classifyInvocation } from \"~/cli/policy-classify.js\";\nimport { gate, type ApprovalMode } from \"~/services/policy/index.js\";\nimport { setDaemonPolicy, policyFromFlags } from \"~/services/daemon/policy.js\";\nimport { bold, clay, cyan, dim, orange } from \"~/ui/styles.js\";\n\ninstallSignalHandlers();\ninstallErrorHandlers();\n\nconst { command, positionals, flags } = parseArgv(process.argv);\n\n// Resolve daemon policy once at boot — daemon-routing helpers read this\n// instead of inspecting flags themselves. --no-daemon and --strict are\n// mutually exclusive (--no-daemon wins if both are passed).\nsetDaemonPolicy(policyFromFlags(flags));\n\n/**\n * Resolve the coarse approval mode from CLI flags + env.\n * --approval-mode <plan|read-only|write|yolo> explicit\n * -y / --yes legacy: yolo\n * $CLAUDEMESH_APPROVAL_MODE env override\n * default 'write'\n */\nfunction resolveApprovalMode(): ApprovalMode {\n const raw = (flags[\"approval-mode\"] as string | undefined)\n ?? process.env.CLAUDEMESH_APPROVAL_MODE\n ?? null;\n if (raw === \"plan\" || raw === \"read-only\" || raw === \"write\" || raw === \"yolo\") return raw;\n if (flags.y || flags.yes) return \"yolo\";\n return \"write\";\n}\n\n/**\n * Run the policy gate before dispatching a command. Returns `true` if the\n * caller should proceed; on `false`, the process should exit non-zero.\n *\n * Off-mesh commands (help, login, install...) classify as `null` and skip\n * the gate entirely — there's no broker to mutate.\n */\nasync function policyGate(): Promise<boolean> {\n const cls = classifyInvocation(command, positionals);\n if (!cls) return true;\n const mode = resolveApprovalMode();\n const yes = !!flags.y || !!flags.yes || mode === \"yolo\";\n const ok = await gate(\n {\n resource: cls.resource,\n verb: cls.verb,\n mesh: flags.mesh as string | undefined,\n mode,\n isWrite: cls.isWrite,\n yes,\n },\n { policyPath: flags.policy as string | undefined },\n );\n return ok;\n}\n\nconst HELP = `\nclaudemesh — peer mesh for Claude Code sessions\n${VERSION}\n\nUSAGE\n claudemesh auto-connect to your mesh\n claudemesh <invite-url> join a mesh, then launch\n claudemesh launch --name <n> --join <url> join + launch in one step\n\nMesh (alias: \"workspace\" — claudemesh workspace <verb> mirrors each)\n claudemesh create <name> create a new mesh\n claudemesh join <url> join a mesh (accepts short /i/ or long /join/ link)\n claudemesh launch [slug] launch Claude Code on a mesh (alias: connect)\n claudemesh list show your meshes (alias: ls)\n claudemesh delete [slug] delete a mesh (alias: rm)\n claudemesh rename <old> <new> change a mesh's slug (the identifier you see and type)\n claudemesh share [email] share mesh (invite link / send email)\n\nPeer (resource form, recommended)\n claudemesh peer list see who's online (alias: peers)\n claudemesh peer kick <p> end session (alias: kick)\n claudemesh peer disconnect <p> soft disconnect (alias: disconnect)\n claudemesh peer ban <p> ban + revoke (alias: ban)\n claudemesh peer unban <p> lift a ban (alias: unban)\n claudemesh peer bans list banned members (alias: bans)\n claudemesh peer verify [p] safety numbers (alias: verify)\n\nMessage (resource form)\n claudemesh message send <to> <m> send a message (alias: send)\n claudemesh message inbox drain pending (alias: inbox)\n claudemesh message status <id> delivery status (alias: msg-status)\n\nMemory (resource form)\n claudemesh memory remember <txt> store a memory (alias: remember)\n claudemesh memory recall <q> search memories (alias: recall)\n claudemesh memory forget <id> remove a memory (alias: forget)\n\nProfile / presence (resource form)\n claudemesh profile view or edit profile\n claudemesh profile summary <txt> broadcast summary (alias: summary)\n claudemesh profile visible y|n toggle visibility (alias: visible)\n claudemesh profile status set X set status idle/working/dnd (alias: status set)\n claudemesh group join @<name> join a group (--role X)\n claudemesh group leave @<name> leave a group\n\nAPI keys (REST + external WS auth, v0.2.0)\n claudemesh apikey create <label> issue [--cap send,read] [--topic deploys]\n claudemesh apikey list show keys (status, last-used, scope)\n claudemesh apikey revoke <id> revoke a key\n\nBridge (forward a topic between two meshes, v0.2.0)\n claudemesh bridge init print config template\n claudemesh bridge run <config> run bridge as a long-lived process\n\nTopic (conversation scope, v0.2.0)\n claudemesh topic create <name> create a topic [--description --visibility]\n claudemesh topic list list topics across all meshes (or --mesh <slug>)\n claudemesh topic join <topic> subscribe (via name or id)\n claudemesh topic leave <topic> unsubscribe\n claudemesh topic members <t> list topic subscribers\n claudemesh topic history <t> fetch message history [--limit --before]\n claudemesh topic read <topic> mark all as read\n claudemesh topic tail <topic> live SSE tail [--limit --forward-only]\n claudemesh topic post <t> <msg> encrypted REST post (v0.3.0 v2) [--reply-to <id>]\n claudemesh send \"#topic\" \"msg\" send to a topic (WS path, v1 plaintext)\n claudemesh skill print the bundled SKILL.md to stdout\n claudemesh me cross-mesh workspace overview (v0.4.0)\n claudemesh me topics cross-mesh topic list [--unread]\n claudemesh me notifications cross-mesh @-mentions [--all] [--since=ISO]\n claudemesh me activity cross-mesh recent messages [--since=ISO]\n claudemesh me search <q> cross-mesh search (topics + messages)\n claudemesh member list mesh roster with online state [--online]\n claudemesh notification list @-mentions across all meshes (or --mesh <slug>)\n\nSchedule (resource form)\n claudemesh schedule msg <m> one-shot or recurring (alias: remind)\n claudemesh schedule list list pending\n claudemesh schedule cancel <id> remove a scheduled item\n\nState / mesh introspection\n claudemesh state get|set|list shared state\n claudemesh info mesh overview\n claudemesh stats per-peer activity counters\n claudemesh ping diagnostic round-trip\n\nTasks\n claudemesh task create <title> create a new task [--assignee --priority --tags]\n claudemesh task list list tasks [--status --assignee]\n claudemesh task claim <id> claim an unclaimed task\n claudemesh task complete <id> mark task done [result]\n\nPlatform\n claudemesh vector store|search|delete|collections embedding store\n claudemesh graph query|execute \"<cypher>\" graph operations\n claudemesh context share|get|list work-context summaries\n claudemesh stream create|publish|list pub/sub event bus\n claudemesh sql query|execute|schema per-mesh SQL\n claudemesh skill list|get|remove mesh-published skills\n claudemesh vault set|list|delete encrypted secrets (set: --type env|file --mount /p)\n claudemesh watch add|list|remove URL change watchers (add: --label --interval --extract)\n claudemesh webhook create|list|delete outbound HTTP triggers\n claudemesh file share <path> [--to peer] upload (or local-host fast path if --to matches)\n claudemesh file get <id> [--out path] download by id\n claudemesh file list|status|delete shared mesh files\n claudemesh mesh-mcp list|call|catalog deployed mesh-MCP servers\n claudemesh clock set|pause|resume mesh logical clock\n\nAuth\n claudemesh login sign in (browser or paste token)\n claudemesh register create account + sign in\n claudemesh logout sign out\n claudemesh whoami show current identity\n\nSecurity\n claudemesh verify [peer] show ed25519 safety numbers (SAS)\n claudemesh grant <peer> <cap> grant capability (dm, broadcast, state-read, all)\n claudemesh revoke <peer> <cap> revoke capability (or 'all')\n claudemesh block <peer> revoke all capabilities (silent drop)\n claudemesh grants list per-peer overrides for current mesh\n claudemesh backup [file] encrypt config → portable recovery file\n claudemesh restore <file> restore config from a backup file\n\nDaemon (long-lived peer mesh runtime, v0.9.0)\n claudemesh daemon up start daemon (alias: start) [--mesh <slug>] [--no-tcp]\n claudemesh daemon status show running pid + IPC health [--json]\n claudemesh daemon down stop daemon (alias: stop)\n claudemesh daemon version ipc + schema version of running daemon\n claudemesh daemon outbox list list local outbox rows [--failed|--pending|--inflight|--done]\n claudemesh daemon outbox requeue <id> re-enqueue an aborted/dead row [--new-client-id <id>]\n claudemesh daemon accept-host pin current host fingerprint\n claudemesh daemon install-service --mesh <slug> write launchd / systemd-user unit\n claudemesh daemon uninstall-service remove the unit\n\nSetup\n claudemesh install register MCP server + hooks\n claudemesh uninstall remove MCP server + hooks\n claudemesh doctor diagnose issues (broker, node, claude)\n claudemesh status check broker connectivity\n claudemesh sync refresh mesh list from dashboard\n claudemesh completions <shell> emit bash / zsh / fish completion script\n claudemesh url-handler install register claudemesh:// click-to-launch\n claudemesh upgrade self-update to latest alpha (rustup-style)\n\nFlags\n --version, -V show version\n --help, -h show this help\n --json machine-readable output\n --mesh <slug> override mesh selection\n --approval-mode <mode> plan | read-only | write (default) | yolo\n --policy <path> override policy file\n -y, --yes skip confirmations (= --approval-mode yolo)\n -q, --quiet suppress non-essential output\n --strict require daemon for broker-touching verbs (no cold-path fallback)\n --no-daemon skip daemon entirely; open broker WS directly (CI / sandboxed scripts)\n`;\n\n/**\n * Apply color treatment to the HELP block for terminal readability.\n *\n * Strategy is line-based and intentionally conservative:\n * - Section header lines (the title-case categories like `Mesh`,\n * `Topic`, `Auth`, `USAGE`) get bold + accent.\n * - Each verb row (` claudemesh <verb> ...`) gets the command tinted\n * cyan up to the second whitespace gap (separating the syntax from\n * the description), and any trailing `(alias: ...)` parenthetical\n * dimmed so it reads as secondary metadata.\n * - The header (program name + version) gets the brand orange.\n *\n * Falls through to plain output when stdout is not a TTY or NO_COLOR\n * is set — the underlying style helpers already gate on that.\n */\nfunction colorizeHelp(raw: string): string {\n const lines = raw.split(\"\\n\");\n const SECTION_HEADER_RE = /^([A-Z][A-Za-z0-9 /+-]*?)(\\s*\\(.*\\))?$/;\n const VERB_ROW_RE = /^(\\s{2})(claudemesh[^\\s]*(?:\\s+[^\\s]+)*?)(\\s{2,})(.*)$/;\n const ALIAS_RE = /(\\(alias[^)]*\\))/g;\n const out: string[] = [];\n for (const line of lines) {\n if (line.startsWith(\"claudemesh —\")) {\n out.push(orange(line));\n continue;\n }\n if (line.trim() === \"\") {\n out.push(line);\n continue;\n }\n // Section header: a line with no leading spaces that isn't a verb.\n if (!line.startsWith(\" \") && SECTION_HEADER_RE.test(line)) {\n const m = line.match(SECTION_HEADER_RE)!;\n const head = bold(clay(m[1]!));\n const meta = m[2] ? dim(m[2]) : \"\";\n out.push(head + meta);\n continue;\n }\n // Verb row: tint the syntax, dim the alias parenthetical.\n const verbMatch = line.match(VERB_ROW_RE);\n if (verbMatch) {\n const [, indent, syntax, gap, rest] = verbMatch;\n const dimmedRest = rest!.replace(ALIAS_RE, (m) => dim(m));\n out.push(`${indent}${cyan(syntax!)}${gap}${dimmedRest}`);\n continue;\n }\n out.push(line);\n }\n return out.join(\"\\n\");\n}\n\nasync function main(): Promise<void> {\n if (flags.help || flags.h) { console.log(colorizeHelp(HELP)); process.exit(EXIT.SUCCESS); }\n if (flags.version || flags.V) { console.log(renderVersion()); process.exit(EXIT.SUCCESS); }\n\n // Policy gate — runs before any broker-touching command. Skipped for help,\n // version, login/install, list, and other local-only ops via classifier.\n if (!(await policyGate())) process.exit(EXIT.PERMISSION_DENIED);\n\n // Bare command or invite URL\n if (!command || isInviteUrl(command)) {\n // `claudemesh <invite-url>` → join + launch in one step.\n // `-y` skips all interactive prompts (role=member, no groups, push mode).\n if (command && isInviteUrl(command)) {\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: flags.mesh as string | undefined,\n name: flags.name as string | undefined,\n join: normaliseInviteUrl(command),\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string | undefined,\n role: flags.role as string | undefined,\n groups: flags.groups as string | undefined,\n \"message-mode\": flags[\"message-mode\"] as string | undefined,\n \"system-prompt\": flags[\"system-prompt\"] as string | undefined,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n return;\n }\n const { readConfig } = await import(\"~/services/config/facade.js\");\n const config = readConfig();\n if (config.meshes.length === 0) {\n const { runWelcome } = await import(\"~/commands/welcome.js\");\n process.exit(await runWelcome());\n }\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: flags.mesh as string | undefined,\n name: flags.name as string | undefined,\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string | undefined,\n role: flags.role as string | undefined,\n groups: flags.groups as string | undefined,\n \"message-mode\": flags[\"message-mode\"] as string | undefined,\n \"system-prompt\": flags[\"system-prompt\"] as string | undefined,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n return;\n }\n\n switch (command) {\n case \"help\": { console.log(HELP); break; }\n\n // Mesh management\n case \"create\": case \"new\": { const { newMesh } = await import(\"~/commands/new.js\"); process.exit(await newMesh(positionals[0] ?? \"\", { json: !!flags.json })); break; }\n case \"add\": case \"join\": { const { runJoin } = await import(\"~/commands/join.js\"); await runJoin(positionals); break; }\n case \"connect\": case \"launch\": {\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: positionals[0] ?? flags.mesh as string,\n name: flags.name as string,\n join: flags.join as string,\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string,\n role: flags.role as string,\n groups: flags.groups as string,\n \"message-mode\": flags[\"message-mode\"] as string,\n \"system-prompt\": flags[\"system-prompt\"] as string,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n break;\n }\n case \"disconnect\": { console.log(\" Connection closed.\"); process.exit(EXIT.SUCCESS); break; }\n case \"list\": case \"ls\": { const { runList } = await import(\"~/commands/list.js\"); await runList(); break; }\n case \"delete\": case \"rm\": { const { deleteMesh } = await import(\"~/commands/delete-mesh.js\"); process.exit(await deleteMesh(positionals[0] ?? \"\", { yes: !!flags.y || !!flags.yes })); break; }\n case \"rename\": { const { rename } = await import(\"~/commands/rename.js\"); process.exit(await rename(positionals[0] ?? \"\", positionals[1] ?? \"\")); break; }\n case \"share\": case \"invite\": { const { invite } = await import(\"~/commands/invite.js\"); process.exit(await invite(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n // workspace — alias surface for mesh-management verbs (v1.27.0 teaser; full\n // rename arrives in 1.28.0). Each sub mirrors an existing top-level verb.\n case \"workspace\": {\n const sub = positionals[0];\n if (!sub || sub === \"launch\" || sub === \"connect\" || sub === \"open\") {\n const { runLaunch } = await import(\"~/commands/launch.js\");\n await runLaunch({\n mesh: positionals[1] ?? flags.mesh as string,\n name: flags.name as string,\n join: flags.join as string,\n yes: !!flags.y || !!flags.yes,\n resume: flags.resume as string,\n role: flags.role as string,\n groups: flags.groups as string,\n \"message-mode\": flags[\"message-mode\"] as string,\n \"system-prompt\": flags[\"system-prompt\"] as string,\n continue: !!flags.continue,\n quiet: !!flags.quiet,\n }, process.argv.slice(2));\n }\n else if (sub === \"list\" || sub === \"ls\") { const { runList } = await import(\"~/commands/list.js\"); await runList(); }\n else if (sub === \"info\") { const { runInfo } = await import(\"~/commands/info.js\"); await runInfo({}); }\n else if (sub === \"create\" || sub === \"new\") { const { newMesh } = await import(\"~/commands/new.js\"); process.exit(await newMesh(positionals[1] ?? \"\", { json: !!flags.json })); }\n else if (sub === \"join\" || sub === \"add\") { const { runJoin } = await import(\"~/commands/join.js\"); await runJoin(positionals.slice(1)); }\n else if (sub === \"delete\" || sub === \"rm\") { const { deleteMesh } = await import(\"~/commands/delete-mesh.js\"); process.exit(await deleteMesh(positionals[1] ?? \"\", { yes: !!flags.y || !!flags.yes })); }\n else if (sub === \"rename\") { const { rename } = await import(\"~/commands/rename.js\"); process.exit(await rename(positionals[1] ?? \"\", positionals[2] ?? \"\")); }\n else if (sub === \"share\" || sub === \"invite\") { const { invite } = await import(\"~/commands/invite.js\"); process.exit(await invite(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"overview\") { const { runMe } = await import(\"~/commands/me.js\"); process.exit(await runMe({ mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh workspace <list|info|create|join|delete|rename|share|launch|overview>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"disconnect\": { const { runDisconnect } = await import(\"~/commands/kick.js\"); process.exit(await runDisconnect(positionals[0], { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); break; }\n case \"kick\": { const { runKick } = await import(\"~/commands/kick.js\"); process.exit(await runKick(positionals[0], { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); break; }\n case \"ban\": { const { runBan } = await import(\"~/commands/ban.js\"); process.exit(await runBan(positionals[0], { mesh: flags.mesh as string })); break; }\n case \"unban\": { const { runUnban } = await import(\"~/commands/ban.js\"); process.exit(await runUnban(positionals[0], { mesh: flags.mesh as string })); break; }\n case \"bans\": { const { runBans } = await import(\"~/commands/ban.js\"); process.exit(await runBans({ mesh: flags.mesh as string, json: !!flags.json })); break; }\n\n // Messaging\n case \"peers\": { const { runPeers } = await import(\"~/commands/peers.js\"); await runPeers({ mesh: flags.mesh as string, json: flags.json as boolean | string | undefined }); break; }\n case \"send\": { const { runSend } = await import(\"~/commands/send.js\"); await runSend({ mesh: flags.mesh as string, priority: flags.priority as string, json: !!flags.json, self: !!flags.self }, positionals[0] ?? \"\", positionals.slice(1).join(\" \")); break; }\n case \"inbox\": { const { runInbox } = await import(\"~/commands/inbox.js\"); await runInbox({ json: !!flags.json }); break; }\n case \"state\": {\n const sub = positionals[0];\n if (sub === \"set\") { const { runStateSet } = await import(\"~/commands/state.js\"); await runStateSet({}, positionals[1] ?? \"\", positionals[2] ?? \"\"); }\n else if (sub === \"list\") {\n // v0.5.0 phase 2: aggregate across every mesh when --mesh is omitted.\n if (!flags.mesh) {\n const { runMeState } = await import(\"~/commands/me.js\");\n process.exit(await runMeState({ json: !!flags.json, key: flags.key as string | undefined }));\n }\n const { runStateList } = await import(\"~/commands/state.js\");\n await runStateList({});\n }\n else { const { runStateGet } = await import(\"~/commands/state.js\"); await runStateGet({}, positionals[0] ?? \"\"); }\n break;\n }\n case \"info\": { const { runInfo } = await import(\"~/commands/info.js\"); await runInfo({}); break; }\n case \"remember\": { const { remember } = await import(\"~/commands/remember.js\"); process.exit(await remember(positionals.join(\" \"), { mesh: flags.mesh as string, tags: flags.tags as string, json: !!flags.json })); break; }\n case \"recall\": {\n // v0.5.0 phase 2: aggregate across every mesh when --mesh is omitted.\n if (!flags.mesh) {\n const { runMeMemory } = await import(\"~/commands/me.js\");\n process.exit(await runMeMemory({ json: !!flags.json, query: positionals.join(\" \") }));\n }\n const { recall } = await import(\"~/commands/recall.js\");\n process.exit(await recall(positionals.join(\" \"), { mesh: flags.mesh as string, json: !!flags.json }));\n break;\n }\n case \"forget\": { const { runForget } = await import(\"~/commands/broker-actions.js\"); process.exit(await runForget(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"remind\": { const { runRemind } = await import(\"~/commands/remind.js\"); await runRemind({ mesh: flags.mesh as string }, positionals); break; }\n // (profile case moved to resource-aliases block below for sub-command extensibility)\n\n // Profile / status / visibility / groups (replacing soft-deprecated MCP tools)\n case \"summary\": { const { runSummary } = await import(\"~/commands/broker-actions.js\"); process.exit(await runSummary(positionals.join(\" \"), { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"visible\": { const { runVisible } = await import(\"~/commands/broker-actions.js\"); process.exit(await runVisible(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"group\": {\n const sub = positionals[0];\n if (sub === \"join\") { const { runGroupJoin } = await import(\"~/commands/broker-actions.js\"); process.exit(await runGroupJoin(positionals[1], { mesh: flags.mesh as string, role: flags.role as string, json: !!flags.json })); }\n else if (sub === \"leave\") { const { runGroupLeave } = await import(\"~/commands/broker-actions.js\"); process.exit(await runGroupLeave(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh group <join|leave> @<name> [--role X]\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // Mesh diagnostics + tasks\n case \"msg-status\": { const { runMsgStatus } = await import(\"~/commands/broker-actions.js\"); process.exit(await runMsgStatus(positionals[0], { mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"stats\": { const { runStats } = await import(\"~/commands/broker-actions.js\"); process.exit(await runStats({ mesh: flags.mesh as string, json: !!flags.json })); break; }\n case \"ping\": { const { runPing } = await import(\"~/commands/broker-actions.js\"); process.exit(await runPing({ mesh: flags.mesh as string, json: !!flags.json })); break; }\n // (clock + task moved to platform-actions block below for sub-command extensibility)\n\n // Auth\n case \"login\": { const { login } = await import(\"~/commands/login.js\"); process.exit(await login()); break; }\n case \"register\": { const { register } = await import(\"~/commands/register.js\"); process.exit(await register()); break; }\n case \"logout\": { const { logout } = await import(\"~/commands/logout.js\"); process.exit(await logout()); break; }\n case \"whoami\": { const { whoami } = await import(\"~/commands/whoami.js\"); process.exit(await whoami({ json: !!flags.json })); break; }\n\n // Daemon (v0.9.0)\n case \"daemon\": {\n const { runDaemonCommand } = await import(\"~/commands/daemon.js\");\n const sub = positionals[0];\n const rest = positionals.slice(1);\n const outboxStatus =\n flags.failed ? \"dead\" :\n flags.pending ? \"pending\" :\n flags.inflight ? \"inflight\" :\n flags.done ? \"done\" :\n flags.aborted ? \"aborted\" : undefined;\n const code = await runDaemonCommand(sub, {\n json: !!flags.json,\n noTcp: !!flags[\"no-tcp\"],\n publicHealth: !!flags[\"public-health\"],\n mesh: flags.mesh as string | undefined,\n displayName: flags.name as string | undefined,\n outboxStatus,\n newClientId: flags[\"new-client-id\"] as string | undefined,\n }, rest);\n process.exit(code);\n break;\n }\n\n // Setup\n case \"install\": { const { runInstall } = await import(\"~/commands/install.js\"); runInstall(positionals); break; }\n case \"uninstall\": { const { uninstall } = await import(\"~/commands/uninstall.js\"); process.exit(await uninstall()); break; }\n case \"doctor\": { const { runDoctor } = await import(\"~/commands/doctor.js\"); await runDoctor(); break; }\n case \"status\": {\n // `claudemesh status set <state>` → set peer status (idle/working/dnd)\n // `claudemesh status` (no args) → broker connectivity diagnostic\n if (positionals[0] === \"set\") {\n const { runStatusSet } = await import(\"~/commands/broker-actions.js\");\n process.exit(await runStatusSet(positionals[1] ?? \"\", { mesh: flags.mesh as string, json: !!flags.json }));\n } else {\n const { runStatus } = await import(\"~/commands/status.js\");\n await runStatus();\n }\n break;\n }\n case \"sync\": { const { runSync } = await import(\"~/commands/sync.js\"); await runSync({ force: !!flags.force }); break; }\n\n // Test\n case \"test\": { const { runTest } = await import(\"~/commands/test.js\"); process.exit(await runTest()); break; }\n\n // CLI utilities\n case \"completions\": { const { runCompletions } = await import(\"~/commands/completions.js\"); process.exit(await runCompletions(positionals[0])); break; }\n case \"verify\": { const { runVerify } = await import(\"~/commands/verify.js\"); process.exit(await runVerify(positionals[0], { mesh: flags.mesh as string | undefined, json: !!flags.json })); break; }\n case \"url-handler\": { const { runUrlHandler } = await import(\"~/commands/url-handler.js\"); process.exit(await runUrlHandler(positionals[0])); break; }\n case \"status-line\": { const { runStatusLine } = await import(\"~/commands/status-line.js\"); process.exit(await runStatusLine()); break; }\n case \"backup\": { const { runBackup } = await import(\"~/commands/backup.js\"); process.exit(await runBackup(positionals[0])); break; }\n case \"restore\": { const { runRestore } = await import(\"~/commands/backup.js\"); process.exit(await runRestore(positionals[0])); break; }\n case \"upgrade\": case \"update\": { const { runUpgrade } = await import(\"~/commands/upgrade.js\"); process.exit(await runUpgrade({ check: !!flags.check, yes: !!flags.y || !!flags.yes })); break; }\n case \"grant\": { const { runGrant } = await import(\"~/commands/grants.js\"); process.exit(await runGrant(positionals[0], positionals.slice(1), { mesh: flags.mesh as string | undefined })); break; }\n case \"revoke\": { const { runRevoke } = await import(\"~/commands/grants.js\"); process.exit(await runRevoke(positionals[0], positionals.slice(1), { mesh: flags.mesh as string | undefined })); break; }\n case \"block\": { const { runBlock } = await import(\"~/commands/grants.js\"); process.exit(await runBlock(positionals[0], { mesh: flags.mesh as string | undefined })); break; }\n case \"grants\": { const { runGrants } = await import(\"~/commands/grants.js\"); process.exit(await runGrants({ mesh: flags.mesh as string | undefined, json: !!flags.json })); break; }\n\n // ── Resource-model aliases (1.4.0) ─────────────────────────────────\n // Each `<resource> <verb>` form proxies to the existing legacy verb.\n // The legacy verbs (`send`, `peers`, `kick`, `remember`, ...) keep\n // working so old scripts never break. Spec: 2026-05-02 commitment #2.\n\n case \"peer\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: flags.json as boolean | string | undefined };\n const id = positionals[1] ?? \"\";\n if (sub === \"list\") { const { runPeers } = await import(\"~/commands/peers.js\"); await runPeers(f); }\n else if (sub === \"kick\") { const { runKick } = await import(\"~/commands/kick.js\"); process.exit(await runKick(id, { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); }\n else if (sub === \"disconnect\") { const { runDisconnect } = await import(\"~/commands/kick.js\"); process.exit(await runDisconnect(id, { mesh: flags.mesh as string, stale: flags.stale as string, all: !!flags.all })); }\n else if (sub === \"ban\") { const { runBan } = await import(\"~/commands/ban.js\"); process.exit(await runBan(id, { mesh: flags.mesh as string })); }\n else if (sub === \"unban\") { const { runUnban } = await import(\"~/commands/ban.js\"); process.exit(await runUnban(id, { mesh: flags.mesh as string })); }\n else if (sub === \"bans\") { const { runBans } = await import(\"~/commands/ban.js\"); process.exit(await runBans({ mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"verify\") { const { runVerify } = await import(\"~/commands/verify.js\"); process.exit(await runVerify(id || undefined, { mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh peer <list|kick|disconnect|ban|unban|bans|verify>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"message\": {\n const sub = positionals[0];\n if (sub === \"send\") { const { runSend } = await import(\"~/commands/send.js\"); await runSend({ mesh: flags.mesh as string, priority: flags.priority as string, json: !!flags.json }, positionals[1] ?? \"\", positionals.slice(2).join(\" \")); }\n else if (sub === \"inbox\") { const { runInbox } = await import(\"~/commands/inbox.js\"); await runInbox({ json: !!flags.json }); }\n else if (sub === \"status\") { const { runMsgStatus } = await import(\"~/commands/broker-actions.js\"); process.exit(await runMsgStatus(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else { console.error(\"Usage: claudemesh message <send|inbox|status>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"memory\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"remember\") { const { remember } = await import(\"~/commands/remember.js\"); process.exit(await remember(positionals.slice(1).join(\" \"), { ...f, tags: flags.tags as string })); }\n else if (sub === \"recall\") { const { recall } = await import(\"~/commands/recall.js\"); process.exit(await recall(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"forget\") { const { runForget } = await import(\"~/commands/broker-actions.js\"); process.exit(await runForget(positionals[1], f)); }\n else { console.error(\"Usage: claudemesh memory <remember|recall|forget>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"profile\": {\n const sub = positionals[0];\n // `claudemesh profile` (no sub) → existing runProfile (interactive view/edit)\n // `claudemesh profile summary \"x\"` → set summary\n // `claudemesh profile visible true` → set visibility\n // `claudemesh profile status set <state>` → set peer status\n if (!sub) { const { runProfile } = await import(\"~/commands/profile.js\"); await runProfile(flags as any); }\n else if (sub === \"summary\") { const { runSummary } = await import(\"~/commands/broker-actions.js\"); process.exit(await runSummary(positionals.slice(1).join(\" \"), { mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"visible\") { const { runVisible } = await import(\"~/commands/broker-actions.js\"); process.exit(await runVisible(positionals[1], { mesh: flags.mesh as string, json: !!flags.json })); }\n else if (sub === \"status\") {\n // `profile status` (no further sub) → diagnostic via runStatus\n // `profile status set <state>` → set peer status\n if (positionals[1] === \"set\") { const { runStatusSet } = await import(\"~/commands/broker-actions.js\"); process.exit(await runStatusSet(positionals[2] ?? \"\", { mesh: flags.mesh as string, json: !!flags.json })); }\n else { const { runStatus } = await import(\"~/commands/status.js\"); await runStatus(); }\n }\n else { console.error(\"Usage: claudemesh profile [summary|visible|status]\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n case \"schedule\": {\n // Aliases `remind` and its subcommands under a unified `schedule` verb.\n // The unified `schedule webhook/tool` primitives need broker work and\n // arrive in a later release — for now `schedule` only covers msg-style.\n const sub = positionals[0];\n if (sub === \"msg\" || sub === \"remind\" || sub === undefined || sub === \"list\" || sub === \"cancel\") {\n const { runRemind } = await import(\"~/commands/remind.js\");\n // Translate `schedule msg ...` and bare `schedule list/cancel` into\n // the legacy remind positional layout.\n const remindPositionals =\n sub === \"msg\" ? positionals.slice(1)\n : sub === \"remind\" ? positionals.slice(1)\n : positionals; // list / cancel / undefined\n await runRemind({ mesh: flags.mesh as string, in: flags.in as string, at: flags.at as string, cron: flags.cron as string, to: flags.to as string, json: !!flags.json }, remindPositionals);\n }\n else if (sub === \"webhook\" || sub === \"tool\") {\n console.error(` schedule ${sub} arrives in a later release — broker primitive not yet shipped`);\n process.exit(EXIT.INVALID_ARGS);\n }\n else { console.error(\"Usage: claudemesh schedule <msg|list|cancel>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // Platform — vector / graph / context / stream / sql / skill / vault / watch / webhook / file / mesh-mcp\n case \"vector\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"store\") { const { runVectorStore } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorStore(positionals[1] ?? \"\", positionals.slice(2).join(\" \"), { ...f, metadata: flags.metadata as string })); }\n else if (sub === \"search\") { const { runVectorSearch } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorSearch(positionals[1] ?? \"\", positionals.slice(2).join(\" \"), { ...f, limit: flags.limit as string })); }\n else if (sub === \"delete\") { const { runVectorDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorDelete(positionals[1] ?? \"\", positionals[2] ?? \"\", f)); }\n else if (sub === \"collections\") { const { runVectorCollections } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVectorCollections(f)); }\n else { console.error(\"Usage: claudemesh vector <store|search|delete|collections>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"graph\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"query\") { const { runGraphQuery } = await import(\"~/commands/platform-actions.js\"); process.exit(await runGraphQuery(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"execute\") { const { runGraphExecute } = await import(\"~/commands/platform-actions.js\"); process.exit(await runGraphExecute(positionals.slice(1).join(\" \"), f)); }\n else { console.error(\"Usage: claudemesh graph <query|execute> \\\"<cypher>\\\"\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"context\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"share\") { const { runContextShare } = await import(\"~/commands/platform-actions.js\"); process.exit(await runContextShare(positionals.slice(1).join(\" \"), { ...f, files: flags.files as string, findings: flags.findings as string, tags: flags.tags as string })); }\n else if (sub === \"get\") { const { runContextGet } = await import(\"~/commands/platform-actions.js\"); process.exit(await runContextGet(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"list\") { const { runContextList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runContextList(f)); }\n else { console.error(\"Usage: claudemesh context <share|get|list>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"stream\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"create\") { const { runStreamCreate } = await import(\"~/commands/platform-actions.js\"); process.exit(await runStreamCreate(positionals[1] ?? \"\", f)); }\n else if (sub === \"publish\") { const { runStreamPublish } = await import(\"~/commands/platform-actions.js\"); process.exit(await runStreamPublish(positionals[1] ?? \"\", positionals.slice(2).join(\" \"), f)); }\n else if (sub === \"list\") { const { runStreamList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runStreamList(f)); }\n else { console.error(\"Usage: claudemesh stream <create|publish|list>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"sql\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"query\") { const { runSqlQuery } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSqlQuery(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"execute\") { const { runSqlExecute } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSqlExecute(positionals.slice(1).join(\" \"), f)); }\n else if (sub === \"schema\") { const { runSqlSchema } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSqlSchema(f)); }\n else { console.error(\"Usage: claudemesh sql <query|execute|schema>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"skill\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n // No subcommand → print the bundled SKILL.md to stdout. Lets a\n // fresh user pipe `claudemesh skill | claude --skill-add -`\n // without copying anything into ~/.claude/skills (v1.18.0).\n if (!sub) { const { runSkill } = await import(\"~/commands/skill.js\"); process.exit(await runSkill()); }\n else if (sub === \"list\") { const { runSkillList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSkillList({ ...f, query: positionals[1] })); }\n else if (sub === \"get\") { const { runSkillGet } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSkillGet(positionals[1] ?? \"\", f)); }\n else if (sub === \"remove\") { const { runSkillRemove } = await import(\"~/commands/platform-actions.js\"); process.exit(await runSkillRemove(positionals[1] ?? \"\", f)); }\n else { console.error(\"Usage: claudemesh skill (print bundled SKILL.md)\\n claudemesh skill <list|get|remove>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"vault\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runVaultList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVaultList(f)); }\n else if (sub === \"delete\") { const { runVaultDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runVaultDelete(positionals[1] ?? \"\", f)); }\n else if (sub === \"set\") {\n const { runVaultSet } = await import(\"~/commands/platform-actions.js\");\n process.exit(await runVaultSet(positionals[1] ?? \"\", positionals[2] ?? \"\", {\n ...f,\n entryType: (flags.type as \"env\" | \"file\" | undefined),\n mountPath: flags.mount as string | undefined,\n description: flags.description as string | undefined,\n }));\n }\n else { console.error(\"Usage: claudemesh vault <list|set|delete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"watch\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runWatchList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWatchList(f)); }\n else if (sub === \"remove\") { const { runUnwatch } = await import(\"~/commands/platform-actions.js\"); process.exit(await runUnwatch(positionals[1] ?? \"\", f)); }\n else if (sub === \"add\") {\n const { runWatchAdd } = await import(\"~/commands/platform-actions.js\");\n process.exit(await runWatchAdd(positionals[1] ?? \"\", {\n ...f,\n label: flags.label as string | undefined,\n interval: flags.interval ? Number(flags.interval) : undefined,\n mode: flags.mode as string | undefined,\n extract: flags.extract as string | undefined,\n notifyOn: flags[\"notify-on\"] as string | undefined,\n }));\n }\n else { console.error(\"Usage: claudemesh watch <list|add|remove>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"webhook\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runWebhookList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWebhookList(f)); }\n else if (sub === \"delete\") { const { runWebhookDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWebhookDelete(positionals[1] ?? \"\", f)); }\n else if (sub === \"create\") { const { runWebhookCreate } = await import(\"~/commands/platform-actions.js\"); process.exit(await runWebhookCreate(positionals[1] ?? \"\", f)); }\n else { console.error(\"Usage: claudemesh webhook <list|create|delete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"file\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"share\") {\n const { runFileShare } = await import(\"~/commands/file.js\");\n process.exit(await runFileShare(positionals[1] ?? \"\", {\n ...f,\n to: flags.to as string | undefined,\n tags: flags.tags as string | undefined,\n message: flags.message as string | undefined,\n upload: !!flags.upload,\n }));\n }\n else if (sub === \"get\") {\n const { runFileGet } = await import(\"~/commands/file.js\");\n process.exit(await runFileGet(positionals[1] ?? \"\", { ...f, out: flags.out as string | undefined }));\n }\n else if (sub === \"list\") { const { runFileList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runFileList({ ...f, query: positionals[1] })); }\n else if (sub === \"status\") { const { runFileStatus } = await import(\"~/commands/platform-actions.js\"); process.exit(await runFileStatus(positionals[1] ?? \"\", f)); }\n else if (sub === \"delete\") { const { runFileDelete } = await import(\"~/commands/platform-actions.js\"); process.exit(await runFileDelete(positionals[1] ?? \"\", f)); }\n else { console.error(\"Usage: claudemesh file <share|get|list|status|delete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"mesh-mcp\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"list\") { const { runMeshMcpList } = await import(\"~/commands/platform-actions.js\"); process.exit(await runMeshMcpList(f)); }\n else if (sub === \"call\") { const { runMeshMcpCall } = await import(\"~/commands/platform-actions.js\"); process.exit(await runMeshMcpCall(positionals[1] ?? \"\", positionals[2] ?? \"\", positionals.slice(3).join(\" \"), f)); }\n else if (sub === \"catalog\") { const { runMeshMcpCatalog } = await import(\"~/commands/platform-actions.js\"); process.exit(await runMeshMcpCatalog(f)); }\n else { console.error(\"Usage: claudemesh mesh-mcp <list|call|catalog>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n case \"clock\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"set\") { const { runClockSet } = await import(\"~/commands/platform-actions.js\"); process.exit(await runClockSet(positionals[1] ?? \"\", f)); }\n else if (sub === \"pause\") { const { runClockPause } = await import(\"~/commands/platform-actions.js\"); process.exit(await runClockPause(f)); }\n else if (sub === \"resume\") { const { runClockResume } = await import(\"~/commands/platform-actions.js\"); process.exit(await runClockResume(f)); }\n else { const { runClock } = await import(\"~/commands/broker-actions.js\"); process.exit(await runClock(f)); }\n break;\n }\n\n // bridge — forward a topic between two meshes (v0.2.0)\n case \"bridge\": {\n const sub = positionals[0];\n if (sub === \"run\") {\n const { runBridge } = await import(\"~/commands/bridge.js\");\n process.exit(await runBridge(positionals[1] ?? \"\"));\n } else if (sub === \"init\" || sub === \"config\") {\n const { bridgeConfigTemplate } = await import(\"~/commands/bridge.js\");\n console.log(bridgeConfigTemplate());\n process.exit(EXIT.SUCCESS);\n } else {\n console.error(\"Usage: claudemesh bridge <run <config.yaml> | init>\");\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // apikey — REST + external WS bearer tokens (v0.2.0)\n case \"apikey\": case \"api-key\": {\n const sub = positionals[0];\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n cap: flags.cap as string,\n topic: flags.topic as string,\n expires: flags.expires as string,\n };\n const arg = positionals[1] ?? \"\";\n if (sub === \"create\") { const { runApiKeyCreate } = await import(\"~/commands/apikey.js\"); process.exit(await runApiKeyCreate(arg, f)); }\n else if (sub === \"list\") { const { runApiKeyList } = await import(\"~/commands/apikey.js\"); process.exit(await runApiKeyList(f)); }\n else if (sub === \"revoke\") { const { runApiKeyRevoke } = await import(\"~/commands/apikey.js\"); process.exit(await runApiKeyRevoke(arg, f)); }\n else { console.error(\"Usage: claudemesh apikey <create|list|revoke>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // topic — conversational primitive within a mesh (v0.2.0)\n case \"topic\": {\n const sub = positionals[0];\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n description: flags.description as string,\n visibility: flags.visibility as \"public\" | \"private\" | \"dm\" | undefined,\n role: flags.role as \"lead\" | \"member\" | \"observer\" | undefined,\n limit: flags.limit as string | undefined,\n before: flags.before as string | undefined,\n };\n const arg = positionals[1] ?? \"\";\n if (sub === \"create\") { const { runTopicCreate } = await import(\"~/commands/topic.js\"); process.exit(await runTopicCreate(arg, f)); }\n else if (sub === \"list\") {\n // v0.5.0: aggregate across every joined mesh when --mesh is omitted.\n // The per-mesh runTopicList prompts for a mesh; me topics doesn't\n // need one and surfaces last-activity + unread per topic.\n if (!f.mesh) {\n const { runMeTopics } = await import(\"~/commands/me.js\");\n process.exit(await runMeTopics({ mesh: undefined, json: f.json, unread: !!flags.unread }));\n }\n const { runTopicList } = await import(\"~/commands/topic.js\");\n process.exit(await runTopicList(f));\n }\n else if (sub === \"join\") { const { runTopicJoin } = await import(\"~/commands/topic.js\"); process.exit(await runTopicJoin(arg, f)); }\n else if (sub === \"leave\") { const { runTopicLeave } = await import(\"~/commands/topic.js\"); process.exit(await runTopicLeave(arg, f)); }\n else if (sub === \"members\") { const { runTopicMembers } = await import(\"~/commands/topic.js\"); process.exit(await runTopicMembers(arg, f)); }\n else if (sub === \"history\") { const { runTopicHistory } = await import(\"~/commands/topic.js\"); process.exit(await runTopicHistory(arg, f)); }\n else if (sub === \"read\") { const { runTopicMarkRead } = await import(\"~/commands/topic.js\"); process.exit(await runTopicMarkRead(arg, f)); }\n else if (sub === \"tail\") {\n const tailFlags = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n limit: flags.limit as string | undefined,\n forwardOnly: !!flags[\"forward-only\"],\n };\n const { runTopicTail } = await import(\"~/commands/topic-tail.js\");\n process.exit(await runTopicTail(arg, tailFlags));\n }\n else if (sub === \"post\") {\n const postFlags = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n plaintext: !!flags.plaintext,\n replyTo: (flags[\"reply-to\"] as string) || (flags.replyTo as string),\n };\n const message = positionals.slice(2).join(\" \");\n const { runTopicPost } = await import(\"~/commands/topic-post.js\");\n process.exit(await runTopicPost(arg, message, postFlags));\n }\n else { console.error(\"Usage: claudemesh topic <create|list|join|leave|members|history|read|tail|post>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // notification — recent @-mentions of the viewer (v1.7.0)\n case \"notification\": case \"notifications\": {\n const sub = positionals[0] ?? \"list\";\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n since: flags.since as string,\n };\n if (sub === \"list\") {\n // v0.5.0: aggregate across every joined mesh when --mesh is omitted.\n if (!f.mesh) {\n const { runMeNotifications } = await import(\"~/commands/me.js\");\n process.exit(\n await runMeNotifications({\n mesh: undefined,\n json: f.json,\n all: !!flags.all,\n since: f.since,\n }),\n );\n }\n const { runNotificationList } = await import(\"~/commands/notification.js\");\n process.exit(await runNotificationList(f));\n } else {\n console.error(\"Usage: claudemesh notification list [--mesh <slug>] [--since <ISO>] [--all]\");\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // me — cross-mesh workspace overview (v0.4.0)\n case \"me\": {\n const sub = positionals[0];\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n };\n if (!sub || sub === \"workspace\" || sub === \"overview\") {\n const { runMe } = await import(\"~/commands/me.js\");\n process.exit(await runMe(f));\n } else if (sub === \"topics\") {\n const { runMeTopics } = await import(\"~/commands/me.js\");\n process.exit(await runMeTopics({ ...f, unread: !!flags.unread }));\n } else if (sub === \"notifications\" || sub === \"notifs\") {\n const { runMeNotifications } = await import(\"~/commands/me.js\");\n process.exit(\n await runMeNotifications({\n ...f,\n all: !!flags.all,\n since: flags.since as string | undefined,\n }),\n );\n } else if (sub === \"activity\") {\n const { runMeActivity } = await import(\"~/commands/me.js\");\n process.exit(\n await runMeActivity({\n ...f,\n since: flags.since as string | undefined,\n }),\n );\n } else if (sub === \"search\") {\n const { runMeSearch } = await import(\"~/commands/me.js\");\n const query = positionals.slice(1).join(\" \").trim();\n process.exit(await runMeSearch({ ...f, query }));\n } else {\n console.error(\n \"Usage: claudemesh me (cross-mesh overview)\\n\" +\n \" claudemesh me topics (cross-mesh topic list)\\n\" +\n \" claudemesh me topics --unread (only unread topics)\\n\" +\n \" claudemesh me notifications (unread @-mentions, last 7d)\\n\" +\n \" claudemesh me notifications --all (include already-read)\\n\" +\n \" claudemesh me notifications --since=ISO (custom window)\\n\" +\n \" claudemesh me activity (recent messages, last 24h)\\n\" +\n \" claudemesh me activity --since=ISO (custom window)\\n\" +\n \" claudemesh me search <query> (cross-mesh search)\",\n );\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // member — mesh roster with online state (v1.7.0)\n case \"member\": case \"members\": {\n const sub = positionals[0] ?? \"list\";\n const f = {\n mesh: flags.mesh as string,\n json: !!flags.json,\n online: !!flags.online,\n };\n if (sub === \"list\") {\n const { runMemberList } = await import(\"~/commands/member.js\");\n process.exit(await runMemberList(f));\n } else {\n console.error(\"Usage: claudemesh member list [--online]\");\n process.exit(EXIT.INVALID_ARGS);\n }\n break;\n }\n\n // task — extends broker-actions.ts (claim/complete) with list/create\n case \"task\": {\n const sub = positionals[0];\n const f = { mesh: flags.mesh as string, json: !!flags.json };\n if (sub === \"claim\") { const { runTaskClaim } = await import(\"~/commands/broker-actions.js\"); process.exit(await runTaskClaim(positionals[1], f)); }\n else if (sub === \"complete\") { const { runTaskComplete } = await import(\"~/commands/broker-actions.js\"); process.exit(await runTaskComplete(positionals[1], positionals.slice(2).join(\" \") || undefined, f)); }\n else if (sub === \"list\") {\n // v0.5.0 phase 2: aggregate across every mesh when --mesh is omitted.\n if (!f.mesh) {\n const { runMeTasks } = await import(\"~/commands/me.js\");\n process.exit(await runMeTasks({ json: f.json, status: flags.status as string | undefined }));\n }\n const { runTaskList } = await import(\"~/commands/platform-actions.js\");\n process.exit(await runTaskList({ ...f, status: flags.status as string, assignee: flags.assignee as string }));\n }\n else if (sub === \"create\") { const { runTaskCreate } = await import(\"~/commands/platform-actions.js\"); process.exit(await runTaskCreate(positionals.slice(1).join(\" \"), { ...f, assignee: flags.assignee as string, priority: flags.priority as string, tags: flags.tags as string })); }\n else { console.error(\"Usage: claudemesh task <create|list|claim|complete>\"); process.exit(EXIT.INVALID_ARGS); }\n break;\n }\n\n // Internal\n case \"mcp\": { const { runMcp } = await import(\"~/commands/mcp.js\"); await runMcp(); break; }\n case \"hook\": { const { runHook } = await import(\"~/commands/hook.js\"); await runHook(positionals); break; }\n case \"seed-test-mesh\": { const { runSeedTestMesh } = await import(\"~/commands/seed-test-mesh.js\"); runSeedTestMesh(positionals); break; }\n\n default: {\n console.error(` Unknown command: ${command}. Run \\`claudemesh --help\\` for usage.`);\n process.exit(EXIT.INVALID_ARGS);\n }\n }\n\n showUpdateNotice(VERSION).catch(() => {});\n}\n\nmain().catch((err) => {\n console.error(\"Fatal: \" + (err instanceof Error ? err.message : String(err)));\n process.exit(EXIT.INTERNAL_ERROR);\n});\n",
175
177
  "import { VERSION } from \"~/constants/urls.js\";\nimport { boldOrange } from \"~/ui/styles.js\";\nexport function renderVersion(): string { return \" \" + boldOrange(\"claudemesh\") + \" v\" + VERSION; }\n",
176
178
  "/**\n * Translate the parsed CLI invocation (command + positionals) into the\n * (resource, verb, isWrite) shape that the policy engine evaluates.\n *\n * Returns `null` for commands that are not subject to policy gating:\n * - local-only ops (help, version, list, doctor, sync, completions)\n * - auth (login, logout, whoami, register)\n * - setup (install, uninstall, url-handler, status-line, backup, restore)\n * - launch / connect (no broker mutation by themselves)\n *\n * Spec: .artifacts/specs/2026-05-02-architecture-north-star.md commitment #7.\n */\nexport interface InvocationClass {\n resource: string;\n verb: string;\n isWrite: boolean;\n}\n\n/** Commands the policy engine never evaluates. Local or auth-only. */\nconst SKIP = new Set([\n \"\", \"help\", \"version\",\n \"login\", \"register\", \"logout\", \"whoami\",\n \"install\", \"uninstall\", \"doctor\", \"sync\", \"completions\", \"url-handler\", \"status-line\",\n \"backup\", \"restore\", \"upgrade\", \"update\",\n \"list\", \"ls\", // local mesh list\n \"launch\", \"connect\", // launches Claude — no broker write\n \"status\", // broker connectivity diagnostic\n \"test\", \"mcp\", \"hook\", \"seed-test-mesh\",\n \"disconnect\", // duplicate alias only — top-level \"disconnect\" prints message\n]);\n\n/** Verbs that mutate broker state (used by --approval-mode plan / read-only). */\nconst WRITE_VERBS = new Set([\n \"create\", \"send\", \"remember\", \"forget\", \"remind\", \"schedule\", \"summary\",\n \"visible\", \"join\", \"leave\", \"kick\", \"ban\", \"unban\", \"disconnect\", \"delete\",\n \"rename\", \"share\", \"invite\", \"store\", \"publish\", \"execute\", \"set\", \"remove\",\n \"pause\", \"resume\", \"claim\", \"complete\", \"grant\", \"revoke\", \"block\", \"call\",\n]);\n\nfunction isWrite(verb: string): boolean {\n return WRITE_VERBS.has(verb);\n}\n\n/**\n * Map (command, positionals) → invocation classification.\n * The mapping mirrors the resource/verb namespace used in DEFAULT_POLICY so a\n * `peer kick` rule actually matches both `peer kick` and the legacy `kick`.\n */\nexport function classifyInvocation(command: string, positionals: string[]): InvocationClass | null {\n if (SKIP.has(command)) return null;\n\n const sub = positionals[0] ?? \"\";\n\n // ── Resource-form commands ───────────────────────────────────────────────\n switch (command) {\n case \"peer\": {\n const verb = sub || \"list\";\n return { resource: \"peer\", verb, isWrite: isWrite(verb) };\n }\n case \"message\": {\n const verb = sub || \"inbox\";\n return { resource: \"message\", verb, isWrite: isWrite(verb) };\n }\n case \"memory\": {\n const verb = sub || \"recall\";\n return { resource: \"memory\", verb, isWrite: isWrite(verb) };\n }\n case \"profile\": {\n // `profile` (no sub) is read; `profile summary/visible/status set` are writes.\n if (!sub) return { resource: \"profile\", verb: \"view\", isWrite: false };\n if (sub === \"status\") {\n return positionals[1] === \"set\"\n ? { resource: \"profile\", verb: \"status\", isWrite: true }\n : { resource: \"profile\", verb: \"view\", isWrite: false };\n }\n return { resource: \"profile\", verb: sub, isWrite: true };\n }\n case \"schedule\": {\n const verb = sub || \"list\";\n return { resource: \"schedule\", verb, isWrite: verb !== \"list\" };\n }\n case \"group\": {\n return { resource: \"group\", verb: sub || \"list\", isWrite: sub === \"join\" || sub === \"leave\" };\n }\n case \"task\": {\n return { resource: \"task\", verb: sub || \"list\", isWrite: isWrite(sub) };\n }\n case \"topic\": {\n // topic verbs: create | list | join | leave | members | history | read\n // writes: create, join, leave; reads: list, members, history, read\n const verb = sub || \"list\";\n const writeVerbs = new Set([\"create\", \"join\", \"leave\"]);\n return { resource: \"topic\", verb, isWrite: writeVerbs.has(verb) };\n }\n case \"apikey\": case \"api-key\": {\n // apikey verbs: create | list | revoke. create issues a credential —\n // strongly destructive in security terms; revoke is also a write.\n const verb = sub || \"list\";\n const writeVerbs = new Set([\"create\", \"revoke\"]);\n return { resource: \"apikey\", verb, isWrite: writeVerbs.has(verb) };\n }\n case \"bridge\": {\n // bridge verbs: run (long-lived forwarder) | init (print template).\n // `run` is a write at the mesh level since it joins both meshes\n // and posts messages on their topics.\n const verb = sub || \"init\";\n return { resource: \"bridge\", verb, isWrite: verb === \"run\" };\n }\n\n // Platform — sub is the verb.\n case \"vector\": case \"graph\": case \"context\": case \"stream\":\n case \"sql\": case \"skill\": case \"vault\": case \"watch\":\n case \"webhook\": case \"file\": case \"mesh-mcp\": case \"clock\": {\n const verb = sub || \"list\";\n return { resource: command, verb, isWrite: isWrite(verb) };\n }\n\n case \"state\": {\n const verb = sub === \"set\" ? \"set\" : sub === \"list\" ? \"list\" : \"get\";\n return { resource: \"state\", verb, isWrite: verb === \"set\" };\n }\n }\n\n // ── Legacy / flat verb form ──────────────────────────────────────────────\n switch (command) {\n // Mesh management\n case \"create\": case \"new\": return { resource: \"mesh\", verb: \"create\", isWrite: true };\n case \"join\": case \"add\": return { resource: \"mesh\", verb: \"join\", isWrite: true };\n case \"delete\": case \"rm\": return { resource: \"mesh\", verb: \"delete\", isWrite: true };\n case \"rename\": return { resource: \"mesh\", verb: \"rename\", isWrite: true };\n case \"share\": case \"invite\": return { resource: \"mesh\", verb: \"share\", isWrite: true };\n case \"info\": return { resource: \"mesh\", verb: \"info\", isWrite: false };\n\n // Peer ops (legacy verbs)\n case \"peers\": return { resource: \"peer\", verb: \"list\", isWrite: false };\n case \"kick\": return { resource: \"peer\", verb: \"kick\", isWrite: true };\n case \"ban\": return { resource: \"peer\", verb: \"ban\", isWrite: true };\n case \"unban\": return { resource: \"peer\", verb: \"unban\", isWrite: true };\n case \"bans\": return { resource: \"peer\", verb: \"bans\", isWrite: false };\n case \"verify\": return { resource: \"peer\", verb: \"verify\", isWrite: false };\n\n // Messaging\n case \"send\": return { resource: \"message\", verb: \"send\", isWrite: true };\n case \"inbox\": return { resource: \"message\", verb: \"inbox\", isWrite: false };\n case \"msg-status\": return { resource: \"message\", verb: \"status\", isWrite: false };\n\n // Memory\n case \"remember\": return { resource: \"memory\", verb: \"remember\", isWrite: true };\n case \"recall\": return { resource: \"memory\", verb: \"recall\", isWrite: false };\n case \"forget\": return { resource: \"memory\", verb: \"forget\", isWrite: true };\n case \"remind\": return { resource: \"schedule\", verb: \"msg\", isWrite: true };\n\n // Presence\n case \"summary\": return { resource: \"profile\", verb: \"summary\", isWrite: true };\n case \"visible\": return { resource: \"profile\", verb: \"visible\", isWrite: true };\n\n // Diagnostics\n case \"stats\": return { resource: \"mesh\", verb: \"stats\", isWrite: false };\n case \"ping\": return { resource: \"mesh\", verb: \"ping\", isWrite: false };\n\n // Security\n case \"grant\": return { resource: \"grant\", verb: \"grant\", isWrite: true };\n case \"revoke\": return { resource: \"grant\", verb: \"revoke\", isWrite: true };\n case \"block\": return { resource: \"grant\", verb: \"block\", isWrite: true };\n case \"grants\": return { resource: \"grant\", verb: \"list\", isWrite: false };\n }\n\n // Unknown command — let the dispatcher's default branch handle it.\n return null;\n}\n",
177
179
  "/**\n * Policy engine — gates every CLI verb's broker call behind allow/prompt/deny\n * rules evaluated against a YAML config. Modeled on Gemini CLI's `--policy /\n * --admin-policy` and Codex's `--sandbox` modes.\n *\n * Why: when claudemesh is invoked from Claude's Bash tool, the user's\n * `allowedTools = [\"Bash\"]` setting gives Claude carte blanche over the\n * CLI. The policy engine adds a second gate INSIDE claudemesh that the\n * shell-permission layer can't bypass — `claudemesh file delete` can be\n * `decision: deny` regardless of whether Bash is allowed.\n *\n * Spec: .artifacts/specs/2026-05-02-architecture-north-star.md commitment #7.\n *\n * Decision tree:\n * 1. Parse `--approval-mode` flag → coarse mode (plan|read-only|write|yolo).\n * 2. Read user policy from --policy <path> | $CLAUDEMESH_POLICY |\n * ~/.claudemesh/policy.yaml (auto-created with defaults).\n * 3. Read admin policy (if any) from --admin-policy | /etc/claudemesh/admin-policy.yaml.\n * Admin rules win on conflict.\n * 4. For an invocation `(resource, verb, mesh)`:\n * a. Coarse mode: read-only/plan deny all writes outright.\n * b. Match the most-specific rule (admin > user > built-in default).\n * c. Apply decision: allow | prompt | deny.\n * d. On `prompt`, ask interactively unless `--yes` or yolo mode.\n *\n * Audit log: simple newline-JSON append-only at ~/.claudemesh/audit.log.\n * Hash-chained tamper-evidence is parked for 2.x.\n */\n\nimport { existsSync, readFileSync, writeFileSync, appendFileSync, mkdirSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { join, dirname } from \"node:path\";\nimport { createInterface } from \"node:readline\";\n\nexport type ApprovalMode = \"plan\" | \"read-only\" | \"write\" | \"yolo\";\n\nexport type Decision = \"allow\" | \"prompt\" | \"deny\";\n\n/** A single rule. Earlier rules are matched first; the first match wins. */\nexport interface PolicyRule {\n /** Resource name, e.g. \"send\", \"file\", \"sql\". `*` matches any. */\n resource: string;\n /** Verb name, e.g. \"delete\", \"execute\", \"list\". `*` matches any. */\n verb: string;\n /** Optional mesh slug filter. Omit for all meshes. */\n mesh?: string;\n /** Optional peer filter (display name, @group, or *). Currently advisory. */\n peers?: string[];\n /** What to do on match. */\n decision: Decision;\n /** Free-text reason surfaced when decision is `prompt` or `deny`. */\n reason?: string;\n}\n\nexport interface Policy {\n default: Decision;\n rules: PolicyRule[];\n}\n\n/** Built-in fallback if no user/admin policy exists. Sensible defaults:\n * destructive writes prompt; everything else is allowed. The user's first\n * run writes this file so they can edit it. */\nexport const DEFAULT_POLICY: Policy = {\n default: \"allow\",\n rules: [\n // Destructive writes — prompt the human.\n { resource: \"peer\", verb: \"kick\", decision: \"prompt\", reason: \"ends a peer's session\" },\n { resource: \"peer\", verb: \"ban\", decision: \"prompt\", reason: \"permanently revokes membership\" },\n { resource: \"peer\", verb: \"disconnect\", decision: \"prompt\", reason: \"disconnects a peer\" },\n { resource: \"file\", verb: \"delete\", decision: \"prompt\", reason: \"deletes a shared file\" },\n { resource: \"vector\", verb: \"delete\", decision: \"prompt\", reason: \"removes vector entries\" },\n { resource: \"vault\", verb: \"delete\", decision: \"prompt\", reason: \"deletes encrypted secret\" },\n { resource: \"memory\", verb: \"forget\", decision: \"prompt\", reason: \"removes shared memory\" },\n { resource: \"skill\", verb: \"remove\", decision: \"prompt\", reason: \"removes published skill\" },\n { resource: \"webhook\", verb: \"delete\", decision: \"prompt\", reason: \"removes webhook integration\" },\n { resource: \"watch\", verb: \"remove\", decision: \"prompt\", reason: \"removes URL watcher\" },\n { resource: \"sql\", verb: \"execute\", decision: \"prompt\", reason: \"raw SQL write to mesh DB\" },\n { resource: \"graph\", verb: \"execute\", decision: \"prompt\", reason: \"graph mutation\" },\n { resource: \"mesh\", verb: \"delete\", decision: \"prompt\", reason: \"deletes the mesh for everyone\" },\n { resource: \"apikey\", verb: \"create\", decision: \"prompt\", reason: \"issues a long-lived credential\" },\n { resource: \"apikey\", verb: \"revoke\", decision: \"prompt\", reason: \"irreversibly disables a credential\" },\n ],\n};\n\nconst USER_POLICY_PATH = join(homedir(), \".claudemesh\", \"policy.yaml\");\nconst AUDIT_LOG_PATH = join(homedir(), \".claudemesh\", \"audit.log\");\n\n/**\n * Minimal YAML parser for our policy format. Accepts the shape:\n * default: allow|prompt|deny\n * rules:\n * - resource: peer\n * verb: kick\n * mesh: flexicar # optional\n * peers: [\"@admin\"] # optional\n * decision: prompt\n * reason: \"...\" # optional\n *\n * We avoid pulling in a real YAML dep (zero-dep CLI). For complex configs\n * users can pre-process to JSON; we accept that too via .json extension.\n */\nexport function parsePolicyYaml(text: string): Policy {\n // If the file is JSON, parse directly.\n const trimmed = text.trim();\n if (trimmed.startsWith(\"{\")) {\n return JSON.parse(trimmed) as Policy;\n }\n\n const policy: Policy = { default: \"allow\", rules: [] };\n const lines = text.split(\"\\n\");\n let cur: Partial<PolicyRule> | null = null;\n const flush = (): void => {\n if (cur && cur.resource && cur.verb && cur.decision) {\n policy.rules.push(cur as PolicyRule);\n }\n cur = null;\n };\n\n for (const raw of lines) {\n const line = raw.replace(/#.*$/, \"\").trimEnd();\n if (!line.trim()) continue;\n\n const top = line.match(/^(default):\\s*(\\S+)/);\n if (top) {\n policy.default = top[2] as Decision;\n continue;\n }\n\n if (/^rules\\s*:/.test(line)) continue;\n\n // New rule entry: starts with \" -\" or \"- \"\n if (/^\\s*-\\s/.test(line)) {\n flush();\n cur = {};\n const m = line.match(/-\\s*(\\w+)\\s*:\\s*(.*)$/);\n if (m) (cur as Record<string, unknown>)[m[1]!] = parseValue(m[2]!);\n continue;\n }\n\n // Continuation key/value within a rule: \" key: value\"\n const kv = line.match(/^\\s+(\\w+)\\s*:\\s*(.*)$/);\n if (kv && cur) {\n (cur as Record<string, unknown>)[kv[1]!] = parseValue(kv[2]!);\n }\n }\n flush();\n\n return policy;\n}\n\nfunction parseValue(raw: string): string | string[] | boolean | number {\n const v = raw.trim();\n if (!v) return \"\";\n // Inline array: [\"a\", \"b\"]\n if (v.startsWith(\"[\") && v.endsWith(\"]\")) {\n return v\n .slice(1, -1)\n .split(\",\")\n .map((s) => s.trim().replace(/^[\"']|[\"']$/g, \"\"))\n .filter(Boolean);\n }\n // Quoted string\n const q = v.match(/^[\"'](.*)[\"']$/);\n if (q) return q[1]!;\n // Bools / numbers\n if (v === \"true\") return true;\n if (v === \"false\") return false;\n if (/^-?\\d+(\\.\\d+)?$/.test(v)) return Number(v);\n return v;\n}\n\n/** Serialise a Policy as YAML. */\nexport function serializePolicyYaml(p: Policy): string {\n let out = `# claudemesh policy file\\n`;\n out += `# Edit to change which CLI ops require confirmation or are forbidden.\\n`;\n out += `# Decisions: allow | prompt | deny\\n`;\n out += `# See: ~/.claude/skills/claudemesh/SKILL.md or claudemesh policy --help\\n\\n`;\n out += `default: ${p.default}\\n\\n`;\n out += `rules:\\n`;\n for (const r of p.rules) {\n out += ` - resource: ${r.resource}\\n`;\n out += ` verb: ${r.verb}\\n`;\n if (r.mesh) out += ` mesh: ${r.mesh}\\n`;\n if (r.peers) out += ` peers: [${r.peers.map((p) => `\"${p}\"`).join(\", \")}]\\n`;\n out += ` decision: ${r.decision}\\n`;\n if (r.reason) out += ` reason: \"${r.reason}\"\\n`;\n }\n return out;\n}\n\n/** Load the user's policy, creating the default on first run. */\nexport function loadPolicy(opts?: { policyPath?: string; envOverride?: string }): Policy {\n const path =\n opts?.policyPath ??\n opts?.envOverride ??\n process.env.CLAUDEMESH_POLICY ??\n USER_POLICY_PATH;\n\n if (!existsSync(path)) {\n // First run — write defaults so the user can discover/edit them.\n if (path === USER_POLICY_PATH) {\n try {\n mkdirSync(dirname(path), { recursive: true });\n writeFileSync(path, serializePolicyYaml(DEFAULT_POLICY), \"utf-8\");\n } catch { /* best effort */ }\n }\n return DEFAULT_POLICY;\n }\n\n try {\n return parsePolicyYaml(readFileSync(path, \"utf-8\"));\n } catch (e) {\n process.stderr.write(\n `[claudemesh] policy: failed to parse ${path}: ${e instanceof Error ? e.message : String(e)}\\n`,\n );\n return DEFAULT_POLICY;\n }\n}\n\n/** Match wildcards: `*` in the rule matches anything. */\nfunction matches(rule: string, value: string): boolean {\n if (rule === \"*\") return true;\n return rule === value;\n}\n\nexport interface CheckContext {\n resource: string;\n verb: string;\n mesh?: string;\n /** Coarse mode from --approval-mode (or default 'write'). */\n mode: ApprovalMode;\n /** True if the verb is destructive (kick/ban/delete/forget/execute/etc). */\n isWrite: boolean;\n /** If true, prompt-decisions are auto-approved (e.g. -y / yolo). */\n yes: boolean;\n}\n\nexport interface CheckResult {\n decision: Decision;\n reason?: string;\n matchedRule?: PolicyRule;\n}\n\n/** Evaluate a policy against a check context. Pure — no I/O. */\nexport function evaluate(policy: Policy, ctx: CheckContext): CheckResult {\n // Coarse approval-mode short-circuits.\n if (ctx.mode === \"yolo\") return { decision: \"allow\", reason: \"yolo mode\" };\n if ((ctx.mode === \"plan\" || ctx.mode === \"read-only\") && ctx.isWrite) {\n return { decision: \"deny\", reason: `${ctx.mode} mode forbids writes` };\n }\n\n for (const r of policy.rules) {\n if (!matches(r.resource, ctx.resource)) continue;\n if (!matches(r.verb, ctx.verb)) continue;\n if (r.mesh && ctx.mesh && r.mesh !== ctx.mesh) continue;\n return { decision: r.decision, reason: r.reason, matchedRule: r };\n }\n return { decision: policy.default };\n}\n\n/** Append a one-line JSON record to ~/.claudemesh/audit.log. */\nexport function audit(record: Record<string, unknown>): void {\n try {\n mkdirSync(dirname(AUDIT_LOG_PATH), { recursive: true });\n appendFileSync(\n AUDIT_LOG_PATH,\n JSON.stringify({ ts: new Date().toISOString(), ...record }) + \"\\n\",\n \"utf-8\",\n );\n } catch { /* best effort */ }\n}\n\n/**\n * Interactive prompt for `prompt` decisions. Returns true if the user\n * approves. In a non-TTY context (cron, scripts) returns false to be safe —\n * the user must opt in via `--approval-mode yolo` or a `decision: allow`\n * rule.\n */\nexport async function confirmPrompt(message: string): Promise<boolean> {\n if (!process.stdin.isTTY || !process.stdout.isTTY) {\n return false;\n }\n return new Promise((resolve) => {\n const rl = createInterface({ input: process.stdin, output: process.stdout });\n rl.question(`${message} [y/N] `, (answer) => {\n rl.close();\n const a = answer.trim().toLowerCase();\n resolve(a === \"y\" || a === \"yes\");\n });\n });\n}\n\n/**\n * One-stop check: load policy, evaluate, audit, prompt if needed. Returns\n * `true` if the operation may proceed, `false` if blocked.\n *\n * Callers pass in `ctx` with the current invocation. They should `return`\n * (or `process.exit`) when this returns false.\n */\nexport async function gate(ctx: CheckContext, opts?: { policyPath?: string }): Promise<boolean> {\n const policy = loadPolicy(opts);\n const result = evaluate(policy, ctx);\n\n audit({ ...ctx, decision: result.decision, reason: result.reason });\n\n if (result.decision === \"allow\") return true;\n if (result.decision === \"deny\") {\n process.stderr.write(\n `\\n ✘ blocked by policy: ${ctx.resource} ${ctx.verb}` +\n (result.reason ? ` — ${result.reason}` : \"\") +\n `\\n edit ${USER_POLICY_PATH} to change.\\n`,\n );\n return false;\n }\n // prompt\n if (ctx.yes) return true;\n const reason = result.reason ? ` — ${result.reason}` : \"\";\n const confirmed = await confirmPrompt(\n `\\n ⚠ ${ctx.resource} ${ctx.verb}${reason}. Continue?`,\n );\n if (!confirmed) {\n process.stderr.write(` cancelled.\\n`);\n audit({ ...ctx, decision: \"cancelled-at-prompt\" });\n }\n return confirmed;\n}\n"
178
180
  ],
179
- "mappings": "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",
180
- "debugId": "1F2A51E3A3AE432A64756E2164756E21",
181
+ "mappings": "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",
182
+ "debugId": "FBD494B01BF81C7164756E2164756E21",
181
183
  "names": []
182
184
  }