@integrity-labs/agt-cli 0.27.104 → 0.27.106

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,7 +1,7 @@
1
1
  import {
2
2
  claudeModelAlias,
3
3
  isClaudeFastMode
4
- } from "./chunk-I2OTQJH3.js";
4
+ } from "./chunk-GKRVSTYY.js";
5
5
  import {
6
6
  reapOrphanChannelMcps
7
7
  } from "./chunk-XWVM4KPK.js";
@@ -1574,4 +1574,4 @@ export {
1574
1574
  stopAllSessionsAndWait,
1575
1575
  getProjectDir
1576
1576
  };
1577
- //# sourceMappingURL=chunk-3FYXAPTF.js.map
1577
+ //# sourceMappingURL=chunk-SKKWVNUY.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-YGP6P4SN.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-4O56FXQX.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-ODVGVMNQ.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-Q4FKQLMQ.js.map
@@ -17,7 +17,7 @@ import {
17
17
  provisionStopHook,
18
18
  requireHost,
19
19
  safeWriteJsonAtomic
20
- } from "../chunk-MIRY4G4G.js";
20
+ } from "../chunk-4WI2ACNG.js";
21
21
  import {
22
22
  getProjectDir as getProjectDir2,
23
23
  getReadyTasks,
@@ -55,7 +55,7 @@ import {
55
55
  stopPersistentSession,
56
56
  takeWatchdogGiveUpCount,
57
57
  takeZombieDetection
58
- } from "../chunk-3FYXAPTF.js";
58
+ } from "../chunk-SKKWVNUY.js";
59
59
  import {
60
60
  KANBAN_CHECK_COMMAND,
61
61
  SUPPRESS_SENTINEL,
@@ -79,7 +79,7 @@ import {
79
79
  resolveConnectivityProbe,
80
80
  resolveDmTarget,
81
81
  wrapScheduledTaskPrompt
82
- } from "../chunk-I2OTQJH3.js";
82
+ } from "../chunk-GKRVSTYY.js";
83
83
  import {
84
84
  parsePsRows,
85
85
  reapOrphanChannelMcps
@@ -706,12 +706,15 @@ function extractMsTeamsBehaviourSubset(config2) {
706
706
  // src/lib/slack-behaviour-restart.ts
707
707
  function extractSlackBehaviourSubset(config2) {
708
708
  const rawAllowed = config2?.["allowed_users"];
709
+ const blockKitEnabled = config2?.["block_kit_enabled"] === true;
709
710
  return {
710
711
  thread_auto_follow: config2?.["thread_auto_follow"] ?? "off",
711
712
  channel_response_mode: config2?.["channel_response_mode"] ?? "mention_only",
712
713
  // Mirror the adapter's defensive filter exactly — a malformed entry the
713
714
  // adapter would drop must not count as an env change.
714
- allowed_users: Array.isArray(rawAllowed) ? rawAllowed.filter((v) => typeof v === "string" && v.trim().length > 0).map((v) => v.trim()) : []
715
+ allowed_users: Array.isArray(rawAllowed) ? rawAllowed.filter((v) => typeof v === "string" && v.trim().length > 0).map((v) => v.trim()) : [],
716
+ block_kit_enabled: blockKitEnabled,
717
+ block_kit_ask_user_enabled: blockKitEnabled && config2?.["block_kit_ask_user_enabled"] === true
715
718
  };
716
719
  }
717
720
 
@@ -4036,7 +4039,7 @@ var cachedMaintenanceWindow = null;
4036
4039
  var lastVersionCheckAt = 0;
4037
4040
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
4038
4041
  var lastResponsivenessProbeAt = 0;
4039
- var agtCliVersion = true ? "0.27.104" : "dev";
4042
+ var agtCliVersion = true ? "0.27.106" : "dev";
4040
4043
  function resolveBrewPath(execFileSync4) {
4041
4044
  try {
4042
4045
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -5229,7 +5232,7 @@ async function pollCycle() {
5229
5232
  }
5230
5233
  try {
5231
5234
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
5232
- const { collectDiagnostics } = await import("../persistent-session-YGP6P4SN.js");
5235
+ const { collectDiagnostics } = await import("../persistent-session-4O56FXQX.js");
5233
5236
  const diagCodeNames = [...agentState.persistentSessionAgents];
5234
5237
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
5235
5238
  let tailscaleHostname;
@@ -5316,12 +5319,12 @@ async function pollCycle() {
5316
5319
  const {
5317
5320
  collectResponsivenessProbes,
5318
5321
  getResponsivenessIntervalMs
5319
- } = await import("../responsiveness-probe-SBK4Y7I3.js");
5322
+ } = await import("../responsiveness-probe-I4XS2KCA.js");
5320
5323
  const probeIntervalMs = getResponsivenessIntervalMs();
5321
5324
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
5322
5325
  const probeCodeNames = [...agentState.persistentSessionAgents];
5323
5326
  if (probeCodeNames.length > 0) {
5324
- const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-YGP6P4SN.js");
5327
+ const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-4O56FXQX.js");
5325
5328
  const drainedGiveUps = /* @__PURE__ */ new Map();
5326
5329
  const drainedAcpxFailures = /* @__PURE__ */ new Map();
5327
5330
  const probes = collectResponsivenessProbes(probeCodeNames).map((p) => {
@@ -7671,6 +7674,12 @@ async function reconcileScheduledRuns(codeName, agentId, board) {
7671
7674
  }
7672
7675
  if (m.size === 0) scheduledRunsByCode.delete(codeName);
7673
7676
  }
7677
+ var SCHEDULED_CARD_DELIVERY_CONTRACT = `
7678
+
7679
+ ---
7680
+ [delivery contract \u2014 system]
7681
+ The result you write on this card IS the message that will be delivered to the user. Delivery happens automatically from the card \u2014 never send, post, or message it yourself.
7682
+ If \u2014 and ONLY if \u2014 the task above contains explicit opt-out wording the user typed ("DO NOT notify me unless \u2026", "only if X", "stay silent unless \u2026") and that condition is NOT met this run, write exactly ${SUPPRESS_SENTINEL} \u2014 bare, no backticks, no other text \u2014 ALONE as the card result and mark the card done. That is the ONLY way to honor the user's do-not-notify instruction; writing "nothing urgent" / "all quiet" instead would still be DELIVERED as a message. If the task asks for a digest/report WITHOUT opt-out wording, a zero-item report is a valid deliverable \u2014 deliver it.`;
7674
7683
  async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
7675
7684
  const { run_id, kanban_item_id } = await startRun({
7676
7685
  agent_id: agentId,
@@ -7679,7 +7688,7 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
7679
7688
  metadata: { template_id: task.templateId, name: task.name, via: "kanban-inject" },
7680
7689
  materialize_kanban: {
7681
7690
  title: task.name,
7682
- description: prompt,
7691
+ description: prompt + SCHEDULED_CARD_DELIVERY_CONTRACT,
7683
7692
  priority: 2,
7684
7693
  initial_status: "todo",
7685
7694
  ...deriveScheduledTaskNotify(task)
@@ -7690,8 +7699,8 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
7690
7699
  if (run_id) void finishRun(run_id, "failed", { outcomeMessage: "kanban materialise incomplete", completeKanbanItemId: kanban_item_id });
7691
7700
  return false;
7692
7701
  }
7693
- const nudge = `You have a new scheduled task on your kanban board: id=${kanban_item_id} title=${JSON.stringify(task.name)}. Call kanban_move("${kanban_item_id}", "in_progress"), do the work described on the card, then write the finished result onto the card and mark it done. Do NOT send, post, or message the result to anyone yourself \u2014 recording it on the card is enough; delivery to the recipient is handled for you.
7694
- If \u2014 and ONLY if \u2014 the task description contains explicit opt-out wording the user typed (e.g. "DO NOT notify me unless urgent", "only if X", "stay silent unless \u2026") and that condition is NOT met this run, write exactly \`${SUPPRESS_SENTINEL}\` ALONE as the card result (no other text, no "nothing urgent", no notes) and mark the card done \u2014 that tells the delivery pipeline to skip the send. A report with zero items ("nothing urgent", "no follow-ups", "all quiet") is still a valid deliverable when the task asks for a digest, NOT a reason to suppress \u2014 when in doubt, deliver.
7702
+ const nudge = `You have a new scheduled task on your kanban board: id=${kanban_item_id} title=${JSON.stringify(task.name)}. Call kanban_move("${kanban_item_id}", "in_progress"), do the work described on the card, then write the finished result onto the card and mark it done. Do NOT send, post, or message the result to anyone yourself \u2014 the result you write on the card IS the message that will be delivered to the user; delivery happens automatically from the card.
7703
+ If \u2014 and ONLY if \u2014 the task description contains explicit opt-out wording the user typed (e.g. "DO NOT notify me unless urgent", "only if X", "stay silent unless \u2026") and that condition is NOT met this run, write exactly ${SUPPRESS_SENTINEL} \u2014 bare, no backticks, no other text, no "nothing urgent", no notes \u2014 ALONE as the card result and mark the card done. That is the ONLY way to honor the user's do-not-notify instruction: a "nothing urgent" status would still be DELIVERED as a message. A report with zero items is only a valid deliverable when the task asks for a digest WITHOUT opt-out wording \u2014 when in doubt, deliver.
7695
7704
  ` + formatRunMarker(run_id);
7696
7705
  let injectStatus;
7697
7706
  try {
@@ -9659,7 +9668,7 @@ async function processClaudePairSessions(agents) {
9659
9668
  killPairSession,
9660
9669
  pairTmuxSession,
9661
9670
  finalizeClaudePairOnboarding
9662
- } = await import("../claude-pair-runtime-ODVGVMNQ.js");
9671
+ } = await import("../claude-pair-runtime-Q4FKQLMQ.js");
9663
9672
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
9664
9673
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
9665
9674
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -10536,6 +10545,7 @@ process.on("disconnect", () => {
10536
10545
  });
10537
10546
  export {
10538
10547
  ChildProcessError,
10548
+ SCHEDULED_CARD_DELIVERY_CONTRACT,
10539
10549
  __resetScheduledDeliveryDedupeForTest,
10540
10550
  __setAgentChannelTokensForTest,
10541
10551
  applyRestartAcks,