@integrity-labs/agt-cli 0.28.121 → 0.28.123
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-XWO6CNEZ.js → chunk-2LCGKN3V.js} +6 -4
- package/dist/chunk-2LCGKN3V.js.map +1 -0
- package/dist/{chunk-HRE2TNEH.js → chunk-3TBZBKJM.js} +7 -1
- package/dist/chunk-3TBZBKJM.js.map +1 -0
- package/dist/{chunk-F5URYXY5.js → chunk-TAXAKVZI.js} +3 -3
- package/dist/{claude-pair-runtime-MMBSV24T.js → claude-pair-runtime-BJX6GLXE.js} +2 -2
- package/dist/lib/manager-worker.js +8 -8
- package/dist/mcp/index.js +73 -1
- package/dist/{persistent-session-V6GY5NAX.js → persistent-session-J4ODLVDJ.js} +3 -3
- package/dist/{responsiveness-probe-NNOAARBI.js → responsiveness-probe-WEVTSOD3.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-HRE2TNEH.js.map +0 -1
- package/dist/chunk-XWO6CNEZ.js.map +0 -1
- /package/dist/{chunk-F5URYXY5.js.map → chunk-TAXAKVZI.js.map} +0 -0
- /package/dist/{claude-pair-runtime-MMBSV24T.js.map → claude-pair-runtime-BJX6GLXE.js.map} +0 -0
- /package/dist/{persistent-session-V6GY5NAX.js.map → persistent-session-J4ODLVDJ.js.map} +0 -0
- /package/dist/{responsiveness-probe-NNOAARBI.js.map → responsiveness-probe-WEVTSOD3.js.map} +0 -0
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
resolveConnectivityProbe,
|
|
23
23
|
worseConnectivityOutcome,
|
|
24
24
|
wrapScheduledTaskPrompt
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-3TBZBKJM.js";
|
|
26
26
|
|
|
27
27
|
// ../../packages/core/dist/integrations/registry.js
|
|
28
28
|
var INTEGRATION_REGISTRY = [
|
|
@@ -7653,7 +7653,7 @@ function requireHost() {
|
|
|
7653
7653
|
}
|
|
7654
7654
|
|
|
7655
7655
|
// src/lib/api-client.ts
|
|
7656
|
-
var agtCliVersion = true ? "0.28.
|
|
7656
|
+
var agtCliVersion = true ? "0.28.123" : "dev";
|
|
7657
7657
|
var lastConfigHash = null;
|
|
7658
7658
|
function setConfigHash(hash) {
|
|
7659
7659
|
lastConfigHash = hash && hash.length > 0 ? hash : null;
|
|
@@ -8950,4 +8950,4 @@ export {
|
|
|
8950
8950
|
managerInstallSystemUnitCommand,
|
|
8951
8951
|
managerUninstallSystemUnitCommand
|
|
8952
8952
|
};
|
|
8953
|
-
//# sourceMappingURL=chunk-
|
|
8953
|
+
//# sourceMappingURL=chunk-TAXAKVZI.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-J4ODLVDJ.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-BJX6GLXE.js.map
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
requireHost,
|
|
29
29
|
safeWriteJsonAtomic,
|
|
30
30
|
setConfigHash
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-TAXAKVZI.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-2LCGKN3V.js";
|
|
76
76
|
import {
|
|
77
77
|
FLAGS_SCHEMA_VERSION,
|
|
78
78
|
FLAG_REGISTRY,
|
|
@@ -108,7 +108,7 @@ import {
|
|
|
108
108
|
resolveDmTarget,
|
|
109
109
|
sumTranscriptUsageInWindow,
|
|
110
110
|
wrapScheduledTaskPrompt
|
|
111
|
-
} from "../chunk-
|
|
111
|
+
} from "../chunk-3TBZBKJM.js";
|
|
112
112
|
import {
|
|
113
113
|
parsePsRows,
|
|
114
114
|
reapOrphanChannelMcps
|
|
@@ -7000,7 +7000,7 @@ var cachedMaintenanceWindow = null;
|
|
|
7000
7000
|
var lastVersionCheckAt = 0;
|
|
7001
7001
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
7002
7002
|
var lastResponsivenessProbeAt = 0;
|
|
7003
|
-
var agtCliVersion = true ? "0.28.
|
|
7003
|
+
var agtCliVersion = true ? "0.28.123" : "dev";
|
|
7004
7004
|
function resolveBrewPath(execFileSync4) {
|
|
7005
7005
|
try {
|
|
7006
7006
|
const out = execFileSync4("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -8111,7 +8111,7 @@ async function pollCycle() {
|
|
|
8111
8111
|
}
|
|
8112
8112
|
try {
|
|
8113
8113
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
8114
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
8114
|
+
const { collectDiagnostics } = await import("../persistent-session-J4ODLVDJ.js");
|
|
8115
8115
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
8116
8116
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames) : void 0;
|
|
8117
8117
|
let tailscaleHostname;
|
|
@@ -8212,7 +8212,7 @@ async function pollCycle() {
|
|
|
8212
8212
|
const {
|
|
8213
8213
|
collectResponsivenessProbes,
|
|
8214
8214
|
getResponsivenessIntervalMs
|
|
8215
|
-
} = await import("../responsiveness-probe-
|
|
8215
|
+
} = await import("../responsiveness-probe-WEVTSOD3.js");
|
|
8216
8216
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
8217
8217
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
8218
8218
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -8244,7 +8244,7 @@ async function pollCycle() {
|
|
|
8244
8244
|
collectResponsivenessProbes,
|
|
8245
8245
|
livePendingInboundOldestAgeSeconds,
|
|
8246
8246
|
parkPendingInbound
|
|
8247
|
-
} = await import("../responsiveness-probe-
|
|
8247
|
+
} = await import("../responsiveness-probe-WEVTSOD3.js");
|
|
8248
8248
|
const { getProjectDir: wedgeProjectDir } = await import("../claude-scheduler-FATCLHDM.js");
|
|
8249
8249
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
8250
8250
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -11776,7 +11776,7 @@ async function processClaudePairSessions(agents) {
|
|
|
11776
11776
|
killPairSession,
|
|
11777
11777
|
pairTmuxSession,
|
|
11778
11778
|
finalizeClaudePairOnboarding
|
|
11779
|
-
} = await import("../claude-pair-runtime-
|
|
11779
|
+
} = await import("../claude-pair-runtime-BJX6GLXE.js");
|
|
11780
11780
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
11781
11781
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
11782
11782
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
package/dist/mcp/index.js
CHANGED
|
@@ -21951,6 +21951,75 @@ server.tool(
|
|
|
21951
21951
|
};
|
|
21952
21952
|
}
|
|
21953
21953
|
);
|
|
21954
|
+
server.tool(
|
|
21955
|
+
"request_channel_access",
|
|
21956
|
+
"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.",
|
|
21957
|
+
{
|
|
21958
|
+
channel_id: external_exports.string().min(1).describe("The Slack channel id (C... or G..., NOT a name) - resolve it via slack.check_channel / slack.list_channels first."),
|
|
21959
|
+
channel_name: external_exports.string().max(120).optional().describe("Optional human-readable channel name, shown to your Manager on the approval card."),
|
|
21960
|
+
reason: external_exports.string().min(1).max(280).describe("Why you need to post in this channel - shown to your Manager. Be specific."),
|
|
21961
|
+
idempotency_key: external_exports.string().min(1).max(200).describe('A stable key for this request so retries do not file duplicates (e.g. "channel-access-C123-<task>").')
|
|
21962
|
+
},
|
|
21963
|
+
async (params) => {
|
|
21964
|
+
if (!AGT_AGENT_CODE_NAME) {
|
|
21965
|
+
return {
|
|
21966
|
+
content: [{ type: "text", text: "Error: AGT_AGENT_CODE_NAME not configured." }],
|
|
21967
|
+
isError: true
|
|
21968
|
+
};
|
|
21969
|
+
}
|
|
21970
|
+
let resp;
|
|
21971
|
+
try {
|
|
21972
|
+
resp = await apiPost("/host/request-channel-access", {
|
|
21973
|
+
agent_code_name: AGT_AGENT_CODE_NAME,
|
|
21974
|
+
channel_id: params.channel_id,
|
|
21975
|
+
...params.channel_name ? { channel_name: params.channel_name } : {},
|
|
21976
|
+
reason: params.reason,
|
|
21977
|
+
idempotency_key: params.idempotency_key
|
|
21978
|
+
});
|
|
21979
|
+
} catch (err) {
|
|
21980
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
21981
|
+
if (/returned\s+[45]\d\d/.test(msg)) {
|
|
21982
|
+
let detail = msg;
|
|
21983
|
+
const jsonStart = msg.indexOf("{");
|
|
21984
|
+
if (jsonStart !== -1) {
|
|
21985
|
+
try {
|
|
21986
|
+
const parsedErr = JSON.parse(msg.slice(jsonStart));
|
|
21987
|
+
if (parsedErr.error) detail = parsedErr.error;
|
|
21988
|
+
} catch {
|
|
21989
|
+
}
|
|
21990
|
+
}
|
|
21991
|
+
return {
|
|
21992
|
+
content: [{ type: "text", text: `Channel-access request rejected: ${detail}` }],
|
|
21993
|
+
isError: true
|
|
21994
|
+
};
|
|
21995
|
+
}
|
|
21996
|
+
return {
|
|
21997
|
+
content: [
|
|
21998
|
+
{
|
|
21999
|
+
type: "text",
|
|
22000
|
+
text: `Could not reach the channel-access service (${msg}). Tell your operator.`
|
|
22001
|
+
}
|
|
22002
|
+
],
|
|
22003
|
+
isError: true
|
|
22004
|
+
};
|
|
22005
|
+
}
|
|
22006
|
+
if (!resp.ok) {
|
|
22007
|
+
return {
|
|
22008
|
+
content: [{ type: "text", text: `Channel-access request rejected: ${resp.error ?? "unknown error"}` }],
|
|
22009
|
+
isError: true
|
|
22010
|
+
};
|
|
22011
|
+
}
|
|
22012
|
+
const idLine = resp.request_id ? ` Request id: ${resp.request_id} (poll it with check_approval).` : "";
|
|
22013
|
+
return {
|
|
22014
|
+
content: [
|
|
22015
|
+
{
|
|
22016
|
+
type: "text",
|
|
22017
|
+
text: `Channel-access request sent to your Manager for approval.${idLine} On approval the channel is added to the allowlist (org-wide) and you can post there. Do not re-send while it is pending.`
|
|
22018
|
+
}
|
|
22019
|
+
]
|
|
22020
|
+
};
|
|
22021
|
+
}
|
|
22022
|
+
);
|
|
21954
22023
|
server.tool(
|
|
21955
22024
|
"drift_report",
|
|
21956
22025
|
"Report configuration drift detected in local agent files (CHARTER.md, TOOLS.md, etc.). Compares local file hashes against API-side versions and reports any differences.",
|
|
@@ -22848,7 +22917,10 @@ var LOCAL_TOOL_NAMES = /* @__PURE__ */ new Set([
|
|
|
22848
22917
|
"request_feature",
|
|
22849
22918
|
// ENG-6686: self-service identity edit (always registered). Listed here to
|
|
22850
22919
|
// keep the lockstep guard green; no API tool shares this name.
|
|
22851
|
-
"update_identity"
|
|
22920
|
+
"update_identity",
|
|
22921
|
+
// ENG-6689: request Slack channel posting access (HITL approval to Manager).
|
|
22922
|
+
// Always registered; listed here to keep the lockstep guard green.
|
|
22923
|
+
"request_channel_access"
|
|
22852
22924
|
]);
|
|
22853
22925
|
async function registerForwardedApiTools() {
|
|
22854
22926
|
const apiTools = await discoverApiTools();
|
|
@@ -34,8 +34,8 @@ import {
|
|
|
34
34
|
writeDirectChatSessionState,
|
|
35
35
|
writeEgressAllowlist,
|
|
36
36
|
writePersistentClaudeWrapper
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-2LCGKN3V.js";
|
|
38
|
+
import "./chunk-3TBZBKJM.js";
|
|
39
39
|
import "./chunk-XWVM4KPK.js";
|
|
40
40
|
export {
|
|
41
41
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -74,4 +74,4 @@ export {
|
|
|
74
74
|
writeEgressAllowlist,
|
|
75
75
|
writePersistentClaudeWrapper
|
|
76
76
|
};
|
|
77
|
-
//# sourceMappingURL=persistent-session-
|
|
77
|
+
//# sourceMappingURL=persistent-session-J4ODLVDJ.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-2LCGKN3V.js";
|
|
4
|
+
import "./chunk-3TBZBKJM.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -304,4 +304,4 @@ export {
|
|
|
304
304
|
readAndResetChannelDeflections,
|
|
305
305
|
readAndResetChannelLaneClassifications
|
|
306
306
|
};
|
|
307
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
307
|
+
//# sourceMappingURL=responsiveness-probe-WEVTSOD3.js.map
|