@integrity-labs/agt-cli 0.28.348 → 0.28.350
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-ZGY4ADGS.js → chunk-EUDBJHMA.js} +5 -3
- package/dist/chunk-EUDBJHMA.js.map +1 -0
- package/dist/{chunk-3ME4JXUG.js → chunk-LM2RJRAT.js} +7 -3
- package/dist/chunk-LM2RJRAT.js.map +1 -0
- package/dist/{claude-pair-runtime-LGKYHBI2.js → claude-pair-runtime-FCW6HWAR.js} +2 -2
- package/dist/lib/manager-worker.js +13 -13
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/direct-chat-channel.js +4 -2
- package/dist/mcp/origami.js +4 -2
- package/dist/mcp/slack-channel.js +4 -2
- package/dist/mcp/telegram-channel.js +4 -2
- package/dist/{persistent-session-G22EFMQM.js → persistent-session-CBWLRSM5.js} +2 -2
- package/dist/{responsiveness-probe-HXZFFAGD.js → responsiveness-probe-56WUFX3U.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-3ME4JXUG.js.map +0 -1
- package/dist/chunk-ZGY4ADGS.js.map +0 -1
- /package/dist/{claude-pair-runtime-LGKYHBI2.js.map → claude-pair-runtime-FCW6HWAR.js.map} +0 -0
- /package/dist/{persistent-session-G22EFMQM.js.map → persistent-session-CBWLRSM5.js.map} +0 -0
- /package/dist/{responsiveness-probe-HXZFFAGD.js.map → responsiveness-probe-56WUFX3U.js.map} +0 -0
|
@@ -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-CBWLRSM5.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-FCW6HWAR.js.map
|
|
@@ -46,7 +46,7 @@ import {
|
|
|
46
46
|
resolveEffectivePinRaw,
|
|
47
47
|
safeWriteJsonAtomic,
|
|
48
48
|
setConfigHash
|
|
49
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-LM2RJRAT.js";
|
|
50
50
|
import {
|
|
51
51
|
getProjectDir as getProjectDir2,
|
|
52
52
|
getReadyTasks,
|
|
@@ -137,7 +137,7 @@ import {
|
|
|
137
137
|
takeZombieDetection,
|
|
138
138
|
transcriptActivityAgeSeconds,
|
|
139
139
|
writeEgressAllowlist
|
|
140
|
-
} from "../chunk-
|
|
140
|
+
} from "../chunk-EUDBJHMA.js";
|
|
141
141
|
import {
|
|
142
142
|
reapOrphanChannelMcps
|
|
143
143
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -5350,13 +5350,13 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
|
|
|
5350
5350
|
const suppressionTeaching = (task.deliveryPolicy ?? "always") === "conditional" ? `THIS task is CONDITIONAL: quiet runs stay SILENT automatically. Write your findings on the card and mark it done \u2014 if nothing met the user's criteria, NOTHING will be sent (no flag needed). If something DID meet the criteria and the user must be told, call kanban_done with suppress_delivery: false AND delivery_reason naming the concrete trigger that fired (e.g. "urgent email from the CEO", "CI failing on main"); a vacuous reason like "status check" or "all clear" is rejected and stays silent. That explicit, justified assert is the ONLY way this result reaches the user.
|
|
5351
5351
|
` : `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.
|
|
5352
5352
|
`;
|
|
5353
|
-
const nudge = TOOL_DELIVERED_TEMPLATES.has(task.templateId) ? `
|
|
5354
|
-
` + formatRunMarker(run_id) : `
|
|
5353
|
+
const nudge = TOOL_DELIVERED_TEMPLATES.has(task.templateId) ? `A scheduled task just fired and it is now a card on YOUR board that YOU work. The schedule only controls WHEN this card arrives, not who executes it: nothing else runs it for you, so do the work yourself now. Card: id=${kanban_item_id} title=${JSON.stringify(task.name)}. Call kanban_move("${kanban_item_id}", "in_progress"), then do the work described on the card. This task DELIVERS VIA A TOOL, not the card: you MUST call the tool the task specifies \u2014 for the weekly performance review that is submit_performance_review \u2014 to actually deliver it. Writing a summary to the card does NOT send anything and is NOT a substitute for the tool call. After the tool call, note briefly on the card what you sent and mark it done.
|
|
5354
|
+
` + formatRunMarker(run_id) : `A scheduled task just fired and it is now a card on YOUR board that YOU work. The schedule only controls WHEN this card arrives, not who executes it: nothing else runs it for you, so do the work yourself now. Card: 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.
|
|
5355
5355
|
` + suppressionTeaching + formatRunMarker(run_id);
|
|
5356
5356
|
stampScheduledTurnMarker(codeName, task.taskId, resolveScheduledSlackTarget(task));
|
|
5357
5357
|
let injectStatus;
|
|
5358
5358
|
try {
|
|
5359
|
-
injectStatus = await injectMessageWithStatus(codeName, "task", nudge, { task_name: "scheduled-task" }, log);
|
|
5359
|
+
injectStatus = await injectMessageWithStatus(codeName, "task", nudge, { task_name: "scheduled-task-do-now" }, log);
|
|
5360
5360
|
} catch (err) {
|
|
5361
5361
|
log(`[scheduled-kanban] nudge injection threw for task '${task.name}' on '${codeName}': ${err.message} \u2014 closing card + falling back to claude -p`);
|
|
5362
5362
|
void finishRun(run_id, "failed", { outcomeMessage: "scheduled-task nudge delivery threw", completeKanbanItemId: kanban_item_id });
|
|
@@ -9303,7 +9303,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
9303
9303
|
var lastVersionCheckAt = 0;
|
|
9304
9304
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
9305
9305
|
var lastResponsivenessProbeAt = 0;
|
|
9306
|
-
var agtCliVersion = true ? "0.28.
|
|
9306
|
+
var agtCliVersion = true ? "0.28.350" : "dev";
|
|
9307
9307
|
function resolveBrewPath(execFileSync2) {
|
|
9308
9308
|
try {
|
|
9309
9309
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -10268,7 +10268,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
10268
10268
|
if (codeNames.length === 0) return;
|
|
10269
10269
|
void (async () => {
|
|
10270
10270
|
try {
|
|
10271
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10271
|
+
const { collectDiagnostics } = await import("../persistent-session-CBWLRSM5.js");
|
|
10272
10272
|
await api.post("/host/heartbeat", {
|
|
10273
10273
|
host_id: hostId,
|
|
10274
10274
|
agent_diagnostics: collectDiagnostics(codeNames)
|
|
@@ -10367,7 +10367,7 @@ async function pollCycle() {
|
|
|
10367
10367
|
}
|
|
10368
10368
|
try {
|
|
10369
10369
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
10370
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10370
|
+
const { collectDiagnostics } = await import("../persistent-session-CBWLRSM5.js");
|
|
10371
10371
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
10372
10372
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
10373
10373
|
let tailscaleHostname;
|
|
@@ -10522,7 +10522,7 @@ async function pollCycle() {
|
|
|
10522
10522
|
const {
|
|
10523
10523
|
collectResponsivenessProbes,
|
|
10524
10524
|
getResponsivenessIntervalMs
|
|
10525
|
-
} = await import("../responsiveness-probe-
|
|
10525
|
+
} = await import("../responsiveness-probe-56WUFX3U.js");
|
|
10526
10526
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
10527
10527
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
10528
10528
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -10554,7 +10554,7 @@ async function pollCycle() {
|
|
|
10554
10554
|
collectResponsivenessProbes,
|
|
10555
10555
|
livePendingInboundOldestAgeSeconds,
|
|
10556
10556
|
parkPendingInbound
|
|
10557
|
-
} = await import("../responsiveness-probe-
|
|
10557
|
+
} = await import("../responsiveness-probe-56WUFX3U.js");
|
|
10558
10558
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-HYOOQV4A.js");
|
|
10559
10559
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
10560
10560
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -13668,7 +13668,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
13668
13668
|
void api.post("/host/restart-ack", { host_id: hostId, agent_id: agentId, restart_requested_at: requestedAt }).catch((err) => log(`[restart-lane] ack failed for '${codeName}': ${err.message}`));
|
|
13669
13669
|
void (async () => {
|
|
13670
13670
|
try {
|
|
13671
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
13671
|
+
const { collectDiagnostics } = await import("../persistent-session-CBWLRSM5.js");
|
|
13672
13672
|
await api.post("/host/heartbeat", {
|
|
13673
13673
|
host_id: hostId,
|
|
13674
13674
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -13718,7 +13718,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
13718
13718
|
}
|
|
13719
13719
|
try {
|
|
13720
13720
|
const hostId = await getHostId();
|
|
13721
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
13721
|
+
const { collectDiagnostics } = await import("../persistent-session-CBWLRSM5.js");
|
|
13722
13722
|
await api.post("/host/heartbeat", {
|
|
13723
13723
|
host_id: hostId,
|
|
13724
13724
|
agent_diagnostics: collectDiagnostics([codeName])
|
|
@@ -14216,7 +14216,7 @@ async function processClaudePairSessions(agents) {
|
|
|
14216
14216
|
killPairSession,
|
|
14217
14217
|
pairTmuxSession,
|
|
14218
14218
|
finalizeClaudePairOnboarding
|
|
14219
|
-
} = await import("../claude-pair-runtime-
|
|
14219
|
+
} = await import("../claude-pair-runtime-FCW6HWAR.js");
|
|
14220
14220
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
14221
14221
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
14222
14222
|
const killed = await killPairSession(pairTmuxSession(pairId));
|