jinn-cli 0.7.2 → 0.7.3
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/src/engines/claude.d.ts.map +1 -1
- package/dist/src/engines/claude.js +9 -0
- package/dist/src/engines/claude.js.map +1 -1
- package/dist/src/gateway/__tests__/api-last-n.test.d.ts +2 -0
- package/dist/src/gateway/__tests__/api-last-n.test.d.ts.map +1 -0
- package/dist/src/gateway/__tests__/api-last-n.test.js +32 -0
- package/dist/src/gateway/__tests__/api-last-n.test.js.map +1 -0
- package/dist/src/gateway/api.d.ts.map +1 -1
- package/dist/src/gateway/api.js +30 -0
- package/dist/src/gateway/api.js.map +1 -1
- package/dist/src/gateway/lifecycle.d.ts.map +1 -1
- package/dist/src/gateway/lifecycle.js +1 -0
- package/dist/src/gateway/lifecycle.js.map +1 -1
- package/dist/src/sessions/__tests__/callbacks.test.d.ts +2 -0
- package/dist/src/sessions/__tests__/callbacks.test.d.ts.map +1 -0
- package/dist/src/sessions/__tests__/callbacks.test.js +118 -0
- package/dist/src/sessions/__tests__/callbacks.test.js.map +1 -0
- package/dist/src/sessions/callbacks.d.ts +1 -1
- package/dist/src/sessions/callbacks.js +4 -4
- package/dist/src/sessions/callbacks.js.map +1 -1
- package/dist/src/sessions/manager.d.ts.map +1 -1
- package/dist/src/sessions/manager.js +21 -3
- package/dist/src/sessions/manager.js.map +1 -1
- package/dist/src/shared/__tests__/rateLimit.test.d.ts +2 -0
- package/dist/src/shared/__tests__/rateLimit.test.d.ts.map +1 -0
- package/dist/src/shared/__tests__/rateLimit.test.js +108 -0
- package/dist/src/shared/__tests__/rateLimit.test.js.map +1 -0
- package/dist/src/shared/__tests__/usageAwareness.test.d.ts +2 -0
- package/dist/src/shared/__tests__/usageAwareness.test.d.ts.map +1 -0
- package/dist/src/shared/__tests__/usageAwareness.test.js +58 -0
- package/dist/src/shared/__tests__/usageAwareness.test.js.map +1 -0
- package/dist/src/shared/rateLimit.d.ts +7 -0
- package/dist/src/shared/rateLimit.d.ts.map +1 -1
- package/dist/src/shared/rateLimit.js +31 -0
- package/dist/src/shared/rateLimit.js.map +1 -1
- package/dist/src/shared/usageAwareness.d.ts.map +1 -1
- package/dist/src/shared/usageAwareness.js +7 -0
- package/dist/src/shared/usageAwareness.js.map +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/_next/static/chunks/{155-592ad81a5c00a38a.js → 155-277bf3022d16e74f.js} +1 -1
- package/dist/web/_next/static/chunks/{192-bd69b67fd03b9f3d.js → 192-3064c98adfeef88c.js} +1 -1
- package/dist/web/_next/static/chunks/{51-ea7256657692ba90.js → 51-43ce350b707e6b06.js} +1 -1
- package/dist/web/_next/static/chunks/app/_not-found/page-1a2952195ec2c3fa.js +1 -0
- package/dist/web/_next/static/chunks/app/chat/{page-83a714baeb382ffb.js → page-d9b12d7effe66c59.js} +1 -1
- package/dist/web/_next/static/chunks/app/cron/page-03f6c20a2336f185.js +1 -0
- package/dist/web/_next/static/chunks/app/kanban/{page-0e1b2a66378b8a6b.js → page-0aa74ece5109e58f.js} +1 -1
- package/dist/web/_next/static/chunks/app/{layout-ab9ba2b24a88513d.js → layout-45d8b9cc84f9443f.js} +1 -1
- package/dist/web/_next/static/chunks/app/logs/{page-b2ea0e6b92c54706.js → page-0f2b58794d9a97ce.js} +1 -1
- package/dist/web/_next/static/chunks/app/org/{page-05c8d33b3bf07d3d.js → page-e51ef93389a23de8.js} +1 -1
- package/dist/web/_next/static/chunks/app/{page-57dcf41f8ef011a7.js → page-16b78d2823b60898.js} +1 -1
- package/dist/web/_next/static/chunks/app/settings/{page-2903a5e9b8b0fc4a.js → page-8d1048b944663524.js} +1 -1
- package/dist/web/_next/static/chunks/app/skills/page-6d9c1d5b03aa86bb.js +1 -0
- package/dist/web/_next/static/chunks/{main-app-72a2d12a170701ef.js → main-app-637478e5d2259005.js} +1 -1
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +3 -3
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +3 -3
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +3 -3
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +3 -3
- package/dist/web/logs.html +2 -2
- package/dist/web/logs.txt +3 -3
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +3 -3
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +2 -2
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +3 -3
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +3 -3
- package/package.json +1 -1
- package/template/AGENTS.md +21 -0
- package/template/CLAUDE.md +21 -0
- package/dist/web/_next/static/chunks/app/_not-found/page-22b69e9fb96ef3fc.js +0 -1
- package/dist/web/_next/static/chunks/app/cron/page-4ede68bcdb3e76ca.js +0 -1
- package/dist/web/_next/static/chunks/app/skills/page-971feac69b3a1383.js +0 -1
- /package/dist/web/_next/static/{4OBIVkP7CCBmCjhg6p9Id → astVwZfaNwQEC0C3qtVHe}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{4OBIVkP7CCBmCjhg6p9Id → astVwZfaNwQEC0C3qtVHe}/_ssgManifest.js +0 -0
|
@@ -2,7 +2,7 @@ import { getSession } from "./registry.js";
|
|
|
2
2
|
import { loadConfig } from "../shared/config.js";
|
|
3
3
|
import { logger } from "../shared/logger.js";
|
|
4
4
|
/**
|
|
5
|
-
* Notify the parent session that a child session has
|
|
5
|
+
* Notify the parent session that a child session has replied.
|
|
6
6
|
* Sends an internal message to the parent via the local HTTP API.
|
|
7
7
|
* Fire-and-forget — errors are logged but never rethrown.
|
|
8
8
|
*/
|
|
@@ -53,9 +53,9 @@ async function _sendNotification(childSession, result) {
|
|
|
53
53
|
message = `⚠️ Employee "${employeeName}" (session ${childId}) encountered an error: ${result.error}`;
|
|
54
54
|
}
|
|
55
55
|
else {
|
|
56
|
-
const raw = result.result || "
|
|
57
|
-
const preview = raw.length >
|
|
58
|
-
message =
|
|
56
|
+
const raw = result.result || "(no output)";
|
|
57
|
+
const preview = raw.length > 200 ? raw.substring(0, 200) + "..." : raw;
|
|
58
|
+
message = `📩 Employee "${employeeName}" replied in session ${childId}.\nRead the latest messages: GET /api/sessions/${childId}?last=5\n\nPreview: ${preview}`;
|
|
59
59
|
}
|
|
60
60
|
await _sendRaw(childSession.parentSessionId, message);
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../../src/sessions/callbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,YAAqB,EACrB,MAA6F;IAE7F,IAAI,CAAC,YAAY,CAAC,eAAe;QAAE,OAAO;IAE1C,kDAAkD;IAClD,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACpD,MAAM,CAAC,IAAI,CAAC,+CAA+C,YAAY,CAAC,eAAe,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,YAAqB,EACrB,mBAA4B;IAE5B,IAAI,CAAC,YAAY,CAAC,eAAe;QAAE,OAAO;IAE1C,iBAAiB,CAAC,YAAY,EAAE;QAC9B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,iDAAiD,mBAAmB,CAAC,CAAC,CAAC,WAAW,mBAAmB,EAAE,CAAC,CAAC,CAAC,wBAAwB,qBAAqB;KAChK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,CAAC,IAAI,CAAC,uDAAuD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,YAAqB;IAErB,IAAI,CAAC,YAAY,CAAC,eAAe;QAAE,OAAO;IAE1C,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,IAAI,SAAS,CAAC;IACxD,QAAQ,CAAC,YAAY,CAAC,eAAe,EAAE,gBAAgB,YAAY,cAAc,YAAY,CAAC,EAAE,yCAAyC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACvJ,MAAM,CAAC,IAAI,CAAC,mDAAmD,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,YAAqB,EACrB,MAA6F;IAE7F,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,eAAgB,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,CAAC,yBAAyB;IAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,CAAC,iCAAiC;IAExE,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,IAAI,SAAS,CAAC;IACxD,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;IAEhC,IAAI,OAAe,CAAC;IACpB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,GAAG,gBAAgB,YAAY,cAAc,OAAO,2BAA2B,MAAM,CAAC,KAAK,EAAE,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"callbacks.js","sourceRoot":"","sources":["../../../src/sessions/callbacks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sessions/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,UAAU,EAGX,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW1C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,iBAAiB,CAAiD;gBAGxE,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,cAAc,GAAE,MAAM,EAAO;IAO/B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIlE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,QAAQ,IAAI,YAAY;IAIlB,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;YAmEzG,UAAU;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sessions/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,QAAQ,EACR,MAAM,EACN,eAAe,EACf,UAAU,EAGX,MAAM,oBAAoB,CAAC;AAY5B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW1C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAkED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAW;IACjC,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,iBAAiB,CAAiD;gBAGxE,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,cAAc,GAAE,MAAM,EAAO;IAO/B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;IAIlE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3C,QAAQ,IAAI,YAAY;IAIlB,KAAK,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;YAmEzG,UAAU;IA4hBlB,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAoFjF,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;YAQxB,iBAAiB;CAiDhC"}
|
|
@@ -6,7 +6,7 @@ import { SessionQueue } from "./queue.js";
|
|
|
6
6
|
import { JINN_HOME } from "../shared/paths.js";
|
|
7
7
|
import { logger } from "../shared/logger.js";
|
|
8
8
|
import { resolveEffort } from "../shared/effort.js";
|
|
9
|
-
import { computeNextRetryDelayMs, computeRateLimitDeadlineMs, detectRateLimit } from "../shared/rateLimit.js";
|
|
9
|
+
import { computeNextRetryDelayMs, computeRateLimitDeadlineMs, detectRateLimit, isDeadSessionError } from "../shared/rateLimit.js";
|
|
10
10
|
import { getClaudeExpectedResetAt, isLikelyNearClaudeUsageLimit, recordClaudeRateLimit } from "../shared/usageAwareness.js";
|
|
11
11
|
import { loadJobs } from "../cron/jobs.js";
|
|
12
12
|
import { setCronJobEnabled, triggerCronJob } from "../cron/scheduler.js";
|
|
@@ -255,8 +255,26 @@ export class SessionManager {
|
|
|
255
255
|
sessionId: session.id,
|
|
256
256
|
});
|
|
257
257
|
const wasInterrupted = result.error?.startsWith("Interrupted");
|
|
258
|
-
//
|
|
259
|
-
|
|
258
|
+
// Dead session detection: if the engine session ID is stale (expired/invalid),
|
|
259
|
+
// clear cached engine sessions from transportMeta so the next attempt starts fresh.
|
|
260
|
+
// Also sets a flag so we skip the rate-limit retry loop below (a dead session
|
|
261
|
+
// error can contain text like "429" that would otherwise match RATE_LIMIT_ERROR_RE).
|
|
262
|
+
const isDead = !wasInterrupted && isDeadSessionError(result);
|
|
263
|
+
if (isDead) {
|
|
264
|
+
logger.warn(`Dead session detected for ${session.id} — clearing stale engine IDs`);
|
|
265
|
+
const meta = { ...(session.transportMeta || {}) };
|
|
266
|
+
delete meta["engineSessions"];
|
|
267
|
+
delete meta["engineOverride"];
|
|
268
|
+
updateSession(session.id, {
|
|
269
|
+
engineSessionId: null,
|
|
270
|
+
transportMeta: meta,
|
|
271
|
+
});
|
|
272
|
+
// Update local reference so subsequent code doesn't re-read stale IDs
|
|
273
|
+
session = { ...session, engineSessionId: null, transportMeta: meta };
|
|
274
|
+
}
|
|
275
|
+
// Detect rate limit / usage limit errors and auto-retry.
|
|
276
|
+
// Skip entirely for dead sessions — they are not rate limits.
|
|
277
|
+
const rateLimit = (!wasInterrupted && !isDead) ? detectRateLimit(result) : { limited: false };
|
|
260
278
|
if (rateLimit.limited) {
|
|
261
279
|
recordClaudeRateLimit(rateLimit.resetsAt);
|
|
262
280
|
const strategy = this.config.sessions?.rateLimitStrategy ?? "fallback";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/sessions/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../src/sessions/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimit.test.d.ts","sourceRoot":"","sources":["../../../../src/shared/__tests__/rateLimit.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { isDeadSessionError, detectRateLimit } from "../rateLimit.js";
|
|
3
|
+
function makeResult(overrides = {}) {
|
|
4
|
+
return {
|
|
5
|
+
sessionId: "test-session",
|
|
6
|
+
result: "",
|
|
7
|
+
...overrides,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
describe("isDeadSessionError", () => {
|
|
11
|
+
it("returns true for error with zero cost and no rate limit", () => {
|
|
12
|
+
const result = makeResult({
|
|
13
|
+
error: "Claude exited with code 1 (no stderr output)",
|
|
14
|
+
cost: 0,
|
|
15
|
+
numTurns: 0,
|
|
16
|
+
});
|
|
17
|
+
expect(isDeadSessionError(result)).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
it("returns true for error with undefined cost/turns (no work done)", () => {
|
|
20
|
+
const result = makeResult({
|
|
21
|
+
error: "Claude exited with code 1",
|
|
22
|
+
});
|
|
23
|
+
expect(isDeadSessionError(result)).toBe(true);
|
|
24
|
+
});
|
|
25
|
+
it("returns false when rate limit status is present", () => {
|
|
26
|
+
const result = makeResult({
|
|
27
|
+
error: "Claude usage limit reached",
|
|
28
|
+
cost: 0,
|
|
29
|
+
rateLimit: { status: "rejected" },
|
|
30
|
+
});
|
|
31
|
+
expect(isDeadSessionError(result)).toBe(false);
|
|
32
|
+
});
|
|
33
|
+
it("returns false when cost > 0 (work was done)", () => {
|
|
34
|
+
const result = makeResult({
|
|
35
|
+
error: "Some error after work",
|
|
36
|
+
cost: 0.05,
|
|
37
|
+
numTurns: 3,
|
|
38
|
+
});
|
|
39
|
+
expect(isDeadSessionError(result)).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
it("returns false when numTurns > 0 (work was done)", () => {
|
|
42
|
+
const result = makeResult({
|
|
43
|
+
error: "Some error after work",
|
|
44
|
+
cost: 0,
|
|
45
|
+
numTurns: 1,
|
|
46
|
+
});
|
|
47
|
+
expect(isDeadSessionError(result)).toBe(false);
|
|
48
|
+
});
|
|
49
|
+
it("returns false when there is no error", () => {
|
|
50
|
+
const result = makeResult({ result: "success" });
|
|
51
|
+
expect(isDeadSessionError(result)).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
// Secondary pattern matching — requires zero cost as conjunction
|
|
54
|
+
it("returns true for 'error_during_execution' with zero cost", () => {
|
|
55
|
+
const result = makeResult({
|
|
56
|
+
error: "error_during_execution",
|
|
57
|
+
cost: 0,
|
|
58
|
+
numTurns: 0,
|
|
59
|
+
});
|
|
60
|
+
expect(isDeadSessionError(result)).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
it("returns false for 'error_during_execution' when cost > 0 (real work done)", () => {
|
|
63
|
+
const result = makeResult({
|
|
64
|
+
error: "error_during_execution",
|
|
65
|
+
cost: 0.05,
|
|
66
|
+
numTurns: 1,
|
|
67
|
+
});
|
|
68
|
+
expect(isDeadSessionError(result)).toBe(false);
|
|
69
|
+
});
|
|
70
|
+
it("returns true for 'session not found' in error text", () => {
|
|
71
|
+
const result = makeResult({
|
|
72
|
+
error: "Session not found or expired",
|
|
73
|
+
cost: 0,
|
|
74
|
+
});
|
|
75
|
+
expect(isDeadSessionError(result)).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
it("returns true for 'invalid session' in error text", () => {
|
|
78
|
+
const result = makeResult({
|
|
79
|
+
error: "Invalid session ID provided",
|
|
80
|
+
cost: 0,
|
|
81
|
+
});
|
|
82
|
+
expect(isDeadSessionError(result)).toBe(true);
|
|
83
|
+
});
|
|
84
|
+
it("returns true for 'session expired' in error text", () => {
|
|
85
|
+
const result = makeResult({
|
|
86
|
+
error: "The session has expired",
|
|
87
|
+
cost: 0,
|
|
88
|
+
});
|
|
89
|
+
expect(isDeadSessionError(result)).toBe(true);
|
|
90
|
+
});
|
|
91
|
+
it("does not false-positive on rate limit errors with no cost", () => {
|
|
92
|
+
const result = makeResult({
|
|
93
|
+
error: "rate limit exceeded",
|
|
94
|
+
cost: 0,
|
|
95
|
+
rateLimit: { status: "rejected", resetsAt: 1234567890 },
|
|
96
|
+
});
|
|
97
|
+
expect(isDeadSessionError(result)).toBe(false);
|
|
98
|
+
});
|
|
99
|
+
it("does not interfere with detectRateLimit", () => {
|
|
100
|
+
const rateLimited = makeResult({
|
|
101
|
+
error: "Claude usage limit reached",
|
|
102
|
+
rateLimit: { status: "rejected", resetsAt: 9999999999 },
|
|
103
|
+
});
|
|
104
|
+
expect(detectRateLimit(rateLimited).limited).toBe(true);
|
|
105
|
+
expect(isDeadSessionError(rateLimited)).toBe(false);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=rateLimit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimit.test.js","sourceRoot":"","sources":["../../../../src/shared/__tests__/rateLimit.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usageAwareness.test.d.ts","sourceRoot":"","sources":["../../../../src/shared/__tests__/usageAwareness.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
// vi.mock factory is hoisted — cannot reference local variables.
|
|
5
|
+
// Use a fixed path that the mock can resolve at hoist time.
|
|
6
|
+
vi.mock("../paths.js", () => ({
|
|
7
|
+
JINN_HOME: path.join(import.meta.dirname || __dirname, ".tmp-usage-test"),
|
|
8
|
+
}));
|
|
9
|
+
import { isLikelyNearClaudeUsageLimit, recordClaudeRateLimit, } from "../usageAwareness.js";
|
|
10
|
+
const TEMP_DIR = path.join(import.meta.dirname || __dirname, ".tmp-usage-test");
|
|
11
|
+
const STATE_PATH = path.join(TEMP_DIR, "tmp", "claude-usage.json");
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
fs.mkdirSync(path.join(TEMP_DIR, "tmp"), { recursive: true });
|
|
14
|
+
});
|
|
15
|
+
afterEach(() => {
|
|
16
|
+
fs.rmSync(TEMP_DIR, { recursive: true, force: true });
|
|
17
|
+
});
|
|
18
|
+
describe("isLikelyNearClaudeUsageLimit", () => {
|
|
19
|
+
it("returns false when no state file exists", () => {
|
|
20
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(false);
|
|
21
|
+
});
|
|
22
|
+
it("returns true when rate limit was hit recently (within 6h)", () => {
|
|
23
|
+
const recentHit = new Date(Date.now() - 30 * 60_000).toISOString(); // 30 min ago
|
|
24
|
+
fs.writeFileSync(STATE_PATH, JSON.stringify({ lastRateLimitAt: recentHit }));
|
|
25
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(true);
|
|
26
|
+
});
|
|
27
|
+
it("returns false when rate limit was hit more than 6h ago", () => {
|
|
28
|
+
const oldHit = new Date(Date.now() - 7 * 60 * 60_000).toISOString(); // 7h ago
|
|
29
|
+
fs.writeFileSync(STATE_PATH, JSON.stringify({ lastRateLimitAt: oldHit }));
|
|
30
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it("returns false when lastResetsAt has passed, even if lastRateLimitAt is recent", () => {
|
|
33
|
+
const recentHit = new Date(Date.now() - 30 * 60_000).toISOString(); // 30 min ago
|
|
34
|
+
const pastReset = new Date(Date.now() - 10 * 60_000).toISOString(); // 10 min ago
|
|
35
|
+
fs.writeFileSync(STATE_PATH, JSON.stringify({ lastRateLimitAt: recentHit, lastResetsAt: pastReset }));
|
|
36
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
it("returns true when lastResetsAt is in the future", () => {
|
|
39
|
+
const recentHit = new Date(Date.now() - 30 * 60_000).toISOString(); // 30 min ago
|
|
40
|
+
const futureReset = new Date(Date.now() + 60 * 60_000).toISOString(); // 1h from now
|
|
41
|
+
fs.writeFileSync(STATE_PATH, JSON.stringify({ lastRateLimitAt: recentHit, lastResetsAt: futureReset }));
|
|
42
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
it("ignores invalid lastResetsAt and falls back to 6h heuristic", () => {
|
|
45
|
+
const recentHit = new Date(Date.now() - 30 * 60_000).toISOString();
|
|
46
|
+
fs.writeFileSync(STATE_PATH, JSON.stringify({ lastRateLimitAt: recentHit, lastResetsAt: "not-a-date" }));
|
|
47
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
it("works end-to-end with recordClaudeRateLimit", () => {
|
|
50
|
+
const futureResetSeconds = (Date.now() + 2 * 60 * 60_000) / 1000; // 2h from now
|
|
51
|
+
recordClaudeRateLimit(futureResetSeconds);
|
|
52
|
+
expect(isLikelyNearClaudeUsageLimit()).toBe(true);
|
|
53
|
+
// Simulate time passing beyond the reset
|
|
54
|
+
const pastResetTime = new Date(futureResetSeconds * 1000 + 1000);
|
|
55
|
+
expect(isLikelyNearClaudeUsageLimit(pastResetTime)).toBe(false);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=usageAwareness.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usageAwareness.test.js","sourceRoot":"","sources":["../../../../src/shared/__tests__/usageAwareness.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,iEAAiE;AACjE,4DAA4D;AAC5D,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5B,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,iBAAiB,CAAC;CAC1E,CAAC,CAAC,CAAC;AAEJ,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAChF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAEnE,UAAU,CAAC,GAAG,EAAE;IACd,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;QACjF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS;QAC9E,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+EAA+E,EAAE,GAAG,EAAE;QACvF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;QACjF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;QACjF,EAAE,CAAC,aAAa,CACd,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CACxE,CAAC;QACF,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa;QACjF,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,cAAc;QACpF,EAAE,CAAC,aAAa,CACd,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAC1E,CAAC;QACF,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACnE,EAAE,CAAC,aAAa,CACd,UAAU,EACV,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAC3E,CAAC;QACF,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,kBAAkB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,cAAc;QAChF,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;QAC1C,MAAM,CAAC,4BAA4B,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,yCAAyC;QACzC,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACjE,MAAM,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -4,6 +4,13 @@ export interface RateLimitDetection {
|
|
|
4
4
|
/** Unix timestamp in seconds */
|
|
5
5
|
resetsAt?: number;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Detect whether an engine result indicates a dead/expired session rather than
|
|
9
|
+
* a transient or rate-limit error. A dead session is one where the engine exited
|
|
10
|
+
* with an error but did zero work (no cost, no turns) and there is no rate-limit
|
|
11
|
+
* signal — meaning the --resume ID is stale and should not be retried.
|
|
12
|
+
*/
|
|
13
|
+
export declare function isDeadSessionError(result: EngineResult): boolean;
|
|
7
14
|
export declare function detectRateLimit(result: EngineResult): RateLimitDetection;
|
|
8
15
|
export declare function computeRateLimitDeadlineMs(resetsAtSeconds?: number, extraMs?: number): number;
|
|
9
16
|
export declare function computeNextRetryDelayMs(resetsAtSeconds?: number): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/shared/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAcxE;AAED,wBAAgB,0BAA0B,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,SAAc,GAAG,MAAM,CAKlG;AAED,wBAAgB,uBAAuB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAStG"}
|
|
1
|
+
{"version":3,"file":"rateLimit.d.ts","sourceRoot":"","sources":["../../../src/shared/rateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAUD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAkBhE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,kBAAkB,CAcxE;AAED,wBAAgB,0BAA0B,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,OAAO,SAAc,GAAG,MAAM,CAKlG;AAED,wBAAgB,uBAAuB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;CAAE,CAStG"}
|
|
@@ -1,4 +1,35 @@
|
|
|
1
1
|
const RATE_LIMIT_ERROR_RE = /rate.?limit|too many requests|429|overloaded|usage.*limit|exceeded.*limit|out of extra usage/i;
|
|
2
|
+
/** Patterns that indicate the engine session is dead (expired, not found, etc.) */
|
|
3
|
+
const DEAD_SESSION_PATTERNS = [
|
|
4
|
+
/error.during.execution/i,
|
|
5
|
+
/session.not.found/i,
|
|
6
|
+
/invalid.session/i,
|
|
7
|
+
/session.*expired/i,
|
|
8
|
+
];
|
|
9
|
+
/**
|
|
10
|
+
* Detect whether an engine result indicates a dead/expired session rather than
|
|
11
|
+
* a transient or rate-limit error. A dead session is one where the engine exited
|
|
12
|
+
* with an error but did zero work (no cost, no turns) and there is no rate-limit
|
|
13
|
+
* signal — meaning the --resume ID is stale and should not be retried.
|
|
14
|
+
*/
|
|
15
|
+
export function isDeadSessionError(result) {
|
|
16
|
+
if (!result.error)
|
|
17
|
+
return false;
|
|
18
|
+
// If rate limit info is present, this is a rate limit, not a dead session
|
|
19
|
+
if (result.rateLimit?.status)
|
|
20
|
+
return false;
|
|
21
|
+
const zeroCost = result.cost === undefined || result.cost === 0;
|
|
22
|
+
const zeroTurns = result.numTurns === undefined || result.numTurns === 0;
|
|
23
|
+
// Primary: error with zero work done and no rate limit
|
|
24
|
+
if (zeroCost && zeroTurns)
|
|
25
|
+
return true;
|
|
26
|
+
// Secondary: known dead-session patterns in error text, but only when no real
|
|
27
|
+
// work was done (zeroCost) — avoids wiping IDs after a real session that
|
|
28
|
+
// happened to include a matching substring in its error message.
|
|
29
|
+
if (zeroCost && DEAD_SESSION_PATTERNS.some((p) => p.test(result.error)))
|
|
30
|
+
return true;
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
2
33
|
export function detectRateLimit(result) {
|
|
3
34
|
const resetsAt = typeof result.rateLimit?.resetsAt === "number"
|
|
4
35
|
? result.rateLimit.resetsAt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/shared/rateLimit.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GACvB,+FAA+F,CAAC;AAQlG,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,SAAS,EAAE,QAAQ,KAAK,QAAQ;QAC7D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ;QAC3B,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,eAAwB,EAAE,OAAO,GAAG,EAAE,GAAG,MAAM;IACxF,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5E,OAAO,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,eAAwB;IAC9D,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;QAClD,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"rateLimit.js","sourceRoot":"","sources":["../../../src/shared/rateLimit.ts"],"names":[],"mappings":"AAEA,MAAM,mBAAmB,GACvB,+FAA+F,CAAC;AAQlG,mFAAmF;AACnF,MAAM,qBAAqB,GAAG;IAC5B,yBAAyB;IACzB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAoB;IACrD,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEhC,0EAA0E;IAC1E,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IAE3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC;IAEzE,uDAAuD;IACvD,IAAI,QAAQ,IAAI,SAAS;QAAE,OAAO,IAAI,CAAC;IAEvC,8EAA8E;IAC9E,yEAAyE;IACzE,iEAAiE;IACjE,IAAI,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAM,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,QAAQ,GAAG,OAAO,MAAM,CAAC,SAAS,EAAE,QAAQ,KAAK,QAAQ;QAC7D,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ;QAC3B,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,eAAwB,EAAE,OAAO,GAAG,EAAE,GAAG,MAAM;IACxF,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5E,OAAO,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,eAAwB;IAC9D,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;QAClD,2EAA2E;QAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usageAwareness.d.ts","sourceRoot":"","sources":["../../../src/shared/usageAwareness.ts"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,oBAAoB,IAAI,gBAAgB,CAUvD;AAED,wBAAgB,qBAAqB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBpE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,OAAa,GAAG,IAAI,GAAG,SAAS,CAO3E;AAED,wBAAgB,4BAA4B,CAAC,GAAG,OAAa,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"usageAwareness.d.ts","sourceRoot":"","sources":["../../../src/shared/usageAwareness.ts"],"names":[],"mappings":"AAIA,UAAU,gBAAgB;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,oBAAoB,IAAI,gBAAgB,CAUvD;AAED,wBAAgB,qBAAqB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBpE;AAED,wBAAgB,wBAAwB,CAAC,GAAG,OAAa,GAAG,IAAI,GAAG,SAAS,CAO3E;AAED,wBAAgB,4BAA4B,CAAC,GAAG,OAAa,GAAG,OAAO,CAgBtE"}
|
|
@@ -53,6 +53,13 @@ export function isLikelyNearClaudeUsageLimit(now = new Date()) {
|
|
|
53
53
|
const state = readClaudeUsageState();
|
|
54
54
|
if (!state.lastRateLimitAt)
|
|
55
55
|
return false;
|
|
56
|
+
// If we know the exact reset time and it has passed, the limit is cleared
|
|
57
|
+
if (state.lastResetsAt) {
|
|
58
|
+
const resetAt = new Date(state.lastResetsAt);
|
|
59
|
+
if (!Number.isNaN(resetAt.getTime()) && now.getTime() > resetAt.getTime()) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
56
63
|
const d = new Date(state.lastRateLimitAt);
|
|
57
64
|
if (Number.isNaN(d.getTime()))
|
|
58
65
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usageAwareness.js","sourceRoot":"","sources":["../../../src/shared/usageAwareness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAOvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC;AAEpE,SAAS,cAAc;IACrB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAqB,CAAC;QACnD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QACrD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,eAAwB;IAC5D,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,IAAI,GAAqB;QAC7B,GAAG,oBAAoB,EAAE;QACzB,eAAe,EAAE,MAAM;QACvB,GAAG,CAAC,OAAO,eAAe,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzE,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,IAAI,CAAC;QACH,cAAc,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,GAAG,UAAU,MAAM,CAAC;QAChC,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9D,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,mBAAmB;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE;IACvD,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,YAAY;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IAChD,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE;QAAE,OAAO,SAAS,CAAC;IACnD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE;IAC3D,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;IACrC,IAAI,CAAC,KAAK,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"usageAwareness.js","sourceRoot":"","sources":["../../../src/shared/usageAwareness.ts"],"names":[],"mappings":"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"}
|
package/dist/web/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--astVwZfaNwQEC0C3qtVHe--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/92635e77ae2cd8fd.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-e7350efbcf65db9c.js"/><script src="/_next/static/chunks/6d25620b-d9f90746a7f2178c.js" async=""></script><script src="/_next/static/chunks/144-548cab85cf18301a.js" async=""></script><script src="/_next/static/chunks/main-app-637478e5d2259005.js" async=""></script><script src="/_next/static/chunks/625-93dc90080662b8f4.js" async=""></script><script src="/_next/static/chunks/155-277bf3022d16e74f.js" async=""></script><script src="/_next/static/chunks/app/layout-45d8b9cc84f9443f.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><meta name="description" content="AI Gateway Dashboard"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-e7350efbcf65db9c.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[4874,[\"625\",\"static/chunks/625-93dc90080662b8f4.js\",\"155\",\"static/chunks/155-277bf3022d16e74f.js\",\"177\",\"static/chunks/app/layout-45d8b9cc84f9443f.js\"],\"ClientProviders\"]\n3:I[1015,[],\"\"]\n4:I[3912,[],\"\"]\n5:I[6862,[],\"OutletBoundary\"]\n7:I[1475,[],\"AsyncMetadataOutlet\"]\n9:I[6862,[],\"ViewportBoundary\"]\nb:I[6862,[],\"MetadataBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[1389,[],\"\"]\n:HL[\"/_next/static/css/92635e77ae2cd8fd.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"astVwZfaNwQEC0C3qtVHe\",\"p\":\"\",\"c\":[\"\",\"_not-found\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/92635e77ae2cd8fd.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[\"/_not-found\",[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[\"__PAGE__\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$L6\",[\"$\",\"$L7\",null,{\"promise\":\"$@8\"}]]}]]}],{},null,false]},null,false]},null,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[[\"$\",\"$L9\",null,{\"children\":\"$La\"}],null],[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$c\",null,{\"fallback\":null,\"children\":\"$Ld\"}]}]}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n6:null\n"])</script><script>self.__next_f.push([1,"8:{\"metadata\":[[\"$\",\"meta\",\"0\",{\"name\":\"description\",\"content\":\"AI Gateway Dashboard\"}]],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"d:\"$8:metadata\"\n"])</script></body></html>
|