@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.
- package/dist/bin/agt.js +4 -4
- package/dist/{chunk-MIRY4G4G.js → chunk-4WI2ACNG.js} +2 -2
- package/dist/{chunk-I2OTQJH3.js → chunk-GKRVSTYY.js} +27 -10
- package/dist/chunk-GKRVSTYY.js.map +1 -0
- package/dist/{chunk-3FYXAPTF.js → chunk-SKKWVNUY.js} +2 -2
- package/dist/{claude-pair-runtime-ODVGVMNQ.js → claude-pair-runtime-Q4FKQLMQ.js} +2 -2
- package/dist/lib/manager-worker.js +22 -12
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/{persistent-session-YGP6P4SN.js → persistent-session-4O56FXQX.js} +3 -3
- package/dist/{responsiveness-probe-SBK4Y7I3.js → responsiveness-probe-I4XS2KCA.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-I2OTQJH3.js.map +0 -1
- /package/dist/{chunk-MIRY4G4G.js.map → chunk-4WI2ACNG.js.map} +0 -0
- /package/dist/{chunk-3FYXAPTF.js.map → chunk-SKKWVNUY.js.map} +0 -0
- /package/dist/{claude-pair-runtime-ODVGVMNQ.js.map → claude-pair-runtime-Q4FKQLMQ.js.map} +0 -0
- /package/dist/{persistent-session-YGP6P4SN.js.map → persistent-session-4O56FXQX.js.map} +0 -0
- /package/dist/{responsiveness-probe-SBK4Y7I3.js.map → responsiveness-probe-I4XS2KCA.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
claudeModelAlias,
|
|
3
3
|
isClaudeFastMode
|
|
4
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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.
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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-
|
|
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,
|