@integrity-labs/agt-cli 0.28.147 → 0.28.149
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-POW4BZEC.js → chunk-5AIF4FOP.js} +42 -1
- package/dist/chunk-5AIF4FOP.js.map +1 -0
- package/dist/{chunk-FAWY7H7Q.js → chunk-A4S52T2C.js} +43 -4
- package/dist/chunk-A4S52T2C.js.map +1 -0
- package/dist/{chunk-H7DPP33E.js → chunk-SVF454L3.js} +2 -2
- package/dist/{claude-pair-runtime-E32P2WMR.js → claude-pair-runtime-OU4ROYH4.js} +2 -2
- package/dist/lib/manager-worker.js +17 -11
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/direct-chat-channel.js +2 -0
- package/dist/mcp/index.js +17 -3
- package/dist/mcp/slack-channel.js +2 -0
- package/dist/mcp/teams-channel.js +2 -0
- package/dist/mcp/telegram-channel.js +2 -0
- package/dist/mcp/whatsapp-channel.js +148623 -6555
- package/dist/mcp/whatsapp-link.js +146629 -0
- package/dist/{persistent-session-ERNRO4J6.js → persistent-session-IMMJEVRD.js} +3 -3
- package/dist/{responsiveness-probe-BLJS46ME.js → responsiveness-probe-Z2GD24QE.js} +3 -3
- package/package.json +2 -2
- package/dist/chunk-FAWY7H7Q.js.map +0 -1
- package/dist/chunk-POW4BZEC.js.map +0 -1
- /package/dist/{chunk-H7DPP33E.js.map → chunk-SVF454L3.js.map} +0 -0
- /package/dist/{claude-pair-runtime-E32P2WMR.js.map → claude-pair-runtime-OU4ROYH4.js.map} +0 -0
- /package/dist/{persistent-session-ERNRO4J6.js.map → persistent-session-IMMJEVRD.js.map} +0 -0
- /package/dist/{responsiveness-probe-BLJS46ME.js.map → responsiveness-probe-Z2GD24QE.js.map} +0 -0
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
formatMissingVar,
|
|
4
4
|
isClaudeFastMode,
|
|
5
5
|
probeMcpEnvSubstitution
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5AIF4FOP.js";
|
|
7
7
|
import {
|
|
8
8
|
reapOrphanChannelMcps
|
|
9
9
|
} from "./chunk-XWVM4KPK.js";
|
|
@@ -1590,4 +1590,4 @@ export {
|
|
|
1590
1590
|
stopAllSessionsAndWait,
|
|
1591
1591
|
getProjectDir
|
|
1592
1592
|
};
|
|
1593
|
-
//# sourceMappingURL=chunk-
|
|
1593
|
+
//# sourceMappingURL=chunk-SVF454L3.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-IMMJEVRD.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-OU4ROYH4.js.map
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
requireHost,
|
|
29
29
|
safeWriteJsonAtomic,
|
|
30
30
|
setConfigHash
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-A4S52T2C.js";
|
|
32
32
|
import {
|
|
33
33
|
getProjectDir as getProjectDir2,
|
|
34
34
|
getReadyTasks,
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
takeZombieDetection,
|
|
73
73
|
transcriptActivityAgeSeconds,
|
|
74
74
|
writeEgressAllowlist
|
|
75
|
-
} from "../chunk-
|
|
75
|
+
} from "../chunk-SVF454L3.js";
|
|
76
76
|
import {
|
|
77
77
|
FLAGS_SCHEMA_VERSION,
|
|
78
78
|
FLAG_REGISTRY,
|
|
@@ -98,6 +98,7 @@ import {
|
|
|
98
98
|
isResolveError,
|
|
99
99
|
isSelfCompletion,
|
|
100
100
|
isUnsetTimezone,
|
|
101
|
+
isVacuousDeliverReason,
|
|
101
102
|
laneTagFragment,
|
|
102
103
|
parseDeliverAssertion,
|
|
103
104
|
parseDeliveryTarget,
|
|
@@ -111,7 +112,7 @@ import {
|
|
|
111
112
|
resolveDmTarget,
|
|
112
113
|
sumTranscriptUsageInWindow,
|
|
113
114
|
wrapScheduledTaskPrompt
|
|
114
|
-
} from "../chunk-
|
|
115
|
+
} from "../chunk-5AIF4FOP.js";
|
|
115
116
|
import {
|
|
116
117
|
parsePsRows,
|
|
117
118
|
reapOrphanChannelMcps
|
|
@@ -5145,9 +5146,10 @@ async function deliverScheduledCardResult(codeName, agentId, cardId, completedBy
|
|
|
5145
5146
|
return "terminal";
|
|
5146
5147
|
}
|
|
5147
5148
|
const deliveryPolicy = task.deliveryPolicy ?? "always";
|
|
5148
|
-
|
|
5149
|
+
const vacuousAssertion = deliveryPolicy === "conditional" && card.suppress_delivery === false && card.delivery_reason !== void 0 && isVacuousDeliverReason(card.delivery_reason);
|
|
5150
|
+
if (deliveryPolicy === "never" || deliveryPolicy === "conditional" && card.suppress_delivery !== false || vacuousAssertion) {
|
|
5149
5151
|
log(
|
|
5150
|
-
`[scheduled-kanban] Suppressed by delivery_policy=${deliveryPolicy} for card ${cardId} (task '${task.name}') on '${codeName}'
|
|
5152
|
+
`[scheduled-kanban] Suppressed by delivery_policy=${deliveryPolicy}` + (vacuousAssertion ? " (asserted delivery but reason was vacuous/empty)" : "") + ` for card ${cardId} (task '${task.name}') on '${codeName}' - result recorded on the card only (tombstone)`
|
|
5151
5153
|
);
|
|
5152
5154
|
if (task.deliveryMode === "announce" && task.deliveryTo) {
|
|
5153
5155
|
await reportDeliveryStatus(agentId, task.taskId, {
|
|
@@ -5237,7 +5239,7 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
|
|
|
5237
5239
|
if (run_id) void finishRun(run_id, "failed", { outcomeMessage: "kanban materialise incomplete", completeKanbanItemId: kanban_item_id });
|
|
5238
5240
|
return false;
|
|
5239
5241
|
}
|
|
5240
|
-
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
|
|
5242
|
+
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.
|
|
5241
5243
|
` : `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.
|
|
5242
5244
|
`;
|
|
5243
5245
|
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.
|
|
@@ -7122,7 +7124,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
7122
7124
|
var lastVersionCheckAt = 0;
|
|
7123
7125
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
7124
7126
|
var lastResponsivenessProbeAt = 0;
|
|
7125
|
-
var agtCliVersion = true ? "0.28.
|
|
7127
|
+
var agtCliVersion = true ? "0.28.149" : "dev";
|
|
7126
7128
|
function resolveBrewPath(execFileSync4) {
|
|
7127
7129
|
try {
|
|
7128
7130
|
const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -8255,7 +8257,7 @@ async function pollCycle() {
|
|
|
8255
8257
|
}
|
|
8256
8258
|
try {
|
|
8257
8259
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
8258
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
8260
|
+
const { collectDiagnostics } = await import("../persistent-session-IMMJEVRD.js");
|
|
8259
8261
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
8260
8262
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
8261
8263
|
let tailscaleHostname;
|
|
@@ -8403,7 +8405,7 @@ async function pollCycle() {
|
|
|
8403
8405
|
const {
|
|
8404
8406
|
collectResponsivenessProbes,
|
|
8405
8407
|
getResponsivenessIntervalMs
|
|
8406
|
-
} = await import("../responsiveness-probe-
|
|
8408
|
+
} = await import("../responsiveness-probe-Z2GD24QE.js");
|
|
8407
8409
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
8408
8410
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
8409
8411
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -8435,7 +8437,7 @@ async function pollCycle() {
|
|
|
8435
8437
|
collectResponsivenessProbes,
|
|
8436
8438
|
livePendingInboundOldestAgeSeconds,
|
|
8437
8439
|
parkPendingInbound
|
|
8438
|
-
} = await import("../responsiveness-probe-
|
|
8440
|
+
} = await import("../responsiveness-probe-Z2GD24QE.js");
|
|
8439
8441
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
8440
8442
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
8441
8443
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -12028,7 +12030,7 @@ async function processClaudePairSessions(agents) {
|
|
|
12028
12030
|
killPairSession,
|
|
12029
12031
|
pairTmuxSession,
|
|
12030
12032
|
finalizeClaudePairOnboarding
|
|
12031
|
-
} = await import("../claude-pair-runtime-
|
|
12033
|
+
} = await import("../claude-pair-runtime-OU4ROYH4.js");
|
|
12032
12034
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
12033
12035
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
12034
12036
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -12843,6 +12845,10 @@ function deployMcpAssets() {
|
|
|
12843
12845
|
// ENG-6019
|
|
12844
12846
|
"whatsapp-channel.js",
|
|
12845
12847
|
// ENG-6812
|
|
12848
|
+
// ENG-6827: the one-time WhatsApp/Baileys QR-link tool. Deployed so an
|
|
12849
|
+
// operator can run it on the host, but NOT in RESTARTABLE_CHANNEL_FILES —
|
|
12850
|
+
// it's an interactive tool, not a per-session channel server.
|
|
12851
|
+
"whatsapp-link.js",
|
|
12846
12852
|
// ENG-6195: the staff-only admin-debug broker, bundled with the CLI (never
|
|
12847
12853
|
// published to npm). NOT in RESTARTABLE_CHANNEL_FILES — it's not a channel,
|
|
12848
12854
|
// so it doesn't drive the channel-restart path; the mcp-presence-reaper
|