@integrity-labs/agt-cli 0.28.985 → 0.28.987

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.
@@ -258,7 +258,7 @@ async function spawnPairSession(session) {
258
258
  return { ok: true };
259
259
  } catch {
260
260
  }
261
- const { resolveClaudeBinary } = await import("./persistent-session-UA7UEZUB.js");
261
+ const { resolveClaudeBinary } = await import("./persistent-session-PYYD53GZ.js");
262
262
  const claudeBin = resolveClaudeBinary();
263
263
  const pairEnv = {
264
264
  ...process.env,
@@ -580,4 +580,4 @@ export {
580
580
  startClaudePair,
581
581
  submitClaudePairCode
582
582
  };
583
- //# sourceMappingURL=claude-pair-runtime-4E4UQNRR.js.map
583
+ //# sourceMappingURL=claude-pair-runtime-GQM26I3M.js.map
@@ -63,7 +63,7 @@ import {
63
63
  safeWriteJsonAtomic,
64
64
  setConfigHash,
65
65
  tripClass
66
- } from "../chunk-XPCEY3CL.js";
66
+ } from "../chunk-4GGJKBP7.js";
67
67
  import {
68
68
  getProjectDir as getProjectDir2,
69
69
  getReadyTasks,
@@ -140,7 +140,7 @@ import {
140
140
  takeZombieDetection,
141
141
  toOpencodeModel,
142
142
  writeEgressAllowlist
143
- } from "../chunk-V5HXKGU3.js";
143
+ } from "../chunk-6KYXH6ZZ.js";
144
144
  import {
145
145
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
146
146
  AnchorSessionClient,
@@ -238,7 +238,7 @@ import {
238
238
  subagentActivityAgeSeconds,
239
239
  sumTranscriptUsageInWindow,
240
240
  transcriptActivityAgeSeconds
241
- } from "../chunk-IOV5NDDZ.js";
241
+ } from "../chunk-TGCA3LTI.js";
242
242
  import "../chunk-DHWNVVX4.js";
243
243
  import {
244
244
  reapOrphanChannelMcps
@@ -13292,7 +13292,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
13292
13292
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
13293
13293
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
13294
13294
  async function channelInboundActivityAgeSecondsFor(codeName) {
13295
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-WFCKAA6B.js");
13295
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-JENZOOKG.js");
13296
13296
  const newest = newestPendingInboundActivityMtimeMs(dirname11(paneLogPath(codeName)));
13297
13297
  if (newest === null) return null;
13298
13298
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -14035,7 +14035,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
14035
14035
  var lastVersionCheckAt = 0;
14036
14036
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
14037
14037
  var lastResponsivenessProbeAt = 0;
14038
- var agtCliVersion = true ? "0.28.985" : "dev";
14038
+ var agtCliVersion = true ? "0.28.987" : "dev";
14039
14039
  function resolveBrewPath(execFileSync2) {
14040
14040
  try {
14041
14041
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -15651,7 +15651,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
15651
15651
  if (codeNames.length === 0) return;
15652
15652
  void (async () => {
15653
15653
  try {
15654
- const { collectDiagnostics } = await import("../persistent-session-UA7UEZUB.js");
15654
+ const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
15655
15655
  await api.post("/host/heartbeat", {
15656
15656
  host_id: hostId,
15657
15657
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -15793,7 +15793,7 @@ async function pollCycleInner() {
15793
15793
  }
15794
15794
  try {
15795
15795
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
15796
- const { collectDiagnostics } = await import("../persistent-session-UA7UEZUB.js");
15796
+ const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
15797
15797
  const diagCodeNames = [...agentState.persistentSessionAgents];
15798
15798
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
15799
15799
  let tailscaleHostname;
@@ -15969,7 +15969,7 @@ async function pollCycleInner() {
15969
15969
  collectPanelessActivityProbes,
15970
15970
  getResponsivenessIntervalMs,
15971
15971
  occupancyQualificationClassifications
15972
- } = await import("../responsiveness-probe-WFCKAA6B.js");
15972
+ } = await import("../responsiveness-probe-JENZOOKG.js");
15973
15973
  const probeIntervalMs = getResponsivenessIntervalMs();
15974
15974
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
15975
15975
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -16086,7 +16086,7 @@ async function pollCycleInner() {
16086
16086
  collectResponsivenessProbes,
16087
16087
  livePendingInboundOldestAgeSeconds,
16088
16088
  parkPendingInbound
16089
- } = await import("../responsiveness-probe-WFCKAA6B.js");
16089
+ } = await import("../responsiveness-probe-JENZOOKG.js");
16090
16090
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
16091
16091
  const wedgeNow = /* @__PURE__ */ new Date();
16092
16092
  const liveAgents = agentState.persistentSessionAgents;
@@ -16242,7 +16242,7 @@ async function pollCycleInner() {
16242
16242
  }
16243
16243
  try {
16244
16244
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
16245
- const { probeSessionAuth } = await import("../session-auth-dead-LY6ZNPYR.js");
16245
+ const { probeSessionAuth } = await import("../session-auth-dead-BGXRQB27.js");
16246
16246
  const observations = [];
16247
16247
  const pendingCacheCommits = [];
16248
16248
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -20530,7 +20530,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
20530
20530
  try {
20531
20531
  const freshId = rotateSessionForWedge(codeName);
20532
20532
  consecutiveWedgeCycles.delete(codeName);
20533
- const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-WFCKAA6B.js");
20533
+ const { parkPendingInbound: parkForRestart } = await import("../responsiveness-probe-JENZOOKG.js");
20534
20534
  const { parked, deadLettered } = parkForRestart(codeName, /* @__PURE__ */ new Date());
20535
20535
  const parkNote = parked > 0 ? `, ${parked} inbound parked` : "";
20536
20536
  const deadNote = deadLettered > 0 ? `, ${deadLettered} undeliverable dead-lettered` : "";
@@ -20573,7 +20573,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
20573
20573
  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}`));
20574
20574
  void (async () => {
20575
20575
  try {
20576
- const { collectDiagnostics } = await import("../persistent-session-UA7UEZUB.js");
20576
+ const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
20577
20577
  await api.post("/host/heartbeat", {
20578
20578
  host_id: hostId,
20579
20579
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -20624,7 +20624,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
20624
20624
  }
20625
20625
  try {
20626
20626
  const hostId = await getHostId();
20627
- const { collectDiagnostics } = await import("../persistent-session-UA7UEZUB.js");
20627
+ const { collectDiagnostics } = await import("../persistent-session-PYYD53GZ.js");
20628
20628
  await api.post("/host/heartbeat", {
20629
20629
  host_id: hostId,
20630
20630
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -21268,7 +21268,7 @@ async function processClaudePairSessions(agents) {
21268
21268
  killPairSession,
21269
21269
  pairTmuxSession,
21270
21270
  finalizeClaudePairOnboarding
21271
- } = await import("../claude-pair-runtime-4E4UQNRR.js");
21271
+ } = await import("../claude-pair-runtime-GQM26I3M.js");
21272
21272
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
21273
21273
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
21274
21274
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -33132,9 +33132,51 @@ var composio_approved_egress_default = {
33132
33132
  "Trimming it would make the allowlist incomplete, which is a fleet-wide 401 rather than",
33133
33133
  "a tidy file.",
33134
33134
  "",
33135
- "PASTE ALL FOUR, ALWAYS. Composio's field takes explicit comma-delimited addresses and",
33136
- "no CIDR, so a key armed with the hosts pair alone locks out every server-side call the",
33137
- "control plane makes, and one armed with the bridge pair alone locks out the fleet."
33135
+ "PASTE THE WHOLE SHARED SET, ALWAYS. Composio's field takes explicit comma-delimited",
33136
+ "addresses and no CIDR, so a key armed with the hosts pair alone locks out every",
33137
+ "server-side call the control plane makes, and one armed with the bridge pair alone locks",
33138
+ "out the fleet. This used to read 'PASTE ALL FOUR, ALWAYS', which `orgAddresses` below",
33139
+ "makes false: for an org with a BYO host the shared set is NOT the whole value, and an",
33140
+ "operator following the old sentence would arm a key that refuses that org's own agents.",
33141
+ "",
33142
+ "`orgAddresses` - THE SHARED SET IS NOT EVERY ORG'S SET (ENG-10718).",
33143
+ "An org whose agents run on a host we do not operate the network for - a BYO host in the",
33144
+ "customer's AWS account, or a `self` host on hardware we never see - egresses from an",
33145
+ "address no shared entry above carries. These are recorded per org rather than",
33146
+ "merged into `addresses`, because they are not fleet-wide: pasting one org's BYO address",
33147
+ "into another org's key widens that key for no reason. The drift detector and",
33148
+ "fleet-egress-enum.sh both read `addresses` and only `addresses`, so nothing here is ever",
33149
+ "compared against a hosts-account scan - which is correct, since these addresses live in",
33150
+ "accounts neither ever enumerates.",
33151
+ "",
33152
+ "AN OBSERVED ADDRESS IS NOT AN APPROVED ONE, AND THAT IS THE WHOLE POINT OF THIS FILE.",
33153
+ "`host_attested_egress` (ENG-10666) records the address a BYO host was SEEN calling from,",
33154
+ "and it is the only way to learn one - the `augmented-byo-provisioner` role grants neither",
33155
+ "`DescribeRouteTables` nor `DescribeNatGateways`, so enumeration cannot answer it. But",
33156
+ "seeing an address is not deciding it may hold a key. A row appears here when a human",
33157
+ "decides it, in a PR, which is the same ceremony every other entry gets. So an org can",
33158
+ "legitimately have a known egress address and no entry here - see Zanda below - and the",
33159
+ "posture page must withhold its paste value rather than offer the shared set.",
33160
+ "",
33161
+ "ZANDA IS THE LIVE EXAMPLE, AND ITS ABSENCE BELOW IS DELIBERATE.",
33162
+ "Zanda has an active BYO host - d0a78e4f-7a21-4d8d-85db-66a167fdd8cb in account",
33163
+ "585819234046, created 2026-09-16 - and as of 2026-09-20 its egress address IS known:",
33164
+ "3.107.131.133, resolved from `host_attested_egress` after an account enumeration failed",
33165
+ "to find it (it is a THIRD account, which no census had thought to scan). It is not",
33166
+ "recorded because nobody has approved it. That host carries ZERO assigned agents, so it",
33167
+ "makes no Composio calls and the omission costs nothing today; the approval queue for",
33168
+ "exactly this decision is ENG-10668, unbuilt. The consequence is intended and measured:",
33169
+ "Zanda's org IS `fully_managed` (read from prod 2026-09-20), so it holds a",
33170
+ "platform-managed Composio key and DOES appear on /admin/composio-key-posture - with no",
33171
+ "paste value and a reason. That row is the feature working. Do not 'fix' it by adding",
33172
+ "3.107.131.133 below - add the approval.",
33173
+ "",
33174
+ "THE SAME READ FOUND ZERO `self` HOSTS FLEET-WIDE (2026-09-20), which is why widening the",
33175
+ "rule beyond the BYO pointer costs nothing today: exactly two orgs have a host outside our",
33176
+ "NATs, both BYO, and only Zanda's lacks a recorded address. Every other org's row is the",
33177
+ "shared set, byte-identical to what ENG-10713 already served it. If that ratio ever",
33178
+ "inverts - many orgs withholding - the answer is to record addresses or build ENG-10668,",
33179
+ "NOT to narrow the rule back."
33138
33180
  ],
33139
33181
  account: "711726113003",
33140
33182
  homeRegion: "ap-southeast-2",
@@ -33171,13 +33213,29 @@ var composio_approved_egress_default = {
33171
33213
  seenAsGateway: "nat-02a4721d4ce678cf7",
33172
33214
  note: "The us-east-2b half of the same managed multi-AZ NAT. Two addresses is what `az: 2` costs on the allowlist, accepted deliberately in ENG-9684: adding an address AFTER arming is a blind hand edit of every key with production 401s as the only completion signal."
33173
33215
  }
33174
- ]
33216
+ ],
33217
+ orgAddresses: {
33218
+ "a4bba5c8-f664-46fe-a894-c95679c615ac": {
33219
+ orgSlug: "integritylabs",
33220
+ addresses: [
33221
+ {
33222
+ ip: "54.153.194.237",
33223
+ stage: "prod-byo",
33224
+ account: "436812233703",
33225
+ region: null,
33226
+ seenAsGateway: "nat-0c3cc231a8701a0e9",
33227
+ note: 'The BYO "Agents" account\'s NAT, serving `asha` on prod-integritylabs-integritylabs-4. Measured 2026-09-19 (ENG-10718) and again in the 24h /host/* census on 2026-09-20: 55,109 requests from 32 distinct paths. `region` is null because it is NOT RECORDED and cannot be enumerated from here - see the $comment; the comparison is on `ip` alone, so a null costs nothing, whereas a guessed region would be a fact this file states without evidence. THIS ORG WAS ARMED DURING THE GATE 5 REHEARSAL (ENG-10712) WITHOUT THIS ADDRESS. It passed only because nothing on that host called Composio inside the ~15-minute window; had it, the call would have been refused.'
33228
+ }
33229
+ ]
33230
+ }
33231
+ }
33175
33232
  };
33176
33233
 
33177
33234
  // ../core/dist/integrations/composio-approved-egress.js
33178
33235
  var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
33179
33236
  var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
33180
33237
  var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
33238
+ var ORG_EGRESS_ADDRESSES = composio_approved_egress_default.orgAddresses ?? {};
33181
33239
 
33182
33240
  // ../core/dist/integrations/remote-mcp-proxy-env.js
33183
33241
  var REMOTE_MCP_PROXY_ENV = {
package/dist/mcp/index.js CHANGED
@@ -25714,9 +25714,51 @@ var composio_approved_egress_default = {
25714
25714
  "Trimming it would make the allowlist incomplete, which is a fleet-wide 401 rather than",
25715
25715
  "a tidy file.",
25716
25716
  "",
25717
- "PASTE ALL FOUR, ALWAYS. Composio's field takes explicit comma-delimited addresses and",
25718
- "no CIDR, so a key armed with the hosts pair alone locks out every server-side call the",
25719
- "control plane makes, and one armed with the bridge pair alone locks out the fleet."
25717
+ "PASTE THE WHOLE SHARED SET, ALWAYS. Composio's field takes explicit comma-delimited",
25718
+ "addresses and no CIDR, so a key armed with the hosts pair alone locks out every",
25719
+ "server-side call the control plane makes, and one armed with the bridge pair alone locks",
25720
+ "out the fleet. This used to read 'PASTE ALL FOUR, ALWAYS', which `orgAddresses` below",
25721
+ "makes false: for an org with a BYO host the shared set is NOT the whole value, and an",
25722
+ "operator following the old sentence would arm a key that refuses that org's own agents.",
25723
+ "",
25724
+ "`orgAddresses` - THE SHARED SET IS NOT EVERY ORG'S SET (ENG-10718).",
25725
+ "An org whose agents run on a host we do not operate the network for - a BYO host in the",
25726
+ "customer's AWS account, or a `self` host on hardware we never see - egresses from an",
25727
+ "address no shared entry above carries. These are recorded per org rather than",
25728
+ "merged into `addresses`, because they are not fleet-wide: pasting one org's BYO address",
25729
+ "into another org's key widens that key for no reason. The drift detector and",
25730
+ "fleet-egress-enum.sh both read `addresses` and only `addresses`, so nothing here is ever",
25731
+ "compared against a hosts-account scan - which is correct, since these addresses live in",
25732
+ "accounts neither ever enumerates.",
25733
+ "",
25734
+ "AN OBSERVED ADDRESS IS NOT AN APPROVED ONE, AND THAT IS THE WHOLE POINT OF THIS FILE.",
25735
+ "`host_attested_egress` (ENG-10666) records the address a BYO host was SEEN calling from,",
25736
+ "and it is the only way to learn one - the `augmented-byo-provisioner` role grants neither",
25737
+ "`DescribeRouteTables` nor `DescribeNatGateways`, so enumeration cannot answer it. But",
25738
+ "seeing an address is not deciding it may hold a key. A row appears here when a human",
25739
+ "decides it, in a PR, which is the same ceremony every other entry gets. So an org can",
25740
+ "legitimately have a known egress address and no entry here - see Zanda below - and the",
25741
+ "posture page must withhold its paste value rather than offer the shared set.",
25742
+ "",
25743
+ "ZANDA IS THE LIVE EXAMPLE, AND ITS ABSENCE BELOW IS DELIBERATE.",
25744
+ "Zanda has an active BYO host - d0a78e4f-7a21-4d8d-85db-66a167fdd8cb in account",
25745
+ "585819234046, created 2026-09-16 - and as of 2026-09-20 its egress address IS known:",
25746
+ "3.107.131.133, resolved from `host_attested_egress` after an account enumeration failed",
25747
+ "to find it (it is a THIRD account, which no census had thought to scan). It is not",
25748
+ "recorded because nobody has approved it. That host carries ZERO assigned agents, so it",
25749
+ "makes no Composio calls and the omission costs nothing today; the approval queue for",
25750
+ "exactly this decision is ENG-10668, unbuilt. The consequence is intended and measured:",
25751
+ "Zanda's org IS `fully_managed` (read from prod 2026-09-20), so it holds a",
25752
+ "platform-managed Composio key and DOES appear on /admin/composio-key-posture - with no",
25753
+ "paste value and a reason. That row is the feature working. Do not 'fix' it by adding",
25754
+ "3.107.131.133 below - add the approval.",
25755
+ "",
25756
+ "THE SAME READ FOUND ZERO `self` HOSTS FLEET-WIDE (2026-09-20), which is why widening the",
25757
+ "rule beyond the BYO pointer costs nothing today: exactly two orgs have a host outside our",
25758
+ "NATs, both BYO, and only Zanda's lacks a recorded address. Every other org's row is the",
25759
+ "shared set, byte-identical to what ENG-10713 already served it. If that ratio ever",
25760
+ "inverts - many orgs withholding - the answer is to record addresses or build ENG-10668,",
25761
+ "NOT to narrow the rule back."
25720
25762
  ],
25721
25763
  account: "711726113003",
25722
25764
  homeRegion: "ap-southeast-2",
@@ -25753,13 +25795,29 @@ var composio_approved_egress_default = {
25753
25795
  seenAsGateway: "nat-02a4721d4ce678cf7",
25754
25796
  note: "The us-east-2b half of the same managed multi-AZ NAT. Two addresses is what `az: 2` costs on the allowlist, accepted deliberately in ENG-9684: adding an address AFTER arming is a blind hand edit of every key with production 401s as the only completion signal."
25755
25797
  }
25756
- ]
25798
+ ],
25799
+ orgAddresses: {
25800
+ "a4bba5c8-f664-46fe-a894-c95679c615ac": {
25801
+ orgSlug: "integritylabs",
25802
+ addresses: [
25803
+ {
25804
+ ip: "54.153.194.237",
25805
+ stage: "prod-byo",
25806
+ account: "436812233703",
25807
+ region: null,
25808
+ seenAsGateway: "nat-0c3cc231a8701a0e9",
25809
+ note: 'The BYO "Agents" account\'s NAT, serving `asha` on prod-integritylabs-integritylabs-4. Measured 2026-09-19 (ENG-10718) and again in the 24h /host/* census on 2026-09-20: 55,109 requests from 32 distinct paths. `region` is null because it is NOT RECORDED and cannot be enumerated from here - see the $comment; the comparison is on `ip` alone, so a null costs nothing, whereas a guessed region would be a fact this file states without evidence. THIS ORG WAS ARMED DURING THE GATE 5 REHEARSAL (ENG-10712) WITHOUT THIS ADDRESS. It passed only because nothing on that host called Composio inside the ~15-minute window; had it, the call would have been refused.'
25810
+ }
25811
+ ]
25812
+ }
25813
+ }
25757
25814
  };
25758
25815
 
25759
25816
  // ../core/dist/integrations/composio-approved-egress.js
25760
25817
  var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
25761
25818
  var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
25762
25819
  var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
25820
+ var ORG_EGRESS_ADDRESSES = composio_approved_egress_default.orgAddresses ?? {};
25763
25821
 
25764
25822
  // ../core/dist/integrations/remote-mcp-proxy-env.js
25765
25823
  var REMOTE_MCP_PROXY_ENV = {
@@ -39865,9 +39865,51 @@ var composio_approved_egress_default = {
39865
39865
  "Trimming it would make the allowlist incomplete, which is a fleet-wide 401 rather than",
39866
39866
  "a tidy file.",
39867
39867
  "",
39868
- "PASTE ALL FOUR, ALWAYS. Composio's field takes explicit comma-delimited addresses and",
39869
- "no CIDR, so a key armed with the hosts pair alone locks out every server-side call the",
39870
- "control plane makes, and one armed with the bridge pair alone locks out the fleet."
39868
+ "PASTE THE WHOLE SHARED SET, ALWAYS. Composio's field takes explicit comma-delimited",
39869
+ "addresses and no CIDR, so a key armed with the hosts pair alone locks out every",
39870
+ "server-side call the control plane makes, and one armed with the bridge pair alone locks",
39871
+ "out the fleet. This used to read 'PASTE ALL FOUR, ALWAYS', which `orgAddresses` below",
39872
+ "makes false: for an org with a BYO host the shared set is NOT the whole value, and an",
39873
+ "operator following the old sentence would arm a key that refuses that org's own agents.",
39874
+ "",
39875
+ "`orgAddresses` - THE SHARED SET IS NOT EVERY ORG'S SET (ENG-10718).",
39876
+ "An org whose agents run on a host we do not operate the network for - a BYO host in the",
39877
+ "customer's AWS account, or a `self` host on hardware we never see - egresses from an",
39878
+ "address no shared entry above carries. These are recorded per org rather than",
39879
+ "merged into `addresses`, because they are not fleet-wide: pasting one org's BYO address",
39880
+ "into another org's key widens that key for no reason. The drift detector and",
39881
+ "fleet-egress-enum.sh both read `addresses` and only `addresses`, so nothing here is ever",
39882
+ "compared against a hosts-account scan - which is correct, since these addresses live in",
39883
+ "accounts neither ever enumerates.",
39884
+ "",
39885
+ "AN OBSERVED ADDRESS IS NOT AN APPROVED ONE, AND THAT IS THE WHOLE POINT OF THIS FILE.",
39886
+ "`host_attested_egress` (ENG-10666) records the address a BYO host was SEEN calling from,",
39887
+ "and it is the only way to learn one - the `augmented-byo-provisioner` role grants neither",
39888
+ "`DescribeRouteTables` nor `DescribeNatGateways`, so enumeration cannot answer it. But",
39889
+ "seeing an address is not deciding it may hold a key. A row appears here when a human",
39890
+ "decides it, in a PR, which is the same ceremony every other entry gets. So an org can",
39891
+ "legitimately have a known egress address and no entry here - see Zanda below - and the",
39892
+ "posture page must withhold its paste value rather than offer the shared set.",
39893
+ "",
39894
+ "ZANDA IS THE LIVE EXAMPLE, AND ITS ABSENCE BELOW IS DELIBERATE.",
39895
+ "Zanda has an active BYO host - d0a78e4f-7a21-4d8d-85db-66a167fdd8cb in account",
39896
+ "585819234046, created 2026-09-16 - and as of 2026-09-20 its egress address IS known:",
39897
+ "3.107.131.133, resolved from `host_attested_egress` after an account enumeration failed",
39898
+ "to find it (it is a THIRD account, which no census had thought to scan). It is not",
39899
+ "recorded because nobody has approved it. That host carries ZERO assigned agents, so it",
39900
+ "makes no Composio calls and the omission costs nothing today; the approval queue for",
39901
+ "exactly this decision is ENG-10668, unbuilt. The consequence is intended and measured:",
39902
+ "Zanda's org IS `fully_managed` (read from prod 2026-09-20), so it holds a",
39903
+ "platform-managed Composio key and DOES appear on /admin/composio-key-posture - with no",
39904
+ "paste value and a reason. That row is the feature working. Do not 'fix' it by adding",
39905
+ "3.107.131.133 below - add the approval.",
39906
+ "",
39907
+ "THE SAME READ FOUND ZERO `self` HOSTS FLEET-WIDE (2026-09-20), which is why widening the",
39908
+ "rule beyond the BYO pointer costs nothing today: exactly two orgs have a host outside our",
39909
+ "NATs, both BYO, and only Zanda's lacks a recorded address. Every other org's row is the",
39910
+ "shared set, byte-identical to what ENG-10713 already served it. If that ratio ever",
39911
+ "inverts - many orgs withholding - the answer is to record addresses or build ENG-10668,",
39912
+ "NOT to narrow the rule back."
39871
39913
  ],
39872
39914
  account: "711726113003",
39873
39915
  homeRegion: "ap-southeast-2",
@@ -39904,13 +39946,29 @@ var composio_approved_egress_default = {
39904
39946
  seenAsGateway: "nat-02a4721d4ce678cf7",
39905
39947
  note: "The us-east-2b half of the same managed multi-AZ NAT. Two addresses is what `az: 2` costs on the allowlist, accepted deliberately in ENG-9684: adding an address AFTER arming is a blind hand edit of every key with production 401s as the only completion signal."
39906
39948
  }
39907
- ]
39949
+ ],
39950
+ orgAddresses: {
39951
+ "a4bba5c8-f664-46fe-a894-c95679c615ac": {
39952
+ orgSlug: "integritylabs",
39953
+ addresses: [
39954
+ {
39955
+ ip: "54.153.194.237",
39956
+ stage: "prod-byo",
39957
+ account: "436812233703",
39958
+ region: null,
39959
+ seenAsGateway: "nat-0c3cc231a8701a0e9",
39960
+ note: 'The BYO "Agents" account\'s NAT, serving `asha` on prod-integritylabs-integritylabs-4. Measured 2026-09-19 (ENG-10718) and again in the 24h /host/* census on 2026-09-20: 55,109 requests from 32 distinct paths. `region` is null because it is NOT RECORDED and cannot be enumerated from here - see the $comment; the comparison is on `ip` alone, so a null costs nothing, whereas a guessed region would be a fact this file states without evidence. THIS ORG WAS ARMED DURING THE GATE 5 REHEARSAL (ENG-10712) WITHOUT THIS ADDRESS. It passed only because nothing on that host called Composio inside the ~15-minute window; had it, the call would have been refused.'
39961
+ }
39962
+ ]
39963
+ }
39964
+ }
39908
39965
  };
39909
39966
 
39910
39967
  // ../core/dist/integrations/composio-approved-egress.js
39911
39968
  var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
39912
39969
  var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
39913
39970
  var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
39971
+ var ORG_EGRESS_ADDRESSES = composio_approved_egress_default.orgAddresses ?? {};
39914
39972
 
39915
39973
  // ../core/dist/integrations/remote-mcp-proxy-env.js
39916
39974
  var REMOTE_MCP_PROXY_ENV = {
@@ -34082,9 +34082,51 @@ var composio_approved_egress_default = {
34082
34082
  "Trimming it would make the allowlist incomplete, which is a fleet-wide 401 rather than",
34083
34083
  "a tidy file.",
34084
34084
  "",
34085
- "PASTE ALL FOUR, ALWAYS. Composio's field takes explicit comma-delimited addresses and",
34086
- "no CIDR, so a key armed with the hosts pair alone locks out every server-side call the",
34087
- "control plane makes, and one armed with the bridge pair alone locks out the fleet."
34085
+ "PASTE THE WHOLE SHARED SET, ALWAYS. Composio's field takes explicit comma-delimited",
34086
+ "addresses and no CIDR, so a key armed with the hosts pair alone locks out every",
34087
+ "server-side call the control plane makes, and one armed with the bridge pair alone locks",
34088
+ "out the fleet. This used to read 'PASTE ALL FOUR, ALWAYS', which `orgAddresses` below",
34089
+ "makes false: for an org with a BYO host the shared set is NOT the whole value, and an",
34090
+ "operator following the old sentence would arm a key that refuses that org's own agents.",
34091
+ "",
34092
+ "`orgAddresses` - THE SHARED SET IS NOT EVERY ORG'S SET (ENG-10718).",
34093
+ "An org whose agents run on a host we do not operate the network for - a BYO host in the",
34094
+ "customer's AWS account, or a `self` host on hardware we never see - egresses from an",
34095
+ "address no shared entry above carries. These are recorded per org rather than",
34096
+ "merged into `addresses`, because they are not fleet-wide: pasting one org's BYO address",
34097
+ "into another org's key widens that key for no reason. The drift detector and",
34098
+ "fleet-egress-enum.sh both read `addresses` and only `addresses`, so nothing here is ever",
34099
+ "compared against a hosts-account scan - which is correct, since these addresses live in",
34100
+ "accounts neither ever enumerates.",
34101
+ "",
34102
+ "AN OBSERVED ADDRESS IS NOT AN APPROVED ONE, AND THAT IS THE WHOLE POINT OF THIS FILE.",
34103
+ "`host_attested_egress` (ENG-10666) records the address a BYO host was SEEN calling from,",
34104
+ "and it is the only way to learn one - the `augmented-byo-provisioner` role grants neither",
34105
+ "`DescribeRouteTables` nor `DescribeNatGateways`, so enumeration cannot answer it. But",
34106
+ "seeing an address is not deciding it may hold a key. A row appears here when a human",
34107
+ "decides it, in a PR, which is the same ceremony every other entry gets. So an org can",
34108
+ "legitimately have a known egress address and no entry here - see Zanda below - and the",
34109
+ "posture page must withhold its paste value rather than offer the shared set.",
34110
+ "",
34111
+ "ZANDA IS THE LIVE EXAMPLE, AND ITS ABSENCE BELOW IS DELIBERATE.",
34112
+ "Zanda has an active BYO host - d0a78e4f-7a21-4d8d-85db-66a167fdd8cb in account",
34113
+ "585819234046, created 2026-09-16 - and as of 2026-09-20 its egress address IS known:",
34114
+ "3.107.131.133, resolved from `host_attested_egress` after an account enumeration failed",
34115
+ "to find it (it is a THIRD account, which no census had thought to scan). It is not",
34116
+ "recorded because nobody has approved it. That host carries ZERO assigned agents, so it",
34117
+ "makes no Composio calls and the omission costs nothing today; the approval queue for",
34118
+ "exactly this decision is ENG-10668, unbuilt. The consequence is intended and measured:",
34119
+ "Zanda's org IS `fully_managed` (read from prod 2026-09-20), so it holds a",
34120
+ "platform-managed Composio key and DOES appear on /admin/composio-key-posture - with no",
34121
+ "paste value and a reason. That row is the feature working. Do not 'fix' it by adding",
34122
+ "3.107.131.133 below - add the approval.",
34123
+ "",
34124
+ "THE SAME READ FOUND ZERO `self` HOSTS FLEET-WIDE (2026-09-20), which is why widening the",
34125
+ "rule beyond the BYO pointer costs nothing today: exactly two orgs have a host outside our",
34126
+ "NATs, both BYO, and only Zanda's lacks a recorded address. Every other org's row is the",
34127
+ "shared set, byte-identical to what ENG-10713 already served it. If that ratio ever",
34128
+ "inverts - many orgs withholding - the answer is to record addresses or build ENG-10668,",
34129
+ "NOT to narrow the rule back."
34088
34130
  ],
34089
34131
  account: "711726113003",
34090
34132
  homeRegion: "ap-southeast-2",
@@ -34121,13 +34163,29 @@ var composio_approved_egress_default = {
34121
34163
  seenAsGateway: "nat-02a4721d4ce678cf7",
34122
34164
  note: "The us-east-2b half of the same managed multi-AZ NAT. Two addresses is what `az: 2` costs on the allowlist, accepted deliberately in ENG-9684: adding an address AFTER arming is a blind hand edit of every key with production 401s as the only completion signal."
34123
34165
  }
34124
- ]
34166
+ ],
34167
+ orgAddresses: {
34168
+ "a4bba5c8-f664-46fe-a894-c95679c615ac": {
34169
+ orgSlug: "integritylabs",
34170
+ addresses: [
34171
+ {
34172
+ ip: "54.153.194.237",
34173
+ stage: "prod-byo",
34174
+ account: "436812233703",
34175
+ region: null,
34176
+ seenAsGateway: "nat-0c3cc231a8701a0e9",
34177
+ note: 'The BYO "Agents" account\'s NAT, serving `asha` on prod-integritylabs-integritylabs-4. Measured 2026-09-19 (ENG-10718) and again in the 24h /host/* census on 2026-09-20: 55,109 requests from 32 distinct paths. `region` is null because it is NOT RECORDED and cannot be enumerated from here - see the $comment; the comparison is on `ip` alone, so a null costs nothing, whereas a guessed region would be a fact this file states without evidence. THIS ORG WAS ARMED DURING THE GATE 5 REHEARSAL (ENG-10712) WITHOUT THIS ADDRESS. It passed only because nothing on that host called Composio inside the ~15-minute window; had it, the call would have been refused.'
34178
+ }
34179
+ ]
34180
+ }
34181
+ }
34125
34182
  };
34126
34183
 
34127
34184
  // ../core/dist/integrations/composio-approved-egress.js
34128
34185
  var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
34129
34186
  var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
34130
34187
  var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
34188
+ var ORG_EGRESS_ADDRESSES = composio_approved_egress_default.orgAddresses ?? {};
34131
34189
 
34132
34190
  // ../core/dist/integrations/remote-mcp-proxy-env.js
34133
34191
  var REMOTE_MCP_PROXY_ENV = {
@@ -34102,9 +34102,51 @@ var composio_approved_egress_default = {
34102
34102
  "Trimming it would make the allowlist incomplete, which is a fleet-wide 401 rather than",
34103
34103
  "a tidy file.",
34104
34104
  "",
34105
- "PASTE ALL FOUR, ALWAYS. Composio's field takes explicit comma-delimited addresses and",
34106
- "no CIDR, so a key armed with the hosts pair alone locks out every server-side call the",
34107
- "control plane makes, and one armed with the bridge pair alone locks out the fleet."
34105
+ "PASTE THE WHOLE SHARED SET, ALWAYS. Composio's field takes explicit comma-delimited",
34106
+ "addresses and no CIDR, so a key armed with the hosts pair alone locks out every",
34107
+ "server-side call the control plane makes, and one armed with the bridge pair alone locks",
34108
+ "out the fleet. This used to read 'PASTE ALL FOUR, ALWAYS', which `orgAddresses` below",
34109
+ "makes false: for an org with a BYO host the shared set is NOT the whole value, and an",
34110
+ "operator following the old sentence would arm a key that refuses that org's own agents.",
34111
+ "",
34112
+ "`orgAddresses` - THE SHARED SET IS NOT EVERY ORG'S SET (ENG-10718).",
34113
+ "An org whose agents run on a host we do not operate the network for - a BYO host in the",
34114
+ "customer's AWS account, or a `self` host on hardware we never see - egresses from an",
34115
+ "address no shared entry above carries. These are recorded per org rather than",
34116
+ "merged into `addresses`, because they are not fleet-wide: pasting one org's BYO address",
34117
+ "into another org's key widens that key for no reason. The drift detector and",
34118
+ "fleet-egress-enum.sh both read `addresses` and only `addresses`, so nothing here is ever",
34119
+ "compared against a hosts-account scan - which is correct, since these addresses live in",
34120
+ "accounts neither ever enumerates.",
34121
+ "",
34122
+ "AN OBSERVED ADDRESS IS NOT AN APPROVED ONE, AND THAT IS THE WHOLE POINT OF THIS FILE.",
34123
+ "`host_attested_egress` (ENG-10666) records the address a BYO host was SEEN calling from,",
34124
+ "and it is the only way to learn one - the `augmented-byo-provisioner` role grants neither",
34125
+ "`DescribeRouteTables` nor `DescribeNatGateways`, so enumeration cannot answer it. But",
34126
+ "seeing an address is not deciding it may hold a key. A row appears here when a human",
34127
+ "decides it, in a PR, which is the same ceremony every other entry gets. So an org can",
34128
+ "legitimately have a known egress address and no entry here - see Zanda below - and the",
34129
+ "posture page must withhold its paste value rather than offer the shared set.",
34130
+ "",
34131
+ "ZANDA IS THE LIVE EXAMPLE, AND ITS ABSENCE BELOW IS DELIBERATE.",
34132
+ "Zanda has an active BYO host - d0a78e4f-7a21-4d8d-85db-66a167fdd8cb in account",
34133
+ "585819234046, created 2026-09-16 - and as of 2026-09-20 its egress address IS known:",
34134
+ "3.107.131.133, resolved from `host_attested_egress` after an account enumeration failed",
34135
+ "to find it (it is a THIRD account, which no census had thought to scan). It is not",
34136
+ "recorded because nobody has approved it. That host carries ZERO assigned agents, so it",
34137
+ "makes no Composio calls and the omission costs nothing today; the approval queue for",
34138
+ "exactly this decision is ENG-10668, unbuilt. The consequence is intended and measured:",
34139
+ "Zanda's org IS `fully_managed` (read from prod 2026-09-20), so it holds a",
34140
+ "platform-managed Composio key and DOES appear on /admin/composio-key-posture - with no",
34141
+ "paste value and a reason. That row is the feature working. Do not 'fix' it by adding",
34142
+ "3.107.131.133 below - add the approval.",
34143
+ "",
34144
+ "THE SAME READ FOUND ZERO `self` HOSTS FLEET-WIDE (2026-09-20), which is why widening the",
34145
+ "rule beyond the BYO pointer costs nothing today: exactly two orgs have a host outside our",
34146
+ "NATs, both BYO, and only Zanda's lacks a recorded address. Every other org's row is the",
34147
+ "shared set, byte-identical to what ENG-10713 already served it. If that ratio ever",
34148
+ "inverts - many orgs withholding - the answer is to record addresses or build ENG-10668,",
34149
+ "NOT to narrow the rule back."
34108
34150
  ],
34109
34151
  account: "711726113003",
34110
34152
  homeRegion: "ap-southeast-2",
@@ -34141,13 +34183,29 @@ var composio_approved_egress_default = {
34141
34183
  seenAsGateway: "nat-02a4721d4ce678cf7",
34142
34184
  note: "The us-east-2b half of the same managed multi-AZ NAT. Two addresses is what `az: 2` costs on the allowlist, accepted deliberately in ENG-9684: adding an address AFTER arming is a blind hand edit of every key with production 401s as the only completion signal."
34143
34185
  }
34144
- ]
34186
+ ],
34187
+ orgAddresses: {
34188
+ "a4bba5c8-f664-46fe-a894-c95679c615ac": {
34189
+ orgSlug: "integritylabs",
34190
+ addresses: [
34191
+ {
34192
+ ip: "54.153.194.237",
34193
+ stage: "prod-byo",
34194
+ account: "436812233703",
34195
+ region: null,
34196
+ seenAsGateway: "nat-0c3cc231a8701a0e9",
34197
+ note: 'The BYO "Agents" account\'s NAT, serving `asha` on prod-integritylabs-integritylabs-4. Measured 2026-09-19 (ENG-10718) and again in the 24h /host/* census on 2026-09-20: 55,109 requests from 32 distinct paths. `region` is null because it is NOT RECORDED and cannot be enumerated from here - see the $comment; the comparison is on `ip` alone, so a null costs nothing, whereas a guessed region would be a fact this file states without evidence. THIS ORG WAS ARMED DURING THE GATE 5 REHEARSAL (ENG-10712) WITHOUT THIS ADDRESS. It passed only because nothing on that host called Composio inside the ~15-minute window; had it, the call would have been refused.'
34198
+ }
34199
+ ]
34200
+ }
34201
+ }
34145
34202
  };
34146
34203
 
34147
34204
  // ../core/dist/integrations/composio-approved-egress.js
34148
34205
  var APPROVED_EGRESS_ACCOUNT = composio_approved_egress_default.account;
34149
34206
  var APPROVED_EGRESS_HOME_REGION = composio_approved_egress_default.homeRegion;
34150
34207
  var APPROVED_EGRESS_ADDRESSES = composio_approved_egress_default.addresses;
34208
+ var ORG_EGRESS_ADDRESSES = composio_approved_egress_default.orgAddresses ?? {};
34151
34209
 
34152
34210
  // ../core/dist/integrations/remote-mcp-proxy-env.js
34153
34211
  var REMOTE_MCP_PROXY_ENV = {
@@ -62,8 +62,8 @@ import {
62
62
  writeDirectChatSessionState,
63
63
  writeEgressAllowlist,
64
64
  writePersistentClaudeWrapper
65
- } from "./chunk-V5HXKGU3.js";
66
- import "./chunk-IOV5NDDZ.js";
65
+ } from "./chunk-6KYXH6ZZ.js";
66
+ import "./chunk-TGCA3LTI.js";
67
67
  import "./chunk-DHWNVVX4.js";
68
68
  import "./chunk-XWVM4KPK.js";
69
69
  export {
@@ -131,4 +131,4 @@ export {
131
131
  writeEgressAllowlist,
132
132
  writePersistentClaudeWrapper
133
133
  };
134
- //# sourceMappingURL=persistent-session-UA7UEZUB.js.map
134
+ //# sourceMappingURL=persistent-session-PYYD53GZ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-V5HXKGU3.js";
4
- import "./chunk-IOV5NDDZ.js";
3
+ } from "./chunk-6KYXH6ZZ.js";
4
+ import "./chunk-TGCA3LTI.js";
5
5
  import "./chunk-DHWNVVX4.js";
6
6
  import "./chunk-XWVM4KPK.js";
7
7
 
@@ -800,4 +800,4 @@ export {
800
800
  readAndResetSlackReplyBindingClassifications,
801
801
  readAndResetSlackReplyTargetClassifications
802
802
  };
803
- //# sourceMappingURL=responsiveness-probe-WFCKAA6B.js.map
803
+ //# sourceMappingURL=responsiveness-probe-JENZOOKG.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-IOV5NDDZ.js";
3
+ } from "./chunk-TGCA3LTI.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-LY6ZNPYR.js.map
206
+ //# sourceMappingURL=session-auth-dead-BGXRQB27.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.985",
3
+ "version": "0.28.987",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {