@integrity-labs/agt-cli 0.28.399 → 0.28.401
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-WKCR2HIQ.js → chunk-24P2BKOV.js} +3 -3
- package/dist/{chunk-4LZBDTFJ.js → chunk-V5CRVBVC.js} +12 -2
- package/dist/{chunk-4LZBDTFJ.js.map → chunk-V5CRVBVC.js.map} +1 -1
- package/dist/{claude-pair-runtime-XUI3TOGS.js → claude-pair-runtime-HDSV7CKE.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/index.js +69 -0
- package/dist/{persistent-session-34CDP2I3.js → persistent-session-GRCJPRH5.js} +2 -2
- package/dist/{responsiveness-probe-T7WBF4FX.js → responsiveness-probe-DNM5APN5.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-WKCR2HIQ.js.map → chunk-24P2BKOV.js.map} +0 -0
- /package/dist/{claude-pair-runtime-XUI3TOGS.js.map → claude-pair-runtime-HDSV7CKE.js.map} +0 -0
- /package/dist/{persistent-session-34CDP2I3.js.map → persistent-session-GRCJPRH5.js.map} +0 -0
- /package/dist/{responsiveness-probe-T7WBF4FX.js.map → responsiveness-probe-DNM5APN5.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-GRCJPRH5.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-HDSV7CKE.js.map
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
resolveEffectivePinRaw,
|
|
45
45
|
safeWriteJsonAtomic,
|
|
46
46
|
setConfigHash
|
|
47
|
-
} from "../chunk-
|
|
47
|
+
} from "../chunk-24P2BKOV.js";
|
|
48
48
|
import {
|
|
49
49
|
getProjectDir as getProjectDir2,
|
|
50
50
|
getReadyTasks,
|
|
@@ -146,7 +146,7 @@ import {
|
|
|
146
146
|
toOpencodeModel,
|
|
147
147
|
transcriptActivityAgeSeconds,
|
|
148
148
|
writeEgressAllowlist
|
|
149
|
-
} from "../chunk-
|
|
149
|
+
} from "../chunk-V5CRVBVC.js";
|
|
150
150
|
import {
|
|
151
151
|
reapOrphanChannelMcps
|
|
152
152
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -9249,7 +9249,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
9249
9249
|
var lastVersionCheckAt = 0;
|
|
9250
9250
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
9251
9251
|
var lastResponsivenessProbeAt = 0;
|
|
9252
|
-
var agtCliVersion = true ? "0.28.
|
|
9252
|
+
var agtCliVersion = true ? "0.28.401" : "dev";
|
|
9253
9253
|
function resolveBrewPath(execFileSync2) {
|
|
9254
9254
|
try {
|
|
9255
9255
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -10381,7 +10381,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
10381
10381
|
if (codeNames.length === 0) return;
|
|
10382
10382
|
void (async () => {
|
|
10383
10383
|
try {
|
|
10384
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10384
|
+
const { collectDiagnostics } = await import("../persistent-session-GRCJPRH5.js");
|
|
10385
10385
|
await api.post("/host/heartbeat", {
|
|
10386
10386
|
host_id: hostId,
|
|
10387
10387
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor)
|
|
@@ -10480,7 +10480,7 @@ async function pollCycle() {
|
|
|
10480
10480
|
}
|
|
10481
10481
|
try {
|
|
10482
10482
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
10483
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10483
|
+
const { collectDiagnostics } = await import("../persistent-session-GRCJPRH5.js");
|
|
10484
10484
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
10485
10485
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor) : void 0;
|
|
10486
10486
|
let tailscaleHostname;
|
|
@@ -10635,7 +10635,7 @@ async function pollCycle() {
|
|
|
10635
10635
|
const {
|
|
10636
10636
|
collectResponsivenessProbes,
|
|
10637
10637
|
getResponsivenessIntervalMs
|
|
10638
|
-
} = await import("../responsiveness-probe-
|
|
10638
|
+
} = await import("../responsiveness-probe-DNM5APN5.js");
|
|
10639
10639
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
10640
10640
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
10641
10641
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -10667,7 +10667,7 @@ async function pollCycle() {
|
|
|
10667
10667
|
collectResponsivenessProbes,
|
|
10668
10668
|
livePendingInboundOldestAgeSeconds,
|
|
10669
10669
|
parkPendingInbound
|
|
10670
|
-
} = await import("../responsiveness-probe-
|
|
10670
|
+
} = await import("../responsiveness-probe-DNM5APN5.js");
|
|
10671
10671
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-HYOOQV4A.js");
|
|
10672
10672
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
10673
10673
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -13927,7 +13927,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
13927
13927
|
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}`));
|
|
13928
13928
|
void (async () => {
|
|
13929
13929
|
try {
|
|
13930
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
13930
|
+
const { collectDiagnostics } = await import("../persistent-session-GRCJPRH5.js");
|
|
13931
13931
|
await api.post("/host/heartbeat", {
|
|
13932
13932
|
host_id: hostId,
|
|
13933
13933
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor)
|
|
@@ -13977,7 +13977,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
13977
13977
|
}
|
|
13978
13978
|
try {
|
|
13979
13979
|
const hostId = await getHostId();
|
|
13980
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
13980
|
+
const { collectDiagnostics } = await import("../persistent-session-GRCJPRH5.js");
|
|
13981
13981
|
await api.post("/host/heartbeat", {
|
|
13982
13982
|
host_id: hostId,
|
|
13983
13983
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor)
|
|
@@ -14430,7 +14430,7 @@ async function processClaudePairSessions(agents) {
|
|
|
14430
14430
|
killPairSession,
|
|
14431
14431
|
pairTmuxSession,
|
|
14432
14432
|
finalizeClaudePairOnboarding
|
|
14433
|
-
} = await import("../claude-pair-runtime-
|
|
14433
|
+
} = await import("../claude-pair-runtime-HDSV7CKE.js");
|
|
14434
14434
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
14435
14435
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
14436
14436
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
package/dist/mcp/index.js
CHANGED
|
@@ -22511,6 +22511,72 @@ server.tool(
|
|
|
22511
22511
|
};
|
|
22512
22512
|
}
|
|
22513
22513
|
);
|
|
22514
|
+
server.tool(
|
|
22515
|
+
"update_timezone",
|
|
22516
|
+
`Set your OWN timezone, as an IANA name (e.g. "Australia/Sydney", "America/New_York", "Europe/London"). This controls the local clock used for your restart / maintenance-window scheduling and day-boundary reporting, so "off-peak" is calculated in your operator's zone rather than UTC. Pass an empty string (or "auto") to CLEAR your override and inherit your team default (falling back to UTC). Changes save immediately and take full effect within a few minutes, on your next configuration refresh. Your code_name and identity are unaffected.`,
|
|
22517
|
+
{
|
|
22518
|
+
timezone: external_exports.string().max(100).describe(
|
|
22519
|
+
'Your IANA timezone name (e.g. "Australia/Sydney"). Pass an empty string or "auto" to clear the override and inherit the team default (then UTC).'
|
|
22520
|
+
)
|
|
22521
|
+
},
|
|
22522
|
+
async (params) => {
|
|
22523
|
+
if (!AGT_AGENT_CODE_NAME) {
|
|
22524
|
+
return {
|
|
22525
|
+
content: [{ type: "text", text: "Error: AGT_AGENT_CODE_NAME not configured." }],
|
|
22526
|
+
isError: true
|
|
22527
|
+
};
|
|
22528
|
+
}
|
|
22529
|
+
const payload = { agent_code_name: AGT_AGENT_CODE_NAME, timezone: params.timezone };
|
|
22530
|
+
let resp;
|
|
22531
|
+
try {
|
|
22532
|
+
resp = await apiPost("/host/update-timezone", payload);
|
|
22533
|
+
} catch (err) {
|
|
22534
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
22535
|
+
if (/returned\s+[45]\d\d/.test(msg)) {
|
|
22536
|
+
let detail = msg;
|
|
22537
|
+
const jsonStart = msg.indexOf("{");
|
|
22538
|
+
if (jsonStart !== -1) {
|
|
22539
|
+
try {
|
|
22540
|
+
const parsedErr = JSON.parse(msg.slice(jsonStart));
|
|
22541
|
+
if (parsedErr.error) detail = parsedErr.error;
|
|
22542
|
+
} catch {
|
|
22543
|
+
}
|
|
22544
|
+
}
|
|
22545
|
+
return {
|
|
22546
|
+
content: [{ type: "text", text: `Timezone update rejected: ${detail}` }],
|
|
22547
|
+
isError: true
|
|
22548
|
+
};
|
|
22549
|
+
}
|
|
22550
|
+
return {
|
|
22551
|
+
content: [
|
|
22552
|
+
{
|
|
22553
|
+
type: "text",
|
|
22554
|
+
text: `Could not reach the timezone-update service (${msg}). Tell your operator.`
|
|
22555
|
+
}
|
|
22556
|
+
],
|
|
22557
|
+
isError: true
|
|
22558
|
+
};
|
|
22559
|
+
}
|
|
22560
|
+
if (!resp.ok) {
|
|
22561
|
+
return {
|
|
22562
|
+
content: [
|
|
22563
|
+
{ type: "text", text: `Timezone update rejected: ${resp.error ?? "unknown error"}` }
|
|
22564
|
+
],
|
|
22565
|
+
isError: true
|
|
22566
|
+
};
|
|
22567
|
+
}
|
|
22568
|
+
const effective = resp.effective_timezone ?? "UTC";
|
|
22569
|
+
const summary = resp.timezone ? `Your timezone is now ${resp.timezone}.` : `Your timezone override was cleared; you now inherit ${effective}.`;
|
|
22570
|
+
return {
|
|
22571
|
+
content: [
|
|
22572
|
+
{
|
|
22573
|
+
type: "text",
|
|
22574
|
+
text: `${summary} Effective timezone: ${effective}. The change will take effect within a few minutes, on your next configuration refresh.`
|
|
22575
|
+
}
|
|
22576
|
+
]
|
|
22577
|
+
};
|
|
22578
|
+
}
|
|
22579
|
+
);
|
|
22514
22580
|
server.tool(
|
|
22515
22581
|
"request_channel_access",
|
|
22516
22582
|
"Request approval to post in a specific Slack channel - i.e. to have it added to your organization's channel allowlist. This sends a HITL approval to your Manager; once they approve, the platform adds the channel to the allowlist (org-wide) and you can post there. FIRST resolve the channel id (C...) and confirm the bot can see the channel with slack.check_channel: if it returns not_in_channel, that is a SEPARATE problem - ask your operator to /invite your bot to the channel (membership is not the same as the allowlist). Then call this with the channel_id, a clear reason, and a stable idempotency_key. The request is pending until your Manager decides; poll it with check_approval using the returned request_id. Do not call this for a channel you can already post in.",
|
|
@@ -23696,6 +23762,9 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
23696
23762
|
// ENG-6686: self-service identity edit (always registered). Listed here to
|
|
23697
23763
|
// keep the lockstep guard green; no API tool shares this name.
|
|
23698
23764
|
"update_identity",
|
|
23765
|
+
// ENG-8053: self-service timezone edit (always registered). Listed here to
|
|
23766
|
+
// keep the lockstep guard green; no API tool shares this name.
|
|
23767
|
+
"update_timezone",
|
|
23699
23768
|
// ENG-6689: request Slack channel posting access (HITL approval to Manager).
|
|
23700
23769
|
// Always registered; listed here to keep the lockstep guard green.
|
|
23701
23770
|
"request_channel_access",
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-V5CRVBVC.js";
|
|
40
40
|
import "./chunk-XWVM4KPK.js";
|
|
41
41
|
export {
|
|
42
42
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -77,4 +77,4 @@ export {
|
|
|
77
77
|
writeEgressAllowlist,
|
|
78
78
|
writePersistentClaudeWrapper
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=persistent-session-
|
|
80
|
+
//# sourceMappingURL=persistent-session-GRCJPRH5.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-V5CRVBVC.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -437,4 +437,4 @@ export {
|
|
|
437
437
|
readAndResetSlackReplyBindingClassifications,
|
|
438
438
|
readAndResetSlackReplyTargetClassifications
|
|
439
439
|
};
|
|
440
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
440
|
+
//# sourceMappingURL=responsiveness-probe-DNM5APN5.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|