@integrity-labs/agt-cli 0.27.105 → 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-S5RULZFY.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-VCDQUERH.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-HGJ6THYI.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-EGHRQJRW.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-ZFJTCUVZ.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-VCDQUERH.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-S5RULZFY.js";
82
+ } from "../chunk-GKRVSTYY.js";
83
83
  import {
84
84
  parsePsRows,
85
85
  reapOrphanChannelMcps
@@ -4039,7 +4039,7 @@ var cachedMaintenanceWindow = null;
4039
4039
  var lastVersionCheckAt = 0;
4040
4040
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
4041
4041
  var lastResponsivenessProbeAt = 0;
4042
- var agtCliVersion = true ? "0.27.105" : "dev";
4042
+ var agtCliVersion = true ? "0.27.106" : "dev";
4043
4043
  function resolveBrewPath(execFileSync4) {
4044
4044
  try {
4045
4045
  const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -5232,7 +5232,7 @@ async function pollCycle() {
5232
5232
  }
5233
5233
  try {
5234
5234
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
5235
- const { collectDiagnostics } = await import("../persistent-session-HGJ6THYI.js");
5235
+ const { collectDiagnostics } = await import("../persistent-session-4O56FXQX.js");
5236
5236
  const diagCodeNames = [...agentState.persistentSessionAgents];
5237
5237
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
5238
5238
  let tailscaleHostname;
@@ -5319,12 +5319,12 @@ async function pollCycle() {
5319
5319
  const {
5320
5320
  collectResponsivenessProbes,
5321
5321
  getResponsivenessIntervalMs
5322
- } = await import("../responsiveness-probe-HH5V6RUN.js");
5322
+ } = await import("../responsiveness-probe-I4XS2KCA.js");
5323
5323
  const probeIntervalMs = getResponsivenessIntervalMs();
5324
5324
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
5325
5325
  const probeCodeNames = [...agentState.persistentSessionAgents];
5326
5326
  if (probeCodeNames.length > 0) {
5327
- const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-HGJ6THYI.js");
5327
+ const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-4O56FXQX.js");
5328
5328
  const drainedGiveUps = /* @__PURE__ */ new Map();
5329
5329
  const drainedAcpxFailures = /* @__PURE__ */ new Map();
5330
5330
  const probes = collectResponsivenessProbes(probeCodeNames).map((p) => {
@@ -7674,6 +7674,12 @@ async function reconcileScheduledRuns(codeName, agentId, board) {
7674
7674
  }
7675
7675
  if (m.size === 0) scheduledRunsByCode.delete(codeName);
7676
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.`;
7677
7683
  async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
7678
7684
  const { run_id, kanban_item_id } = await startRun({
7679
7685
  agent_id: agentId,
@@ -7682,7 +7688,7 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
7682
7688
  metadata: { template_id: task.templateId, name: task.name, via: "kanban-inject" },
7683
7689
  materialize_kanban: {
7684
7690
  title: task.name,
7685
- description: prompt,
7691
+ description: prompt + SCHEDULED_CARD_DELIVERY_CONTRACT,
7686
7692
  priority: 2,
7687
7693
  initial_status: "todo",
7688
7694
  ...deriveScheduledTaskNotify(task)
@@ -7693,8 +7699,8 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
7693
7699
  if (run_id) void finishRun(run_id, "failed", { outcomeMessage: "kanban materialise incomplete", completeKanbanItemId: kanban_item_id });
7694
7700
  return false;
7695
7701
  }
7696
- 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.
7697
- 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.
7698
7704
  ` + formatRunMarker(run_id);
7699
7705
  let injectStatus;
7700
7706
  try {
@@ -9662,7 +9668,7 @@ async function processClaudePairSessions(agents) {
9662
9668
  killPairSession,
9663
9669
  pairTmuxSession,
9664
9670
  finalizeClaudePairOnboarding
9665
- } = await import("../claude-pair-runtime-EGHRQJRW.js");
9671
+ } = await import("../claude-pair-runtime-Q4FKQLMQ.js");
9666
9672
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
9667
9673
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
9668
9674
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -10539,6 +10545,7 @@ process.on("disconnect", () => {
10539
10545
  });
10540
10546
  export {
10541
10547
  ChildProcessError,
10548
+ SCHEDULED_CARD_DELIVERY_CONTRACT,
10542
10549
  __resetScheduledDeliveryDedupeForTest,
10543
10550
  __setAgentChannelTokensForTest,
10544
10551
  applyRestartAcks,