@integrity-labs/agt-cli 0.28.830 → 0.28.832
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 +5 -5
- package/dist/{chunk-4ZPOP7EW.js → chunk-DUOFKTAD.js} +5 -1
- package/dist/{chunk-4ZPOP7EW.js.map → chunk-DUOFKTAD.js.map} +1 -1
- package/dist/{chunk-NGIFEWP4.js → chunk-LTTFPBML.js} +61 -9
- package/dist/{chunk-NGIFEWP4.js.map → chunk-LTTFPBML.js.map} +1 -1
- package/dist/{chunk-N4QVPPYS.js → chunk-W4KAZQBS.js} +2 -2
- package/dist/{claude-pair-runtime-PUWAIK73.js → claude-pair-runtime-A52UZQ6V.js} +2 -2
- package/dist/lib/manager-worker.js +38 -13
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/direct-chat-channel.js +53 -3
- package/dist/mcp/slack-channel.js +80 -3
- package/dist/mcp/telegram-channel.js +72 -3
- package/dist/{persistent-session-W23U7GQU.js → persistent-session-N6FIS7UY.js} +3 -3
- package/dist/{responsiveness-probe-IRQKIEBW.js → responsiveness-probe-LWYJM2DK.js} +3 -3
- package/dist/{session-auth-dead-VDDXVJTX.js → session-auth-dead-LIPEYPBX.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-N4QVPPYS.js.map → chunk-W4KAZQBS.js.map} +0 -0
- /package/dist/{claude-pair-runtime-PUWAIK73.js.map → claude-pair-runtime-A52UZQ6V.js.map} +0 -0
- /package/dist/{persistent-session-W23U7GQU.js.map → persistent-session-N6FIS7UY.js.map} +0 -0
- /package/dist/{responsiveness-probe-IRQKIEBW.js.map → responsiveness-probe-LWYJM2DK.js.map} +0 -0
- /package/dist/{session-auth-dead-VDDXVJTX.js.map → session-auth-dead-LIPEYPBX.js.map} +0 -0
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
rotateDailySession,
|
|
19
19
|
sessionFileExists,
|
|
20
20
|
todayLocalIso
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-DUOFKTAD.js";
|
|
22
22
|
import {
|
|
23
23
|
reapOrphanChannelMcps
|
|
24
24
|
} from "./chunk-XWVM4KPK.js";
|
|
@@ -5326,4 +5326,4 @@ export {
|
|
|
5326
5326
|
stopAllSessionsAndWait,
|
|
5327
5327
|
getProjectDir
|
|
5328
5328
|
};
|
|
5329
|
-
//# sourceMappingURL=chunk-
|
|
5329
|
+
//# sourceMappingURL=chunk-W4KAZQBS.js.map
|
|
@@ -100,7 +100,7 @@ async function spawnPairSession(session) {
|
|
|
100
100
|
return { ok: true };
|
|
101
101
|
} catch {
|
|
102
102
|
}
|
|
103
|
-
const { resolveClaudeBinary } = await import("./persistent-session-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-N6FIS7UY.js");
|
|
104
104
|
const claudeBin = resolveClaudeBinary();
|
|
105
105
|
const pairEnv = {
|
|
106
106
|
...process.env,
|
|
@@ -373,4 +373,4 @@ export {
|
|
|
373
373
|
startClaudePair,
|
|
374
374
|
submitClaudePairCode
|
|
375
375
|
};
|
|
376
|
-
//# sourceMappingURL=claude-pair-runtime-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-A52UZQ6V.js.map
|
|
@@ -60,7 +60,7 @@ import {
|
|
|
60
60
|
safeWriteJsonAtomic,
|
|
61
61
|
setConfigHash,
|
|
62
62
|
tripClass
|
|
63
|
-
} from "../chunk-
|
|
63
|
+
} from "../chunk-LTTFPBML.js";
|
|
64
64
|
import {
|
|
65
65
|
getProjectDir as getProjectDir2,
|
|
66
66
|
getReadyTasks,
|
|
@@ -126,7 +126,7 @@ import {
|
|
|
126
126
|
takeZombieDetection,
|
|
127
127
|
toOpencodeModel,
|
|
128
128
|
writeEgressAllowlist
|
|
129
|
-
} from "../chunk-
|
|
129
|
+
} from "../chunk-W4KAZQBS.js";
|
|
130
130
|
import {
|
|
131
131
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
132
132
|
AnchorSessionClient,
|
|
@@ -221,7 +221,7 @@ import {
|
|
|
221
221
|
subagentActivityAgeSeconds,
|
|
222
222
|
sumTranscriptUsageInWindow,
|
|
223
223
|
transcriptActivityAgeSeconds
|
|
224
|
-
} from "../chunk-
|
|
224
|
+
} from "../chunk-DUOFKTAD.js";
|
|
225
225
|
import {
|
|
226
226
|
reapOrphanChannelMcps
|
|
227
227
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -12319,6 +12319,31 @@ function recordRestartForBreaker(codeName, reason) {
|
|
|
12319
12319
|
});
|
|
12320
12320
|
maybeReportPendingSuppression(codeName);
|
|
12321
12321
|
}
|
|
12322
|
+
if (result.operatorCommandLoop) {
|
|
12323
|
+
const { count, windowMs, reason: loopReason } = result.operatorCommandLoop;
|
|
12324
|
+
const windowMins = Math.round(windowMs / 6e4);
|
|
12325
|
+
log(
|
|
12326
|
+
`[restart-breaker] agent=${codeName} OPERATOR-RESTART LOOP: ${count} '${loopReason}' restarts in ${windowMins}m. A person keeps restarting this agent, so the AGENT is likely unhealthy \u2014 the operator is not. The agent is deliberately NOT paused (ENG-10066), because pausing the agent somebody is recovering is how razorclaw-sales stayed down for 14h.`
|
|
12327
|
+
);
|
|
12328
|
+
queueSuppressionReport(codeName, "operator_command_loop", {
|
|
12329
|
+
trip_class: "operator-command",
|
|
12330
|
+
// No integration is involved in a `/restart`; the route renders an empty
|
|
12331
|
+
// key as "an unattributed integration" rather than inventing one.
|
|
12332
|
+
bucket_key: "",
|
|
12333
|
+
bucket_count: count,
|
|
12334
|
+
// Reusing the scheduled_* wire fields rather than forking a parallel pair:
|
|
12335
|
+
// they carry "the loop's window" and "the loop's dominant reason", which is
|
|
12336
|
+
// exactly what these are, and a second pair would double the parsing on the
|
|
12337
|
+
// route for no added meaning.
|
|
12338
|
+
scheduled_window_ms: windowMs,
|
|
12339
|
+
scheduled_reason: loopReason,
|
|
12340
|
+
// Not applicable — nothing to do with the agent's age or the new-agent
|
|
12341
|
+
// grace. Null rather than 0, which would read as "brand new" (ENG-8679 AC4).
|
|
12342
|
+
agent_age_ms: null,
|
|
12343
|
+
grace_expires_at: null
|
|
12344
|
+
});
|
|
12345
|
+
maybeReportPendingSuppression(codeName);
|
|
12346
|
+
}
|
|
12322
12347
|
if (!result.tripped || !result.trip) {
|
|
12323
12348
|
if (isProvisioningReloadReason(reason) && result.maxProvisioningBucket >= RESTART_BREAKER_PROVISIONING_MAX) {
|
|
12324
12349
|
const culprit = result.maxProvisioningBucketKey ? ` [${result.maxProvisioningBucketKey}]` : "";
|
|
@@ -12928,7 +12953,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
12928
12953
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
12929
12954
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
12930
12955
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
12931
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
12956
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-LWYJM2DK.js");
|
|
12932
12957
|
const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
|
|
12933
12958
|
if (newest === null) return null;
|
|
12934
12959
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -13596,7 +13621,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13596
13621
|
var lastVersionCheckAt = 0;
|
|
13597
13622
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13598
13623
|
var lastResponsivenessProbeAt = 0;
|
|
13599
|
-
var agtCliVersion = true ? "0.28.
|
|
13624
|
+
var agtCliVersion = true ? "0.28.832" : "dev";
|
|
13600
13625
|
function resolveBrewPath(execFileSync2) {
|
|
13601
13626
|
try {
|
|
13602
13627
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -15186,7 +15211,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
15186
15211
|
if (codeNames.length === 0) return;
|
|
15187
15212
|
void (async () => {
|
|
15188
15213
|
try {
|
|
15189
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15214
|
+
const { collectDiagnostics } = await import("../persistent-session-N6FIS7UY.js");
|
|
15190
15215
|
await api.post("/host/heartbeat", {
|
|
15191
15216
|
host_id: hostId,
|
|
15192
15217
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -15328,7 +15353,7 @@ async function pollCycleInner() {
|
|
|
15328
15353
|
}
|
|
15329
15354
|
try {
|
|
15330
15355
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
15331
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15356
|
+
const { collectDiagnostics } = await import("../persistent-session-N6FIS7UY.js");
|
|
15332
15357
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
15333
15358
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
|
|
15334
15359
|
let tailscaleHostname;
|
|
@@ -15497,7 +15522,7 @@ async function pollCycleInner() {
|
|
|
15497
15522
|
collectPanelessActivityProbes,
|
|
15498
15523
|
getResponsivenessIntervalMs,
|
|
15499
15524
|
occupancyQualificationClassifications
|
|
15500
|
-
} = await import("../responsiveness-probe-
|
|
15525
|
+
} = await import("../responsiveness-probe-LWYJM2DK.js");
|
|
15501
15526
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
15502
15527
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
15503
15528
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -15614,7 +15639,7 @@ async function pollCycleInner() {
|
|
|
15614
15639
|
collectResponsivenessProbes,
|
|
15615
15640
|
livePendingInboundOldestAgeSeconds,
|
|
15616
15641
|
parkPendingInbound
|
|
15617
|
-
} = await import("../responsiveness-probe-
|
|
15642
|
+
} = await import("../responsiveness-probe-LWYJM2DK.js");
|
|
15618
15643
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
15619
15644
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
15620
15645
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -15770,7 +15795,7 @@ async function pollCycleInner() {
|
|
|
15770
15795
|
}
|
|
15771
15796
|
try {
|
|
15772
15797
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
15773
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
15798
|
+
const { probeSessionAuth } = await import("../session-auth-dead-LIPEYPBX.js");
|
|
15774
15799
|
const observations = [];
|
|
15775
15800
|
const pendingCacheCommits = [];
|
|
15776
15801
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -20003,7 +20028,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20003
20028
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
20004
20029
|
void (async () => {
|
|
20005
20030
|
try {
|
|
20006
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20031
|
+
const { collectDiagnostics } = await import("../persistent-session-N6FIS7UY.js");
|
|
20007
20032
|
await api.post("/host/heartbeat", {
|
|
20008
20033
|
host_id: hostId,
|
|
20009
20034
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20049,7 +20074,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
20049
20074
|
}
|
|
20050
20075
|
try {
|
|
20051
20076
|
const hostId = await getHostId();
|
|
20052
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20077
|
+
const { collectDiagnostics } = await import("../persistent-session-N6FIS7UY.js");
|
|
20053
20078
|
await api.post("/host/heartbeat", {
|
|
20054
20079
|
host_id: hostId,
|
|
20055
20080
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20685,7 +20710,7 @@ async function processClaudePairSessions(agents) {
|
|
|
20685
20710
|
killPairSession,
|
|
20686
20711
|
pairTmuxSession,
|
|
20687
20712
|
finalizeClaudePairOnboarding
|
|
20688
|
-
} = await import("../claude-pair-runtime-
|
|
20713
|
+
} = await import("../claude-pair-runtime-A52UZQ6V.js");
|
|
20689
20714
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
20690
20715
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
20691
20716
|
const killed = await killPairSession(pairTmuxSession(pairId));
|