@lucascouts/claude-agent-acp-plus 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-usage.d.ts +12 -1
- package/dist/account-usage.d.ts.map +1 -1
- package/dist/account-usage.js +6 -0
- package/dist/acp-agent.d.ts +33 -0
- package/dist/acp-agent.d.ts.map +1 -1
- package/dist/acp-agent.js +120 -2
- package/dist/quota-cache.d.ts +70 -0
- package/dist/quota-cache.d.ts.map +1 -0
- package/dist/quota-cache.js +138 -0
- package/package.json +1 -1
package/dist/account-usage.d.ts
CHANGED
|
@@ -31,6 +31,11 @@ export type AccountQuotaWindow = {
|
|
|
31
31
|
/** Emitted only once a live event has measured it. */
|
|
32
32
|
isUsingOverage?: boolean;
|
|
33
33
|
};
|
|
34
|
+
/** Where one emitted window comes from: the wire kind, and the report entry behind it. */
|
|
35
|
+
/** The slice of a usage report that describes plan windows, and nothing else.
|
|
36
|
+
* Structurally satisfied by `SDKControlGetUsageResponse` and by a cached
|
|
37
|
+
* sample, which is the point: the two callers hand over the same two fields. */
|
|
38
|
+
export type QuotaLimitsReport = Pick<SDKControlGetUsageResponse, "rate_limits_available" | "rate_limits">;
|
|
34
39
|
/** 0..100 -> 0..1, CLAMPED to [0,1]. undefined for null/undefined/non-finite. */
|
|
35
40
|
export declare function normalizeUtilization(value: number | null | undefined): number | undefined;
|
|
36
41
|
/** ISO 8601 -> Unix seconds (floored). undefined for null/undefined/unparseable. */
|
|
@@ -85,7 +90,13 @@ export declare class AccountUsageTracker {
|
|
|
85
90
|
/**
|
|
86
91
|
* Every window the report carries, in wire shape. Empty list when
|
|
87
92
|
* `rate_limits_available` is false or `rate_limits` is null.
|
|
93
|
+
*
|
|
94
|
+
* The parameter is narrowed to the two fields actually read, not the whole
|
|
95
|
+
* `SDKControlGetUsageResponse`. That is what lets a sample shared between
|
|
96
|
+
* processes (quota-cache.ts) be handed here without carrying the rest of the
|
|
97
|
+
* report with it -- the rest is session-scoped (this session's cost, this
|
|
98
|
+
* session's token totals) and belongs to nobody else.
|
|
88
99
|
*/
|
|
89
|
-
windowsFrom(report:
|
|
100
|
+
windowsFrom(report: QuotaLimitsReport): AccountQuotaWindow[];
|
|
90
101
|
}
|
|
91
102
|
//# sourceMappingURL=account-usage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../src/account-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEnG,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,sDAAsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;
|
|
1
|
+
{"version":3,"file":"account-usage.d.ts","sourceRoot":"","sources":["../src/account-usage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,KAAK,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEnG,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,yEAAyE;AACzE,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,sDAAsD;IACtD,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAqCF,0FAA0F;AAC1F;;iFAEiF;AACjF,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,0BAA0B,EAC1B,uBAAuB,GAAG,aAAa,CACxC,CAAC;AAoBF,iFAAiF;AACjF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAkBzF;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAWnF;AAED,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAI3F;AAkHD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,SAAS,EAAE,MAAM,GAChB,MAAM,CAWR;AA8BD;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAE9D;;;;OAIG;IACH,OAAO,CAAC,aAAa,CAA4B;IAEjD,uEAAuE;IACvE,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IA8B5C;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAwBjB;;;;;;;;;OASG;IACH,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,EAAE;CAyC7D"}
|
package/dist/account-usage.js
CHANGED
|
@@ -290,6 +290,12 @@ export class AccountUsageTracker {
|
|
|
290
290
|
/**
|
|
291
291
|
* Every window the report carries, in wire shape. Empty list when
|
|
292
292
|
* `rate_limits_available` is false or `rate_limits` is null.
|
|
293
|
+
*
|
|
294
|
+
* The parameter is narrowed to the two fields actually read, not the whole
|
|
295
|
+
* `SDKControlGetUsageResponse`. That is what lets a sample shared between
|
|
296
|
+
* processes (quota-cache.ts) be handed here without carrying the rest of the
|
|
297
|
+
* report with it -- the rest is session-scoped (this session's cost, this
|
|
298
|
+
* session's token totals) and belongs to nobody else.
|
|
293
299
|
*/
|
|
294
300
|
windowsFrom(report) {
|
|
295
301
|
// R1.5: the flag governs, not the presence of data. A report can carry a
|
package/dist/acp-agent.d.ts
CHANGED
|
@@ -206,6 +206,11 @@ type Turn = {
|
|
|
206
206
|
/** Settles after the ACP prompt request completes, regardless of outcome. */
|
|
207
207
|
completion?: Promise<void>;
|
|
208
208
|
};
|
|
209
|
+
/** Resolve the poll interval from the environment, clamped. An unparseable or
|
|
210
|
+
* negative value falls back to the default rather than disabling the refresh:
|
|
211
|
+
* a typo should not silently return the bars to the stale behaviour this
|
|
212
|
+
* exists to fix. Exactly `0` disables, because that is the only way to ask. */
|
|
213
|
+
export declare function quotaPollIntervalMs(raw?: string | undefined): number;
|
|
209
214
|
export type Session = {
|
|
210
215
|
query: Query;
|
|
211
216
|
input: Pushable<SDKUserMessage>;
|
|
@@ -408,6 +413,14 @@ export type Session = {
|
|
|
408
413
|
* active turn settles normally so the backstop never fires after a clean
|
|
409
414
|
* cancel. */
|
|
410
415
|
forceCancelTimer?: ReturnType<typeof setTimeout>;
|
|
416
|
+
/** Repeating timer that refreshes the account quota windows while this session
|
|
417
|
+
* is idle. Armed at the end of the first turn rather than at session
|
|
418
|
+
* establishment: before then a control request is not serviced at all
|
|
419
|
+
* (issues #886/#880), so an earlier timer would only log failures. Cleared in
|
|
420
|
+
* `closeQueryStream` — the one point every teardown path passes through --
|
|
421
|
+
* so it cannot outlive the stream it queries. Undefined while polling is
|
|
422
|
+
* disabled or before the first turn settles. */
|
|
423
|
+
accountUsageTimer?: ReturnType<typeof setInterval>;
|
|
411
424
|
emitRawSDKMessages: boolean | SDKMessageFilter[];
|
|
412
425
|
/** Whether nested subagent text/thinking is forwarded to the ACP client.
|
|
413
426
|
* Enabled by either the ACP capability or the pre-existing SDK option. */
|
|
@@ -886,7 +899,27 @@ export declare class ClaudeAcpAgent {
|
|
|
886
899
|
* only that the request failed and why) and the previously reported windows
|
|
887
900
|
* are left standing, because nothing was sent.
|
|
888
901
|
*/
|
|
902
|
+
/** Fetch the account's quota windows and publish them to this session.
|
|
903
|
+
*
|
|
904
|
+
* `allowCache` is the difference between the two callers. A turn ending and a
|
|
905
|
+
* session being established are moments when THIS session's own consumption
|
|
906
|
+
* just changed, so they always fetch. The idle poll has no such reason: it is
|
|
907
|
+
* asking about an account, and every other adapter process on the desktop is
|
|
908
|
+
* asking the same question about the same account. It reads the shared sample
|
|
909
|
+
* instead -- see quota-cache.ts for why sharing, not tighter intervals, is
|
|
910
|
+
* what makes separate windows agree. */
|
|
889
911
|
private publishAccountUsage;
|
|
912
|
+
/** Start the idle refresh of the account quota windows for this session.
|
|
913
|
+
*
|
|
914
|
+
* Idempotent, and deliberately called at the end of every turn rather than
|
|
915
|
+
* once: the first call arms, the rest return immediately, so no caller has to
|
|
916
|
+
* know whether this is turn one.
|
|
917
|
+
*
|
|
918
|
+
* The tick does nothing while a turn is in flight. That turn's own end
|
|
919
|
+
* already refreshes the windows, and a second control request would buy the
|
|
920
|
+
* same answer twice — the same reasoning that excludes autonomous cycles at
|
|
921
|
+
* the end-of-turn call site. */
|
|
922
|
+
private armAccountUsagePolling;
|
|
890
923
|
private publishGoalFromPrompt;
|
|
891
924
|
private publishRuntimeGoal;
|
|
892
925
|
/** Steer the session per the ACP steering wire protocol: inject a follow-up
|
package/dist/acp-agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acp-agent.d.ts","sourceRoot":"","sources":["../src/acp-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/acp-agent.js
CHANGED
|
@@ -31,6 +31,7 @@ import { acceptedPlanToolResult, ExitPlanCoordinator, executionDiagnostic, exitP
|
|
|
31
31
|
import { DEFAULT_AGENT_ID, EFFORT_CONFIG_ID } from "./session-config-ids.js";
|
|
32
32
|
import { parseToolResultMeta } from "./tool-result-meta.js";
|
|
33
33
|
import { AccountUsageTracker } from "./account-usage.js";
|
|
34
|
+
import { readFreshLimits, sharedSampleMaxAgeMs, writeLimits } from "./quota-cache.js";
|
|
34
35
|
import { ACCOUNT_CONFIG_ID, accountForValue, accountInForce, createAccountConfigOption, envForAccount, readDeclaredAccounts, } from "./accounts.js";
|
|
35
36
|
import { isUsageCommandText, structuredUsageMarkdown } from "./usage-markdown.js";
|
|
36
37
|
export { DEFAULT_AGENT_ID, EFFORT_CONFIG_ID } from "./session-config-ids.js";
|
|
@@ -115,6 +116,37 @@ function parseSteerRequest(params) {
|
|
|
115
116
|
_meta: _meta,
|
|
116
117
|
};
|
|
117
118
|
}
|
|
119
|
+
/** How often the account quota windows are refreshed while a session sits idle,
|
|
120
|
+
* in milliseconds; `0` disables polling entirely.
|
|
121
|
+
*
|
|
122
|
+
* Without this the windows move at only three moments: session establishment,
|
|
123
|
+
* the end of every turn, and a pushed `rate_limit_event`. None of them is time
|
|
124
|
+
* — so a five-hour window that resets while nobody is prompting keeps showing
|
|
125
|
+
* the old utilization, and the bar is wrong in the one direction that matters
|
|
126
|
+
* (it under-reports how much is available) until the next turn ends.
|
|
127
|
+
*
|
|
128
|
+
* The floor is not timidity: each tick costs one control request, and neither
|
|
129
|
+
* the five-hour nor the seven-day window can move fast enough for a tighter
|
|
130
|
+
* loop to show anything a 15-second one would miss. */
|
|
131
|
+
const QUOTA_POLL_DEFAULT_MS = 60_000;
|
|
132
|
+
const QUOTA_POLL_FLOOR_MS = 15_000;
|
|
133
|
+
/** Resolve the poll interval from the environment, clamped. An unparseable or
|
|
134
|
+
* negative value falls back to the default rather than disabling the refresh:
|
|
135
|
+
* a typo should not silently return the bars to the stale behaviour this
|
|
136
|
+
* exists to fix. Exactly `0` disables, because that is the only way to ask. */
|
|
137
|
+
export function quotaPollIntervalMs(raw = process.env.CLAUDE_ACP_QUOTA_POLL_MS) {
|
|
138
|
+
if (raw === undefined || raw.trim() === "") {
|
|
139
|
+
return QUOTA_POLL_DEFAULT_MS;
|
|
140
|
+
}
|
|
141
|
+
const parsed = Number(raw);
|
|
142
|
+
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
143
|
+
return QUOTA_POLL_DEFAULT_MS;
|
|
144
|
+
}
|
|
145
|
+
if (parsed === 0) {
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
return Math.max(parsed, QUOTA_POLL_FLOOR_MS);
|
|
149
|
+
}
|
|
118
150
|
/** Result-message origin kinds that mark an AUTONOMOUS cycle — work the
|
|
119
151
|
* model did on its own (a task-notification followup, a peer/coordinator/
|
|
120
152
|
* observer message it handled) rather than the user's prompt. Absent,
|
|
@@ -1119,13 +1151,42 @@ export class ClaudeAcpAgent {
|
|
|
1119
1151
|
* only that the request failed and why) and the previously reported windows
|
|
1120
1152
|
* are left standing, because nothing was sent.
|
|
1121
1153
|
*/
|
|
1122
|
-
|
|
1154
|
+
/** Fetch the account's quota windows and publish them to this session.
|
|
1155
|
+
*
|
|
1156
|
+
* `allowCache` is the difference between the two callers. A turn ending and a
|
|
1157
|
+
* session being established are moments when THIS session's own consumption
|
|
1158
|
+
* just changed, so they always fetch. The idle poll has no such reason: it is
|
|
1159
|
+
* asking about an account, and every other adapter process on the desktop is
|
|
1160
|
+
* asking the same question about the same account. It reads the shared sample
|
|
1161
|
+
* instead -- see quota-cache.ts for why sharing, not tighter intervals, is
|
|
1162
|
+
* what makes separate windows agree. */
|
|
1163
|
+
async publishAccountUsage(sessionId, session, { allowCache = false } = {}) {
|
|
1123
1164
|
try {
|
|
1124
1165
|
// Not `getUsage`: this awful spelling is the only name the real `Query`
|
|
1125
1166
|
// answers to, and it is written out here rather than hidden behind a
|
|
1126
1167
|
// helper so a rename lands as one named failure in the log below, not as
|
|
1127
1168
|
// a quiet degradation to no report at all.
|
|
1128
|
-
|
|
1169
|
+
// `skipBehaviors` drops the local-transcript scan that fills the report's
|
|
1170
|
+
// `behaviors` section. Nothing here reads it — `windowsFrom` touches only
|
|
1171
|
+
// `rate_limits_available` and `rate_limits` — so on every call, not just
|
|
1172
|
+
// the polled ones, that scan was pure cost. `/usage` still asks for the
|
|
1173
|
+
// full report, because it renders those contributions.
|
|
1174
|
+
// A sample another process already paid for, when this call is allowed to
|
|
1175
|
+
// take one. `null` covers every failure the cache can have, so a broken
|
|
1176
|
+
// cache degrades to exactly the behaviour that existed before it.
|
|
1177
|
+
const cached = allowCache
|
|
1178
|
+
? await readFreshLimits(sharedSampleMaxAgeMs(quotaPollIntervalMs()))
|
|
1179
|
+
: null;
|
|
1180
|
+
const report = cached ??
|
|
1181
|
+
(await session.query.usage_EXPERIMENTAL_MAY_CHANGE_DO_NOT_RELY_ON_THIS_API_YET({
|
|
1182
|
+
skipBehaviors: true,
|
|
1183
|
+
}));
|
|
1184
|
+
if (!cached) {
|
|
1185
|
+
// Fired, not awaited: the other processes benefit from this sample, but
|
|
1186
|
+
// this session's own client must not wait on a filesystem write to see
|
|
1187
|
+
// its bars. `writeLimits` never rejects.
|
|
1188
|
+
void writeLimits(report);
|
|
1189
|
+
}
|
|
1129
1190
|
// The session can be torn down or recreated while the request is in
|
|
1130
1191
|
// flight (provider switch, a changed cwd on session/load). A successor
|
|
1131
1192
|
// must not inherit its predecessor's windows.
|
|
@@ -1162,6 +1223,50 @@ export class ClaudeAcpAgent {
|
|
|
1162
1223
|
this.logger.error(`Session ${sessionId}: structured usage report unavailable: ${error}`);
|
|
1163
1224
|
}
|
|
1164
1225
|
}
|
|
1226
|
+
/** Start the idle refresh of the account quota windows for this session.
|
|
1227
|
+
*
|
|
1228
|
+
* Idempotent, and deliberately called at the end of every turn rather than
|
|
1229
|
+
* once: the first call arms, the rest return immediately, so no caller has to
|
|
1230
|
+
* know whether this is turn one.
|
|
1231
|
+
*
|
|
1232
|
+
* The tick does nothing while a turn is in flight. That turn's own end
|
|
1233
|
+
* already refreshes the windows, and a second control request would buy the
|
|
1234
|
+
* same answer twice — the same reasoning that excludes autonomous cycles at
|
|
1235
|
+
* the end-of-turn call site. */
|
|
1236
|
+
armAccountUsagePolling(sessionId, session) {
|
|
1237
|
+
if (session.accountUsageTimer) {
|
|
1238
|
+
return;
|
|
1239
|
+
}
|
|
1240
|
+
const intervalMs = quotaPollIntervalMs();
|
|
1241
|
+
if (intervalMs === 0) {
|
|
1242
|
+
return;
|
|
1243
|
+
}
|
|
1244
|
+
// Closure-local rather than a Session field: it guards this timer alone, and
|
|
1245
|
+
// a slow report must not let ticks pile up into a queue of duplicate control
|
|
1246
|
+
// requests against a session that is already struggling to answer one.
|
|
1247
|
+
let inFlight = false;
|
|
1248
|
+
const timer = setInterval(() => {
|
|
1249
|
+
// Re-resolve through the map. A provider update replaces the Session
|
|
1250
|
+
// object under the same id and the replacement arms its own timer, so an
|
|
1251
|
+
// orphaned closure must retire rather than keep polling a husk.
|
|
1252
|
+
if (this.sessions[sessionId] !== session || session.queryClosed) {
|
|
1253
|
+
clearInterval(timer);
|
|
1254
|
+
return;
|
|
1255
|
+
}
|
|
1256
|
+
if (session.turnQueue?.length || session.activeTurn || inFlight) {
|
|
1257
|
+
return;
|
|
1258
|
+
}
|
|
1259
|
+
inFlight = true;
|
|
1260
|
+
// `publishAccountUsage` never rejects — it logs and returns — so this
|
|
1261
|
+
// cannot become an unhandled rejection, and `finally` always re-opens.
|
|
1262
|
+
void this.publishAccountUsage(sessionId, session, { allowCache: true }).finally(() => {
|
|
1263
|
+
inFlight = false;
|
|
1264
|
+
});
|
|
1265
|
+
}, intervalMs);
|
|
1266
|
+
// A quota refresh is never a reason to keep the process alive.
|
|
1267
|
+
timer.unref?.();
|
|
1268
|
+
session.accountUsageTimer = timer;
|
|
1269
|
+
}
|
|
1165
1270
|
async publishGoalFromPrompt(sessionId, prompt, commandUuid) {
|
|
1166
1271
|
const goalUpdate = goalUpdateFromPrompt(prompt);
|
|
1167
1272
|
if (goalUpdate !== undefined) {
|
|
@@ -3196,6 +3301,10 @@ export class ClaudeAcpAgent {
|
|
|
3196
3301
|
// the trailing idle is, and a stalled control request there is
|
|
3197
3302
|
// the same exposure `fetchContextUsedTokens` already accepts.
|
|
3198
3303
|
await this.publishAccountUsage(params.sessionId, session);
|
|
3304
|
+
// A settled turn is the proof that control requests are being
|
|
3305
|
+
// serviced (before the first one they are not — #886/#880), so
|
|
3306
|
+
// this is the earliest honest moment to start the idle refresh.
|
|
3307
|
+
this.armAccountUsagePolling(params.sessionId, session);
|
|
3199
3308
|
}
|
|
3200
3309
|
}
|
|
3201
3310
|
break;
|
|
@@ -4068,6 +4177,15 @@ export class ClaudeAcpAgent {
|
|
|
4068
4177
|
}
|
|
4069
4178
|
session.queryClosed = true;
|
|
4070
4179
|
session.consumer = undefined;
|
|
4180
|
+
// Every teardown path reaches this method, which is why the quota timer is
|
|
4181
|
+
// cleared here and nowhere else: a `clearInterval` repeated at each of the
|
|
4182
|
+
// four call sites is one merge away from missing the fifth. A session whose
|
|
4183
|
+
// stream is closed cannot answer the usage control request anyway, so a
|
|
4184
|
+
// surviving timer would only log a failure a minute, forever.
|
|
4185
|
+
if (session.accountUsageTimer) {
|
|
4186
|
+
clearInterval(session.accountUsageTimer);
|
|
4187
|
+
session.accountUsageTimer = undefined;
|
|
4188
|
+
}
|
|
4071
4189
|
session.settingsManager.dispose();
|
|
4072
4190
|
session.input.end();
|
|
4073
4191
|
session.query.close();
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One quota sample per machine per interval, shared between adapter processes.
|
|
3
|
+
*
|
|
4
|
+
* The plan windows are a fact about an ACCOUNT, but they were fetched per
|
|
5
|
+
* SESSION. On a desktop running ten Zed windows that is ten identical control
|
|
6
|
+
* requests per interval for one number -- and, worse, ten samples taken at ten
|
|
7
|
+
* different instants. The number genuinely moves between them (other sessions
|
|
8
|
+
* consume, and old requests age out of the five-hour window), so every window
|
|
9
|
+
* showed a different, individually truthful percentage. Measured 2026-09-09:
|
|
10
|
+
* one instance at 15% beside two at 19%, and `five_hour` observed going
|
|
11
|
+
* 0.15 -> 0.18 -> 0.15 inside two minutes with nothing prompted.
|
|
12
|
+
*
|
|
13
|
+
* Shortening the interval makes that WORSE, not better: it samples the moving
|
|
14
|
+
* number more often. Agreement has to come from sharing the sample, not from
|
|
15
|
+
* hoping the clocks line up.
|
|
16
|
+
*
|
|
17
|
+
* What is cached is the REPORT's two rate-limit fields, never the derived
|
|
18
|
+
* windows. `AccountUsageTracker.statusFor` applies a status this session
|
|
19
|
+
* measured from its own live `rate_limit_event` (R1.6), and that memory is
|
|
20
|
+
* session-scoped by design -- caching the derived windows would hand one
|
|
21
|
+
* session's measured `rejected` to another. Caching the raw fields lets every
|
|
22
|
+
* session derive its own.
|
|
23
|
+
*
|
|
24
|
+
* Everything here fails soft. A cache that cannot be read or written is a cache
|
|
25
|
+
* miss, never an error: the refresh it exists to cheapen must still happen.
|
|
26
|
+
*/
|
|
27
|
+
import type { QuotaLimitsReport } from "./account-usage.js";
|
|
28
|
+
/** The two fields `windowsFrom` reads. Nothing else is cached -- the report also
|
|
29
|
+
* carries this session's cost and token totals, which are nobody else's. */
|
|
30
|
+
export type CachedLimits = QuotaLimitsReport;
|
|
31
|
+
/**
|
|
32
|
+
* How old a shared sample may be and still be used, for a given tick interval.
|
|
33
|
+
*
|
|
34
|
+
* Deliberately SHORTER than the interval. Equal, and whether a process re-fetches
|
|
35
|
+
* on its own tick turns on sub-millisecond timing: its own sample is then exactly
|
|
36
|
+
* one interval old at the boundary, so a write that landed a hair late reads as
|
|
37
|
+
* fresh and the tick silently skips. Nothing breaks -- the data is still within
|
|
38
|
+
* an interval -- but the behaviour stops being predictable, and a test that
|
|
39
|
+
* asserts it becomes a coin toss.
|
|
40
|
+
*
|
|
41
|
+
* At nine tenths both cases are decided by a wide margin: a process's OWN last
|
|
42
|
+
* sample is reliably stale at its next tick, and a sample another process took
|
|
43
|
+
* mid-interval is reliably fresh. The account is still sampled about once per
|
|
44
|
+
* interval, which is the whole point.
|
|
45
|
+
*/
|
|
46
|
+
export declare function sharedSampleMaxAgeMs(intervalMs: number): number;
|
|
47
|
+
/** `XDG_RUNTIME_DIR` is the right home: per-user, mode 0700, on tmpfs, and
|
|
48
|
+
* cleared at logout, so a stale sample can never outlive the desktop that
|
|
49
|
+
* produced it. `tmpdir()` is the fallback for hosts without it, where the mode
|
|
50
|
+
* on the file itself is what protects the sample. */
|
|
51
|
+
export declare function quotaCachePath(): string;
|
|
52
|
+
/**
|
|
53
|
+
* The cached sample, when it is younger than `maxAgeMs`; `null` otherwise.
|
|
54
|
+
*
|
|
55
|
+
* `null` is returned for every failure too -- missing file, unparseable JSON,
|
|
56
|
+
* a clock that moved backwards. The caller's contract is "fetch on null", so a
|
|
57
|
+
* broken cache degrades to exactly the behaviour that existed before it.
|
|
58
|
+
*/
|
|
59
|
+
export declare function readFreshLimits(maxAgeMs: number, now?: number): Promise<CachedLimits | null>;
|
|
60
|
+
/**
|
|
61
|
+
* Publish a freshly fetched sample for the other processes.
|
|
62
|
+
*
|
|
63
|
+
* Written to a per-pid temp file and renamed, because `rename(2)` is atomic
|
|
64
|
+
* within a directory: a reader either sees the whole previous sample or the
|
|
65
|
+
* whole new one, never a half-written file. Two processes racing produces two
|
|
66
|
+
* fetches and one surviving sample, which is the harmless outcome -- the reads
|
|
67
|
+
* are idempotent and the loser's work is simply discarded.
|
|
68
|
+
*/
|
|
69
|
+
export declare function writeLimits(limits: CachedLimits, now?: number): Promise<void>;
|
|
70
|
+
//# sourceMappingURL=quota-cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-cache.d.ts","sourceRoot":"","sources":["../src/quota-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAK5D;6EAC6E;AAC7E,MAAM,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAyB7C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED;;;sDAGsD;AACtD,wBAAgB,cAAc,IAAI,MAAM,CAGvC;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAmB,GACvB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAqB9B;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/F"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One quota sample per machine per interval, shared between adapter processes.
|
|
3
|
+
*
|
|
4
|
+
* The plan windows are a fact about an ACCOUNT, but they were fetched per
|
|
5
|
+
* SESSION. On a desktop running ten Zed windows that is ten identical control
|
|
6
|
+
* requests per interval for one number -- and, worse, ten samples taken at ten
|
|
7
|
+
* different instants. The number genuinely moves between them (other sessions
|
|
8
|
+
* consume, and old requests age out of the five-hour window), so every window
|
|
9
|
+
* showed a different, individually truthful percentage. Measured 2026-09-09:
|
|
10
|
+
* one instance at 15% beside two at 19%, and `five_hour` observed going
|
|
11
|
+
* 0.15 -> 0.18 -> 0.15 inside two minutes with nothing prompted.
|
|
12
|
+
*
|
|
13
|
+
* Shortening the interval makes that WORSE, not better: it samples the moving
|
|
14
|
+
* number more often. Agreement has to come from sharing the sample, not from
|
|
15
|
+
* hoping the clocks line up.
|
|
16
|
+
*
|
|
17
|
+
* What is cached is the REPORT's two rate-limit fields, never the derived
|
|
18
|
+
* windows. `AccountUsageTracker.statusFor` applies a status this session
|
|
19
|
+
* measured from its own live `rate_limit_event` (R1.6), and that memory is
|
|
20
|
+
* session-scoped by design -- caching the derived windows would hand one
|
|
21
|
+
* session's measured `rejected` to another. Caching the raw fields lets every
|
|
22
|
+
* session derive its own.
|
|
23
|
+
*
|
|
24
|
+
* Everything here fails soft. A cache that cannot be read or written is a cache
|
|
25
|
+
* miss, never an error: the refresh it exists to cheapen must still happen.
|
|
26
|
+
*/
|
|
27
|
+
import { createHash, randomUUID } from "node:crypto";
|
|
28
|
+
import { promises as fs } from "node:fs";
|
|
29
|
+
import * as os from "node:os";
|
|
30
|
+
import * as path from "node:path";
|
|
31
|
+
/**
|
|
32
|
+
* A cache is only shareable between processes answering for the SAME account.
|
|
33
|
+
*
|
|
34
|
+
* The api-key entry is the case that makes this mandatory rather than tidy: a
|
|
35
|
+
* session authenticated by `ANTHROPIC_API_KEY` reports `rate_limits_available:
|
|
36
|
+
* false` and no windows at all. Sharing one file with a subscription session
|
|
37
|
+
* would let it publish that emptiness to every other window on the desktop.
|
|
38
|
+
*
|
|
39
|
+
* The key is a digest. The API key itself is hashed before it contributes, so
|
|
40
|
+
* two different keys cannot collide while neither appears in a filename.
|
|
41
|
+
*/
|
|
42
|
+
function scopeKey() {
|
|
43
|
+
const apiKey = process.env.ANTHROPIC_API_KEY;
|
|
44
|
+
const scope = [
|
|
45
|
+
process.env.ANTHROPIC_CONFIG_DIR ?? "",
|
|
46
|
+
process.env.CLAUDE_CONFIG_DIR ?? "",
|
|
47
|
+
apiKey ? createHash("sha256").update(apiKey).digest("hex") : "",
|
|
48
|
+
].join("\0");
|
|
49
|
+
return createHash("sha256").update(scope).digest("hex").slice(0, 16);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* How old a shared sample may be and still be used, for a given tick interval.
|
|
53
|
+
*
|
|
54
|
+
* Deliberately SHORTER than the interval. Equal, and whether a process re-fetches
|
|
55
|
+
* on its own tick turns on sub-millisecond timing: its own sample is then exactly
|
|
56
|
+
* one interval old at the boundary, so a write that landed a hair late reads as
|
|
57
|
+
* fresh and the tick silently skips. Nothing breaks -- the data is still within
|
|
58
|
+
* an interval -- but the behaviour stops being predictable, and a test that
|
|
59
|
+
* asserts it becomes a coin toss.
|
|
60
|
+
*
|
|
61
|
+
* At nine tenths both cases are decided by a wide margin: a process's OWN last
|
|
62
|
+
* sample is reliably stale at its next tick, and a sample another process took
|
|
63
|
+
* mid-interval is reliably fresh. The account is still sampled about once per
|
|
64
|
+
* interval, which is the whole point.
|
|
65
|
+
*/
|
|
66
|
+
export function sharedSampleMaxAgeMs(intervalMs) {
|
|
67
|
+
return Math.floor(intervalMs * 0.9);
|
|
68
|
+
}
|
|
69
|
+
/** `XDG_RUNTIME_DIR` is the right home: per-user, mode 0700, on tmpfs, and
|
|
70
|
+
* cleared at logout, so a stale sample can never outlive the desktop that
|
|
71
|
+
* produced it. `tmpdir()` is the fallback for hosts without it, where the mode
|
|
72
|
+
* on the file itself is what protects the sample. */
|
|
73
|
+
export function quotaCachePath() {
|
|
74
|
+
const dir = process.env.XDG_RUNTIME_DIR || os.tmpdir();
|
|
75
|
+
return path.join(dir, `claude-acp-quota-${scopeKey()}.json`);
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* The cached sample, when it is younger than `maxAgeMs`; `null` otherwise.
|
|
79
|
+
*
|
|
80
|
+
* `null` is returned for every failure too -- missing file, unparseable JSON,
|
|
81
|
+
* a clock that moved backwards. The caller's contract is "fetch on null", so a
|
|
82
|
+
* broken cache degrades to exactly the behaviour that existed before it.
|
|
83
|
+
*/
|
|
84
|
+
export async function readFreshLimits(maxAgeMs, now = Date.now()) {
|
|
85
|
+
try {
|
|
86
|
+
const raw = await fs.readFile(quotaCachePath(), "utf8");
|
|
87
|
+
const parsed = JSON.parse(raw);
|
|
88
|
+
if (typeof parsed?.fetchedAt !== "number") {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const age = now - parsed.fetchedAt;
|
|
92
|
+
// A negative age means the writer's clock is ahead of ours. Treat it as a
|
|
93
|
+
// miss rather than as infinitely fresh, which would pin every window to one
|
|
94
|
+
// sample until the clocks reconciled.
|
|
95
|
+
if (age < 0 || age >= maxAgeMs) {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
rate_limits_available: parsed.rate_limits_available,
|
|
100
|
+
rate_limits: parsed.rate_limits,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Publish a freshly fetched sample for the other processes.
|
|
109
|
+
*
|
|
110
|
+
* Written to a per-pid temp file and renamed, because `rename(2)` is atomic
|
|
111
|
+
* within a directory: a reader either sees the whole previous sample or the
|
|
112
|
+
* whole new one, never a half-written file. Two processes racing produces two
|
|
113
|
+
* fetches and one surviving sample, which is the harmless outcome -- the reads
|
|
114
|
+
* are idempotent and the loser's work is simply discarded.
|
|
115
|
+
*/
|
|
116
|
+
export async function writeLimits(limits, now = Date.now()) {
|
|
117
|
+
const target = quotaCachePath();
|
|
118
|
+
// Unique per WRITE, not per process. One adapter process serves several
|
|
119
|
+
// sessions, so a turn ending in one can coincide with another's tick: sharing
|
|
120
|
+
// a temp path by pid let two writes interleave into it, and `rename` then
|
|
121
|
+
// published the mixture. The corrupt file parsed as a miss, so the damage was
|
|
122
|
+
// silent -- every reader simply fetched, and the cache quietly did nothing.
|
|
123
|
+
const temp = `${target}.${process.pid}.${randomUUID()}.tmp`;
|
|
124
|
+
const body = {
|
|
125
|
+
fetchedAt: now,
|
|
126
|
+
rate_limits_available: limits.rate_limits_available,
|
|
127
|
+
rate_limits: limits.rate_limits,
|
|
128
|
+
};
|
|
129
|
+
try {
|
|
130
|
+
await fs.writeFile(temp, JSON.stringify(body), { mode: 0o600 });
|
|
131
|
+
await fs.rename(temp, target);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// A sample that could not be shared is not a failed refresh: this process
|
|
135
|
+
// already has the answer and is about to publish it to its own client.
|
|
136
|
+
await fs.rm(temp, { force: true }).catch(() => { });
|
|
137
|
+
}
|
|
138
|
+
}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.15.0",
|
|
7
7
|
"description": "ACP adapter for the Claude Agent SDK with VS Code-parity UX for Zed and other ACP clients — checkbox multi-select questions, refusal consent dialog, dynamic agent name. Fork of claude-agent-acp.",
|
|
8
8
|
"main": "dist/lib.js",
|
|
9
9
|
"types": "dist/lib.d.ts",
|