@integrity-labs/agt-cli 0.28.337 → 0.28.339

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin/agt.js CHANGED
@@ -40,7 +40,7 @@ import {
40
40
  success,
41
41
  table,
42
42
  warn
43
- } from "../chunk-N7XPDFCW.js";
43
+ } from "../chunk-UVMGRGRO.js";
44
44
  import {
45
45
  AnchorSessionClient,
46
46
  CHANNEL_REGISTRY,
@@ -70,7 +70,7 @@ import {
70
70
  renderTemplate,
71
71
  resolveChannels,
72
72
  serializeManifestForSlackCli
73
- } from "../chunk-J2WYEOBH.js";
73
+ } from "../chunk-J6QDPXGS.js";
74
74
  import "../chunk-XWVM4KPK.js";
75
75
 
76
76
  // src/bin/agt.ts
@@ -4829,7 +4829,7 @@ import { execFileSync, execSync } from "child_process";
4829
4829
  import { existsSync as existsSync10, realpathSync as realpathSync2 } from "fs";
4830
4830
  import chalk18 from "chalk";
4831
4831
  import ora16 from "ora";
4832
- var cliVersion = true ? "0.28.337" : "dev";
4832
+ var cliVersion = true ? "0.28.339" : "dev";
4833
4833
  async function fetchLatestVersion() {
4834
4834
  const host2 = getHost();
4835
4835
  if (!host2) return null;
@@ -6001,7 +6001,7 @@ function handleError(err) {
6001
6001
  }
6002
6002
 
6003
6003
  // src/bin/agt.ts
6004
- var cliVersion2 = true ? "0.28.337" : "dev";
6004
+ var cliVersion2 = true ? "0.28.339" : "dev";
6005
6005
  var program = new Command();
6006
6006
  program.name("agt").description("Augmented CLI \u2014 agent provisioning and management").version(cliVersion2).option("--json", "Emit machine-readable JSON output (suppress spinners and colors)").option("--skip-update-check", "Skip the automatic update check on startup");
6007
6007
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -7791,6 +7791,24 @@ var FLAG_REGISTRY = [
7791
7791
  // change (ADR-0022 sensitive-flag confirm).
7792
7792
  sensitive: true
7793
7793
  },
7794
+ {
7795
+ key: "slack-hot-thread-guard",
7796
+ description: "Server-side hot-thread guard on the slack.reply surface (ENG-7462). Prevents an agent posting a NEW top-level Slack message when it meant to reply inside the thread it is already working in - a prompt/memory rule proved insufficient (the agent had the rule and still slipped). When a reply would otherwise post to channel ROOT (no thread_ts / message_ts / inbound_id, no active kanban card) and the agent has a recent active thread in that channel (its last bot-posted thread, from the persisted trackedThreads cache, within a freshness window), the reply is redirected into that thread. proactive:true no longer implies channel root; posting at root becomes a deliberate action (the to_channel_root flag, or the thread_ts:null sentinel). off = guard never runs, replies with no coords root exactly as today (ships dark). shadow = compute + log the would-redirect but STILL post to root (measure the fire rate before acting). enforce = apply the redirect (a soft-block: redirect + inform, never a hard rejection). Read live from the heartbeat flags-cache (or the env override); enforce is a deliberate per-org flip after a shadow soak.",
7797
+ flagType: "enum",
7798
+ allowedValues: ["off", "shadow", "enforce"],
7799
+ // Ships dark: off preserves today's behaviour exactly (a coordless reply
7800
+ // roots). shadow is a free local log line (no model spend, unlike ghost-reply)
7801
+ // so it is a cheap opt-in soak; enforce changes where a reply lands, so it is
7802
+ // the audited flip.
7803
+ defaultValue: "off",
7804
+ // Enum override AGT_SLACK_HOT_THREAD_GUARD_MODE (off|shadow|enforce),
7805
+ // resolved by resolveSlackHotThreadMode in the channel-server bundle.
7806
+ envVar: "AGT_SLACK_HOT_THREAD_GUARD_MODE",
7807
+ // enforce reroutes a message the agent asked to send to channel root into a
7808
+ // thread - a visible destination change, so flipping toward it is deliberate
7809
+ // (ADR-0022 sensitive-flag confirm).
7810
+ sensitive: true
7811
+ },
7794
7812
  {
7795
7813
  key: "compaction-notice",
7796
7814
  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.',
@@ -8101,6 +8119,18 @@ var FLAG_REGISTRY = [
8101
8119
  // egress + workflow change worth an explicit confirm.
8102
8120
  sensitive: true
8103
8121
  },
8122
+ {
8123
+ key: "email-guard-per-scope-stage",
8124
+ description: "Per-agent / per-team email-domain guardrail rollout stage (ENG-7830 / ADR-0048). When ON for an org, the effective email_guard_stage is resolved most-specific-non-null (agent ?? team ?? org, with time-boxed exemption decay), so one agent can run shadow while the org is enforce (and vice-versa). When OFF (default) the stage is org-grain only (pre-ENG-7830 behaviour) - the per-agent/team email_guard_stage columns are ignored. Gates the resolver seam (getEffectiveEmailGuardStage) and the owner/admin write routes. Evaluated per-org. Ships dark.",
8125
+ flagType: "boolean",
8126
+ // Declared safe value is `false` (org-only stage = today's behaviour). A flag-DB
8127
+ // read error degrades here, so the per-scope columns stay ignored and the org
8128
+ // policy governs - the fail-closed direction for a compliance control.
8129
+ defaultValue: false,
8130
+ // Enabling it lets a lower scope LOOSEN an email compliance control per-agent, so
8131
+ // flipping it on is worth an explicit confirm (ADR-0022 §4).
8132
+ sensitive: true
8133
+ },
8104
8134
  {
8105
8135
  key: "slack-reply-binding",
8106
8136
  description: "Slack reply-target binding (ENG-7396 / WS2, cross-thread reply routing): the model names which inbound it answers (inbound_id) and the server resolves the destination from its own verified record. shadow = classify + count only, routing unchanged; warn = same routing plus a tool-result note so the model self-corrects; enforce = route a bound reply to the registry thread and REJECT a reply whose target matches no inbound this process delivered. The channel server can't evaluate flags, so the manager materializes the resolved value into the AGT_SLACK_REPLY_BINDING spawn env (the operator/canary override, ADR-0022). Ships shadow.",
@@ -10011,6 +10041,7 @@ export {
10011
10041
  normalizeFlagValue,
10012
10042
  coerceEnvValue,
10013
10043
  FLAGS_SCHEMA_VERSION,
10044
+ LATE_BOUND_VARS,
10014
10045
  expandTemplateVars,
10015
10046
  parseEnvIntegrations,
10016
10047
  sessionTranscriptDir,
@@ -10061,4 +10092,4 @@ export {
10061
10092
  stopAllSessionsAndWait,
10062
10093
  getProjectDir
10063
10094
  };
10064
- //# sourceMappingURL=chunk-J2WYEOBH.js.map
10095
+ //# sourceMappingURL=chunk-J6QDPXGS.js.map