@adhdev/daemon-standalone 0.9.77-rc.10 → 0.9.77-rc.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/daemon-standalone",
3
- "version": "0.9.77-rc.10",
3
+ "version": "0.9.77-rc.12",
4
4
  "description": "ADHDev standalone daemon — embedded HTTP/WS server for local dashboard",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -26264,7 +26264,7 @@ function tryAssignQueueTask(components, meshId, nodeId, sessionId, providerType)
26264
26264
  targetSessionId: sessionId,
26265
26265
  cliType: providerType,
26266
26266
  action: "send_chat",
26267
- input: task.message
26267
+ message: task.message
26268
26268
  }).catch((e) => {
26269
26269
  LOG.error("MeshQueue", `Failed to dispatch task to node ${nodeId}: ${e?.message}`);
26270
26270
  });
@@ -33701,11 +33701,13 @@ async function handleOpenPanel(h, args) {
33701
33701
  async function handlePtyInput(h, args) {
33702
33702
  const { cliType, data, targetSessionId } = args || {};
33703
33703
  if (!data) return { success: false, error: "data required" };
33704
+ const cleanData = typeof data === "string" ? data.replace(/\x1b\[\?[0-9;]*c/g, "") : data;
33705
+ if (!cleanData) return { success: true };
33704
33706
  const adapter = h.getCliAdapter(targetSessionId || cliType);
33705
33707
  if (!adapter || typeof adapter.writeRaw !== "function") {
33706
33708
  return { success: false, error: `CLI adapter not found: ${targetSessionId || cliType || "unknown"}` };
33707
33709
  }
33708
- await adapter.writeRaw(data);
33710
+ await adapter.writeRaw(cleanData);
33709
33711
  return { success: true };
33710
33712
  }
33711
33713
  function handlePtyResize(_h, args) {
@@ -35567,6 +35569,22 @@ function resolveMeshCoordinatorSetup(options) {
35567
35569
  if (!instructions || !template?.trim()) {
35568
35570
  return { kind: "unsupported", reason: "Provider manual MCP setup is missing instructions or template" };
35569
35571
  }
35572
+ const renderedTemplate = renderMeshCoordinatorTemplate(template, {
35573
+ meshId,
35574
+ workspace,
35575
+ serverName,
35576
+ adhdevMcpCommand: options.adhdevMcpCommand || DEFAULT_ADHDEV_MCP_COMMAND
35577
+ });
35578
+ const isCliCommand = !renderedTemplate.trim().includes("\n") && !renderedTemplate.trim().startsWith("{");
35579
+ if (isCliCommand) {
35580
+ return {
35581
+ kind: "cli_command",
35582
+ serverName,
35583
+ command: renderedTemplate.trim(),
35584
+ requiresRestart: mcpConfig.requiresRestart === true,
35585
+ instructions
35586
+ };
35587
+ }
35570
35588
  return {
35571
35589
  kind: "manual",
35572
35590
  serverName,
@@ -35574,12 +35592,7 @@ function resolveMeshCoordinatorSetup(options) {
35574
35592
  configPathCommand: mcpConfig.configPathCommand,
35575
35593
  requiresRestart: mcpConfig.requiresRestart === true,
35576
35594
  instructions,
35577
- template: renderMeshCoordinatorTemplate(template, {
35578
- meshId,
35579
- workspace,
35580
- serverName,
35581
- adhdevMcpCommand: options.adhdevMcpCommand || DEFAULT_ADHDEV_MCP_COMMAND
35582
- })
35595
+ template: renderedTemplate
35583
35596
  };
35584
35597
  }
35585
35598
  return {
@@ -53346,6 +53359,93 @@ Run 'adhdev doctor' for detailed diagnostics.`
53346
53359
  meshCoordinatorSetup: coordinatorSetup
53347
53360
  };
53348
53361
  }
53362
+ if (coordinatorSetup.kind === "cli_command") {
53363
+ let cliCmdSystemPrompt = "";
53364
+ try {
53365
+ cliCmdSystemPrompt = buildCoordinatorSystemPrompt2({ mesh, coordinatorCliType: cliType });
53366
+ } catch (error48) {
53367
+ const message = error48?.message || String(error48);
53368
+ LOG.error("MeshCoordinator", `Failed to build coordinator prompt: ${message}`);
53369
+ return {
53370
+ success: false,
53371
+ code: "mesh_coordinator_prompt_failed",
53372
+ error: `Failed to build Repo Mesh coordinator prompt: ${message}`,
53373
+ meshId,
53374
+ cliType,
53375
+ workspace
53376
+ };
53377
+ }
53378
+ try {
53379
+ const { execFileSync: execCmdSync } = await import("child_process");
53380
+ const cmdParts = coordinatorSetup.command.trim().split(/\s+/);
53381
+ const [regCmd, ...regArgs] = cmdParts;
53382
+ LOG.info("MeshCoordinator", `Running MCP registration: ${coordinatorSetup.command}`);
53383
+ execCmdSync(regCmd, regArgs, { stdio: "pipe", timeout: 15e3 });
53384
+ } catch (error48) {
53385
+ LOG.warn("MeshCoordinator", `MCP registration command failed (may be pre-registered): ${error48?.message || error48}`);
53386
+ }
53387
+ const cliCmdArgs = [];
53388
+ const cliCmdEnv = {};
53389
+ if (cliCmdSystemPrompt) {
53390
+ if (cliType === "codex-cli") {
53391
+ cliCmdArgs.push("-c", `developer_instructions=${JSON.stringify(cliCmdSystemPrompt)}`);
53392
+ } else if (cliType === "gemini-cli") {
53393
+ try {
53394
+ const { writeFileSync: wfs, existsSync: efs, readFileSync: rfs } = await import("fs");
53395
+ const geminiMdPath = `${workspace}/GEMINI.md`;
53396
+ const marker = "<!-- adhdev-mesh-coordinator-prompt -->";
53397
+ const markerEnd = "<!-- /adhdev-mesh-coordinator-prompt -->";
53398
+ const block = `${marker}
53399
+ ${cliCmdSystemPrompt}
53400
+ ${markerEnd}`;
53401
+ if (efs(geminiMdPath)) {
53402
+ const existing = rfs(geminiMdPath, "utf-8");
53403
+ const replaced = existing.replace(
53404
+ new RegExp(`${marker}[\\s\\S]*?${markerEnd}`, "g"),
53405
+ block
53406
+ );
53407
+ wfs(geminiMdPath, replaced.includes(marker) ? replaced : `${existing}
53408
+
53409
+ ${block}`);
53410
+ } else {
53411
+ wfs(geminiMdPath, block);
53412
+ }
53413
+ LOG.info("MeshCoordinator", `Wrote coordinator prompt to ${workspace}/GEMINI.md`);
53414
+ } catch (e) {
53415
+ LOG.warn("MeshCoordinator", `Could not write GEMINI.md: ${e?.message || e}`);
53416
+ }
53417
+ }
53418
+ }
53419
+ const cliCmdLaunch = await this.deps.cliManager.handleCliCommand("launch_cli", {
53420
+ cliType,
53421
+ dir: workspace,
53422
+ cliArgs: cliCmdArgs.length > 0 ? cliCmdArgs : void 0,
53423
+ env: Object.keys(cliCmdEnv).length > 0 ? cliCmdEnv : void 0,
53424
+ settings: { meshCoordinatorFor: meshId }
53425
+ });
53426
+ if (!cliCmdLaunch?.success) {
53427
+ return { success: false, error: cliCmdLaunch?.error || "Failed to launch CLI session" };
53428
+ }
53429
+ LOG.info("MeshCoordinator", `Launched ${cliType} coordinator (cli_command) for mesh ${meshId}`);
53430
+ try {
53431
+ const { appendLedgerEntry: appendLedgerEntry2 } = await Promise.resolve().then(() => (init_mesh_ledger(), mesh_ledger_exports));
53432
+ appendLedgerEntry2(meshId, {
53433
+ kind: "coordinator_started",
53434
+ sessionId: cliCmdLaunch.sessionId || cliCmdLaunch.id,
53435
+ providerType: cliType,
53436
+ payload: { workspace }
53437
+ });
53438
+ } catch {
53439
+ }
53440
+ return {
53441
+ success: true,
53442
+ meshId,
53443
+ cliType,
53444
+ workspace,
53445
+ sessionId: cliCmdLaunch.sessionId || cliCmdLaunch.id,
53446
+ mcpRegistered: true
53447
+ };
53448
+ }
53349
53449
  const configFormat = coordinatorSetup.configFormat;
53350
53450
  if (configFormat !== "claude_mcp_json" && configFormat !== "hermes_config_yaml") {
53351
53451
  return {
@@ -57412,7 +57512,9 @@ var MESH_STATUS_TOOL = {
57412
57512
  description: "Get the current status of all nodes in the repo mesh \u2014 health, git state, active sessions. Use this to decide which node to send work to.",
57413
57513
  inputSchema: {
57414
57514
  type: "object",
57415
- properties: {}
57515
+ properties: {
57516
+ _gemini_compat: { type: "string", description: "Dummy property for Gemini compatibility. Ignore this." }
57517
+ }
57416
57518
  }
57417
57519
  };
57418
57520
  var MESH_LIST_NODES_TOOL = {
@@ -57420,7 +57522,9 @@ var MESH_LIST_NODES_TOOL = {
57420
57522
  description: "List all nodes in the mesh with their capabilities, platform, and workspace paths.",
57421
57523
  inputSchema: {
57422
57524
  type: "object",
57423
- properties: {}
57525
+ properties: {
57526
+ _gemini_compat: { type: "string", description: "Dummy property for Gemini compatibility. Ignore this." }
57527
+ }
57424
57528
  }
57425
57529
  };
57426
57530
  var MESH_ENQUEUE_TASK_TOOL = {