@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/cli-adapters/resolve-executable.d.ts +55 -0
- package/dist/config/mesh-config.d.ts +15 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +194 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +190 -20
- package/dist/index.mjs.map +1 -1
- package/dist/mesh/mesh-events-coordinator.d.ts +1 -1
- package/dist/mesh/mesh-events.d.ts +1 -1
- package/dist/mesh/mesh-queue-assignment.d.ts +18 -0
- package/dist/mesh/mesh-work-queue.d.ts +9 -0
- package/dist/repo-mesh-types.d.ts +8 -0
- package/package.json +2 -2
- package/src/cli-adapters/resolve-executable.ts +117 -3
- package/src/commands/med-family/mesh-queue.ts +23 -1
- package/src/config/mesh-config.ts +116 -0
- package/src/index.ts +10 -0
- package/src/mesh/mesh-event-forwarding.ts +23 -7
- package/src/mesh/mesh-events-coordinator.ts +1 -0
- package/src/mesh/mesh-events-pending.ts +15 -0
- package/src/mesh/mesh-events.ts +1 -0
- package/src/mesh/mesh-queue-assignment.ts +24 -0
- package/src/mesh/mesh-refine-gates.ts +12 -5
- package/src/mesh/mesh-work-queue.ts +13 -0
- package/src/mesh/worktree-bootstrap-config.ts +6 -2
- package/src/repo-mesh-types.ts +8 -0
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 ? "
|
|
388
|
-
const commitShort = readInjected(true ? "
|
|
389
|
-
const version = readInjected(true ? "0.9.82-rc.
|
|
390
|
-
const builtAt = readInjected(true ? "2026-06-
|
|
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
|
-
|
|
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
|
|
8463
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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,
|
|
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(
|
|
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,
|
|
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,
|