@integrity-labs/agt-cli 0.28.698 → 0.28.699

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.
@@ -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-YM5ELNFF.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-MIMASNZD.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-5CLVPPM4.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-6W4UKH3J.js.map
@@ -54,7 +54,7 @@ import {
54
54
  safeWriteJsonAtomic,
55
55
  setConfigHash,
56
56
  tripClass
57
- } from "../chunk-SBHIDSET.js";
57
+ } from "../chunk-ZLHRSMKL.js";
58
58
  import {
59
59
  getProjectDir as getProjectDir2,
60
60
  getReadyTasks,
@@ -112,7 +112,7 @@ import {
112
112
  takeZombieDetection,
113
113
  toOpencodeModel,
114
114
  writeEgressAllowlist
115
- } from "../chunk-SWU4NBD2.js";
115
+ } from "../chunk-WDHT7D67.js";
116
116
  import {
117
117
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
118
118
  AnchorSessionClient,
@@ -196,7 +196,7 @@ import {
196
196
  subagentActivityAgeSeconds,
197
197
  sumTranscriptUsageInWindow,
198
198
  transcriptActivityAgeSeconds
199
- } from "../chunk-EXCMPARK.js";
199
+ } from "../chunk-PBOSJQE6.js";
200
200
  import {
201
201
  reapOrphanChannelMcps
202
202
  } from "../chunk-XWVM4KPK.js";
