@integrity-labs/agt-cli 0.28.859 → 0.28.861
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-R2NHRLD7.js → chunk-G23CONQJ.js} +2 -2
- package/dist/{chunk-JTDX6A6V.js → chunk-IQROQ3XJ.js} +382 -130
- package/dist/chunk-IQROQ3XJ.js.map +1 -0
- package/dist/{chunk-FJ372WWE.js → chunk-USHD2L3F.js} +47 -10
- package/dist/chunk-USHD2L3F.js.map +1 -0
- package/dist/{claude-pair-runtime-SC2TO4SG.js → claude-pair-runtime-6FJOWTEX.js} +2 -2
- package/dist/lib/manager-worker.js +35 -16
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/augmented-admin.js +1 -1
- package/dist/mcp/direct-chat-channel.js +46 -9
- package/dist/mcp/index.js +46 -9
- package/dist/mcp/origami.js +46 -9
- package/dist/mcp/slack-channel.js +46 -9
- package/dist/mcp/telegram-channel.js +46 -9
- package/dist/{persistent-session-6ZJR4HYE.js → persistent-session-6DET4JLF.js} +3 -3
- package/dist/{responsiveness-probe-UIYBJC7G.js → responsiveness-probe-ZNKOWUIE.js} +3 -3
- package/dist/{session-auth-dead-S6QREVV3.js → session-auth-dead-XU7VC6HM.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-FJ372WWE.js.map +0 -1
- package/dist/chunk-JTDX6A6V.js.map +0 -1
- /package/dist/{chunk-R2NHRLD7.js.map → chunk-G23CONQJ.js.map} +0 -0
- /package/dist/{claude-pair-runtime-SC2TO4SG.js.map → claude-pair-runtime-6FJOWTEX.js.map} +0 -0
- /package/dist/{persistent-session-6ZJR4HYE.js.map → persistent-session-6DET4JLF.js.map} +0 -0
- /package/dist/{responsiveness-probe-UIYBJC7G.js.map → responsiveness-probe-ZNKOWUIE.js.map} +0 -0
- /package/dist/{session-auth-dead-S6QREVV3.js.map → session-auth-dead-XU7VC6HM.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-6DET4JLF.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-6FJOWTEX.js.map
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ApiError,
|
|
3
|
+
COMPUTER_USE_MCP_KEY,
|
|
3
4
|
FIRST_CONNECT_WINDOW_MS,
|
|
4
5
|
HostFlagStore,
|
|
5
6
|
RestartBreaker,
|
|
6
7
|
SUPERVISOR_RESTART_EXIT_CODE,
|
|
8
|
+
TunnelWatcher,
|
|
7
9
|
api,
|
|
8
10
|
atomicWriteFileSync,
|
|
9
11
|
buildConnectivityProbeDeps,
|
|
@@ -11,6 +13,7 @@ import {
|
|
|
11
13
|
classifyEnvIntegrationsDiff,
|
|
12
14
|
clearPresenceReaperState,
|
|
13
15
|
clearPresenceReaperStateForKeys,
|
|
16
|
+
computerUseReaperView,
|
|
14
17
|
decidePin,
|
|
15
18
|
defaultFlagsCachePath,
|
|
16
19
|
deriveMcpServerKey,
|
|
@@ -60,7 +63,7 @@ import {
|
|
|
60
63
|
safeWriteJsonAtomic,
|
|
61
64
|
setConfigHash,
|
|
62
65
|
tripClass
|
|
63
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-IQROQ3XJ.js";
|
|
64
67
|
import {
|
|
65
68
|
getProjectDir as getProjectDir2,
|
|
66
69
|
getReadyTasks,
|
|
@@ -126,7 +129,7 @@ import {
|
|
|
126
129
|
takeZombieDetection,
|
|
127
130
|
toOpencodeModel,
|
|
128
131
|
writeEgressAllowlist
|
|
129
|
-
} from "../chunk-
|
|
132
|
+
} from "../chunk-G23CONQJ.js";
|
|
130
133
|
import {
|
|
131
134
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
132
135
|
AnchorSessionClient,
|
|
@@ -221,7 +224,7 @@ import {
|
|
|
221
224
|
subagentActivityAgeSeconds,
|
|
222
225
|
sumTranscriptUsageInWindow,
|
|
223
226
|
transcriptActivityAgeSeconds
|
|
224
|
-
} from "../chunk-
|
|
227
|
+
} from "../chunk-USHD2L3F.js";
|
|
225
228
|
import {
|
|
226
229
|
reapOrphanChannelMcps
|
|
227
230
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -12270,6 +12273,7 @@ function hasRevokedResiduals(state9) {
|
|
|
12270
12273
|
}
|
|
12271
12274
|
var pendingSessionRestarts = /* @__PURE__ */ new Map();
|
|
12272
12275
|
var lastRestartWasExternal = /* @__PURE__ */ new Map();
|
|
12276
|
+
var computerUseTunnels = new TunnelWatcher();
|
|
12273
12277
|
var pendingRestartVerifications = /* @__PURE__ */ new Map();
|
|
12274
12278
|
var agentCreatedAtMs = /* @__PURE__ */ new Map();
|
|
12275
12279
|
function noteAgentCreatedAt(codeName, createdAt) {
|
|
@@ -13001,7 +13005,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
13001
13005
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
13002
13006
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
13003
13007
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
13004
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
13008
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-ZNKOWUIE.js");
|
|
13005
13009
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
13006
13010
|
if (newest === null) return null;
|
|
13007
13011
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -13669,7 +13673,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13669
13673
|
var lastVersionCheckAt = 0;
|
|
13670
13674
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13671
13675
|
var lastResponsivenessProbeAt = 0;
|
|
13672
|
-
var agtCliVersion = true ? "0.28.
|
|
13676
|
+
var agtCliVersion = true ? "0.28.861" : "dev";
|
|
13673
13677
|
function resolveBrewPath(execFileSync2) {
|
|
13674
13678
|
try {
|
|
13675
13679
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -15259,7 +15263,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
15259
15263
|
if (codeNames.length === 0) return;
|
|
15260
15264
|
void (async () => {
|
|
15261
15265
|
try {
|
|
15262
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15266
|
+
const { collectDiagnostics } = await import("../persistent-session-6DET4JLF.js");
|
|
15263
15267
|
await api.post("/host/heartbeat", {
|
|
15264
15268
|
host_id: hostId,
|
|
15265
15269
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -15401,7 +15405,7 @@ async function pollCycleInner() {
|
|
|
15401
15405
|
}
|
|
15402
15406
|
try {
|
|
15403
15407
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
15404
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15408
|
+
const { collectDiagnostics } = await import("../persistent-session-6DET4JLF.js");
|
|
15405
15409
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
15406
15410
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
|
|
15407
15411
|
let tailscaleHostname;
|
|
@@ -15570,7 +15574,7 @@ async function pollCycleInner() {
|
|
|
15570
15574
|
collectPanelessActivityProbes,
|
|
15571
15575
|
getResponsivenessIntervalMs,
|
|
15572
15576
|
occupancyQualificationClassifications
|
|
15573
|
-
} = await import("../responsiveness-probe-
|
|
15577
|
+
} = await import("../responsiveness-probe-ZNKOWUIE.js");
|
|
15574
15578
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
15575
15579
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
15576
15580
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -15687,7 +15691,7 @@ async function pollCycleInner() {
|
|
|
15687
15691
|
collectResponsivenessProbes,
|
|
15688
15692
|
livePendingInboundOldestAgeSeconds,
|
|
15689
15693
|
parkPendingInbound
|
|
15690
|
-
} = await import("../responsiveness-probe-
|
|
15694
|
+
} = await import("../responsiveness-probe-ZNKOWUIE.js");
|
|
15691
15695
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
15692
15696
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
15693
15697
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -15843,7 +15847,7 @@ async function pollCycleInner() {
|
|
|
15843
15847
|
}
|
|
15844
15848
|
try {
|
|
15845
15849
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
15846
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
15850
|
+
const { probeSessionAuth } = await import("../session-auth-dead-XU7VC6HM.js");
|
|
15847
15851
|
const observations = [];
|
|
15848
15852
|
const pendingCacheCommits = [];
|
|
15849
15853
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -18575,15 +18579,30 @@ async function processAgent(agent, agentStates, managedToolkits) {
|
|
|
18575
18579
|
mcpJsonParsed = JSON.parse(readFileSync32(mcpPath, "utf-8"));
|
|
18576
18580
|
} catch {
|
|
18577
18581
|
}
|
|
18582
|
+
const computerUseIsolated = isolationMode(agent.code_name) === "docker";
|
|
18583
|
+
const computerUseVerdict = computerUseTunnels.observe(
|
|
18584
|
+
agent.code_name,
|
|
18585
|
+
mcpJsonParsed?.mcpServers?.[COMPUTER_USE_MCP_KEY]?.args,
|
|
18586
|
+
computerUseIsolated,
|
|
18587
|
+
{
|
|
18588
|
+
log,
|
|
18589
|
+
onRecovered: (codeName) => {
|
|
18590
|
+
clearPresenceReaperStateForKeys(codeName, /* @__PURE__ */ new Set([COMPUTER_USE_MCP_KEY]));
|
|
18591
|
+
log(
|
|
18592
|
+
`[computer-use-tunnel] '${codeName}': tunnel reachable again \u2014 cleared presence-reaper state for '${COMPUTER_USE_MCP_KEY}' so it gets a fresh restart budget (ENG-10134)`
|
|
18593
|
+
);
|
|
18594
|
+
}
|
|
18595
|
+
}
|
|
18596
|
+
);
|
|
18578
18597
|
reapMissingMcpSessions({
|
|
18579
18598
|
log,
|
|
18580
18599
|
codeName: agent.code_name,
|
|
18581
|
-
mcpJson: mcpJsonParsed,
|
|
18600
|
+
mcpJson: computerUseReaperView(mcpJsonParsed, computerUseVerdict),
|
|
18582
18601
|
sessionStartedAt: sess?.startedAt ?? null,
|
|
18583
18602
|
// ENG-6660: under Docker the MCP children live in the agent's container
|
|
18584
18603
|
// PID namespace - probe inside it (docker exec ps) instead of the host,
|
|
18585
18604
|
// or every declared MCP looks "missing" -> restart loop -> flapping.
|
|
18586
|
-
isolated:
|
|
18605
|
+
isolated: computerUseIsolated,
|
|
18587
18606
|
// ENG-6486: a restart is already scheduled/deferred for this agent (e.g.
|
|
18588
18607
|
// a freshly-added channel awaiting its convergence restart, deferred by
|
|
18589
18608
|
// the maintenance window). The pending restart will spawn the declared-
|
|
@@ -20073,7 +20092,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20073
20092
|
try {
|
|
20074
20093
|
const freshId = rotateSessionForWedge(codeName);
|
|
20075
20094
|
consecutiveWedgeCycles.delete(codeName);
|
|
20076
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
20095
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-ZNKOWUIE.js");
|
|
20077
20096
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
20078
20097
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
20079
20098
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -20111,7 +20130,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20111
20130
|
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}`));
|
|
20112
20131
|
void (async () => {
|
|
20113
20132
|
try {
|
|
20114
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20133
|
+
const { collectDiagnostics } = await import("../persistent-session-6DET4JLF.js");
|
|
20115
20134
|
await api.post("/host/heartbeat", {
|
|
20116
20135
|
host_id: hostId,
|
|
20117
20136
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20157,7 +20176,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
20157
20176
|
}
|
|
20158
20177
|
try {
|
|
20159
20178
|
const hostId = await getHostId();
|
|
20160
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20179
|
+
const { collectDiagnostics } = await import("../persistent-session-6DET4JLF.js");
|
|
20161
20180
|
await api.post("/host/heartbeat", {
|
|
20162
20181
|
host_id: hostId,
|
|
20163
20182
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20793,7 +20812,7 @@ async function processClaudePairSessions(agents) {
|
|
|
20793
20812
|
killPairSession,
|
|
20794
20813
|
pairTmuxSession,
|
|
20795
20814
|
finalizeClaudePairOnboarding
|
|
20796
|
-
} = await import("../claude-pair-runtime-
|
|
20815
|
+
} = await import("../claude-pair-runtime-6FJOWTEX.js");
|
|
20797
20816
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
20798
20817
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
20799
20818
|
const killed = await killPairSession(pairTmuxSession(pairId));
|