@integrity-labs/agt-cli 0.28.269 → 0.28.271
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 +4 -4
- package/dist/{chunk-ZH3CEX2A.js → chunk-3SBG4IR5.js} +3 -3
- package/dist/{chunk-JW6CWBNF.js → chunk-5TL5THQE.js} +36 -4
- package/dist/{chunk-JW6CWBNF.js.map → chunk-5TL5THQE.js.map} +1 -1
- package/dist/{claude-pair-runtime-CXM2IH7U.js → claude-pair-runtime-KOEEK5LD.js} +2 -2
- package/dist/lib/manager-worker.js +30 -15
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/origami.js +16 -3
- package/dist/mcp/telegram-channel.js +262 -23
- package/dist/{persistent-session-ZQDTWV3D.js → persistent-session-HOILVE3Q.js} +2 -2
- package/dist/{responsiveness-probe-74SDDDGN.js → responsiveness-probe-DCUO6JJQ.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-ZH3CEX2A.js.map → chunk-3SBG4IR5.js.map} +0 -0
- /package/dist/{claude-pair-runtime-CXM2IH7U.js.map → claude-pair-runtime-KOEEK5LD.js.map} +0 -0
- /package/dist/{persistent-session-ZQDTWV3D.js.map → persistent-session-HOILVE3Q.js.map} +0 -0
- /package/dist/{responsiveness-probe-74SDDDGN.js.map → responsiveness-probe-DCUO6JJQ.js.map} +0 -0
|
@@ -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-HOILVE3Q.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-KOEEK5LD.js.map
|
|
@@ -38,7 +38,7 @@ import {
|
|
|
38
38
|
requireHost,
|
|
39
39
|
safeWriteJsonAtomic,
|
|
40
40
|
setConfigHash
|
|
41
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-3SBG4IR5.js";
|
|
42
42
|
import {
|
|
43
43
|
getProjectDir as getProjectDir2,
|
|
44
44
|
getReadyTasks,
|
|
@@ -93,6 +93,7 @@ import {
|
|
|
93
93
|
isVacuousDeliverReason,
|
|
94
94
|
isolationMode,
|
|
95
95
|
laneTagFragment,
|
|
96
|
+
minutesSinceLocalMidnight,
|
|
96
97
|
paneLogPath,
|
|
97
98
|
parseDeliverAssertion,
|
|
98
99
|
parseDeliveryTarget,
|
|
@@ -123,7 +124,7 @@ import {
|
|
|
123
124
|
takeZombieDetection,
|
|
124
125
|
transcriptActivityAgeSeconds,
|
|
125
126
|
writeEgressAllowlist
|
|
126
|
-
} from "../chunk-
|
|
127
|
+
} from "../chunk-5TL5THQE.js";
|
|
127
128
|
import {
|
|
128
129
|
reapOrphanChannelMcps
|
|
129
130
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -6700,7 +6701,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
6700
6701
|
var lastVersionCheckAt = 0;
|
|
6701
6702
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
6702
6703
|
var lastResponsivenessProbeAt = 0;
|
|
6703
|
-
var agtCliVersion = true ? "0.28.
|
|
6704
|
+
var agtCliVersion = true ? "0.28.271" : "dev";
|
|
6704
6705
|
function resolveBrewPath(execFileSync2) {
|
|
6705
6706
|
try {
|
|
6706
6707
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -7550,7 +7551,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
7550
7551
|
if (codeNames.length === 0) return;
|
|
7551
7552
|
void (async () => {
|
|
7552
7553
|
try {
|
|
7553
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7554
|
+
const { collectDiagnostics } = await import("../persistent-session-HOILVE3Q.js");
|
|
7554
7555
|
await api.post("/host/heartbeat", {
|
|
7555
7556
|
host_id: hostId,
|
|
7556
7557
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -7648,7 +7649,7 @@ async function pollCycle() {
|
|
|
7648
7649
|
}
|
|
7649
7650
|
try {
|
|
7650
7651
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
7651
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7652
|
+
const { collectDiagnostics } = await import("../persistent-session-HOILVE3Q.js");
|
|
7652
7653
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
7653
7654
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
7654
7655
|
let tailscaleHostname;
|
|
@@ -7796,7 +7797,7 @@ async function pollCycle() {
|
|
|
7796
7797
|
const {
|
|
7797
7798
|
collectResponsivenessProbes,
|
|
7798
7799
|
getResponsivenessIntervalMs
|
|
7799
|
-
} = await import("../responsiveness-probe-
|
|
7800
|
+
} = await import("../responsiveness-probe-DCUO6JJQ.js");
|
|
7800
7801
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
7801
7802
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
7802
7803
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -7828,7 +7829,7 @@ async function pollCycle() {
|
|
|
7828
7829
|
collectResponsivenessProbes,
|
|
7829
7830
|
livePendingInboundOldestAgeSeconds,
|
|
7830
7831
|
parkPendingInbound
|
|
7831
|
-
} = await import("../responsiveness-probe-
|
|
7832
|
+
} = await import("../responsiveness-probe-DCUO6JJQ.js");
|
|
7832
7833
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
7833
7834
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
7834
7835
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -10164,6 +10165,7 @@ In progress for ${age} minutes \u2014 auto-failed`).catch(() => {
|
|
|
10164
10165
|
}
|
|
10165
10166
|
var lastMcpFailedBannerCount = /* @__PURE__ */ new Map();
|
|
10166
10167
|
var lastModelApiErrorSig = /* @__PURE__ */ new Map();
|
|
10168
|
+
var DAY_ROLLOVER_FORCE_GRACE_MIN = 30;
|
|
10167
10169
|
var persistentSessionStuckTracker = new PersistentSessionStuckTracker();
|
|
10168
10170
|
var claudeAuthTupleBySession = /* @__PURE__ */ new Map();
|
|
10169
10171
|
var egressAllowlistBySession = /* @__PURE__ */ new Map();
|
|
@@ -10278,6 +10280,7 @@ async function ensurePersistentSession(agent, tasks, boardItems, refreshData) {
|
|
|
10278
10280
|
}
|
|
10279
10281
|
let restartTrigger = null;
|
|
10280
10282
|
let dayRolloverDeferred = false;
|
|
10283
|
+
let dayRolloverForced = false;
|
|
10281
10284
|
const currentAuthTuple = openRouterForAgent ? `openrouter:${openRouterForAgent.fingerprint ?? openRouterForAgent.model}` : `${claudeAuthMode}:${anthropicApiKeyFingerprint ?? "none"}`;
|
|
10282
10285
|
const recordedAuthTuple = claudeAuthTupleBySession.get(codeName);
|
|
10283
10286
|
if (recordedAuthTuple && recordedAuthTuple !== currentAuthTuple && isSessionHealthy(codeName)) {
|
|
@@ -10298,10 +10301,21 @@ async function ensurePersistentSession(agent, tasks, boardItems, refreshData) {
|
|
|
10298
10301
|
agentState.persistentSessionAgents.delete(codeName);
|
|
10299
10302
|
restartTrigger = "day-rollover";
|
|
10300
10303
|
} else {
|
|
10301
|
-
|
|
10302
|
-
|
|
10303
|
-
|
|
10304
|
-
|
|
10304
|
+
const overdueMin = minutesSinceLocalMidnight(/* @__PURE__ */ new Date(), agentTimezone);
|
|
10305
|
+
if (overdueMin >= DAY_ROLLOVER_FORCE_GRACE_MIN) {
|
|
10306
|
+
log(
|
|
10307
|
+
`[persistent-session] Day rollover FORCED for '${codeName}' (yesterday=${current.date}) \u2014 agent busy-blocked ${overdueMin}m past the day boundary (grace ${DAY_ROLLOVER_FORCE_GRACE_MIN}m), restarting anyway to reset context`
|
|
10308
|
+
);
|
|
10309
|
+
stopPersistentSessionAndForgetMcpBaseline(codeName, "day-rollover");
|
|
10310
|
+
agentState.persistentSessionAgents.delete(codeName);
|
|
10311
|
+
restartTrigger = "day-rollover";
|
|
10312
|
+
dayRolloverForced = true;
|
|
10313
|
+
} else {
|
|
10314
|
+
log(
|
|
10315
|
+
`[persistent-session] Day rollover for '${codeName}' deferred \u2014 agent still active on session ${current.sessionId} (${overdueMin}m past boundary, will force at ${DAY_ROLLOVER_FORCE_GRACE_MIN}m)`
|
|
10316
|
+
);
|
|
10317
|
+
dayRolloverDeferred = true;
|
|
10318
|
+
}
|
|
10305
10319
|
}
|
|
10306
10320
|
}
|
|
10307
10321
|
}
|
|
@@ -10512,7 +10526,7 @@ ${truncateForLog(ctx.tail)}` : `; pane_tail_hash=sha256:${createHash11("sha256")
|
|
|
10512
10526
|
break;
|
|
10513
10527
|
}
|
|
10514
10528
|
}
|
|
10515
|
-
const finalDecision = restartTrigger === "auth-tuple" ? "restart-pending" : restartTrigger === "day-rollover" ? "day-rollover-restart" : dayRolloverDeferred ? "day-rollover-deferred" : "healthy";
|
|
10529
|
+
const finalDecision = restartTrigger === "auth-tuple" ? "restart-pending" : restartTrigger === "day-rollover" ? dayRolloverForced ? "day-rollover-forced" : "day-rollover-restart" : dayRolloverDeferred ? "day-rollover-deferred" : "healthy";
|
|
10516
10530
|
return {
|
|
10517
10531
|
decision: finalDecision,
|
|
10518
10532
|
spawnAttempted: false,
|
|
@@ -10686,7 +10700,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
10686
10700
|
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}`));
|
|
10687
10701
|
void (async () => {
|
|
10688
10702
|
try {
|
|
10689
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10703
|
+
const { collectDiagnostics } = await import("../persistent-session-HOILVE3Q.js");
|
|
10690
10704
|
await api.post("/host/heartbeat", {
|
|
10691
10705
|
host_id: hostId,
|
|
10692
10706
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -10736,7 +10750,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
10736
10750
|
}
|
|
10737
10751
|
try {
|
|
10738
10752
|
const hostId = await getHostId();
|
|
10739
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10753
|
+
const { collectDiagnostics } = await import("../persistent-session-HOILVE3Q.js");
|
|
10740
10754
|
await api.post("/host/heartbeat", {
|
|
10741
10755
|
host_id: hostId,
|
|
10742
10756
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11127,7 +11141,7 @@ async function processClaudePairSessions(agents) {
|
|
|
11127
11141
|
killPairSession,
|
|
11128
11142
|
pairTmuxSession,
|
|
11129
11143
|
finalizeClaudePairOnboarding
|
|
11130
|
-
} = await import("../claude-pair-runtime-
|
|
11144
|
+
} = await import("../claude-pair-runtime-KOEEK5LD.js");
|
|
11131
11145
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
11132
11146
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
11133
11147
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -12011,6 +12025,7 @@ process.on("disconnect", () => {
|
|
|
12011
12025
|
});
|
|
12012
12026
|
export {
|
|
12013
12027
|
BACK_ONLINE_GREETING_GUIDANCE,
|
|
12028
|
+
DAY_ROLLOVER_FORCE_GRACE_MIN,
|
|
12014
12029
|
applyRestartAcks,
|
|
12015
12030
|
claudeCodeUpgradeMarkerPath,
|
|
12016
12031
|
claudeCodeUpgradeThrottled,
|