@integrity-labs/agt-cli 0.28.343 → 0.28.345

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.
@@ -39573,15 +39573,20 @@ var FRESH_HEARTBEAT_THRESHOLD_MS = 2 * 60 * 1e3;
39573
39573
  // ../core/dist/claude-code-usage/banner-parser.js
39574
39574
  var SEP = /[\s·\-–—]+/.source;
39575
39575
  var SUBJECT = /(?:You(?:['’]ve|\s+have)?\s+)?/.source;
39576
- var RESET_DATE = /[A-Za-z]{3,9}\s+\d{1,2}(?:\s*,\s*\d{1,2}(?::\d{2})?\s*(?:am|pm)(?:\s*\(?UTC\)?)?)?/.source;
39576
+ var TIME_OF_DAY = /\d{1,2}(?::\d{2})?\s*(?:am|pm)(?:\s*\(?UTC\)?)?/.source;
39577
+ var RESET_DATE = `(?:[A-Za-z]{3,9}\\s+\\d{1,2}(?:\\s*,\\s*${TIME_OF_DAY})?|${TIME_OF_DAY})`;
39577
39578
  var BANNER_PATTERNS = [
39578
39579
  // Percentage form — pct in group 1, reset in group 2.
39579
39580
  new RegExp(`${SUBJECT}used\\s+(\\d{1,3})%\\s+of\\s+your\\s+weekly\\s+limit${SEP}resets\\s+(${RESET_DATE})`, "i"),
39580
- // Saturated form (ENG-5434) — no pct, reset in group 1. Wrapped to keep
39581
- // the per-pattern shape consistent with the percentage form: the parser
39582
- // checks group 1 for a digit string and treats a missing one as pct=100.
39583
- new RegExp(`${SUBJECT}hit\\s+your\\s+limit${SEP}resets\\s+(${RESET_DATE})`, "i")
39581
+ // Saturated form (ENG-5434, extended by ENG-7904) — no pct, reset in group 1.
39582
+ // An optional qualifier word ("weekly", "5-hour", …) may sit between "your"
39583
+ // and "limit"; matching it keeps the parser resilient to CC's phrasing drift.
39584
+ // Wrapped to keep the per-pattern shape consistent with the percentage form:
39585
+ // the parser checks group 1 for a digit string and treats a missing one as
39586
+ // pct=100.
39587
+ new RegExp(`${SUBJECT}hit\\s+your\\s+(?:[a-z0-9-]+\\s+)?limit${SEP}resets\\s+(${RESET_DATE})`, "i")
39584
39588
  ];
39589
+ var MS_PER_DAY = 24 * 60 * 60 * 1e3;
39585
39590
 
39586
39591
  // ../core/dist/kanban/state-machine.js
39587
39592
  var KANBAN_STATUSES = [
@@ -40489,6 +40494,18 @@ var FLAG_REGISTRY = [
40489
40494
  // flipping it on is worth an explicit confirm (ADR-0022 §4).
40490
40495
  sensitive: true
40491
40496
  },
40497
+ {
40498
+ key: "email-guard-enforce-enabled",
40499
+ description: "Platform enable-gate for the email-domain guardrail ENFORCE stage (ENG-5827 / A5, migrated to a flag under ENG-7899 / ADR-0022). When ON for an org, an org (or scope) at email_guard_stage=enforce actually BLOCKS sends to non-allowed domains: the rollout UI unlocks the Enforce option and PUT /email-guard accepts enforce. When OFF (default) a per-org enforce stage degrades to observe-only (would_block, never blocks) and the UI shows Enforce as not yet available. Ungates a control that blocks real customer email, so flip on per org only once block-spike alerting (ENG-5847) is firing. Evaluated per-org. Operator override: env EMAIL_DOMAIN_ENFORCE_ENABLED (an explicitly-set value wins over the flag; highest precedence per host). Ships dark.",
40500
+ flagType: "boolean",
40501
+ // Declared safe value is `false` (enforce degrades to observe-only = today's behaviour).
40502
+ // A flag-DB read error degrades here, so a flags outage can never silently start blocking
40503
+ // real email - the fail-closed direction for a blocking compliance control.
40504
+ defaultValue: false,
40505
+ // Flipping it on ARMS a control that blocks real customer email, so it is a
40506
+ // deliberate, audited per-org flip (ADR-0022 §4).
40507
+ sensitive: true
40508
+ },
40492
40509
  {
40493
40510
  key: "slack-reply-binding",
40494
40511
  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.",