@integrity-labs/agt-cli 0.28.990 → 0.28.992

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.
Files changed (27) hide show
  1. package/dist/bin/agt.js +5 -5
  2. package/dist/{chunk-TGCA3LTI.js → chunk-C72SNMP6.js} +26 -5
  3. package/dist/chunk-C72SNMP6.js.map +1 -0
  4. package/dist/{chunk-6KYXH6ZZ.js → chunk-NF7LESJA.js} +73 -6
  5. package/dist/chunk-NF7LESJA.js.map +1 -0
  6. package/dist/{chunk-P7B5IRH5.js → chunk-PNQCXCEY.js} +19 -8
  7. package/dist/chunk-PNQCXCEY.js.map +1 -0
  8. package/dist/{claude-pair-runtime-GQM26I3M.js → claude-pair-runtime-EVAYZI57.js} +2 -2
  9. package/dist/lib/manager-worker.js +33 -15
  10. package/dist/lib/manager-worker.js.map +1 -1
  11. package/dist/mcp/direct-chat-channel.js +15 -1
  12. package/dist/mcp/index.js +15 -1
  13. package/dist/mcp/origami.js +15 -1
  14. package/dist/mcp/remote-oauth-proxy.js +120 -29
  15. package/dist/mcp/slack-channel.js +15 -1
  16. package/dist/mcp/telegram-channel.js +15 -1
  17. package/dist/{persistent-session-PYYD53GZ.js → persistent-session-HBUVJYYR.js} +5 -3
  18. package/dist/{responsiveness-probe-JENZOOKG.js → responsiveness-probe-AIBA25OP.js} +3 -3
  19. package/dist/{session-auth-dead-BGXRQB27.js → session-auth-dead-XTMVOHUX.js} +2 -2
  20. package/package.json +1 -1
  21. package/dist/chunk-6KYXH6ZZ.js.map +0 -1
  22. package/dist/chunk-P7B5IRH5.js.map +0 -1
  23. package/dist/chunk-TGCA3LTI.js.map +0 -1
  24. /package/dist/{claude-pair-runtime-GQM26I3M.js.map → claude-pair-runtime-EVAYZI57.js.map} +0 -0
  25. /package/dist/{persistent-session-PYYD53GZ.js.map → persistent-session-HBUVJYYR.js.map} +0 -0
  26. /package/dist/{responsiveness-probe-JENZOOKG.js.map → responsiveness-probe-AIBA25OP.js.map} +0 -0
  27. /package/dist/{session-auth-dead-BGXRQB27.js.map → session-auth-dead-XTMVOHUX.js.map} +0 -0
@@ -258,7 +258,7 @@ async function spawnPairSession(session) {
258
258
  return { ok: true };
259
259
  } catch {
260
260
  }
261
- const { resolveClaudeBinary } = await import("./persistent-session-PYYD53GZ.js");
261
+ const { resolveClaudeBinary } = await import("./persistent-session-HBUVJYYR.js");
262
262
  const claudeBin = resolveClaudeBinary();
