@integrity-labs/agt-cli 0.28.869 → 0.28.871
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/assets/review/SKILL.md +28 -3
- package/dist/bin/agt.js +5 -5
- package/dist/{chunk-SJW4JNJQ.js → chunk-74PZNNGN.js} +48 -5
- package/dist/chunk-74PZNNGN.js.map +1 -0
- package/dist/{chunk-EK7QNCEO.js → chunk-QYI3M3WC.js} +2 -2
- package/dist/{chunk-EOEAZDKE.js → chunk-XK54CUEP.js} +7 -7
- package/dist/chunk-XK54CUEP.js.map +1 -0
- package/dist/{claude-pair-runtime-6TB4LL5B.js → claude-pair-runtime-NMZMSOS2.js} +2 -2
- package/dist/lib/manager-worker.js +14 -14
- package/dist/mcp/index.js +27 -3
- package/dist/{persistent-session-Y4W3CMW5.js → persistent-session-YTDIYOGS.js} +3 -3
- package/dist/{responsiveness-probe-LKW5CCKO.js → responsiveness-probe-KDXJEZEI.js} +3 -3
- package/dist/{session-auth-dead-WBEU4O4G.js → session-auth-dead-T5N23QSQ.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-EOEAZDKE.js.map +0 -1
- package/dist/chunk-SJW4JNJQ.js.map +0 -1
- /package/dist/{chunk-EK7QNCEO.js.map → chunk-QYI3M3WC.js.map} +0 -0
- /package/dist/{claude-pair-runtime-6TB4LL5B.js.map → claude-pair-runtime-NMZMSOS2.js.map} +0 -0
- /package/dist/{persistent-session-Y4W3CMW5.js.map → persistent-session-YTDIYOGS.js.map} +0 -0
- /package/dist/{responsiveness-probe-LKW5CCKO.js.map → responsiveness-probe-KDXJEZEI.js.map} +0 -0
- /package/dist/{session-auth-dead-WBEU4O4G.js.map → session-auth-dead-T5N23QSQ.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-YTDIYOGS.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-NMZMSOS2.js.map
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
safeWriteJsonAtomic,
|
|
64
64
|
setConfigHash,
|
|
65
65
|
tripClass
|
|
66
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-74PZNNGN.js";
|
|
67
67
|
import {
|
|
68
68
|
getProjectDir as getProjectDir2,
|
|
69
69
|
getReadyTasks,
|
|
@@ -129,7 +129,7 @@ import {
|
|
|
129
129
|
takeZombieDetection,
|
|
130
130
|
toOpencodeModel,
|
|
131
131
|
writeEgressAllowlist
|
|
132
|
-
} from "../chunk-
|
|
132
|
+
} from "../chunk-QYI3M3WC.js";
|
|
133
133
|
import {
|
|
134
134
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
135
135
|
AnchorSessionClient,
|
|
@@ -224,7 +224,7 @@ import {
|
|
|
224
224
|
subagentActivityAgeSeconds,
|
|
225
225
|
sumTranscriptUsageInWindow,
|
|
226
226
|
transcriptActivityAgeSeconds
|
|
227
|
-
} from "../chunk-
|
|
227
|
+
} from "../chunk-XK54CUEP.js";
|
|
228
228
|
import {
|
|
229
229
|
reapOrphanChannelMcps
|
|
230
230
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -13010,7 +13010,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
13010
13010
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
13011
13011
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
13012
13012
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
13013
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
13013
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-KDXJEZEI.js");
|
|
13014
13014
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
13015
13015
|
if (newest === null) return null;
|
|
13016
13016
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -13678,7 +13678,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13678
13678
|
var lastVersionCheckAt = 0;
|
|
13679
13679
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13680
13680
|
var lastResponsivenessProbeAt = 0;
|
|
13681
|
-
var agtCliVersion = true ? "0.28.
|
|
13681
|
+
var agtCliVersion = true ? "0.28.871" : "dev";
|
|
13682
13682
|
function resolveBrewPath(execFileSync2) {
|
|
13683
13683
|
try {
|
|
13684
13684
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -15268,7 +15268,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
15268
15268
|
if (codeNames.length === 0) return;
|
|
15269
15269
|
void (async () => {
|
|
15270
15270
|
try {
|
|
15271
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15271
|
+
const { collectDiagnostics } = await import("../persistent-session-YTDIYOGS.js");
|
|
15272
15272
|
await api.post("/host/heartbeat", {
|
|
15273
15273
|
host_id: hostId,
|
|
15274
15274
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -15410,7 +15410,7 @@ async function pollCycleInner() {
|
|
|
15410
15410
|
}
|
|
15411
15411
|
try {
|
|
15412
15412
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
15413
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15413
|
+
const { collectDiagnostics } = await import("../persistent-session-YTDIYOGS.js");
|
|
15414
15414
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
15415
15415
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
|
|
15416
15416
|
let tailscaleHostname;
|
|
@@ -15579,7 +15579,7 @@ async function pollCycleInner() {
|
|
|
15579
15579
|
collectPanelessActivityProbes,
|
|
15580
15580
|
getResponsivenessIntervalMs,
|
|
15581
15581
|
occupancyQualificationClassifications
|
|
15582
|
-
} = await import("../responsiveness-probe-
|
|
15582
|
+
} = await import("../responsiveness-probe-KDXJEZEI.js");
|
|
15583
15583
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
15584
15584
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
15585
15585
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -15696,7 +15696,7 @@ async function pollCycleInner() {
|
|
|
15696
15696
|
collectResponsivenessProbes,
|
|
15697
15697
|
livePendingInboundOldestAgeSeconds,
|
|
15698
15698
|
parkPendingInbound
|
|
15699
|
-
} = await import("../responsiveness-probe-
|
|
15699
|
+
} = await import("../responsiveness-probe-KDXJEZEI.js");
|
|
15700
15700
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
15701
15701
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
15702
15702
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -15852,7 +15852,7 @@ async function pollCycleInner() {
|
|
|
15852
15852
|
}
|
|
15853
15853
|
try {
|
|
15854
15854
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
15855
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
15855
|
+
const { probeSessionAuth } = await import("../session-auth-dead-T5N23QSQ.js");
|
|
15856
15856
|
const observations = [];
|
|
15857
15857
|
const pendingCacheCommits = [];
|
|
15858
15858
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -20097,7 +20097,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20097
20097
|
try {
|
|
20098
20098
|
const freshId = rotateSessionForWedge(codeName);
|
|
20099
20099
|
consecutiveWedgeCycles.delete(codeName);
|
|
20100
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
20100
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-KDXJEZEI.js");
|
|
20101
20101
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
20102
20102
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
20103
20103
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -20135,7 +20135,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20135
20135
|
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}`));
|
|
20136
20136
|
void (async () => {
|
|
20137
20137
|
try {
|
|
20138
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20138
|
+
const { collectDiagnostics } = await import("../persistent-session-YTDIYOGS.js");
|
|
20139
20139
|
await api.post("/host/heartbeat", {
|
|
20140
20140
|
host_id: hostId,
|
|
20141
20141
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20181,7 +20181,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
20181
20181
|
}
|
|
20182
20182
|
try {
|
|
20183
20183
|
const hostId = await getHostId();
|
|
20184
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20184
|
+
const { collectDiagnostics } = await import("../persistent-session-YTDIYOGS.js");
|
|
20185
20185
|
await api.post("/host/heartbeat", {
|
|
20186
20186
|
host_id: hostId,
|
|
20187
20187
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20817,7 +20817,7 @@ async function processClaudePairSessions(agents) {
|
|
|
20817
20817
|
killPairSession,
|
|
20818
20818
|
pairTmuxSession,
|
|
20819
20819
|
finalizeClaudePairOnboarding
|
|
20820
|
-
} = await import("../claude-pair-runtime-
|
|
20820
|
+
} = await import("../claude-pair-runtime-NMZMSOS2.js");
|
|
20821
20821
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
20822
20822
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
20823
20823
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
package/dist/mcp/index.js
CHANGED
|
@@ -30057,6 +30057,17 @@ function kanbanGetErrorMessage(status, id, fallbackMessage) {
|
|
|
30057
30057
|
return `Could not read the card: ${fallbackMessage}`;
|
|
30058
30058
|
}
|
|
30059
30059
|
|
|
30060
|
+
// src/knowledge-body-render.ts
|
|
30061
|
+
function renderKnowledgeBody(content) {
|
|
30062
|
+
if (content === void 0 || content === null) {
|
|
30063
|
+
return "(!) CONTRACT FAILURE: the API returned no `content` field for this entry. This is NOT an empty entry \u2014 the body was not delivered. Do not treat this as the entry text, and do not knowledge_update from it: an update replaces the whole body and would erase the real one. Report this as a bug.";
|
|
30064
|
+
}
|
|
30065
|
+
if (content.length === 0) {
|
|
30066
|
+
return "(empty \u2014 this entry genuinely has no body text)";
|
|
30067
|
+
}
|
|
30068
|
+
return content;
|
|
30069
|
+
}
|
|
30070
|
+
|
|
30060
30071
|
// src/index.ts
|
|
30061
30072
|
import { homedir as homedir3 } from "os";
|
|
30062
30073
|
import { basename, isAbsolute as isAbsolute2, join as join6, resolve as pathResolve, sep as sep2 } from "path";
|
|
@@ -48283,7 +48294,7 @@ server.tool(
|
|
|
48283
48294
|
const header = [
|
|
48284
48295
|
`# ${k.title}`,
|
|
48285
48296
|
`id: ${k.id} \xB7 slug: ${k.slug} \xB7 scope: ${k.scope} \xB7 ${k.is_active ? "active" : "INACTIVE"}`,
|
|
48286
|
-
`length: ${k.full_length} chars \xB7 source: ${k.source_type}${k.source_url ? ` (${k.source_url})` : ""} \xB7 updated: ${k.updated_at}`
|
|
48297
|
+
`length: ${k.full_length} chars \xB7 source: ${k.source_type ?? "unknown"}${k.source_url ? ` (${k.source_url})` : ""} \xB7 updated: ${k.updated_at}`
|
|
48287
48298
|
];
|
|
48288
48299
|
if (k.truncated) {
|
|
48289
48300
|
header.push(
|
|
@@ -48292,9 +48303,22 @@ server.tool(
|
|
|
48292
48303
|
}
|
|
48293
48304
|
return {
|
|
48294
48305
|
content: [
|
|
48295
|
-
{
|
|
48306
|
+
{
|
|
48307
|
+
type: "text",
|
|
48308
|
+
// THREE OUTCOMES, NOT TWO. `?? '(empty)'` was the original bug: a
|
|
48309
|
+
// field the API never sent rendered identically to an entry that is
|
|
48310
|
+
// genuinely blank, so a broken contract read as "this entry has no
|
|
48311
|
+
// text". My first fix only checked length, which still collapsed
|
|
48312
|
+
// missing and empty into the same `(empty)` — the same defect, one
|
|
48313
|
+
// layer up, inside the fix for it. Caught on review.
|
|
48314
|
+
//
|
|
48315
|
+
// Nullish now says so LOUDLY and names it as a contract failure,
|
|
48316
|
+
// because that is the one case where the right response is to
|
|
48317
|
+
// disbelieve the tool rather than the entry.
|
|
48318
|
+
text: `${header.join("\n")}
|
|
48296
48319
|
|
|
48297
|
-
${k.content
|
|
48320
|
+
${renderKnowledgeBody(k.content)}`
|
|
48321
|
+
}
|
|
48298
48322
|
]
|
|
48299
48323
|
};
|
|
48300
48324
|
}
|
|
@@ -54,8 +54,8 @@ import {
|
|
|
54
54
|
writeDirectChatSessionState,
|
|
55
55
|
writeEgressAllowlist,
|
|
56
56
|
writePersistentClaudeWrapper
|
|
57
|
-
} from "./chunk-
|
|
58
|
-
import "./chunk-
|
|
57
|
+
} from "./chunk-QYI3M3WC.js";
|
|
58
|
+
import "./chunk-XK54CUEP.js";
|
|
59
59
|
import "./chunk-XWVM4KPK.js";
|
|
60
60
|
export {
|
|
61
61
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -114,4 +114,4 @@ export {
|
|
|
114
114
|
writeEgressAllowlist,
|
|
115
115
|
writePersistentClaudeWrapper
|
|
116
116
|
};
|
|
117
|
-
//# sourceMappingURL=persistent-session-
|
|
117
|
+
//# sourceMappingURL=persistent-session-YTDIYOGS.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-QYI3M3WC.js";
|
|
4
|
+
import "./chunk-XK54CUEP.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -764,4 +764,4 @@ export {
|
|
|
764
764
|
readAndResetSlackReplyBindingClassifications,
|
|
765
765
|
readAndResetSlackReplyTargetClassifications
|
|
766
766
|
};
|
|
767
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
767
|
+
//# sourceMappingURL=responsiveness-probe-KDXJEZEI.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XK54CUEP.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/session-auth-dead.ts
|
|
6
6
|
import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
decideSessionAuthState,
|
|
204
204
|
probeSessionAuth
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=session-auth-dead-
|
|
206
|
+
//# sourceMappingURL=session-auth-dead-T5N23QSQ.js.map
|