@@ -1021,13 +1021,47 @@ function isQuarantineFile(value) {
1021
1021
  import { readFileSync as readFileSync4 } from "fs";
1022
1022
  import { join as join4 } from "path";
1023
1023
  function measureClaudeMd(configDir, codeName, ceiling = CLAUDE_MD_CONTEXT_ALARM_CHARS) {
1024
+ let chars;
1025
+ let bytes;
1024
1026
  try {
1025
1027
  const buf = readFileSync4(join4(configDir, codeName, "project", "CLAUDE.md"));
1026
- const chars = buf.toString("utf8").length;
1027
- return { chars, bytes: buf.length, ceiling, overCeiling: chars > ceiling };
1028
+ chars = buf.toString("utf8").length;
1029
+ bytes = buf.length;
1028
1030
  } catch {
1029
1031
  return null;
1030
1032
  }
1033
+ const skillDescriptionChars = measureCoreKnowledgeDescription(configDir, codeName);
1034
+ const residentChars = chars + skillDescriptionChars;
1035
+ return {
1036
+ chars,
1037
+ bytes,
1038
+ skillDescriptionChars,
1039
+ residentChars,
1040
+ ceiling,
1041
+ overCeiling: residentChars > ceiling
1042
+ };
1043
+ }
1044
+ function measureCoreKnowledgeDescription(configDir, codeName) {
1045
+ let text;
1046
+ try {
1047
+ text = readFileSync4(
1048
+ join4(configDir, codeName, "project", ".claude", "skills", "core-knowledge", "SKILL.md"),
1049
+ "utf8"
1050
+ );
1051
+ } catch {
1052
+ return 0;
1053
+ }
1054
+ const lines = text.split("\n");
1055
+ if (lines[0]?.trim() !== "---") return 0;
1056
+ let descriptionChars;
1057
+ for (let i = 1; i < lines.length; i++) {
1058
+ const line = lines[i] ?? "";
1059
+ if (line.trim() === "---") return descriptionChars ?? 0;
1060
+ if (descriptionChars === void 0 && line.startsWith("description:")) {
1061
+ descriptionChars = line.length;
1062
+ }
1063
+ }
1064
+ return 0;
1031
1065
  }
1032
1066
  var lastOverCeiling = /* @__PURE__ */ new Map();
1033
1067
  function logClaudeMdCeilingTransition(codeName, report, log2) {
@@ -1039,7 +1073,7 @@ function logClaudeMdCeilingTransition(codeName, report, log2) {
1039
1073
  }
1040
1074
  if (previous === report.overCeiling) return null;
1041
1075
  lastOverCeiling.set(codeName, report.overCeiling);
1042
- const line = report.overCeiling ? `[claude-md] '${codeName}' project/CLAUDE.md is ${report.chars} chars, OVER the ${report.ceiling} threshold by ${report.chars - report.ceiling} \u2014 nothing is truncated, but the whole file is re-sent every request, so this is context permanently spent (ENG-8163 / ENG-9459)` : `[claude-md] '${codeName}' project/CLAUDE.md back under the threshold (${report.chars}/${report.ceiling} chars)`;
1076
+ const line = report.overCeiling ? `[claude-md] '${codeName}' resident identity is ${report.residentChars} chars (CLAUDE.md ${report.chars} + core-knowledge skill description ${report.skillDescriptionChars}), OVER the ${report.ceiling} threshold by ${report.residentChars - report.ceiling} \u2014 nothing is truncated, but both are re-sent every request, so this is context permanently spent (ENG-8163 / ENG-9459 / ENG-9466)` : `[claude-md] '${codeName}' resident identity back under the threshold (${report.residentChars}/${report.ceiling} chars)`;
1043
1077
  log2(line);
1044
1078
  return line;
1045
1079
  }
@@ -11840,7 +11874,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
11840
11874
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
11841
11875
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
11842
11876
  async function channelInboundActivityAgeSecondsFor(codeName) {
11843
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-7FWQQZDJ.js");
11877
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-UWABMXTD.js");
11844
11878
  const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
11845
11879
  if (newest === null) return null;
11846
11880
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -12488,7 +12522,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
12488
12522
  var lastVersionCheckAt = 0;
12489
12523
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
12490
12524
  var lastResponsivenessProbeAt = 0;
12491
- var agtCliVersion = true ? "0.28.698" : "dev";
12525
+ var agtCliVersion = true ? "0.28.699" : "dev";
12492
12526
  function resolveBrewPath(execFileSync3) {
12493
12527
  try {
12494
12528
  const out = execFileSync3("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -13989,7 +14023,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
13989
14023
  if (codeNames.length === 0) return;
13990
14024
  void (async () => {
13991
14025
  try {
13992
- const { collectDiagnostics } = await import("../persistent-session-YM5ELNFF.js");
14026
+ const { collectDiagnostics } = await import("../persistent-session-MIMASNZD.js");
13993
14027
  await api.post("/host/heartbeat", {
13994
14028
  host_id: hostId,
13995
14029
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor)
@@ -14107,7 +14141,7 @@ async function pollCycleInner() {
14107
14141
  }
14108
14142
  try {
14109
14143
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
14110
- const { collectDiagnostics } = await import("../persistent-session-YM5ELNFF.js");
14144
+ const { collectDiagnostics } = await import("../persistent-session-MIMASNZD.js");
14111
14145
  const diagCodeNames = [...agentState.persistentSessionAgents];
14112
14146
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor) : void 0;
14113
14147
  let tailscaleHostname;
@@ -14259,7 +14293,7 @@ async function pollCycleInner() {
14259
14293
  collectPanelessActivityProbes,
14260
14294
  getResponsivenessIntervalMs,
14261
14295
  occupancyQualificationClassifications
14262
- } = await import("../responsiveness-probe-7FWQQZDJ.js");
14296
+ } = await import("../responsiveness-probe-UWABMXTD.js");
14263
14297
  const probeIntervalMs = getResponsivenessIntervalMs();
14264
14298
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
14265
14299
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -14369,7 +14403,7 @@ async function pollCycleInner() {
14369
14403
  collectResponsivenessProbes,
14370
14404
  livePendingInboundOldestAgeSeconds,
14371
14405
  parkPendingInbound
14372
- } = await import("../responsiveness-probe-7FWQQZDJ.js");
14406
+ } = await import("../responsiveness-probe-UWABMXTD.js");
14373
14407
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
14374
14408
  const wedgeNow = /* @__PURE__ */ new Date();
14375
14409
  const liveAgents = agentState.persistentSessionAgents;
@@ -14525,7 +14559,7 @@ async function pollCycleInner() {
14525
14559
  }
14526
14560
  try {
14527
14561
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
14528
- const { probeSessionAuth } = await import("../session-auth-dead-GRR6Y5ZP.js");
14562
+ const { probeSessionAuth } = await import("../session-auth-dead-LRVZHGJI.js");
14529
14563
  const observations = [];
14530
14564
  const pendingCacheCommits = [];
14531
14565
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -18285,7 +18319,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
18285
18319
  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}`));
18286
18320
  void (async () => {
18287
18321
  try {
18288
- const { collectDiagnostics } = await import("../persistent-session-YM5ELNFF.js");
18322
+ const { collectDiagnostics } = await import("../persistent-session-MIMASNZD.js");
18289
18323
  await api.post("/host/heartbeat", {
18290
18324
  host_id: hostId,
18291
18325
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor)
@@ -18336,7 +18370,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
18336
18370
  }
18337
18371
  try {
18338
18372
  const hostId = await getHostId();
18339
- const { collectDiagnostics } = await import("../persistent-session-YM5ELNFF.js");
18373
+ const { collectDiagnostics } = await import("../persistent-session-MIMASNZD.js");
18340
18374
  await api.post("/host/heartbeat", {
18341
18375
  host_id: hostId,
18342
18376
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor)
@@ -18968,7 +19002,7 @@ async function processClaudePairSessions(agents) {
18968
19002
  killPairSession,
18969
19003
  pairTmuxSession,
18970
19004
  finalizeClaudePairOnboarding
18971
- } = await import("../claude-pair-runtime-5CLVPPM4.js");
19005
+ } = await import("../claude-pair-runtime-6W4UKH3J.js");
18972
19006
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
18973
19007
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
18974
19008
  const killed = await killPairSession(pairTmuxSession(pairId));