@adhdev/daemon-standalone 1.0.29-rc.4 → 1.0.29-rc.5
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.js +135 -14
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -33311,10 +33311,10 @@ var require_dist3 = __commonJS({
|
|
|
33311
33311
|
}
|
|
33312
33312
|
function getDaemonBuildInfo() {
|
|
33313
33313
|
if (cached2) return cached2;
|
|
33314
|
-
const commit = readInjected(true ? "
|
|
33315
|
-
const commitShort = readInjected(true ? "
|
|
33316
|
-
const version2 = readInjected(true ? "1.0.29-rc.
|
|
33317
|
-
const builtAt = readInjected(true ? "2026-08-
|
|
33314
|
+
const commit = readInjected(true ? "f4bab0079a473c45327927eb9481c5b4c2d48aa7" : void 0) ?? "unknown";
|
|
33315
|
+
const commitShort = readInjected(true ? "f4bab007" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
|
|
33316
|
+
const version2 = readInjected(true ? "1.0.29-rc.5" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
|
|
33317
|
+
const builtAt = readInjected(true ? "2026-08-02T04:13:46.304Z" : void 0);
|
|
33318
33318
|
cached2 = builtAt ? { commit, commitShort, version: version2, builtAt } : { commit, commitShort, version: version2 };
|
|
33319
33319
|
return cached2;
|
|
33320
33320
|
}
|
|
@@ -54422,11 +54422,34 @@ The mesh has no work in flight. For each mission, decide its outcome: continue i
|
|
|
54422
54422
|
if (!workspace) return null;
|
|
54423
54423
|
try {
|
|
54424
54424
|
const result = loadRepoMeshJsonConfig(workspace);
|
|
54425
|
-
|
|
54425
|
+
if (result.sourceType !== "repo_file" || !result.config) return null;
|
|
54426
|
+
if (!isConfigPathInsideWorkspace(result.path, workspace)) return null;
|
|
54427
|
+
return result.config;
|
|
54426
54428
|
} catch {
|
|
54427
54429
|
return null;
|
|
54428
54430
|
}
|
|
54429
54431
|
}
|
|
54432
|
+
function isConfigPathInsideWorkspace(configPath, workspace) {
|
|
54433
|
+
if (typeof configPath !== "string" || !configPath) return false;
|
|
54434
|
+
const toPosix = (value) => value.replace(/\\/g, "/").replace(/\/+$/, "");
|
|
54435
|
+
const ws = toPosix(workspace);
|
|
54436
|
+
const target = toPosix(configPath);
|
|
54437
|
+
return !!ws && (target === ws || target.startsWith(`${ws}/`));
|
|
54438
|
+
}
|
|
54439
|
+
function warnUnreadableRepoConfigForNode(node, providerType) {
|
|
54440
|
+
const workspace = typeof node?.workspace === "string" && node.workspace.trim() ? node.workspace.trim() : "";
|
|
54441
|
+
if (!workspace) return;
|
|
54442
|
+
const nodeId = readNonEmptyString(node?.id) || readNonEmptyString(node?.nodeId) || "unknown-node";
|
|
54443
|
+
LOG2.warn(
|
|
54444
|
+
"MeshQueue",
|
|
54445
|
+
`repo mesh.json unreadable from this daemon for node=${nodeId} workspace=${workspace} provider=${providerType || "unknown"} \u2014 delegated auto-approve MODE falls back to the provider default here; the worker daemon re-resolves it from its own checkout at launch`
|
|
54446
|
+
);
|
|
54447
|
+
}
|
|
54448
|
+
function delegatedWorkerAutoApproveSettingsForNode(mesh, node, provider, providerType) {
|
|
54449
|
+
const repoConfig = loadRepoConfigForNode(node);
|
|
54450
|
+
if (!repoConfig) warnUnreadableRepoConfigForNode(node, providerType);
|
|
54451
|
+
return delegatedWorkerAutoApproveSettings(mesh?.policy, node?.policy, provider, repoConfig, providerType);
|
|
54452
|
+
}
|
|
54430
54453
|
function getMeshWithCache(components, meshId) {
|
|
54431
54454
|
const localMesh = getMesh(meshId);
|
|
54432
54455
|
const cachedMesh = components.router?.getCachedInlineMesh(meshId);
|
|
@@ -54843,11 +54866,10 @@ The mesh has no work in flight. For each mission, decide its outcome: continue i
|
|
|
54843
54866
|
meshNodeFor: meshId,
|
|
54844
54867
|
meshNodeId: nodeId,
|
|
54845
54868
|
launchedByCoordinator: true,
|
|
54846
|
-
...
|
|
54847
|
-
mesh
|
|
54848
|
-
node
|
|
54869
|
+
...delegatedWorkerAutoApproveSettingsForNode(
|
|
54870
|
+
mesh,
|
|
54871
|
+
node,
|
|
54849
54872
|
components.providerLoader?.getMeta(providerType),
|
|
54850
|
-
loadRepoConfigForNode(node),
|
|
54851
54873
|
providerType
|
|
54852
54874
|
),
|
|
54853
54875
|
...localDaemonId ? { meshCoordinatorDaemonId: localDaemonId } : {},
|
|
@@ -55706,11 +55728,10 @@ The mesh has no work in flight. For each mission, decide its outcome: continue i
|
|
|
55706
55728
|
// Coordinator-dispatched worker: auto-approve unless mesh/node policy
|
|
55707
55729
|
// opts out (default true). Lands in settingsOverride and beats the
|
|
55708
55730
|
// global per-provider-type boolean/mode through explicit opposite-key clearing.
|
|
55709
|
-
...
|
|
55710
|
-
mesh
|
|
55711
|
-
node
|
|
55731
|
+
...delegatedWorkerAutoApproveSettingsForNode(
|
|
55732
|
+
mesh,
|
|
55733
|
+
node,
|
|
55712
55734
|
components.providerLoader?.getMeta(resolved.providerType),
|
|
55713
|
-
loadRepoConfigForNode(node),
|
|
55714
55735
|
resolved.providerType
|
|
55715
55736
|
),
|
|
55716
55737
|
launchedByCoordinator: true,
|
|
@@ -85846,6 +85867,84 @@ ${body}
|
|
|
85846
85867
|
init_hash();
|
|
85847
85868
|
init_coordinator_registry();
|
|
85848
85869
|
init_mesh_duplicate_dispatch();
|
|
85870
|
+
init_mesh_json_config();
|
|
85871
|
+
init_logger();
|
|
85872
|
+
init_repo_mesh_types();
|
|
85873
|
+
function resolveDelegatedWorkerAutoApproveModeForLaunch(input) {
|
|
85874
|
+
const settings = input.settings;
|
|
85875
|
+
const envelopeMode = typeof settings?.autoApproveMode === "string" && settings.autoApproveMode.trim() ? settings.autoApproveMode.trim() : void 0;
|
|
85876
|
+
if (settings?.launchedByCoordinator !== true) {
|
|
85877
|
+
return { autoApproveMode: envelopeMode, changed: false, source: "not_delegated" };
|
|
85878
|
+
}
|
|
85879
|
+
if (settings.autoApprove === false) {
|
|
85880
|
+
return { autoApproveMode: void 0, changed: false, source: "enable_gate_off" };
|
|
85881
|
+
}
|
|
85882
|
+
const providerType = typeof input.providerType === "string" ? input.providerType.trim() : "";
|
|
85883
|
+
if (!providerType || !input.provider?.autoApproveModes) {
|
|
85884
|
+
return { autoApproveMode: envelopeMode, changed: false, source: "no_provider_modes" };
|
|
85885
|
+
}
|
|
85886
|
+
const workspace = typeof input.workspace === "string" ? input.workspace.trim() : "";
|
|
85887
|
+
if (!workspace) {
|
|
85888
|
+
return { autoApproveMode: envelopeMode, changed: false, source: "no_repo_config" };
|
|
85889
|
+
}
|
|
85890
|
+
let repoConfig = null;
|
|
85891
|
+
try {
|
|
85892
|
+
const result = loadRepoMeshJsonConfig(workspace);
|
|
85893
|
+
const fromThisWorkspace = result.sourceType === "repo_file" && typeof result.path === "string" && isPathInsideWorkspace(result.path, workspace);
|
|
85894
|
+
repoConfig = fromThisWorkspace && result.config ? result.config : null;
|
|
85895
|
+
} catch {
|
|
85896
|
+
repoConfig = null;
|
|
85897
|
+
}
|
|
85898
|
+
const requestedMode = repoConfig?.providerDefaults?.autoApproveModes?.[providerType];
|
|
85899
|
+
const requestedModeId = typeof requestedMode === "string" && requestedMode.trim() ? requestedMode.trim() : "";
|
|
85900
|
+
if (!requestedModeId) {
|
|
85901
|
+
return { autoApproveMode: envelopeMode, changed: false, source: "no_repo_config" };
|
|
85902
|
+
}
|
|
85903
|
+
const dangerousAllowed = settings.delegatedWorkerDangerousModeAllow === true;
|
|
85904
|
+
const resolved = resolveDelegatedWorkerAutoApprove(
|
|
85905
|
+
{ delegatedWorkerAutoApprove: true, delegatedWorkerDangerousModeAllow: dangerousAllowed },
|
|
85906
|
+
void 0,
|
|
85907
|
+
input.provider,
|
|
85908
|
+
repoConfig,
|
|
85909
|
+
providerType
|
|
85910
|
+
);
|
|
85911
|
+
if (typeof resolved !== "string") {
|
|
85912
|
+
return { autoApproveMode: envelopeMode, changed: false, source: "no_repo_config" };
|
|
85913
|
+
}
|
|
85914
|
+
return {
|
|
85915
|
+
autoApproveMode: resolved,
|
|
85916
|
+
changed: resolved !== envelopeMode,
|
|
85917
|
+
source: "worker_repo_file"
|
|
85918
|
+
};
|
|
85919
|
+
}
|
|
85920
|
+
function isPathInsideWorkspace(configPath, workspace) {
|
|
85921
|
+
const normalize4 = (value) => value.replace(/[\\/]+$/, "");
|
|
85922
|
+
const ws = normalize4(workspace);
|
|
85923
|
+
if (!ws) return false;
|
|
85924
|
+
const separatorAgnostic = (value) => value.replace(/\\/g, "/");
|
|
85925
|
+
const normalizedPath = separatorAgnostic(configPath);
|
|
85926
|
+
const normalizedWs = separatorAgnostic(ws);
|
|
85927
|
+
return normalizedPath === normalizedWs || normalizedPath.startsWith(`${normalizedWs}/`);
|
|
85928
|
+
}
|
|
85929
|
+
function logDelegatedWorkerModeDelivery(resolution, context) {
|
|
85930
|
+
if (resolution.source !== "worker_repo_file" && resolution.source !== "no_repo_config") return;
|
|
85931
|
+
const node = context.meshNodeId || "unknown-node";
|
|
85932
|
+
const workspace = context.workspace || "unknown-workspace";
|
|
85933
|
+
const provider = context.providerType || "unknown-provider";
|
|
85934
|
+
if (resolution.source === "worker_repo_file" && resolution.changed) {
|
|
85935
|
+
LOG2.info(
|
|
85936
|
+
"MeshWorker",
|
|
85937
|
+
`auto-approve mode re-resolved from worker repo config: node=${node} workspace=${workspace} provider=${provider} coordinatorMode=${context.envelopeMode ?? "(none)"} workerMode=${resolution.autoApproveMode}`
|
|
85938
|
+
);
|
|
85939
|
+
return;
|
|
85940
|
+
}
|
|
85941
|
+
if (resolution.source === "no_repo_config" && context.envelopeMode) {
|
|
85942
|
+
LOG2.warn(
|
|
85943
|
+
"MeshWorker",
|
|
85944
|
+
`auto-approve mode NOT confirmed by worker repo config (keeping coordinator value): node=${node} workspace=${workspace} provider=${provider} mode=${context.envelopeMode} \u2014 no readable .adhdev/mesh.json in this workspace`
|
|
85945
|
+
);
|
|
85946
|
+
}
|
|
85947
|
+
}
|
|
85849
85948
|
init_summary_metadata();
|
|
85850
85949
|
var os19 = __toESM2(require("os"));
|
|
85851
85950
|
var crypto5 = __toESM2(require("crypto"));
|
|
@@ -95198,7 +95297,29 @@ Run 'adhdev doctor' for detailed diagnostics.`
|
|
|
95198
95297
|
if (!cliType) throw new Error("cliType required");
|
|
95199
95298
|
const providerType = this.providerLoader.resolveAlias(cliType);
|
|
95200
95299
|
const provLookup = this.providerLoader.getMeta(providerType);
|
|
95201
|
-
|
|
95300
|
+
let settingsOverride = args?.settings && typeof args.settings === "object" ? args.settings : void 0;
|
|
95301
|
+
if (settingsOverride?.launchedByCoordinator === true) {
|
|
95302
|
+
const envelopeMode = typeof settingsOverride.autoApproveMode === "string" ? settingsOverride.autoApproveMode : void 0;
|
|
95303
|
+
const modeResolution = resolveDelegatedWorkerAutoApproveModeForLaunch({
|
|
95304
|
+
workspace: dir,
|
|
95305
|
+
providerType,
|
|
95306
|
+
provider: provLookup,
|
|
95307
|
+
settings: settingsOverride
|
|
95308
|
+
});
|
|
95309
|
+
logDelegatedWorkerModeDelivery(modeResolution, {
|
|
95310
|
+
workspace: dir,
|
|
95311
|
+
providerType,
|
|
95312
|
+
meshNodeId: typeof settingsOverride.meshNodeId === "string" ? settingsOverride.meshNodeId : void 0,
|
|
95313
|
+
envelopeMode
|
|
95314
|
+
});
|
|
95315
|
+
if (modeResolution.changed && modeResolution.autoApproveMode) {
|
|
95316
|
+
settingsOverride = {
|
|
95317
|
+
...settingsOverride,
|
|
95318
|
+
autoApproveMode: modeResolution.autoApproveMode,
|
|
95319
|
+
autoApprove: void 0
|
|
95320
|
+
};
|
|
95321
|
+
}
|
|
95322
|
+
}
|
|
95202
95323
|
const delegatedLaunch = settingsOverride?.launchedByCoordinator === true ? buildCoordinatorDelegatedCliLaunchOptions({
|
|
95203
95324
|
cliType,
|
|
95204
95325
|
workspace: dir,
|