@integrity-labs/agt-cli 0.28.681 → 0.28.683
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/bin/agt.js +3 -3
- package/dist/{chunk-Q44TIWZN.js → chunk-WKYIIHJT.js} +2 -2
- package/dist/lib/manager-worker.js +57 -14
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/slack-channel.js +20 -7
- package/dist/{responsiveness-probe-MDL53OT2.js → responsiveness-probe-ZQQLBARV.js} +19 -1
- package/dist/responsiveness-probe-ZQQLBARV.js.map +1 -0
- package/package.json +1 -1
- package/dist/responsiveness-probe-MDL53OT2.js.map +0 -1
- /package/dist/{chunk-Q44TIWZN.js.map → chunk-WKYIIHJT.js.map} +0 -0
package/dist/bin/agt.js
CHANGED
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
success,
|
|
41
41
|
table,
|
|
42
42
|
warn
|
|
43
|
-
} from "../chunk-
|
|
43
|
+
} from "../chunk-WKYIIHJT.js";
|
|
44
44
|
import {
|
|
45
45
|
readDirectChatSessionState
|
|
46
46
|
} from "../chunk-ZKNKHAHX.js";
|
|
@@ -4909,7 +4909,7 @@ import { execFileSync, execSync } from "child_process";
|
|
|
4909
4909
|
import { existsSync as existsSync10, realpathSync as realpathSync2 } from "fs";
|
|
4910
4910
|
import chalk18 from "chalk";
|
|
4911
4911
|
import ora16 from "ora";
|
|
4912
|
-
var cliVersion = true ? "0.28.
|
|
4912
|
+
var cliVersion = true ? "0.28.683" : "dev";
|
|
4913
4913
|
async function fetchLatestVersion() {
|
|
4914
4914
|
const host2 = getHost();
|
|
4915
4915
|
if (!host2) return null;
|
|
@@ -6089,7 +6089,7 @@ function handleError(err) {
|
|
|
6089
6089
|
}
|
|
6090
6090
|
|
|
6091
6091
|
// src/bin/agt.ts
|
|
6092
|
-
var cliVersion2 = true ? "0.28.
|
|
6092
|
+
var cliVersion2 = true ? "0.28.683" : "dev";
|
|
6093
6093
|
var program = new Command();
|
|
6094
6094
|
program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
|
|
6095
6095
|
program.hook("preAction", async (thisCommand, actionCommand) => {
|
|
@@ -6489,7 +6489,7 @@ function exchangeFailureKind(err) {
|
|
|
6489
6489
|
}
|
|
6490
6490
|
|
|
6491
6491
|
// src/lib/api-client.ts
|
|
6492
|
-
var agtCliVersion = true ? "0.28.
|
|
6492
|
+
var agtCliVersion = true ? "0.28.683" : "dev";
|
|
6493
6493
|
var lastConfigHash = null;
|
|
6494
6494
|
function setConfigHash(hash) {
|
|
6495
6495
|
lastConfigHash = hash && hash.length > 0 ? hash : null;
|
|
@@ -10231,4 +10231,4 @@ export {
|
|
|
10231
10231
|
managerInstallSystemUnitCommand,
|
|
10232
10232
|
managerUninstallSystemUnitCommand
|
|
10233
10233
|
};
|
|
10234
|
-
//# sourceMappingURL=chunk-
|
|
10234
|
+
//# sourceMappingURL=chunk-WKYIIHJT.js.map
|
|
@@ -55,7 +55,7 @@ import {
|
|
|
55
55
|
setConfigHash,
|
|
56
56
|
setSecretFileTmpfsBacking,
|
|
57
57
|
tripClass
|
|
58
|
-
} from "../chunk-
|
|
58
|
+
} from "../chunk-WKYIIHJT.js";
|
|
59
59
|
import {
|
|
60
60
|
getProjectDir as getProjectDir2,
|
|
61
61
|
getReadyTasks,
|
|
@@ -2388,6 +2388,8 @@ function scopeToCurrentPaneEpoch(tail) {
|
|
|
2388
2388
|
}
|
|
2389
2389
|
var MIN_CHECK_INTERVAL_MS = 6e4;
|
|
2390
2390
|
var PANE_TAIL_LINES_FOR_BANNER = 5e3;
|
|
2391
|
+
var REAFFIRM_INTERVAL_MS = 15 * 6e4;
|
|
2392
|
+
var ABSENCE_CONFIRMATIONS = 30;
|
|
2391
2393
|
var state = /* @__PURE__ */ new Map();
|
|
2392
2394
|
async function maybeReportUsageBanner(args) {
|
|
2393
2395
|
const { api: api2, codeName, agentId, log: log2 } = args;
|
|
@@ -2408,21 +2410,61 @@ async function maybeReportUsageBanner(args) {
|
|
|
2408
2410
|
lastPct: existing?.lastPct ?? null,
|
|
2409
2411
|
lastWeekResetsAt: existing?.lastWeekResetsAt ?? null,
|
|
2410
2412
|
lastLimitScope: existing?.lastLimitScope ?? null,
|
|
2411
|
-
lastCheckedAt: nowMs
|
|
2413
|
+
lastCheckedAt: nowMs,
|
|
2414
|
+
lastPostedAt: existing?.lastPostedAt ?? null,
|
|
2415
|
+
consecutiveAbsences: existing?.consecutiveAbsences ?? 0
|
|
2412
2416
|
};
|
|
2413
|
-
|
|
2414
|
-
state.set(codeName, next);
|
|
2415
|
-
return;
|
|
2416
|
-
}
|
|
2417
|
-
const epochText = scopeToCurrentPaneEpoch(tail);
|
|
2418
|
-
const observation = parseUsageBanner(epochText, now);
|
|
2417
|
+
const observation = tail ? parseUsageBanner(scopeToCurrentPaneEpoch(tail), now) : null;
|
|
2419
2418
|
if (!observation) {
|
|
2419
|
+
if (!existing || existing.lastPct === null) {
|
|
2420
|
+
state.set(codeName, next);
|
|
2421
|
+
return;
|
|
2422
|
+
}
|
|
2423
|
+
next.consecutiveAbsences = (existing.consecutiveAbsences ?? 0) + 1;
|
|
2424
|
+
if (next.consecutiveAbsences < ABSENCE_CONFIRMATIONS) {
|
|
2425
|
+
state.set(codeName, next);
|
|
2426
|
+
return;
|
|
2427
|
+
}
|
|
2428
|
+
try {
|
|
2429
|
+
await api2.post("/host/usage-observations", {
|
|
2430
|
+
agent_id: agentId,
|
|
2431
|
+
// A cleared banner is not "0% used" - we do not know the number, we
|
|
2432
|
+
// know the CAP is gone. 0 is the only value the route accepts that the
|
|
2433
|
+
// server will classify below any threshold, and `source` below is what
|
|
2434
|
+
// makes the row self-describing rather than a fabricated measurement.
|
|
2435
|
+
observed_pct: 0,
|
|
2436
|
+
// Carry the last known window so the row stays coherent with the one it
|
|
2437
|
+
// supersedes. The server short-circuits on `source` before it reasons
|
|
2438
|
+
// about this instant, so it is provenance, not an input to the decision.
|
|
2439
|
+
week_resets_at: existing.lastWeekResetsAt ?? now.toISOString(),
|
|
2440
|
+
reset_precision: "unknown",
|
|
2441
|
+
limit_scope: existing.lastLimitScope ?? "unknown",
|
|
2442
|
+
// ENG-8631: the server keys its `banner_cleared` recovery off exactly
|
|
2443
|
+
// this string. `source` is a free-form text column, so this needs no
|
|
2444
|
+
// migration and an older API simply stores it and behaves as before.
|
|
2445
|
+
source: "pane_log_cleared"
|
|
2446
|
+
});
|
|
2447
|
+
log2(
|
|
2448
|
+
`[usage-banner] '${codeName}': cap banner absent for ${next.consecutiveAbsences} consecutive checks; posted a clearing observation`
|
|
2449
|
+
);
|
|
2450
|
+
next.lastPct = null;
|
|
2451
|
+
next.lastWeekResetsAt = null;
|
|
2452
|
+
next.lastLimitScope = null;
|
|
2453
|
+
next.consecutiveAbsences = 0;
|
|
2454
|
+
next.lastPostedAt = nowMs;
|
|
2455
|
+
} catch (err) {
|
|
2456
|
+
log2(
|
|
2457
|
+
`[usage-banner] clearing POST failed for '${codeName}': ${err.message}`
|
|
2458
|
+
);
|
|
2459
|
+
}
|
|
2420
2460
|
state.set(codeName, next);
|
|
2421
2461
|
return;
|
|
2422
2462
|
}
|
|
2423
|
-
|
|
2463
|
+
next.consecutiveAbsences = 0;
|
|
2424
2464
|
const weekResetsAtIso = observation.weekResetsAt.toISOString();
|
|
2425
|
-
|
|
2465
|
+
const unchanged = existing !== void 0 && existing.lastPct === observation.pct && existing.lastWeekResetsAt === weekResetsAtIso && existing.lastLimitScope === observation.limitScope;
|
|
2466
|
+
const dueToReaffirm = next.lastPostedAt === null || nowMs - next.lastPostedAt >= REAFFIRM_INTERVAL_MS;
|
|
2467
|
+
if (unchanged && !dueToReaffirm) {
|
|
2426
2468
|
state.set(codeName, next);
|
|
2427
2469
|
return;
|
|
2428
2470
|
}
|
|
@@ -2455,6 +2497,7 @@ async function maybeReportUsageBanner(args) {
|
|
|
2455
2497
|
next.lastPct = observation.pct;
|
|
2456
2498
|
next.lastWeekResetsAt = weekResetsAtIso;
|
|
2457
2499
|
next.lastLimitScope = observation.limitScope;
|
|
2500
|
+
next.lastPostedAt = nowMs;
|
|
2458
2501
|
state.set(codeName, next);
|
|
2459
2502
|
} catch (err) {
|
|
2460
2503
|
log2(`[usage-banner] POST /host/usage-observations failed for '${codeName}': ${err.message}`);
|
|
@@ -11712,7 +11755,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
11712
11755
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
11713
11756
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
11714
11757
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
11715
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
11758
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-ZQQLBARV.js");
|
|
11716
11759
|
const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
|
|
11717
11760
|
if (newest === null) return null;
|
|
11718
11761
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -12360,7 +12403,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
12360
12403
|
var lastVersionCheckAt = 0;
|
|
12361
12404
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
12362
12405
|
var lastResponsivenessProbeAt = 0;
|
|
12363
|
-
var agtCliVersion = true ? "0.28.
|
|
12406
|
+
var agtCliVersion = true ? "0.28.683" : "dev";
|
|
12364
12407
|
function resolveBrewPath(execFileSync3) {
|
|
12365
12408
|
try {
|
|
12366
12409
|
const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -14090,7 +14133,7 @@ async function pollCycleInner() {
|
|
|
14090
14133
|
collectPanelessActivityProbes,
|
|
14091
14134
|
getResponsivenessIntervalMs,
|
|
14092
14135
|
occupancyQualificationClassifications
|
|
14093
|
-
} = await import("../responsiveness-probe-
|
|
14136
|
+
} = await import("../responsiveness-probe-ZQQLBARV.js");
|
|
14094
14137
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
14095
14138
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
14096
14139
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -14200,7 +14243,7 @@ async function pollCycleInner() {
|
|
|
14200
14243
|
collectResponsivenessProbes,
|
|
14201
14244
|
livePendingInboundOldestAgeSeconds,
|
|
14202
14245
|
parkPendingInbound
|
|
14203
|
-
} = await import("../responsiveness-probe-
|
|
14246
|
+
} = await import("../responsiveness-probe-ZQQLBARV.js");
|
|
14204
14247
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
14205
14248
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
14206
14249
|
const liveAgents = agentState.persistentSessionAgents;
|