@integrity-labs/agt-cli 0.28.40 → 0.28.41

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.
@@ -21097,6 +21097,12 @@ var AdminDebugClient = class _AdminDebugClient {
21097
21097
  listAlerts(args) {
21098
21098
  return this.get("/admin/debug/alerts", _AdminDebugClient.cleanQuery(args));
21099
21099
  }
21100
+ hostVersions(args) {
21101
+ return this.get("/admin/debug/host-versions", _AdminDebugClient.cleanQuery(args));
21102
+ }
21103
+ tailLogs(args) {
21104
+ return this.get("/admin/debug/tail-logs", _AdminDebugClient.cleanQuery(args));
21105
+ }
21100
21106
  queryAuditLog(args) {
21101
21107
  return this.get("/admin/debug/audit-log", _AdminDebugClient.cleanQuery(args));
21102
21108
  }
@@ -21195,6 +21201,23 @@ var searchHostsSchema = external_exports.object({
21195
21201
  status: external_exports.string().max(32).optional().describe("Filter by host status (active | decommissioned)."),
21196
21202
  limit: limitSchema
21197
21203
  });
21204
+ var hostVersionsSchema = external_exports.object({
21205
+ q: external_exports.string().max(128).optional().describe("Case-insensitive substring match on host name."),
21206
+ status: external_exports.string().max(32).optional().describe("Filter by host status (active | decommissioned)."),
21207
+ since_hours: external_exports.number().int().min(1).max(720).optional().describe("Window for the restart count, in hours. Default 24."),
21208
+ limit: limitSchema
21209
+ });
21210
+ var tailLogsSchema = external_exports.object({
21211
+ agent_id: external_exports.string().min(1).max(64).describe(
21212
+ "UUID of the agent whose host log to tail. Fails closed (uniform not-found) if you are not authorized for its org."
21213
+ ),
21214
+ log: external_exports.enum(["manager", "pane", "slack-stderr", "telegram-stderr", "manager-state"]).optional().describe(
21215
+ `Which host log to read (default manager). manager = manager.log (lifecycle / respawn / wedge lines); pane = pane.log (the tmux pane \u2014 the agent's visible I/O, what it was "actually doing"); slack-stderr / telegram-stderr = that channel MCP's stderr (crash diagnosis); manager-state = manager-state.json (current per-agent state snapshot).`
21216
+ ),
21217
+ lines: external_exports.number().int().min(1).max(2e3).optional().describe(
21218
+ "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."
21219
+ )
21220
+ });
21198
21221
  var listAlertsSchema = external_exports.object({
21199
21222
  severity: external_exports.string().max(16).optional().describe("Filter by severity (critical | warning | info)."),
21200
21223
  open: external_exports.boolean().optional().describe("When true, only currently-open (unclosed) alerts."),
@@ -21225,8 +21248,15 @@ var checkActionStatusSchema = external_exports.object({
21225
21248
  request_id: external_exports.string().min(1).max(64).describe("The action request_id returned by request_action or request_config_update.")
21226
21249
  });
21227
21250
  var queryAuditLogSchema = external_exports.object({
21228
- agent_id: external_exports.string().min(1).max(64).describe("UUID of the agent whose audit events to read (required \u2014 the read is scoped to this agent's org)."),
21229
- action: external_exports.string().max(64).optional().describe('Audit action to filter by. Defaults to "agent.restart" (restart events). e.g. "agent.restart".'),
21251
+ agent_id: external_exports.string().min(1).max(64).optional().describe(
21252
+ "UUID of ONE agent whose audit events to read (the read is scoped to that agent's org). Omit for a CROSS-AGENT query across all authorized orgs (optionally narrowed with org_id)."
21253
+ ),
21254
+ org_id: external_exports.string().min(1).max(64).optional().describe(
21255
+ "CROSS-AGENT mode only: narrow the sweep to a single org you are authorized for. Ignored when agent_id is set. Omit to read every authorized org."
21256
+ ),
21257
+ action: external_exports.string().max(64).optional().describe(
21258
+ 'Audit action to filter by. Defaults to "agent.restart" (restart events). Pass the sentinel "all" to drop the action filter and read every action (still bounded by limit + since_hours).'
21259
+ ),
21230
21260
  since_hours: external_exports.number().int().min(1).max(720).optional().describe("Only events newer than this many hours. Omit for no time bound."),
21231
21261
  limit: limitSchema
21232
21262
  });
@@ -21352,9 +21382,35 @@ server.tool(
21352
21382
  }
21353
21383
  }
21354
21384
  );
21385
+ server.tool(
21386
+ "debug_host_versions",
21387
+ 'Fleet-wide host health snapshot for triaging "which host is unhealthy?". Returns a projection per authorized host: { id, name, org, framework, framework_version (the Claude Code version the host runs), last_seen_verdict, agent_count, restart_count, restart_window_hours }. `restart_count` tallies `agent.restart` audit events across the host\'s agents within the window (default 24h) \u2014 a high count is the tell for a thrashing host. Use it to spot version skew (an old framework_version) or restart storms across the fleet at a glance. Filter with { q, status, since_hours, limit }.',
21388
+ hostVersionsSchema.shape,
21389
+ async (args) => {
21390
+ try {
21391
+ const result = await client.hostVersions(args);
21392
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21393
+ } catch (err) {
21394
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21395
+ }
21396
+ }
21397
+ );
21398
+ server.tool(
21399
+ "debug_tail_logs",
21400
+ "Live-tail an agent's HOST logs over SSM to ground-truth \"what was it actually doing?\" \u2014 the host-reaching read, used after debug_get_agent points at a sick agent. Resolves the agent's current host and returns the trailing lines of ONE allowlisted operational log: { agent_id, code_name, host, log, content (the tail), log_present, lines_requested, truncated, ssm_status }. Logs: `manager` (manager.log \u2014 respawn/wedge/lifecycle), `pane` (pane.log \u2014 the tmux pane, the agent's visible I/O, e.g. a stuck AskUserQuestion), `slack-stderr`/`telegram-stderr` (a channel MCP's crash output), `manager-state` (manager-state.json). Fails closed for an unauthorized org. Only operational logs are reachable \u2014 secret files (.mcp.json, .env.integrations) are NOT. Pass { agent_id, log?, lines? } (lines default 200, max 2000; output ~20 KB-capped, newest kept). Every call is audited as a cross-org host access.",
21401
+ tailLogsSchema.shape,
21402
+ async (args) => {
21403
+ try {
21404
+ const result = await client.tailLogs(args);
21405
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21406
+ } catch (err) {
21407
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21408
+ }
21409
+ }
21410
+ );
21355
21411
  server.tool(
21356
21412
  "debug_query_audit_log",
21357
- 'Read recent audit events for ONE agent \u2014 primarily restart events \u2014 to troubleshoot why/when it bounced. Defaults to the "agent.restart" action: each event returns { created_at, source, reason, actor_kind }, where `source` is the restart trigger (agent-self-request, channel-command, maintenance-window, stale-mcp, hot-reload-mcp, mcp-presence-reaper, day-rollover, auth-tuple-change, \u2026) and `reason` is the free-text rationale when one was given (e.g. the agent\'s own words for a request_restart). Use it when an agent went quiet or restarted unexpectedly and you want the recent restart history with reasons. Pass { agent_id, action?, since_hours?, limit? }; agent_id is required and the read is scoped to that agent\'s org (fails closed if you\'re not authorized for it). To read non-restart events pass a different `action` (e.g. "agent.auto_resumed").',
21413
+ 'Read recent audit events to troubleshoot why/when agents bounced \u2014 primarily restart events. Defaults to the "agent.restart" action: each event returns { created_at, source, reason, actor_kind, agent_id, code_name }, where `source` is the restart trigger (agent-self-request, channel-command, maintenance-window, stale-mcp, hot-reload-mcp, mcp-presence-reaper, day-rollover, auth-tuple-change, \u2026) and `reason` is the free-text rationale when one was given (e.g. the agent\'s own words for a request_restart). Two modes: (1) pass { agent_id } to scope to ONE agent (fails closed if you\'re not authorized for its org) \u2014 use when a specific agent went quiet. (2) OMIT agent_id for a CROSS-AGENT sweep across every org you\'re authorized for (optionally narrow with { org_id }) \u2014 use to spot fleet-wide restart storms or compare agents. Filter the action with `action` (pass "all" to drop the action filter and read every event type), and bound with { since_hours?, limit? }. Cross-agent results are org-walled in SQL; unauthorized orgs are invisible.',
21358
21414
  queryAuditLogSchema.shape,
21359
21415
  async (args) => {
21360
21416
  try {
@@ -25,8 +25,8 @@ import {
25
25
  takeZombieDetection,
26
26
  writeDirectChatSessionState,
27
27
  writePersistentClaudeWrapper
28
- } from "./chunk-57MHPANB.js";
29
- import "./chunk-X5E2Q3W2.js";
28
+ } from "./chunk-2BRF2FDJ.js";
29
+ import "./chunk-SJUD2BWU.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-CFELQZI7.js.map
59
+ //# sourceMappingURL=persistent-session-PNY26VBX.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-57MHPANB.js";
4
- import "./chunk-X5E2Q3W2.js";
3
+ } from "./chunk-2BRF2FDJ.js";
4
+ import "./chunk-SJUD2BWU.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-YOT3EKKN.js.map
253
+ //# sourceMappingURL=responsiveness-probe-4YMZ6LXO.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.40",
3
+ "version": "0.28.41",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {