@integrity-labs/agt-cli 0.28.441 → 0.28.442
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-6KTN6GTT.js → chunk-JIZ6Z6EX.js} +3 -3
- package/dist/{chunk-NQP2W2RD.js → chunk-XMJ5VMWV.js} +26 -3
- package/dist/chunk-XMJ5VMWV.js.map +1 -0
- package/dist/{claude-pair-runtime-YU6KOA6R.js → claude-pair-runtime-G4M27XXA.js} +2 -2
- package/dist/lib/manager-worker.js +10 -10
- package/dist/mcp/direct-chat-channel.js +25 -2
- package/dist/mcp/origami.js +25 -2
- package/dist/mcp/slack-channel.js +25 -2
- package/dist/mcp/telegram-channel.js +25 -2
- package/dist/{persistent-session-PWLMLDVX.js → persistent-session-VMWQYV5B.js} +2 -2
- package/dist/{responsiveness-probe-ZKUDFRIU.js → responsiveness-probe-WMJEL7IZ.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-NQP2W2RD.js.map +0 -1
- /package/dist/{chunk-6KTN6GTT.js.map → chunk-JIZ6Z6EX.js.map} +0 -0
- /package/dist/{claude-pair-runtime-YU6KOA6R.js.map → claude-pair-runtime-G4M27XXA.js.map} +0 -0
- /package/dist/{persistent-session-PWLMLDVX.js.map → persistent-session-VMWQYV5B.js.map} +0 -0
- /package/dist/{responsiveness-probe-ZKUDFRIU.js.map → responsiveness-probe-WMJEL7IZ.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-VMWQYV5B.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-G4M27XXA.js.map
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
resolveEffectivePinRaw,
|
|
43
43
|
safeWriteJsonAtomic,
|
|
44
44
|
setConfigHash
|
|
45
|
-
} from "../chunk-
|
|
45
|
+
} from "../chunk-JIZ6Z6EX.js";
|
|
46
46
|
import {
|
|
47
47
|
getProjectDir as getProjectDir2,
|
|
48
48
|
getReadyTasks,
|
|
@@ -157,7 +157,7 @@ import {
|
|
|
157
157
|
toOpencodeModel,
|
|
158
158
|
transcriptActivityAgeSeconds,
|
|
159
159
|
writeEgressAllowlist
|
|
160
|
-
} from "../chunk-
|
|
160
|
+
} from "../chunk-XMJ5VMWV.js";
|
|
161
161
|
import {
|
|
162
162
|
reapOrphanChannelMcps
|
|
163
163
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -9812,7 +9812,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
9812
9812
|
var lastVersionCheckAt = 0;
|
|
9813
9813
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
9814
9814
|
var lastResponsivenessProbeAt = 0;
|
|
9815
|
-
var agtCliVersion = true ? "0.28.
|
|
9815
|
+
var agtCliVersion = true ? "0.28.442" : "dev";
|
|
9816
9816
|
function resolveBrewPath(execFileSync2) {
|
|
9817
9817
|
try {
|
|
9818
9818
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -10970,7 +10970,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
10970
10970
|
if (codeNames.length === 0) return;
|
|
10971
10971
|
void (async () => {
|
|
10972
10972
|
try {
|
|
10973
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
10973
|
+
const { collectDiagnostics } = await import("../persistent-session-VMWQYV5B.js");
|
|
10974
10974
|
await api.post("/host/heartbeat", {
|
|
10975
10975
|
host_id: hostId,
|
|
10976
10976
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -11077,7 +11077,7 @@ async function pollCycle() {
|
|
|
11077
11077
|
}
|
|
11078
11078
|
try {
|
|
11079
11079
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
11080
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
11080
|
+
const { collectDiagnostics } = await import("../persistent-session-VMWQYV5B.js");
|
|
11081
11081
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
11082
11082
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor) : void 0;
|
|
11083
11083
|
let tailscaleHostname;
|
|
@@ -11191,7 +11191,7 @@ async function pollCycle() {
|
|
|
11191
11191
|
collectResponsivenessProbes,
|
|
11192
11192
|
collectPanelessActivityProbes,
|
|
11193
11193
|
getResponsivenessIntervalMs
|
|
11194
|
-
} = await import("../responsiveness-probe-
|
|
11194
|
+
} = await import("../responsiveness-probe-WMJEL7IZ.js");
|
|
11195
11195
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
11196
11196
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
11197
11197
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -11255,7 +11255,7 @@ async function pollCycle() {
|
|
|
11255
11255
|
collectResponsivenessProbes,
|
|
11256
11256
|
livePendingInboundOldestAgeSeconds,
|
|
11257
11257
|
parkPendingInbound
|
|
11258
|
-
} = await import("../responsiveness-probe-
|
|
11258
|
+
} = await import("../responsiveness-probe-WMJEL7IZ.js");
|
|
11259
11259
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
11260
11260
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
11261
11261
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -14609,7 +14609,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
14609
14609
|
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}`));
|
|
14610
14610
|
void (async () => {
|
|
14611
14611
|
try {
|
|
14612
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
14612
|
+
const { collectDiagnostics } = await import("../persistent-session-VMWQYV5B.js");
|
|
14613
14613
|
await api.post("/host/heartbeat", {
|
|
14614
14614
|
host_id: hostId,
|
|
14615
14615
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -14659,7 +14659,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
14659
14659
|
}
|
|
14660
14660
|
try {
|
|
14661
14661
|
const hostId = await getHostId();
|
|
14662
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
14662
|
+
const { collectDiagnostics } = await import("../persistent-session-VMWQYV5B.js");
|
|
14663
14663
|
await api.post("/host/heartbeat", {
|
|
14664
14664
|
host_id: hostId,
|
|
14665
14665
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor)
|
|
@@ -15112,7 +15112,7 @@ async function processClaudePairSessions(agents) {
|
|
|
15112
15112
|
killPairSession,
|
|
15113
15113
|
pairTmuxSession,
|
|
15114
15114
|
finalizeClaudePairOnboarding
|
|
15115
|
-
} = await import("../claude-pair-runtime-
|
|
15115
|
+
} = await import("../claude-pair-runtime-G4M27XXA.js");
|
|
15116
15116
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
15117
15117
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
15118
15118
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -31989,8 +31989,31 @@ var DEFAULT_SCOPES = [
|
|
|
31989
31989
|
// links an inbound Slack sender to their organization_people record (inbound
|
|
31990
31990
|
// identity reconcile). Existing installs without it degrade gracefully - the
|
|
31991
31991
|
// reconcile no-ops until the bot is re-authorised with the wider scope set.
|
|
31992
|
-
"users:read.email"
|
|
31993
|
-
|
|
31992
|
+
"users:read.email"
|
|
31993
|
+
// ENG-8203: 'users.profile:write' is deliberately NOT here.
|
|
31994
|
+
//
|
|
31995
|
+
// It is registered with `token_type: 'user'` (ENG-4812 — Slack rejects it
|
|
31996
|
+
// under oauth_config.scopes.bot with `illegal_bot_scopes`). The MANIFEST
|
|
31997
|
+
// generator partitions on that flag; the OAuth install-URL builder does not —
|
|
31998
|
+
// `buildSlackAuthorizeUrl` puts every stored scope into `scope=` — so a
|
|
31999
|
+
// default-scoped OAuth install sent a user-only scope as a bot scope and
|
|
32000
|
+
// Slack rejected the whole authorization with "Invalid permissions
|
|
32001
|
+
// requested". That blocked EVERY new install on the default set.
|
|
32002
|
+
//
|
|
32003
|
+
// Removing it rather than routing it to `user_scope=` is deliberate: the
|
|
32004
|
+
// callback destructures `authed_user?: { id?: string }` and persists only the
|
|
32005
|
+
// BOT token (oauth-callback/route.ts:217,246). `authed_user.access_token` is
|
|
32006
|
+
// never read, so asking for the scope would put an extra consent screen in
|
|
32007
|
+
// front of the installing admin and then discard the token it returned.
|
|
32008
|
+
//
|
|
32009
|
+
// Nothing is lost. `users.profile.set` needs an `xoxp-` user token, which no
|
|
32010
|
+
// OAuth-installed agent has ever had — the bot-status/live-presence indicator
|
|
32011
|
+
// only ever worked where an operator pasted a user token into the wizard by
|
|
32012
|
+
// hand, and that path is untouched. The registry definition stays so existing
|
|
32013
|
+
// configs still render and the `token_type: 'user'` knowledge is preserved.
|
|
32014
|
+
//
|
|
32015
|
+
// Wiring the indicator for OAuth installs means persisting
|
|
32016
|
+
// `authed_user.access_token` first, THEN adding `user_scope=`. Separate work.
|
|
31994
32017
|
];
|
|
31995
32018
|
var SLACK_SCOPE_PRESETS = {
|
|
31996
32019
|
minimal: [
|
package/dist/mcp/origami.js
CHANGED
|
@@ -37627,8 +37627,31 @@ var DEFAULT_SCOPES = [
|
|
|
37627
37627
|
// links an inbound Slack sender to their organization_people record (inbound
|
|
37628
37628
|
// identity reconcile). Existing installs without it degrade gracefully - the
|
|
37629
37629
|
// reconcile no-ops until the bot is re-authorised with the wider scope set.
|
|
37630
|
-
"users:read.email"
|
|
37631
|
-
|
|
37630
|
+
"users:read.email"
|
|
37631
|
+
// ENG-8203: 'users.profile:write' is deliberately NOT here.
|
|
37632
|
+
//
|
|
37633
|
+
// It is registered with `token_type: 'user'` (ENG-4812 — Slack rejects it
|
|
37634
|
+
// under oauth_config.scopes.bot with `illegal_bot_scopes`). The MANIFEST
|
|
37635
|
+
// generator partitions on that flag; the OAuth install-URL builder does not —
|
|
37636
|
+
// `buildSlackAuthorizeUrl` puts every stored scope into `scope=` — so a
|
|
37637
|
+
// default-scoped OAuth install sent a user-only scope as a bot scope and
|
|
37638
|
+
// Slack rejected the whole authorization with "Invalid permissions
|
|
37639
|
+
// requested". That blocked EVERY new install on the default set.
|
|
37640
|
+
//
|
|
37641
|
+
// Removing it rather than routing it to `user_scope=` is deliberate: the
|
|
37642
|
+
// callback destructures `authed_user?: { id?: string }` and persists only the
|
|
37643
|
+
// BOT token (oauth-callback/route.ts:217,246). `authed_user.access_token` is
|
|
37644
|
+
// never read, so asking for the scope would put an extra consent screen in
|
|
37645
|
+
// front of the installing admin and then discard the token it returned.
|
|
37646
|
+
//
|
|
37647
|
+
// Nothing is lost. `users.profile.set` needs an `xoxp-` user token, which no
|
|
37648
|
+
// OAuth-installed agent has ever had — the bot-status/live-presence indicator
|
|
37649
|
+
// only ever worked where an operator pasted a user token into the wizard by
|
|
37650
|
+
// hand, and that path is untouched. The registry definition stays so existing
|
|
37651
|
+
// configs still render and the `token_type: 'user'` knowledge is preserved.
|
|
37652
|
+
//
|
|
37653
|
+
// Wiring the indicator for OAuth installs means persisting
|
|
37654
|
+
// `authed_user.access_token` first, THEN adding `user_scope=`. Separate work.
|
|
37632
37655
|
];
|
|
37633
37656
|
var SLACK_SCOPE_PRESETS = {
|
|
37634
37657
|
minimal: [
|
|
@@ -31558,8 +31558,31 @@ var DEFAULT_SCOPES = [
|
|
|
31558
31558
|
// links an inbound Slack sender to their organization_people record (inbound
|
|
31559
31559
|
// identity reconcile). Existing installs without it degrade gracefully - the
|
|
31560
31560
|
// reconcile no-ops until the bot is re-authorised with the wider scope set.
|
|
31561
|
-
"users:read.email"
|
|
31562
|
-
|
|
31561
|
+
"users:read.email"
|
|
31562
|
+
// ENG-8203: 'users.profile:write' is deliberately NOT here.
|
|
31563
|
+
//
|
|
31564
|
+
// It is registered with `token_type: 'user'` (ENG-4812 — Slack rejects it
|
|
31565
|
+
// under oauth_config.scopes.bot with `illegal_bot_scopes`). The MANIFEST
|
|
31566
|
+
// generator partitions on that flag; the OAuth install-URL builder does not —
|
|
31567
|
+
// `buildSlackAuthorizeUrl` puts every stored scope into `scope=` — so a
|
|
31568
|
+
// default-scoped OAuth install sent a user-only scope as a bot scope and
|
|
31569
|
+
// Slack rejected the whole authorization with "Invalid permissions
|
|
31570
|
+
// requested". That blocked EVERY new install on the default set.
|
|
31571
|
+
//
|
|
31572
|
+
// Removing it rather than routing it to `user_scope=` is deliberate: the
|
|
31573
|
+
// callback destructures `authed_user?: { id?: string }` and persists only the
|
|
31574
|
+
// BOT token (oauth-callback/route.ts:217,246). `authed_user.access_token` is
|
|
31575
|
+
// never read, so asking for the scope would put an extra consent screen in
|
|
31576
|
+
// front of the installing admin and then discard the token it returned.
|
|
31577
|
+
//
|
|
31578
|
+
// Nothing is lost. `users.profile.set` needs an `xoxp-` user token, which no
|
|
31579
|
+
// OAuth-installed agent has ever had — the bot-status/live-presence indicator
|
|
31580
|
+
// only ever worked where an operator pasted a user token into the wizard by
|
|
31581
|
+
// hand, and that path is untouched. The registry definition stays so existing
|
|
31582
|
+
// configs still render and the `token_type: 'user'` knowledge is preserved.
|
|
31583
|
+
//
|
|
31584
|
+
// Wiring the indicator for OAuth installs means persisting
|
|
31585
|
+
// `authed_user.access_token` first, THEN adding `user_scope=`. Separate work.
|
|
31563
31586
|
];
|
|
31564
31587
|
var SLACK_SCOPE_PRESETS = {
|
|
31565
31588
|
minimal: [
|
|
@@ -31860,8 +31860,31 @@ var DEFAULT_SCOPES = [
|
|
|
31860
31860
|
// links an inbound Slack sender to their organization_people record (inbound
|
|
31861
31861
|
// identity reconcile). Existing installs without it degrade gracefully - the
|
|
31862
31862
|
// reconcile no-ops until the bot is re-authorised with the wider scope set.
|
|
31863
|
-
"users:read.email"
|
|
31864
|
-
|
|
31863
|
+
"users:read.email"
|
|
31864
|
+
// ENG-8203: 'users.profile:write' is deliberately NOT here.
|
|
31865
|
+
//
|
|
31866
|
+
// It is registered with `token_type: 'user'` (ENG-4812 — Slack rejects it
|
|
31867
|
+
// under oauth_config.scopes.bot with `illegal_bot_scopes`). The MANIFEST
|
|
31868
|
+
// generator partitions on that flag; the OAuth install-URL builder does not —
|
|
31869
|
+
// `buildSlackAuthorizeUrl` puts every stored scope into `scope=` — so a
|
|
31870
|
+
// default-scoped OAuth install sent a user-only scope as a bot scope and
|
|
31871
|
+
// Slack rejected the whole authorization with "Invalid permissions
|
|
31872
|
+
// requested". That blocked EVERY new install on the default set.
|
|
31873
|
+
//
|
|
31874
|
+
// Removing it rather than routing it to `user_scope=` is deliberate: the
|
|
31875
|
+
// callback destructures `authed_user?: { id?: string }` and persists only the
|
|
31876
|
+
// BOT token (oauth-callback/route.ts:217,246). `authed_user.access_token` is
|
|
31877
|
+
// never read, so asking for the scope would put an extra consent screen in
|
|
31878
|
+
// front of the installing admin and then discard the token it returned.
|
|
31879
|
+
//
|
|
31880
|
+
// Nothing is lost. `users.profile.set` needs an `xoxp-` user token, which no
|
|
31881
|
+
// OAuth-installed agent has ever had — the bot-status/live-presence indicator
|
|
31882
|
+
// only ever worked where an operator pasted a user token into the wizard by
|
|
31883
|
+
// hand, and that path is untouched. The registry definition stays so existing
|
|
31884
|
+
// configs still render and the `token_type: 'user'` knowledge is preserved.
|
|
31885
|
+
//
|
|
31886
|
+
// Wiring the indicator for OAuth installs means persisting
|
|
31887
|
+
// `authed_user.access_token` first, THEN adding `user_scope=`. Separate work.
|
|
31865
31888
|
];
|
|
31866
31889
|
var SLACK_SCOPE_PRESETS = {
|
|
31867
31890
|
minimal: [
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
writeDirectChatSessionState,
|
|
37
37
|
writeEgressAllowlist,
|
|
38
38
|
writePersistentClaudeWrapper
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-XMJ5VMWV.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-VMWQYV5B.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XMJ5VMWV.js";
|
|
4
4
|
import "./chunk-XWVM4KPK.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/responsiveness-probe.ts
|
|
@@ -471,4 +471,4 @@ export {
|
|
|
471
471
|
readAndResetSlackReplyBindingClassifications,
|
|
472
472
|
readAndResetSlackReplyTargetClassifications
|
|
473
473
|
};
|
|
474
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
474
|
+
//# sourceMappingURL=responsiveness-probe-WMJEL7IZ.js.map
|