@integrity-labs/agt-cli 0.28.464 → 0.28.466

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.
@@ -21091,6 +21091,10 @@ var AdminDebugClient = class _AdminDebugClient {
21091
21091
  getAgent(agentId) {
21092
21092
  return this.get(`/admin/debug/agents/${encodeURIComponent(agentId)}`);
21093
21093
  }
21094
+ /** The agent's effective integration set — agent + team + org, scope-attributed (ENG-8271). */
21095
+ getAgentIntegrations(agentId) {
21096
+ return this.get(`/admin/debug/agents/${encodeURIComponent(agentId)}/integrations`);
21097
+ }
21094
21098
  searchHosts(args) {
21095
21099
  return this.get("/admin/debug/hosts", _AdminDebugClient.cleanQuery(args));
21096
21100
  }
@@ -21289,6 +21293,9 @@ var searchOrgsSchema = external_exports.object({
21289
21293
  var getAgentSchema = external_exports.object({
21290
21294
  agent_id: external_exports.string().min(1).max(64).describe("The agent UUID to fetch a composite diagnostic for.")
21291
21295
  });
21296
+ var getAgentIntegrationsSchema = external_exports.object({
21297
+ agent_id: external_exports.string().min(1).max(64).describe("The agent UUID whose effective integration set to resolve.")
21298
+ });
21292
21299
  var searchHostsSchema = external_exports.object({
21293
21300
  q: external_exports.string().max(128).optional().describe("Case-insensitive substring match on host name."),
21294
21301
  status: external_exports.string().max(32).optional().describe("Filter by host status (active | decommissioned)."),
@@ -21529,7 +21536,7 @@ server.tool(
21529
21536
  );
21530
21537
  server.tool(
21531
21538
  "debug_get_agent",
21532
- 'Fetch a composite diagnostic for ONE agent: the agent projection plus its host (heartbeat verdict, framework, EC2/auth status), its integrations (status + connectivity verdicts, never credentials), and recent alerts. The primary "why is this agent unhealthy?" read. Pass { agent_id }.',
21539
+ 'Fetch a composite diagnostic for ONE agent: the agent projection plus its host (heartbeat verdict, framework, EC2/auth status), its integrations, and recent alerts. The primary "why is this agent unhealthy?" read. Never returns credentials. Pass { agent_id }.\n\nThe payload carries TWO integration reads, and confusing them produces wrong root-cause (ENG-8271):\n \u2022 `effective_integrations` \u2014 the COMPLETE set the agent runs with: agent + team + ORG scope, each entry carrying `scope` ("agent" | "team" | "org") and `source_id`. Read THIS to answer "does this agent have integration X?". `effective_count` equals the manager\'s `Integrations provisioned for \'<code_name>\' (N)`, so the two reconcile; `by_scope`, `inherited_definition_ids`, `scopes_skipped`, `excluded_control_plane_only`, `shadowed_by_more_specific` and `duplicate_merge_keys` attribute any row that did not make the count.\n \u2022 `agent_integrations` \u2014 PER-AGENT rows only, kept for compatibility. Team- and org-scoped installs are ABSENT. Do NOT infer "not installed" from an absence here: an org-level install is genuinely missing from this array while being fully present on the agent. Same warning ships in-payload as `agent_integrations_note`.',
21533
21540
  getAgentSchema.shape,
21534
21541
  async (args) => {
21535
21542
  try {
@@ -21540,6 +21547,19 @@ server.tool(
21540
21547
  }
21541
21548
  }
21542
21549
  );
21550
+ server.tool(
21551
+ "debug_get_agent_integrations",
21552
+ 'Resolve ONE agent\'s EFFECTIVE integration set \u2014 the focused read for "does this agent have integration X, and where is it installed from?" (ENG-8271). Same resolution as `debug_get_agent`\'s `effective_integrations`, without the host/alerts payload.\n\nReturns { agent_id, code_name, team_id, organization_id, effective_integrations: { effective_count, by_scope, inherited_definition_ids, excluded_control_plane_only, shadowed_by_more_specific, duplicate_merge_keys, scopes_queried, scopes_skipped, integrations[] } } - the same `effective_integrations` object `debug_get_agent` returns, so one shape covers both tools. Each entry: { definition_id, display_name, connection_key, scope ("agent" | "team" | "org"), source_id, status, status_message, auth_type, last_connectivity_check_at, last_connectivity_status, consecutive_connectivity_failures, wired_verdict, last_session_tool_bind_at }. Never credentials.\n\nPrefer this over reading `agent_integrations`: TEAM/ORG-scope installs are invisible to a per-agent read, so absence there is not evidence. `effective_count` reconciles against the manager\'s `Integrations provisioned for \'<code_name>\' (N)` or the tool-bind probe\'s `due=N`; docs/runbooks/admin-debug-dogfood.md lists the benign divergences to rule out before treating a mismatch as a bug. `wired_verdict` is the host\'s last session-tool-bind result (bound | missing | unreachable | unknown), the closest available answer to "is it in the agent\'s .mcp.json right now?"; `null` means never probed, which is NOT "not wired".\n\nFails closed (uniform not-found) for an unauthorized/unknown agent; a failed scope query returns an error rather than a smaller count. Audited as a cross-org access. Pass { agent_id }.',
21553
+ getAgentIntegrationsSchema.shape,
21554
+ async (args) => {
21555
+ try {
21556
+ const result = await client.getAgentIntegrations(args.agent_id);
21557
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
21558
+ } catch (err) {
21559
+ return { content: [{ type: "text", text: formatError2(err) }], isError: true };
21560
+ }
21561
+ }
21562
+ );
21543
21563
  server.tool(
21544
21564
  "debug_search_hosts",
21545
21565
  "Search managed hosts across authorized orgs. Returns a projection per host (name, org, status, framework version, last-seen verdict, EC2 + Claude auth status) \u2014 no api-key fingerprints or secrets. Filter with { q, status, limit }.",
@@ -36,7 +36,7 @@ import {
36
36
  writeDirectChatSessionState,
37
37
  writeEgressAllowlist,
38
38
  writePersistentClaudeWrapper
39
- } from "./chunk-QZUECTC7.js";
39
+ } from "./chunk-GPSEUO2D.js";
40
40
  import "./chunk-XWVM4KPK.js";
41
41
  export {
42
42
  EGRESS_BASELINE_DOMAINS,
@@ -77,4 +77,4 @@ export {
77
77
  writeEgressAllowlist,
78
78
  writePersistentClaudeWrapper
79
79
  };
80
- //# sourceMappingURL=persistent-session-HRVZVAIL.js.map
80
+ //# sourceMappingURL=persistent-session-UYMZ2MEI.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-QZUECTC7.js";
3
+ } from "./chunk-GPSEUO2D.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -596,4 +596,4 @@ export {
596
596
  readAndResetSlackReplyBindingClassifications,
597
597
  readAndResetSlackReplyTargetClassifications
598
598
  };
599
- //# sourceMappingURL=responsiveness-probe-UUVXQIQ4.js.map
599
+ //# sourceMappingURL=responsiveness-probe-WXHKKJ7N.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.464",
3
+ "version": "0.28.466",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {