@integrity-labs/agt-cli 0.27.101 → 0.27.103
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-KZVMMXDB.js → chunk-I2OTQJH3.js} +11 -2
- package/dist/{chunk-KZVMMXDB.js.map → chunk-I2OTQJH3.js.map} +1 -1
- package/dist/{chunk-Q5K5YADO.js → chunk-MQJ5DMPT.js} +2 -2
- package/dist/{chunk-UBW4SAJF.js → chunk-UVHVXVVL.js} +2 -2
- package/dist/{claude-pair-runtime-PJSO3JKN.js → claude-pair-runtime-F6USL3EW.js} +2 -2
- package/dist/lib/manager-worker.js +30 -11
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/{persistent-session-KAZNNGUD.js → persistent-session-OL5EDYB4.js} +3 -3
- package/dist/{responsiveness-probe-MWVDZLO6.js → responsiveness-probe-B6LJJRUD.js} +3 -3
- package/package.json +1 -1
- /package/dist/{chunk-Q5K5YADO.js.map → chunk-MQJ5DMPT.js.map} +0 -0
- /package/dist/{chunk-UBW4SAJF.js.map → chunk-UVHVXVVL.js.map} +0 -0
- /package/dist/{claude-pair-runtime-PJSO3JKN.js.map → claude-pair-runtime-F6USL3EW.js.map} +0 -0
- /package/dist/{persistent-session-KAZNNGUD.js.map → persistent-session-OL5EDYB4.js.map} +0 -0
- /package/dist/{responsiveness-probe-MWVDZLO6.js.map → responsiveness-probe-B6LJJRUD.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
claudeModelAlias,
|
|
3
3
|
isClaudeFastMode
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-I2OTQJH3.js";
|
|
5
5
|
import {
|
|
6
6
|
reapOrphanChannelMcps
|
|
7
7
|
} from "./chunk-XWVM4KPK.js";
|
|
@@ -1557,4 +1557,4 @@ export {
|
|
|
1557
1557
|
stopAllSessionsAndWait,
|
|
1558
1558
|
getProjectDir
|
|
1559
1559
|
};
|
|
1560
|
-
//# sourceMappingURL=chunk-
|
|
1560
|
+
//# sourceMappingURL=chunk-MQJ5DMPT.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
parseDeliveryTarget,
|
|
10
10
|
registerFramework,
|
|
11
11
|
wrapScheduledTaskPrompt
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-I2OTQJH3.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-UVHVXVVL.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-OL5EDYB4.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-F6USL3EW.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
provisionStopHook,
|
|
18
18
|
requireHost,
|
|
19
19
|
safeWriteJsonAtomic
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-UVHVXVVL.js";
|
|
21
21
|
import {
|
|
22
22
|
getProjectDir as getProjectDir2,
|
|
23
23
|
getReadyTasks,
|
|
@@ -55,9 +55,10 @@ import {
|
|
|
55
55
|
stopPersistentSession,
|
|
56
56
|
takeWatchdogGiveUpCount,
|
|
57
57
|
takeZombieDetection
|
|
58
|
-
} from "../chunk-
|
|
58
|
+
} from "../chunk-MQJ5DMPT.js";
|
|
59
59
|
import {
|
|
60
60
|
KANBAN_CHECK_COMMAND,
|
|
61
|
+
SUPPRESS_SENTINEL,
|
|
61
62
|
appendDmFooter,
|
|
62
63
|
attributeTranscriptUsageByRun,
|
|
63
64
|
classifyActor,
|
|
@@ -78,7 +79,7 @@ import {
|
|
|
78
79
|
resolveConnectivityProbe,
|
|
79
80
|
resolveDmTarget,
|
|
80
81
|
wrapScheduledTaskPrompt
|
|
81
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-I2OTQJH3.js";
|
|
82
83
|
import {
|
|
83
84
|
parsePsRows,
|
|
84
85
|
reapOrphanChannelMcps
|
|
@@ -4008,6 +4009,7 @@ var agentFrameworkCache = /* @__PURE__ */ new Map();
|
|
|
4008
4009
|
var migratedSecretStorage = /* @__PURE__ */ new Set();
|
|
4009
4010
|
var frameworkBinaryChecked = /* @__PURE__ */ new Set();
|
|
4010
4011
|
var agentRuntimeAuthenticated = false;
|
|
4012
|
+
var lastManagedSettingsStatus = null;
|
|
4011
4013
|
function resolveAgentFramework(codeName) {
|
|
4012
4014
|
const frameworkId = agentFrameworkCache.get(codeName) ?? "openclaw";
|
|
4013
4015
|
return getFramework(frameworkId);
|
|
@@ -4034,7 +4036,7 @@ var cachedMaintenanceWindow = null;
|
|
|
4034
4036
|
var lastVersionCheckAt = 0;
|
|
4035
4037
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
4036
4038
|
var lastResponsivenessProbeAt = 0;
|
|
4037
|
-
var agtCliVersion = true ? "0.27.
|
|
4039
|
+
var agtCliVersion = true ? "0.27.103" : "dev";
|
|
4038
4040
|
function resolveBrewPath(execFileSync4) {
|
|
4039
4041
|
try {
|
|
4040
4042
|
const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -4218,28 +4220,30 @@ function ensureClaudeManagedSettings(path = claudeManagedSettingsPath()) {
|
|
|
4218
4220
|
parsed = JSON.parse(raw);
|
|
4219
4221
|
} catch (err) {
|
|
4220
4222
|
log(`[managed-settings] ${path} is not valid JSON (${err.message}) \u2014 leaving as-is; Claude Code channels may be blocked`);
|
|
4221
|
-
return;
|
|
4223
|
+
return "invalid_json";
|
|
4222
4224
|
}
|
|
4223
4225
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
4224
4226
|
settings = parsed;
|
|
4225
4227
|
}
|
|
4226
4228
|
}
|
|
4227
4229
|
}
|
|
4228
|
-
if (settings.channelsEnabled === true) return;
|
|
4230
|
+
if (settings.channelsEnabled === true) return "ok";
|
|
4229
4231
|
settings.channelsEnabled = true;
|
|
4230
4232
|
mkdirSync4(dirname3(path), { recursive: true });
|
|
4231
4233
|
writeFileSync4(path, `${JSON.stringify(settings, null, 2)}
|
|
4232
4234
|
`);
|
|
4233
4235
|
log(`[managed-settings] set channelsEnabled:true in ${path} (ENG-5786 \u2014 unblocks Claude Code channels)`);
|
|
4236
|
+
return "ok";
|
|
4234
4237
|
} catch (err) {
|
|
4235
4238
|
log(`[managed-settings] could not ensure ${path}: ${err.message} \u2014 Claude Code channels may be blocked; set channelsEnabled:true manually`);
|
|
4239
|
+
return "write_failed";
|
|
4236
4240
|
}
|
|
4237
4241
|
}
|
|
4238
4242
|
async function ensureFrameworkBinary(frameworkId) {
|
|
4239
4243
|
if (frameworkId !== "claude-code") return;
|
|
4240
4244
|
if (frameworkBinaryChecked.has(frameworkId)) return;
|
|
4241
4245
|
frameworkBinaryChecked.add(frameworkId);
|
|
4242
|
-
ensureClaudeManagedSettings();
|
|
4246
|
+
lastManagedSettingsStatus = ensureClaudeManagedSettings();
|
|
4243
4247
|
const { execFileSync: execFileSync4 } = await import("child_process");
|
|
4244
4248
|
const brewPath = resolveBrewPath(execFileSync4);
|
|
4245
4249
|
if (!brewPath) {
|
|
@@ -5225,7 +5229,7 @@ async function pollCycle() {
|
|
|
5225
5229
|
}
|
|
5226
5230
|
try {
|
|
5227
5231
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
5228
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
5232
|
+
const { collectDiagnostics } = await import("../persistent-session-OL5EDYB4.js");
|
|
5229
5233
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
5230
5234
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
5231
5235
|
let tailscaleHostname;
|
|
@@ -5258,6 +5262,14 @@ async function pollCycle() {
|
|
|
5258
5262
|
const errId = createHash3("sha256").update(errText).digest("hex").slice(0, 12);
|
|
5259
5263
|
log(`Claude auth detection failed (error_id=${errId})`);
|
|
5260
5264
|
}
|
|
5265
|
+
const hostHasClaudeCode = state5.agents.some(
|
|
5266
|
+
(a) => agentFrameworkCache.get(a.codeName) === "claude-code"
|
|
5267
|
+
);
|
|
5268
|
+
if (hostHasClaudeCode) {
|
|
5269
|
+
lastManagedSettingsStatus = ensureClaudeManagedSettings();
|
|
5270
|
+
} else {
|
|
5271
|
+
lastManagedSettingsStatus = null;
|
|
5272
|
+
}
|
|
5261
5273
|
const hbResp = await api.post("/host/heartbeat", {
|
|
5262
5274
|
host_id: hostId,
|
|
5263
5275
|
framework_version: cachedFrameworkVersion ?? void 0,
|
|
@@ -5274,7 +5286,13 @@ async function pollCycle() {
|
|
|
5274
5286
|
// polling fallback (healRealtimeSocketDivergence forces it). Surfaced
|
|
5275
5287
|
// so a sustained socket-down window is observable rather than hidden
|
|
5276
5288
|
// behind a fresh heartbeat.
|
|
5277
|
-
realtime_socket_connected: isRealtimeSocketConnected()
|
|
5289
|
+
realtime_socket_connected: isRealtimeSocketConnected(),
|
|
5290
|
+
// ENG-6068: outcome of the channels managed-settings assertion.
|
|
5291
|
+
// 'invalid_json' / 'write_failed' mean CC may be silently dropping
|
|
5292
|
+
// ALL channel inbound — the API opens a host-scoped alert on it.
|
|
5293
|
+
// Omitted (undefined) on hosts that haven't run the assertion
|
|
5294
|
+
// (non-claude-code frameworks).
|
|
5295
|
+
channels_setting_status: lastManagedSettingsStatus ?? void 0
|
|
5278
5296
|
});
|
|
5279
5297
|
if (hbResp?.maintenance_window) {
|
|
5280
5298
|
cachedMaintenanceWindow = hbResp.maintenance_window;
|
|
@@ -5298,7 +5316,7 @@ async function pollCycle() {
|
|
|
5298
5316
|
const {
|
|
5299
5317
|
collectResponsivenessProbes,
|
|
5300
5318
|
getResponsivenessIntervalMs
|
|
5301
|
-
} = await import("../responsiveness-probe-
|
|
5319
|
+
} = await import("../responsiveness-probe-B6LJJRUD.js");
|
|
5302
5320
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
5303
5321
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
5304
5322
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -7666,6 +7684,7 @@ async function routeScheduledTaskViaKanban(codeName, agentId, task, prompt) {
|
|
|
7666
7684
|
return false;
|
|
7667
7685
|
}
|
|
7668
7686
|
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.
|
|
7687
|
+
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.
|
|
7669
7688
|
` + formatRunMarker(run_id);
|
|
7670
7689
|
let injectStatus;
|
|
7671
7690
|
try {
|
|
@@ -9633,7 +9652,7 @@ async function processClaudePairSessions(agents) {
|
|
|
9633
9652
|
killPairSession,
|
|
9634
9653
|
pairTmuxSession,
|
|
9635
9654
|
finalizeClaudePairOnboarding
|
|
9636
|
-
} = await import("../claude-pair-runtime-
|
|
9655
|
+
} = await import("../claude-pair-runtime-F6USL3EW.js");
|
|
9637
9656
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
9638
9657
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
9639
9658
|
const killed = await killPairSession(pairTmuxSession(pairId));
|