@adhdev/daemon-standalone 1.0.47 → 1.0.49-rc.1

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/public/index.html CHANGED
@@ -7,9 +7,9 @@
7
7
  <meta name="description" content="ADHDev self-hosted dashboard for controlling AI agents" />
8
8
  <link rel="icon" href="/otter-logo.png" />
9
9
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet" />
10
- <script type="module" crossorigin src="/assets/index-D3K4NyAl.js"></script>
10
+ <script type="module" crossorigin src="/assets/index-C5f45LAh.js"></script>
11
11
  <link rel="modulepreload" crossorigin href="/assets/vendor-DgFmqOGd.js">
12
- <link rel="stylesheet" crossorigin href="/assets/index-CEPCfMWL.css">
12
+ <link rel="stylesheet" crossorigin href="/assets/index-BjPWjmsH.css">
13
13
  </head>
14
14
  <body>
15
15
  <!-- Apply theme immediately to prevent FOIT (Flash of Incorrect Theme) -->
@@ -623,7 +623,9 @@ var CANONICAL_MESH_TOOL_NAMES = [
623
623
  "mesh_magi_kind_panel_list",
624
624
  "mesh_node_slots_set",
625
625
  "mesh_node_slots_list",
626
- "mesh_node_slots_propose"
626
+ "mesh_node_slots_propose",
627
+ "mesh_coordinator_prompt_append_get",
628
+ "mesh_coordinator_prompt_append_set"
627
629
  ];
628
630
  var CANONICAL_MESH_TOOL_COUNT = CANONICAL_MESH_TOOL_NAMES.length;
629
631
  var STATUS_PROBE_ARG_KEY = "_statusProbe";
@@ -1811,6 +1813,27 @@ var MESH_WRITE_MESH_JSON_CONFIG_TOOL = {
1811
1813
  }
1812
1814
  }
1813
1815
  };
1816
+ var MESH_COORDINATOR_PROMPT_APPEND_GET_TOOL = {
1817
+ name: "mesh_coordinator_prompt_append_get",
1818
+ description: "Read the current user-level coordinator prompt APPEND text for a CLI type \u2014 the per-machine file at ~/.adhdev/coordinator-prompts/<cli>.append.md on this MCP server's daemon. Read this before mesh_coordinator_prompt_append_set so you know what you would be replacing. APPEND ONLY: this always stacks AFTER whichever base prompt wins (daemon default, or a mesh-level / user-level override) \u2014 there is no tool to read or write the OVERRIDE (base-replacing) file via MCP; that stays a dashboard-only, human-gated action by design.",
1819
+ inputSchema: {
1820
+ type: "object",
1821
+ properties: {
1822
+ cli_type: { type: "string", description: 'CLI type key, e.g. "claude-cli", "codex-cli". Defaults to "default" (applies to every CLI type without its own file).' }
1823
+ }
1824
+ }
1825
+ };
1826
+ var MESH_COORDINATOR_PROMPT_APPEND_SET_TOOL = {
1827
+ name: "mesh_coordinator_prompt_append_set",
1828
+ description: "Write (or clear) the user-level coordinator prompt APPEND text for a CLI type \u2014 the per-machine file at ~/.adhdev/coordinator-prompts/<cli>.append.md on this MCP server's daemon. Applies to every mesh this daemon coordinates. Empty/omitted content deletes the file (reset to no append). WHOLESALE REPLACE: this replaces the entire append file, not an incremental add \u2014 read the current value first with mesh_coordinator_prompt_append_get if you want to preserve existing text. APPEND ONLY (safety boundary, not a missing feature): this can only ever add text after the base prompt; it can NEVER replace the daemon's base coordinator prompt (the OVERRIDE file), so a coordinator using this tool cannot erase its own core operating rules. There is no override parameter and none will be added.",
1829
+ inputSchema: {
1830
+ type: "object",
1831
+ properties: {
1832
+ cli_type: { type: "string", description: 'CLI type key, e.g. "claude-cli", "codex-cli". Defaults to "default".' },
1833
+ content: { type: "string", description: "The full append text to write. Omit or pass an empty string to clear (delete the file, falling back to no append at this layer)." }
1834
+ }
1835
+ }
1836
+ };
1814
1837
  var ALL_MESH_TOOLS = [
1815
1838
  MESH_STATUS_TOOL,
1816
1839
  MESH_LIST_NODES_TOOL,
@@ -1863,7 +1886,9 @@ var ALL_MESH_TOOLS = [
1863
1886
  MESH_MAGI_KIND_PANEL_LIST_TOOL,
1864
1887
  MESH_NODE_SLOTS_SET_TOOL,
1865
1888
  MESH_NODE_SLOTS_LIST_TOOL,
1866
- MESH_NODE_SLOTS_PROPOSE_TOOL
1889
+ MESH_NODE_SLOTS_PROPOSE_TOOL,
1890
+ MESH_COORDINATOR_PROMPT_APPEND_GET_TOOL,
1891
+ MESH_COORDINATOR_PROMPT_APPEND_SET_TOOL
1867
1892
  ];
1868
1893
 
1869
1894
  // src/tools/mesh-compact.ts
@@ -8443,6 +8468,41 @@ async function meshAddNode(transport, args, defaultMeshId) {
8443
8468
  }, null, 2);
