@adhdev/daemon-standalone 1.0.38-rc.1 → 1.0.38-rc.3
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 +119 -16
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/public/assets/{index-DRTvhQtV.js → index-B3IYwujn.js} +50 -50
- package/public/index.html +1 -1
package/dist/index.js
CHANGED
|
@@ -32731,7 +32731,7 @@ var require_dist3 = __commonJS({
|
|
|
32731
32731
|
}
|
|
32732
32732
|
return policy;
|
|
32733
32733
|
}
|
|
32734
|
-
function resolveDelegatedWorkerAutoApprove(meshPolicy, nodePolicy, provider, repoConfig, providerType) {
|
|
32734
|
+
function resolveDelegatedWorkerAutoApprove(meshPolicy, nodePolicy, provider, repoConfig, providerType, overrideModeId, overrideLegacyAutoApprove) {
|
|
32735
32735
|
let enabled = true;
|
|
32736
32736
|
if (typeof nodePolicy?.delegatedWorkerAutoApprove === "boolean") {
|
|
32737
32737
|
enabled = nodePolicy.delegatedWorkerAutoApprove;
|
|
@@ -32740,8 +32740,9 @@ var require_dist3 = __commonJS({
|
|
|
32740
32740
|
}
|
|
32741
32741
|
if (!enabled) return false;
|
|
32742
32742
|
const modes = provider?.autoApproveModes;
|
|
32743
|
-
if (!modes) return true;
|
|
32744
|
-
const
|
|
32743
|
+
if (!modes) return typeof overrideLegacyAutoApprove === "boolean" ? overrideLegacyAutoApprove : true;
|
|
32744
|
+
const overrideModeIdTrimmed = typeof overrideModeId === "string" ? overrideModeId.trim() : "";
|
|
32745
|
+
const requestedModeRaw = overrideModeIdTrimmed ? overrideModeIdTrimmed : typeof providerType === "string" ? repoConfig?.providerDefaults?.autoApproveModes?.[providerType.trim()] : void 0;
|
|
32745
32746
|
const requestedModeId = typeof requestedModeRaw === "string" && requestedModeRaw.trim() ? requestedModeRaw.trim() : "";
|
|
32746
32747
|
const requestedMode = requestedModeId ? modes.modes.find((mode) => mode.id === requestedModeId) : void 0;
|
|
32747
32748
|
const selectedMode = requestedMode ?? modes.modes.find((mode) => mode.id === modes.default);
|
|
@@ -32759,8 +32760,8 @@ var require_dist3 = __commonJS({
|
|
|
32759
32760
|
}
|
|
32760
32761
|
return meshPolicy?.delegatedWorkerDangerousModeAllow === true;
|
|
32761
32762
|
}
|
|
32762
|
-
function delegatedWorkerAutoApproveSettings(meshPolicy, nodePolicy, provider, repoConfig, providerType) {
|
|
32763
|
-
const resolved = resolveDelegatedWorkerAutoApprove(meshPolicy, nodePolicy, provider, repoConfig, providerType);
|
|
32763
|
+
function delegatedWorkerAutoApproveSettings(meshPolicy, nodePolicy, provider, repoConfig, providerType, overrideModeId, overrideLegacyAutoApprove) {
|
|
32764
|
+
const resolved = resolveDelegatedWorkerAutoApprove(meshPolicy, nodePolicy, provider, repoConfig, providerType, overrideModeId, overrideLegacyAutoApprove);
|
|
32764
32765
|
const delegatedWorkerDangerousModeAllow = resolveDelegatedWorkerDangerousModeAllow(meshPolicy, nodePolicy);
|
|
32765
32766
|
return typeof resolved === "string" ? { autoApprove: void 0, autoApproveMode: resolved, delegatedWorkerDangerousModeAllow } : { autoApprove: resolved, autoApproveMode: void 0, delegatedWorkerDangerousModeAllow };
|
|
32766
32767
|
}
|
|
@@ -33363,10 +33364,10 @@ var require_dist3 = __commonJS({
|
|
|
33363
33364
|
}
|
|
33364
33365
|
function getDaemonBuildInfo() {
|
|
33365
33366
|
if (cached2) return cached2;
|
|
33366
|
-
const commit = readInjected(true ? "
|
|
33367
|
-
const commitShort = readInjected(true ? "
|
|
33368
|
-
const version2 = readInjected(true ? "1.0.38-rc.
|
|
33369
|
-
const builtAt = readInjected(true ? "2026-08-
|
|
33367
|
+
const commit = readInjected(true ? "42fda6be970f1a699962d2f136848ae613684721" : void 0) ?? "unknown";
|
|
33368
|
+
const commitShort = readInjected(true ? "42fda6be" : void 0) ?? (commit !== "unknown" ? commit.slice(0, 7) : "unknown");
|
|
33369
|
+
const version2 = readInjected(true ? "1.0.38-rc.3" : void 0) ?? readInjected(typeof process !== "undefined" ? process.env?.ADHDEV_PKG_VERSION : void 0) ?? "unknown";
|
|
33370
|
+
const builtAt = readInjected(true ? "2026-08-06T08:48:30.352Z" : void 0);
|
|
33370
33371
|
cached2 = builtAt ? { commit, commitShort, version: version2, builtAt } : { commit, commitShort, version: version2 };
|
|
33371
33372
|
return cached2;
|
|
33372
33373
|
}
|
|
@@ -34624,7 +34625,7 @@ var require_dist3 = __commonJS({
|
|
|
34624
34625
|
}
|
|
34625
34626
|
});
|
|
34626
34627
|
function resolveBuildTrack(env2 = process.env) {
|
|
34627
|
-
const injected = true ? "" : void 0;
|
|
34628
|
+
const injected = true ? "preview" : void 0;
|
|
34628
34629
|
const stamped = typeof injected === "string" ? injected.trim() : "";
|
|
34629
34630
|
const raw = (stamped || (env2[BUILD_CHANNEL_ENV_VAR] ?? "").trim()).toLowerCase();
|
|
34630
34631
|
return raw === "preview" || raw === "next" ? "preview" : "stable";
|
|
@@ -34995,21 +34996,33 @@ var require_dist3 = __commonJS({
|
|
|
34995
34996
|
return { usedPercent: clampPercent(usedPercent), windowMinutes: windowMinutes2, resetsAt };
|
|
34996
34997
|
}
|
|
34997
34998
|
function quotaFailure(provider, status, error48, metadata) {
|
|
34999
|
+
const now = Date.now();
|
|
35000
|
+
const resolvedMetadata = metadata && metadata.failureKind && TRANSIENT_QUOTA_FAILURE_KINDS.has(metadata.failureKind) && metadata.retryAtMs === void 0 ? { ...metadata, retryAtMs: now + QUOTA_TRANSIENT_RETRY_DELAY_MS } : metadata;
|
|
34998
35001
|
return {
|
|
34999
35002
|
provider,
|
|
35000
35003
|
session: null,
|
|
35001
35004
|
weekly: null,
|
|
35002
|
-
updatedAt:
|
|
35005
|
+
updatedAt: now,
|
|
35003
35006
|
error: error48,
|
|
35004
35007
|
status,
|
|
35005
|
-
...
|
|
35008
|
+
...resolvedMetadata ? { metadata: resolvedMetadata } : {}
|
|
35006
35009
|
};
|
|
35007
35010
|
}
|
|
35011
|
+
var TRANSIENT_QUOTA_FAILURE_KINDS;
|
|
35012
|
+
var QUOTA_TRANSIENT_RETRY_DELAY_MS;
|
|
35008
35013
|
var SESSION_WINDOW_MINUTES;
|
|
35009
35014
|
var WEEKLY_WINDOW_MINUTES;
|
|
35010
35015
|
var init_types = __esm2({
|
|
35011
35016
|
"src/quota/types.ts"() {
|
|
35012
35017
|
"use strict";
|
|
35018
|
+
TRANSIENT_QUOTA_FAILURE_KINDS = /* @__PURE__ */ new Set([
|
|
35019
|
+
"expired-token",
|
|
35020
|
+
"unauthorized",
|
|
35021
|
+
"network",
|
|
35022
|
+
"server",
|
|
35023
|
+
"rate-limited"
|
|
35024
|
+
]);
|
|
35025
|
+
QUOTA_TRANSIENT_RETRY_DELAY_MS = 2 * 60 * 1e3;
|
|
35013
35026
|
SESSION_WINDOW_MINUTES = 300;
|
|
35014
35027
|
WEEKLY_WINDOW_MINUTES = 10080;
|
|
35015
35028
|
}
|
|
@@ -36514,6 +36527,7 @@ child.on('exit', () => process.exit(0));
|
|
|
36514
36527
|
if (!isEnabled(provider)) {
|
|
36515
36528
|
cache.delete(provider);
|
|
36516
36529
|
hydratedOnly.delete(provider);
|
|
36530
|
+
cancelFailureRetry(provider);
|
|
36517
36531
|
}
|
|
36518
36532
|
}
|
|
36519
36533
|
}
|
|
@@ -36536,9 +36550,54 @@ child.on('exit', () => process.exit(0));
|
|
|
36536
36550
|
}
|
|
36537
36551
|
})
|
|
36538
36552
|
);
|
|
36553
|
+
for (const { provider, fetch: fetch2 } of active) {
|
|
36554
|
+
updateFailureRetry(provider, fetch2, isEnabled);
|
|
36555
|
+
}
|
|
36539
36556
|
const snapshot = readQuotaCache();
|
|
36540
36557
|
if (snapshot) saveQuotaCache(snapshot);
|
|
36541
36558
|
}
|
|
36559
|
+
function cancelFailureRetry(provider) {
|
|
36560
|
+
const state = failureRetries.get(provider);
|
|
36561
|
+
if (state?.timer) clearTimeout(state.timer);
|
|
36562
|
+
failureRetries.delete(provider);
|
|
36563
|
+
}
|
|
36564
|
+
function isFailureRetryDue(provider, now = Date.now()) {
|
|
36565
|
+
const entry = cache.get(provider);
|
|
36566
|
+
if (!entry || entry.status === "ok") return false;
|
|
36567
|
+
const retryAtMs = entry.metadata?.retryAtMs;
|
|
36568
|
+
if (typeof retryAtMs !== "number" || retryAtMs > now) return false;
|
|
36569
|
+
return (failureRetries.get(provider)?.failures ?? 0) <= QUOTA_FAILURE_MAX_RETRIES;
|
|
36570
|
+
}
|
|
36571
|
+
function updateFailureRetry(provider, fetch2, isEnabled) {
|
|
36572
|
+
const entry = cache.get(provider);
|
|
36573
|
+
const retryAtMs = entry && entry.status !== "ok" ? entry.metadata?.retryAtMs : void 0;
|
|
36574
|
+
if (typeof retryAtMs !== "number") {
|
|
36575
|
+
cancelFailureRetry(provider);
|
|
36576
|
+
return;
|
|
36577
|
+
}
|
|
36578
|
+
const previous = failureRetries.get(provider);
|
|
36579
|
+
if (previous?.timer) clearTimeout(previous.timer);
|
|
36580
|
+
const failures = (previous?.failures ?? 0) + 1;
|
|
36581
|
+
if (failures > QUOTA_FAILURE_MAX_RETRIES) {
|
|
36582
|
+
failureRetries.set(provider, { failures, timer: null });
|
|
36583
|
+
LOG2.info("Quota", `${provider}: transient failure persists after ${QUOTA_FAILURE_MAX_RETRIES} retries \u2014 back to the normal refresh cadence`);
|
|
36584
|
+
return;
|
|
36585
|
+
}
|
|
36586
|
+
const backoffMs = Math.min(
|
|
36587
|
+
QUOTA_TRANSIENT_RETRY_DELAY_MS * 2 ** (failures - 1),
|
|
36588
|
+
QUOTA_REFRESH_INTERVAL_MS
|
|
36589
|
+
);
|
|
36590
|
+
const delayMs = Math.max(retryAtMs - Date.now(), backoffMs, 0);
|
|
36591
|
+
const timer = setTimeout(() => {
|
|
36592
|
+
const state = failureRetries.get(provider);
|
|
36593
|
+
if (state) state.timer = null;
|
|
36594
|
+
if (isEnabled && !isEnabled(provider)) return;
|
|
36595
|
+
void refreshQuotaCacheOnce([{ provider, fetch: fetch2 }], isEnabled).catch((e) => LOG2.warn("Quota", `${provider}: scheduled retry failed: ${e?.message || e}`));
|
|
36596
|
+
}, delayMs);
|
|
36597
|
+
if (typeof timer.unref === "function") timer.unref();
|
|
36598
|
+
failureRetries.set(provider, { failures, timer });
|
|
36599
|
+
LOG2.info("Quota", `${provider}: transient failure \u2014 retry scheduled in ${Math.round(delayMs / 1e3)}s (attempt ${failures}/${QUOTA_FAILURE_MAX_RETRIES})`);
|
|
36600
|
+
}
|
|
36542
36601
|
function hasRecentCliActivity(sessions, now = Date.now(), windowMs = QUOTA_ACTIVITY_WINDOW_MS) {
|
|
36543
36602
|
for (const session of sessions) {
|
|
36544
36603
|
if (typeof session?.status === "string" && WORKING_STATUSES.has(session.status)) return true;
|
|
@@ -36559,7 +36618,7 @@ child.on('exit', () => process.exit(0));
|
|
|
36559
36618
|
} catch {
|
|
36560
36619
|
active = false;
|
|
36561
36620
|
}
|
|
36562
|
-
const needsBackfill = options.isEnabled ? fetchers.some(({ provider }) => options.isEnabled(provider) && !cache.has(provider)) : false;
|
|
36621
|
+
const needsBackfill = options.isEnabled ? fetchers.some(({ provider }) => options.isEnabled(provider) && (!cache.has(provider) || isFailureRetryDue(provider))) : false;
|
|
36563
36622
|
if (!active && !needsBackfill) return;
|
|
36564
36623
|
running = true;
|
|
36565
36624
|
void refreshQuotaCacheOnce(fetchers, options.isEnabled).catch((e) => LOG2.warn("Quota", `Quota refresh tick error: ${e?.message || e}`)).finally(() => {
|
|
@@ -36588,18 +36647,47 @@ child.on('exit', () => process.exit(0));
|
|
|
36588
36647
|
bootRefreshInFlight = false;
|
|
36589
36648
|
});
|
|
36590
36649
|
}
|
|
36650
|
+
function setupQuotaEventRefresh(components, options = {}) {
|
|
36651
|
+
const isEnabled = components.providerLoader ? quotaProviderEnabledFromLoader(components.providerLoader) : void 0;
|
|
36652
|
+
const debounceMs = options.debounceMs ?? QUOTA_EVENT_REFRESH_DEBOUNCE_MS;
|
|
36653
|
+
const now = options.now ?? Date.now;
|
|
36654
|
+
const lastRefreshAt = /* @__PURE__ */ new Map();
|
|
36655
|
+
let stopped = false;
|
|
36656
|
+
components.instanceManager.onEvent((event) => {
|
|
36657
|
+
if (stopped) return;
|
|
36658
|
+
if (event.event !== "agent:generating_completed") return;
|
|
36659
|
+
const refresher = typeof event.providerType === "string" ? REFRESHERS.find(({ provider }) => provider === event.providerType) : void 0;
|
|
36660
|
+
if (!refresher) return;
|
|
36661
|
+
if (isEnabled && !isEnabled(refresher.provider)) return;
|
|
36662
|
+
const at = now();
|
|
36663
|
+
if (at - (lastRefreshAt.get(refresher.provider) ?? -Infinity) < debounceMs) return;
|
|
36664
|
+
lastRefreshAt.set(refresher.provider, at);
|
|
36665
|
+
void refreshQuotaCacheOnce([refresher], isEnabled).catch((e) => LOG2.warn("Quota", `Event-driven quota refresh failed: ${e?.message || e}`));
|
|
36666
|
+
});
|
|
36667
|
+
LOG2.info("Quota", `Event-driven quota refresh armed (agent:generating_completed, ${debounceMs}ms debounce)`);
|
|
36668
|
+
return {
|
|
36669
|
+
stop() {
|
|
36670
|
+
stopped = true;
|
|
36671
|
+
LOG2.info("Quota", "Event-driven quota refresh stopped");
|
|
36672
|
+
}
|
|
36673
|
+
};
|
|
36674
|
+
}
|
|
36591
36675
|
var QUOTA_REFRESH_INTERVAL_MS;
|
|
36592
36676
|
var QUOTA_ACTIVITY_WINDOW_MS;
|
|
36593
36677
|
var REFRESHERS;
|
|
36594
36678
|
var cache;
|
|
36595
36679
|
var hydratedOnly;
|
|
36596
36680
|
var hydrated;
|
|
36681
|
+
var QUOTA_FAILURE_MAX_RETRIES;
|
|
36682
|
+
var failureRetries;
|
|
36597
36683
|
var WORKING_STATUSES;
|
|
36598
36684
|
var bootRefreshInFlight;
|
|
36685
|
+
var QUOTA_EVENT_REFRESH_DEBOUNCE_MS;
|
|
36599
36686
|
var init_refresh = __esm2({
|
|
36600
36687
|
"src/quota/refresh.ts"() {
|
|
36601
36688
|
"use strict";
|
|
36602
36689
|
init_logger();
|
|
36690
|
+
init_types();
|
|
36603
36691
|
init_claude();
|
|
36604
36692
|
init_codex();
|
|
36605
36693
|
init_kimi();
|
|
@@ -36614,6 +36702,8 @@ child.on('exit', () => process.exit(0));
|
|
|
36614
36702
|
cache = /* @__PURE__ */ new Map();
|
|
36615
36703
|
hydratedOnly = /* @__PURE__ */ new Set();
|
|
36616
36704
|
hydrated = false;
|
|
36705
|
+
QUOTA_FAILURE_MAX_RETRIES = 4;
|
|
36706
|
+
failureRetries = /* @__PURE__ */ new Map();
|
|
36617
36707
|
WORKING_STATUSES = /* @__PURE__ */ new Set([
|
|
36618
36708
|
"generating",
|
|
36619
36709
|
"waiting_approval",
|
|
@@ -36625,6 +36715,7 @@ child.on('exit', () => process.exit(0));
|
|
|
36625
36715
|
"long_generating"
|
|
36626
36716
|
]);
|
|
36627
36717
|
bootRefreshInFlight = false;
|
|
36718
|
+
QUOTA_EVENT_REFRESH_DEBOUNCE_MS = 6e4;
|
|
36628
36719
|
}
|
|
36629
36720
|
});
|
|
36630
36721
|
var import_session_host_core3;
|
|
@@ -106642,6 +106733,8 @@ ${formatManifestValidationIssues2(validation2.issues)}`);
|
|
|
106642
106733
|
const extraSystemPrompt = typeof args?.extraSystemPrompt === "string" ? args.extraSystemPrompt.trim() : "";
|
|
106643
106734
|
const initialModel = typeof args?.initialModel === "string" && args.initialModel.trim() ? args.initialModel.trim() : null;
|
|
106644
106735
|
const initialThinkingLevel = typeof args?.initialThinkingLevel === "string" && args.initialThinkingLevel.trim() ? args.initialThinkingLevel.trim() : null;
|
|
106736
|
+
const autoApproveModeOverride = typeof args?.autoApproveMode === "string" && args.autoApproveMode.trim() ? args.autoApproveMode.trim() : null;
|
|
106737
|
+
const legacyAutoApproveOverride = typeof args?.autoApprove === "boolean" ? args.autoApprove : null;
|
|
106645
106738
|
if (!meshId) return { success: false, error: "meshId required" };
|
|
106646
106739
|
try {
|
|
106647
106740
|
const { buildCoordinatorSystemPrompt: buildCoordinatorSystemPrompt2 } = await Promise.resolve().then(() => (init_coordinator_prompt(), coordinator_prompt_exports));
|
|
@@ -106947,7 +107040,9 @@ ${ptyResult.output.slice(-2e3)}`);
|
|
|
106947
107040
|
coordinatorNode?.policy,
|
|
106948
107041
|
providerMeta,
|
|
106949
107042
|
repoMeshConfigLoad.config,
|
|
106950
|
-
cliType
|
|
107043
|
+
cliType,
|
|
107044
|
+
autoApproveModeOverride,
|
|
107045
|
+
legacyAutoApproveOverride
|
|
106951
107046
|
)
|
|
106952
107047
|
},
|
|
106953
107048
|
...initialModel ? { initialModel } : {},
|
|
@@ -107150,7 +107245,9 @@ ${ptyResult.output.slice(-2e3)}`);
|
|
|
107150
107245
|
coordinatorNode?.policy,
|
|
107151
107246
|
providerMeta,
|
|
107152
107247
|
repoMeshConfigLoad.config,
|
|
107153
|
-
cliType
|
|
107248
|
+
cliType,
|
|
107249
|
+
autoApproveModeOverride,
|
|
107250
|
+
legacyAutoApproveOverride
|
|
107154
107251
|
)
|
|
107155
107252
|
},
|
|
107156
107253
|
...initialModel ? { initialModel } : {},
|
|
@@ -121346,6 +121443,7 @@ data: ${JSON.stringify(msg.data)}
|
|
|
121346
121443
|
setupMeshEventForwarding(components);
|
|
121347
121444
|
components.meshReconcileLoop = setupMeshReconcileLoop(components);
|
|
121348
121445
|
components.quotaRefreshLoop = setupQuotaRefreshLoop(components);
|
|
121446
|
+
components.quotaEventRefresh = setupQuotaEventRefresh(components);
|
|
121349
121447
|
setImmediate(() => {
|
|
121350
121448
|
const isQuotaProviderEnabled = quotaProviderEnabledFromLoader(components.providerLoader);
|
|
121351
121449
|
try {
|
|
@@ -121382,7 +121480,8 @@ data: ${JSON.stringify(msg.data)}
|
|
|
121382
121480
|
instanceManager,
|
|
121383
121481
|
cdpManagers,
|
|
121384
121482
|
meshReconcileLoop,
|
|
121385
|
-
quotaRefreshLoop
|
|
121483
|
+
quotaRefreshLoop,
|
|
121484
|
+
quotaEventRefresh
|
|
121386
121485
|
} = components;
|
|
121387
121486
|
poller.stop();
|
|
121388
121487
|
cdpInitializer.stop();
|
|
@@ -121394,6 +121493,10 @@ data: ${JSON.stringify(msg.data)}
|
|
|
121394
121493
|
quotaRefreshLoop?.stop();
|
|
121395
121494
|
} catch {
|
|
121396
121495
|
}
|
|
121496
|
+
try {
|
|
121497
|
+
quotaEventRefresh?.stop();
|
|
121498
|
+
} catch {
|
|
121499
|
+
}
|
|
121397
121500
|
try {
|
|
121398
121501
|
if (agentStreamManager) {
|
|
121399
121502
|
await agentStreamManager.dispose(cdpManagers);
|