@integrity-labs/agt-cli 0.22.5 → 0.23.0

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
@@ -26,7 +26,7 @@ import {
26
26
  success,
27
27
  table,
28
28
  warn
29
- } from "../chunk-P2KDZABK.js";
29
+ } from "../chunk-CMG5AKXB.js";
30
30
  import {
31
31
  CHANNEL_REGISTRY,
32
32
  DEPLOYMENT_TEMPLATES,
@@ -52,7 +52,7 @@ import {
52
52
  renderTemplate,
53
53
  resolveChannels,
54
54
  serializeManifestForSlackCli
55
- } from "../chunk-E56L56ER.js";
55
+ } from "../chunk-2TOCO5D2.js";
56
56
 
57
57
  // src/bin/agt.ts
58
58
  import { join as join10 } from "path";
@@ -3736,7 +3736,7 @@ import { execFileSync, execSync } from "child_process";
3736
3736
  import { existsSync as existsSync5, realpathSync } from "fs";
3737
3737
  import chalk17 from "chalk";
3738
3738
  import ora15 from "ora";
3739
- var cliVersion = true ? "0.22.5" : "dev";
3739
+ var cliVersion = true ? "0.23.0" : "dev";
3740
3740
  async function fetchLatestVersion() {
3741
3741
  const host2 = getHost();
3742
3742
  if (!host2) return null;
@@ -4268,7 +4268,7 @@ function handleError(err) {
4268
4268
  }
4269
4269
 
4270
4270
  // src/bin/agt.ts
4271
- var cliVersion2 = true ? "0.22.5" : "dev";
4271
+ var cliVersion2 = true ? "0.23.0" : "dev";
4272
4272
  var program = new Command();
4273
4273
  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");
4274
4274
  program.hook("preAction", (thisCommand) => {
@@ -1002,6 +1002,9 @@ function looksLikeNotesOnly(remainder) {
1002
1002
  // ../../packages/core/dist/loops/kanban-loop.js
1003
1003
  var KANBAN_LOOP_COMMAND = "/loop 5m kanban_list \u2014 follow Kanban Work Policy.";
1004
1004
 
1005
+ // ../../packages/core/dist/loops/kanban-check.js
1006
+ var KANBAN_CHECK_COMMAND = "kanban_list \u2014 pick up any actionable items if you are free.";
1007
+
1005
1008
  // ../../packages/core/dist/types/models.js
1006
1009
  var DEFAULT_MODELS = {
1007
1010
  primary: "openrouter/anthropic/claude-opus-4-6",
@@ -3058,18 +3061,35 @@ function detectDrift(snapshot, liveState, agentId, codeName, riskTier) {
3058
3061
  var FRESH_HEARTBEAT_THRESHOLD_MS = 2 * 60 * 1e3;
3059
3062
 
3060
3063
  // ../../packages/core/dist/claude-code-usage/banner-parser.js
3064
+ var SEP = /[\s·\-–—]+/.source;
3065
+ var SUBJECT = /(?:You(?:['’]ve|\s+have)?\s+)?/.source;
3066
+ 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;
3061
3067
  var BANNER_PATTERNS = [
3062
- /(?:You(?:['’]ve|\s+have)?\s+)?used\s+(\d{1,3})%\s+of\s+your\s+weekly\s+limit[\s·\-–—]+resets\s+([A-Za-z]{3,9}\s+\d{1,2})/i
3068
+ // Percentage form — pct in group 1, reset in group 2.
3069
+ new RegExp(`${SUBJECT}used\\s+(\\d{1,3})%\\s+of\\s+your\\s+weekly\\s+limit${SEP}resets\\s+(${RESET_DATE})`, "i"),
3070
+ // Saturated form (ENG-5434) — no pct, reset in group 1. Wrapped to keep
3071
+ // the per-pattern shape consistent with the percentage form: the parser
3072
+ // checks group 1 for a digit string and treats a missing one as pct=100.
3073
+ new RegExp(`${SUBJECT}hit\\s+your\\s+limit${SEP}resets\\s+(${RESET_DATE})`, "i")
3063
3074
  ];
3064
3075
  function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
3065
- for (const pattern of BANNER_PATTERNS) {
3076
+ for (let i = 0; i < BANNER_PATTERNS.length; i++) {
3077
+ const pattern = BANNER_PATTERNS[i];
3066
3078
  const match = pattern.exec(text);
3067
3079
  if (!match)
3068
3080
  continue;
3069
- const pct = Number.parseInt(match[1], 10);
3081
+ let pct;
3082
+ let resetStr;
3083
+ if (i === 0) {
3084
+ pct = Number.parseInt(match[1], 10);
3085
+ resetStr = match[2];
3086
+ } else {
3087
+ pct = 100;
3088
+ resetStr = match[1];
3089
+ }
3070
3090
  if (!Number.isFinite(pct) || pct < 0 || pct > 100)
3071
3091
  continue;
3072
- const weekResetsAt = parseResetDate(match[2], now);
3092
+ const weekResetsAt = parseResetDateTime(resetStr, now);
3073
3093
  if (!weekResetsAt)
3074
3094
  continue;
3075
3095
  return { pct, weekResetsAt };
@@ -3090,8 +3110,12 @@ var MONTHS = [
3090
3110
  "nov",
3091
3111
  "dec"
3092
3112
  ];
3093
- function parseResetDate(humanDate, now) {
3094
- const parts = humanDate.trim().split(/\s+/);
3113
+ var TIME_TAIL = /,\s*(\d{1,2})(?::(\d{2}))?\s*(am|pm)(?:\s*\(?UTC\)?)?\s*$/i;
3114
+ function parseResetDateTime(humanDate, now) {
3115
+ const trimmed = humanDate.trim();
3116
+ const timeMatch = trimmed.match(TIME_TAIL);
3117
+ const dateOnly = timeMatch ? trimmed.slice(0, timeMatch.index).trim() : trimmed;
3118
+ const parts = dateOnly.split(/\s+/);
3095
3119
  if (parts.length !== 2)
3096
3120
  return null;
3097
3121
  const month = MONTHS.indexOf(parts[0].slice(0, 3).toLowerCase());
@@ -3100,10 +3124,24 @@ function parseResetDate(humanDate, now) {
3100
3124
  const day = Number.parseInt(parts[1], 10);
3101
3125
  if (!Number.isFinite(day) || day < 1 || day > 31)
3102
3126
  return null;
3127
+ let hour = 0;
3128
+ let minute = 0;
3129
+ if (timeMatch) {
3130
+ const rawHour = Number.parseInt(timeMatch[1], 10);
3131
+ if (!Number.isFinite(rawHour) || rawHour < 1 || rawHour > 12)
3132
+ return null;
3133
+ if (timeMatch[2]) {
3134
+ minute = Number.parseInt(timeMatch[2], 10);
3135
+ if (!Number.isFinite(minute) || minute < 0 || minute > 59)
3136
+ return null;
3137
+ }
3138
+ const isPm = timeMatch[3].toLowerCase() === "pm";
3139
+ hour = rawHour % 12 + (isPm ? 12 : 0);
3140
+ }
3103
3141
  const year = now.getUTCFullYear();
3104
- const candidate = new Date(Date.UTC(year, month, day));
3142
+ const candidate = new Date(Date.UTC(year, month, day, hour, minute));
3105
3143
  if (candidate.getTime() < now.getTime() - 24 * 60 * 60 * 1e3) {
3106
- return new Date(Date.UTC(year + 1, month, day));
3144
+ return new Date(Date.UTC(year + 1, month, day, hour, minute));
3107
3145
  }
3108
3146
  return candidate;
3109
3147
  }
@@ -3146,6 +3184,7 @@ export {
3146
3184
  detectDrift,
3147
3185
  classifyOutput,
3148
3186
  parseUsageBanner,
3149
- KANBAN_LOOP_COMMAND
3187
+ KANBAN_LOOP_COMMAND,
3188
+ KANBAN_CHECK_COMMAND
3150
3189
  };
3151
- //# sourceMappingURL=chunk-E56L56ER.js.map
3190
+ //# sourceMappingURL=chunk-2TOCO5D2.js.map