@integrity-labs/agt-cli 0.28.63 → 0.28.64

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-5PEPYSMG.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-WJBIN6WM.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-QSRMTD7I.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-SPP3CUBA.js.map
@@ -27,7 +27,7 @@ import {
27
27
  requireHost,
28
28
  safeWriteJsonAtomic,
29
29
  setConfigHash
30
- } from "../chunk-5H3EMCNV.js";
30
+ } from "../chunk-JY3LAHBG.js";
31
31
  import {
32
32
  getProjectDir as getProjectDir2,
33
33
  getReadyTasks,
@@ -65,7 +65,7 @@ import {
65
65
  takeWatchdogGiveUpCount,
66
66
  takeZombieDetection,
67
67
  transcriptActivityAgeSeconds
68
- } from "../chunk-AKOF4VV5.js";
68
+ } from "../chunk-4P7HUXWI.js";
69
69
  import {
70
70
  FLAGS_SCHEMA_VERSION,
71
71
  FLAG_REGISTRY,
@@ -96,7 +96,7 @@ import {
96
96
  resolveDmTarget,
97
97
  sumTranscriptUsageInWindow,
98
98
  wrapScheduledTaskPrompt
99
- } from "../chunk-7F2K3RRD.js";
99
+ } from "../chunk-XKAJW4EX.js";
100
100
  import {
101
101
  parsePsRows,
102
102
  reapOrphanChannelMcps
@@ -6734,7 +6734,7 @@ var cachedMaintenanceWindow = null;
6734
6734
  var lastVersionCheckAt = 0;
6735
6735
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
6736
6736
  var lastResponsivenessProbeAt = 0;
6737
- var agtCliVersion = true ? "0.28.63" : "dev";
6737
+ var agtCliVersion = true ? "0.28.64" : "dev";
6738
6738
  function resolveBrewPath(execFileSync4) {
6739
6739
  try {
6740
6740
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -7842,7 +7842,7 @@ async function pollCycle() {
7842
7842
  }
7843
7843
  try {
7844
7844
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
7845
- const { collectDiagnostics } = await import("../persistent-session-5PEPYSMG.js");
7845
+ const { collectDiagnostics } = await import("../persistent-session-WJBIN6WM.js");
7846
7846
  const diagCodeNames = [...agentState.persistentSessionAgents];
7847
7847
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
7848
7848
  let tailscaleHostname;
@@ -7943,7 +7943,7 @@ async function pollCycle() {
7943
7943
  const {
7944
7944
  collectResponsivenessProbes,
7945
7945
  getResponsivenessIntervalMs
7946
- } = await import("../responsiveness-probe-HG23JDG2.js");
7946
+ } = await import("../responsiveness-probe-XVWLBSSH.js");
7947
7947
  const probeIntervalMs = getResponsivenessIntervalMs();
7948
7948
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
7949
7949
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -7975,7 +7975,7 @@ async function pollCycle() {
7975
7975
  collectResponsivenessProbes,
7976
7976
  livePendingInboundOldestAgeSeconds,
7977
7977
  parkPendingInbound
7978
- } = await import("../responsiveness-probe-HG23JDG2.js");
7978
+ } = await import("../responsiveness-probe-XVWLBSSH.js");
7979
7979
  const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
7980
7980
  const wedgeNow = /* @__PURE__ */ new Date();
7981
7981
  const liveAgents = agentState.persistentSessionAgents;
@@ -11409,7 +11409,7 @@ async function processClaudePairSessions(agents) {
11409
11409
  killPairSession,
11410
11410
  pairTmuxSession,
11411
11411
  finalizeClaudePairOnboarding
11412
- } = await import("../claude-pair-runtime-QSRMTD7I.js");
11412
+ } = await import("../claude-pair-runtime-SPP3CUBA.js");
11413
11413
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
11414
11414
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
11415
11415
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -21107,6 +21107,10 @@ var AdminDebugClient = class _AdminDebugClient {
21107
21107
  tailLogs(args) {
21108
21108
  return this.get("/admin/debug/tail-logs", _AdminDebugClient.cleanQuery(args));
21109
21109
  }
21110
+ /** Time-windowed read of ONE allowlisted host log across rotated files (ENG-6515). */
21111
+ queryLogs(args) {
21112
+ return this.get("/admin/debug/query-logs", _AdminDebugClient.cleanQuery(args));
21113
+ }
21110
21114
  probeIntegration(args) {
21111
21115
  return this.get("/admin/debug/probe-integration", _AdminDebugClient.cleanQuery(args));
21112
21116
  }
@@ -21279,6 +21283,23 @@ var tailLogsSchema = external_exports.object({
21279
21283
  "Trailing lines to return (default 200, max 2000). Output is also byte-capped (~20 KB, newest kept) to stay within SSM limits \u2014 `truncated` flags when it clipped."
21280
21284
  )
21281
21285
  });
21286
+ var queryLogsSchema = external_exports.object({
21287
+ agent_id: external_exports.string().min(1).max(64).describe(
21288
+ "UUID of the agent whose host log to query. Fails closed (uniform not-found) if you are not authorized for its org."
21289
+ ),
21290
+ log: external_exports.enum(["manager", "pane", "slack-stderr", "telegram-stderr", "manager-state"]).optional().describe(
21291
+ "Which host log to read (default manager). Same allowlist as debug_tail_logs. Time filtering only applies to `manager` (its lines carry an ISO8601 prefix); the others return their byte-capped tail unfiltered (`time_filtered:false`)."
21292
+ ),
21293
+ since: external_exports.string().min(1).max(40).optional().describe(
21294
+ "Lower bound (ISO8601 UTC, e.g. `2026-06-14T16:00:00Z`). Omit for unbounded. Only meaningful for `manager`."
21295
+ ),
21296
+ until: external_exports.string().min(1).max(40).optional().describe(
21297
+ "Upper bound (ISO8601 UTC, e.g. `2026-06-14T18:00:00Z`). Omit for unbounded (up to now). Only meaningful for `manager`."
21298
+ ),
21299
+ lines: external_exports.number().int().min(1).max(5e3).optional().describe(
21300
+ "Max lines to return (default 1000, max 5000; newest kept). Output is also byte-capped (~20 KB, newest kept) to stay within SSM limits \u2014 `truncated` flags when it clipped. Narrow the window if truncated."
21301
+ )
21302
+ });
21282
21303
  var probeIntegrationSchema = external_exports.object({
21283
21304
  agent_id: external_exports.string().min(1).max(64).describe(
21284
21305
  "UUID of the agent whose integration to probe. Fails closed (uniform not-found) if you are not authorized for its org."
@@ -21525,6 +21546,19 @@ server.tool(
21525
21546
  }
21526
21547
  }
21527
21548
  );
21549
+ server.tool(
21550
+ "debug_query_logs",
21551
+ 'Read an agent\'s HOST logs OVER A TIME WINDOW, spanning rotated files \u2014 the historical counterpart to debug_tail_logs. Where tail only shows the live tail of the current file (minutes, and gone once it rotates), this reads the active log AND its logrotate siblings (manager.log.1, manager.log.2.gz, \u2026 14 kept) and filters lines to [since, until]. This is the read path for "did it restart at 4pm YESTERDAY?" \u2014 use it when the answer is older than the live tail or spans a rotation. Returns { agent_id, code_name, host, log, since, until, time_filtered, content, log_present, lines_requested, truncated, ssm_status }. Time filtering applies to `manager` (its lines carry an ISO8601 prefix); `pane`/`slack-stderr`/`telegram-stderr`/`manager-state` return their byte-capped tail unfiltered (time_filtered:false). Only operational logs are reachable \u2014 secret files (.mcp.json, .env.integrations) are NOT. Pass { agent_id, log?, since?, until?, lines? } (since/until ISO8601 UTC e.g. 2026-06-14T16:00:00Z, default unbounded; lines default 1000, max 5000; output ~20 KB-capped, newest kept \u2014 narrow the window if truncated). Fails closed for an unauthorized org; every call is audited as a cross-org host access.',
21552
+ queryLogsSchema.shape,
21553
+ async (args) => {
21554
+ try {
21555
+ const result = await client.queryLogs(args);
21556
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21557
+ } catch (err) {
21558
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21559
+ }
21560
+ }
21561
+ );
21528
21562
  server.tool(
21529
21563
  "debug_probe_integration",
21530
21564
  "Force a FRESH host-side connectivity probe for ONE of an agent's integrations and return the LIVE verdict \u2014 use when a user reports an integration \"isn't working\" but the console shows it connected, or to confirm a fix landed. Unlike the cached status the dashboard shows, this SSH-less SSM-invokes the agent's host to run the probe against its actual wired `.mcp.json` + credentials, so it can't disagree with reality. Returns { agent_id, code_name, slug, host, verdict, message, probed_at, ssm_status }. `verdict` is the live result: `ok` | `degraded` | `transient_error` (retryable) | `down` | `not_probeable` (no probe wired for this kind) \u2014 or a central degrade: `unreachable` (agent has no host), `not_installed` (integration not on this agent), `host_cli_too_old` (the host predates the probe \u2014 update its agt-cli), `probe_error`. Pass { agent_id, slug } where slug is the integration's definition code_name (e.g. `gmail`, `slack`, `here-now`). Fails closed for an unauthorized org; every call is audited as a cross-org host access.",
@@ -25,8 +25,8 @@ import {
25
25
  takeZombieDetection,
26
26
  writeDirectChatSessionState,
27
27
  writePersistentClaudeWrapper
28
- } from "./chunk-AKOF4VV5.js";
29
- import "./chunk-7F2K3RRD.js";
28
+ } from "./chunk-4P7HUXWI.js";
29
+ import "./chunk-XKAJW4EX.js";
30
30
  import "./chunk-XWVM4KPK.js";
31
31
  export {
32
32
  SEND_KEYS_ENTER_DELAY_MS,
@@ -56,4 +56,4 @@ export {
56
56
  writeDirectChatSessionState,
57
57
  writePersistentClaudeWrapper
58
58
  };
59
- //# sourceMappingURL=persistent-session-5PEPYSMG.js.map
59
+ //# sourceMappingURL=persistent-session-WJBIN6WM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-AKOF4VV5.js";
4
- import "./chunk-7F2K3RRD.js";
3
+ } from "./chunk-4P7HUXWI.js";
4
+ import "./chunk-XKAJW4EX.js";
5
5
  import "./chunk-XWVM4KPK.js";
6
6
 
7
7
  // src/lib/responsiveness-probe.ts
@@ -250,4 +250,4 @@ export {
250
250
  parkPendingInbound,
251
251
  readAndResetChannelDeflections
252
252
  };
253
- //# sourceMappingURL=responsiveness-probe-HG23JDG2.js.map
253
+ //# sourceMappingURL=responsiveness-probe-XVWLBSSH.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.63",
3
+ "version": "0.28.64",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {