@integrity-labs/agt-cli 0.26.0 → 0.26.1

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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  claudeModelAlias
3
- } from "./chunk-YMIDZT5T.js";
3
+ } from "./chunk-7NDNTSHD.js";
4
4
 
5
5
  // src/lib/persistent-session.ts
6
6
  import { spawn, execSync, execFileSync as execFileSync2 } from "child_process";
@@ -1113,4 +1113,4 @@ export {
1113
1113
  stopAllSessionsAndWait,
1114
1114
  getProjectDir
1115
1115
  };
1116
- //# sourceMappingURL=chunk-LULDCIUS.js.map
1116
+ //# sourceMappingURL=chunk-QJJAGFJJ.js.map
@@ -9,7 +9,7 @@ import {
9
9
  parseDeliveryTarget,
10
10
  registerFramework,
11
11
  wrapScheduledTaskPrompt
12
- } from "./chunk-YMIDZT5T.js";
12
+ } from "./chunk-7NDNTSHD.js";
13
13
 
14
14
  // ../../packages/core/dist/integrations/registry.js
15
15
  var INTEGRATION_REGISTRY = [
@@ -6588,4 +6588,4 @@ export {
6588
6588
  managerInstallSystemUnitCommand,
6589
6589
  managerUninstallSystemUnitCommand
6590
6590
  };
6591
- //# sourceMappingURL=chunk-XG4X7BNT.js.map
6591
+ //# sourceMappingURL=chunk-UTPOHAX7.js.map
@@ -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-3ITHPO4P.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-E5EZ32CI.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-7PHOEAUN.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-A35NZYDN.js.map
@@ -13,7 +13,7 @@ import {
13
13
  provisionOrientHook,
14
14
  provisionStopHook,
15
15
  requireHost
16
- } from "../chunk-XG4X7BNT.js";
16
+ } from "../chunk-UTPOHAX7.js";
17
17
  import {
18
18
  getProjectDir as getProjectDir2,
19
19
  getReadyTasks,
@@ -46,7 +46,7 @@ import {
46
46
  stopAllSessionsAndWait,
47
47
  stopPersistentSession,
48
48
  takeZombieDetection
49
- } from "../chunk-LULDCIUS.js";
49
+ } from "../chunk-QJJAGFJJ.js";
50
50
  import {
51
51
  KANBAN_CHECK_COMMAND,
52
52
  appendDmFooter,
@@ -69,7 +69,7 @@ import {
69
69
  resolveConnectivityProbe,
70
70
  resolveDmTarget,
71
71
  wrapScheduledTaskPrompt
72
- } from "../chunk-YMIDZT5T.js";
72
+ } from "../chunk-7NDNTSHD.js";
73
73
 
74
74
  // src/lib/manager-worker.ts
75
75
  import { createHash as createHash3 } from "crypto";
@@ -2962,7 +2962,14 @@ async function runAgentConnectivityProbes(agent, integrations, projectDir) {
2962
2962
  auth_type: i.auth_type,
2963
2963
  source_type: i.source_type ?? null,
2964
2964
  credentials: i.credentials,
2965
- last_connectivity_check_at: i.last_connectivity_check_at ?? null
2965
+ last_connectivity_check_at: i.last_connectivity_check_at ?? null,
2966
+ // ENG-5665: for managed (Composio) + mcp_server toolkits the connectivity
2967
+ // probe is an MCP `tools/list` against the agent's wired server. Derive the
2968
+ // .mcp.json server key the same way the managed-toolkit writer does
2969
+ // (definition_id === toolkit_id, sanitised: non-alnum → '_', lowercased —
2970
+ // e.g. 'composio_outlook'). The executor looks this up in .mcp.json; an
2971
+ // unresolvable key degrades to transient_error, never a false 'down'.
2972
+ mcp_server_key: i.source_type === "managed" || i.source_type === "mcp_server" ? i.definition_id.replace(/[^a-z0-9]/gi, "_").toLowerCase() : void 0
2966
2973
  })),
2967
2974
  { probeDeps, intervalMs: intervalSec * 1e3 }
2968
2975
  );
@@ -3126,7 +3133,7 @@ var cachedFrameworkVersion = null;
3126
3133
  var lastVersionCheckAt = 0;
3127
3134
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
3128
3135
  var lastResponsivenessProbeAt = 0;
