@adhdev/daemon-standalone 0.9.71 → 0.9.72

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.
@@ -25377,8 +25377,8 @@ async function detectIDEs(providerLoader) {
25377
25377
  if ((0, import_fs5.existsSync)(bundledCli)) resolvedCli = bundledCli;
25378
25378
  }
25379
25379
  if (!resolvedCli && appPath && os21 === "win32") {
25380
- const { dirname: dirname72 } = await import("path");
25381
- const appDir = dirname72(appPath);
25380
+ const { dirname: dirname82 } = await import("path");
25381
+ const appDir = dirname82(appPath);
25382
25382
  const candidates = [
25383
25383
  `${appDir}\\\\bin\\\\${def.cli}.cmd`,
25384
25384
  `${appDir}\\\\bin\\\\${def.cli}`,
@@ -25436,19 +25436,19 @@ function resolveCommandPath(command) {
25436
25436
  return null;
25437
25437
  }
25438
25438
  function execAsync(cmd, timeoutMs = 5e3) {
25439
- return new Promise((resolve152) => {
25439
+ return new Promise((resolve162) => {
25440
25440
  const child = (0, import_child_process4.exec)(cmd, {
25441
25441
  encoding: "utf-8",
25442
25442
  timeout: timeoutMs,
25443
25443
  ...process.platform === "win32" ? { windowsHide: true } : {}
25444
25444
  }, (err, stdout) => {
25445
25445
  if (err || !stdout?.trim()) {
25446
- resolve152(null);
25446
+ resolve162(null);
25447
25447
  } else {
25448
- resolve152(stdout.trim());
25448
+ resolve162(stdout.trim());
25449
25449
  }
25450
25450
  });
25451
- child.on("error", () => resolve152(null));
25451
+ child.on("error", () => resolve162(null));
25452
25452
  });
25453
25453
  }
25454
25454
  async function detectCLIs(providerLoader, options) {
@@ -28512,7 +28512,7 @@ function getCliVisibleTranscriptCount(adapter) {
28512
28512
  async function getStableExtensionBaseline(h) {
28513
28513
  const first = await readExtensionChatState(h);
28514
28514
  if (getStateMessageCount(first) > 0 || getStateLastSignature(first)) return first;
28515
- await new Promise((resolve152) => setTimeout(resolve152, 150));
28515
+ await new Promise((resolve162) => setTimeout(resolve162, 150));
28516
28516
  const second = await readExtensionChatState(h);
28517
28517
  return getStateMessageCount(second) >= getStateMessageCount(first) ? second : first;
28518
28518
  }
@@ -28520,7 +28520,7 @@ async function verifyExtensionSendObserved(h, before) {
28520
28520
  const beforeCount = getStateMessageCount(before);
28521
28521
  const beforeSignature = getStateLastSignature(before);
28522
28522
  for (let attempt = 0; attempt < 12; attempt += 1) {
28523
- await new Promise((resolve152) => setTimeout(resolve152, 250));
28523
+ await new Promise((resolve162) => setTimeout(resolve162, 250));
28524
28524
  const state = await readExtensionChatState(h);
28525
28525
  if (state?.status === "waiting_approval") return true;
28526
28526
  const afterCount = getStateMessageCount(state);
@@ -30103,7 +30103,7 @@ async function executeProviderScript(h, args, scriptName) {
30103
30103
  const enterCount = cliCommand.enterCount || 1;
30104
30104
  await adapter.writeRaw(cliCommand.text + "\r");
30105
30105
  for (let i = 1; i < enterCount; i += 1) {
30106
- await new Promise((resolve152) => setTimeout(resolve152, 50));
30106
+ await new Promise((resolve162) => setTimeout(resolve162, 50));
30107
30107
  await adapter.writeRaw("\r");
30108
30108
  }
30109
30109
  }
@@ -30483,7 +30483,7 @@ async function waitForCliAdapterReady(adapter, options) {
30483
30483
  if (status === "stopped") {
30484
30484
  throw new Error("CLI runtime stopped before it became ready");
30485
30485
  }
30486
- await new Promise((resolve152) => setTimeout(resolve152, pollMs));
30486
+ await new Promise((resolve162) => setTimeout(resolve162, pollMs));
30487
30487
  }
30488
30488
  throw new Error(`CLI runtime did not become ready within ${timeoutMs}ms`);
30489
30489
  }
@@ -31043,17 +31043,17 @@ async function findFreePort(ports) {
31043
31043
  throw new Error("No free port found");
31044
31044
  }
31045
31045
  function checkPortFree(port) {
31046
- return new Promise((resolve152) => {
31046
+ return new Promise((resolve162) => {
31047
31047
  const server = net2.createServer();
31048
31048
  server.unref();
31049
- server.on("error", () => resolve152(false));
31049
+ server.on("error", () => resolve162(false));
31050
31050
  server.listen(port, "127.0.0.1", () => {
31051
- server.close(() => resolve152(true));
31051
+ server.close(() => resolve162(true));
31052
31052
  });
31053
31053
  });
31054
31054
  }
31055
31055
  async function isCdpActive(port) {
31056
- return new Promise((resolve152) => {
31056
+ return new Promise((resolve162) => {
31057
31057
  const req = __require2("http").get(`http://127.0.0.1:${port}/json/version`, {
31058
31058
  timeout: 2e3
31059
31059
  }, (res) => {
@@ -31062,16 +31062,16 @@ async function isCdpActive(port) {
31062
31062
  res.on("end", () => {
31063
31063
  try {
31064
31064
  const info = JSON.parse(data);
31065
- resolve152(!!info["WebKit-Version"] || !!info["Browser"]);
31065
+ resolve162(!!info["WebKit-Version"] || !!info["Browser"]);
31066
31066
  } catch {
31067
- resolve152(false);
31067
+ resolve162(false);
31068
31068
  }
31069
31069
  });
31070
31070
  });
31071
- req.on("error", () => resolve152(false));
31071
+ req.on("error", () => resolve162(false));
31072
31072
  req.on("timeout", () => {
31073
31073
  req.destroy();
31074
- resolve152(false);
31074
+ resolve162(false);
31075
31075
  });
31076
31076
  });
31077
31077
  }
@@ -31525,11 +31525,23 @@ function resolveMeshCoordinatorSetup(options) {
31525
31525
  if (!path26) {
31526
31526
  return { kind: "unsupported", reason: "Provider auto-import MCP config is missing a config path" };
31527
31527
  }
31528
+ const mcpServer = resolveAdhdevMcpServerLaunch({
31529
+ meshId,
31530
+ nodeExecutable: options.nodeExecutable,
31531
+ adhdevMcpEntryPath: options.adhdevMcpEntryPath
31532
+ });
31533
+ if (!mcpServer) {
31534
+ return {
31535
+ kind: "unsupported",
31536
+ reason: "Could not resolve the ADHDev MCP server entrypoint without relying on a PATH bin shim"
31537
+ };
31538
+ }
31528
31539
  return {
31529
31540
  kind: "auto_import",
31530
31541
  serverName,
31531
31542
  configPath: (0, import_path4.join)(workspace, path26),
31532
- configFormat: mcpConfig.format
31543
+ configFormat: mcpConfig.format,
31544
+ mcpServer
31533
31545
  };
31534
31546
  }
31535
31547
  if (mcpConfig.mode === "manual") {
@@ -31561,6 +31573,53 @@ function resolveMeshCoordinatorSetup(options) {
31561
31573
  function renderMeshCoordinatorTemplate(template, values) {
31562
31574
  return template.replace(/\{\{\s*(meshId|workspace|serverName|adhdevMcpCommand)\s*\}\}/g, (_, key) => values[key] || "");
31563
31575
  }
31576
+ function resolveAdhdevMcpServerLaunch(options) {
31577
+ const entryPath = resolveAdhdevMcpEntryPath(options.adhdevMcpEntryPath);
31578
+ if (!entryPath) return null;
31579
+ return {
31580
+ command: options.nodeExecutable?.trim() || process.execPath,
31581
+ args: [entryPath, "--repo-mesh", options.meshId]
31582
+ };
31583
+ }
31584
+ function resolveAdhdevMcpEntryPath(explicitPath) {
31585
+ const explicit = explicitPath?.trim();
31586
+ if (explicit) return normalizeExistingPath(explicit) || explicit;
31587
+ const envPath = process.env.ADHDEV_MCP_SERVER_PATH?.trim();
31588
+ if (envPath) return normalizeExistingPath(envPath) || envPath;
31589
+ const candidates = [];
31590
+ const addCandidate = (candidate) => {
31591
+ if (!candidates.includes(candidate)) candidates.push(candidate);
31592
+ };
31593
+ const addPackagedCandidates = (baseFile) => {
31594
+ if (!baseFile) return;
31595
+ const realBase = normalizeExistingPath(baseFile) || baseFile;
31596
+ const dir = (0, import_path4.dirname)(realBase);
31597
+ addCandidate((0, import_path4.resolve)(dir, "../vendor/mcp-server/index.js"));
31598
+ addCandidate((0, import_path4.resolve)(dir, "../../vendor/mcp-server/index.js"));
31599
+ addCandidate((0, import_path4.resolve)(dir, "../../../vendor/mcp-server/index.js"));
31600
+ };
31601
+ addPackagedCandidates(process.argv[1]);
31602
+ for (const candidate of candidates) {
31603
+ const normalized = normalizeExistingPath(candidate);
31604
+ if (normalized) return normalized;
31605
+ }
31606
+ try {
31607
+ const requireBase = process.argv[1] ? normalizeExistingPath(process.argv[1]) || process.argv[1] : (0, import_path4.join)(process.cwd(), "adhdev-daemon.js");
31608
+ const req = (0, import_module2.createRequire)(requireBase);
31609
+ const resolvedModule = req.resolve("@adhdev/mcp-server");
31610
+ return normalizeExistingPath(resolvedModule) || resolvedModule;
31611
+ } catch {
31612
+ return null;
31613
+ }
31614
+ }
31615
+ function normalizeExistingPath(filePath) {
31616
+ try {
31617
+ if (!(0, import_fs8.existsSync)(filePath)) return null;
31618
+ return import_fs8.realpathSync.native(filePath);
31619
+ } catch {
31620
+ return null;
31621
+ }
31622
+ }
31564
31623
  function buildRecentReadDebugSignature(snapshot) {
31565
31624
  return [
31566
31625
  snapshot.providerType,
@@ -32052,7 +32111,7 @@ async function waitForPidExit(pid, timeoutMs) {
32052
32111
  while (Date.now() - start < timeoutMs) {
32053
32112
  try {
32054
32113
  process.kill(pid, 0);
32055
- await new Promise((resolve152) => setTimeout(resolve152, 250));
32114
+ await new Promise((resolve162) => setTimeout(resolve162, 250));
32056
32115
  } catch {
32057
32116
  return;
32058
32117
  }
@@ -32163,7 +32222,7 @@ async function runDaemonUpgradeHelper(payload) {
32163
32222
  appendUpgradeLog(installOutput.trim());
32164
32223
  }
32165
32224
  if (process.platform === "win32") {
32166
- await new Promise((resolve152) => setTimeout(resolve152, 500));
32225
+ await new Promise((resolve162) => setTimeout(resolve162, 500));
32167
32226
  cleanupStaleGlobalInstallDirs(payload.packageName, installCommand.surface);
32168
32227
  appendUpgradeLog("Post-install staging cleanup complete");
32169
32228
  }
@@ -34119,7 +34178,7 @@ function getCliTargetBundle(ctx, type, instanceId) {
34119
34178
  return { target, instance, adapter };
34120
34179
  }
34121
34180
  function sleep(ms) {
34122
- return new Promise((resolve152) => setTimeout(resolve152, ms));
34181
+ return new Promise((resolve162) => setTimeout(resolve162, ms));
34123
34182
  }
34124
34183
  async function waitForCliReady(ctx, type, instanceId, timeoutMs) {
34125
34184
  const startedAt = Date.now();
@@ -36273,7 +36332,7 @@ async function waitForReady(endpoint, timeoutMs = STARTUP_TIMEOUT_MS) {
36273
36332
  const deadline = Date.now() + timeoutMs;
36274
36333
  while (Date.now() < deadline) {
36275
36334
  if (await canConnect(endpoint)) return;
36276
- await new Promise((resolve152) => setTimeout(resolve152, STARTUP_POLL_MS));
36335
+ await new Promise((resolve162) => setTimeout(resolve162, STARTUP_POLL_MS));
36277
36336
  }
36278
36337
  throw new Error(`Session host did not become ready within ${timeoutMs}ms`);
36279
36338
  }
@@ -36360,10 +36419,10 @@ async function installExtension(ide, extension) {
36360
36419
  const buffer = Buffer.from(await res.arrayBuffer());
36361
36420
  const fs16 = await import("fs");
36362
36421
  fs16.writeFileSync(vsixPath, buffer);
36363
- return new Promise((resolve152) => {
36422
+ return new Promise((resolve162) => {
36364
36423
  const cmd = `"${ide.cliCommand}" --install-extension "${vsixPath}" --force`;
36365
36424
  (0, import_child_process12.exec)(cmd, { timeout: 6e4 }, (error48, _stdout, stderr) => {
36366
- resolve152({
36425
+ resolve162({
36367
36426
  extensionId: extension.id,
36368
36427
  marketplaceId: extension.marketplaceId,
36369
36428
  success: !error48,
@@ -36376,11 +36435,11 @@ async function installExtension(ide, extension) {
36376
36435
  } catch (e) {
36377
36436
  }
36378
36437
  }
36379
- return new Promise((resolve152) => {
36438
+ return new Promise((resolve162) => {
36380
36439
  const cmd = `"${ide.cliCommand}" --install-extension ${extension.marketplaceId} --force`;
36381
36440
  (0, import_child_process12.exec)(cmd, { timeout: 6e4 }, (error48, stdout, stderr) => {
36382
36441
  if (error48) {
36383
- resolve152({
36442
+ resolve162({
36384
36443
  extensionId: extension.id,
36385
36444
  marketplaceId: extension.marketplaceId,
36386
36445
  success: false,
@@ -36388,7 +36447,7 @@ async function installExtension(ide, extension) {
36388
36447
  error: stderr || error48.message
36389
36448
  });
36390
36449
  } else {
36391
- resolve152({
36450
+ resolve162({
36392
36451
  extensionId: extension.id,
36393
36452
  marketplaceId: extension.marketplaceId,
36394
36453
  success: true,
@@ -36684,7 +36743,7 @@ async function shutdownDaemonComponents(components) {
36684
36743
  }
36685
36744
  cdpManagers.clear();
36686
36745
  }
36687
- var import_os, import_path, import_fs, import_crypto2, import_fs2, import_path2, import_crypto3, fs2, path9, os4, os8, os9, path13, import_child_process, os10, path14, os11, import_child_process2, import_fs3, import_promises4, path, import_util3, import_promises5, path22, path32, fs, os5, path4, import_crypto4, path5, path6, import_fs4, import_path3, import_child_process3, import_fs5, import_os2, path7, import_child_process4, os22, path8, import_fs6, os32, import_child_process5, http, crypto2, fs3, path10, os52, fs4, os6, path11, import_crypto5, fs5, path12, os7, os13, path16, crypto4, import_fs7, import_child_process6, os12, path15, crypto3, fs6, import_module, import_stream2, import_child_process7, import_child_process8, net2, os15, path18, fs7, path17, os14, fs8, path19, os16, import_path4, os17, import_child_process9, import_child_process10, fs9, os18, path20, fs10, fs11, path21, os19, import_child_process11, import_os3, http2, fs15, path25, fs12, path222, fs13, path23, fs14, path24, os20, import_child_process12, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __require2, __esm2, __export2, __copyProps2, __toCommonJS, DEFAULT_MESH_POLICY, init_repo_mesh_types, config_exports, DEFAULT_CONFIG, MACHINE_ID_PREFIX, init_config, mesh_config_exports, init_mesh_config, coordinator_prompt_exports, TOOLS_SECTION, WORKFLOW_SECTION, RULES_SECTION, init_coordinator_prompt, LEVEL_NUM, LEVEL_LABEL, currentLevel, LOG_DIR, MAX_LOG_SIZE, MAX_LOG_DAYS, currentDate, currentLogFile, writeCount, RING_BUFFER_SIZE, ringBuffer, origConsoleLog, origConsoleError, origConsoleWarn, LOG, interceptorInstalled, LOG_PATH, init_logger, NORMAL_TRACE_BUFFER_SIZE, DEV_TRACE_BUFFER_SIZE, DEFAULT_CONFIG2, currentConfig, init_debug_config, DEFAULT_BINDING_CANDIDATES, cachedBinding, cachedBindingError, GhosttyVtTerminalBackend, init_ghostty_vt_backend, TerminalCtor, XtermTerminalBackend, init_xterm_backend, DEFAULT_SCROLLBACK, loggedTerminalBackends, TerminalScreen, init_terminal_screen, init_spawn_env, cachedPty, NodePtyRuntimeTransport, NodePtyTransportFactory, init_pty_transport, buildCliSpawnEnv, init_provider_cli_shared, init_provider_cli_parse, init_provider_cli_config, init_provider_cli_runtime, provider_cli_adapter_exports, ProviderCliAdapter, init_provider_cli_adapter, execFileAsync, DEFAULT_TIMEOUT_MS, DEFAULT_MAX_BUFFER, GitCommandError, DEFAULT_MAX_FILES, DEFAULT_MAX_BYTES, summarizeGitStatus, InMemoryGitSnapshotStore, DEFAULT_GIT_WORKSPACE_POLL_INTERVAL_MS, MIN_GIT_WORKSPACE_POLL_INTERVAL_MS, GitWorkspaceMonitor, GIT_COMMAND_NAMES, SNAPSHOT_REASONS, FAILURE_REASONS, defaultSnapshotStore, defaultGitCommandServices, BUSY_STATUSES, TERMINAL_STATUSES, TurnSnapshotTracker, MAX_WORKSPACES, MAX_ACTIVITY, MAX_SAVED_SESSIONS, DEFAULT_STATE, BUILTIN_IDE_DEFINITIONS, registeredIDEs, LIVE_LIFECYCLES, DEFAULT_ACTIVE_CHAT_POLL_STATUSES, DEFAULT_CHAT_TAIL_RECENT_MESSAGE_GRACE_MS, LIVE_RUNTIME_LIFECYCLES, DaemonCdpManager, CdpDomHandlers, DEFAULT_MONITOR_CONFIG, StatusMonitor, BUILTIN_CHAT_MESSAGE_KINDS, KNOWN_CHAT_MESSAGE_KINDS, CHAT_MESSAGE_KIND_ALIASES, HISTORY_DIR, RETAIN_DAYS, SAVED_HISTORY_INDEX_VERSION, SAVED_HISTORY_INDEX_FILE, SAVED_HISTORY_INDEX_LOCK_SUFFIX, SAVED_HISTORY_INDEX_LOCK_WAIT_MS, SAVED_HISTORY_INDEX_LOCK_STALE_MS, SAVED_HISTORY_INDEX_LOCK_POLL_MS, SAVED_HISTORY_ROLLUP_THRESHOLD_BYTES, savedHistorySessionCache, savedHistoryFileSummaryCache, savedHistoryBackgroundRefresh, savedHistoryRollupInFlight, ChatHistoryWriter, IDE_PROVIDER_SESSION_CAPABILITIES_BASE, EXTENSION_PROVIDER_SESSION_CAPABILITIES_BASE, ExtensionProviderInstance, VALID_STATUSES, VALID_ROLES, VALID_BUBBLE_STATES, VALID_TURN_STATUSES, DEFAULT_APPROVAL_POSITIVE_HINTS, IdeProviderInstance, DEFAULT_CDP_SCAN_INTERVAL_MS, DEFAULT_CDP_DISCOVERY_INTERVAL_MS, DEFAULT_STATUS_INITIAL_REPORT_DELAY_MS, DEFAULT_STATUS_SERVER_REPORT_INTERVAL_MS, DEFAULT_STATUS_P2P_REPORT_INTERVAL_MS, MIN_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, DEFAULT_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, MIN_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_READY_TIMEOUT_MS, STANDALONE_CDP_SCAN_INTERVAL_MS, DaemonCdpScanner, DaemonCdpInitializer, WORKING_STATUSES, FULL_STATUS_ACTIVE_CHAT_OPTIONS, LIVE_STATUS_ACTIVE_CHAT_OPTIONS, STATUS_MODAL_MESSAGE_LIMIT, STATUS_MODAL_BUTTON_LIMIT, IDE_SESSION_CAPABILITIES, EXTENSION_SESSION_CAPABILITIES, PTY_SESSION_CAPABILITIES, CLI_CHAT_SESSION_CAPABILITIES, ACP_SESSION_CAPABILITIES, VALID_INPUT_MEDIA_TYPES, globalStore, RECENT_SEND_WINDOW_MS, READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS, recentSendByTarget, DEFAULT_DEBUG_SANITIZE_OPTIONS, SECRET_KEY_PATTERN, KEY_TO_VK, COMMAND_DEBUG_LEVELS, DaemonCommandHandler, CachedDatabaseSync, CliProviderInstance, AcpProviderInstance, chalkModule, chalkApi, DaemonCliManager, VALID_CAPABILITY_MEDIA_TYPES, KNOWN_PROVIDER_FIELDS, VALUE_CONTROL_TYPES, ProviderLoader, _providerLoader, LOG_DIR2, MAX_FILE_SIZE, MAX_DAYS, SENSITIVE_KEYS, currentDate2, currentFile, writeCount2, SKIP_COMMANDS, DEFAULT_SERVER_NAME, DEFAULT_ADHDEV_MCP_COMMAND, READ_DEBUG_ENABLED, recentReadDebugSignatureBySession, UPGRADE_HELPER_ENV, CHAT_COMMANDS, READ_DEBUG_ENABLED2, DaemonCommandRouter, DaemonStatusReporter, DEFAULT_DAEMON_PORT, DAEMON_WS_PATH, ProviderStreamAdapter, DaemonAgentStreamManager, AgentStreamPoller, ProviderInstanceManager, ARCHIVE_PATH, MAX_ENTRIES_PER_PROVIDER, VersionArchive, DEV_SERVER_PORT, DevServer, SessionHostRuntimeTransport, SessionHostPtyTransportFactory, DEFAULT_SESSION_HOST_APP_NAME, DEFAULT_STANDALONE_SESSION_HOST_APP_NAME, STARTUP_TIMEOUT_MS, STARTUP_POLL_MS, EXTENSION_CATALOG, SessionRegistry;
36746
+ var import_os, import_path, import_fs, import_crypto2, import_fs2, import_path2, import_crypto3, fs2, path9, os4, os8, os9, path13, import_child_process, os10, path14, os11, import_child_process2, import_fs3, import_promises4, path, import_util3, import_promises5, path22, path32, fs, os5, path4, import_crypto4, path5, path6, import_fs4, import_path3, import_child_process3, import_fs5, import_os2, path7, import_child_process4, os22, path8, import_fs6, os32, import_child_process5, http, crypto2, fs3, path10, os52, fs4, os6, path11, import_crypto5, fs5, path12, os7, os13, path16, crypto4, import_fs7, import_child_process6, os12, path15, crypto3, fs6, import_module, import_stream2, import_child_process7, import_child_process8, net2, os15, path18, fs7, path17, os14, fs8, path19, os16, import_fs8, import_module2, import_path4, os17, import_child_process9, import_child_process10, fs9, os18, path20, fs10, fs11, path21, os19, import_child_process11, import_os3, http2, fs15, path25, fs12, path222, fs13, path23, fs14, path24, os20, import_child_process12, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __require2, __esm2, __export2, __copyProps2, __toCommonJS, DEFAULT_MESH_POLICY, init_repo_mesh_types, config_exports, DEFAULT_CONFIG, MACHINE_ID_PREFIX, init_config, mesh_config_exports, init_mesh_config, coordinator_prompt_exports, TOOLS_SECTION, WORKFLOW_SECTION, RULES_SECTION, init_coordinator_prompt, LEVEL_NUM, LEVEL_LABEL, currentLevel, LOG_DIR, MAX_LOG_SIZE, MAX_LOG_DAYS, currentDate, currentLogFile, writeCount, RING_BUFFER_SIZE, ringBuffer, origConsoleLog, origConsoleError, origConsoleWarn, LOG, interceptorInstalled, LOG_PATH, init_logger, NORMAL_TRACE_BUFFER_SIZE, DEV_TRACE_BUFFER_SIZE, DEFAULT_CONFIG2, currentConfig, init_debug_config, DEFAULT_BINDING_CANDIDATES, cachedBinding, cachedBindingError, GhosttyVtTerminalBackend, init_ghostty_vt_backend, TerminalCtor, XtermTerminalBackend, init_xterm_backend, DEFAULT_SCROLLBACK, loggedTerminalBackends, TerminalScreen, init_terminal_screen, init_spawn_env, cachedPty, NodePtyRuntimeTransport, NodePtyTransportFactory, init_pty_transport, buildCliSpawnEnv, init_provider_cli_shared, init_provider_cli_parse, init_provider_cli_config, init_provider_cli_runtime, provider_cli_adapter_exports, ProviderCliAdapter, init_provider_cli_adapter, execFileAsync, DEFAULT_TIMEOUT_MS, DEFAULT_MAX_BUFFER, GitCommandError, DEFAULT_MAX_FILES, DEFAULT_MAX_BYTES, summarizeGitStatus, InMemoryGitSnapshotStore, DEFAULT_GIT_WORKSPACE_POLL_INTERVAL_MS, MIN_GIT_WORKSPACE_POLL_INTERVAL_MS, GitWorkspaceMonitor, GIT_COMMAND_NAMES, SNAPSHOT_REASONS, FAILURE_REASONS, defaultSnapshotStore, defaultGitCommandServices, BUSY_STATUSES, TERMINAL_STATUSES, TurnSnapshotTracker, MAX_WORKSPACES, MAX_ACTIVITY, MAX_SAVED_SESSIONS, DEFAULT_STATE, BUILTIN_IDE_DEFINITIONS, registeredIDEs, LIVE_LIFECYCLES, DEFAULT_ACTIVE_CHAT_POLL_STATUSES, DEFAULT_CHAT_TAIL_RECENT_MESSAGE_GRACE_MS, LIVE_RUNTIME_LIFECYCLES, DaemonCdpManager, CdpDomHandlers, DEFAULT_MONITOR_CONFIG, StatusMonitor, BUILTIN_CHAT_MESSAGE_KINDS, KNOWN_CHAT_MESSAGE_KINDS, CHAT_MESSAGE_KIND_ALIASES, HISTORY_DIR, RETAIN_DAYS, SAVED_HISTORY_INDEX_VERSION, SAVED_HISTORY_INDEX_FILE, SAVED_HISTORY_INDEX_LOCK_SUFFIX, SAVED_HISTORY_INDEX_LOCK_WAIT_MS, SAVED_HISTORY_INDEX_LOCK_STALE_MS, SAVED_HISTORY_INDEX_LOCK_POLL_MS, SAVED_HISTORY_ROLLUP_THRESHOLD_BYTES, savedHistorySessionCache, savedHistoryFileSummaryCache, savedHistoryBackgroundRefresh, savedHistoryRollupInFlight, ChatHistoryWriter, IDE_PROVIDER_SESSION_CAPABILITIES_BASE, EXTENSION_PROVIDER_SESSION_CAPABILITIES_BASE, ExtensionProviderInstance, VALID_STATUSES, VALID_ROLES, VALID_BUBBLE_STATES, VALID_TURN_STATUSES, DEFAULT_APPROVAL_POSITIVE_HINTS, IdeProviderInstance, DEFAULT_CDP_SCAN_INTERVAL_MS, DEFAULT_CDP_DISCOVERY_INTERVAL_MS, DEFAULT_STATUS_INITIAL_REPORT_DELAY_MS, DEFAULT_STATUS_SERVER_REPORT_INTERVAL_MS, DEFAULT_STATUS_P2P_REPORT_INTERVAL_MS, MIN_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, DEFAULT_MACHINE_RUNTIME_SUBSCRIPTION_INTERVAL_MS, MIN_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_DIAGNOSTICS_SUBSCRIPTION_INTERVAL_MS, DEFAULT_SESSION_HOST_READY_TIMEOUT_MS, STANDALONE_CDP_SCAN_INTERVAL_MS, DaemonCdpScanner, DaemonCdpInitializer, WORKING_STATUSES, FULL_STATUS_ACTIVE_CHAT_OPTIONS, LIVE_STATUS_ACTIVE_CHAT_OPTIONS, STATUS_MODAL_MESSAGE_LIMIT, STATUS_MODAL_BUTTON_LIMIT, IDE_SESSION_CAPABILITIES, EXTENSION_SESSION_CAPABILITIES, PTY_SESSION_CAPABILITIES, CLI_CHAT_SESSION_CAPABILITIES, ACP_SESSION_CAPABILITIES, VALID_INPUT_MEDIA_TYPES, globalStore, RECENT_SEND_WINDOW_MS, READ_CHAT_PROVIDER_EVAL_TIMEOUT_MS, recentSendByTarget, DEFAULT_DEBUG_SANITIZE_OPTIONS, SECRET_KEY_PATTERN, KEY_TO_VK, COMMAND_DEBUG_LEVELS, DaemonCommandHandler, CachedDatabaseSync, CliProviderInstance, AcpProviderInstance, chalkModule, chalkApi, DaemonCliManager, VALID_CAPABILITY_MEDIA_TYPES, KNOWN_PROVIDER_FIELDS, VALUE_CONTROL_TYPES, ProviderLoader, _providerLoader, LOG_DIR2, MAX_FILE_SIZE, MAX_DAYS, SENSITIVE_KEYS, currentDate2, currentFile, writeCount2, SKIP_COMMANDS, DEFAULT_SERVER_NAME, DEFAULT_ADHDEV_MCP_COMMAND, READ_DEBUG_ENABLED, recentReadDebugSignatureBySession, UPGRADE_HELPER_ENV, CHAT_COMMANDS, READ_DEBUG_ENABLED2, DaemonCommandRouter, DaemonStatusReporter, DEFAULT_DAEMON_PORT, DAEMON_WS_PATH, ProviderStreamAdapter, DaemonAgentStreamManager, AgentStreamPoller, ProviderInstanceManager, ARCHIVE_PATH, MAX_ENTRIES_PER_PROVIDER, VersionArchive, DEV_SERVER_PORT, DevServer, SessionHostRuntimeTransport, SessionHostPtyTransportFactory, DEFAULT_SESSION_HOST_APP_NAME, DEFAULT_STANDALONE_SESSION_HOST_APP_NAME, STARTUP_TIMEOUT_MS, STARTUP_POLL_MS, EXTENSION_CATALOG, SessionRegistry;
36688
36747
  var init_dist2 = __esm({
36689
36748
  "../daemon-core/dist/index.mjs"() {
36690
36749
  "use strict";
@@ -36771,6 +36830,8 @@ var init_dist2 = __esm({
36771
36830
  fs8 = __toESM(require("fs"), 1);
36772
36831
  path19 = __toESM(require("path"), 1);
36773
36832
  os16 = __toESM(require("os"), 1);
36833
+ import_fs8 = require("fs");
36834
+ import_module2 = require("module");
36774
36835
  import_path4 = require("path");
36775
36836
  os17 = __toESM(require("os"), 1);
36776
36837
  import_child_process9 = require("child_process");
@@ -37888,7 +37949,7 @@ var init_dist2 = __esm({
37888
37949
  `[${this.cliType}] Waiting for interactive prompt: status=${status} stableMs=${stableMs} recentOutputMs=${recentlyOutput} screen=${JSON.stringify(summarizeCliTraceText(screenText, 220)).slice(0, 260)}`
37889
37950
  );
37890
37951
  }
37891
- await new Promise((resolve152) => setTimeout(resolve152, 50));
37952
+ await new Promise((resolve162) => setTimeout(resolve162, 50));
37892
37953
  }
37893
37954
  const finalScreenText = this.terminalScreen.getText() || "";
37894
37955
  LOG.warn(
@@ -38798,7 +38859,7 @@ var init_dist2 = __esm({
38798
38859
  const deadline = Date.now() + 1e4;
38799
38860
  while (this.startupParseGate && Date.now() < deadline) {
38800
38861
  this.resolveStartupState("send_wait");
38801
- await new Promise((resolve152) => setTimeout(resolve152, 50));
38862
+ await new Promise((resolve162) => setTimeout(resolve162, 50));
38802
38863
  }
38803
38864
  }
38804
38865
  if (!allowInterventionPrompt) {
@@ -38874,13 +38935,13 @@ var init_dist2 = __esm({
38874
38935
  }
38875
38936
  this.responseEpoch += 1;
38876
38937
  this.responseSettleIgnoreUntil = Date.now() + submitDelayMs + this.timeouts.outputSettle + 250;
38877
- await new Promise((resolve152, reject) => {
38938
+ await new Promise((resolve162, reject) => {
38878
38939
  let resolved = false;
38879
38940
  const completion = {
38880
38941
  resolveOnce: () => {
38881
38942
  if (resolved) return;
38882
38943
  resolved = true;
38883
- resolve152();
38944
+ resolve162();
38884
38945
  },
38885
38946
  rejectOnce: (error48) => {
38886
38947
  if (resolved) return;
@@ -39038,17 +39099,17 @@ var init_dist2 = __esm({
39038
39099
  }
39039
39100
  }
39040
39101
  waitForStopped(timeoutMs) {
39041
- return new Promise((resolve152) => {
39102
+ return new Promise((resolve162) => {
39042
39103
  const startedAt = Date.now();
39043
39104
  const timer = setInterval(() => {
39044
39105
  if (!this.ptyProcess || this.currentStatus === "stopped") {
39045
39106
  clearInterval(timer);
39046
- resolve152(true);
39107
+ resolve162(true);
39047
39108
  return;
39048
39109
  }
39049
39110
  if (Date.now() - startedAt >= timeoutMs) {
39050
39111
  clearInterval(timer);
39051
- resolve152(false);
39112
+ resolve162(false);
39052
39113
  }
39053
39114
  }, 100);
39054
39115
  });
@@ -39647,7 +39708,7 @@ var init_dist2 = __esm({
39647
39708
  * Returns multiple entries if multiple IDE windows are open on same port
39648
39709
  */
39649
39710
  static listAllTargets(port) {
39650
- return new Promise((resolve152) => {
39711
+ return new Promise((resolve162) => {
39651
39712
  const req = http.get(`http://127.0.0.1:${port}/json`, (res) => {
39652
39713
  let data = "";
39653
39714
  res.on("data", (chunk) => data += chunk.toString());
@@ -39663,16 +39724,16 @@ var init_dist2 = __esm({
39663
39724
  (t) => !isNonMain(t.title || "") && t.url?.includes("workbench.html") && !t.url?.includes("agent")
39664
39725
  );
39665
39726
  const fallbackPages = pages.filter((t) => !isNonMain(t.title || ""));
39666
- resolve152(mainPages.length > 0 ? mainPages : fallbackPages);
39727
+ resolve162(mainPages.length > 0 ? mainPages : fallbackPages);
39667
39728
  } catch {
39668
- resolve152([]);
39729
+ resolve162([]);
39669
39730
  }
39670
39731
  });
39671
39732
  });
39672
- req.on("error", () => resolve152([]));
39733
+ req.on("error", () => resolve162([]));
39673
39734
  req.setTimeout(2e3, () => {
39674
39735
  req.destroy();
39675
- resolve152([]);
39736
+ resolve162([]);
39676
39737
  });
39677
39738
  });
39678
39739
  }
@@ -39712,7 +39773,7 @@ var init_dist2 = __esm({
39712
39773
  }
39713
39774
  }
39714
39775
  findTargetOnPort(port) {
39715
- return new Promise((resolve152) => {
39776
+ return new Promise((resolve162) => {
39716
39777
  const req = http.get(`http://127.0.0.1:${port}/json`, (res) => {
39717
39778
  let data = "";
39718
39779
  res.on("data", (chunk) => data += chunk.toString());
@@ -39723,7 +39784,7 @@ var init_dist2 = __esm({
39723
39784
  (t) => (t.type === "page" || t.type === "browser" || t.type === "Page") && t.webSocketDebuggerUrl
39724
39785
  );
39725
39786
  if (pages.length === 0) {
39726
- resolve152(targets.find((t) => t.webSocketDebuggerUrl) || null);
39787
+ resolve162(targets.find((t) => t.webSocketDebuggerUrl) || null);
39727
39788
  return;
39728
39789
  }
39729
39790
  const titleFilteredPages = pages.filter((t) => !this.isNonMainTitle(t.title || ""));
@@ -39742,25 +39803,25 @@ var init_dist2 = __esm({
39742
39803
  this._targetId = selected.target.id;
39743
39804
  }
39744
39805
  this._pageTitle = selected.target.title || "";
39745
- resolve152(selected.target);
39806
+ resolve162(selected.target);
39746
39807
  return;
39747
39808
  }
39748
39809
  if (previousTargetId) {
39749
39810
  this.log(`[CDP] Target ${previousTargetId} not found in page list`);
39750
- resolve152(null);
39811
+ resolve162(null);
39751
39812
  return;
39752
39813
  }
39753
39814
  this._pageTitle = list[0]?.title || "";
39754
- resolve152(list[0]);
39815
+ resolve162(list[0]);
39755
39816
  } catch {
39756
- resolve152(null);
39817
+ resolve162(null);
39757
39818
  }
39758
39819
  });
39759
39820
  });
39760
- req.on("error", () => resolve152(null));
39821
+ req.on("error", () => resolve162(null));
39761
39822
  req.setTimeout(2e3, () => {
39762
39823
  req.destroy();
39763
- resolve152(null);
39824
+ resolve162(null);
39764
39825
  });
39765
39826
  });
39766
39827
  }
@@ -39771,7 +39832,7 @@ var init_dist2 = __esm({
39771
39832
  this.extensionProviders = providers;
39772
39833
  }
39773
39834
  connectToTarget(wsUrl) {
39774
- return new Promise((resolve152) => {
39835
+ return new Promise((resolve162) => {
39775
39836
  this.ws = new wrapper_default(wsUrl);
39776
39837
  this.ws.on("open", async () => {
39777
39838
  this._connected = true;
@@ -39781,17 +39842,17 @@ var init_dist2 = __esm({
39781
39842
  }
39782
39843
  this.connectBrowserWs().catch(() => {
39783
39844
  });
39784
- resolve152(true);
39845
+ resolve162(true);
39785
39846
  });
39786
39847
  this.ws.on("message", (data) => {
39787
39848
  try {
39788
39849
  const msg = JSON.parse(data.toString());
39789
39850
  if (msg.id && this.pending.has(msg.id)) {
39790
- const { resolve: resolve162, reject } = this.pending.get(msg.id);
39851
+ const { resolve: resolve172, reject } = this.pending.get(msg.id);
39791
39852
  this.pending.delete(msg.id);
39792
39853
  this.failureCount = 0;
39793
39854
  if (msg.error) reject(new Error(msg.error.message));
39794
- else resolve162(msg.result);
39855
+ else resolve172(msg.result);
39795
39856
  } else if (msg.method === "Runtime.executionContextCreated") {
39796
39857
  this.contexts.add(msg.params.context.id);
39797
39858
  } else if (msg.method === "Runtime.executionContextDestroyed") {
@@ -39814,7 +39875,7 @@ var init_dist2 = __esm({
39814
39875
  this.ws.on("error", (err) => {
39815
39876
  this.log(`[CDP] WebSocket error: ${err.message}`);
39816
39877
  this._connected = false;
39817
- resolve152(false);
39878
+ resolve162(false);
39818
39879
  });
39819
39880
  });
39820
39881
  }
@@ -39828,7 +39889,7 @@ var init_dist2 = __esm({
39828
39889
  return;
39829
39890
  }
39830
39891
  this.log(`[CDP] Connecting browser WS for target discovery...`);
39831
- await new Promise((resolve152, reject) => {
39892
+ await new Promise((resolve162, reject) => {
39832
39893
  this.browserWs = new wrapper_default(browserWsUrl);
39833
39894
  this.browserWs.on("open", async () => {
39834
39895
  this._browserConnected = true;
@@ -39838,16 +39899,16 @@ var init_dist2 = __esm({
39838
39899
  } catch (e) {
39839
39900
  this.log(`[CDP] setDiscoverTargets failed: ${e.message}`);
39840
39901
  }
39841
- resolve152();
39902
+ resolve162();
39842
39903
  });
39843
39904
  this.browserWs.on("message", (data) => {
39844
39905
  try {
39845
39906
  const msg = JSON.parse(data.toString());
39846
39907
  if (msg.id && this.browserPending.has(msg.id)) {
39847
- const { resolve: resolve162, reject: reject2 } = this.browserPending.get(msg.id);
39908
+ const { resolve: resolve172, reject: reject2 } = this.browserPending.get(msg.id);
39848
39909
  this.browserPending.delete(msg.id);
39849
39910
  if (msg.error) reject2(new Error(msg.error.message));
39850
- else resolve162(msg.result);
39911
+ else resolve172(msg.result);
39851
39912
  }
39852
39913
  } catch {
39853
39914
  }
@@ -39867,31 +39928,31 @@ var init_dist2 = __esm({
39867
39928
  }
39868
39929
  }
39869
39930
  getBrowserWsUrl() {
39870
- return new Promise((resolve152) => {
39931
+ return new Promise((resolve162) => {
39871
39932
  const req = http.get(`http://127.0.0.1:${this.port}/json/version`, (res) => {
39872
39933
  let data = "";
39873
39934
  res.on("data", (chunk) => data += chunk.toString());
39874
39935
  res.on("end", () => {
39875
39936
  try {
39876
39937
  const info = JSON.parse(data);
39877
- resolve152(info.webSocketDebuggerUrl || null);
39938
+ resolve162(info.webSocketDebuggerUrl || null);
39878
39939
  } catch {
39879
- resolve152(null);
39940
+ resolve162(null);
39880
39941
  }
39881
39942
  });
39882
39943
  });
39883
- req.on("error", () => resolve152(null));
39944
+ req.on("error", () => resolve162(null));
39884
39945
  req.setTimeout(3e3, () => {
39885
39946
  req.destroy();
39886
- resolve152(null);
39947
+ resolve162(null);
39887
39948
  });
39888
39949
  });
39889
39950
  }
39890
39951
  sendBrowser(method, params = {}, timeoutMs = 15e3) {
39891
- return new Promise((resolve152, reject) => {
39952
+ return new Promise((resolve162, reject) => {
39892
39953
  if (!this.browserWs || !this._browserConnected) return reject(new Error("Browser WS not connected"));
39893
39954
  const id = this.browserMsgId++;
39894
- this.browserPending.set(id, { resolve: resolve152, reject });
39955
+ this.browserPending.set(id, { resolve: resolve162, reject });
39895
39956
  this.browserWs.send(JSON.stringify({ id, method, params }));
39896
39957
  setTimeout(() => {
39897
39958
  if (this.browserPending.has(id)) {
@@ -39931,11 +39992,11 @@ var init_dist2 = __esm({
39931
39992
  }
39932
39993
  // ─── CDP Protocol ────────────────────────────────────────
39933
39994
  sendInternal(method, params = {}, timeoutMs = 15e3) {
39934
- return new Promise((resolve152, reject) => {
39995
+ return new Promise((resolve162, reject) => {
39935
39996
  if (!this.ws || !this._connected) return reject(new Error("CDP not connected"));
39936
39997
  if (this.ws.readyState !== wrapper_default.OPEN) return reject(new Error("WebSocket not open"));
39937
39998
  const id = this.msgId++;
39938
- this.pending.set(id, { resolve: resolve152, reject });
39999
+ this.pending.set(id, { resolve: resolve162, reject });
39939
40000
  this.ws.send(JSON.stringify({ id, method, params }));
39940
40001
  setTimeout(() => {
39941
40002
  if (this.pending.has(id)) {
@@ -40184,7 +40245,7 @@ var init_dist2 = __esm({
40184
40245
  const browserWs = this.browserWs;
40185
40246
  let msgId = this.browserMsgId;
40186
40247
  const sendWs = (method, params = {}, sessionId) => {
40187
- return new Promise((resolve152, reject) => {
40248
+ return new Promise((resolve162, reject) => {
40188
40249
  const mid = msgId++;
40189
40250
  this.browserMsgId = msgId;
40190
40251
  const handler = (raw) => {
@@ -40193,7 +40254,7 @@ var init_dist2 = __esm({
40193
40254
  if (msg.id === mid) {
40194
40255
  browserWs.removeListener("message", handler);
40195
40256
  if (msg.error) reject(new Error(msg.error.message || JSON.stringify(msg.error)));
40196
- else resolve152(msg.result);
40257
+ else resolve162(msg.result);
40197
40258
  }
40198
40259
  } catch {
40199
40260
  }
@@ -40394,14 +40455,14 @@ var init_dist2 = __esm({
40394
40455
  if (!ws || ws.readyState !== wrapper_default.OPEN) {
40395
40456
  throw new Error("CDP not connected");
40396
40457
  }
40397
- return new Promise((resolve152, reject) => {
40458
+ return new Promise((resolve162, reject) => {
40398
40459
  const id = getNextId();
40399
40460
  pendingMap.set(id, {
40400
40461
  resolve: (result) => {
40401
40462
  if (result?.result?.subtype === "error") {
40402
40463
  reject(new Error(result.result.description));
40403
40464
  } else {
40404
- resolve152(result?.result?.value);
40465
+ resolve162(result?.result?.value);
40405
40466
  }
40406
40467
  },
40407
40468
  reject
@@ -40433,10 +40494,10 @@ var init_dist2 = __esm({
40433
40494
  throw new Error("CDP not connected");
40434
40495
  }
40435
40496
  const sendViaSession = (method, params = {}) => {
40436
- return new Promise((resolve152, reject) => {
40497
+ return new Promise((resolve162, reject) => {
40437
40498
  const pendingMap = this._browserConnected ? this.browserPending : this.pending;
40438
40499
  const id = this._browserConnected ? this.browserMsgId++ : this.msgId++;
40439
- pendingMap.set(id, { resolve: resolve152, reject });
40500
+ pendingMap.set(id, { resolve: resolve162, reject });
40440
40501
  ws.send(JSON.stringify({ id, sessionId, method, params }));
40441
40502
  setTimeout(() => {
40442
40503
  if (pendingMap.has(id)) {
@@ -43174,7 +43235,7 @@ ${effect.notification.body || ""}`.trim();
43174
43235
  try {
43175
43236
  const http3 = await import("http");
43176
43237
  const postData = JSON.stringify(body);
43177
- const result = await new Promise((resolve152, reject) => {
43238
+ const result = await new Promise((resolve162, reject) => {
43178
43239
  const req = http3.request({
43179
43240
  hostname: "127.0.0.1",
43180
43241
  port: 19280,
@@ -43186,9 +43247,9 @@ ${effect.notification.body || ""}`.trim();
43186
43247
  res.on("data", (chunk) => data += chunk);
43187
43248
  res.on("end", () => {
43188
43249
  try {
43189
- resolve152(JSON.parse(data));
43250
+ resolve162(JSON.parse(data));
43190
43251
  } catch {
43191
- resolve152({ raw: data });
43252
+ resolve162({ raw: data });
43192
43253
  }
43193
43254
  });
43194
43255
  });
@@ -43206,15 +43267,15 @@ ${effect.notification.body || ""}`.trim();
43206
43267
  if (!providerType) return { success: false, error: "providerType required" };
43207
43268
  try {
43208
43269
  const http3 = await import("http");
43209
- const result = await new Promise((resolve152, reject) => {
43270
+ const result = await new Promise((resolve162, reject) => {
43210
43271
  http3.get(`http://127.0.0.1:19280/api/providers/${providerType}/${endpoint}`, (res) => {
43211
43272
  let data = "";
43212
43273
  res.on("data", (chunk) => data += chunk);
43213
43274
  res.on("end", () => {
43214
43275
  try {
43215
- resolve152(JSON.parse(data));
43276
+ resolve162(JSON.parse(data));
43216
43277
  } catch {
43217
- resolve152({ raw: data });
43278
+ resolve162({ raw: data });
43218
43279
  }
43219
43280
  });
43220
43281
  }).on("error", reject);
@@ -43228,7 +43289,7 @@ ${effect.notification.body || ""}`.trim();
43228
43289
  try {
43229
43290
  const http3 = await import("http");
43230
43291
  const postData = JSON.stringify(args || {});
43231
- const result = await new Promise((resolve152, reject) => {
43292
+ const result = await new Promise((resolve162, reject) => {
43232
43293
  const req = http3.request({
43233
43294
  hostname: "127.0.0.1",
43234
43295
  port: 19280,
@@ -43240,9 +43301,9 @@ ${effect.notification.body || ""}`.trim();
43240
43301
  res.on("data", (chunk) => data += chunk);
43241
43302
  res.on("end", () => {
43242
43303
  try {
43243
- resolve152(JSON.parse(data));
43304
+ resolve162(JSON.parse(data));
43244
43305
  } catch {
43245
- resolve152({ raw: data });
43306
+ resolve162({ raw: data });
43246
43307
  }
43247
43308
  });
43248
43309
  });
@@ -43600,7 +43661,7 @@ ${effect.notification.body || ""}`.trim();
43600
43661
  const enterCount = cliCommand.enterCount || 1;
43601
43662
  await this.adapter.writeRaw(cliCommand.text + "\r");
43602
43663
  for (let i = 1; i < enterCount; i += 1) {
43603
- await new Promise((resolve152) => setTimeout(resolve152, 50));
43664
+ await new Promise((resolve162) => setTimeout(resolve162, 50));
43604
43665
  await this.adapter.writeRaw("\r");
43605
43666
  }
43606
43667
  }
@@ -44619,13 +44680,13 @@ ${effect.notification.body || ""}`.trim();
44619
44680
  }
44620
44681
  this.currentStatus = "waiting_approval";
44621
44682
  this.detectStatusTransition();
44622
- const approved = await new Promise((resolve152) => {
44623
- this.permissionResolvers.push(resolve152);
44683
+ const approved = await new Promise((resolve162) => {
44684
+ this.permissionResolvers.push(resolve162);
44624
44685
  setTimeout(() => {
44625
- const idx = this.permissionResolvers.indexOf(resolve152);
44686
+ const idx = this.permissionResolvers.indexOf(resolve162);
44626
44687
  if (idx >= 0) {
44627
44688
  this.permissionResolvers.splice(idx, 1);
44628
- resolve152(false);
44689
+ resolve162(false);
44629
44690
  }
44630
44691
  }, 3e5);
44631
44692
  });
@@ -46820,7 +46881,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
46820
46881
  return { updated: false };
46821
46882
  }
46822
46883
  try {
46823
- const etag = await new Promise((resolve152, reject) => {
46884
+ const etag = await new Promise((resolve162, reject) => {
46824
46885
  const options = {
46825
46886
  method: "HEAD",
46826
46887
  hostname: "github.com",
@@ -46838,7 +46899,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
46838
46899
  headers: { "User-Agent": "adhdev-launcher" },
46839
46900
  timeout: 1e4
46840
46901
  }, (res2) => {
46841
- resolve152(res2.headers.etag || res2.headers["last-modified"] || "");
46902
+ resolve162(res2.headers.etag || res2.headers["last-modified"] || "");
46842
46903
  });
46843
46904
  req2.on("error", reject);
46844
46905
  req2.on("timeout", () => {
@@ -46847,7 +46908,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
46847
46908
  });
46848
46909
  req2.end();
46849
46910
  } else {
46850
- resolve152(res.headers.etag || res.headers["last-modified"] || "");
46911
+ resolve162(res.headers.etag || res.headers["last-modified"] || "");
46851
46912
  }
46852
46913
  });
46853
46914
  req.on("error", reject);
@@ -46911,7 +46972,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
46911
46972
  downloadFile(url2, destPath) {
46912
46973
  const https = __require2("https");
46913
46974
  const http3 = __require2("http");
46914
- return new Promise((resolve152, reject) => {
46975
+ return new Promise((resolve162, reject) => {
46915
46976
  const doRequest = (reqUrl, redirectCount = 0) => {
46916
46977
  if (redirectCount > 5) {
46917
46978
  reject(new Error("Too many redirects"));
@@ -46931,7 +46992,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
46931
46992
  res.pipe(ws);
46932
46993
  ws.on("finish", () => {
46933
46994
  ws.close();
46934
- resolve152();
46995
+ resolve162();
46935
46996
  });
46936
46997
  ws.on("error", reject);
46937
46998
  });
@@ -48210,9 +48271,9 @@ Run 'adhdev doctor' for detailed diagnostics.`
48210
48271
  workspace
48211
48272
  };
48212
48273
  }
48213
- const { existsSync: existsSync21, readFileSync: readFileSync15, writeFileSync: writeFileSync12, copyFileSync: copyFileSync3 } = await import("fs");
48274
+ const { existsSync: existsSync22, readFileSync: readFileSync15, writeFileSync: writeFileSync12, copyFileSync: copyFileSync3 } = await import("fs");
48214
48275
  const mcpConfigPath = coordinatorSetup.configPath;
48215
- const hadExistingMcpConfig = existsSync21(mcpConfigPath);
48276
+ const hadExistingMcpConfig = existsSync22(mcpConfigPath);
48216
48277
  let existingMcpConfig = {};
48217
48278
  if (hadExistingMcpConfig) {
48218
48279
  try {
@@ -48226,8 +48287,8 @@ Run 'adhdev doctor' for detailed diagnostics.`
48226
48287
  mcpServers: {
48227
48288
  ...existingMcpConfig.mcpServers || {},
48228
48289
  [coordinatorSetup.serverName]: {
48229
- command: "adhdev-mcp",
48230
- args: ["--repo-mesh", meshId]
48290
+ command: coordinatorSetup.mcpServer.command,
48291
+ args: coordinatorSetup.mcpServer.args
48231
48292
  }
48232
48293
  }
48233
48294
  };
@@ -48741,7 +48802,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
48741
48802
  const beforeCount = this.messageCount(before);
48742
48803
  const beforeSignature = this.lastMessageSignature(before);
48743
48804
  for (let attempt = 0; attempt < 12; attempt += 1) {
48744
- await new Promise((resolve152) => setTimeout(resolve152, 250));
48805
+ await new Promise((resolve162) => setTimeout(resolve162, 250));
48745
48806
  let state;
48746
48807
  try {
48747
48808
  state = await this.readChat(evaluate);
@@ -48763,7 +48824,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
48763
48824
  if (this.messageCount(first) > 0 || this.lastMessageSignature(first)) {
48764
48825
  return first;
48765
48826
  }
48766
- await new Promise((resolve152) => setTimeout(resolve152, 150));
48827
+ await new Promise((resolve162) => setTimeout(resolve162, 150));
48767
48828
  const second = await this.readChat(evaluate);
48768
48829
  return this.messageCount(second) >= this.messageCount(first) ? second : first;
48769
48830
  }
@@ -48914,7 +48975,7 @@ Run 'adhdev doctor' for detailed diagnostics.`
48914
48975
  if (typeof data.error === "string" && data.error.trim()) return false;
48915
48976
  }
48916
48977
  for (let attempt = 0; attempt < 6; attempt += 1) {
48917
- await new Promise((resolve152) => setTimeout(resolve152, 250));
48978
+ await new Promise((resolve162) => setTimeout(resolve162, 250));
48918
48979
  const state = await this.readChat(evaluate);
48919
48980
  const title = this.getStateTitle(state);
48920
48981
  if (this.titlesMatch(title, sessionId)) return true;
@@ -49894,15 +49955,15 @@ Run 'adhdev doctor' for detailed diagnostics.`
49894
49955
  this.json(res, 500, { error: e.message });
49895
49956
  }
49896
49957
  });
49897
- return new Promise((resolve152, reject) => {
49958
+ return new Promise((resolve162, reject) => {
49898
49959
  this.server.listen(port, "127.0.0.1", () => {
49899
49960
  this.log(`Dev server listening on http://127.0.0.1:${port}`);
49900
- resolve152();
49961
+ resolve162();
49901
49962
  });
49902
49963
  this.server.on("error", (e) => {
49903
49964
  if (e.code === "EADDRINUSE") {
49904
49965
  this.log(`Port ${port} in use, skipping dev server`);
49905
- resolve152();
49966
+ resolve162();
49906
49967
  } else {
49907
49968
  reject(e);
49908
49969
  }
@@ -49984,20 +50045,20 @@ Run 'adhdev doctor' for detailed diagnostics.`
49984
50045
  child.stderr?.on("data", (d) => {
49985
50046
  stderr += d.toString().slice(0, 2e3);
49986
50047
  });
49987
- await new Promise((resolve152) => {
50048
+ await new Promise((resolve162) => {
49988
50049
  const timer = setTimeout(() => {
49989
50050
  child.kill();
49990
- resolve152();
50051
+ resolve162();
49991
50052
  }, 3e3);
49992
50053
  child.on("exit", () => {
49993
50054
  clearTimeout(timer);
49994
- resolve152();
50055
+ resolve162();
49995
50056
  });
49996
50057
  child.stdout?.once("data", () => {
49997
50058
  setTimeout(() => {
49998
50059
  child.kill();
49999
50060
  clearTimeout(timer);
50000
- resolve152();
50061
+ resolve162();
50001
50062
  }, 500);
50002
50063
  });
50003
50064
  });
@@ -50500,14 +50561,14 @@ Run 'adhdev doctor' for detailed diagnostics.`
50500
50561
  child.stderr?.on("data", (d) => {
50501
50562
  stderr += d.toString();
50502
50563
  });
50503
- await new Promise((resolve152) => {
50564
+ await new Promise((resolve162) => {
50504
50565
  const timer = setTimeout(() => {
50505
50566
  child.kill();
50506
- resolve152();
50567
+ resolve162();
50507
50568
  }, timeout);
50508
50569
  child.on("exit", () => {
50509
50570
  clearTimeout(timer);
50510
- resolve152();
50571
+ resolve162();
50511
50572
  });
50512
50573
  });
50513
50574
  const elapsed = Date.now() - start;
@@ -51177,14 +51238,14 @@ data: ${JSON.stringify(msg.data)}
51177
51238
  res.end(JSON.stringify(data, null, 2));
51178
51239
  }
51179
51240
  async readBody(req) {
51180
- return new Promise((resolve152) => {
51241
+ return new Promise((resolve162) => {
51181
51242
  let body = "";
51182
51243
  req.on("data", (chunk) => body += chunk);
51183
51244
  req.on("end", () => {
51184
51245
  try {
51185
- resolve152(JSON.parse(body));
51246
+ resolve162(JSON.parse(body));
51186
51247
  } catch {
51187
- resolve152({});
51248
+ resolve162({});
51188
51249
  }
51189
51250
  });
51190
51251
  });
@@ -53363,7 +53424,7 @@ async function startMcpServer(opts) {
53363
53424
  coordinatorPrompt = `You are a Repo Mesh Coordinator for "${mesh.name}" (${mesh.repoIdentity}). Use mesh_* tools to orchestrate work.`;
53364
53425
  }
53365
53426
  const server2 = new import_server.Server(
53366
- { name: "adhdev-mcp-server", version: "0.9.71" },
53427
+ { name: "adhdev-mcp-server", version: "0.9.72" },
53367
53428
  { capabilities: { tools: {}, resources: {} } }
53368
53429
  );
53369
53430
  const { ListResourcesRequestSchema, ReadResourceRequestSchema } = await import("@modelcontextprotocol/sdk/types.js");