@integrity-labs/agt-cli 0.28.309 → 0.28.310
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-7QYIMU2Y.js → chunk-J7PAEPOU.js} +3 -3
- package/dist/{chunk-62LAROZ4.js → chunk-KJE5Y4GF.js} +22 -1
- package/dist/{chunk-62LAROZ4.js.map → chunk-KJE5Y4GF.js.map} +1 -1
- package/dist/{claude-pair-runtime-A67UBVDS.js → claude-pair-runtime-UQHJTVEE.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/slack-channel.js +31 -1
- package/dist/{persistent-session-QQXENK3Z.js → persistent-session-3XOQWQJE.js} +2 -2
- package/dist/{responsiveness-probe-33SVBGM7.js → responsiveness-probe-DUGIDPLT.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-7QYIMU2Y.js.map → chunk-J7PAEPOU.js.map} +0 -0
- /package/dist/{claude-pair-runtime-A67UBVDS.js.map → claude-pair-runtime-UQHJTVEE.js.map} +0 -0
- /package/dist/{persistent-session-QQXENK3Z.js.map → persistent-session-3XOQWQJE.js.map} +0 -0
- /package/dist/{responsiveness-probe-33SVBGM7.js.map → responsiveness-probe-DUGIDPLT.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-3XOQWQJE.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-UQHJTVEE.js.map
|
|
@@ -39,7 +39,7 @@ import {
|
|
|
39
39
|
requireHost,
|
|
40
40
|
safeWriteJsonAtomic,
|
|
41
41
|
setConfigHash
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-J7PAEPOU.js";
|
|
43
43
|
import {
|
|
44
44
|
getProjectDir as getProjectDir2,
|
|
45
45
|
getReadyTasks,
|
|
@@ -127,7 +127,7 @@ import {
|
|
|
127
127
|
takeZombieDetection,
|
|
128
128
|
transcriptActivityAgeSeconds,
|
|
129
129
|
writeEgressAllowlist
|
|
130
|
-
} from "../chunk-
|
|
130
|
+
} from "../chunk-KJE5Y4GF.js";
|
|
131
131
|
import {
|
|
132
132
|
reapOrphanChannelMcps
|
|
133
133
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -6997,7 +6997,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
6997
6997
|
var lastVersionCheckAt = 0;
|
|
6998
6998
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
6999
6999
|
var lastResponsivenessProbeAt = 0;
|
|
7000
|
-
var agtCliVersion = true ? "0.28.
|
|
7000
|
+
var agtCliVersion = true ? "0.28.310" : "dev";
|
|
7001
7001
|
function resolveBrewPath(execFileSync2) {
|
|
7002
7002
|
try {
|
|
7003
7003
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -7852,7 +7852,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
7852
7852
|
if (codeNames.length === 0) return;
|
|
7853
7853
|
void (async () => {
|
|
7854
7854
|
try {
|
|
7855
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7855
|
+
const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
|
|
7856
7856
|
await api.post("/host/heartbeat", {
|
|
7857
7857
|
host_id: hostId,
|
|
7858
7858
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -7950,7 +7950,7 @@ async function pollCycle() {
|
|
|
7950
7950
|
}
|
|
7951
7951
|
try {
|
|
7952
7952
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
7953
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
7953
|
+
const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
|
|
7954
7954
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
7955
7955
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
7956
7956
|
let tailscaleHostname;
|
|
@@ -8098,7 +8098,7 @@ async function pollCycle() {
|
|
|
8098
8098
|
const {
|
|
8099
8099
|
collectResponsivenessProbes,
|
|
8100
8100
|
getResponsivenessIntervalMs
|
|
8101
|
-
} = await import("../responsiveness-probe-
|
|
8101
|
+
} = await import("../responsiveness-probe-DUGIDPLT.js");
|
|
8102
8102
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
8103
8103
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
8104
8104
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -8130,7 +8130,7 @@ async function pollCycle() {
|
|
|
8130
8130
|
collectResponsivenessProbes,
|
|
8131
8131
|
livePendingInboundOldestAgeSeconds,
|
|
8132
8132
|
parkPendingInbound
|
|
8133
|
-
} = await import("../responsiveness-probe-
|
|
8133
|
+
} = await import("../responsiveness-probe-DUGIDPLT.js");
|
|
8134
8134
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
8135
8135
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
8136
8136
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -11113,7 +11113,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
11113
11113
|
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}`));
|
|
11114
11114
|
void (async () => {
|
|
11115
11115
|
try {
|
|
11116
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11116
|
+
const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
|
|
11117
11117
|
await api.post("/host/heartbeat", {
|
|
11118
11118
|
host_id: hostId,
|
|
11119
11119
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11163,7 +11163,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
11163
11163
|
}
|
|
11164
11164
|
try {
|
|
11165
11165
|
const hostId = await getHostId();
|
|
11166
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11166
|
+
const { collectDiagnostics } = await import("../persistent-session-3XOQWQJE.js");
|
|
11167
11167
|
await api.post("/host/heartbeat", {
|
|
11168
11168
|
host_id: hostId,
|
|
11169
11169
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -11587,7 +11587,7 @@ async function processClaudePairSessions(agents) {
|
|
|
11587
11587
|
killPairSession,
|
|
11588
11588
|
pairTmuxSession,
|
|
11589
11589
|
finalizeClaudePairOnboarding
|
|
11590
|
-
} = await import("../claude-pair-runtime-
|
|
11590
|
+
} = await import("../claude-pair-runtime-UQHJTVEE.js");
|
|
11591
11591
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
11592
11592
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
11593
11593
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -14860,6 +14860,13 @@ function shouldPostUndeliverableNotice(lastNoticeAtMs, nowMs, throttleMs = UNDEL
|
|
|
14860
14860
|
function undeliverableNoticeText(replayEnabled = channelReplayEnabled()) {
|
|
14861
14861
|
return replayEnabled ? "\u23F3 I can't get to this right now \u2014 no need to resend; I'll pick it up automatically as soon as I'm free." : "\u23F3 I can't get to this right now. Please resend in a few minutes \u2014 I may not see this one.";
|
|
14862
14862
|
}
|
|
14863
|
+
function undeliverableNoticeConversationKey(channel, threadTs, isThreadReply) {
|
|
14864
|
+
return isThreadReply && threadTs ? `${channel}:${threadTs}` : channel;
|
|
14865
|
+
}
|
|
14866
|
+
function undeliverableNoticeConversationKeyFromMarker(marker) {
|
|
14867
|
+
const isThreadReply = typeof marker.message_ts === "string" && marker.message_ts !== marker.thread_ts;
|
|
14868
|
+
return undeliverableNoticeConversationKey(marker.channel, marker.thread_ts, isThreadReply);
|
|
14869
|
+
}
|
|
14863
14870
|
var BUSY_ACK_THRESHOLD_MS = 12e4;
|
|
14864
14871
|
var BUSY_ACK_NOTICE_THROTTLE_MS = 20 * 60 * 1e3;
|
|
14865
14872
|
function channelBusyAckEnabled() {
|
|
@@ -18575,10 +18582,11 @@ function healSlackUndeliverable(channel, messageTs) {
|
|
|
18575
18582
|
});
|
|
18576
18583
|
}
|
|
18577
18584
|
var lastSlackUndeliverableNoticeAt = /* @__PURE__ */ new Map();
|
|
18585
|
+
var lastSlackUndeliverableNoticeInfo = /* @__PURE__ */ new Map();
|
|
18578
18586
|
function postUndeliverableNotice(channel, threadTs, isThreadReply) {
|
|
18579
18587
|
if (!BOT_TOKEN || !channel) return;
|
|
18580
18588
|
const now = Date.now();
|
|
18581
|
-
const conversationKey =
|
|
18589
|
+
const conversationKey = undeliverableNoticeConversationKey(channel, threadTs, isThreadReply);
|
|
18582
18590
|
if (!shouldPostUndeliverableNotice(lastSlackUndeliverableNoticeAt.get(conversationKey), now)) {
|
|
18583
18591
|
return;
|
|
18584
18592
|
}
|
|
@@ -18594,11 +18602,31 @@ function postUndeliverableNotice(channel, threadTs, isThreadReply) {
|
|
|
18594
18602
|
text: undeliverableNoticeText(),
|
|
18595
18603
|
...threadTs ? { thread_ts: threadTs } : {}
|
|
18596
18604
|
})
|
|
18605
|
+
}).then((res) => res.json()).then((data) => {
|
|
18606
|
+
if (data?.ok === true && typeof data.ts === "string" && data.ts) {
|
|
18607
|
+
lastSlackUndeliverableNoticeInfo.set(conversationKey, { channel, ts: data.ts });
|
|
18608
|
+
}
|
|
18597
18609
|
}).catch(() => {
|
|
18598
18610
|
});
|
|
18599
18611
|
}
|
|
18600
18612
|
function __resetSlackUndeliverableNoticeThrottle() {
|
|
18601
18613
|
lastSlackUndeliverableNoticeAt.clear();
|
|
18614
|
+
lastSlackUndeliverableNoticeInfo.clear();
|
|
18615
|
+
}
|
|
18616
|
+
function deleteSlackUndeliverableNotice(conversationKey) {
|
|
18617
|
+
const info = lastSlackUndeliverableNoticeInfo.get(conversationKey);
|
|
18618
|
+
lastSlackUndeliverableNoticeInfo.delete(conversationKey);
|
|
18619
|
+
lastSlackUndeliverableNoticeAt.delete(conversationKey);
|
|
18620
|
+
if (!BOT_TOKEN || !info) return;
|
|
18621
|
+
fetch("https://slack.com/api/chat.delete", {
|
|
18622
|
+
method: "POST",
|
|
18623
|
+
headers: {
|
|
18624
|
+
"Content-Type": "application/json",
|
|
18625
|
+
Authorization: `Bearer ${BOT_TOKEN}`
|
|
18626
|
+
},
|
|
18627
|
+
body: JSON.stringify({ channel: info.channel, ts: info.ts })
|
|
18628
|
+
}).catch(() => {
|
|
18629
|
+
});
|
|
18602
18630
|
}
|
|
18603
18631
|
var lastSlackBusyAckNoticeAt = /* @__PURE__ */ new Map();
|
|
18604
18632
|
function postBusyAckNotice(channel, threadTs, isThreadReply) {
|
|
@@ -18681,6 +18709,7 @@ function clearSlackMarkerFileWithHeal(fullPath) {
|
|
|
18681
18709
|
hasTarget: Boolean(marker.channel && marker.message_ts)
|
|
18682
18710
|
}) === "heal") {
|
|
18683
18711
|
healSlackUndeliverable(marker.channel, marker.message_ts);
|
|
18712
|
+
deleteSlackUndeliverableNotice(undeliverableNoticeConversationKeyFromMarker(marker));
|
|
18684
18713
|
}
|
|
18685
18714
|
try {
|
|
18686
18715
|
if (existsSync8(fullPath)) unlinkSync6(fullPath);
|
|
@@ -18699,6 +18728,7 @@ function markSlackMarkerSeenWithHeal(fullPath) {
|
|
|
18699
18728
|
hasTarget: Boolean(marker.channel && marker.message_ts)
|
|
18700
18729
|
}) === "heal") {
|
|
18701
18730
|
healSlackUndeliverable(marker.channel, marker.message_ts);
|
|
18731
|
+
deleteSlackUndeliverableNotice(undeliverableNoticeConversationKeyFromMarker(marker));
|
|
18702
18732
|
}
|
|
18703
18733
|
markSlackMarkerSeenInPlace(fullPath);
|
|
18704
18734
|
}
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-KJE5Y4GF.js";
|
|
40
40
|
import "./chunk-XWVM4KPK.js";
|
|
41
41
|
export {
|
|
42
42
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
writeEgressAllowlist,
|
|
78
78
|
writePersistentClaudeWrapper
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=persistent-session-
|
|
80
|
+
//# sourceMappingURL=persistent-session-3XOQWQJE.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KJE5Y4GF.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -427,4 +427,4 @@ export {
|
|
|
427
427
|
readAndResetSlackReplyBindingClassifications,
|
|
428
428
|
readAndResetSlackReplyTargetClassifications
|
|
429
429
|
};
|
|
430
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
430
|
+
//# sourceMappingURL=responsiveness-probe-DUGIDPLT.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|