3129
- var agtCliVersion = true ? "0.26.0" : "dev";
3136
+ var agtCliVersion = true ? "0.26.1" : "dev";
3130
3137
  function resolveBrewPath(execFileSync4) {
3131
3138
  try {
3132
3139
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -4085,7 +4092,7 @@ async function pollCycle() {
4085
4092
  }
4086
4093
  try {
4087
4094
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
4088
- const { collectDiagnostics } = await import("../persistent-session-3ITHPO4P.js");
4095
+ const { collectDiagnostics } = await import("../persistent-session-E5EZ32CI.js");
4089
4096
  const diagCodeNames = [...persistentSessionAgents];
4090
4097
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
4091
4098
  let tailscaleHostname;
@@ -4143,7 +4150,7 @@ async function pollCycle() {
4143
4150
  const {
4144
4151
  collectResponsivenessProbes,
4145
4152
  getResponsivenessIntervalMs
4146
- } = await import("../responsiveness-probe-7XWORQLO.js");
4153
+ } = await import("../responsiveness-probe-MLUVAXJH.js");
4147
4154
  const probeIntervalMs = getResponsivenessIntervalMs();
4148
4155
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
4149
4156
  const probeCodeNames = [...persistentSessionAgents];
@@ -5715,12 +5722,7 @@ async function processAgent(agent, agentStates) {
5715
5722
  for (const item of newlyDone) {
5716
5723
  log(`Newly done: '${item.title}' notify_channel=${item.notify_channel ?? "none"} notify_to=${item.notify_to ?? "none"}`);
5717
5724
  if (item.notify_channel && item.notify_to) {
5718
- const isFailed = item.status === "failed";
5719
- const resultLine = item.result ? `
5720
- ${isFailed ? "Reason" : "Result"}: ${item.result}` : "";
5721
- const emoji = isFailed ? "\u274C" : "\u2705";
5722
- const message = `${emoji} ${isFailed ? "Task Failed" : "Task Complete"} \u2014 ${displayName}
5723
- ${item.title}${resultLine}`;
5725
+ const message = await buildDoneCardNotification(agentId, agent.code_name, displayName, item);
5724
5726
  sendTaskNotification(agent.code_name, item.notify_channel, item.notify_to, message).catch((err) => {
5725
5727
  log(`sendTaskNotification failed for '${agent.code_name}': ${err.message}`);
5726
5728
  });
@@ -7242,6 +7244,7 @@ var lastHarvestAt = /* @__PURE__ */ new Map();
7242
7244
  var HARVEST_INTERVAL_MS = 3 * 60 * 1e3;
7243
7245
  var kanbanBoardCache = /* @__PURE__ */ new Map();
7244
7246
  var notifyBoardCache = /* @__PURE__ */ new Map();
7247
+ var NOTIFY_RESULT_MAX_CHARS = 3500;
7245
7248
  async function harvestCronResults(codeName, tasks, gatewayPort) {
7246
7249
  const token = readGatewayToken(codeName);
7247
7250
  const gwArgs = ["--url", `ws://127.0.0.1:${gatewayPort}`, ...token ? ["--token", token] : []];
@@ -8071,7 +8074,7 @@ async function processClaudePairSessions(agents) {
8071
8074
  killPairSession,
8072
8075
  pairTmuxSession,
8073
8076
  finalizeClaudePairOnboarding
8074
- } = await import("../claude-pair-runtime-7PHOEAUN.js");
8077
+ } = await import("../claude-pair-runtime-A35NZYDN.js");
8075
8078
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
8076
8079
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
8077
8080
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -8190,6 +8193,24 @@ async function maybePostScheduledTaskRatingPrompt(agentId, taskId, channelId, me
8190
8193
  log(`[rating-prompt] Failed to post rating prompt for ${agentId}/${taskId}: ${err.message}`);
8191
8194
  }
8192
8195
  }
8196
+ async function buildDoneCardNotification(agentId, codeName, displayName, item) {
8197
+ const isFailed = item.status === "failed";
8198
+ let resultBody = item.result ?? "";
8199
+ try {
8200
+ const full = await api.post("/host/kanban-item", {
8201
+ agent_id: agentId,
8202
+ item_id: item.id
8203
+ });
8204
+ if (full.item?.result) resultBody = full.item.result;
8205
+ } catch (err) {
8206
+ log(`[notify] full-result fetch failed for card ${item.id} on '${codeName}': ${err.message} \u2014 using truncated board result`);
8207
+ }
8208
+ const resultLine = resultBody ? `
8209
+ ${isFailed ? "Reason" : "Result"}: ${resultBody.slice(0, NOTIFY_RESULT_MAX_CHARS)}` : "";
8210
+ const emoji = isFailed ? "\u274C" : "\u2705";
8211
+ return `${emoji} ${isFailed ? "Task Failed" : "Task Complete"} \u2014 ${displayName}
8212
+ ${item.title}${resultLine}`;
8213
+ }
8193
8214
  async function sendTaskNotification(agentCodeName, channel, to, text) {
8194
8215
  const tokens = agentChannelTokens.get(agentCodeName);
8195
8216
  if (channel === "slack") {
@@ -8841,6 +8862,7 @@ export {
8841
8862
  ChildProcessError,
8842
8863
  __resetScheduledDeliveryDedupeForTest,
8843
8864
  applyRestartAcks,
8865
+ buildDoneCardNotification,
8844
8866
  claudeCodeUpgradeMarkerPath,
8845
8867
  claudeCodeUpgradeThrottled,
8846
8868
  deliverScheduledCardResult,