@integrity-labs/agt-cli 0.28.417 → 0.28.418

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-EW7GTES3.js");
103
+ const { resolveClaudeBinary } = await import("./persistent-session-B7E5ZX2C.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-I4Q66W7S.js.map
376
+ //# sourceMappingURL=claude-pair-runtime-CYJFIF2Z.js.map
@@ -45,7 +45,7 @@ import {
45
45
  resolveEffectivePinRaw,
46
46
  safeWriteJsonAtomic,
47
47
  setConfigHash
48
- } from "../chunk-NDDVFICX.js";
48
+ } from "../chunk-4OLSHG7F.js";
49
49
  import {
50
50
  getProjectDir as getProjectDir2,
51
51
  getReadyTasks,
@@ -150,7 +150,7 @@ import {
150
150
  toOpencodeModel,
151
151
  transcriptActivityAgeSeconds,
152
152
  writeEgressAllowlist
153
- } from "../chunk-I5SDCW2T.js";
153
+ } from "../chunk-IE7ZJKF3.js";
154
154
  import {
155
155
  reapOrphanChannelMcps
156
156
  } from "../chunk-XWVM4KPK.js";
@@ -9458,7 +9458,7 @@ var agentRestartTimezoneInputs = /* @__PURE__ */ new Map();
9458
9458
  var lastVersionCheckAt = 0;
9459
9459
  var VERSION_CHECK_INTERVAL_MS = 5 * 60 * 1e3;
9460
9460
  var lastResponsivenessProbeAt = 0;
9461
- var agtCliVersion = true ? "0.28.417" : "dev";
9461
+ var agtCliVersion = true ? "0.28.418" : "dev";
9462
9462
  function resolveBrewPath(execFileSync2) {
9463
9463
  try {
9464
9464
  const out = execFileSync2("which", ["brew"], { timeout: 5e3 }).toString().trim();
@@ -10606,7 +10606,7 @@ function flushRestartedAgentDiagnostics(hostId, codeNames) {
10606
10606
  if (codeNames.length === 0) return;
10607
10607
  void (async () => {
10608
10608
  try {
10609
- const { collectDiagnostics } = await import("../persistent-session-EW7GTES3.js");
10609
+ const { collectDiagnostics } = await import("../persistent-session-B7E5ZX2C.js");
10610
10610
  await api.post("/host/heartbeat", {
10611
10611
  host_id: hostId,
10612
10612
  agent_diagnostics: collectDiagnostics(codeNames, quarantineEntriesFor)
@@ -10713,7 +10713,7 @@ async function pollCycle() {
10713
10713
  }
10714
10714
  try {
10715
10715
  const { detectHostSecurity } = await import("../host-security-6PDFG7F5.js");
10716
- const { collectDiagnostics } = await import("../persistent-session-EW7GTES3.js");
10716
+ const { collectDiagnostics } = await import("../persistent-session-B7E5ZX2C.js");
10717
10717
  const diagCodeNames = [...agentState.persistentSessionAgents];
10718
10718
  const agentDiagnostics = diagCodeNames.length > 0 ? collectDiagnostics(diagCodeNames, quarantineEntriesFor) : void 0;
10719
10719
  let tailscaleHostname;
@@ -10827,7 +10827,7 @@ async function pollCycle() {
10827
10827
  collectResponsivenessProbes,
10828
10828
  collectPanelessActivityProbes,
10829
10829
  getResponsivenessIntervalMs
10830
- } = await import("../responsiveness-probe-HP3NKDGQ.js");
10830
+ } = await import("../responsiveness-probe-NQIEWYTJ.js");
10831
10831
  const probeIntervalMs = getResponsivenessIntervalMs();
10832
10832
  if (now - lastResponsivenessProbeAt > probeIntervalMs) {
10833
10833
  const probeCodeNames = [...agentState.persistentSessionAgents];
@@ -10866,7 +10866,7 @@ async function pollCycle() {
10866
10866
  collectResponsivenessProbes,
10867
10867
  livePendingInboundOldestAgeSeconds,
10868
10868
  parkPendingInbound
10869
- } = await import("../responsiveness-probe-HP3NKDGQ.js");
10869
+ } = await import("../responsiveness-probe-NQIEWYTJ.js");
10870
10870
  const { getProjectDir: wedgeProjectDir } = await import("../scheduler-engine-HYOOQV4A.js");
10871
10871
  const wedgeNow = /* @__PURE__ */ new Date();
10872
10872
  const liveAgents = agentState.persistentSessionAgents;
@@ -14177,7 +14177,7 @@ async function handleRestartDoorbell(agentId, requestedAt, restartReason) {
14177
14177
  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}`));
14178
14178
  void (async () => {
14179
14179
  try {
14180
- const { collectDiagnostics } = await import("../persistent-session-EW7GTES3.js");
14180
+ const { collectDiagnostics } = await import("../persistent-session-B7E5ZX2C.js");
14181
14181
  await api.post("/host/heartbeat", {
14182
14182
  host_id: hostId,
14183
14183
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor)
@@ -14227,7 +14227,7 @@ async function respawnAgentAfterMcpStop(codeName, reason) {
14227
14227
  }
14228
14228
  try {
14229
14229
  const hostId = await getHostId();
14230
- const { collectDiagnostics } = await import("../persistent-session-EW7GTES3.js");
14230
+ const { collectDiagnostics } = await import("../persistent-session-B7E5ZX2C.js");
14231
14231
  await api.post("/host/heartbeat", {
14232
14232
  host_id: hostId,
14233
14233
  agent_diagnostics: collectDiagnostics([codeName], quarantineEntriesFor)
@@ -14680,7 +14680,7 @@ async function processClaudePairSessions(agents) {
14680
14680
  killPairSession,
14681
14681
  pairTmuxSession,
14682
14682
  finalizeClaudePairOnboarding
14683
- } = await import("../claude-pair-runtime-I4Q66W7S.js");
14683
+ } = await import("../claude-pair-runtime-CYJFIF2Z.js");
14684
14684
  for (const pairId of pendingResp.cancelled_pair_ids ?? []) {
14685
14685
  log(`[claude-pair] sweeping orphan tmux session for pair ${pairId.slice(0, 8)}`);
14686
14686
  const killed = await killPairSession(pairTmuxSession(pairId));
@@ -34674,9 +34674,9 @@ var FLAG_REGISTRY = [
34674
34674
  },
34675
34675
  {
34676
34676
  key: "compaction-notice",
34677
- description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Boolean gate; ships dark, canary per host before any fleet flip. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
34677
+ description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Default ON (ENG-8040: introduced dark on 2026-07-23 via ENG-7339, never activated in prod; Brad Bond reported Sherlock went silent mid-compaction with no notice). Set AGT_COMPACTION_NOTICE_ENABLED=false or override via the Feature Flags admin page to disable per-host. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
34678
34678
  flagType: "boolean",
34679
- defaultValue: false,
34679
+ defaultValue: true,
34680
34680
  envVar: "AGT_COMPACTION_NOTICE_ENABLED"
34681
34681
  },
34682
34682
  {
@@ -34850,6 +34850,21 @@ var FLAG_REGISTRY = [
34850
34850
  // AGT_CONV_EVAL_BACKEND keeps that value until the env var is retired.
34851
34851
  envVar: "AGT_CONV_EVAL_BACKEND"
34852
34852
  },
34853
+ {
34854
+ key: "synthetic-probe-enabled",
34855
+ description: 'Global gate for the agent synthetic-liveness cron (ENG-8074). When OFF, the cron exits after reading the flag \u2014 no probes sent, no metrics emitted, no CloudWatch alarms fired, near-zero DB footprint. Ships dark (OFF) because the probe cron was generating false positives (probe_timeout on angie for 7+ days while healthy, ENG-8048) and had open cron_invocation_errors alarms (since 2026-07-23). Flip ON per-environment via the admin Feature Flags page once the reliability issues are resolved. The existing AUGMENTED_SYNTHETIC_PROBE_ENABLED env var is the declared envVar for this flag (ADR-0022): set it to "true"/"1" to force-enable (env takes precedence over the DB stage value), or "false"/"0" to force-disable without a DB lookup. Evaluated as a global stage value by the central cron (no per-org targeting). Boolean gate.',
34856
+ flagType: "boolean",
34857
+ // Safe/dark default: false = probe off. This encodes the ENG-8074 intent (disable
34858
+ // in prod until reliability issues are resolved) and is the fail-safe direction for
34859
+ // a flag-DB read error — a hiccup degrades to keeping the cron dormant rather than
34860
+ // silently re-arming a broken probe fleet-wide.
34861
+ // The env var AUGMENTED_SYNTHETIC_PROBE_ENABLED was the pre-flag emergency kill switch
34862
+ // (read as `!== 'false'`, so unset = probe ON). The flag inverts this: unset env var
34863
+ // now resolves to the flag default (OFF). Set AUGMENTED_SYNTHETIC_PROBE_ENABLED=true to
34864
+ // explicitly re-arm the probe via env, or flip the flag ON from the admin UI.
34865
+ defaultValue: false,
34866
+ envVar: "AUGMENTED_SYNTHETIC_PROBE_ENABLED"
34867
+ },
34853
34868
  {
34854
34869
  key: "synthetic-probe-on-metered-hosts",
34855
34870
  description: "Synthetic liveness probing of OpenRouter-metered agents (ENG-7235). On a host whose claude_auth_mode='openrouter' every model call is per-token cost, so the hourly synthetic probe (a full inbound\u2192session\u2192model\u2192outbound round-trip whose only output is a probe_ack) is real spend for zero deliverable - unlike a Max-subscription host where it is effectively free. When OFF (default) the synthetic-probe cron skips OpenRouter-mode agents entirely; their liveness falls back to the zero-token signals (pane-activity ENG-5399 + manager heartbeat + inbound-loop liveness ENG-5614). When ON, metered agents are probed like every other agent (the pre-ENG-7235 behaviour) - the explicit opt-in for an operator who wants the end-to-end check and accepts the cost. Subscription / api_key hosts are unaffected either way. Evaluated as a global stage value by the central cron (no per-org targeting in v1). Boolean gate.",
@@ -40290,9 +40290,9 @@ var FLAG_REGISTRY = [
40290
40290
  },
40291
40291
  {
40292
40292
  key: "compaction-notice",
40293
- description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Boolean gate; ships dark, canary per host before any fleet flip. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
40293
+ description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Default ON (ENG-8040: introduced dark on 2026-07-23 via ENG-7339, never activated in prod; Brad Bond reported Sherlock went silent mid-compaction with no notice). Set AGT_COMPACTION_NOTICE_ENABLED=false or override via the Feature Flags admin page to disable per-host. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
40294
40294
  flagType: "boolean",
40295
- defaultValue: false,
40295
+ defaultValue: true,
40296
40296
  envVar: "AGT_COMPACTION_NOTICE_ENABLED"
40297
40297
  },
40298
40298
  {
@@ -40466,6 +40466,21 @@ var FLAG_REGISTRY = [
40466
40466
  // AGT_CONV_EVAL_BACKEND keeps that value until the env var is retired.
40467
40467
  envVar: "AGT_CONV_EVAL_BACKEND"
40468
40468
  },
40469
+ {
40470
+ key: "synthetic-probe-enabled",
40471
+ description: 'Global gate for the agent synthetic-liveness cron (ENG-8074). When OFF, the cron exits after reading the flag \u2014 no probes sent, no metrics emitted, no CloudWatch alarms fired, near-zero DB footprint. Ships dark (OFF) because the probe cron was generating false positives (probe_timeout on angie for 7+ days while healthy, ENG-8048) and had open cron_invocation_errors alarms (since 2026-07-23). Flip ON per-environment via the admin Feature Flags page once the reliability issues are resolved. The existing AUGMENTED_SYNTHETIC_PROBE_ENABLED env var is the declared envVar for this flag (ADR-0022): set it to "true"/"1" to force-enable (env takes precedence over the DB stage value), or "false"/"0" to force-disable without a DB lookup. Evaluated as a global stage value by the central cron (no per-org targeting). Boolean gate.',
40472
+ flagType: "boolean",
40473
+ // Safe/dark default: false = probe off. This encodes the ENG-8074 intent (disable
40474
+ // in prod until reliability issues are resolved) and is the fail-safe direction for
40475
+ // a flag-DB read error — a hiccup degrades to keeping the cron dormant rather than
40476
+ // silently re-arming a broken probe fleet-wide.
40477
+ // The env var AUGMENTED_SYNTHETIC_PROBE_ENABLED was the pre-flag emergency kill switch
40478
+ // (read as `!== 'false'`, so unset = probe ON). The flag inverts this: unset env var
40479
+ // now resolves to the flag default (OFF). Set AUGMENTED_SYNTHETIC_PROBE_ENABLED=true to
40480
+ // explicitly re-arm the probe via env, or flip the flag ON from the admin UI.
40481
+ defaultValue: false,
40482
+ envVar: "AUGMENTED_SYNTHETIC_PROBE_ENABLED"
40483
+ },
40469
40484
  {
40470
40485
  key: "synthetic-probe-on-metered-hosts",
40471
40486
  description: "Synthetic liveness probing of OpenRouter-metered agents (ENG-7235). On a host whose claude_auth_mode='openrouter' every model call is per-token cost, so the hourly synthetic probe (a full inbound\u2192session\u2192model\u2192outbound round-trip whose only output is a probe_ack) is real spend for zero deliverable - unlike a Max-subscription host where it is effectively free. When OFF (default) the synthetic-probe cron skips OpenRouter-mode agents entirely; their liveness falls back to the zero-token signals (pane-activity ENG-5399 + manager heartbeat + inbound-loop liveness ENG-5614). When ON, metered agents are probed like every other agent (the pre-ENG-7235 behaviour) - the explicit opt-in for an operator who wants the end-to-end check and accepts the cost. Subscription / api_key hosts are unaffected either way. Evaluated as a global stage value by the central cron (no per-org targeting in v1). Boolean gate.",
@@ -34209,9 +34209,9 @@ var FLAG_REGISTRY = [
34209
34209
  },
34210
34210
  {
34211
34211
  key: "compaction-notice",
34212
- description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Boolean gate; ships dark, canary per host before any fleet flip. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
34212
+ description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Default ON (ENG-8040: introduced dark on 2026-07-23 via ENG-7339, never activated in prod; Brad Bond reported Sherlock went silent mid-compaction with no notice). Set AGT_COMPACTION_NOTICE_ENABLED=false or override via the Feature Flags admin page to disable per-host. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
34213
34213
  flagType: "boolean",
34214
- defaultValue: false,
34214
+ defaultValue: true,
34215
34215
  envVar: "AGT_COMPACTION_NOTICE_ENABLED"
34216
34216
  },
34217
34217
  {
@@ -34385,6 +34385,21 @@ var FLAG_REGISTRY = [
34385
34385
  // AGT_CONV_EVAL_BACKEND keeps that value until the env var is retired.
34386
34386
  envVar: "AGT_CONV_EVAL_BACKEND"
34387
34387
  },
34388
+ {
34389
+ key: "synthetic-probe-enabled",
34390
+ description: 'Global gate for the agent synthetic-liveness cron (ENG-8074). When OFF, the cron exits after reading the flag \u2014 no probes sent, no metrics emitted, no CloudWatch alarms fired, near-zero DB footprint. Ships dark (OFF) because the probe cron was generating false positives (probe_timeout on angie for 7+ days while healthy, ENG-8048) and had open cron_invocation_errors alarms (since 2026-07-23). Flip ON per-environment via the admin Feature Flags page once the reliability issues are resolved. The existing AUGMENTED_SYNTHETIC_PROBE_ENABLED env var is the declared envVar for this flag (ADR-0022): set it to "true"/"1" to force-enable (env takes precedence over the DB stage value), or "false"/"0" to force-disable without a DB lookup. Evaluated as a global stage value by the central cron (no per-org targeting). Boolean gate.',
34391
+ flagType: "boolean",
34392
+ // Safe/dark default: false = probe off. This encodes the ENG-8074 intent (disable
34393
+ // in prod until reliability issues are resolved) and is the fail-safe direction for
34394
+ // a flag-DB read error — a hiccup degrades to keeping the cron dormant rather than
34395
+ // silently re-arming a broken probe fleet-wide.
34396
+ // The env var AUGMENTED_SYNTHETIC_PROBE_ENABLED was the pre-flag emergency kill switch
34397
+ // (read as `!== 'false'`, so unset = probe ON). The flag inverts this: unset env var
34398
+ // now resolves to the flag default (OFF). Set AUGMENTED_SYNTHETIC_PROBE_ENABLED=true to
34399
+ // explicitly re-arm the probe via env, or flip the flag ON from the admin UI.
34400
+ defaultValue: false,
34401
+ envVar: "AUGMENTED_SYNTHETIC_PROBE_ENABLED"
34402
+ },
34388
34403
  {
34389
34404
  key: "synthetic-probe-on-metered-hosts",
34390
34405
  description: "Synthetic liveness probing of OpenRouter-metered agents (ENG-7235). On a host whose claude_auth_mode='openrouter' every model call is per-token cost, so the hourly synthetic probe (a full inbound\u2192session\u2192model\u2192outbound round-trip whose only output is a probe_ack) is real spend for zero deliverable - unlike a Max-subscription host where it is effectively free. When OFF (default) the synthetic-probe cron skips OpenRouter-mode agents entirely; their liveness falls back to the zero-token signals (pane-activity ENG-5399 + manager heartbeat + inbound-loop liveness ENG-5614). When ON, metered agents are probed like every other agent (the pre-ENG-7235 behaviour) - the explicit opt-in for an operator who wants the end-to-end check and accepts the cost. Subscription / api_key hosts are unaffected either way. Evaluated as a global stage value by the central cron (no per-org targeting in v1). Boolean gate.",
@@ -34559,9 +34559,9 @@ var FLAG_REGISTRY = [
34559
34559
  },
34560
34560
  {
34561
34561
  key: "compaction-notice",
34562
- description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Boolean gate; ships dark, canary per host before any fleet flip. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
34562
+ description: 'Compaction courtesy notice (ENG-7339): when a managed Claude Code session compacts its context, the persistent session pauses and stops replying for a stretch, which looks identical to a dead agent from the channel. When ON, the generated PreCompact hook finds the conversation the user is actively on (the last <channel ...> tag in the transcript) and drops a notice into the matching <channel>-notice-outbox; the channel MCP server (alive while the Claude process compacts) posts a short "reorganizing my memory, back shortly" line. The notice path never clears the pending-inbound marker, so the genuine reply the agent still owes after compaction is unaffected. No active channel tag \u21D2 silent (idle agents never broadcast). Default ON (ENG-8040: introduced dark on 2026-07-23 via ENG-7339, never activated in prod; Brad Bond reported Sherlock went silent mid-compaction with no notice). Set AGT_COMPACTION_NOTICE_ENABLED=false or override via the Feature Flags admin page to disable per-host. When OFF the hook writes nothing and the consumer drops any stray notice unsent.',
34563
34563
  flagType: "boolean",
34564
- defaultValue: false,
34564
+ defaultValue: true,
34565
34565
  envVar: "AGT_COMPACTION_NOTICE_ENABLED"
34566
34566
  },
34567
34567
  {
@@ -34735,6 +34735,21 @@ var FLAG_REGISTRY = [
34735
34735
  // AGT_CONV_EVAL_BACKEND keeps that value until the env var is retired.
34736
34736
  envVar: "AGT_CONV_EVAL_BACKEND"
34737
34737
  },
34738
+ {
34739
+ key: "synthetic-probe-enabled",
34740
+ description: 'Global gate for the agent synthetic-liveness cron (ENG-8074). When OFF, the cron exits after reading the flag \u2014 no probes sent, no metrics emitted, no CloudWatch alarms fired, near-zero DB footprint. Ships dark (OFF) because the probe cron was generating false positives (probe_timeout on angie for 7+ days while healthy, ENG-8048) and had open cron_invocation_errors alarms (since 2026-07-23). Flip ON per-environment via the admin Feature Flags page once the reliability issues are resolved. The existing AUGMENTED_SYNTHETIC_PROBE_ENABLED env var is the declared envVar for this flag (ADR-0022): set it to "true"/"1" to force-enable (env takes precedence over the DB stage value), or "false"/"0" to force-disable without a DB lookup. Evaluated as a global stage value by the central cron (no per-org targeting). Boolean gate.',
34741
+ flagType: "boolean",
34742
+ // Safe/dark default: false = probe off. This encodes the ENG-8074 intent (disable
34743
+ // in prod until reliability issues are resolved) and is the fail-safe direction for
34744
+ // a flag-DB read error — a hiccup degrades to keeping the cron dormant rather than
34745
+ // silently re-arming a broken probe fleet-wide.
34746
+ // The env var AUGMENTED_SYNTHETIC_PROBE_ENABLED was the pre-flag emergency kill switch
34747
+ // (read as `!== 'false'`, so unset = probe ON). The flag inverts this: unset env var
34748
+ // now resolves to the flag default (OFF). Set AUGMENTED_SYNTHETIC_PROBE_ENABLED=true to
34749
+ // explicitly re-arm the probe via env, or flip the flag ON from the admin UI.
34750
+ defaultValue: false,
34751
+ envVar: "AUGMENTED_SYNTHETIC_PROBE_ENABLED"
34752
+ },
34738
34753
  {
34739
34754
  key: "synthetic-probe-on-metered-hosts",
34740
34755
  description: "Synthetic liveness probing of OpenRouter-metered agents (ENG-7235). On a host whose claude_auth_mode='openrouter' every model call is per-token cost, so the hourly synthetic probe (a full inbound\u2192session\u2192model\u2192outbound round-trip whose only output is a probe_ack) is real spend for zero deliverable - unlike a Max-subscription host where it is effectively free. When OFF (default) the synthetic-probe cron skips OpenRouter-mode agents entirely; their liveness falls back to the zero-token signals (pane-activity ENG-5399 + manager heartbeat + inbound-loop liveness ENG-5614). When ON, metered agents are probed like every other agent (the pre-ENG-7235 behaviour) - the explicit opt-in for an operator who wants the end-to-end check and accepts the cost. Subscription / api_key hosts are unaffected either way. Evaluated as a global stage value by the central cron (no per-org targeting in v1). Boolean gate.",
@@ -36,7 +36,7 @@ import {
36
36
  writeDirectChatSessionState,
37
37
  writeEgressAllowlist,
38
38
  writePersistentClaudeWrapper
39
- } from "./chunk-I5SDCW2T.js";
39
+ } from "./chunk-IE7ZJKF3.js";
40
40
  import "./chunk-XWVM4KPK.js";
41
41
  export {
42
42
  EGRESS_BASELINE_DOMAINS,
@@ -77,4 +77,4 @@ export {
77
77
  writeEgressAllowlist,
78
78
  writePersistentClaudeWrapper
79
79
  };
80
- //# sourceMappingURL=persistent-session-EW7GTES3.js.map
80
+ //# sourceMappingURL=persistent-session-B7E5ZX2C.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  paneLogPath
3
- } from "./chunk-I5SDCW2T.js";
3
+ } from "./chunk-IE7ZJKF3.js";
4
4
  import "./chunk-XWVM4KPK.js";
5
5
 
6
6
  // src/lib/responsiveness-probe.ts
@@ -462,4 +462,4 @@ export {
462
462
  readAndResetSlackReplyBindingClassifications,
463
463
  readAndResetSlackReplyTargetClassifications
464
464
  };
465
- //# sourceMappingURL=responsiveness-probe-HP3NKDGQ.js.map
465
+ //# sourceMappingURL=responsiveness-probe-NQIEWYTJ.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@integrity-labs/agt-cli",
3
- "version": "0.28.417",
3
+ "version": "0.28.418",
4
4
  "description": "Augmented Team CLI — agent provisioning and management",
5
5
  "type": "module",
6
6
  "engines": {