@integrity-labs/agt-cli 0.28.925 → 0.28.927
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 +5 -5
- package/dist/{chunk-BNEM6AZ6.js → chunk-LWLTSFH3.js} +4 -4
- package/dist/{chunk-6SKPDXGU.js → chunk-NIUBYSLW.js} +2 -2
- package/dist/{chunk-UBXUNYTR.js → chunk-Y7ERASS6.js} +50 -1
- package/dist/chunk-Y7ERASS6.js.map +1 -0
- package/dist/{claude-pair-runtime-PVJNKWJC.js → claude-pair-runtime-RFY57WC3.js} +2 -2
- package/dist/lib/manager-worker.js +14 -14
- package/dist/mcp/direct-chat-channel.js +49 -0
- package/dist/mcp/index.js +49 -0
- package/dist/mcp/origami.js +49 -0
- package/dist/mcp/slack-channel.js +49 -0
- package/dist/mcp/telegram-channel.js +49 -0
- package/dist/{persistent-session-PKHXX4LZ.js → persistent-session-O3AKW6IW.js} +3 -3
- package/dist/{responsiveness-probe-JX2TNGQ2.js → responsiveness-probe-MIPUX3BG.js} +3 -3
- package/dist/{session-auth-dead-2W2OFAZR.js → session-auth-dead-ZGZZLE4X.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-UBXUNYTR.js.map +0 -1
- /package/dist/{chunk-BNEM6AZ6.js.map → chunk-LWLTSFH3.js.map} +0 -0
- /package/dist/{chunk-6SKPDXGU.js.map → chunk-NIUBYSLW.js.map} +0 -0
- /package/dist/{claude-pair-runtime-PVJNKWJC.js.map → claude-pair-runtime-RFY57WC3.js.map} +0 -0
- /package/dist/{persistent-session-PKHXX4LZ.js.map → persistent-session-O3AKW6IW.js.map} +0 -0
- /package/dist/{responsiveness-probe-JX2TNGQ2.js.map → responsiveness-probe-MIPUX3BG.js.map} +0 -0
- /package/dist/{session-auth-dead-2W2OFAZR.js.map → session-auth-dead-ZGZZLE4X.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-O3AKW6IW.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-RFY57WC3.js.map
|
|
@@ -63,7 +63,7 @@ import {
|
|
|
63
63
|
safeWriteJsonAtomic,
|
|
64
64
|
setConfigHash,
|
|
65
65
|
tripClass
|
|
66
|
-
} from "../chunk-
|
|
66
|
+
} from "../chunk-LWLTSFH3.js";
|
|
67
67
|
import {
|
|
68
68
|
getProjectDir as getProjectDir2,
|
|
69
69
|
getReadyTasks,
|
|
@@ -136,7 +136,7 @@ import {
|
|
|
136
136
|
takeZombieDetection,
|
|
137
137
|
toOpencodeModel,
|
|
138
138
|
writeEgressAllowlist
|
|
139
|
-
} from "../chunk-
|
|
139
|
+
} from "../chunk-NIUBYSLW.js";
|
|
140
140
|
import {
|
|
141
141
|
ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
|
|
142
142
|
AnchorSessionClient,
|
|
@@ -231,7 +231,7 @@ import {
|
|
|
231
231
|
subagentActivityAgeSeconds,
|
|
232
232
|
sumTranscriptUsageInWindow,
|
|
233
233
|
transcriptActivityAgeSeconds
|
|
234
|
-
} from "../chunk-
|
|
234
|
+
} from "../chunk-Y7ERASS6.js";
|
|
235
235
|
import {
|
|
236
236
|
reapOrphanChannelMcps
|
|
237
237
|
} from "../chunk-XWVM4KPK.js";
|
|
@@ -13187,7 +13187,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
|
|
|
13187
13187
|
var dayRolloverInboundHold = /* @__PURE__ */ new Map();
|
|
13188
13188
|
var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
|
|
13189
13189
|
async function channelInboundActivityAgeSecondsFor(codeName) {
|
|
13190
|
-
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-
|
|
13190
|
+
const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-MIPUX3BG.js");
|
|
13191
13191
|
const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
|
|
13192
13192
|
if (newest === null) return null;
|
|
13193
13193
|
return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
|
|
@@ -13872,7 +13872,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
|
|
|
13872
13872
|
var lastVersionCheckAt = 0;
|
|
13873
13873
|
var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
|
|
13874
13874
|
var lastResponsivenessProbeAt = 0;
|
|
13875
|
-
var agtCliVersion = true ? "0.28.
|
|
13875
|
+
var agtCliVersion = true ? "0.28.927" : "dev";
|
|
13876
13876
|
function resolveBrewPath(execFileSync2) {
|
|
13877
13877
|
try {
|
|
13878
13878
|
const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
|
|
@@ -15462,7 +15462,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
|
|
|
15462
15462
|
if (codeNames.length === 0) return;
|
|
15463
15463
|
void (async () => {
|
|
15464
15464
|
try {
|
|
15465
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15465
|
+
const { collectDiagnostics } = await import("../persistent-session-O3AKW6IW.js");
|
|
15466
15466
|
await api.post("/host/heartbeat", {
|
|
15467
15467
|
host_id: hostId,
|
|
15468
15468
|
agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -15604,7 +15604,7 @@ async function pollCycleInner() {
|
|
|
15604
15604
|
}
|
|
15605
15605
|
try {
|
|
15606
15606
|
const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
|
|
15607
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
15607
|
+
const { collectDiagnostics } = await import("../persistent-session-O3AKW6IW.js");
|
|
15608
15608
|
const diagCodeNames = [...agentState.persistentSessionAgents];
|
|
15609
15609
|
const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
|
|
15610
15610
|
let tailscaleHostname;
|
|
@@ -15779,7 +15779,7 @@ async function pollCycleInner() {
|
|
|
15779
15779
|
collectPanelessActivityProbes,
|
|
15780
15780
|
getResponsivenessIntervalMs,
|
|
15781
15781
|
occupancyQualificationClassifications
|
|
15782
|
-
} = await import("../responsiveness-probe-
|
|
15782
|
+
} = await import("../responsiveness-probe-MIPUX3BG.js");
|
|
15783
15783
|
const probeIntervalMs = getResponsivenessIntervalMs();
|
|
15784
15784
|
if (now - lastResponsivenessProbeAt > probeIntervalMs) {
|
|
15785
15785
|
const probeCodeNames = [...agentState.persistentSessionAgents];
|
|
@@ -15896,7 +15896,7 @@ async function pollCycleInner() {
|
|
|
15896
15896
|
collectResponsivenessProbes,
|
|
15897
15897
|
livePendingInboundOldestAgeSeconds,
|
|
15898
15898
|
parkPendingInbound
|
|
15899
|
-
} = await import("../responsiveness-probe-
|
|
15899
|
+
} = await import("../responsiveness-probe-MIPUX3BG.js");
|
|
15900
15900
|
const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
|
|
15901
15901
|
const wedgeNow = /* @__PURE__ */ new Date();
|
|
15902
15902
|
const liveAgents = agentState.persistentSessionAgents;
|
|
@@ -16052,7 +16052,7 @@ async function pollCycleInner() {
|
|
|
16052
16052
|
}
|
|
16053
16053
|
try {
|
|
16054
16054
|
const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
|
|
16055
|
-
const { probeSessionAuth } = await import("../session-auth-dead-
|
|
16055
|
+
const { probeSessionAuth } = await import("../session-auth-dead-ZGZZLE4X.js");
|
|
16056
16056
|
const observations = [];
|
|
16057
16057
|
const pendingCacheCommits = [];
|
|
16058
16058
|
const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
|
|
@@ -20316,7 +20316,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20316
20316
|
try {
|
|
20317
20317
|
const freshId = rotateSessionForWedge(codeName);
|
|
20318
20318
|
consecutiveWedgeCycles.delete(codeName);
|
|
20319
|
-
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-
|
|
20319
|
+
const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-MIPUX3BG.js");
|
|
20320
20320
|
const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
|
|
20321
20321
|
const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
|
|
20322
20322
|
const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
|
|
@@ -20359,7 +20359,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
|
|
|
20359
20359
|
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}`));
|
|
20360
20360
|
void (async () => {
|
|
20361
20361
|
try {
|
|
20362
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20362
|
+
const { collectDiagnostics } = await import("../persistent-session-O3AKW6IW.js");
|
|
20363
20363
|
await api.post("/host/heartbeat", {
|
|
20364
20364
|
host_id: hostId,
|
|
20365
20365
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -20410,7 +20410,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
|
|
|
20410
20410
|
}
|
|
20411
20411
|
try {
|
|
20412
20412
|
const hostId = await getHostId();
|
|
20413
|
-
const { collectDiagnostics } = await import("../persistent-session-
|
|
20413
|
+
const { collectDiagnostics } = await import("../persistent-session-O3AKW6IW.js");
|
|
20414
20414
|
await api.post("/host/heartbeat", {
|
|
20415
20415
|
host_id: hostId,
|
|
20416
20416
|
agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
|
|
@@ -21052,7 +21052,7 @@ async function processClaudePairSessions(agents) {
|
|
|
21052
21052
|
killPairSession,
|
|
21053
21053
|
pairTmuxSession,
|
|
21054
21054
|
finalizeClaudePairOnboarding
|
|
21055
|
-
} = await import("../claude-pair-runtime-
|
|
21055
|
+
} = await import("../claude-pair-runtime-RFY57WC3.js");
|
|
21056
21056
|
for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
|
|
21057
21057
|
log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
|
|
21058
21058
|
const killed = await killPairSession(pairTmuxSession(pairId));
|
|
@@ -32947,6 +32947,55 @@ OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
|
32947
32947
|
// ../core/dist/integrations/composio-account-probe.js
|
|
32948
32948
|
var BODY_MAX_BYTES = 1024 * 1024;
|
|
32949
32949
|
|
|
32950
|
+
// ../core/dist/integrations/composio-approved-egress.json
|
|
32951
|
+
var composio_approved_egress_default = {
|
|
32952
|
+
$comment: [
|
|
32953
|
+
"ADR-0032 Part 3, gate item 2 + gate item 3 (ENG-9684). THE single recorded source",
|
|
32954
|
+
"for the addresses Composio's per-key IP allowlist is expected to hold. Read by BOTH",
|
|
32955
|
+
"scripts/fleet-egress-enum.sh (the operator's pre-arming instrument) and the",
|
|
32956
|
+
"ComposioEgressAddressDrift cron (the between-armings watch). They must agree, which",
|
|
32957
|
+
"is why neither carries its own copy.",
|
|
32958
|
+
"",
|
|
32959
|
+
"WHY A REPO FILE AND NOT SSM. Composio's allowlist has no read API, so its contents",
|
|
32960
|
+
"can never be queried - only inferred from a refusal. This file is therefore not a",
|
|
32961
|
+
"cache of vendor state; it is a DECLARATION of what a human pasted into a dashboard.",
|
|
32962
|
+
"A PR is the right ceremony for changing a security boundary nobody can read back.",
|
|
32963
|
+
"SSM would also hit registerCron's five-parameter grant scope (ENG-9940), where a",
|
|
32964
|
+
"sixth parameter fails silently.",
|
|
32965
|
+
"",
|
|
32966
|
+
"THE COMPARISON IS ON `ip` AND NOTHING ELSE. `seenAsGateway` is informational. A NAT",
|
|
32967
|
+
"rebuild that re-adopts the same EIP keeps egress correct while changing the gateway",
|
|
32968
|
+
"id, so comparing ids would red on the safe case - which is precisely the case Part 2's",
|
|
32969
|
+
"EIP adoption exists to create.",
|
|
32970
|
+
"",
|
|
32971
|
+
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
32972
|
+
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
32973
|
+
"address: add it here in the same change that lands it, or the detector correctly",
|
|
32974
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
32975
|
+
],
|
|
32976
|
+
account: "711726113003",
|
|
32977
|
+
homeRegion: "ap-southeast-2",
|
|
32978
|
+
addresses: [
|
|
32979
|
+
{
|
|
32980
|
+
ip: "32.236.6.24",
|
|
32981
|
+
stage: "prod",
|
|
32982
|
+
seenAsGateway: "nat-00a3dac969c0641a6",
|
|
32983
|
+
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
32984
|
+
},
|
|
32985
|
+
{
|
|
32986
|
+
ip: "15.135.204.192",
|
|
32987
|
+
stage: "dev",
|
|
32988
|
+
seenAsGateway: "nat-01122e6efaf4c4eaa",
|
|
32989
|
+
note: "Dev-stage hosts NAT, same account. 2 instances measured 2026-09-12; their host rows live in the dev Supabase project."
|
|
32990
|
+
}
|
|
32991
|
+
]
|
|
32992
|
+
};
|
|
32993
|
+
|
|
32994
|
+
// ../core/dist/integrations/composio-approved-egress.js
|
|
32995
|
+
var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
|
|
32996
|
+
var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
|
|
32997
|
+
var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
|
|
32998
|
+
|
|
32950
32999
|
// ../core/dist/integrations/remote-mcp-proxy-env.js
|
|
32951
33000
|
var REMOTE_MCP_PROXY_ENV = {
|
|
32952
33001
|
url: "AGT_REMOTE_MCP_URL",
|
package/dist/mcp/index.js
CHANGED
|
@@ -25548,6 +25548,55 @@ OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
|
25548
25548
|
// ../core/dist/integrations/composio-account-probe.js
|
|
25549
25549
|
var BODY_MAX_BYTES = 1024 * 1024;
|
|
25550
25550
|
|
|
25551
|
+
// ../core/dist/integrations/composio-approved-egress.json
|
|
25552
|
+
var composio_approved_egress_default = {
|
|
25553
|
+
$comment: [
|
|
25554
|
+
"ADR-0032 Part 3, gate item 2 + gate item 3 (ENG-9684). THE single recorded source",
|
|
25555
|
+
"for the addresses Composio's per-key IP allowlist is expected to hold. Read by BOTH",
|
|
25556
|
+
"scripts/fleet-egress-enum.sh (the operator's pre-arming instrument) and the",
|
|
25557
|
+
"ComposioEgressAddressDrift cron (the between-armings watch). They must agree, which",
|
|
25558
|
+
"is why neither carries its own copy.",
|
|
25559
|
+
"",
|
|
25560
|
+
"WHY A REPO FILE AND NOT SSM. Composio's allowlist has no read API, so its contents",
|
|
25561
|
+
"can never be queried - only inferred from a refusal. This file is therefore not a",
|
|
25562
|
+
"cache of vendor state; it is a DECLARATION of what a human pasted into a dashboard.",
|
|
25563
|
+
"A PR is the right ceremony for changing a security boundary nobody can read back.",
|
|
25564
|
+
"SSM would also hit registerCron's five-parameter grant scope (ENG-9940), where a",
|
|
25565
|
+
"sixth parameter fails silently.",
|
|
25566
|
+
"",
|
|
25567
|
+
"THE COMPARISON IS ON `ip` AND NOTHING ELSE. `seenAsGateway` is informational. A NAT",
|
|
25568
|
+
"rebuild that re-adopts the same EIP keeps egress correct while changing the gateway",
|
|
25569
|
+
"id, so comparing ids would red on the safe case - which is precisely the case Part 2's",
|
|
25570
|
+
"EIP adoption exists to create.",
|
|
25571
|
+
"",
|
|
25572
|
+
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
25573
|
+
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
25574
|
+
"address: add it here in the same change that lands it, or the detector correctly",
|
|
25575
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
25576
|
+
],
|
|
25577
|
+
account: "711726113003",
|
|
25578
|
+
homeRegion: "ap-southeast-2",
|
|
25579
|
+
addresses: [
|
|
25580
|
+
{
|
|
25581
|
+
ip: "32.236.6.24",
|
|
25582
|
+
stage: "prod",
|
|
25583
|
+
seenAsGateway: "nat-00a3dac969c0641a6",
|
|
25584
|
+
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
25585
|
+
},
|
|
25586
|
+
{
|
|
25587
|
+
ip: "15.135.204.192",
|
|
25588
|
+
stage: "dev",
|
|
25589
|
+
seenAsGateway: "nat-01122e6efaf4c4eaa",
|
|
25590
|
+
note: "Dev-stage hosts NAT, same account. 2 instances measured 2026-09-12; their host rows live in the dev Supabase project."
|
|
25591
|
+
}
|
|
25592
|
+
]
|
|
25593
|
+
};
|
|
25594
|
+
|
|
25595
|
+
// ../core/dist/integrations/composio-approved-egress.js
|
|
25596
|
+
var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
|
|
25597
|
+
var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
|
|
25598
|
+
var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
|
|
25599
|
+
|
|
25551
25600
|
// ../core/dist/integrations/remote-mcp-proxy-env.js
|
|
25552
25601
|
var REMOTE_MCP_PROXY_ENV = {
|
|
25553
25602
|
url: "AGT_REMOTE_MCP_URL",
|
package/dist/mcp/origami.js
CHANGED
|
@@ -39652,6 +39652,55 @@ OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
|
39652
39652
|
// ../core/dist/integrations/composio-account-probe.js
|
|
39653
39653
|
var BODY_MAX_BYTES = 1024 * 1024;
|
|
39654
39654
|
|
|
39655
|
+
// ../core/dist/integrations/composio-approved-egress.json
|
|
39656
|
+
var composio_approved_egress_default = {
|
|
39657
|
+
$comment: [
|
|
39658
|
+
"ADR-0032 Part 3, gate item 2 + gate item 3 (ENG-9684). THE single recorded source",
|
|
39659
|
+
"for the addresses Composio's per-key IP allowlist is expected to hold. Read by BOTH",
|
|
39660
|
+
"scripts/fleet-egress-enum.sh (the operator's pre-arming instrument) and the",
|
|
39661
|
+
"ComposioEgressAddressDrift cron (the between-armings watch). They must agree, which",
|
|
39662
|
+
"is why neither carries its own copy.",
|
|
39663
|
+
"",
|
|
39664
|
+
"WHY A REPO FILE AND NOT SSM. Composio's allowlist has no read API, so its contents",
|
|
39665
|
+
"can never be queried - only inferred from a refusal. This file is therefore not a",
|
|
39666
|
+
"cache of vendor state; it is a DECLARATION of what a human pasted into a dashboard.",
|
|
39667
|
+
"A PR is the right ceremony for changing a security boundary nobody can read back.",
|
|
39668
|
+
"SSM would also hit registerCron's five-parameter grant scope (ENG-9940), where a",
|
|
39669
|
+
"sixth parameter fails silently.",
|
|
39670
|
+
"",
|
|
39671
|
+
"THE COMPARISON IS ON `ip` AND NOTHING ELSE. `seenAsGateway` is informational. A NAT",
|
|
39672
|
+
"rebuild that re-adopts the same EIP keeps egress correct while changing the gateway",
|
|
39673
|
+
"id, so comparing ids would red on the safe case - which is precisely the case Part 2's",
|
|
39674
|
+
"EIP adoption exists to create.",
|
|
39675
|
+
"",
|
|
39676
|
+
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
39677
|
+
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
39678
|
+
"address: add it here in the same change that lands it, or the detector correctly",
|
|
39679
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
39680
|
+
],
|
|
39681
|
+
account: "711726113003",
|
|
39682
|
+
homeRegion: "ap-southeast-2",
|
|
39683
|
+
addresses: [
|
|
39684
|
+
{
|
|
39685
|
+
ip: "32.236.6.24",
|
|
39686
|
+
stage: "prod",
|
|
39687
|
+
seenAsGateway: "nat-00a3dac969c0641a6",
|
|
39688
|
+
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
39689
|
+
},
|
|
39690
|
+
{
|
|
39691
|
+
ip: "15.135.204.192",
|
|
39692
|
+
stage: "dev",
|
|
39693
|
+
seenAsGateway: "nat-01122e6efaf4c4eaa",
|
|
39694
|
+
note: "Dev-stage hosts NAT, same account. 2 instances measured 2026-09-12; their host rows live in the dev Supabase project."
|
|
39695
|
+
}
|
|
39696
|
+
]
|
|
39697
|
+
};
|
|
39698
|
+
|
|
39699
|
+
// ../core/dist/integrations/composio-approved-egress.js
|
|
39700
|
+
var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
|
|
39701
|
+
var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
|
|
39702
|
+
var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
|
|
39703
|
+
|
|
39655
39704
|
// ../core/dist/integrations/remote-mcp-proxy-env.js
|
|
39656
39705
|
var REMOTE_MCP_PROXY_ENV = {
|
|
39657
39706
|
url: "AGT_REMOTE_MCP_URL",
|
|
@@ -33892,6 +33892,55 @@ OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
|
33892
33892
|
// ../core/dist/integrations/composio-account-probe.js
|
|
33893
33893
|
var BODY_MAX_BYTES = 1024 * 1024;
|
|
33894
33894
|
|
|
33895
|
+
// ../core/dist/integrations/composio-approved-egress.json
|
|
33896
|
+
var composio_approved_egress_default = {
|
|
33897
|
+
$comment: [
|
|
33898
|
+
"ADR-0032 Part 3, gate item 2 + gate item 3 (ENG-9684). THE single recorded source",
|
|
33899
|
+
"for the addresses Composio's per-key IP allowlist is expected to hold. Read by BOTH",
|
|
33900
|
+
"scripts/fleet-egress-enum.sh (the operator's pre-arming instrument) and the",
|
|
33901
|
+
"ComposioEgressAddressDrift cron (the between-armings watch). They must agree, which",
|
|
33902
|
+
"is why neither carries its own copy.",
|
|
33903
|
+
"",
|
|
33904
|
+
"WHY A REPO FILE AND NOT SSM. Composio's allowlist has no read API, so its contents",
|
|
33905
|
+
"can never be queried - only inferred from a refusal. This file is therefore not a",
|
|
33906
|
+
"cache of vendor state; it is a DECLARATION of what a human pasted into a dashboard.",
|
|
33907
|
+
"A PR is the right ceremony for changing a security boundary nobody can read back.",
|
|
33908
|
+
"SSM would also hit registerCron's five-parameter grant scope (ENG-9940), where a",
|
|
33909
|
+
"sixth parameter fails silently.",
|
|
33910
|
+
"",
|
|
33911
|
+
"THE COMPARISON IS ON `ip` AND NOTHING ELSE. `seenAsGateway` is informational. A NAT",
|
|
33912
|
+
"rebuild that re-adopts the same EIP keeps egress correct while changing the gateway",
|
|
33913
|
+
"id, so comparing ids would red on the safe case - which is precisely the case Part 2's",
|
|
33914
|
+
"EIP adoption exists to create.",
|
|
33915
|
+
"",
|
|
33916
|
+
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
33917
|
+
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
33918
|
+
"address: add it here in the same change that lands it, or the detector correctly",
|
|
33919
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
33920
|
+
],
|
|
33921
|
+
account: "711726113003",
|
|
33922
|
+
homeRegion: "ap-southeast-2",
|
|
33923
|
+
addresses: [
|
|
33924
|
+
{
|
|
33925
|
+
ip: "32.236.6.24",
|
|
33926
|
+
stage: "prod",
|
|
33927
|
+
seenAsGateway: "nat-00a3dac969c0641a6",
|
|
33928
|
+
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
33929
|
+
},
|
|
33930
|
+
{
|
|
33931
|
+
ip: "15.135.204.192",
|
|
33932
|
+
stage: "dev",
|
|
33933
|
+
seenAsGateway: "nat-01122e6efaf4c4eaa",
|
|
33934
|
+
note: "Dev-stage hosts NAT, same account. 2 instances measured 2026-09-12; their host rows live in the dev Supabase project."
|
|
33935
|
+
}
|
|
33936
|
+
]
|
|
33937
|
+
};
|
|
33938
|
+
|
|
33939
|
+
// ../core/dist/integrations/composio-approved-egress.js
|
|
33940
|
+
var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
|
|
33941
|
+
var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
|
|
33942
|
+
var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
|
|
33943
|
+
|
|
33895
33944
|
// ../core/dist/integrations/remote-mcp-proxy-env.js
|
|
33896
33945
|
var REMOTE_MCP_PROXY_ENV = {
|
|
33897
33946
|
url: "AGT_REMOTE_MCP_URL",
|
|
@@ -33934,6 +33934,55 @@ OAUTH_PROVIDERS["xero-control-plane"] = {
|
|
|
33934
33934
|
// ../core/dist/integrations/composio-account-probe.js
|
|
33935
33935
|
var BODY_MAX_BYTES = 1024 * 1024;
|
|
33936
33936
|
|
|
33937
|
+
// ../core/dist/integrations/composio-approved-egress.json
|
|
33938
|
+
var composio_approved_egress_default = {
|
|
33939
|
+
$comment: [
|
|
33940
|
+
"ADR-0032 Part 3, gate item 2 + gate item 3 (ENG-9684). THE single recorded source",
|
|
33941
|
+
"for the addresses Composio's per-key IP allowlist is expected to hold. Read by BOTH",
|
|
33942
|
+
"scripts/fleet-egress-enum.sh (the operator's pre-arming instrument) and the",
|
|
33943
|
+
"ComposioEgressAddressDrift cron (the between-armings watch). They must agree, which",
|
|
33944
|
+
"is why neither carries its own copy.",
|
|
33945
|
+
"",
|
|
33946
|
+
"WHY A REPO FILE AND NOT SSM. Composio's allowlist has no read API, so its contents",
|
|
33947
|
+
"can never be queried - only inferred from a refusal. This file is therefore not a",
|
|
33948
|
+
"cache of vendor state; it is a DECLARATION of what a human pasted into a dashboard.",
|
|
33949
|
+
"A PR is the right ceremony for changing a security boundary nobody can read back.",
|
|
33950
|
+
"SSM would also hit registerCron's five-parameter grant scope (ENG-9940), where a",
|
|
33951
|
+
"sixth parameter fails silently.",
|
|
33952
|
+
"",
|
|
33953
|
+
"THE COMPARISON IS ON `ip` AND NOTHING ELSE. `seenAsGateway` is informational. A NAT",
|
|
33954
|
+
"rebuild that re-adopts the same EIP keeps egress correct while changing the gateway",
|
|
33955
|
+
"id, so comparing ids would red on the safe case - which is precisely the case Part 2's",
|
|
33956
|
+
"EIP adoption exists to create.",
|
|
33957
|
+
"",
|
|
33958
|
+
"WHEN ENG-9426 LANDS THIS GOES RED UNTIL IT IS UPDATED. That is the forcing function",
|
|
33959
|
+
"working, not a fault. ENG-9426 adds a NAT in ap-southeast-2b, i.e. a THIRD egress",
|
|
33960
|
+
"address: add it here in the same change that lands it, or the detector correctly",
|
|
33961
|
+
"reports that hosts are leaving from an address no key allows. Do not loosen the check."
|
|
33962
|
+
],
|
|
33963
|
+
account: "711726113003",
|
|
33964
|
+
homeRegion: "ap-southeast-2",
|
|
33965
|
+
addresses: [
|
|
33966
|
+
{
|
|
33967
|
+
ip: "32.236.6.24",
|
|
33968
|
+
stage: "prod",
|
|
33969
|
+
seenAsGateway: "nat-00a3dac969c0641a6",
|
|
33970
|
+
note: "Prod hosts NAT. Measured 2026-09-12 (ENG-10392): 25 of 25 active prod host instances route 0.0.0.0/0 here."
|
|
33971
|
+
},
|
|
33972
|
+
{
|
|
33973
|
+
ip: "15.135.204.192",
|
|
33974
|
+
stage: "dev",
|
|
33975
|
+
seenAsGateway: "nat-01122e6efaf4c4eaa",
|
|
33976
|
+
note: "Dev-stage hosts NAT, same account. 2 instances measured 2026-09-12; their host rows live in the dev Supabase project."
|
|
33977
|
+
}
|
|
33978
|
+
]
|
|
33979
|
+
};
|
|
33980
|
+
|
|
33981
|
+
// ../core/dist/integrations/composio-approved-egress.js
|
|
33982
|
+
var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
|
|
33983
|
+
var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
|
|
33984
|
+
var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
|
|
33985
|
+
|
|
33937
33986
|
// ../core/dist/integrations/remote-mcp-proxy-env.js
|
|
33938
33987
|
var REMOTE_MCP_PROXY_ENV = {
|
|
33939
33988
|
url: "AGT_REMOTE_MCP_URL",
|
|
@@ -62,8 +62,8 @@ import {
|
|
|
62
62
|
writeDirectChatSessionState,
|
|
63
63
|
writeEgressAllowlist,
|
|
64
64
|
writePersistentClaudeWrapper
|
|
65
|
-
} from "./chunk-
|
|
66
|
-
import "./chunk-
|
|
65
|
+
} from "./chunk-NIUBYSLW.js";
|
|
66
|
+
import "./chunk-Y7ERASS6.js";
|
|
67
67
|
import "./chunk-XWVM4KPK.js";
|
|
68
68
|
export {
|
|
69
69
|
CLAUDE_HOST_WIDE,
|
|
@@ -130,4 +130,4 @@ export {
|
|
|
130
130
|
writeEgressAllowlist,
|
|
131
131
|
writePersistentClaudeWrapper
|
|
132
132
|
};
|
|
133
|
-
//# sourceMappingURL=persistent-session-
|
|
133
|
+
//# sourceMappingURL=persistent-session-O3AKW6IW.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-NIUBYSLW.js";
|
|
4
|
+
import "./chunk-Y7ERASS6.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -799,4 +799,4 @@ export {
|
|
|
799
799
|
readAndResetSlackReplyBindingClassifications,
|
|
800
800
|
readAndResetSlackReplyTargetClassifications
|
|
801
801
|
};
|
|
802
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
802
|
+
//# sourceMappingURL=responsiveness-probe-MIPUX3BG.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-Y7ERASS6.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/session-auth-dead.ts
|
|
6
6
|
import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
decideSessionAuthState,
|
|
204
204
|
probeSessionAuth
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=session-auth-dead-
|
|
206
|
+
//# sourceMappingURL=session-auth-dead-ZGZZLE4X.js.map
|