@integrity-labs/agt-cli 0.28.613 → 0.28.614
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 +5 -5
- package/dist/{chunk-JRL7754L.js → chunk-6SJJM4FT.js} +2 -2
- package/dist/{chunk-D7EV77TB.js → chunk-IDWOHBI3.js} +4 -4
- package/dist/{chunk-ZQXXK7JC.js → chunk-TYVQNCBU.js} +51 -8
- package/dist/{chunk-ZQXXK7JC.js.map → chunk-TYVQNCBU.js.map} +1 -1
- package/dist/{claude-pair-runtime-3UQ63455.js → claude-pair-runtime-QCL2TB6N.js} +2 -2
- package/dist/lib/manager-worker.js +18 -13
- package/dist/lib/manager-worker.js.map +1 -1
- package/dist/mcp/direct-chat-channel.js +50 -7
- package/dist/mcp/origami.js +21 -1
- package/dist/mcp/slack-channel.js +50 -7
- package/dist/mcp/telegram-channel.js +50 -7
- package/dist/{persistent-session-U7PE7ZDB.js → persistent-session-GM3EH2ZU.js} +3 -3
- package/dist/{responsiveness-probe-K6DGNTXA.js → responsiveness-probe-VSSJC3MN.js} +3 -3
- package/dist/{session-auth-dead-RPMWBVBH.js → session-auth-dead-KOKVXPPQ.js} +2 -2
- package/package.json +1 -1
- /package/dist/{chunk-JRL7754L.js.map → chunk-6SJJM4FT.js.map} +0 -0
- /package/dist/{chunk-D7EV77TB.js.map → chunk-IDWOHBI3.js.map} +0 -0
- /package/dist/{claude-pair-runtime-3UQ63455.js.map → claude-pair-runtime-QCL2TB6N.js.map} +0 -0
- /package/dist/{persistent-session-U7PE7ZDB.js.map → persistent-session-GM3EH2ZU.js.map} +0 -0
- /package/dist/{responsiveness-probe-K6DGNTXA.js.map → responsiveness-probe-VSSJC3MN.js.map} +0 -0
- /package/dist/{session-auth-dead-RPMWBVBH.js.map → session-auth-dead-KOKVXPPQ.js.map} +0 -0
|
@@ -34089,6 +34089,17 @@ var CONDITIONAL_DELIVERY_BODY = [
|
|
|
34089
34089
|
var FRESH_HEARTBEAT_THRESHOLD_MS = 2 * 60 * 1e3;
|
|
34090
34090
|
|
|
34091
34091
|
// ../core/dist/claude-code-usage/banner-parser.js
|
|
34092
|
+
var SESSION_QUALIFIER = /^(?:session|\d{1,2}\s*-?\s*hours?|\d{1,2}h)$/i;
|
|
34093
|
+
function classifyLimitScope(qualifier) {
|
|
34094
|
+
const q = (qualifier ?? "").trim();
|
|
34095
|
+
if (!q)
|
|
34096
|
+
return "weekly";
|
|
34097
|
+
if (SESSION_QUALIFIER.test(q))
|
|
34098
|
+
return "session";
|
|
34099
|
+
if (/^weekly$/i.test(q))
|
|
34100
|
+
return "weekly";
|
|
34101
|
+
return "unknown";
|
|
34102
|
+
}
|
|
34092
34103
|
var SEP = /[\s·\-–—]+/.source;
|
|
34093
34104
|
var SUBJECT = /(?:You(?:['’]ve|\s+have)?\s+)?/.source;
|
|
34094
34105
|
var TIME_OF_DAY = /\d{1,2}(?::\d{2})?\s*(?:am|pm)(?:\s*\(?UTC\)?)?/.source;
|
|
@@ -34102,7 +34113,27 @@ var BANNER_PATTERNS = [
|
|
|
34102
34113
|
// Wrapped to keep the per-pattern shape consistent with the percentage form:
|
|
34103
34114
|
// the parser checks group 1 for a digit string and treats a missing one as
|
|
34104
34115
|
// pct=100.
|
|
34105
|
-
|
|
34116
|
+
// ENG-9007: the qualifier is CAPTURED now, by name. It used to be
|
|
34117
|
+
// `(?:[a-z0-9-]+\s+)?` - permissive and non-capturing - so the parser
|
|
34118
|
+
// recognised "session" and "5-hour", matched on them, and threw the word away.
|
|
34119
|
+
// Named groups keep the numbered capture indices stable for the percentage
|
|
34120
|
+
// form above, which still reads groups 1 and 2 positionally.
|
|
34121
|
+
new RegExp(
|
|
34122
|
+
// CodeRabbit on #4621: the qualifier was ONE token, so `classifyLimitScope`
|
|
34123
|
+
// accepted "5 hours" while this pattern could never deliver it — the whole
|
|
34124
|
+
// banner failed to match, no observation was recorded, and the agent went
|
|
34125
|
+
// dark rather than merely being misclassified. Multi-token qualifiers now
|
|
34126
|
+
// match the duration shapes SESSION_QUALIFIER already accepts.
|
|
34127
|
+
//
|
|
34128
|
+
// Deliberately NOT the naive `[a-z0-9]+(?:\s*-?\s*[a-z0-9]+)*`: the
|
|
34129
|
+
// separator there can match empty, which reduces to `(a+)+` and backtracks
|
|
34130
|
+
// catastrophically on a long alphanumeric run that is never followed by
|
|
34131
|
+
// "limit". This parser runs over agent-produced pane.log tails, so that is
|
|
34132
|
+
// reachable input. Requiring at least one separator per extra token, and
|
|
34133
|
+
// bounding the count, keeps it linear.
|
|
34134
|
+
`${SUBJECT}hit\\s+your\\s+(?<qualifier>[a-z0-9]+(?:[\\s-]+[a-z0-9]+){0,3}\\s+)?limit${SEP}resets\\s+(?<reset>${RESET_DATE})`,
|
|
34135
|
+
"i"
|
|
34136
|
+
)
|
|
34106
34137
|
];
|
|
34107
34138
|
function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
|
|
34108
34139
|
let bestIndex = -1;
|
|
@@ -34115,24 +34146,33 @@ function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
|
|
|
34115
34146
|
pattern.lastIndex++;
|
|
34116
34147
|
let pct;
|
|
34117
34148
|
let resetStr;
|
|
34149
|
+
let qualifier;
|
|
34118
34150
|
if (i === 0) {
|
|
34119
34151
|
pct = Number.parseInt(match[1], 10);
|
|
34120
34152
|
resetStr = match[2];
|
|
34153
|
+
qualifier = "weekly";
|
|
34121
34154
|
} else {
|
|
34122
34155
|
pct = 100;
|
|
34123
|
-
resetStr = match[
|
|
34156
|
+
resetStr = match.groups?.["reset"] ?? "";
|
|
34157
|
+
qualifier = match.groups?.["qualifier"]?.trim() || null;
|
|
34124
34158
|
}
|
|
34125
34159
|
if (!Number.isFinite(pct) || pct < 0 || pct > 100)
|
|
34126
34160
|
continue;
|
|
34127
34161
|
const nextChar = text[match.index + match[0].length];
|
|
34128
34162
|
if (nextChar !== void 0 && /[A-Za-z0-9]/.test(nextChar))
|
|
34129
34163
|
continue;
|
|
34130
|
-
const
|
|
34131
|
-
if (!
|
|
34164
|
+
const reset = parseResetDateTime(resetStr, now);
|
|
34165
|
+
if (!reset)
|
|
34132
34166
|
continue;
|
|
34133
34167
|
if (match.index >= bestIndex) {
|
|
34134
34168
|
bestIndex = match.index;
|
|
34135
|
-
best = {
|
|
34169
|
+
best = {
|
|
34170
|
+
pct,
|
|
34171
|
+
weekResetsAt: reset.at,
|
|
34172
|
+
resetPrecision: reset.precision,
|
|
34173
|
+
limitScope: classifyLimitScope(qualifier),
|
|
34174
|
+
limitQualifier: qualifier
|
|
34175
|
+
};
|
|
34136
34176
|
}
|
|
34137
34177
|
}
|
|
34138
34178
|
}
|
|
@@ -34176,7 +34216,10 @@ function parseResetDateTime(humanDate, now) {
|
|
|
34176
34216
|
if (!hm)
|
|
34177
34217
|
return null;
|
|
34178
34218
|
const todayAt = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), hm.hour, hm.minute);
|
|
34179
|
-
return
|
|
34219
|
+
return {
|
|
34220
|
+
at: new Date(todayAt <= now.getTime() ? todayAt + MS_PER_DAY : todayAt),
|
|
34221
|
+
precision: "hour_only"
|
|
34222
|
+
};
|
|
34180
34223
|
}
|
|
34181
34224
|
const timeMatch = trimmed.match(TIME_TAIL);
|
|
34182
34225
|
const dateOnly = timeMatch ? trimmed.slice(0, timeMatch.index).trim() : trimmed;
|
|
@@ -34209,7 +34252,7 @@ function parseResetDateTime(humanDate, now) {
|
|
|
34209
34252
|
resolved = candidate;
|
|
34210
34253
|
}
|
|
34211
34254
|
}
|
|
34212
|
-
return resolved;
|
|
34255
|
+
return resolved ? { at: resolved, precision: "dated" } : null;
|
|
34213
34256
|
}
|
|
34214
34257
|
|
|
34215
34258
|
// ../core/dist/claude-code-usage/run-marker.js
|
package/dist/mcp/origami.js
CHANGED
|
@@ -40380,7 +40380,27 @@ var BANNER_PATTERNS = [
|
|
|
40380
40380
|
// Wrapped to keep the per-pattern shape consistent with the percentage form:
|
|
40381
40381
|
// the parser checks group 1 for a digit string and treats a missing one as
|
|
40382
40382
|
// pct=100.
|
|
40383
|
-
|
|
40383
|
+
// ENG-9007: the qualifier is CAPTURED now, by name. It used to be
|
|
40384
|
+
// `(?:[a-z0-9-]+\s+)?` - permissive and non-capturing - so the parser
|
|
40385
|
+
// recognised "session" and "5-hour", matched on them, and threw the word away.
|
|
40386
|
+
// Named groups keep the numbered capture indices stable for the percentage
|
|
40387
|
+
// form above, which still reads groups 1 and 2 positionally.
|
|
40388
|
+
new RegExp(
|
|
40389
|
+
// CodeRabbit on #4621: the qualifier was ONE token, so `classifyLimitScope`
|
|
40390
|
+
// accepted "5 hours" while this pattern could never deliver it — the whole
|
|
40391
|
+
// banner failed to match, no observation was recorded, and the agent went
|
|
40392
|
+
// dark rather than merely being misclassified. Multi-token qualifiers now
|
|
40393
|
+
// match the duration shapes SESSION_QUALIFIER already accepts.
|
|
40394
|
+
//
|
|
40395
|
+
// Deliberately NOT the naive `[a-z0-9]+(?:\s*-?\s*[a-z0-9]+)*`: the
|
|
40396
|
+
// separator there can match empty, which reduces to `(a+)+` and backtracks
|
|
40397
|
+
// catastrophically on a long alphanumeric run that is never followed by
|
|
40398
|
+
// "limit". This parser runs over agent-produced pane.log tails, so that is
|
|
40399
|
+
// reachable input. Requiring at least one separator per extra token, and
|
|
40400
|
+
// bounding the count, keeps it linear.
|
|
40401
|
+
`${SUBJECT}hit\\s+your\\s+(?<qualifier>[a-z0-9]+(?:[\\s-]+[a-z0-9]+){0,3}\\s+)?limit${SEP}resets\\s+(?<reset>${RESET_DATE})`,
|
|
40402
|
+
"i"
|
|
40403
|
+
)
|
|
40384
40404
|
];
|
|
40385
40405
|
var MS_PER_DAY = 24 * 60 * 60 * 1e3;
|
|
40386
40406
|
|
|
@@ -34418,6 +34418,17 @@ var CONDITIONAL_DELIVERY_BODY = [
|
|
|
34418
34418
|
var FRESH_HEARTBEAT_THRESHOLD_MS = 2 * 60 * 1e3;
|
|
34419
34419
|
|
|
34420
34420
|
// ../core/dist/claude-code-usage/banner-parser.js
|
|
34421
|
+
var SESSION_QUALIFIER = /^(?:session|\d{1,2}\s*-?\s*hours?|\d{1,2}h)$/i;
|
|
34422
|
+
function classifyLimitScope(qualifier) {
|
|
34423
|
+
const q = (qualifier ?? "").trim();
|
|
34424
|
+
if (!q)
|
|
34425
|
+
return "weekly";
|
|
34426
|
+
if (SESSION_QUALIFIER.test(q))
|
|
34427
|
+
return "session";
|
|
34428
|
+
if (/^weekly$/i.test(q))
|
|
34429
|
+
return "weekly";
|
|
34430
|
+
return "unknown";
|
|
34431
|
+
}
|
|
34421
34432
|
var SEP = /[\s·\-–—]+/.source;
|
|
34422
34433
|
var SUBJECT = /(?:You(?:['’]ve|\s+have)?\s+)?/.source;
|
|
34423
34434
|
var TIME_OF_DAY = /\d{1,2}(?::\d{2})?\s*(?:am|pm)(?:\s*\(?UTC\)?)?/.source;
|
|
@@ -34431,7 +34442,27 @@ var BANNER_PATTERNS = [
|
|
|
34431
34442
|
// Wrapped to keep the per-pattern shape consistent with the percentage form:
|
|
34432
34443
|
// the parser checks group 1 for a digit string and treats a missing one as
|
|
34433
34444
|
// pct=100.
|
|
34434
|
-
|
|
34445
|
+
// ENG-9007: the qualifier is CAPTURED now, by name. It used to be
|
|
34446
|
+
// `(?:[a-z0-9-]+\s+)?` - permissive and non-capturing - so the parser
|
|
34447
|
+
// recognised "session" and "5-hour", matched on them, and threw the word away.
|
|
34448
|
+
// Named groups keep the numbered capture indices stable for the percentage
|
|
34449
|
+
// form above, which still reads groups 1 and 2 positionally.
|
|
34450
|
+
new RegExp(
|
|
34451
|
+
// CodeRabbit on #4621: the qualifier was ONE token, so `classifyLimitScope`
|
|
34452
|
+
// accepted "5 hours" while this pattern could never deliver it — the whole
|
|
34453
|
+
// banner failed to match, no observation was recorded, and the agent went
|
|
34454
|
+
// dark rather than merely being misclassified. Multi-token qualifiers now
|
|
34455
|
+
// match the duration shapes SESSION_QUALIFIER already accepts.
|
|
34456
|
+
//
|
|
34457
|
+
// Deliberately NOT the naive `[a-z0-9]+(?:\s*-?\s*[a-z0-9]+)*`: the
|
|
34458
|
+
// separator there can match empty, which reduces to `(a+)+` and backtracks
|
|
34459
|
+
// catastrophically on a long alphanumeric run that is never followed by
|
|
34460
|
+
// "limit". This parser runs over agent-produced pane.log tails, so that is
|
|
34461
|
+
// reachable input. Requiring at least one separator per extra token, and
|
|
34462
|
+
// bounding the count, keeps it linear.
|
|
34463
|
+
`${SUBJECT}hit\\s+your\\s+(?<qualifier>[a-z0-9]+(?:[\\s-]+[a-z0-9]+){0,3}\\s+)?limit${SEP}resets\\s+(?<reset>${RESET_DATE})`,
|
|
34464
|
+
"i"
|
|
34465
|
+
)
|
|
34435
34466
|
];
|
|
34436
34467
|
function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
|
|
34437
34468
|
let bestIndex = -1;
|
|
@@ -34444,24 +34475,33 @@ function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
|
|
|
34444
34475
|
pattern.lastIndex++;
|
|
34445
34476
|
let pct;
|
|
34446
34477
|
let resetStr;
|
|
34478
|
+
let qualifier;
|
|
34447
34479
|
if (i === 0) {
|
|
34448
34480
|
pct = Number.parseInt(match[1], 10);
|
|
34449
34481
|
resetStr = match[2];
|
|
34482
|
+
qualifier = "weekly";
|
|
34450
34483
|
} else {
|
|
34451
34484
|
pct = 100;
|
|
34452
|
-
resetStr = match[
|
|
34485
|
+
resetStr = match.groups?.["reset"] ?? "";
|
|
34486
|
+
qualifier = match.groups?.["qualifier"]?.trim() || null;
|
|
34453
34487
|
}
|
|
34454
34488
|
if (!Number.isFinite(pct) || pct < 0 || pct > 100)
|
|
34455
34489
|
continue;
|
|
34456
34490
|
const nextChar = text[match.index + match[0].length];
|
|
34457
34491
|
if (nextChar !== void 0 && /[A-Za-z0-9]/.test(nextChar))
|
|
34458
34492
|
continue;
|
|
34459
|
-
const
|
|
34460
|
-
if (!
|
|
34493
|
+
const reset = parseResetDateTime(resetStr, now);
|
|
34494
|
+
if (!reset)
|
|
34461
34495
|
continue;
|
|
34462
34496
|
if (match.index >= bestIndex) {
|
|
34463
34497
|
bestIndex = match.index;
|
|
34464
|
-
best = {
|
|
34498
|
+
best = {
|
|
34499
|
+
pct,
|
|
34500
|
+
weekResetsAt: reset.at,
|
|
34501
|
+
resetPrecision: reset.precision,
|
|
34502
|
+
limitScope: classifyLimitScope(qualifier),
|
|
34503
|
+
limitQualifier: qualifier
|
|
34504
|
+
};
|
|
34465
34505
|
}
|
|
34466
34506
|
}
|
|
34467
34507
|
}
|
|
@@ -34505,7 +34545,10 @@ function parseResetDateTime(humanDate, now) {
|
|
|
34505
34545
|
if (!hm)
|
|
34506
34546
|
return null;
|
|
34507
34547
|
const todayAt = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), hm.hour, hm.minute);
|
|
34508
|
-
return
|
|
34548
|
+
return {
|
|
34549
|
+
at: new Date(todayAt <= now.getTime() ? todayAt + MS_PER_DAY : todayAt),
|
|
34550
|
+
precision: "hour_only"
|
|
34551
|
+
};
|
|
34509
34552
|
}
|
|
34510
34553
|
const timeMatch = trimmed.match(TIME_TAIL);
|
|
34511
34554
|
const dateOnly = timeMatch ? trimmed.slice(0, timeMatch.index).trim() : trimmed;
|
|
@@ -34538,7 +34581,7 @@ function parseResetDateTime(humanDate, now) {
|
|
|
34538
34581
|
resolved = candidate;
|
|
34539
34582
|
}
|
|
34540
34583
|
}
|
|
34541
|
-
return resolved;
|
|
34584
|
+
return resolved ? { at: resolved, precision: "dated" } : null;
|
|
34542
34585
|
}
|
|
34543
34586
|
|
|
34544
34587
|
// ../core/dist/claude-code-usage/run-marker.js
|
|
@@ -34577,6 +34577,17 @@ var CONDITIONAL_DELIVERY_BODY = [
|
|
|
34577
34577
|
var FRESH_HEARTBEAT_THRESHOLD_MS = 2 * 60 * 1e3;
|
|
34578
34578
|
|
|
34579
34579
|
// ../core/dist/claude-code-usage/banner-parser.js
|
|
34580
|
+
var SESSION_QUALIFIER = /^(?:session|\d{1,2}\s*-?\s*hours?|\d{1,2}h)$/i;
|
|
34581
|
+
function classifyLimitScope(qualifier) {
|
|
34582
|
+
const q = (qualifier ?? "").trim();
|
|
34583
|
+
if (!q)
|
|
34584
|
+
return "weekly";
|
|
34585
|
+
if (SESSION_QUALIFIER.test(q))
|
|
34586
|
+
return "session";
|
|
34587
|
+
if (/^weekly$/i.test(q))
|
|
34588
|
+
return "weekly";
|
|
34589
|
+
return "unknown";
|
|
34590
|
+
}
|
|
34580
34591
|
var SEP = /[\s·\-–—]+/.source;
|
|
34581
34592
|
var SUBJECT = /(?:You(?:['’]ve|\s+have)?\s+)?/.source;
|
|
34582
34593
|
var TIME_OF_DAY = /\d{1,2}(?::\d{2})?\s*(?:am|pm)(?:\s*\(?UTC\)?)?/.source;
|
|
@@ -34590,7 +34601,27 @@ var BANNER_PATTERNS = [
|
|
|
34590
34601
|
// Wrapped to keep the per-pattern shape consistent with the percentage form:
|
|
34591
34602
|
// the parser checks group 1 for a digit string and treats a missing one as
|
|
34592
34603
|
// pct=100.
|
|
34593
|
-
|
|
34604
|
+
// ENG-9007: the qualifier is CAPTURED now, by name. It used to be
|
|
34605
|
+
// `(?:[a-z0-9-]+\s+)?` - permissive and non-capturing - so the parser
|
|
34606
|
+
// recognised "session" and "5-hour", matched on them, and threw the word away.
|
|
34607
|
+
// Named groups keep the numbered capture indices stable for the percentage
|
|
34608
|
+
// form above, which still reads groups 1 and 2 positionally.
|
|
34609
|
+
new RegExp(
|
|
34610
|
+
// CodeRabbit on #4621: the qualifier was ONE token, so `classifyLimitScope`
|
|
34611
|
+
// accepted "5 hours" while this pattern could never deliver it — the whole
|
|
34612
|
+
// banner failed to match, no observation was recorded, and the agent went
|
|
34613
|
+
// dark rather than merely being misclassified. Multi-token qualifiers now
|
|
34614
|
+
// match the duration shapes SESSION_QUALIFIER already accepts.
|
|
34615
|
+
//
|
|
34616
|
+
// Deliberately NOT the naive `[a-z0-9]+(?:\s*-?\s*[a-z0-9]+)*`: the
|
|
34617
|
+
// separator there can match empty, which reduces to `(a+)+` and backtracks
|
|
34618
|
+
// catastrophically on a long alphanumeric run that is never followed by
|
|
34619
|
+
// "limit". This parser runs over agent-produced pane.log tails, so that is
|
|
34620
|
+
// reachable input. Requiring at least one separator per extra token, and
|
|
34621
|
+
// bounding the count, keeps it linear.
|
|
34622
|
+
`${SUBJECT}hit\\s+your\\s+(?<qualifier>[a-z0-9]+(?:[\\s-]+[a-z0-9]+){0,3}\\s+)?limit${SEP}resets\\s+(?<reset>${RESET_DATE})`,
|
|
34623
|
+
"i"
|
|
34624
|
+
)
|
|
34594
34625
|
];
|
|
34595
34626
|
function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
|
|
34596
34627
|
let bestIndex = -1;
|
|
@@ -34603,24 +34634,33 @@ function parseUsageBanner(text, now = /* @__PURE__ */ new Date()) {
|
|
|
34603
34634
|
pattern.lastIndex++;
|
|
34604
34635
|
let pct;
|
|
34605
34636
|
let resetStr;
|
|
34637
|
+
let qualifier;
|
|
34606
34638
|
if (i === 0) {
|
|
34607
34639
|
pct = Number.parseInt(match[1], 10);
|
|
34608
34640
|
resetStr = match[2];
|
|
34641
|
+
qualifier = "weekly";
|
|
34609
34642
|
} else {
|
|
34610
34643
|
pct = 100;
|
|
34611
|
-
resetStr = match[
|
|
34644
|
+
resetStr = match.groups?.["reset"] ?? "";
|
|
34645
|
+
qualifier = match.groups?.["qualifier"]?.trim() || null;
|
|
34612
34646
|
}
|
|
34613
34647
|
if (!Number.isFinite(pct) || pct < 0 || pct > 100)
|
|
34614
34648
|
continue;
|
|
34615
34649
|
const nextChar = text[match.index + match[0].length];
|
|
34616
34650
|
if (nextChar !== void 0 && /[A-Za-z0-9]/.test(nextChar))
|
|
34617
34651
|
continue;
|
|
34618
|
-
const
|
|
34619
|
-
if (!
|
|
34652
|
+
const reset = parseResetDateTime(resetStr, now);
|
|
34653
|
+
if (!reset)
|
|
34620
34654
|
continue;
|
|
34621
34655
|
if (match.index >= bestIndex) {
|
|
34622
34656
|
bestIndex = match.index;
|
|
34623
|
-
best = {
|
|
34657
|
+
best = {
|
|
34658
|
+
pct,
|
|
34659
|
+
weekResetsAt: reset.at,
|
|
34660
|
+
resetPrecision: reset.precision,
|
|
34661
|
+
limitScope: classifyLimitScope(qualifier),
|
|
34662
|
+
limitQualifier: qualifier
|
|
34663
|
+
};
|
|
34624
34664
|
}
|
|
34625
34665
|
}
|
|
34626
34666
|
}
|
|
@@ -34664,7 +34704,10 @@ function parseResetDateTime(humanDate, now) {
|
|
|
34664
34704
|
if (!hm)
|
|
34665
34705
|
return null;
|
|
34666
34706
|
const todayAt = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate(), hm.hour, hm.minute);
|
|
34667
|
-
return
|
|
34707
|
+
return {
|
|
34708
|
+
at: new Date(todayAt <= now.getTime() ? todayAt + MS_PER_DAY : todayAt),
|
|
34709
|
+
precision: "hour_only"
|
|
34710
|
+
};
|
|
34668
34711
|
}
|
|
34669
34712
|
const timeMatch = trimmed.match(TIME_TAIL);
|
|
34670
34713
|
const dateOnly = timeMatch ? trimmed.slice(0, timeMatch.index).trim() : trimmed;
|
|
@@ -34697,7 +34740,7 @@ function parseResetDateTime(humanDate, now) {
|
|
|
34697
34740
|
resolved = candidate;
|
|
34698
34741
|
}
|
|
34699
34742
|
}
|
|
34700
|
-
return resolved;
|
|
34743
|
+
return resolved ? { at: resolved, precision: "dated" } : null;
|
|
34701
34744
|
}
|
|
34702
34745
|
|
|
34703
34746
|
// ../core/dist/claude-code-usage/run-marker.js
|
|
@@ -43,8 +43,8 @@ import {
|
|
|
43
43
|
writeDirectChatSessionState,
|
|
44
44
|
writeEgressAllowlist,
|
|
45
45
|
writePersistentClaudeWrapper
|
|
46
|
-
} from "./chunk-
|
|
47
|
-
import "./chunk-
|
|
46
|
+
} from "./chunk-6SJJM4FT.js";
|
|
47
|
+
import "./chunk-TYVQNCBU.js";
|
|
48
48
|
import "./chunk-XWVM4KPK.js";
|
|
49
49
|
export {
|
|
50
50
|
EGRESS_BASELINE_DOMAINS,
|
|
@@ -92,4 +92,4 @@ export {
|
|
|
92
92
|
writeEgressAllowlist,
|
|
93
93
|
writePersistentClaudeWrapper
|
|
94
94
|
};
|
|
95
|
-
//# sourceMappingURL=persistent-session-
|
|
95
|
+
//# sourceMappingURL=persistent-session-GM3EH2ZU.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
paneLogPath
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-6SJJM4FT.js";
|
|
4
|
+
import "./chunk-TYVQNCBU.js";
|
|
5
5
|
import "./chunk-XWVM4KPK.js";
|
|
6
6
|
|
|
7
7
|
// src/lib/responsiveness-probe.ts
|
|
@@ -710,4 +710,4 @@ export {
|
|
|
710
710
|
readAndResetSlackReplyBindingClassifications,
|
|
711
711
|
readAndResetSlackReplyTargetClassifications
|
|
712
712
|
};
|
|
713
|
-
//# sourceMappingURL=responsiveness-probe-
|
|
713
|
+
//# sourceMappingURL=responsiveness-probe-VSSJC3MN.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
sessionTranscriptDir
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-TYVQNCBU.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/session-auth-dead.ts
|
|
6
6
|
import { closeSync, openSync, readSync, readdirSync, statSync } from "fs";
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
decideSessionAuthState,
|
|
204
204
|
probeSessionAuth
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=session-auth-dead-
|
|
206
|
+
//# sourceMappingURL=session-auth-dead-KOKVXPPQ.js.map
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|