@adhdev/daemon-core 0.9.82-rc.413 → 0.9.82-rc.415

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -384,10 +384,10 @@ function readInjected(value) {
384
384
  }
385
385
  function getDaemonBuildInfo() {
386
386
  if (cached) return cached;
387
- const commit = readInjected(true ? "7a774e95a82354f5357197b3c84f63e68b5f7a5d" : void 0) ?? "unknown";
388
- const commitShort = readInjected(true ? "7a774e95" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
389
- const version = readInjected(true ? "0.9.82-rc.413" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
390
- const builtAt = readInjected(true ? "2026-06-28T11:48:26.300Z" : void 0);
387
+ const commit = readInjected(true ? "eeb6bb4fcd32cf1844ed87bb4a7c2760e132e69d" : void 0) ?? "unknown";
388
+ const commitShort = readInjected(true ? "eeb6bb4f" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
389
+ const version = readInjected(true ? "0.9.82-rc.415" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
390
+ const builtAt = readInjected(true ? "2026-06-28T13:43:23.868Z" : void 0);
391
391
  cached = builtAt ? { commit, commitShort, version, builtAt } : { commit, commitShort, version };
392
392
  return cached;
393
393
  }
@@ -2556,15 +2556,19 @@ __export(mesh_config_exports, {
2556
2556
  createMesh: () => createMesh,
2557
2557
  createMeshHostPairingToken: () => createMeshHostPairingToken,
2558
2558
  deleteMesh: () => deleteMesh,
2559
+ getMagiPanel: () => getMagiPanel,
2559
2560
  getMesh: () => getMesh,
2560
2561
  getMeshByRepo: () => getMeshByRepo,
2562
+ listMagiPanels: () => listMagiPanels,
2561
2563
  listMeshes: () => listMeshes,
2562
2564
  markMeshHostPairingJoined: () => markMeshHostPairingJoined,
2563
2565
  normalizeRepoIdentity: () => normalizeRepoIdentity,
2566
+ removeMagiPanel: () => removeMagiPanel,
2564
2567
  removeNode: () => removeNode,
2565
2568
  tokenIdForManualPairing: () => tokenIdForManualPairing,
2566
2569
  updateMesh: () => updateMesh,
2567
- updateNode: () => updateNode
2570
+ updateNode: () => updateNode,
2571
+ upsertMagiPanel: () => upsertMagiPanel
2568
2572
  });
2569
2573
  import { existsSync as existsSync5, readFileSync as readFileSync3, writeFileSync as writeFileSync2 } from "fs";
2570
2574
  import { join as join5 } from "path";
@@ -2940,7 +2944,89 @@ function updateNode(meshId, nodeId, opts) {
2940
2944
  saveMeshConfig(config);
2941
2945
  return node;
2942
2946
  }
2943
- var mergeMeshPolicy;
2947
+ function normalizeReplicaCount(value) {
2948
+ if (typeof value !== "number" || !Number.isFinite(value)) return void 0;
2949
+ const n = Math.floor(value);
2950
+ return n >= 1 ? n : void 0;
2951
+ }
2952
+ function normalizeMagiPanel(config) {
2953
+ if (!config || typeof config !== "object" || Array.isArray(config)) {
2954
+ throw new Error("invalid_magi_panel: config must be an object");
2955
+ }
2956
+ const raw = config;
2957
+ const rawMembers = raw.members;
2958
+ if (!Array.isArray(rawMembers) || rawMembers.length === 0) {
2959
+ throw new Error("invalid_magi_panel: members must be a non-empty array");
2960
+ }
2961
+ if (rawMembers.length > MAX_MAGI_PANEL_MEMBERS) {
2962
+ throw new Error(`invalid_magi_panel: too many members (max ${MAX_MAGI_PANEL_MEMBERS})`);
2963
+ }
2964
+ const members = rawMembers.map((entry, idx) => {
2965
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
2966
+ throw new Error(`invalid_magi_panel: member[${idx}] must be an object`);
2967
+ }
2968
+ const m = entry;
2969
+ const provider = typeof m.provider === "string" ? m.provider.trim() : "";
2970
+ if (!provider) {
2971
+ throw new Error(`invalid_magi_panel: member[${idx}].provider is required`);
2972
+ }
2973
+ const nodeId = typeof m.nodeId === "string" && m.nodeId.trim() ? m.nodeId.trim() : void 0;
2974
+ const capabilityTags = normalizeCapabilityTags(m.capabilityTags);
2975
+ const n = normalizeReplicaCount(m.n);
2976
+ return {
2977
+ provider,
2978
+ ...nodeId ? { nodeId } : {},
2979
+ ...capabilityTags ? { capabilityTags } : {},
2980
+ ...n !== void 0 ? { n } : {}
2981
+ };
2982
+ });
2983
+ const description = typeof raw.description === "string" && raw.description.trim() ? raw.description.trim().slice(0, 200) : void 0;
2984
+ const defaultN = normalizeReplicaCount(raw.defaultN);
2985
+ return {
2986
+ ...description ? { description } : {},
2987
+ members,
2988
+ ...defaultN !== void 0 ? { defaultN } : {},
2989
+ // dedupExempt is always meaningful for a MAGI panel (intentional same-prompt
2990
+ // fan-out). Persist it true unless the caller explicitly disables it.
2991
+ dedupExempt: raw.dedupExempt === false ? false : true
2992
+ };
2993
+ }
2994
+ function normalizePanelName(name) {
2995
+ const trimmed = typeof name === "string" ? name.trim() : "";
2996
+ if (!trimmed) throw new Error("invalid_magi_panel: panel name is required");
2997
+ return trimmed.slice(0, 100);
2998
+ }
2999
+ function listMagiPanels() {
3000
+ return loadMeshConfig().magiPanels ?? {};
3001
+ }
3002
+ function getMagiPanel(name) {
3003
+ const key2 = typeof name === "string" ? name.trim() : "";
3004
+ if (!key2) return void 0;
3005
+ return loadMeshConfig().magiPanels?.[key2];
3006
+ }
3007
+ function upsertMagiPanel(name, config, opts = {}) {
3008
+ const key2 = normalizePanelName(name);
3009
+ const panel = normalizeMagiPanel(config);
3010
+ const stored = loadMeshConfig();
3011
+ const panels = stored.magiPanels ?? {};
3012
+ if (panels[key2] && opts.overwrite !== true) {
3013
+ throw new Error(`magi_panel_exists: panel '${key2}' already exists \u2014 pass overwrite=true to replace it`);
3014
+ }
3015
+ panels[key2] = panel;
3016
+ stored.magiPanels = panels;
3017
+ saveMeshConfig(stored);
3018
+ return panel;
3019
+ }
3020
+ function removeMagiPanel(name) {
3021
+ const key2 = typeof name === "string" ? name.trim() : "";
3022
+ if (!key2) return false;
3023
+ const stored = loadMeshConfig();
3024
+ if (!stored.magiPanels || !stored.magiPanels[key2]) return false;
3025
+ delete stored.magiPanels[key2];
3026
+ saveMeshConfig(stored);
3027
+ return true;
3028
+ }
3029
+ var mergeMeshPolicy, MAX_MAGI_PANEL_MEMBERS;
2944
3030
  var init_mesh_config = __esm({
2945
3031
  "src/config/mesh-config.ts"() {
2946
3032
  "use strict";
@@ -2949,6 +3035,7 @@ var init_mesh_config = __esm({
2949
3035
  init_repo_mesh_types();
2950
3036
  init_mesh_host_ownership();
2951
3037
  mergeMeshPolicy = mergeAndNormalizePolicy;
3038
+ MAX_MAGI_PANEL_MEMBERS = 24;
2952
3039
  }
2953
3040
  });
2954
3041
 
@@ -5136,6 +5223,7 @@ function enqueueTask(meshId, message, opts) {
5136
5223
  requiredTags: resolvedRequiredTags,
5137
5224
  ...dependsOn.length > 0 ? { dependsOn } : {},
5138
5225
  ...typeof opts?.missionId === "string" && opts.missionId.trim() ? { missionId: opts.missionId.trim() } : {},
5226
+ ...typeof opts?.consensusGroupId === "string" && opts.consensusGroupId.trim() ? { consensusGroupId: opts.consensusGroupId.trim() } : {},
5139
5227
  ...typeof opts?.sourceCoordinatorSessionId === "string" && opts.sourceCoordinatorSessionId.trim() ? { sourceCoordinatorSessionId: opts.sourceCoordinatorSessionId.trim() } : {},
5140
5228
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
5141
5229
  updatedAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -8447,6 +8535,14 @@ function resolveWin32GlobalBin(trimmed) {
8447
8535
  }
8448
8536
  return null;
8449
8537
  }
8538
+ function selectWin32ExecutableMatch(matches) {
8539
+ const cleaned = matches.map((m) => m.trim()).filter(Boolean);
8540
+ const direct = cleaned.find((m) => DIRECT_EXEC_EXT.has(path10.extname(m).toLowerCase()));
8541
+ if (direct) return direct;
8542
+ const shim = cleaned.find((m) => SHIM_EXEC_EXT.has(path10.extname(m).toLowerCase()));
8543
+ if (shim) return shim;
8544
+ return null;
8545
+ }
8450
8546
  function resolveWin32Executable(command) {
8451
8547
  if (process.platform !== "win32") return command;
8452
8548
  const trimmed = (command || "").trim();
@@ -8459,8 +8555,8 @@ function resolveWin32Executable(command) {
8459
8555
  }).trim();
8460
8556
  if (out) {
8461
8557
  const matches = out.split(/\r?\n/).map((s2) => s2.trim()).filter(Boolean);
8462
- const direct = matches.find((m) => DIRECT_EXEC_EXT.has(path10.extname(m).toLowerCase()));
8463
- return direct || matches[0] || command;
8558
+ const selected = selectWin32ExecutableMatch(matches);
8559
+ if (selected) return selected;
8464
8560
  }
8465
8561
  } catch {
8466
8562
  }
@@ -8468,11 +8564,43 @@ function resolveWin32Executable(command) {
8468
8564
  if (globalBin) return globalBin;
8469
8565
  return command;
8470
8566
  }
8471
- var DIRECT_EXEC_EXT, WIN_EXEC_EXT;
8567
+ function quoteWin32CmdArg(arg) {
8568
+ if (arg.length > 0 && !/[ \t"]/.test(arg)) return arg;
8569
+ let result = '"';
8570
+ let backslashes = 0;
8571
+ for (const ch of arg) {
8572
+ if (ch === "\\") {
8573
+ backslashes += 1;
8574
+ continue;
8575
+ }
8576
+ if (ch === '"') {
8577
+ result += "\\".repeat(backslashes * 2 + 1) + '"';
8578
+ backslashes = 0;
8579
+ continue;
8580
+ }
8581
+ result += "\\".repeat(backslashes) + ch;
8582
+ backslashes = 0;
8583
+ }
8584
+ result += "\\".repeat(backslashes * 2) + '"';
8585
+ return result;
8586
+ }
8587
+ function buildWin32ExecFileSpawn(resolvedCommand, args) {
8588
+ if (process.platform !== "win32") return { file: resolvedCommand, args };
8589
+ const ext = path10.extname(resolvedCommand).toLowerCase();
8590
+ if (!SHIM_EXEC_EXT.has(ext)) return { file: resolvedCommand, args };
8591
+ const commandLine = [resolvedCommand, ...args].map(quoteWin32CmdArg).join(" ");
8592
+ return {
8593
+ file: process.env.ComSpec || "cmd.exe",
8594
+ args: ["/d", "/s", "/c", `"${commandLine}"`],
8595
+ windowsVerbatimArguments: true
8596
+ };
8597
+ }
8598
+ var DIRECT_EXEC_EXT, SHIM_EXEC_EXT, WIN_EXEC_EXT;
8472
8599
  var init_resolve_executable = __esm({
8473
8600
  "src/cli-adapters/resolve-executable.ts"() {
8474
8601
  "use strict";
8475
8602
  DIRECT_EXEC_EXT = /* @__PURE__ */ new Set([".exe", ".com"]);
8603
+ SHIM_EXEC_EXT = /* @__PURE__ */ new Set([".cmd", ".bat"]);
8476
8604
  WIN_EXEC_EXT = [".exe", ".com", ".cmd", ".bat"];
8477
8605
  }
8478
8606
  });
@@ -8663,14 +8791,16 @@ async function runMeshWorktreeBootstrap(mesh, workspace) {
8663
8791
  const startedAt = Date.now();
8664
8792
  state.lastCommand = command.displayCommand;
8665
8793
  const resolvedCommand = resolveWin32Executable(command.command);
8794
+ const spawn4 = buildWin32ExecFileSpawn(resolvedCommand, command.args);
8666
8795
  try {
8667
- const result = await execFileAsync4(resolvedCommand, command.args, {
8796
+ const result = await execFileAsync4(spawn4.file, spawn4.args, {
8668
8797
  cwd,
8669
8798
  encoding: "utf8",
8670
8799
  timeout: command.timeoutMs || DEFAULT_TIMEOUT_MS2,
8671
8800
  maxBuffer: command.outputLimitBytes || DEFAULT_OUTPUT_LIMIT_BYTES,
8672
8801
  env: { ...process.env, CI: process.env.CI || "1", ...command.env || {} },
8673
- windowsHide: true
8802
+ windowsHide: true,
8803
+ ...spawn4.windowsVerbatimArguments ? { windowsVerbatimArguments: true } : {}
8674
8804
  });
8675
8805
  state.commandsRun?.push({
8676
8806
  command: command.command,
@@ -10422,6 +10552,11 @@ function buildPendingEventFingerprint(event) {
10422
10552
  ].join("::");
10423
10553
  }
10424
10554
  }
10555
+ const consensusGroupId = readNonEmptyString2(metadata.consensusGroupId) || readNonEmptyString2(readRecord4(metadata.payload)?.consensusGroupId);
10556
+ if (consensusGroupId) {
10557
+ const groupTaskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord4(metadata.payload)?.taskId);
10558
+ return [event.meshId, event.event, groupTaskId || "", consensusGroupId, "group"].join("::");
10559
+ }
10425
10560
  const sessionId = resolveEventSessionId(metadata);
10426
10561
  const providerSessionId = readNonEmptyString2(metadata.providerSessionId);
10427
10562
  const taskId = readNonEmptyString2(metadata.taskId) || readNonEmptyString2(readRecord4(metadata.payload)?.taskId);
@@ -12248,6 +12383,12 @@ function sessionHasActiveAssignment(meshId, sessionId) {
12248
12383
  }
12249
12384
  return false;
12250
12385
  }
12386
+ function isSessionActivelyGenerating(components, sessionId) {
12387
+ if (!sessionId) return false;
12388
+ const state = components.instanceManager?.getInstance?.(sessionId)?.getState?.();
12389
+ if (!state) return false;
12390
+ return sessionStateLooksActive(state);
12391
+ }
12251
12392
  function liveSessionCountForNode(components, meshId, nodeId) {
12252
12393
  return components.instanceManager.getByCategory("cli").filter((inst) => {
12253
12394
  const state = inst.getState();
@@ -15691,13 +15832,22 @@ function injectMeshSystemMessage(components, args) {
15691
15832
  ) || readNonEmptyString2(args.metadataEvent.meshCoordinatorSessionId);
15692
15833
  const enrichedMetadataEvent = (() => {
15693
15834
  const last = sourceSession ? getLastDisplayMessage(sourceSession.getState()) : null;
15694
- if (!last || !last.preview) return args.metadataEvent;
15695
- return {
15835
+ const base = !last || !last.preview ? args.metadataEvent : {
15696
15836
  ...args.metadataEvent,
15697
15837
  lastMessagePreview: last.preview,
15698
15838
  lastMessageRole: last.role,
15699
15839
  ...last.receivedAt > 0 ? { lastMessageAt: last.receivedAt } : {}
15700
15840
  };
15841
+ if (readNonEmptyString2(base.consensusGroupId)) return base;
15842
+ const eventTaskId = readNonEmptyString2(args.metadataEvent.taskId);
15843
+ if (!eventTaskId) return base;
15844
+ try {
15845
+ const entry = MeshRuntimeStore.getInstance().findQueueEntryById(args.meshId, eventTaskId);
15846
+ const consensusGroupId = readNonEmptyString2(entry?.consensusGroupId);
15847
+ if (consensusGroupId) return { ...base, consensusGroupId };
15848
+ } catch {
15849
+ }
15850
+ return base;
15701
15851
  })();
15702
15852
  if (components.onMeshCoordinatorEventForwarded) {
15703
15853
  try {
@@ -17314,6 +17464,7 @@ __export(mesh_events_exports, {
17314
17464
  getPendingMeshCoordinatorEvents: () => getPendingMeshCoordinatorEvents,
17315
17465
  handleMeshForwardEvent: () => handleMeshForwardEvent,
17316
17466
  isMeshCoordinatorEvent: () => isMeshCoordinatorEvent,
17467
+ isSessionActivelyGenerating: () => isSessionActivelyGenerating,
17317
17468
  queuePendingMeshCoordinatorEvent: () => queuePendingMeshCoordinatorEvent,
17318
17469
  reconcileDirectDispatchCompletionFromTranscript: () => reconcileDirectDispatchCompletionFromTranscript,
17319
17470
  resolveCoordinatorDrainDeliverability: () => resolveCoordinatorDrainDeliverability,
@@ -49211,7 +49362,18 @@ var meshQueueHandlers = {
49211
49362
  const ownerFailure = await ctx.requireMeshHostMutationOwner(meshId, args?.inlineMesh, "queue requeue");
49212
49363
  if (ownerFailure) return ownerFailure;
49213
49364
  try {
49214
- const { requeueTask: requeueTask2 } = await Promise.resolve().then(() => (init_mesh_work_queue(), mesh_work_queue_exports));
49365
+ const { requeueTask: requeueTask2, getQueue: getQueue2 } = await Promise.resolve().then(() => (init_mesh_work_queue(), mesh_work_queue_exports));
49366
+ if (args?.force !== true) {
49367
+ const { isSessionActivelyGenerating: isSessionActivelyGenerating2 } = await Promise.resolve().then(() => (init_mesh_events(), mesh_events_exports));
49368
+ const existing = getQueue2(meshId).find((t) => t?.id === taskId);
49369
+ if (existing?.status === "assigned" && existing.assignedSessionId && isSessionActivelyGenerating2(ctx.deps, existing.assignedSessionId)) {
49370
+ return {
49371
+ success: false,
49372
+ error: `Task '${taskId}' is actively dispatched/generating (live session ${existing.assignedSessionId}); requeue refused to avoid a duplicate second dispatch. Pass force:true to override, or cancel and re-enqueue.`,
49373
+ task: existing
49374
+ };
49375
+ }
49376
+ }
49215
49377
  const task = requeueTask2(meshId, taskId, {
49216
49378
  reason: typeof args?.reason === "string" ? args.reason : void 0,
49217
49379
  targetNodeId: typeof args?.targetNodeId === "string" ? args.targetNodeId.trim() : void 0,
@@ -53147,13 +53309,15 @@ async function runMeshRefineValidationGate(mesh, workspace, opts) {
53147
53309
  const cwd = candidate.cwd ? pathResolve2(workspace, candidate.cwd) : workspace;
53148
53310
  const timeout = candidate.timeoutMs || REFINE_VALIDATION_TIMEOUT_MS;
53149
53311
  const resolvedCommand = resolveWin32Executable(candidate.command);
53312
+ const spawn4 = buildWin32ExecFileSpawn(resolvedCommand, candidate.args);
53150
53313
  try {
53151
- const result = await execFileAsync4(resolvedCommand, candidate.args, {
53314
+ const result = await execFileAsync4(spawn4.file, spawn4.args, {
53152
53315
  cwd,
53153
53316
  encoding: "utf8",
53154
53317
  timeout,
53155
53318
  maxBuffer: candidate.outputLimitBytes || REFINE_VALIDATION_OUTPUT_LIMIT_BYTES,
53156
- env: { ...process.env, CI: process.env.CI || "1", ...candidate.env || {} }
53319
+ env: { ...process.env, CI: process.env.CI || "1", ...candidate.env || {} },
53320
+ ...spawn4.windowsVerbatimArguments ? { windowsVerbatimArguments: true } : {}
53157
53321
  });
53158
53322
  summary.bootstrapCommandsRun.push(commandRecord(candidate, cwd, startedAt, result, true, { exitCode: 0 }));
53159
53323
  } catch (error) {
@@ -53164,7 +53328,7 @@ async function runMeshRefineValidationGate(mesh, workspace, opts) {
53164
53328
  timedOut: error?.killed === true || /timed out/i.test(String(error?.message || "")),
53165
53329
  ...spawnResolutionFailed ? { failureKind: "spawn_resolution_failed", resolvedCommand } : { failureKind: "dependency_bootstrap_failed" }
53166
53330
  }));
53167
- summary.bootstrap = { stage: "failed", error: describeSpawnError(error, candidate.command, spawnResolutionFailed) };
53331
+ summary.bootstrap = { stage: "failed", error: describeSpawnError(error, resolvedCommand, spawnResolutionFailed) };
53168
53332
  summary.status = "failed";
53169
53333
  summary.failureKind = spawnResolutionFailed ? "spawn_resolution_failed" : "dependency_bootstrap_failed";
53170
53334
  summary.failureCode = spawnResolutionFailed ? "spawn_resolution_failed" : "dependency_bootstrap_failed";
@@ -53191,13 +53355,15 @@ async function runMeshRefineValidationGate(mesh, workspace, opts) {
53191
53355
  return summary;
53192
53356
  }
53193
53357
  const resolvedCommand = resolveWin32Executable(candidate.command);
53358
+ const spawn4 = buildWin32ExecFileSpawn(resolvedCommand, candidate.args);
53194
53359
  try {
53195
- const result = await execFileAsync4(resolvedCommand, candidate.args, {
53360
+ const result = await execFileAsync4(spawn4.file, spawn4.args, {
53196
53361
  cwd,
53197
53362
  encoding: "utf8",
53198
53363
  timeout,
53199
53364
  maxBuffer: candidate.outputLimitBytes || REFINE_VALIDATION_OUTPUT_LIMIT_BYTES,
53200
- env: { ...process.env, CI: process.env.CI || "1", ...candidate.env || {} }
53365
+ env: { ...process.env, CI: process.env.CI || "1", ...candidate.env || {} },
53366
+ ...spawn4.windowsVerbatimArguments ? { windowsVerbatimArguments: true } : {}
53201
53367
  });
53202
53368
  summary.commandsRun.push(commandRecord(candidate, cwd, startedAt, result, true, { exitCode: 0 }));
53203
53369
  } catch (error) {
@@ -53214,7 +53380,7 @@ async function runMeshRefineValidationGate(mesh, workspace, opts) {
53214
53380
  if (spawnResolutionFailed) {
53215
53381
  summary.failureKind = "spawn_resolution_failed";
53216
53382
  summary.failureCode = "spawn_resolution_failed";
53217
- summary.spawnResolutionError = describeSpawnError(error, candidate.command, true);
53383
+ summary.spawnResolutionError = describeSpawnError(error, resolvedCommand, true);
53218
53384
  } else if (missingDependencyFailure) {
53219
53385
  summary.failureKind = "missing_dependencies";
53220
53386
  summary.failureCode = "missing_dependencies";
@@ -64223,6 +64389,7 @@ export {
64223
64389
  getLedgerDir,
64224
64390
  getLedgerSummary,
64225
64391
  getLogLevel,
64392
+ getMagiPanel,
64226
64393
  getMesh,
64227
64394
  getMeshByRepo,
64228
64395
  getMeshMission,
@@ -64276,6 +64443,7 @@ export {
64276
64443
  launchWithCdp,
64277
64444
  listCoordinatorsForWorkspace,
64278
64445
  listHostedCliRuntimes,
64446
+ listMagiPanels,
64279
64447
  listMeshMissionSummaries,
64280
64448
  listMeshes,
64281
64449
  listWorktrees,
@@ -64345,6 +64513,7 @@ export {
64345
64513
  recordMeshToolCall,
64346
64514
  registerExtensionProviders,
64347
64515
  registerMeshCoordinator,
64516
+ removeMagiPanel,
64348
64517
  removeNode,
64349
64518
  removeWorktree,
64350
64519
  requeueTask,
@@ -64399,6 +64568,7 @@ export {
64399
64568
  updateSessionDeliveryStatus,
64400
64569
  updateSessionTaskStatus,
64401
64570
  updateTaskStatus,
64571
+ upsertMagiPanel,
64402
64572
  upsertMeshMission,
64403
64573
  upsertSavedProviderSession,
64404
64574
  validateChangeImpactConfig,