claude-code-infinite 1.0.34 → 1.0.35
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/README.md +51 -0
- package/dist/cli-main.js +6 -0
- package/dist/cli-main.js.map +1 -1
- package/dist/cli.js +23 -10
- package/dist/cli.js.map +1 -1
- package/dist/memtree-newest.d.ts +11 -3
- package/dist/memtree-newest.d.ts.map +1 -1
- package/dist/memtree-newest.js +24 -4
- package/dist/memtree-newest.js.map +1 -1
- package/dist/memtree.d.ts +10 -0
- package/dist/memtree.d.ts.map +1 -1
- package/dist/memtree.js +14 -0
- package/dist/memtree.js.map +1 -1
- package/dist/proxy.d.ts +16 -0
- package/dist/proxy.d.ts.map +1 -1
- package/dist/proxy.js +87 -7
- package/dist/proxy.js.map +1 -1
- package/dist/refusal-reason.d.ts +69 -0
- package/dist/refusal-reason.d.ts.map +1 -0
- package/dist/refusal-reason.js +131 -0
- package/dist/refusal-reason.js.map +1 -0
- package/dist/reqlog.d.ts +19 -0
- package/dist/reqlog.d.ts.map +1 -1
- package/dist/reqlog.js.map +1 -1
- package/dist/route-fallback.d.ts +2 -0
- package/dist/route-fallback.d.ts.map +1 -1
- package/dist/route-fallback.js +8 -8
- package/dist/route-fallback.js.map +1 -1
- package/dist/slow-upload.d.ts +40 -0
- package/dist/slow-upload.d.ts.map +1 -0
- package/dist/slow-upload.js +69 -0
- package/dist/slow-upload.js.map +1 -0
- package/dist/status-link.d.ts +18 -0
- package/dist/status-link.d.ts.map +1 -0
- package/dist/status-link.js +103 -0
- package/dist/status-link.js.map +1 -0
- package/dist/statusline.d.ts +51 -0
- package/dist/statusline.d.ts.map +1 -0
- package/dist/statusline.js +379 -0
- package/dist/statusline.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Indexing rate assumed when the server gave no estimate: about what we tell partners
|
|
3
|
+
* (polychat reports/2026-11-11_partner_traffic_sim.md, "Indexing (~40k tokens a minute)").
|
|
4
|
+
* The server's own default is faster (index_rates.py: 12 min per 1M own-work tokens, ~83k a
|
|
5
|
+
* minute); the slower figure keeps a client-side guess from promising too little.
|
|
6
|
+
*/
|
|
7
|
+
export declare const INDEX_TOKENS_PER_MINUTE = 40000;
|
|
8
|
+
export type RefusalCause = {
|
|
9
|
+
kind: "indexing";
|
|
10
|
+
secondsLeft?: number;
|
|
11
|
+
unindexedTokens?: number;
|
|
12
|
+
} | {
|
|
13
|
+
kind: "upload-timeout";
|
|
14
|
+
bytes: number;
|
|
15
|
+
ms: number;
|
|
16
|
+
nextBudgetMs?: number;
|
|
17
|
+
} | {
|
|
18
|
+
kind: "slow-answer";
|
|
19
|
+
ms: number;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "rebuilding";
|
|
22
|
+
secondsLeft?: number;
|
|
23
|
+
} | {
|
|
24
|
+
kind: "compress-failed";
|
|
25
|
+
status?: number;
|
|
26
|
+
} | {
|
|
27
|
+
kind: "over-budget";
|
|
28
|
+
inputTokens: number;
|
|
29
|
+
contextTokens: number;
|
|
30
|
+
};
|
|
31
|
+
/** The parts of a request's log record (reqlog MessagesRecord) a refusal is judged by. */
|
|
32
|
+
export interface RefusalEvidence {
|
|
33
|
+
compaction?: {
|
|
34
|
+
reason?: string;
|
|
35
|
+
};
|
|
36
|
+
compress?: {
|
|
37
|
+
ok: boolean;
|
|
38
|
+
timedOut: boolean;
|
|
39
|
+
ms: number;
|
|
40
|
+
refused?: true;
|
|
41
|
+
status?: number;
|
|
42
|
+
/** A large upload that spent its whole long budget (slow-upload.ts), not just slow. */
|
|
43
|
+
uploadTimeout?: true;
|
|
44
|
+
};
|
|
45
|
+
indexBehind?: true;
|
|
46
|
+
/** The compress answer's index lag: the server's memory ETA and the un-indexed tokens. */
|
|
47
|
+
indexLag?: {
|
|
48
|
+
etaSeconds?: number;
|
|
49
|
+
unindexedTokens?: number;
|
|
50
|
+
};
|
|
51
|
+
requestBytes?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface RefusalFacts {
|
|
54
|
+
inputTokens: number;
|
|
55
|
+
modelContextLimit: number;
|
|
56
|
+
/** Seconds of indexing MemTree last said were left (an indexing 413), if any. */
|
|
57
|
+
indexSecondsLeft?: number;
|
|
58
|
+
/** The budget the next compress of this session gets after an upload timeout. */
|
|
59
|
+
nextCompressBudgetMs?: number;
|
|
60
|
+
}
|
|
61
|
+
/** Which cause explains this refusal (first match wins). */
|
|
62
|
+
export declare function refusalCause(rec: RefusalEvidence, facts: RefusalFacts): RefusalCause;
|
|
63
|
+
/** The refusal's one line, ending with where the session's MemTree page is. */
|
|
64
|
+
export declare function refusalMessage(cause: RefusalCause, sessionLink?: string): string;
|
|
65
|
+
/** "1.2M", "480k", "900": rounded for a one-line message. */
|
|
66
|
+
export declare function tokensText(tokens: number): string;
|
|
67
|
+
/** "3 min", "1.5 h": minutes rounded up, hours from two on. */
|
|
68
|
+
export declare function durationText(seconds: number): string;
|
|
69
|
+
//# sourceMappingURL=refusal-reason.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusal-reason.d.ts","sourceRoot":"","sources":["../src/refusal-reason.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC;AAExE,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAC5E,uFAAuF;QACvF,aAAa,CAAC,EAAE,IAAI,CAAC;KACtB,CAAC;IACF,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,0FAA0F;IAC1F,QAAQ,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,YAAY,CAuBpF;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAIhF;AAmDD,6DAA6D;AAC7D,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIpD"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Why ccc refused a turn, said in one line: what is happening and what to do.
|
|
3
|
+
*
|
|
4
|
+
* The final refusal used to be one generic sentence ("couldn't fit this request ... if
|
|
5
|
+
* MemTree is still indexing, wait a minute and retry; otherwise /ccc:memtree-compact or
|
|
6
|
+
* /clear") whatever the cause. The request log already knows the cause (requests.jsonl
|
|
7
|
+
* `compaction.reason`, `compress`, `refusal.indexBehind`), and the causes want different
|
|
8
|
+
* actions (Craig, 2026-11-12, after a night of refusals that were slow uploads, not
|
|
9
|
+
* indexing):
|
|
10
|
+
*
|
|
11
|
+
* - indexing: MemTree's index trails the conversation; say how long it should take;
|
|
12
|
+
* - upload-timeout: the compress call ran out of time on a large body (a slow link);
|
|
13
|
+
* - rebuilding: Claude Code resent earlier messages changed (prefix mismatch), so the
|
|
14
|
+
* stored compressed start no longer applies and MemTree must compress afresh;
|
|
15
|
+
* - compress-failed: MemTree answered with an error;
|
|
16
|
+
* - over-budget: everything worked and it still does not fit (today's advice).
|
|
17
|
+
*/
|
|
18
|
+
import { MEMTREE_COMPACT_COMMAND, MEMTREE_VIEW_COMMAND, SESSION_PLUGIN_NAME } from "./hooks.js";
|
|
19
|
+
/**
|
|
20
|
+
* Indexing rate assumed when the server gave no estimate: about what we tell partners
|
|
21
|
+
* (polychat reports/2026-11-11_partner_traffic_sim.md, "Indexing (~40k tokens a minute)").
|
|
22
|
+
* The server's own default is faster (index_rates.py: 12 min per 1M own-work tokens, ~83k a
|
|
23
|
+
* minute); the slower figure keeps a client-side guess from promising too little.
|
|
24
|
+
*/
|
|
25
|
+
export const INDEX_TOKENS_PER_MINUTE = 40_000;
|
|
26
|
+
/** Which cause explains this refusal (first match wins). */
|
|
27
|
+
export function refusalCause(rec, facts) {
|
|
28
|
+
// The caller's stated time left (an indexing 413's, never its 60 s stand-in), else this
|
|
29
|
+
// request's own compress answer. Not rec.indexWait: it holds the stand-in too.
|
|
30
|
+
const serverSeconds = facts.indexSecondsLeft ?? rec.indexLag?.etaSeconds;
|
|
31
|
+
if (rec.indexBehind) {
|
|
32
|
+
return { kind: "indexing", ...defined({ secondsLeft: serverSeconds,
|
|
33
|
+
unindexedTokens: rec.indexLag?.unindexedTokens }) };
|
|
34
|
+
}
|
|
35
|
+
const compress = rec.compress;
|
|
36
|
+
if (compress?.timedOut && compress.uploadTimeout) {
|
|
37
|
+
return { kind: "upload-timeout", bytes: rec.requestBytes ?? 0, ms: compress.ms,
|
|
38
|
+
...defined({ nextBudgetMs: facts.nextCompressBudgetMs }) };
|
|
39
|
+
}
|
|
40
|
+
// Small, short-budget or cut short by a hold: MemTree was slow, not the upload.
|
|
41
|
+
if (compress?.timedOut)
|
|
42
|
+
return { kind: "slow-answer", ms: compress.ms };
|
|
43
|
+
const failed = compress !== undefined && !compress.ok && !compress.refused;
|
|
44
|
+
if (failed && rec.compaction?.reason === "prefix-mismatch") {
|
|
45
|
+
// Only this request's own answer: a lane's index wait may be long over.
|
|
46
|
+
return { kind: "rebuilding", ...defined({ secondsLeft: rec.indexLag?.etaSeconds }) };
|
|
47
|
+
}
|
|
48
|
+
if (failed)
|
|
49
|
+
return { kind: "compress-failed", ...defined({ status: compress.status }) };
|
|
50
|
+
return { kind: "over-budget", inputTokens: facts.inputTokens,
|
|
51
|
+
contextTokens: facts.modelContextLimit };
|
|
52
|
+
}
|
|
53
|
+
/** The refusal's one line, ending with where the session's MemTree page is. */
|
|
54
|
+
export function refusalMessage(cause, sessionLink) {
|
|
55
|
+
const where = sessionLink ? ` Session: ${sessionLink}`
|
|
56
|
+
: ` Session link: /${SESSION_PLUGIN_NAME}:${MEMTREE_VIEW_COMMAND}.`;
|
|
57
|
+
return `${causeText(cause)}${where}`;
|
|
58
|
+
}
|
|
59
|
+
const COMPACT_OR_CLEAR = `/${SESSION_PLUGIN_NAME}:${MEMTREE_COMPACT_COMMAND} or /clear`;
|
|
60
|
+
function causeText(cause) {
|
|
61
|
+
switch (cause.kind) {
|
|
62
|
+
case "indexing": return indexingText(cause.secondsLeft, cause.unindexedTokens);
|
|
63
|
+
case "upload-timeout": return uploadTimeoutText(cause);
|
|
64
|
+
case "slow-answer":
|
|
65
|
+
return `MemTree didn't answer within ${secondsText(cause.ms)}. Retry in a minute; if it ` +
|
|
66
|
+
`keeps happening, run ${COMPACT_OR_CLEAR}.`;
|
|
67
|
+
case "rebuilding": return rebuildingText(cause.secondsLeft);
|
|
68
|
+
case "compress-failed":
|
|
69
|
+
return `MemTree couldn't compress this turn${cause.status ? ` (HTTP ${cause.status})` : ""}. ` +
|
|
70
|
+
`Retry in a minute; if it keeps failing, run ${COMPACT_OR_CLEAR}.`;
|
|
71
|
+
case "over-budget":
|
|
72
|
+
return `MemTree couldn't fit this request (~${tokensText(cause.inputTokens)} tokens) in ` +
|
|
73
|
+
`the model's ${tokensText(cause.contextTokens)}-token context window. ` +
|
|
74
|
+
`Run ${COMPACT_OR_CLEAR}.`;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/** "MemTree is still indexing ~1.2M new tokens (~3 min). Retry then." */
|
|
78
|
+
function indexingText(secondsLeft, unindexedTokens) {
|
|
79
|
+
const seconds = secondsLeft ?? (unindexedTokens !== undefined && unindexedTokens > 0
|
|
80
|
+
? (unindexedTokens / INDEX_TOKENS_PER_MINUTE) * 60 : undefined);
|
|
81
|
+
const what = unindexedTokens !== undefined && unindexedTokens > 0
|
|
82
|
+
? `~${tokensText(unindexedTokens)} new tokens` : "this session's newest messages";
|
|
83
|
+
return seconds === undefined
|
|
84
|
+
? `MemTree is still indexing ${what}. Retry in a few minutes.`
|
|
85
|
+
: `MemTree is still indexing ${what} (~${durationText(seconds)}). Retry then.`;
|
|
86
|
+
}
|
|
87
|
+
/** "MemTree timed out after 139 s on this 51 MB request (likely a slow upload). ..." */
|
|
88
|
+
function uploadTimeoutText(cause) {
|
|
89
|
+
const size = cause.bytes > 0 ? ` on this ${megabytesText(cause.bytes)} request` : "";
|
|
90
|
+
// Only a clearly longer wait is worth naming (this try may already have had it).
|
|
91
|
+
const next = cause.nextBudgetMs !== undefined && cause.nextBudgetMs > cause.ms * 1.2
|
|
92
|
+
? `Retry: the next try waits up to ${secondsText(cause.nextBudgetMs)}. `
|
|
93
|
+
: "Retry, ideally on a faster connection. ";
|
|
94
|
+
return `MemTree timed out after ${secondsText(cause.ms)}${size} (likely a slow upload). ${next}` +
|
|
95
|
+
"CCC_COMPRESS_TIMEOUT_MS (ms) raises the base wait.";
|
|
96
|
+
}
|
|
97
|
+
function rebuildingText(secondsLeft) {
|
|
98
|
+
const when = secondsLeft === undefined ? "Retry in a minute."
|
|
99
|
+
: `(~${durationText(secondsLeft)}). Retry then.`;
|
|
100
|
+
return "MemTree is rebuilding this session's compressed history (Claude Code resent " +
|
|
101
|
+
`earlier messages changed)${secondsLeft === undefined ? "." : ""} ${when}`;
|
|
102
|
+
}
|
|
103
|
+
/** "1.2M", "480k", "900": rounded for a one-line message. */
|
|
104
|
+
export function tokensText(tokens) {
|
|
105
|
+
if (tokens >= 1_000_000)
|
|
106
|
+
return `${trimZero((tokens / 1_000_000).toFixed(1))}M`;
|
|
107
|
+
if (tokens >= 1_000)
|
|
108
|
+
return `${Math.round(tokens / 1_000)}k`;
|
|
109
|
+
return String(Math.max(0, Math.round(tokens)));
|
|
110
|
+
}
|
|
111
|
+
/** "3 min", "1.5 h": minutes rounded up, hours from two on. */
|
|
112
|
+
export function durationText(seconds) {
|
|
113
|
+
const minutes = Math.max(1, Math.ceil(seconds / 60));
|
|
114
|
+
if (minutes < 120)
|
|
115
|
+
return `${minutes} min`;
|
|
116
|
+
return `${trimZero((minutes / 60).toFixed(1))} h`;
|
|
117
|
+
}
|
|
118
|
+
function secondsText(ms) {
|
|
119
|
+
return `${Math.max(1, Math.round(ms / 1000))} s`;
|
|
120
|
+
}
|
|
121
|
+
function megabytesText(bytes) {
|
|
122
|
+
return `${Math.max(1, Math.round(bytes / 1_000_000))} MB`;
|
|
123
|
+
}
|
|
124
|
+
function trimZero(text) {
|
|
125
|
+
return text.replace(/\.0$/, "");
|
|
126
|
+
}
|
|
127
|
+
/** `fields` without its undefined values (records stay free of `key: undefined`). */
|
|
128
|
+
function defined(fields) {
|
|
129
|
+
return Object.fromEntries(Object.entries(fields).filter(([, value]) => value !== undefined));
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=refusal-reason.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refusal-reason.js","sourceRoot":"","sources":["../src/refusal-reason.ts"],"names":[],"mappings":"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"}
|
package/dist/reqlog.d.ts
CHANGED
|
@@ -146,6 +146,15 @@ export interface MessagesRecord {
|
|
|
146
146
|
heldMs: number;
|
|
147
147
|
ended?: true;
|
|
148
148
|
};
|
|
149
|
+
/**
|
|
150
|
+
* With indexBehind: what the compress answer said about the lag, for the refusal's ETA
|
|
151
|
+
* (refusal-reason.ts): the server's `memory_ready_in_seconds`, and the tokens it has not
|
|
152
|
+
* indexed yet (its raw prompt tokens less the indexed ones).
|
|
153
|
+
*/
|
|
154
|
+
indexLag?: {
|
|
155
|
+
etaSeconds?: number;
|
|
156
|
+
unindexedTokens?: number;
|
|
157
|
+
};
|
|
149
158
|
/** Body bytes actually sent to Anthropic (after notice strip / compression). */
|
|
150
159
|
forwardedBytes?: number;
|
|
151
160
|
/** forwardedBytes/4 — rough chars→tokens proxy, not a tokenizer count. */
|
|
@@ -184,6 +193,14 @@ export interface MessagesRecord {
|
|
|
184
193
|
* no room): MemTree has the conversation, unlike in an outage.
|
|
185
194
|
*/
|
|
186
195
|
refused?: true;
|
|
196
|
+
/** The HTTP status MemTree answered a failed call with (absent: no answer). */
|
|
197
|
+
status?: number;
|
|
198
|
+
/** The budget this call had (ms): an upload timeout's message says what the next gets. */
|
|
199
|
+
budgetMs?: number;
|
|
200
|
+
/** The budget was raised because this session's previous upload timed out. */
|
|
201
|
+
extendedBudget?: true;
|
|
202
|
+
/** A large upload spent its whole long budget: the refusal says the upload was slow. */
|
|
203
|
+
uploadTimeout?: true;
|
|
187
204
|
/**
|
|
188
205
|
* Timed out while still running: the call went on as the session's preparation,
|
|
189
206
|
* which the next turn at the budget waits for (carryOverCompression).
|
|
@@ -302,6 +319,8 @@ export interface MessagesRecord {
|
|
|
302
319
|
* could not either): a retryable refusal saying so, outside the strike episode.
|
|
303
320
|
*/
|
|
304
321
|
unreachable?: "memtree" | "internet";
|
|
322
|
+
/** What the final refusal said was happening (refusal-reason.ts RefusalCause kind). */
|
|
323
|
+
cause?: "indexing" | "upload-timeout" | "slow-answer" | "rebuilding" | "compress-failed" | "over-budget";
|
|
305
324
|
};
|
|
306
325
|
/** Searchable flag explaining a forward above the advisory compression budget. */
|
|
307
326
|
overBudgetForward?: {
|
package/dist/reqlog.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlog.d.ts","sourceRoot":"","sources":["../src/reqlog.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"reqlog.d.ts","sourceRoot":"","sources":["../src/reqlog.ts"],"names":[],"mappings":"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"}
|
package/dist/reqlog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reqlog.js","sourceRoot":"","sources":["../src/reqlog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAK3C,MAAM,aAAa,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,gCAAgC;AACxE,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,2EAA2E;AAC3E,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,sBAAsB,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AACxD,CAAC;
|
|
1
|
+
{"version":3,"file":"reqlog.js","sourceRoot":"","sources":["../src/reqlog.ts"],"names":[],"mappings":"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"}
|
package/dist/route-fallback.d.ts
CHANGED
|
@@ -36,6 +36,8 @@ export interface FallbackFailureContext {
|
|
|
36
36
|
awaitingIndex?: boolean;
|
|
37
37
|
/** The server's estimate of the indexing left (seconds), when it stated one. */
|
|
38
38
|
indexSecondsLeft?: number;
|
|
39
|
+
/** The final refusal's text (refusal-reason.ts); FINAL_REFUSAL_MESSAGE when absent. */
|
|
40
|
+
refusalMessage?: string;
|
|
39
41
|
now?: number;
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-fallback.d.ts","sourceRoot":"","sources":["../src/route-fallback.ts"],"names":[],"mappings":"AAGA;;oEAEoE;AACpE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAKT;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACnE;AAED,+EAA+E;AAC/E,eAAO,MAAM,sBAAsB,QAAc,CAAC;AAClD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAAc,CAAC;AAC7C,0FAA0F;AAC1F,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,oBAAoB,QAAa,CAAC;AAC/C,4EAA4E;AAC5E,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,eAAO,MAAM,qBAAqB,QAI+B,CAAC;AAElE,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAa9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAfjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CACmE;IAE9F,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA6B;gBAGxC,QAAQ,SAAM;IAC/B,2DAA2D;IAC1C,WAAW,SAAyB,EACpC,cAAc,SAAoB;IAGrD,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,kBAAkB;
|
|
1
|
+
{"version":3,"file":"route-fallback.d.ts","sourceRoot":"","sources":["../src/route-fallback.ts"],"names":[],"mappings":"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"}
|
package/dist/route-fallback.js
CHANGED
|
@@ -51,11 +51,11 @@ export class RouteFallbackFailures {
|
|
|
51
51
|
}
|
|
52
52
|
fail(lane, context = {}) {
|
|
53
53
|
if (context.awaitingIndex) {
|
|
54
|
-
const waiting = this.waitForIndex(lane, context.now ?? Date.now(), context.indexSecondsLeft);
|
|
54
|
+
const waiting = this.waitForIndex(lane, context.now ?? Date.now(), context.indexSecondsLeft, context.refusalMessage);
|
|
55
55
|
if (waiting)
|
|
56
56
|
return waiting;
|
|
57
57
|
}
|
|
58
|
-
return this.strike(lane);
|
|
58
|
+
return this.strike(lane, context.refusalMessage);
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Note MemTree saying the lane's index is still catching up (a held request's 413):
|
|
@@ -98,7 +98,7 @@ export class RouteFallbackFailures {
|
|
|
98
98
|
this.indexWaits.delete(lane);
|
|
99
99
|
}
|
|
100
100
|
/** The bounded three-strike episode: 503, 503, then 400 until delivery. */
|
|
101
|
-
strike(lane) {
|
|
101
|
+
strike(lane, message) {
|
|
102
102
|
const previous = this.failures.get(lane);
|
|
103
103
|
// Fail closed when full rather than evicting a lane and granting it
|
|
104
104
|
// another retry budget. A successful lane frees its slot.
|
|
@@ -107,7 +107,7 @@ export class RouteFallbackFailures {
|
|
|
107
107
|
if (previous !== undefined || this.failures.size < this.capacity) {
|
|
108
108
|
this.failures.set(lane, attempt);
|
|
109
109
|
}
|
|
110
|
-
return attempt <= 2 ? retryError(attempt, "1", RETRY_MESSAGE) : refusal(attempt);
|
|
110
|
+
return attempt <= 2 ? retryError(attempt, "1", RETRY_MESSAGE) : refusal(attempt, message);
|
|
111
111
|
}
|
|
112
112
|
/**
|
|
113
113
|
* A 503 while the lane's wait is within its deadline; a 400 once it passes, or at once
|
|
@@ -118,11 +118,11 @@ export class RouteFallbackFailures {
|
|
|
118
118
|
* or arriving while every wait slot is active, gets no wait (undefined) and falls back
|
|
119
119
|
* to the strikes.
|
|
120
120
|
*/
|
|
121
|
-
waitForIndex(lane, now, secondsLeft) {
|
|
121
|
+
waitForIndex(lane, now, secondsLeft, message) {
|
|
122
122
|
const state = this.track(lane, now, secondsLeft);
|
|
123
123
|
if (state === "untracked")
|
|
124
124
|
return undefined;
|
|
125
|
-
return state === "open" ? this.indexWaitError(lane, secondsLeft) : refusal(3);
|
|
125
|
+
return state === "open" ? this.indexWaitError(lane, secondsLeft) : refusal(3, message);
|
|
126
126
|
}
|
|
127
127
|
/**
|
|
128
128
|
* Start or extend the lane's wait: "open" while the index may still land in time,
|
|
@@ -245,14 +245,14 @@ function retryError(attempt, retryAfter, message) {
|
|
|
245
245
|
body: { type: "error", error: { type: "api_error", message } },
|
|
246
246
|
};
|
|
247
247
|
}
|
|
248
|
-
function refusal(attempt) {
|
|
248
|
+
function refusal(attempt, message = FINAL_REFUSAL_MESSAGE) {
|
|
249
249
|
return {
|
|
250
250
|
status: 400,
|
|
251
251
|
attempt,
|
|
252
252
|
headers: { "x-should-retry": "false" },
|
|
253
253
|
body: {
|
|
254
254
|
type: "error",
|
|
255
|
-
error: { type: "invalid_request_error", message
|
|
255
|
+
error: { type: "invalid_request_error", message },
|
|
256
256
|
},
|
|
257
257
|
};
|
|
258
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-fallback.js","sourceRoot":"","sources":["../src/route-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEhG;;oEAEoE;AACpE,MAAM,UAAU,kBAAkB,CAChC,WAAmB,EACnB,YAAoB,EACpB,YAAoB,EACpB,aAAqB,EACrB,KAAc;IAEd,OAAO,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC,KAAK,CACnE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAChD,IAAI,UAAU,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;QACzE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;AACtD,CAAC;AASD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,CAAC;AAClD;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,GAAG,MAAM,CAAC;AAC7C,0FAA0F;AAC1F,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,GAAG,MAAM,CAAC;AAC/C,4EAA4E;AAC5E,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD,MAAM,CAAC,MAAM,qBAAqB,GAChC,iFAAiF;IACjF,8DAA8D,mBAAmB,GAAG;IACpF,GAAG,oBAAoB,4CAA4C;IACnE,IAAI,mBAAmB,IAAI,uBAAuB,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"route-fallback.js","sourceRoot":"","sources":["../src/route-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A longer compress budget for a session whose last large upload timed out.
|
|
3
|
+
*
|
|
4
|
+
* A compress with nothing else to send (no compressed prefix to ride, a whole request
|
|
5
|
+
* over the window) gets the long budget, scaled by its upload (memtree.ts
|
|
6
|
+
* COMPRESS_TIMEOUT_MS_PER_KIB). On a weak link a ~50 MB body still ran out of it: on
|
|
7
|
+
* 2026-11-12 (session e32c1f3e, 23:35-23:51Z) six turns in a row each timed out at
|
|
8
|
+
* 138.6 s and were refused, every retry with the same budget. So after such a timeout the
|
|
9
|
+
* session's next compress of a large body gets SLOW_UPLOAD_BUDGET_FACTOR times the budget
|
|
10
|
+
* (capped by the caller), and the refusal says so ("the next try waits up to ...").
|
|
11
|
+
* A success, or SLOW_UPLOAD_MEMORY_MS without a retry, ends it.
|
|
12
|
+
*/
|
|
13
|
+
/** Uploads at least this large are slow on size alone (smaller timeouts are the server's). */
|
|
14
|
+
export declare const SLOW_UPLOAD_MIN_BYTES: number;
|
|
15
|
+
/** How much longer the next try may take. */
|
|
16
|
+
export declare const SLOW_UPLOAD_BUDGET_FACTOR = 2;
|
|
17
|
+
/**
|
|
18
|
+
* The raised budget never goes past this (unless the normal one already does): Claude Code
|
|
19
|
+
* waits ~180 s for response headers by the proxy's notes (2.1.319), though 2026-11-12's
|
|
20
|
+
* refusals reached the user after 176-199 s. 240 s keeps the raise modest.
|
|
21
|
+
*/
|
|
22
|
+
export declare const SLOW_UPLOAD_MAX_BUDGET_MS = 240000;
|
|
23
|
+
/** A timeout this old no longer raises the budget. */
|
|
24
|
+
export declare const SLOW_UPLOAD_MEMORY_MS: number;
|
|
25
|
+
export declare class SlowUploads {
|
|
26
|
+
private readonly now;
|
|
27
|
+
private readonly minBytes;
|
|
28
|
+
private readonly timedOutAt;
|
|
29
|
+
constructor(now?: () => number, minBytes?: number);
|
|
30
|
+
/** The budget for a compress of `bytes` in `sessionId`, given its normal `budgetMs`. */
|
|
31
|
+
budgetMs(sessionId: string | undefined, bytes: number, budgetMs: number): number;
|
|
32
|
+
/** Whether the session's next compress of `bytes` gets the longer budget. */
|
|
33
|
+
extended(sessionId: string | undefined, bytes: number): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Note how a compress of `bytes` ended (a timeout only counts on an uncapped long budget,
|
|
36
|
+
* which the caller checks); true when it was a slow upload.
|
|
37
|
+
*/
|
|
38
|
+
settled(sessionId: string | undefined, bytes: number, outcome: "ok" | "timeout" | "other"): boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=slow-upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slow-upload.d.ts","sourceRoot":"","sources":["../src/slow-upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8FAA8F;AAC9F,eAAO,MAAM,qBAAqB,QAAmB,CAAC;AACtD,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,SAAU,CAAC;AACjD,sDAAsD;AACtD,eAAO,MAAM,qBAAqB,QAAc,CAAC;AAGjD,qBAAa,WAAW;IAIpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAJ3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;gBAGrC,GAAG,GAAE,MAAM,MAAiB,EAC5B,QAAQ,SAAwB;IAGnD,wFAAwF;IACxF,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAKhF,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAM/D;;;OAGG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,GAChF,OAAO;CAeX"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A longer compress budget for a session whose last large upload timed out.
|
|
3
|
+
*
|
|
4
|
+
* A compress with nothing else to send (no compressed prefix to ride, a whole request
|
|
5
|
+
* over the window) gets the long budget, scaled by its upload (memtree.ts
|
|
6
|
+
* COMPRESS_TIMEOUT_MS_PER_KIB). On a weak link a ~50 MB body still ran out of it: on
|
|
7
|
+
* 2026-11-12 (session e32c1f3e, 23:35-23:51Z) six turns in a row each timed out at
|
|
8
|
+
* 138.6 s and were refused, every retry with the same budget. So after such a timeout the
|
|
9
|
+
* session's next compress of a large body gets SLOW_UPLOAD_BUDGET_FACTOR times the budget
|
|
10
|
+
* (capped by the caller), and the refusal says so ("the next try waits up to ...").
|
|
11
|
+
* A success, or SLOW_UPLOAD_MEMORY_MS without a retry, ends it.
|
|
12
|
+
*/
|
|
13
|
+
/** Uploads at least this large are slow on size alone (smaller timeouts are the server's). */
|
|
14
|
+
export const SLOW_UPLOAD_MIN_BYTES = 20 * 1024 * 1024;
|
|
15
|
+
/** How much longer the next try may take. */
|
|
16
|
+
export const SLOW_UPLOAD_BUDGET_FACTOR = 2;
|
|
17
|
+
/**
|
|
18
|
+
* The raised budget never goes past this (unless the normal one already does): Claude Code
|
|
19
|
+
* waits ~180 s for response headers by the proxy's notes (2.1.319), though 2026-11-12's
|
|
20
|
+
* refusals reached the user after 176-199 s. 240 s keeps the raise modest.
|
|
21
|
+
*/
|
|
22
|
+
export const SLOW_UPLOAD_MAX_BUDGET_MS = 240_000;
|
|
23
|
+
/** A timeout this old no longer raises the budget. */
|
|
24
|
+
export const SLOW_UPLOAD_MEMORY_MS = 30 * 60_000;
|
|
25
|
+
const MAX_SESSIONS = 128;
|
|
26
|
+
export class SlowUploads {
|
|
27
|
+
now;
|
|
28
|
+
minBytes;
|
|
29
|
+
timedOutAt = new Map();
|
|
30
|
+
constructor(now = Date.now, minBytes = SLOW_UPLOAD_MIN_BYTES) {
|
|
31
|
+
this.now = now;
|
|
32
|
+
this.minBytes = minBytes;
|
|
33
|
+
}
|
|
34
|
+
/** The budget for a compress of `bytes` in `sessionId`, given its normal `budgetMs`. */
|
|
35
|
+
budgetMs(sessionId, bytes, budgetMs) {
|
|
36
|
+
if (!this.extended(sessionId, bytes))
|
|
37
|
+
return budgetMs;
|
|
38
|
+
return Math.max(budgetMs, Math.min(budgetMs * SLOW_UPLOAD_BUDGET_FACTOR, SLOW_UPLOAD_MAX_BUDGET_MS));
|
|
39
|
+
}
|
|
40
|
+
/** Whether the session's next compress of `bytes` gets the longer budget. */
|
|
41
|
+
extended(sessionId, bytes) {
|
|
42
|
+
if (sessionId === undefined || bytes < this.minBytes)
|
|
43
|
+
return false;
|
|
44
|
+
const at = this.timedOutAt.get(sessionId);
|
|
45
|
+
return at !== undefined && this.now() - at < SLOW_UPLOAD_MEMORY_MS;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Note how a compress of `bytes` ended (a timeout only counts on an uncapped long budget,
|
|
49
|
+
* which the caller checks); true when it was a slow upload.
|
|
50
|
+
*/
|
|
51
|
+
settled(sessionId, bytes, outcome) {
|
|
52
|
+
if (sessionId === undefined)
|
|
53
|
+
return false;
|
|
54
|
+
// Only a large upload getting through ends it (not a subagent's small one, nor a cache hit).
|
|
55
|
+
if (outcome === "ok" && bytes >= this.minBytes) {
|
|
56
|
+
this.timedOutAt.delete(sessionId);
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
if (outcome !== "timeout" || bytes < this.minBytes)
|
|
60
|
+
return false;
|
|
61
|
+
this.timedOutAt.delete(sessionId);
|
|
62
|
+
this.timedOutAt.set(sessionId, this.now());
|
|
63
|
+
while (this.timedOutAt.size > MAX_SESSIONS) {
|
|
64
|
+
this.timedOutAt.delete(this.timedOutAt.keys().next().value);
|
|
65
|
+
}
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=slow-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slow-upload.js","sourceRoot":"","sources":["../src/slow-upload.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8FAA8F;AAC9F,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACtD,6CAA6C;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC;AAC3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AACjD,sDAAsD;AACtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,GAAG,MAAM,CAAC;AACjD,MAAM,YAAY,GAAG,GAAG,CAAC;AAEzB,MAAM,OAAO,WAAW;IAIH;IACA;IAJF,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,YACmB,MAAoB,IAAI,CAAC,GAAG,EAC5B,WAAW,qBAAqB;QADhC,QAAG,GAAH,GAAG,CAAyB;QAC5B,aAAQ,GAAR,QAAQ,CAAwB;IAChD,CAAC;IAEJ,wFAAwF;IACxF,QAAQ,CAAC,SAA6B,EAAE,KAAa,EAAE,QAAgB;QACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QACtD,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,yBAAyB,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACvG,CAAC;IAED,6EAA6E;IAC7E,QAAQ,CAAC,SAA6B,EAAE,KAAa;QACnD,IAAI,SAAS,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,OAAO,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,qBAAqB,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,OAAO,CACL,SAA6B,EAAE,KAAa,EAAE,OAAmC;QAEjF,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC1C,6FAA6F;QAC7F,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3C,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,YAAY,EAAE,CAAC;YAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAM,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const STATUS_LINK_DIR = "statusline";
|
|
2
|
+
export declare const STATUS_LINK_SUFFIX = ".url";
|
|
3
|
+
export declare function statusLinkDir(): string;
|
|
4
|
+
/** The cached link for `sessionId`, or undefined. Never throws. */
|
|
5
|
+
export declare function readStatusLink(sessionId: unknown, dir?: string): string | undefined;
|
|
6
|
+
export declare class StatusLinkFiles {
|
|
7
|
+
readonly dir: string;
|
|
8
|
+
private readonly maxFiles;
|
|
9
|
+
private readonly written;
|
|
10
|
+
private writes;
|
|
11
|
+
constructor(dir?: string, maxFiles?: number);
|
|
12
|
+
/** Record `url` as the session's link; writes only when it changed. Never throws. */
|
|
13
|
+
write(sessionId: string | undefined, url: string | undefined): void;
|
|
14
|
+
private remember;
|
|
15
|
+
/** Keep the newest maxFiles links (by modification time). */
|
|
16
|
+
private prune;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=status-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status-link.d.ts","sourceRoot":"","sources":["../src/status-link.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,eAAe,eAAe,CAAC;AAC5C,eAAO,MAAM,kBAAkB,SAAS,CAAC;AAOzC,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,SAAkB,GAAG,MAAM,GAAG,SAAS,CAS5F;AAED,qBAAa,eAAe;IAId,QAAQ,CAAC,GAAG,EAAE,MAAM;IAAoB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAH7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD,OAAO,CAAC,MAAM,CAAK;gBAEE,GAAG,GAAE,MAAwB,EAAmB,QAAQ,SAAY;IAEzF,qFAAqF;IACrF,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAkBnE,OAAO,CAAC,QAAQ;IAMhB,6DAA6D;IAC7D,OAAO,CAAC,KAAK;CAad"}
|