@integrity-labs/agt-cli 0.28.922 → 0.28.923

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,12 +40,12 @@ import {
40
40
  success,
41
41
  table,
42
42
  warn
43
- } from "../chunk-JTWIYGY2.js";
43
+ } from "../chunk-D3DVYP4X.js";
44
44
  import {
45
45
  getProjectDir,
46
46
  isSessionResumeDisabled,
47
47
  readDirectChatSessionState
48
- } from "../chunk-NGJFE75J.js";
48
+ } from "../chunk-BLEV5PAO.js";
49
49
  import {
50
50
  AnchorSessionClient,
51
51
  CHANNEL_REGISTRY,
@@ -79,7 +79,7 @@ import {
79
79
  serializeManifestForSlackCli,
80
80
  sessionFileExists,
81
81
  sessionTranscriptDir
82
- } from "../chunk-ZOPP3ZC7.js";
82
+ } from "../chunk-VHO7KAB7.js";
83
83
  import "../chunk-XWVM4KPK.js";
84
84
 
85
85
  // src/bin/agt.ts
@@ -5467,7 +5467,7 @@ import { execFileSync, execSync } from "child_process";
5467
5467
  import { existsSync as existsSync11, realpathSync as realpathSync2 } from "fs";
5468
5468
  import chalk18 from "chalk";
5469
5469
  import ora16 from "ora";
5470
- var cliVersion = true ? "0.28.922" : "dev";
5470
+ var cliVersion = true ? "0.28.923" : "dev";
5471
5471
  async function fetchLatestVersion() {
5472
5472
  const host2 = getHost();
5473
5473
  if (!host2) return null;
@@ -6682,7 +6682,7 @@ function handleError(err) {
6682
6682
  }
6683
6683
 
6684
6684
  // src/bin/agt.ts
6685
- var cliVersion2 = true ? "0.28.922" : "dev";
6685
+ var cliVersion2 = true ? "0.28.923" : "dev";
6686
6686
  var program = new Command();
6687
6687
  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");
6688
6688
  program.hook("preAction", async (thisCommand, actionCommand) => {
@@ -19,7 +19,7 @@ import {
19
19
  rotateDailySession,
20
20
  sessionFileExists,
21
21
  todayLocalIso
22
- } from "./chunk-ZOPP3ZC7.js";
22
+ } from "./chunk-VHO7KAB7.js";
23
23
  import {
24
24
  reapOrphanChannelMcps
25
25
  } from "./chunk-XWVM4KPK.js";
@@ -5730,4 +5730,4 @@ export {
5730
5730
  stopAllSessionsAndWait,
5731
5731
  getProjectDir
5732
5732
  };
5733
- //# sourceMappingURL=chunk-NGJFE75J.js.map
5733
+ //# sourceMappingURL=chunk-BLEV5PAO.js.map
@@ -16,7 +16,7 @@ import {
16
16
  parseEnvIntegrations,
17
17
  shellQuote,
18
18
  summarizeUnanswerablePane
19
- } from "./chunk-NGJFE75J.js";
19
+ } from "./chunk-BLEV5PAO.js";
20
20
  import {
21
21
  BIND_FAILURE_QUARANTINE_THRESHOLD,
22
22
  INTEGRATIONS_SECTION_END,
@@ -76,7 +76,7 @@ import {
76
76
  sessionTranscriptDir,
77
77
  worseConnectivityOutcome,
78
78
  wrapScheduledTaskPrompt
79
- } from "./chunk-ZOPP3ZC7.js";
79
+ } from "./chunk-VHO7KAB7.js";
80
80
  import {
81
81
  parsePsRows
82
82
  } from "./chunk-XWVM4KPK.js";
@@ -6942,7 +6942,7 @@ function exchangeFailureKind(err) {
6942
6942
  }
6943
6943
 
6944
6944
  // src/lib/api-client.ts
6945
- var agtCliVersion = true ? "0.28.922" : "dev";
6945
+ var agtCliVersion = true ? "0.28.923" : "dev";
6946
6946
  var lastConfigHash = null;
6947
6947
  function setConfigHash(hash) {
6948
6948
  lastConfigHash = hash && hash.length > 0 ? hash : null;
@@ -11552,4 +11552,4 @@ export {
11552
11552
  managerInstallSystemUnitCommand,
11553
11553
  managerUninstallSystemUnitCommand
11554
11554
  };
11555
- //# sourceMappingURL=chunk-JTWIYGY2.js.map
11555
+ //# sourceMappingURL=chunk-D3DVYP4X.js.map
@@ -12896,13 +12896,16 @@ function parseResetDateTime(humanDate, now) {
12896
12896
 
12897
12897
  // ../../packages/core/dist/claude-code-usage/banner-parser.js
12898
12898
  var SESSION_QUALIFIER = /^(?:session|\d{1,2}\s*-?\s*hours?|\d{1,2}h)$/i;
12899
- var SPEND_QUALIFIER = /^(?:individual\s+)?spend$/i;
12899
+ var SPEND_QUALIFIER = /^(?:individual\s+)?(?:(?:daily|weekly|monthly)\s+)?spend$/i;
12900
+ var ORG_SPEND_QUALIFIER = /^(?:your\s+)?(?:org|organi[sz]ation|team|workspace)['’]s\s+(?:(?:daily|weekly|monthly)\s+)?spend$/i;
12900
12901
  function classifyLimitScope(qualifier) {
12901
12902
  const q = (qualifier ?? "").trim();
12902
12903
  if (!q)
12903
12904
  return "weekly";
12904
12905
  if (SESSION_QUALIFIER.test(q))
12905
12906
  return "session";
12907
+ if (ORG_SPEND_QUALIFIER.test(q))
12908
+ return "org_spend";
12906
12909
  if (SPEND_QUALIFIER.test(q))
12907
12910
  return "spend";
12908
12911
  if (/^weekly$/i.test(q))
@@ -12939,7 +12942,13 @@ var BANNER_PATTERNS = [
12939
12942
  // "limit". This parser runs over agent-produced pane.log tails, so that is
12940
12943
  // reachable input. Requiring at least one separator per extra token, and
12941
12944
  // bounding the count, keeps it linear.
12942
- `${SUBJECT}hit\\s+your\\s+(?<qualifier>[a-z0-9]+(?:[\\s-]+[a-z0-9]+){0,3}\\s+)?limit${SEP}resets\\s+(?<reset>${RESET_DATE})`,
12945
+ //
12946
+ // ENG-10474: the token class admits an apostrophe (both ' and ’). It was
12947
+ // `[a-z0-9]`, so ANY possessive qualifier ("org's monthly", "team's") made
12948
+ // the whole banner unmatchable, not merely unclassified: null, no
12949
+ // observation, no alert. The apostrophe cannot match empty, so the
12950
+ // at-least-one-separator shape above still keeps this linear.
12951
+ `${SUBJECT}hit\\s+your\\s+(?<qualifier>[a-z0-9'\u2019]+(?:[\\s-]+[a-z0-9'\u2019]+){0,3}\\s+)?limit${SEP}resets\\s+(?<reset>${RESET_DATE})`,
12943
12952
  "i"
12944
12953
  ),
12945
12954
  // ENG-10365 — the Claude Team seat's INDIVIDUAL SPEND LIMIT.
@@ -12992,7 +13001,23 @@ var BANNER_PATTERNS = [
12992
13001
  // monitor's auto-close, and synthesising an instant we never read is the exact
12993
13002
  // confident-and-false reporting ENG-8901 exists to stop. Every spend banner
12994
13003
  // observed so far carries one.
12995
- new RegExp(`${SUBJECT}hit\\s+your\\s+(?<qualifier>(?:individual\\s+)?spend)\\s+limit[\\s\\S]{0,160}?resets\\s+(?<reset>${RESET_DATE})`, "i")
13004
+ //
13005
+ // ENG-10474 — THE CAPTURE NO LONGER GATES THE CLASSIFIER. It admitted exactly
13006
+ // `spend` or `individual spend`, so "You've hit your org's monthly spend
13007
+ // limit" failed here as well as in both patterns above and alyve's agents went
13008
+ // dark with every platform signal green. The capture now takes up to three
13009
+ // qualifier tokens (apostrophes allowed) in front of `spend`, and
13010
+ // `classifyLimitScope` decides what they mean, which is how pattern 2 already
13011
+ // worked.
13012
+ //
13013
+ // `spend` STAYS THE ANCHOR, and that is the design decision. Making this
13014
+ // capture as open as pattern 2's would turn it into "any saturated banner with
13015
+ // up to 160 characters before `resets`", so "You've hit your weekly limit"
13016
+ // followed by pane prose and an unrelated "resets Nov 28" would start
13017
+ // producing observations — the false-pairing surface the 160-character bound
13018
+ // exists to fence. Pattern 2 keeps its adjacency rule for every non-spend
13019
+ // qualifier; this pattern only widens WHICH spend. Pinned by a test either way.
13020
+ new RegExp(`${SUBJECT}hit\\s+your\\s+(?<qualifier>(?:[a-z0-9'\u2019]+[\\s-]+){0,3}spend)\\s+limit[\\s\\S]{0,160}?resets\\s+(?<reset>${RESET_DATE})`, "i")
12996
13021
  ];
12997
13022
  function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
12998
13023
  let bestIndex = -1;
@@ -14544,4 +14569,4 @@ export {
14544
14569
  peekCurrentSession,
14545
14570
  readDailySessionPin
14546
14571
  };
14547
- //# sourceMappingURL=chunk-ZOPP3ZC7.js.map
14572
+ //# sourceMappingURL=chunk-VHO7KAB7.js.map