@integrity-labs/agt-cli 0.28.464 → 0.28.465
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.
- package/dist/bin/agt.js +4 -4
- package/dist/{chunk-Q5GHZOXL.js → chunk-2X7LDBRB.js} +3 -3
- package/dist/{chunk-QZUECTC7.js → chunk-GPSEUO2D.js} +1 -1
- package/dist/{chunk-QZUECTC7.js.map → chunk-GPSEUO2D.js.map} +1 -1
- package/dist/{claude-pair-runtime-VTW57E4U.js → claude-pair-runtime-63X4ERBM.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/augmented-admin.js +21 -1
- package/dist/{persistent-session-HRVZVAIL.js → persistent-session-UYMZ2MEI.js} +2 -2
- package/dist/{responsiveness-probe-UUVXQIQ4.js → responsiveness-probe-WXHKKJ7N.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-Q5GHZOXL.js.map → chunk-2X7LDBRB.js.map} +0 -0
- /package/dist/{claude-pair-runtime-VTW57E4U.js.map → claude-pair-runtime-63X4ERBM.js.map} +0 -0
- /package/dist/{persistent-session-HRVZVAIL.js.map → persistent-session-UYMZ2MEI.js.map} +0 -0
- /package/dist/{responsiveness-probe-UUVXQIQ4.js.map → responsiveness-probe-WXHKKJ7N.js.map} +0 -0
|
@@ -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-
|
|
103
|
+
const { resolveClaudeBinary } = await import("./persistent-session-UYMZ2MEI.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-
|
|
376
|
+
//# sourceMappingURL=claude-pair-runtime-63X4ERBM.js.map
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
resolveEffectivePinRaw,
|
|
43
43
|
safeWriteJsonAtomic,
|
|
44
44
|
setConfigHash
|
|
45
|
-
} from "../chunk-
|
|
45
|
+
} from "../chunk-2X7LDBRB.js";
|
|
46
46
|
import {
|
|
47
47
|
getProjectDir as getProjectDir2,
|
|
48
48
|
getReadyTasks,
|
|
@@ -164,7 +164,7 @@ import {
|
|
|
164
164
|
toOpencodeModel,
|
|
165
165
|
transcriptActivityAgeSeconds,
|
|
166
166
|
writeEgressAllowlist
|
|
167
|
-
} from "../chunk-
|
|
167
|
+
} from "../chunk-GPSEUO2D.js";
|
|
168
168
|
import {
|
|
169
169
|
reapOrphanChannelMcps
|
|
170
170
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -9976,7 +9976,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
9976
9976
|
var lastVersionCheckAt = 0;
|
|
9977
9977
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
9978
9978
|
var lastResponsivenessProbeAt = 0;
|
|
9979
|
-
var agtCliVersion = true ? "0.28.
|
|
9979
|
+
var agtCliVersion = true ? "0.28.465" : "dev";
|
|
9980
9980
|
function resolveBrewPath(execFileSync2) {
|
|
9981
9981
|
try {
|
|
9982
9982
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -11137,7 +11137,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
11137
11137
|
if (codeNames.length === 0) return;
|
|
11138
11138
|
void (async () => {
|
|
11139
11139
|
try {
|
|
11140
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11140
|
+
const { collectDiagnostics } = await import("../persistent-session-UYMZ2MEI.js");
|
|
11141
11141
|
await api.post("/host/heartbeat", {
|
|
11142
11142
|
host_id: hostId,
|
|
11143
11143
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -11244,7 +11244,7 @@ async function pollCycle() {
|
|
|
11244
11244
|
}
|
|
11245
11245
|
try {
|
|
11246
11246
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
11247
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11247
|
+
const { collectDiagnostics } = await import("../persistent-session-UYMZ2MEI.js");
|
|
11248
11248
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
11249
11249
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
|
|
11250
11250
|
let tailscaleHostname;
|
|
@@ -11358,7 +11358,7 @@ async function pollCycle() {
|
|
|
11358
11358
|
collectResponsivenessProbes,
|
|
11359
11359
|
collectPanelessActivityProbes,
|
|
11360
11360
|
getResponsivenessIntervalMs
|
|
11361
|
-
} = await import("../responsiveness-probe-
|
|
11361
|
+
} = await import("../responsiveness-probe-WXHKKJ7N.js");
|
|
11362
11362
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
11363
11363
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
11364
11364
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -11422,7 +11422,7 @@ async function pollCycle() {
|
|
|
11422
11422
|
collectResponsivenessProbes,
|
|
11423
11423
|
livePendingInboundOldestAgeSeconds,
|
|
11424
11424
|
parkPendingInbound
|
|
11425
|
-
} = await import("../responsiveness-probe-
|
|
11425
|
+
} = await import("../responsiveness-probe-WXHKKJ7N.js");
|
|
11426
11426
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
11427
11427
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
11428
11428
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -14861,7 +14861,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
14861
14861
|
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}`));
|
|
14862
14862
|
void (async () => {
|
|
14863
14863
|
try {
|
|
14864
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
14864
|
+
const { collectDiagnostics } = await import("../persistent-session-UYMZ2MEI.js");
|
|
14865
14865
|
await api.post("/host/heartbeat", {
|
|
14866
14866
|
host_id: hostId,
|
|
14867
14867
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -14911,7 +14911,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
14911
14911
|
}
|
|
14912
14912
|
try {
|
|
14913
14913
|
const hostId = await getHostId();
|
|
14914
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
14914
|
+
const { collectDiagnostics } = await import("../persistent-session-UYMZ2MEI.js");
|
|
14915
14915
|
await api.post("/host/heartbeat", {
|
|
14916
14916
|
host_id: hostId,
|
|
14917
14917
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15369,7 +15369,7 @@ async function processClaudePairSessions(agents) {
|
|
|
15369
15369
|
killPairSession,
|
|
15370
15370
|
pairTmuxSession,
|
|
15371
15371
|
finalizeClaudePairOnboarding
|
|
15372
|
-
} = await import("../claude-pair-runtime-
|
|
15372
|
+
} = await import("../claude-pair-runtime-63X4ERBM.js");
|
|
15373
15373
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
15374
15374
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
15375
15375
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -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
|
|
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-
|
|
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-
|
|
80
|
+
//# sourceMappingURL=persistent-session-UYMZ2MEI.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
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-
|
|
599
|
+
//# sourceMappingURL=responsiveness-probe-WXHKKJ7N.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|