8444
8469
  }
8445
8470
 
8471
+ // src/tools/mesh-tools-coordinator-prompt.ts
8472
+ var DEFAULT_CLI_TYPE_KEY = "default";
8473
+ async function meshCoordinatorPromptAppendGet(ctx, args = {}) {
8474
+ const key = readString(args.cli_type) || DEFAULT_CLI_TYPE_KEY;
8475
+ const result = unwrapCommandPayload(await ctx.transport.command("list_coordinator_prompts", {}));
8476
+ if (!result?.success) {
8477
+ return JSON.stringify({ success: false, error: result?.error || "list_coordinator_prompts failed" }, null, 2);
8478
+ }
8479
+ const entry = result.entries?.[key];
8480
+ return JSON.stringify({
8481
+ success: true,
8482
+ cli_type: key,
8483
+ append: entry?.append || "",
8484
+ dir: result.dir
8485
+ }, null, 2);
8486
+ }
8487
+ async function meshCoordinatorPromptAppendSet(ctx, args) {
8488
+ const key = readString(args.cli_type) || DEFAULT_CLI_TYPE_KEY;
8489
+ const content = typeof args.content === "string" ? args.content : "";
8490
+ const result = unwrapCommandPayload(await ctx.transport.command("write_coordinator_prompt", {
8491
+ key,
8492
+ kind: "append",
8493
+ content
8494
+ }));
8495
+ if (!result?.success) {
8496
+ return JSON.stringify({ success: false, error: result?.error || "write_coordinator_prompt failed" }, null, 2);
8497
+ }
8498
+ return JSON.stringify({
8499
+ success: true,
8500
+ cli_type: key,
8501
+ cleared: !content.trim(),
8502
+ path: result.path
8503
+ }, null, 2);
8504
+ }
8505
+
8446
8506
  // src/tools/mesh-tools-refine.ts
8447
8507
  async function meshRefineConfigSchema(ctx) {
8448
8508
  const node = resolveRefineConfigNode(ctx);
@@ -9985,6 +10045,12 @@ async function startMcpServer(opts) {
9985
10045
  case "mesh_node_slots_propose":
9986
10046
  text = await meshNodeSlotsPropose(meshCtx, a);
9987
10047
  break;
10048
+ case "mesh_coordinator_prompt_append_get":
10049
+ text = await meshCoordinatorPromptAppendGet(meshCtx, a);
10050
+ break;
10051
+ case "mesh_coordinator_prompt_append_set":
10052
+ text = await meshCoordinatorPromptAppendSet(meshCtx, a);
10053
+ break;
9988
10054
  default:
9989
10055
  return { content: [{ type: "text", text: `Unknown tool: ${name}` }], isError: true };
9990
10056
  }