@integrity-labs/agt-cli 0.27.105 → 0.27.107
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-S5RULZFY.js → chunk-BP4D3ZPJ.js} +7 -3
- package/dist/chunk-BP4D3ZPJ.js.map +1 -0
- package/dist/{chunk-VCDQUERH.js → chunk-DFQ2EOHB.js} +2 -2
- package/dist/{chunk-ZFJTCUVZ.js → chunk-KBN7SNAV.js} +2 -2
- package/dist/{claude-pair-runtime-EGHRQJRW.js → claude-pair-runtime-AI37D2CT.js} +2 -2
- package/dist/lib/manager-worker.js +29 -11
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/{persistent-session-HGJ6THYI.js → persistent-session-HGR5D4DJ.js} +3 -3
- package/dist/{responsiveness-probe-HH5V6RUN.js → responsiveness-probe-FS376EVY.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-S5RULZFY.js.map +0 -1
- /package/dist/{chunk-VCDQUERH.js.map → chunk-DFQ2EOHB.js.map} +0 -0
- /package/dist/{chunk-ZFJTCUVZ.js.map → chunk-KBN7SNAV.js.map} +0 -0
- /package/dist/{claude-pair-runtime-EGHRQJRW.js.map → claude-pair-runtime-AI37D2CT.js.map} +0 -0
- /package/dist/{persistent-session-HGJ6THYI.js.map → persistent-session-HGR5D4DJ.js.map} +0 -0
- /package/dist/{responsiveness-probe-HH5V6RUN.js.map → responsiveness-probe-FS376EVY.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
claudeModelAlias,
|
|
3
3
|
isClaudeFastMode
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-BP4D3ZPJ.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-DFQ2EOHB.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
parseDeliveryTarget,
|
|
10
10
|
registerFramework,
|
|
11
11
|
wrapScheduledTaskPrompt
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-BP4D3ZPJ.js";
|
|
13
13
|
|
|
14
14
|
// ../../packages/core/dist/integrations/registry.js
|
|
15
15
|
var INTEGRATION_REGISTRY = [
|
|
@@ -7586,4 +7586,4 @@ export {
|
|
|
7586
7586
|
managerInstallSystemUnitCommand,
|
|
7587
7587
|
managerUninstallSystemUnitCommand
|
|
7588
7588
|
};
|
|
7589
|
-
//# sourceMappingURL=chunk-
|
|
7589
|
+
//# sourceMappingURL=chunk-KBN7SNAV.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-HGR5D4DJ.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-AI37D2CT.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
provisionStopHook,
|
|
18
18
|
requireHost,
|
|
19
19
|
safeWriteJsonAtomic
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-KBN7SNAV.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-DFQ2EOHB.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-BP4D3ZPJ.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.
|
|
4042
|
+
var agtCliVersion = true ? "0.27.107" : "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-
|
|
5235
|
+
const { collectDiagnostics } = await import("../persistent-session-HGR5D4DJ.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-
|
|
5322
|
+
} = await import("../responsiveness-probe-FS376EVY.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-
|
|
5327
|
+
const { takeAcpxExecFailureCount, creditAcpxExecFailureCount } = await import("../persistent-session-HGR5D4DJ.js");
|
|
5328
5328
|
const drainedGiveUps = /* @__PURE__ */ new Map();
|
|
5329
5329
|
const drainedAcpxFailures = /* @__PURE__ */ new Map();
|
|
5330
5330
|
const probes = collectResponsivenessProbes(probeCodeNames).map((p) => {
|
|
@@ -7645,6 +7645,17 @@ async function deliverScheduledCardResult(codeName, agentId, cardId) {
|
|
|
7645
7645
|
markScheduledCardDeliveryComplete(cardId);
|
|
7646
7646
|
return "terminal";
|
|
7647
7647
|
}
|
|
7648
|
+
if (card.suppress_delivery === true) {
|
|
7649
|
+
log(`[scheduled-kanban] Suppressing delivery (structured flag) for card ${cardId} (task '${task.name}') on '${codeName}' \u2014 result recorded on the card only`);
|
|
7650
|
+
if (task.deliveryMode === "announce" && task.deliveryTo) {
|
|
7651
|
+
await reportDeliveryStatus(agentId, task.taskId, {
|
|
7652
|
+
status: "skipped",
|
|
7653
|
+
error_code: "NO_CONTENT"
|
|
7654
|
+
});
|
|
7655
|
+
}
|
|
7656
|
+
markScheduledCardDeliveryComplete(cardId);
|
|
7657
|
+
return "delivered";
|
|
7658
|
+
}
|
|
7648
7659
|
await processClaudeTaskResult(codeName, agentId, task.templateId, card.result ?? "", {
|
|
7649
7660
|
mode: task.deliveryMode,
|
|
7650
7661
|
channel: task.deliveryChannel,
|
|
@@ -7674,6 +7685,12 @@ async function reconcileScheduledRuns(codeName, agentId, board) {
|
|
|
7674
7685
|
}
|
|
7675
7686
|
if (m.size === 0) scheduledRunsByCode.delete(codeName);
|
|
7676
7687
|
}
|
|
7688
|
+
var SCHEDULED_CARD_DELIVERY_CONTRACT = `
|
|
7689
|
+
|
|
7690
|
+
---
|
|
7691
|
+
[delivery contract \u2014 system]
|
|
7692
|
+
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.
|
|
7693
|
+
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, call kanban_done with suppress_delivery: true \u2014 your result is still recorded on the card but will NOT be messaged to the user. That is how you honor the user's do-not-notify instruction; a "nothing urgent" / "all quiet" result WITHOUT the flag would still be DELIVERED as a message. (Legacy fallback: writing exactly ${SUPPRESS_SENTINEL} alone as the result also suppresses.) If the task asks for a digest/report WITHOUT opt-out wording, a zero-item report is a valid deliverable \u2014 deliver it.`;
|
|
7677
7694
|
async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
|
|
7678
7695
|
const { run_id, kanban_item_id } = await startRun({
|
|
7679
7696
|
agent_id: agentId,
|
|
@@ -7682,7 +7699,7 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
|
|
|
7682
7699
|
metadata: { template_id: task.templateId, name: task.name, via: "kanban-inject" },
|
|
7683
7700
|
materialize_kanban: {
|
|
7684
7701
|
title: task.name,
|
|
7685
|
-
description: prompt,
|
|
7702
|
+
description: prompt + SCHEDULED_CARD_DELIVERY_CONTRACT,
|
|
7686
7703
|
priority: 2,
|
|
7687
7704
|
initial_status: "todo",
|
|
7688
7705
|
...deriveScheduledTaskNotify(task)
|
|
@@ -7693,8 +7710,8 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
|
|
|
7693
7710
|
if (run_id) void finishRun(run_id, "failed", { outcomeMessage: "kanban materialise incomplete", completeKanbanItemId: kanban_item_id });
|
|
7694
7711
|
return false;
|
|
7695
7712
|
}
|
|
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
|
|
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,
|
|
7713
|
+
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.
|
|
7714
|
+
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, call kanban_done with suppress_delivery: true \u2014 your result stays on the card but will NOT be messaged to the user. That is how you honor the user's do-not-notify instruction: a "nothing urgent" result without the flag 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
7715
|
` + formatRunMarker(run_id);
|
|
7699
7716
|
let injectStatus;
|
|
7700
7717
|
try {
|
|
@@ -9662,7 +9679,7 @@ async function processClaudePairSessions(agents) {
|
|
|
9662
9679
|
killPairSession,
|
|
9663
9680
|
pairTmuxSession,
|
|
9664
9681
|
finalizeClaudePairOnboarding
|
|
9665
|
-
} = await import("../claude-pair-runtime-
|
|
9682
|
+
} = await import("../claude-pair-runtime-AI37D2CT.js");
|
|
9666
9683
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
9667
9684
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
9668
9685
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -10539,6 +10556,7 @@ process.on("disconnect", () => {
|
|
|
10539
10556
|
});
|
|
10540
10557
|
export {
|
|
10541
10558
|
ChildProcessError,
|
|
10559
|
+
SCHEDULED_CARD_DELIVERY_CONTRACT,
|
|
10542
10560
|
__resetScheduledDeliveryDedupeForTest,
|
|
10543
10561
|
__setAgentChannelTokensForTest,
|
|
10544
10562
|
applyRestartAcks,
|