263
263
  const pairEnv = {
264
264
  ...process.env,
@@ -580,4 +580,4 @@ export {
580
580
  startClaudePair,
581
581
  submitClaudePairCode
582
582
  };
583
- //# sourceMappingURL=claude-pair-runtime-GQM26I3M.js.map
583
+ //# sourceMappingURL=claude-pair-runtime-EVAYZI57.js.map
@@ -63,7 +63,7 @@ import {
63
63
  safeWriteJsonAtomic,
64
64
  setConfigHash,
65
65
  tripClass
66
- } from "../chunk-P7B5IRH5.js";
66
+ } from "../chunk-PNQCXCEY.js";
67
67
  import {
68
68
  getProjectDir as getProjectDir2,
69
69
  getReadyTasks,
@@ -74,6 +74,7 @@ import {
74
74
  import {
75
75
  BLOCKED_ON_PROMPT_DECISION,
76
76
  CHANNEL_SECRET_ENV_KEYS,
77
+ CLAUDE_MANAGED_SETTINGS_DIR,
77
78
  ChildProcessError,
78
79
  agentRuntimeKey,
79
80
  applyBlockedPromptVerdict,
@@ -140,7 +141,7 @@ import {
140
141
  takeZombieDetection,
141
142
  toOpencodeModel,
142
143
  writeEgressAllowlist
143
- } from "../chunk-6KYXH6ZZ.js";
144
+ } from "../chunk-NF7LESJA.js";
144
145
  import {
145
146
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
146
147
  AnchorSessionClient,
@@ -153,6 +154,7 @@ import {
153
154
  FLAG_REGISTRY,
154
155
  FORCED_UPDATE_HARD_DEADLINE_MS,
155
156
  FORCED_UPDATE_RELAX_AFTER_MS,
157
+ HITL_TIER_ORDER,
156
158
  HOST_USAGE_POLL_INTERVAL_MS,
157
159
  INTEGRATIONS_SECTION_END,
158
160
  INTEGRATIONS_SECTION_START,
@@ -238,7 +240,7 @@ import {
238
240
  subagentActivityAgeSeconds,
239
241
  sumTranscriptUsageInWindow,
240
242
  transcriptActivityAgeSeconds
241
- } from "../chunk-TGCA3LTI.js";
243
+ } from "../chunk-C72SNMP6.js";
242
244
  import "../chunk-DHWNVVX4.js";
243
245
  import {
244
246
  reapOrphanChannelMcps
@@ -583,6 +585,11 @@ function withResolvedRemoteMcp(integration) {
583
585
  ...integration,
584
586
  remoteMcp: integration.remote_mcp ?? void 0,
585
587
  stdioMcp: integration.stdio_mcp === true ? true : void 0,
588
+ // ENG-10614: same seam as remoteMcp above. An EMPTY object maps to
589
+ // undefined deliberately - the proxy reads an empty table as "authoritative,
590
+ // every tool unknown" and refuses every call, so a definition that happens
591
+ // to have zero rows must stay ungated rather than be bricked.
592
+ toolTiers: normalizeToolTiers(integration.tool_tiers),
586
593
  // ENG-8344: same seam, same reason. Only the exact string 'broker' opts a
587
594
  // row into use-time credential delivery — anything else (including a value
588
595
  // a newer API might add later) reads as today's env delivery, so an
@@ -590,6 +597,17 @@ function withResolvedRemoteMcp(integration) {
590
597
  credentialDelivery: normalizeCredentialDelivery(integration.credential_delivery)
591
598
  };
592
599
  }
600
+ function normalizeToolTiers(raw) {
601
+ if (!raw) return void 0;
602
+ const out = {};
603
+ for (const [tool, tier] of Object.entries(raw)) {
604
+ if (typeof tool !== "string" || !tool) continue;
605
+ if (typeof tier !== "string") continue;
606
+ if (!HITL_TIER_ORDER.includes(tier)) continue;
607
+ out[tool] = tier;
608
+ }
609
+ return out;
610
+ }
593
611
  function normalizeCredentialDelivery(value) {
594
612
  const anomaly = describeUnrecognisedCredentialDelivery(value);
595
613
  if (anomaly) {
@@ -13292,7 +13310,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
13292
13310
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
13293
13311
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
13294
13312
  async function channelInboundActivityAgeSecondsFor(codeName) {
13295
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-JENZOOKG.js");
13313
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-AIBA25OP.js");
13296
13314
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
13297
13315
  if (newest === null) return null;
13298
13316
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -14035,7 +14053,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
14035
14053
  var lastVersionCheckAt = 0;
14036
14054
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
14037
14055
  var lastResponsivenessProbeAt = 0;
14038
- var agtCliVersion = true ? "0.28.990" : "dev";
14056
+ var agtCliVersion = true ? "0.28.992" : "dev";
14039
14057
  function resolveBrewPath(execFileSync2) {
14040
14058
  try {
14041
14059
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -14362,7 +14380,7 @@ function runAsync(cmd, args, opts) {
14362
14380
  });
14363
14381
  }
14364
14382
  function claudeManagedSettingsPath() {
14365
- return process.platform === "darwin" ? "/Library/Application Support/ClaudeCode/managed-settings.json" : "/etc/claude-code/managed-settings.json";
14383
+ return join42(CLAUDE_MANAGED_SETTINGS_DIR, "managed-settings.json");
14366
14384
  }
14367
14385
  var MANAGED_SETTINGS_KEYS = ["channelsEnabled", "enableAllProjectMcpServers"];
14368
14386
  var MANAGED_SETTINGS_ENV = { DISABLE_AUTOUPDATER: "1" };
@@ -15651,7 +15669,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
15651
15669
  if (codeNames.length === 0) return;
15652
15670
  void (async () => {
15653
15671
  try {
15654
- const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
15672
+ const { collectDiagnostics } = await import("../persistent-session-HBUVJYYR.js");
15655
15673
  await api.post("/host/heartbeat", {
15656
15674
  host_id: hostId,
15657
15675
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -15793,7 +15811,7 @@ async function pollCycleInner() {
15793
15811
  }
15794
15812
  try {
15795
15813
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
15796
- const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
15814
+ const { collectDiagnostics } = await import("../persistent-session-HBUVJYYR.js");
15797
15815
  const diagCodeNames = [...agentState.persistentSessionAgents];
15798
15816
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
15799
15817
  let tailscaleHostname;
@@ -15969,7 +15987,7 @@ async function pollCycleInner() {
15969
15987
  collectPanelessActivityProbes,
15970
15988
  getResponsivenessIntervalMs,
15971
15989
  occupancyQualificationClassifications
15972
- } = await import("../responsiveness-probe-JENZOOKG.js");
15990
+ } = await import("../responsiveness-probe-AIBA25OP.js");
15973
15991
  const probeIntervalMs = getResponsivenessIntervalMs();
15974
15992
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
15975
15993
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -16086,7 +16104,7 @@ async function pollCycleInner() {
16086
16104
  collectResponsivenessProbes,
16087
16105
  livePendingInboundOldestAgeSeconds,
16088
16106
  parkPendingInbound
16089
- } = await import("../responsiveness-probe-JENZOOKG.js");
16107
+ } = await import("../responsiveness-probe-AIBA25OP.js");
16090
16108
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
16091
16109
  const wedgeNow = /* @__PURE__ */ new Date();
16092
16110
  const liveAgents = agentState.persistentSessionAgents;
@@ -16242,7 +16260,7 @@ async function pollCycleInner() {
16242
16260
  }
16243
16261
  try {
16244
16262
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
16245
- const { probeSessionAuth } = await import("../session-auth-dead-BGXRQB27.js");
16263
+ const { probeSessionAuth } = await import("../session-auth-dead-XTMVOHUX.js");
16246
16264
  const observations = [];
16247
16265
  const pendingCacheCommits = [];
16248
16266
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -20530,7 +20548,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
20530
20548
  try {
20531
20549
  const freshId = rotateSessionForWedge(codeName);
20532
20550
  consecutiveWedgeCycles.delete(codeName);
20533
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-JENZOOKG.js");
20551
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-AIBA25OP.js");
20534
20552
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
20535
20553
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
20536
20554
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -20573,7 +20591,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
20573
20591
  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}`));
20574
20592
  void (async () => {
20575
20593
  try {
20576
- const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
20594
+ const { collectDiagnostics } = await import("../persistent-session-HBUVJYYR.js");
20577
20595
  await api.post("/host/heartbeat", {
20578
20596
  host_id: hostId,
20579
20597
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -20624,7 +20642,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
20624
20642
  }
20625
20643
  try {
20626
20644
  const hostId = await getHostId();
20627
- const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
20645
+ const { collectDiagnostics } = await import("../persistent-session-HBUVJYYR.js");
20628
20646
  await api.post("/host/heartbeat", {
20629
20647
  host_id: hostId,
20630
20648
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -21268,7 +21286,7 @@ async function processClaudePairSessions(agents) {
21268
21286
  killPairSession,
21269
21287
  pairTmuxSession,
21270
21288
  finalizeClaudePairOnboarding
21271
- } = await import("../claude-pair-runtime-GQM26I3M.js");
21289
+ } = await import("../claude-pair-runtime-EVAYZI57.js");
21272
21290
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
21273
21291
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
21274
21292
  const killed = await killPairSession(pairTmuxSession(pairId));