@integrity-labs/agt-cli 0.28.493 → 0.28.494

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-MVAEGE6J.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-JEN37LZS.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-7TSEIWGA.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-2RMAJGZH.js.map
@@ -45,7 +45,7 @@ import {
45
45
  resolveEffectivePinRaw,
46
46
  safeWriteJsonAtomic,
47
47
  setConfigHash
48
- } from "../chunk-3XLUSG32.js";
48
+ } from "../chunk-DJNJWFKI.js";
49
49
  import {
50
50
  getProjectDir as getProjectDir2,
51
51
  getReadyTasks,
@@ -163,7 +163,7 @@ import {
163
163
  toOpencodeModel,
164
164
  transcriptActivityAgeSeconds,
165
165
  writeEgressAllowlist
166
- } from "../chunk-SRO2IQ4R.js";
166
+ } from "../chunk-JHEJP3KC.js";
167
167
  import {
168
168
  reapOrphanChannelMcps
169
169
  } from "../chunk-XWVM4KPK.js";
@@ -10216,7 +10216,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
10216
10216
  var lastVersionCheckAt = 0;
10217
10217
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
10218
10218
  var lastResponsivenessProbeAt = 0;
10219
- var agtCliVersion = true ? "0.28.493" : "dev";
10219
+ var agtCliVersion = true ? "0.28.494" : "dev";
10220
10220
  function resolveBrewPath(execFileSync2) {
10221
10221
  try {
10222
10222
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -11379,7 +11379,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
11379
11379
  if (codeNames.length === 0) return;
11380
11380
  void (async () => {
11381
11381
  try {
11382
- const { collectDiagnostics } = await import("../persistent-session-MVAEGE6J.js");
11382
+ const { collectDiagnostics } = await import("../persistent-session-JEN37LZS.js");
11383
11383
  await api.post("/host/heartbeat", {
11384
11384
  host_id: hostId,
11385
11385
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
@@ -11486,7 +11486,7 @@ async function pollCycle() {
11486
11486
  }
11487
11487
  try {
11488
11488
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
11489
- const { collectDiagnostics } = await import("../persistent-session-MVAEGE6J.js");
11489
+ const { collectDiagnostics } = await import("../persistent-session-JEN37LZS.js");
11490
11490
  const diagCodeNames = [...agentState.persistentSessionAgents];
11491
11491
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
11492
11492
  let tailscaleHostname;
@@ -11601,7 +11601,7 @@ async function pollCycle() {
11601
11601
  collectResponsivenessProbes,
11602
11602
  collectPanelessActivityProbes,
11603
11603
  getResponsivenessIntervalMs
11604
- } = await import("../responsiveness-probe-6YXN4G6V.js");
11604
+ } = await import("../responsiveness-probe-MSXL7NVR.js");
11605
11605
  const probeIntervalMs = getResponsivenessIntervalMs();
11606
11606
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
11607
11607
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -11665,7 +11665,7 @@ async function pollCycle() {
11665
11665
  collectResponsivenessProbes,
11666
11666
  livePendingInboundOldestAgeSeconds,
11667
11667
  parkPendingInbound
11668
- } = await import("../responsiveness-probe-6YXN4G6V.js");
11668
+ } = await import("../responsiveness-probe-MSXL7NVR.js");
11669
11669
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
11670
11670
  const wedgeNow = /* @__PURE__ */ new Date();
11671
11671
  const liveAgents = agentState.persistentSessionAgents;
@@ -15154,7 +15154,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
15154
15154
  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}`));
15155
15155
  void (async () => {
15156
15156
  try {
15157
- const { collectDiagnostics } = await import("../persistent-session-MVAEGE6J.js");
15157
+ const { collectDiagnostics } = await import("../persistent-session-JEN37LZS.js");
15158
15158
  await api.post("/host/heartbeat", {
15159
15159
  host_id: hostId,
15160
15160
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
@@ -15204,7 +15204,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
15204
15204
  }
15205
15205
  try {
15206
15206
  const hostId = await getHostId();
15207
- const { collectDiagnostics } = await import("../persistent-session-MVAEGE6J.js");
15207
+ const { collectDiagnostics } = await import("../persistent-session-JEN37LZS.js");
15208
15208
  await api.post("/host/heartbeat", {
15209
15209
  host_id: hostId,
15210
15210
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
@@ -15662,7 +15662,7 @@ async function processClaudePairSessions(agents) {
15662
15662
  killPairSession,
15663
15663
  pairTmuxSession,
15664
15664
  finalizeClaudePairOnboarding
15665
- } = await import("../claude-pair-runtime-7TSEIWGA.js");
15665
+ } = await import("../claude-pair-runtime-2RMAJGZH.js");
15666
15666
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
15667
15667
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
15668
15668
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -234,33 +234,60 @@ function mergeToolsListInto(ct, text) {
234
234
  }
235
235
  function ensureUnionManifest(token) {
236
236
  if (unionOnce) return unionOnce;
237
- unionOnce = (async () => {
237
+ const build = (async () => {
238
+ let reached = false;
239
+ let clean = true;
238
240
  try {
239
241
  const seed = await postRpc(token, buildToolsListRequest());
240
- mergeToolsListInto(seed.ct, seed.text);
242
+ if (seed.ok) {
243
+ reached = true;
244
+ mergeToolsListInto(seed.ct, seed.text);
245
+ } else {
246
+ clean = false;
247
+ logErr(`union: seed tools/list HTTP ${seed.status}`);
248
+ }
241
249
  } catch (err) {
250
+ clean = false;
242
251
  logErr(`union: seed tools/list failed: ${err.message}`);
243
252
  }
244
253
  for (const group of preEnableToolsets) {
245
254
  try {
246
255
  const en = await postRpc(token, buildEnableToolsetRequest(group));
247
256
  if (!en.ok) {
257
+ clean = false;
248
258
  logErr(`union: enable "${group}" HTTP ${en.status}`);
249
259
  continue;
250
260
  }
261
+ reached = true;
251
262
  for (const m of extractJsonRpcMessages(en.ct, en.text)) {
252
263
  for (const nm of parseEnableToolsetResponse(m).newlyAvailable) toolGroupByName.set(nm, group);
253
264
  }
254
265
  for (const nm of parseEnableToolsetResponse(en.text).newlyAvailable) toolGroupByName.set(nm, group);
255
266
  const li = await postRpc(token, buildToolsListRequest());
256
- mergeToolsListInto(li.ct, li.text);
267
+ if (li.ok) {
268
+ mergeToolsListInto(li.ct, li.text);
269
+ } else {
270
+ clean = false;
271
+ logErr(`union: post-enable tools/list "${group}" HTTP ${li.status}`);
272
+ }
257
273
  logErr(`union: enabled "${group}" (union now ${unionToolByName.size} tools, ${toolGroupByName.size} mapped)`);
258
274
  } catch (err) {
275
+ clean = false;
259
276
  logErr(`union: enable "${group}" failed: ${err.message}`);
260
277
  }
261
278
  }
279
+ return { reached, clean };
262
280
  })();
263
- return unionOnce;
281
+ unionOnce = build;
282
+ void build.then(
283
+ (r) => {
284
+ if (!r.reached) unionOnce = null;
285
+ },
286
+ () => {
287
+ unionOnce = null;
288
+ }
289
+ );
290
+ return build;
264
291
  }
265
292
  async function forward(line, id, isNotification, method, params) {
266
293
  if (preEnableToolsets.length > 0 && isManagedActivationCall(method, params)) {
@@ -273,10 +300,15 @@ async function forward(line, id, isNotification, method, params) {
273
300
  return isNotification ? [] : [jsonRpcError(id, -32e3, `${label}: no current access token available (reconnect the integration)`)];
274
301
  }
275
302
  if (method === "tools/list" && preEnableToolsets.length > 0) {
276
- await ensureUnionManifest(token);
303
+ const build = await ensureUnionManifest(token);
277
304
  let tools = [...unionToolByName.values()];
278
305
  if (toolAllowlist.size > 0) tools = tools.filter((t) => toolAllowlist.has(toolName(t)));
279
306
  tools = stripActivationTool(tools);
307
+ if (tools.length === 0 && !build.clean) {
308
+ const why = build.reached ? "upstream calls failed while building it" : "upstream unreachable or token rejected";
309
+ logErr(`tools/list: refusing empty manifest (${why})`);
310
+ return isNotification ? [] : [jsonRpcError(id, -32003, `${label}: could not build the tool manifest (${why}) - reconnect the integration or retry`)];
311
+ }
280
312
  return [JSON.stringify({ jsonrpc: "2.0", id: id ?? null, result: { tools } })];
281
313
  }
282
314
  if (method === "tools/call" && preEnableToolsets.length > 0) {
@@ -36,7 +36,7 @@ import {
36
36
  writeDirectChatSessionState,
37
37
  writeEgressAllowlist,
38
38
  writePersistentClaudeWrapper
39
- } from "./chunk-SRO2IQ4R.js";
39
+ } from "./chunk-JHEJP3KC.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-MVAEGE6J.js.map
80
+ //# sourceMappingURL=persistent-session-JEN37LZS.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-SRO2IQ4R.js";
3
+ } from "./chunk-JHEJP3KC.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-6YXN4G6V.js.map
599
+ //# sourceMappingURL=responsiveness-probe-MSXL7NVR.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.493",
3
+ "version": "0.28.494",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {