@integrity-labs/agt-cli 0.22.6 → 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 +4 -4
- package/dist/{chunk-E56L56ER.js → chunk-2TOCO5D2.js} +49 -10
- package/dist/chunk-2TOCO5D2.js.map +1 -0
- package/dist/{chunk-Y2XFZBEE.js → chunk-CMG5AKXB.js} +2 -2
- package/dist/{chunk-XNO35ZAN.js → chunk-GAN6DZ72.js} +44 -2
- package/dist/chunk-GAN6DZ72.js.map +1 -0
- package/dist/{claude-pair-runtime-4PKORH32.js → claude-pair-runtime-XZX4KOI3.js} +2 -2
- package/dist/lib/manager-worker.js +121 -9
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/{persistent-session-WGHWG5XS.js → persistent-session-OZWBRDFQ.js} +9 -3
- package/dist/{responsiveness-probe-SEK5X5VL.js → responsiveness-probe-MLBXIDVO.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-E56L56ER.js.map +0 -1
- package/dist/chunk-XNO35ZAN.js.map +0 -1
- /package/dist/{chunk-Y2XFZBEE.js.map → chunk-CMG5AKXB.js.map} +0 -0
- /package/dist/{claude-pair-runtime-4PKORH32.js.map → claude-pair-runtime-XZX4KOI3.js.map} +0 -0
- /package/dist/{persistent-session-WGHWG5XS.js.map → persistent-session-OZWBRDFQ.js.map} +0 -0
- /package/dist/{responsiveness-probe-SEK5X5VL.js.map → responsiveness-probe-MLBXIDVO.js.map} +0 -0
package/dist/bin/agt.js
CHANGED
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
success,
|
|
27
27
|
table,
|
|
28
28
|
warn
|
|
29
|
-
} from "../chunk-
|
|
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-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
3094
|
-
|
|
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-
|
|
3190
|
+
//# sourceMappingURL=chunk-2TOCO5D2.js.map
|