@integrity-labs/agt-cli 0.28.68 → 0.28.70

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.
@@ -21102,6 +21102,22 @@ var AdminDebugClient = class _AdminDebugClient {
21102
21102
  inspectFlags(args) {
21103
21103
  return this.get("/admin/debug/inspect-flags", _AdminDebugClient.cleanQuery(args));
21104
21104
  }
21105
+ // ENG-6516: alert triage writes — a single triage route, three ergonomic verbs.
21106
+ triageAlert(alertId, body) {
21107
+ return this.post(`/admin/debug/alerts/${encodeURIComponent(alertId)}/triage`, body);
21108
+ }
21109
+ /** Acknowledge an open alert (ENG-6516). */
21110
+ ackAlert(args) {
21111
+ return this.triageAlert(args.alert_id, { action: "ack", reason: args.reason });
21112
+ }
21113
+ /** Snooze an open alert until 15m|1h|4h|until_tomorrow (ENG-6516). */
21114
+ snoozeAlert(args) {
21115
+ return this.triageAlert(args.alert_id, { action: "snooze", duration: args.duration, reason: args.reason });
21116
+ }
21117
+ /** Close an open alert (closed_reason=manual) (ENG-6516). */
21118
+ closeAlert(args) {
21119
+ return this.triageAlert(args.alert_id, { action: "close", reason: args.reason });
21120
+ }
21105
21121
  /** List the orgs you're authorized to read, with tier + grant standing + rollups (ENG-6483). */
21106
21122
  searchOrgs(args) {
21107
21123
  return this.get("/admin/debug/orgs", _AdminDebugClient.cleanQuery(args));
@@ -21282,6 +21298,21 @@ var inspectFlagsSchema = external_exports.object({
21282
21298
  host: external_exports.string().min(1).max(128).optional().describe("The host id (uuid) or its exact, case-insensitive name. Pass this OR agent_id."),
21283
21299
  agent_id: external_exports.string().min(1).max(64).optional().describe("The agent UUID \u2014 flags are inspected on the agent's current host. Pass this OR host.")
21284
21300
  });
21301
+ var alertIdField = external_exports.string().min(1).max(64).describe("The alert id (uuid), from debug_list_alerts.");
21302
+ var triageReasonField = external_exports.string().max(2e3).optional().describe("Why \u2014 recorded on the cross-org audit trail. Be specific.");
21303
+ var ackAlertSchema = external_exports.object({
21304
+ alert_id: alertIdField,
21305
+ reason: triageReasonField
21306
+ });
21307
+ var snoozeAlertSchema = external_exports.object({
21308
+ alert_id: alertIdField,
21309
+ duration: external_exports.enum(["15m", "1h", "4h", "until_tomorrow"]).describe("How long to suppress paging: 15m | 1h | 4h | until_tomorrow (09:00 UTC next day)."),
21310
+ reason: triageReasonField
21311
+ });
21312
+ var closeAlertSchema = external_exports.object({
21313
+ alert_id: alertIdField,
21314
+ reason: triageReasonField
21315
+ });
21285
21316
  var hostVersionsSchema = external_exports.object({
21286
21317
  q: external_exports.string().max(128).optional().describe("Case-insensitive substring match on host name."),
21287
21318
  status: external_exports.string().max(32).optional().describe("Filter by host status (active | decommissioned)."),
@@ -21557,6 +21588,45 @@ server.tool(
21557
21588
  }
21558
21589
  }
21559
21590
  );
21591
+ server.tool(
21592
+ "debug_ack_alert",
21593
+ "Acknowledge an open alert \u2014 close the triage loop here instead of bouncing to the webapp. Stops escalation/paging for it without closing it. Unlike the host-affecting remedial actions this is a low-risk, reversible control-plane write (it sets acknowledged_at/by on the alert row), so it applies directly \u2014 gated by the admin-debug write mode and authorized against the alert's org (a NULL-org infra alert is IL-internal-only). Returns { alert_id, action, write_mode, applied, alert }. `applied:false` means write mode is `shadow` (validated, not written). Get the alert id from debug_list_alerts. Pass { alert_id, reason? }. Every call is audited as a cross-org access.",
21594
+ ackAlertSchema.shape,
21595
+ async (args) => {
21596
+ try {
21597
+ const result = await client.ackAlert(args);
21598
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21599
+ } catch (err) {
21600
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21601
+ }
21602
+ }
21603
+ );
21604
+ server.tool(
21605
+ "debug_snooze_alert",
21606
+ "Snooze an open alert \u2014 suppress fresh pages for it until 15m | 1h | 4h | until_tomorrow (09:00 UTC next day), without closing it. Low-risk reversible control-plane write (sets snoozed_until); applies directly under the admin-debug write mode, authorized against the alert's org. Returns { alert_id, action, write_mode, applied, alert }; `applied:false` \u21D2 shadow mode. Pass { alert_id, duration, reason? }. Audited as a cross-org access.",
21607
+ snoozeAlertSchema.shape,
21608
+ async (args) => {
21609
+ try {
21610
+ const result = await client.snoozeAlert(args);
21611
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21612
+ } catch (err) {
21613
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21614
+ }
21615
+ }
21616
+ );
21617
+ server.tool(
21618
+ "debug_close_alert",
21619
+ "Close an open alert (closed_reason=manual) \u2014 resolve it from here when you've confirmed it's handled, instead of the webapp. Low-risk control-plane write (sets closed_at + closed_reason); applies directly under the admin-debug write mode, authorized against the alert's org. Only OPEN alerts can be closed (a 409 means it was already closed). Returns { alert_id, action, write_mode, applied, alert }; `applied:false` \u21D2 shadow mode. Pass { alert_id, reason? }. Audited as a cross-org access.",
21620
+ closeAlertSchema.shape,
21621
+ async (args) => {
21622
+ try {
21623
+ const result = await client.closeAlert(args);
21624
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21625
+ } catch (err) {
21626
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21627
+ }
21628
+ }
21629
+ );
21560
21630
  server.tool(
21561
21631
  "debug_search_orgs",
21562
21632
  `List the ORGANIZATIONS you're authorized to read \u2014 the org-level entry point for triage and access decisions, so you don't have to infer orgs off agent/host rows or probe one org's tier with debug_request_access. Returns a projection per org: { organization_id, organization_slug, display_name, is_internal, management_mode (fully_managed | self_managed), standing_reason (internal | fully_managed | granted \u2014 WHY you can read it), has_active_grant (do you hold a live grant right now), host_count, agent_count, active_agent_count, open_alert_count, created_at }. Use it to (1) decide access in one read \u2014 see a self_managed org and its grant state before deciding to debug_request_access; (2) triage the fleet \u2014 "which orgs have open alerts" (open_alert_count includes stuck-restart alerts) without walking agents; (3) disambiguate a slug \u2192 id \u2192 tier without needing an agent/host to exist. Authorized = IL-owned (is_internal) + fully-managed orgs (standing) plus any self-managed org you hold an active grant for. Filter with { q (slug/name substring), management_mode, is_internal, limit }. Projection only \u2014 no secrets, no transcripts; org-walled in SQL and audited as a cross-org access.`,
@@ -25,8 +25,8 @@ import {
25
25
  takeZombieDetection,
26
26
  writeDirectChatSessionState,
27
27
  writePersistentClaudeWrapper
28
- } from "./chunk-SS56LU6L.js";
29
- import "./chunk-BBD64HBH.js";
28
+ } from "./chunk-CVKQDF5V.js";
29
+ import "./chunk-OM27L4X2.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-666YVY2K.js.map
59
+ //# sourceMappingURL=persistent-session-Y7WG66VC.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-SS56LU6L.js";
4
- import "./chunk-BBD64HBH.js";
3
+ } from "./chunk-CVKQDF5V.js";
4
+ import "./chunk-OM27L4X2.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-ERMYT2UH.js.map
253
+ //# sourceMappingURL=responsiveness-probe-UK2AFQRX.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.68",
3
+ "version": "0.28.70",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {