@integrity-labs/agt-cli 0.28.797 → 0.28.799

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.
@@ -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-YDK4ZLC2.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-Z5QFD6JR.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-7GV7YJAX.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-2ADID7UG.js.map
@@ -58,7 +58,7 @@ import {
58
58
  safeWriteJsonAtomic,
59
59
  setConfigHash,
60
60
  tripClass
61
- } from "../chunk-BLPEFF5R.js";
61
+ } from "../chunk-BPAGPPAN.js";
62
62
  import {
63
63
  getProjectDir as getProjectDir2,
64
64
  getReadyTasks,
@@ -122,7 +122,7 @@ import {
122
122
  takeZombieDetection,
123
123
  toOpencodeModel,
124
124
  writeEgressAllowlist
125
- } from "../chunk-KGOED2L3.js";
125
+ } from "../chunk-M3IVSY6S.js";
126
126
  import {
127
127
  ACCOUNT_ENFORCEMENT_MARKER_FILENAME,
128
128
  AnchorSessionClient,
@@ -214,7 +214,7 @@ import {
214
214
  subagentActivityAgeSeconds,
215
215
  sumTranscriptUsageInWindow,
216
216
  transcriptActivityAgeSeconds
217
- } from "../chunk-ZL7RC5VO.js";
217
+ } from "../chunk-XEPLW5LY.js";
218
218
  import {
219
219
  reapOrphanChannelMcps
220
220
  } from "../chunk-XWVM4KPK.js";
@@ -12917,7 +12917,7 @@ var pendingDayRolloverReset = /* @__PURE__ */ new Set();
12917
12917
  var dayRolloverInboundHold = /* @__PURE__ */ new Map();
12918
12918
  var INBOUND_HOLD_EPISODE_GAP_MS = 12e4;
12919
12919
  async function channelInboundActivityAgeSecondsFor(codeName) {
12920
- const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-2WHOALYI.js");
12920
+ const { newestPendingInboundActivityMtimeMs } = await import("../responsiveness-probe-3M2QIBJ5.js");
12921
12921
  const newest = newestPendingInboundActivityMtimeMs(dirname10(paneLogPath(codeName)));
12922
12922
  if (newest === null) return null;
12923
12923
  return Math.max(0, Math.floor((Date.now() - newest) / 1e3));
@@ -13577,7 +13577,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
13577
13577
  var lastVersionCheckAt = 0;
13578
13578
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
13579
13579
  var lastResponsivenessProbeAt = 0;
13580
- var agtCliVersion = true ? "0.28.797" : "dev";
13580
+ var agtCliVersion = true ? "0.28.799" : "dev";
13581
13581
  function resolveBrewPath(execFileSync2) {
13582
13582
  try {
13583
13583
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -15124,7 +15124,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
15124
15124
  if (codeNames.length === 0) return;
15125
15125
  void (async () => {
15126
15126
  try {
15127
- const { collectDiagnostics } = await import("../persistent-session-YDK4ZLC2.js");
15127
+ const { collectDiagnostics } = await import("../persistent-session-Z5QFD6JR.js");
15128
15128
  await api.post("/host/heartbeat", {
15129
15129
  host_id: hostId,
15130
15130
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -15265,7 +15265,7 @@ async function pollCycleInner() {
15265
15265
  }
15266
15266
  try {
15267
15267
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
15268
- const { collectDiagnostics } = await import("../persistent-session-YDK4ZLC2.js");
15268
+ const { collectDiagnostics } = await import("../persistent-session-Z5QFD6JR.js");
15269
15269
  const diagCodeNames = [...agentState.persistentSessionAgents];
15270
15270
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor) : void 0;
15271
15271
  let tailscaleHostname;
@@ -15434,7 +15434,7 @@ async function pollCycleInner() {
15434
15434
  collectPanelessActivityProbes,
15435
15435
  getResponsivenessIntervalMs,
15436
15436
  occupancyQualificationClassifications
15437
- } = await import("../responsiveness-probe-2WHOALYI.js");
15437
+ } = await import("../responsiveness-probe-3M2QIBJ5.js");
15438
15438
  const probeIntervalMs = getResponsivenessIntervalMs();
15439
15439
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
15440
15440
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -15551,7 +15551,7 @@ async function pollCycleInner() {
15551
15551
  collectResponsivenessProbes,
15552
15552
  livePendingInboundOldestAgeSeconds,
15553
15553
  parkPendingInbound
15554
- } = await import("../responsiveness-probe-2WHOALYI.js");
15554
+ } = await import("../responsiveness-probe-3M2QIBJ5.js");
15555
15555
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-NDP36U7O.js");
15556
15556
  const wedgeNow = /* @__PURE__ */ new Date();
15557
15557
  const liveAgents = agentState.persistentSessionAgents;
@@ -15707,7 +15707,7 @@ async function pollCycleInner() {
15707
15707
  }
15708
15708
  try {
15709
15709
  const { scrapeMcpFailedBannerCount } = await import("../pane-mcp-banner-scraper-JA437JIB.js");
15710
- const { probeSessionAuth } = await import("../session-auth-dead-EQK6TGMD.js");
15710
+ const { probeSessionAuth } = await import("../session-auth-dead-RWNURZER.js");
15711
15711
  const observations = [];
15712
15712
  const pendingCacheCommits = [];
15713
15713
  const modelApiErrorReportingOn = hostFlagStore().getBoolean("model-api-error-reporting");
@@ -19808,7 +19808,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
19808
19808
  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}`));
19809
19809
  void (async () => {
19810
19810
  try {
19811
- const { collectDiagnostics } = await import("../persistent-session-YDK4ZLC2.js");
19811
+ const { collectDiagnostics } = await import("../persistent-session-Z5QFD6JR.js");
19812
19812
  await api.post("/host/heartbeat", {
19813
19813
  host_id: hostId,
19814
19814
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -19854,7 +19854,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
19854
19854
  }
19855
19855
  try {
19856
19856
  const hostId = await getHostId();
19857
- const { collectDiagnostics } = await import("../persistent-session-YDK4ZLC2.js");
19857
+ const { collectDiagnostics } = await import("../persistent-session-Z5QFD6JR.js");
19858
19858
  await api.post("/host/heartbeat", {
19859
19859
  host_id: hostId,
19860
19860
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor, claudeMdSizeFor, spawnOutcomeForDiagnostics, pidPressureFor, forwardedToolsFor)
@@ -20490,7 +20490,7 @@ async function processClaudePairSessions(agents) {
20490
20490
  killPairSession,
20491
20491
  pairTmuxSession,
20492
20492
  finalizeClaudePairOnboarding
20493
- } = await import("../claude-pair-runtime-7GV7YJAX.js");
20493
+ } = await import("../claude-pair-runtime-2ADID7UG.js");
20494
20494
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
20495
20495
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
20496
20496
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -36661,6 +36661,23 @@ var FLAG_REGISTRY = [
36661
36661
  // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
36662
36662
  sensitive: true
36663
36663
  },
36664
+ {
36665
+ key: "org-email-domain-derivation",
36666
+ description: "Auto-derive an organization's own email domain from its members' signup addresses (ENG-9888) and add it to organization_email_domains already verified, so email.domain_restrict's internal_only mode has the allow set it resolves against. Without a verified domain internal_only is a runtime no-op (an empty allow set would block every send), which was the live state for 22 of 23 orgs while the console showed the strictest egress mode. Server-side only \u2014 the API derives lazily when the guard finds no verified domain; there is no host-side reader, hence no envVar. Flipping this ON is the backfill: derivation runs per-org on first need rather than as a batch job, and the vendor-domain exclusion is what stops the six orgs whose earliest member is a staff account from being given integritylabs.dev.",
36667
+ flagType: "boolean",
36668
+ // Ships dark. The safe value is `false` (derive nothing) because arming this
36669
+ // gives internal_only a real allow set, which CHANGES what the guard evaluates
36670
+ // for every org it touches — and not only the guard: getVerifiedOrgEmailDomains
36671
+ // also feeds the Linear customer-need linker and the support/host-runtime
36672
+ // prompts, so a row appearing is visible beyond the send path. A flag-read
36673
+ // error must never start writing verified domains on its own.
36674
+ defaultValue: false,
36675
+ // Arming it makes a previously-inert egress control start evaluating, so the
36676
+ // flip wants a deliberate confirm rather than a casual toggle. Before flipping,
36677
+ // check which orgs sit at the `enforce` / `require_approval` email-guard stage:
36678
+ // those are the ones where a newly-effective policy can reach a real block.
36679
+ sensitive: true
36680
+ },
36664
36681
  {
36665
36682
  key: "memory-extraction",
36666
36683
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
package/dist/mcp/index.js CHANGED
@@ -43745,6 +43745,23 @@ var FLAG_REGISTRY = [
43745
43745
  // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
43746
43746
  sensitive: true
43747
43747
  },
43748
+ {
43749
+ key: "org-email-domain-derivation",
43750
+ description: "Auto-derive an organization's own email domain from its members' signup addresses (ENG-9888) and add it to organization_email_domains already verified, so email.domain_restrict's internal_only mode has the allow set it resolves against. Without a verified domain internal_only is a runtime no-op (an empty allow set would block every send), which was the live state for 22 of 23 orgs while the console showed the strictest egress mode. Server-side only \u2014 the API derives lazily when the guard finds no verified domain; there is no host-side reader, hence no envVar. Flipping this ON is the backfill: derivation runs per-org on first need rather than as a batch job, and the vendor-domain exclusion is what stops the six orgs whose earliest member is a staff account from being given integritylabs.dev.",
43751
+ flagType: "boolean",
43752
+ // Ships dark. The safe value is `false` (derive nothing) because arming this
43753
+ // gives internal_only a real allow set, which CHANGES what the guard evaluates
43754
+ // for every org it touches — and not only the guard: getVerifiedOrgEmailDomains
43755
+ // also feeds the Linear customer-need linker and the support/host-runtime
43756
+ // prompts, so a row appearing is visible beyond the send path. A flag-read
43757
+ // error must never start writing verified domains on its own.
43758
+ defaultValue: false,
43759
+ // Arming it makes a previously-inert egress control start evaluating, so the
43760
+ // flip wants a deliberate confirm rather than a casual toggle. Before flipping,
43761
+ // check which orgs sit at the `enforce` / `require_approval` email-guard stage:
43762
+ // those are the ones where a newly-effective policy can reach a real block.
43763
+ sensitive: true
43764
+ },
43748
43765
  {
43749
43766
  key: "memory-extraction",
43750
43767
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -42385,6 +42385,23 @@ var FLAG_REGISTRY = [
42385
42385
  // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
42386
42386
  sensitive: true
42387
42387
  },
42388
+ {
42389
+ key: "org-email-domain-derivation",
42390
+ description: "Auto-derive an organization's own email domain from its members' signup addresses (ENG-9888) and add it to organization_email_domains already verified, so email.domain_restrict's internal_only mode has the allow set it resolves against. Without a verified domain internal_only is a runtime no-op (an empty allow set would block every send), which was the live state for 22 of 23 orgs while the console showed the strictest egress mode. Server-side only \u2014 the API derives lazily when the guard finds no verified domain; there is no host-side reader, hence no envVar. Flipping this ON is the backfill: derivation runs per-org on first need rather than as a batch job, and the vendor-domain exclusion is what stops the six orgs whose earliest member is a staff account from being given integritylabs.dev.",
42391
+ flagType: "boolean",
42392
+ // Ships dark. The safe value is `false` (derive nothing) because arming this
42393
+ // gives internal_only a real allow set, which CHANGES what the guard evaluates
42394
+ // for every org it touches — and not only the guard: getVerifiedOrgEmailDomains
42395
+ // also feeds the Linear customer-need linker and the support/host-runtime
42396
+ // prompts, so a row appearing is visible beyond the send path. A flag-read
42397
+ // error must never start writing verified domains on its own.
42398
+ defaultValue: false,
42399
+ // Arming it makes a previously-inert egress control start evaluating, so the
42400
+ // flip wants a deliberate confirm rather than a casual toggle. Before flipping,
42401
+ // check which orgs sit at the `enforce` / `require_approval` email-guard stage:
42402
+ // those are the ones where a newly-effective policy can reach a real block.
42403
+ sensitive: true
42404
+ },
42388
42405
  {
42389
42406
  key: "memory-extraction",
42390
42407
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -36908,6 +36908,23 @@ var FLAG_REGISTRY = [
36908
36908
  // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
36909
36909
  sensitive: true
36910
36910
  },
36911
+ {
36912
+ key: "org-email-domain-derivation",
36913
+ description: "Auto-derive an organization's own email domain from its members' signup addresses (ENG-9888) and add it to organization_email_domains already verified, so email.domain_restrict's internal_only mode has the allow set it resolves against. Without a verified domain internal_only is a runtime no-op (an empty allow set would block every send), which was the live state for 22 of 23 orgs while the console showed the strictest egress mode. Server-side only \u2014 the API derives lazily when the guard finds no verified domain; there is no host-side reader, hence no envVar. Flipping this ON is the backfill: derivation runs per-org on first need rather than as a batch job, and the vendor-domain exclusion is what stops the six orgs whose earliest member is a staff account from being given integritylabs.dev.",
36914
+ flagType: "boolean",
36915
+ // Ships dark. The safe value is `false` (derive nothing) because arming this
36916
+ // gives internal_only a real allow set, which CHANGES what the guard evaluates
36917
+ // for every org it touches — and not only the guard: getVerifiedOrgEmailDomains
36918
+ // also feeds the Linear customer-need linker and the support/host-runtime
36919
+ // prompts, so a row appearing is visible beyond the send path. A flag-read
36920
+ // error must never start writing verified domains on its own.
36921
+ defaultValue: false,
36922
+ // Arming it makes a previously-inert egress control start evaluating, so the
36923
+ // flip wants a deliberate confirm rather than a casual toggle. Before flipping,
36924
+ // check which orgs sit at the `enforce` / `require_approval` email-guard stage:
36925
+ // those are the ones where a newly-effective policy can reach a real block.
36926
+ sensitive: true
36927
+ },
36911
36928
  {
36912
36929
  key: "memory-extraction",
36913
36930
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -37066,6 +37066,23 @@ var FLAG_REGISTRY = [
37066
37066
  // the flip is a deliberate, confirmed one (ADR-0022 sensitive-flag confirm).
37067
37067
  sensitive: true
37068
37068
  },
37069
+ {
37070
+ key: "org-email-domain-derivation",
37071
+ description: "Auto-derive an organization's own email domain from its members' signup addresses (ENG-9888) and add it to organization_email_domains already verified, so email.domain_restrict's internal_only mode has the allow set it resolves against. Without a verified domain internal_only is a runtime no-op (an empty allow set would block every send), which was the live state for 22 of 23 orgs while the console showed the strictest egress mode. Server-side only \u2014 the API derives lazily when the guard finds no verified domain; there is no host-side reader, hence no envVar. Flipping this ON is the backfill: derivation runs per-org on first need rather than as a batch job, and the vendor-domain exclusion is what stops the six orgs whose earliest member is a staff account from being given integritylabs.dev.",
37072
+ flagType: "boolean",
37073
+ // Ships dark. The safe value is `false` (derive nothing) because arming this
37074
+ // gives internal_only a real allow set, which CHANGES what the guard evaluates
37075
+ // for every org it touches — and not only the guard: getVerifiedOrgEmailDomains
37076
+ // also feeds the Linear customer-need linker and the support/host-runtime
37077
+ // prompts, so a row appearing is visible beyond the send path. A flag-read
37078
+ // error must never start writing verified domains on its own.
37079
+ defaultValue: false,
37080
+ // Arming it makes a previously-inert egress control start evaluating, so the
37081
+ // flip wants a deliberate confirm rather than a casual toggle. Before flipping,
37082
+ // check which orgs sit at the `enforce` / `require_approval` email-guard stage:
37083
+ // those are the ones where a newly-effective policy can reach a real block.
37084
+ sensitive: true
37085
+ },
37069
37086
  {
37070
37087
  key: "memory-extraction",
37071
37088
  description: "Host-side durable-memory extraction (ENG-6200): the manager extracts candidate memories from completed conversations and POSTs them to /host/memories/candidates, which writes dream_log via promoteCandidates. Post persistent-session cutover this is the ONLY live consolidation path. Boolean gate; ships dark \u2014 when off the manager runs no extraction, so 0 dream_log rows fleet-wide is the expected steady state until it is armed.",
@@ -49,8 +49,8 @@ import {
49
49
  writeDirectChatSessionState,
50
50
  writeEgressAllowlist,
51
51
  writePersistentClaudeWrapper
52
- } from "./chunk-KGOED2L3.js";
53
- import "./chunk-ZL7RC5VO.js";
52
+ } from "./chunk-M3IVSY6S.js";
53
+ import "./chunk-XEPLW5LY.js";
54
54
  import "./chunk-XWVM4KPK.js";
55
55
  export {
56
56
  EGRESS_BASELINE_DOMAINS,
@@ -104,4 +104,4 @@ export {
104
104
  writeEgressAllowlist,
105
105
  writePersistentClaudeWrapper
106
106
  };
107
- //# sourceMappingURL=persistent-session-YDK4ZLC2.js.map
107
+ //# sourceMappingURL=persistent-session-Z5QFD6JR.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-KGOED2L3.js";
4
- import "./chunk-ZL7RC5VO.js";
3
+ } from "./chunk-M3IVSY6S.js";
4
+ import "./chunk-XEPLW5LY.js";
5
5
  import "./chunk-XWVM4KPK.js";
6
6
 
7
7
  // src/lib/responsiveness-probe.ts
@@ -745,4 +745,4 @@ export {
745
745
  readAndResetSlackReplyBindingClassifications,
746
746
  readAndResetSlackReplyTargetClassifications
747
747
  };
748
- //# sourceMappingURL=responsiveness-probe-2WHOALYI.js.map
748
+ //# sourceMappingURL=responsiveness-probe-3M2QIBJ5.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sessionTranscriptDir
3
- } from "./chunk-ZL7RC5VO.js";
3
+ } from "./chunk-XEPLW5LY.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-EQK6TGMD.js.map
206
+ //# sourceMappingURL=session-auth-dead-RWNURZER.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.797",
3
+ "version": "0.28.799",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {