@integrity-labs/agt-cli 0.28.328 → 0.28.330

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.
@@ -7760,6 +7760,16 @@ var FLAG_REGISTRY = [
7760
7760
  // canary is a high-blast-radius change worth an explicit confirm.
7761
7761
  sensitive: true
7762
7762
  },
7763
+ {
7764
+ key: "direct-chat-recovery",
7765
+ description: "Always-on direct-chat ghost-reply recovery (ENG-7814, ENG-6722 slice E). direct-chat has no recovery-outbox by default: block-turn-end (channel-block-turn-end) only makes the MODEL re-send and is dark/canary, so a direct-chat turn answered as plain text with no direct_chat.reply is lost. When ON, the ghost-reply Stop hook, for an owed and unanswered direct-chat inbound where block-turn-end did not fire, writes the last assistant text to a direct-chat-recovery-outbox that the direct-chat MCP consumes and POSTs to /host/direct-chat/reply for the session, re-sending the reply the agent produced but never delivered. session_id is unambiguous (one session per marker), so there is no cross-thread mis-correlation risk (why direct-chat can safely re-send where Slack needs the ENG-7806 ledger). Confirm-before-clear: the pending marker is cleared only after the POST confirms; a per-marker recovery ledger caps one in-flight recovery per inbound and re-arms on failure. Independent of channel-block-turn-end (either can be on). The env var AGT_DIRECT_CHAT_RECOVERY_ENABLED is the operator/host override the bash hook reads directly (materialized by the manager) and the MCP resolves via the flags cache. Boolean gate; ships dark, flip per host/org to canary before fleet rollout.",
7766
+ flagType: "boolean",
7767
+ defaultValue: false,
7768
+ envVar: "AGT_DIRECT_CHAT_RECOVERY_ENABLED",
7769
+ // Re-sends a reply on the agent behalf (a customer-visible send); flipping it
7770
+ // beyond a canary is a blast-radius change worth an explicit confirm.
7771
+ sensitive: true
7772
+ },
7763
7773
  {
7764
7774
  key: "ghost-reply-intent-classifier",
7765
7775
  description: `Intentional-non-reply suppression on the ghost-reply RECOVERY path (ENG-7096, ENG-7478). The recovery-outbox consumer in the channel MCP only ever fires for turns where the agent ended with text but did NOT call the matching reply tool for that conversation - a set that includes DELIBERATE non-replies and internal third-person self-status narration ("Filed CS-1443... standing by"). A cheap model (the conversation-eval backend, AGT_CONV_EVAL_*) classifies the recovered text as a real message for the user (deliver) or internal not-replying / self-status narration (suppress), keyed on grammatical person, biased to DELIVER and fail-open (a classifier outage degrades to today's behaviour, never a dropped real reply). off = classifier never runs, every recovered reply is posted exactly as today (ships dark, == the old boolean-false). shadow = classify + log the would-suppress verdict for operator adjudication but STILL DELIVER (measure the suppression rate before acting). enforce = actually suppress on a clean high-confidence suppress verdict. The channel server reads this live from the heartbeat flags-cache (or the env override); enforce is a deliberate, audited per-org flip after a shadow soak.`,
@@ -10051,4 +10061,4 @@ export {
10051
10061
  stopAllSessionsAndWait,
10052
10062
  getProjectDir
10053
10063
  };
10054
- //# sourceMappingURL=chunk-GAWNDPGM.js.map
10064
+ //# sourceMappingURL=chunk-J2WYEOBH.js.map