@claudexor/daemon 3.5.0 → 3.6.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.
Files changed (41) hide show
  1. package/dist/credential-unusable-ledger.d.ts +59 -0
  2. package/dist/credential-unusable-ledger.d.ts.map +1 -0
  3. package/dist/credential-unusable-ledger.js +117 -0
  4. package/dist/credential-unusable-ledger.js.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +1 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/partition-accounts.d.ts +27 -0
  10. package/dist/partition-accounts.d.ts.map +1 -0
  11. package/dist/partition-accounts.js +21 -0
  12. package/dist/partition-accounts.js.map +1 -0
  13. package/dist/project-partitions.d.ts +10 -0
  14. package/dist/project-partitions.d.ts.map +1 -1
  15. package/dist/project-partitions.js +26 -66
  16. package/dist/project-partitions.js.map +1 -1
  17. package/dist/project-remove.d.ts +11 -0
  18. package/dist/project-remove.d.ts.map +1 -0
  19. package/dist/project-remove.js +67 -0
  20. package/dist/project-remove.js.map +1 -0
  21. package/dist/quota-registry-support.d.ts +16 -0
  22. package/dist/quota-registry-support.d.ts.map +1 -0
  23. package/dist/quota-registry-support.js +66 -0
  24. package/dist/quota-registry-support.js.map +1 -0
  25. package/dist/quota-registry.d.ts +7 -4
  26. package/dist/quota-registry.d.ts.map +1 -1
  27. package/dist/quota-registry.js +19 -74
  28. package/dist/quota-registry.js.map +1 -1
  29. package/dist/thread-lane-checkpoints.d.ts +59 -1
  30. package/dist/thread-lane-checkpoints.d.ts.map +1 -1
  31. package/dist/thread-lane-checkpoints.js +127 -1
  32. package/dist/thread-lane-checkpoints.js.map +1 -1
  33. package/dist/thread-store-support.d.ts +6 -1
  34. package/dist/thread-store-support.d.ts.map +1 -1
  35. package/dist/thread-store-support.js +54 -2
  36. package/dist/thread-store-support.js.map +1 -1
  37. package/dist/threads.d.ts +16 -0
  38. package/dist/threads.d.ts.map +1 -1
  39. package/dist/threads.js +31 -67
  40. package/dist/threads.js.map +1 -1
  41. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-remove.js","sourceRoot":"","sources":["../src/project-remove.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Pure per-snapshot helpers of the QuotaRegistry, split to a smaller owner
3
+ * (complexity ratchet): durable-journal v3.2.0 rollback shaping, snapshot
4
+ * keying, freshness aging, and expired scoped-cooldown pruning. No registry
5
+ * state lives here.
6
+ */
7
+ import { type QuotaConstraint, type QuotaSnapshot } from "@claudexor/schema";
8
+ export declare function snapshotKey(snapshot: QuotaSnapshot): string;
9
+ /** Exact durable payload accepted by the strict v3.2.0 quota schemas. Keep an
10
+ * explicit allowlist at every nested level so a future additive field cannot
11
+ * silently make updater rollback boot-incompatible again. */
12
+ export declare function legacyV320Snapshot(snapshot: QuotaSnapshot): QuotaSnapshot;
13
+ export declare function staleAt(snapshot: QuotaSnapshot, now: number): QuotaSnapshot;
14
+ export declare function isExpiredScopedCooldown(source: QuotaSnapshot["source"], constraint: QuotaConstraint, now: number): boolean;
15
+ export declare function withoutExpiredScopedCooldowns(snapshot: QuotaSnapshot, now: number): QuotaSnapshot | null;
16
+ //# sourceMappingURL=quota-registry-support.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-registry-support.d.ts","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAE3B,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAQ3D;AAED;;6DAE6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAoBzE;AAED,wBAAgB,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa,CAM3E;AAOD,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAC/B,UAAU,EAAE,eAAe,EAC3B,GAAG,EAAE,MAAM,GACV,OAAO,CAQT;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,MAAM,GACV,aAAa,GAAG,IAAI,CAMtB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Pure per-snapshot helpers of the QuotaRegistry, split to a smaller owner
3
+ * (complexity ratchet): durable-journal v3.2.0 rollback shaping, snapshot
4
+ * keying, freshness aging, and expired scoped-cooldown pruning. No registry
5
+ * state lives here.
6
+ */
7
+ import { REACTIVE_COOLDOWN_SOURCE, legacyV320QuotaSource, } from "@claudexor/schema";
8
+ export function snapshotKey(snapshot) {
9
+ const subject = snapshot.subject;
10
+ return [
11
+ subject.harness,
12
+ subject.credential_route,
13
+ subject.subject_id ?? "",
14
+ snapshot.source,
15
+ ].join("\0");
16
+ }
17
+ /** Exact durable payload accepted by the strict v3.2.0 quota schemas. Keep an
18
+ * explicit allowlist at every nested level so a future additive field cannot
19
+ * silently make updater rollback boot-incompatible again. */
20
+ export function legacyV320Snapshot(snapshot) {
21
+ return {
22
+ subject: {
23
+ harness: snapshot.subject.harness,
24
+ credential_route: snapshot.subject.credential_route,
25
+ plan_label: snapshot.subject.plan_label,
26
+ subject_id: snapshot.subject.subject_id,
27
+ },
28
+ constraints: snapshot.constraints.map((constraint) => ({
29
+ id: constraint.id,
30
+ label: constraint.label,
31
+ used_ratio: constraint.used_ratio,
32
+ window_seconds: constraint.window_seconds,
33
+ resets_at: constraint.resets_at,
34
+ cooldown_until: constraint.cooldown_until,
35
+ })),
36
+ source: legacyV320QuotaSource(snapshot.source),
37
+ observed_at: snapshot.observed_at,
38
+ freshness: snapshot.freshness,
39
+ };
40
+ }
41
+ export function staleAt(snapshot, now) {
42
+ if (snapshot.freshness !== "fresh")
43
+ return snapshot;
44
+ const observed = Date.parse(snapshot.observed_at);
45
+ const resetExpired = snapshot.constraints.some((constraint) => resetExpiredAt(constraint, now));
46
+ const tooOld = !Number.isFinite(observed) || now - observed > 5 * 60_000;
47
+ return resetExpired || tooOld ? { ...snapshot, freshness: "stale" } : snapshot;
48
+ }
49
+ function resetExpiredAt(constraint, now) {
50
+ const reset = constraint.resets_at ? Date.parse(constraint.resets_at) : Number.NaN;
51
+ return Number.isFinite(reset) && reset <= now;
52
+ }
53
+ export function isExpiredScopedCooldown(source, constraint, now) {
54
+ // Every reactive cooldown source (the upsertCooldown producers), not a claude-only
55
+ // name check: an expired scoped sibling never hides a newer active one (Q24 generalized).
56
+ return (Object.values(REACTIVE_COOLDOWN_SOURCE).includes(source) &&
57
+ constraint.id.startsWith("cooldown:") &&
58
+ resetExpiredAt(constraint, now));
59
+ }
60
+ export function withoutExpiredScopedCooldowns(snapshot, now) {
61
+ const constraints = snapshot.constraints.filter((constraint) => !isExpiredScopedCooldown(snapshot.source, constraint, now));
62
+ if (constraints.length === snapshot.constraints.length)
63
+ return snapshot;
64
+ return constraints.length === 0 ? null : { ...snapshot, constraints };
65
+ }
66
+ //# sourceMappingURL=quota-registry-support.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quota-registry-support.js","sourceRoot":"","sources":["../src/quota-registry-support.ts"],"names":[],"mappings":"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"}
@@ -51,7 +51,7 @@ export declare class QuotaRegistry {
51
51
  resets_at: string | null;
52
52
  cooldown_until: string | null;
53
53
  }[];
54
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_statusline" | "codex_app_server" | "codex_rollout";
54
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_statusline" | "codex_app_server" | "codex_rollout" | "cursor_rate_limit";
55
55
  observed_at: string;
56
56
  freshness: "fresh" | "stale" | "unknown";
57
57
  availability?: {
@@ -101,7 +101,7 @@ export declare class QuotaRegistry {
101
101
  resets_at: string | null;
102
102
  cooldown_until: string | null;
103
103
  }[];
104
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_statusline" | "codex_app_server" | "codex_rollout";
104
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_statusline" | "codex_app_server" | "codex_rollout" | "cursor_rate_limit";
105
105
  observed_at: string;
106
106
  freshness: "fresh" | "stale" | "unknown";
107
107
  availability?: {
@@ -150,7 +150,7 @@ export declare class QuotaRegistry {
150
150
  resets_at: string | null;
151
151
  cooldown_until: string | null;
152
152
  }[];
153
- source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_statusline" | "codex_app_server" | "codex_rollout";
153
+ source: "agy_command_usage" | "claude_api_retry" | "claude_oauth_usage" | "claude_statusline" | "codex_app_server" | "codex_rollout" | "cursor_rate_limit";
154
154
  observed_at: string;
155
155
  freshness: "fresh" | "stale" | "unknown";
156
156
  availability?: {
@@ -204,7 +204,10 @@ export declare class QuotaRegistry {
204
204
  ingest(harnessId: string, value: unknown): void;
205
205
  upsert(value: QuotaSnapshot): void;
206
206
  private recordUpsert;
207
- removeSubject(harness: string, subjectId: string): number;
207
+ /** `subjectId: null` retires a harness's legacy default/native subject —
208
+ * the unified-accounts migration's quota step (no replay alias: the new row
209
+ * refreshes fresh, legacy null evidence is removed here or ages out). */
210
+ removeSubject(harness: string, subjectId: string | null): number;
208
211
  private appendProjectionMarker;
209
212
  private publishClockTransitionIfNeeded;
210
213
  private projectionSignature;
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry.d.ts","sourceRoot":"","sources":["../src/quota-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAML,KAAK,YAAY,EAEjB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAa3B;;uEAEuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE/D;;iDAEiD;AACjD,MAAM,MAAM,oBAAoB,GAAG,MAAM,YAAY,EAAE,CAAC;AAExD,iEAAiE;AACjE,qBAAa,aAAa;IAiBtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAnB5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D;;iDAE6C;IAC7C,OAAO,CAAC,QAAQ,CAAsB;IACtC;;gDAE4C;IAC5C,OAAO,CAAC,gCAAgC,CAAuB;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE/B;IACJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,YACmB,OAAO,EAAE,cAAc,EACvB,UAAU,GAAE,SAAS,cAAc,EAAO,EAC1C,GAAG,GAAE,MAAM,IAAuB,EAClC,QAAQ,CAAC,EAAE,oBAAoB,YAAA,EA8EjD;IAED,iFAAiF;IACjF,mBAAmB,IAAI,IAAI,CAI1B;IAED,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOH;IAED;;;6EAGyE;IACzE,OAAO,CAAC,eAAe;IAkBjB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEZ;IAED;;8EAE0E;IACpE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAGtB;IAED;qFACiF;YACnE,YAAY;YASZ,mBAAmB;IAsEjC;;;;oBAIgB;IAChB,OAAO,CAAC,iBAAiB;IA2CzB;;8EAE0E;IAC1E,OAAO,CAAC,cAAc;IAOtB;;sEAEkE;IAClE,oBAAoB,IAAI,IAAI,CAG3B;IAED;;wCAEoC;IACpC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5B;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA6B9C;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGjC;IAED,OAAO,CAAC,YAAY;IA6BpB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAWxD;IAED,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,mBAAmB;IAM3B,kBAAkB,IAAI,IAAI,CAEzB;IAED,OAAO,CAAC,cAAc;IAyDtB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,MAAM;CAUf"}
1
+ {"version":3,"file":"quota-registry.d.ts","sourceRoot":"","sources":["../src/quota-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,EAQL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAoB3B;;uEAEuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAE/D;;iDAEiD;AACjD,MAAM,MAAM,oBAAoB,GAAG,MAAM,YAAY,EAAE,CAAC;AAExD,iEAAiE;AACjE,qBAAa,aAAa;IAiBtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAnB5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D;;iDAE6C;IAC7C,OAAO,CAAC,QAAQ,CAAsB;IACtC;;gDAE4C;IAC5C,OAAO,CAAC,gCAAgC,CAAuB;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAE/B;IACJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,qBAAqB,CAAS;IAEtC,YACmB,OAAO,EAAE,cAAc,EACvB,UAAU,GAAE,SAAS,cAAc,EAAO,EAC1C,GAAG,GAAE,MAAM,IAAuB,EAClC,QAAQ,CAAC,EAAE,oBAAoB,YAAA,EA8EjD;IAED,iFAAiF;IACjF,mBAAmB,IAAI,IAAI,CAI1B;IAED,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOH;IAED;;;6EAGyE;IACzE,OAAO,CAAC,eAAe;IAkBjB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAEZ;IAED;;8EAE0E;IACpE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAGtB;IAED;qFACiF;YACnE,YAAY;YASZ,mBAAmB;IAsEjC;;;;oBAIgB;IAChB,OAAO,CAAC,iBAAiB;IA2CzB;;8EAE0E;IAC1E,OAAO,CAAC,cAAc;IAOtB;;sEAEkE;IAClE,oBAAoB,IAAI,IAAI,CAG3B;IAED;;wCAEoC;IACpC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAE5B;IAED,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CA0B9C;IAED,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGjC;IAED,OAAO,CAAC,YAAY;IA8BpB;;6EAEyE;IACzE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAW/D;IAED,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,mBAAmB;IAM3B,kBAAkB,IAAI,IAAI,CAEzB;IAED,OAAO,CAAC,cAAc;IA0DtB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,MAAM;CAUf"}
@@ -1,5 +1,6 @@
1
1
  import { hashJson } from "@claudexor/util";
2
- import { ControlQuotaResponse, HarnessEvent, QuotaAbsence as QuotaAbsenceSchema, QuotaSnapshot as QuotaSnapshotSchema, } from "@claudexor/schema";
2
+ import { ControlQuotaResponse, HarnessEvent, QuotaAbsence as QuotaAbsenceSchema, QuotaSnapshot as QuotaSnapshotSchema, REACTIVE_COOLDOWN_SOURCE, vendorResetDayCooldownEnd, } from "@claudexor/schema";
3
+ import { isExpiredScopedCooldown, legacyV320Snapshot, snapshotKey, staleAt, withoutExpiredScopedCooldowns, } from "./quota-registry-support.js";
3
4
  import { QuotaPollPacer } from "./quota-poll-pacer.js";
4
5
  import { QuotaRefreshCoordinator } from "./quota-refresh-coordinator.js";
5
6
  import { quotaSubjectIdentity, remainingQuotaRefreshDemand } from "./quota-refresh-demand.js";
@@ -311,10 +312,7 @@ export class QuotaRegistry {
311
312
  freshness: "fresh",
312
313
  });
313
314
  }
314
- // agy is deliberately ABSENT: its adapter emits no `rate_limit` event, so
315
- // an agy branch here would be a knob with no producer (INV-022/023). It
316
- // joins the list in the same change that makes the adapter emit one.
317
- if (event.data.rate_limit && credentialRoute && ["codex", "claude"].includes(harnessId)) {
315
+ if (event.data.rate_limit && credentialRoute && harnessId in REACTIVE_COOLDOWN_SOURCE) {
318
316
  this.upsertCooldown(harnessId, credentialRoute, event.data);
319
317
  }
320
318
  }
@@ -325,15 +323,14 @@ export class QuotaRegistry {
325
323
  recordUpsert(value) {
326
324
  const snapshot = QuotaSnapshotSchema.parse(value);
327
325
  // Runtime updates share this journal with the prior installed engine during
328
- // rollback. v3.2.0's strict QuotaConstraint schema predates
329
- // applies_to_models. Prepare the exact current snapshot under a new record
330
- // type that an older runtime safely ignores, then commit it with the
331
- // established, explicitly v3.2.0-shaped upsert. Current replay applies a
332
- // prepare only when its matching base follows, so a stop between the two
333
- // records loses neither the prior projection nor model scope: the journal
334
- // appends the pair under one recovery intent and one fsync.
326
+ // rollback. v3.2.0's strict schemas predate applies_to_models AND the
327
+ // cursor_rate_limit source. Prepare the exact current snapshot under a new
328
+ // record type an older runtime safely ignores, then commit it with the
329
+ // established v3.2.0-shaped upsert; current replay applies a prepare only
330
+ // when its matching base follows (one recovery intent, one fsync).
335
331
  const legacy = legacyV320Snapshot(snapshot);
336
- if (snapshot.constraints.some((constraint) => constraint.applies_to_models !== undefined)) {
332
+ if (snapshot.constraints.some((constraint) => constraint.applies_to_models !== undefined) ||
333
+ legacy.source !== snapshot.source) {
337
334
  this.journal.appendBatch([
338
335
  {
339
336
  type: SCOPED_PREPARED,
@@ -351,10 +348,13 @@ export class QuotaRegistry {
351
348
  }
352
349
  this.apply(snapshot);
353
350
  }
351
+ /** `subjectId: null` retires a harness's legacy default/native subject —
352
+ * the unified-accounts migration's quota step (no replay alias: the new row
353
+ * refreshes fresh, legacy null evidence is removed here or ages out). */
354
354
  removeSubject(harness, subjectId) {
355
355
  // Fence held official work at the earliest credential-deletion boundary.
356
356
  this.noteCredentialChange();
357
- const removed = [...this.snapshots.values()].filter((snapshot) => snapshot.subject.harness === harness && snapshot.subject.subject_id === subjectId).length;
357
+ const removed = [...this.snapshots.values()].filter((snapshot) => snapshot.subject.harness === harness && (snapshot.subject.subject_id ?? null) === subjectId).length;
358
358
  this.journal.append(REMOVED, { harness, subject_id: subjectId });
359
359
  this.remove(harness, subjectId);
360
360
  this.appendProjectionMarker("direct_mutation", this.now().toISOString());
@@ -390,12 +390,13 @@ export class QuotaRegistry {
390
390
  const reset = event.rate_limit?.resets_at ?? null;
391
391
  const delay = event.rate_limit?.retry_delay_ms ?? null;
392
392
  const now = this.now();
393
+ // A day-granular vendor reset (A1 payload) bounds the cooldown at end-of-day UTC.
393
394
  const cooldownUntil = reset ??
395
+ vendorResetDayCooldownEnd(event.payload) ??
394
396
  new Date(now.getTime() + (typeof delay === "number" ? delay : 5 * 60_000)).toISOString();
395
- const source = harness === "claude" ? "claude_api_retry" : "codex_rollout";
396
- // The event's profile stamp scopes the cooldown to ITS subject (release
397
- // wave round-11): a profiled limit must never cool the default subject
398
- // down (or vice versa), and two profiles never share one quota key.
397
+ const source = REACTIVE_COOLDOWN_SOURCE[harness] ?? "codex_rollout";
398
+ // The event's profile stamp scopes the cooldown to ITS subject (round-11):
399
+ // a profiled limit never cools the default subject down (or vice versa).
399
400
  const profileId = event.credential_profile_id ?? null;
400
401
  const constraintId = event.rate_limit?.constraint_id
401
402
  ? `cooldown:${event.rate_limit.constraint_id}`
@@ -445,60 +446,4 @@ export class QuotaRegistry {
445
446
  return removed;
446
447
  }
447
448
  }
448
- function snapshotKey(snapshot) {
449
- const subject = snapshot.subject;
450
- return [
451
- subject.harness,
452
- subject.credential_route,
453
- subject.subject_id ?? "",
454
- snapshot.source,
455
- ].join("\0");
456
- }
457
- /** Exact durable payload accepted by the strict v3.2.0 quota schemas. Keep an
458
- * explicit allowlist at every nested level so a future additive field cannot
459
- * silently make updater rollback boot-incompatible again. */
460
- function legacyV320Snapshot(snapshot) {
461
- return {
462
- subject: {
463
- harness: snapshot.subject.harness,
464
- credential_route: snapshot.subject.credential_route,
465
- plan_label: snapshot.subject.plan_label,
466
- subject_id: snapshot.subject.subject_id,
467
- },
468
- constraints: snapshot.constraints.map((constraint) => ({
469
- id: constraint.id,
470
- label: constraint.label,
471
- used_ratio: constraint.used_ratio,
472
- window_seconds: constraint.window_seconds,
473
- resets_at: constraint.resets_at,
474
- cooldown_until: constraint.cooldown_until,
475
- })),
476
- source: snapshot.source,
477
- observed_at: snapshot.observed_at,
478
- freshness: snapshot.freshness,
479
- };
480
- }
481
- function staleAt(snapshot, now) {
482
- if (snapshot.freshness !== "fresh")
483
- return snapshot;
484
- const observed = Date.parse(snapshot.observed_at);
485
- const resetExpired = snapshot.constraints.some((constraint) => resetExpiredAt(constraint, now));
486
- const tooOld = !Number.isFinite(observed) || now - observed > 5 * 60_000;
487
- return resetExpired || tooOld ? { ...snapshot, freshness: "stale" } : snapshot;
488
- }
489
- function resetExpiredAt(constraint, now) {
490
- const reset = constraint.resets_at ? Date.parse(constraint.resets_at) : Number.NaN;
491
- return Number.isFinite(reset) && reset <= now;
492
- }
493
- function isExpiredScopedCooldown(source, constraint, now) {
494
- return (source === "claude_api_retry" &&
495
- constraint.id.startsWith("cooldown:") &&
496
- resetExpiredAt(constraint, now));
497
- }
498
- function withoutExpiredScopedCooldowns(snapshot, now) {
499
- const constraints = snapshot.constraints.filter((constraint) => !isExpiredScopedCooldown(snapshot.source, constraint, now));
500
- if (constraints.length === snapshot.constraints.length)
501
- return snapshot;
502
- return constraints.length === 0 ? null : { ...snapshot, constraints };
503
- }
504
449
  //# sourceMappingURL=quota-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"quota-registry.js","sourceRoot":"","sources":["../src/quota-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-registry.js","sourceRoot":"","sources":["../src/quota-registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ContinuityDisclosure, LaneCheckpoint, Session, ThreadTurn } from "@claudexor/schema";
1
+ import type { ContinuityDisclosure, LaneCheckpoint, Session, Thread, ThreadTurn } from "@claudexor/schema";
2
2
  /**
3
3
  * Pure lane-checkpoint helpers (INV-137). Extracted from `threads.ts` so the
4
4
  * store file stays under the new-file complexity cap (INV-124); the ThreadStore
@@ -28,6 +28,64 @@ export declare function resumeMapFrom(sessions: readonly Session[], threadId: st
28
28
  sessionId: string;
29
29
  profileId: string | null;
30
30
  }>;
31
+ /**
32
+ * The thread's durable per-harness ACCOUNT BINDINGS (unified account model,
33
+ * D-U1 order 2): the account an UNPINNED turn stays on — derived from the
34
+ * lane evidence the thread already persists (its latest live session, else
35
+ * its latest lane checkpoint, per harness), never a second hand-maintained
36
+ * record. Null-profile lanes (unmigrated legacy state) bind nothing.
37
+ */
38
+ export declare function accountBindingsFrom(sessions: readonly Session[], checkpoints: readonly LaneCheckpoint[], threadId: string): Record<string, string>;
39
+ /**
40
+ * Native resume map for an UNPINNED thread turn: the latest live session per
41
+ * harness REGARDLESS of profile. Each entry carries its own profile, and the
42
+ * engine boundary (`resumeSessionForProfile`) re-verifies it against the
43
+ * RESOLVED account, so a pool switch away from the recorded account starts
44
+ * fresh instead of crossing profiles (INV-135/137).
45
+ */
46
+ export declare function resumeMapAutoFrom(sessions: readonly Session[], threadId: string): Record<string, {
47
+ sessionId: string;
48
+ profileId: string | null;
49
+ }>;
50
+ /**
51
+ * Unified-accounts migration mutation (INV-137, one unit with the lane-home
52
+ * rename): live sessions recorded under the null engine-default subject are
53
+ * rewritten IN PLACE onto the auto-registered row id, and every
54
+ * `<thread>::<harness>::default` lane checkpoint gains a row under the new
55
+ * lane id (the legacy row stays inert — exact-id lookups never see it).
56
+ * Idempotent: a second run finds no null sessions and no missing checkpoints.
57
+ * A row-lane checkpoint that already exists is never moved backwards (a crash
58
+ * between phases followed by new turns may have advanced it) — but a BEHIND
59
+ * row checkpoint advances forward to the ::default lane's turn: a rollback
60
+ * leaves the old row-lane checkpoint in place while new turns advance the
61
+ * default lane, and resuming the stale checkpoint on re-migration would
62
+ * re-inject context the lane already saw. Recency is judged by updated_at,
63
+ * the only ordering evidence at this layer.
64
+ */
65
+ export declare function migrateNullProfileContinuityMutation(sessions: readonly Session[], checkpoints: readonly LaneCheckpoint[], harnessId: string, rowId: string): {
66
+ sessions: Session[];
67
+ checkpoints: LaneCheckpoint[];
68
+ };
69
+ /**
70
+ * The supported downgrade path's reverse of the migration mutation: sessions
71
+ * recorded under the migrated row id return to the null engine-default
72
+ * subject a legacy engine resumes, and each row-lane checkpoint re-seeds the
73
+ * `::default` lane id at its turn.
74
+ */
75
+ export declare function rollbackProfileContinuityMutation(sessions: readonly Session[], checkpoints: readonly LaneCheckpoint[], harnessId: string, rowId: string): {
76
+ sessions: Session[];
77
+ checkpoints: LaneCheckpoint[];
78
+ };
79
+ /**
80
+ * Credential-profile deletion mutation (INV-135): clear every matching scalar
81
+ * thread pin (pins predate a harness discriminator, so any harness's pin at
82
+ * the id clears rather than leave an unrunnable route) and stale the deleted
83
+ * account's live sessions.
84
+ */
85
+ export declare function invalidateCredentialProfileMutation(threads: readonly Thread[], sessions: readonly Session[], harnessId: string, profileId: string): {
86
+ threads: Thread[];
87
+ sessions: Session[];
88
+ };
31
89
  /** Mark a session row stale (its profile was deleted): drop the resumable id. */
32
90
  export declare function staleSession(session: Session): Session;
33
91
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"thread-lane-checkpoints.d.ts","sourceRoot":"","sources":["../src/thread-lane-checkpoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AASnG;;;;;;;GAOG;AAEH,sFAAsF;AACtF,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE5F;AAED,0EAA0E;AAC1E,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GACb,cAAc,CAShB;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,GAAG,IAAI,CAGf;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CACnC,WAAW,EAAE,SAAS,cAAc,EAAE,EACtC,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CAElB;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,GAAG,UAAU,CAK9F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,MAAM,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAajE;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAQtD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,GAAG,SAAS,EAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAgBT"}
1
+ {"version":3,"file":"thread-lane-checkpoints.d.ts","sourceRoot":"","sources":["../src/thread-lane-checkpoints.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ContinuityDisclosure as ContinuityDisclosureSchema, LaneCheckpoint as LaneCheckpointSchema, Session as SessionSchema, ThreadTurn as ThreadTurnSchema, } from "@claudexor/schema";
1
+ import { ContinuityDisclosure as ContinuityDisclosureSchema, LaneCheckpoint as LaneCheckpointSchema, Session as SessionSchema, Thread as ThreadSchema, ThreadTurn as ThreadTurnSchema, } from "@claudexor/schema";
2
2
  import { newId, nowIso } from "@claudexor/util";
3
3
  /**
4
4
  * Pure lane-checkpoint helpers (INV-137). Extracted from `threads.ts` so the
@@ -58,6 +58,132 @@ export function resumeMapFrom(sessions, threadId, profileId) {
58
58
  }
59
59
  return map;
60
60
  }
61
+ /**
62
+ * The thread's durable per-harness ACCOUNT BINDINGS (unified account model,
63
+ * D-U1 order 2): the account an UNPINNED turn stays on — derived from the
64
+ * lane evidence the thread already persists (its latest live session, else
65
+ * its latest lane checkpoint, per harness), never a second hand-maintained
66
+ * record. Null-profile lanes (unmigrated legacy state) bind nothing.
67
+ */
68
+ export function accountBindingsFrom(sessions, checkpoints, threadId) {
69
+ const bindings = {};
70
+ const freshest = {};
71
+ const consider = (harnessId, profileId, updatedAt) => {
72
+ if (!profileId)
73
+ return;
74
+ const seen = freshest[harnessId];
75
+ if (seen !== undefined && seen >= updatedAt)
76
+ return;
77
+ freshest[harnessId] = updatedAt;
78
+ bindings[harnessId] = profileId;
79
+ };
80
+ for (const s of sessions) {
81
+ if (s.thread_id !== threadId || s.state !== "live")
82
+ continue;
83
+ consider(s.harness_id, s.profile_id ?? null, s.updated_at);
84
+ }
85
+ for (const c of checkpoints) {
86
+ if (c.thread_id !== threadId)
87
+ continue;
88
+ consider(c.harness_id, c.profile_id ?? null, c.updated_at);
89
+ }
90
+ return bindings;
91
+ }
92
+ /**
93
+ * Native resume map for an UNPINNED thread turn: the latest live session per
94
+ * harness REGARDLESS of profile. Each entry carries its own profile, and the
95
+ * engine boundary (`resumeSessionForProfile`) re-verifies it against the
96
+ * RESOLVED account, so a pool switch away from the recorded account starts
97
+ * fresh instead of crossing profiles (INV-135/137).
98
+ */
99
+ export function resumeMapAutoFrom(sessions, threadId) {
100
+ const map = {};
101
+ const freshest = {};
102
+ for (const s of sessions) {
103
+ if (s.thread_id !== threadId || s.state !== "live" || !s.native_session_id)
104
+ continue;
105
+ const seen = freshest[s.harness_id];
106
+ if (seen !== undefined && seen >= s.updated_at)
107
+ continue;
108
+ freshest[s.harness_id] = s.updated_at;
109
+ map[s.harness_id] = { sessionId: s.native_session_id, profileId: s.profile_id ?? null };
110
+ }
111
+ return map;
112
+ }
113
+ /**
114
+ * Unified-accounts migration mutation (INV-137, one unit with the lane-home
115
+ * rename): live sessions recorded under the null engine-default subject are
116
+ * rewritten IN PLACE onto the auto-registered row id, and every
117
+ * `<thread>::<harness>::default` lane checkpoint gains a row under the new
118
+ * lane id (the legacy row stays inert — exact-id lookups never see it).
119
+ * Idempotent: a second run finds no null sessions and no missing checkpoints.
120
+ * A row-lane checkpoint that already exists is never moved backwards (a crash
121
+ * between phases followed by new turns may have advanced it) — but a BEHIND
122
+ * row checkpoint advances forward to the ::default lane's turn: a rollback
123
+ * leaves the old row-lane checkpoint in place while new turns advance the
124
+ * default lane, and resuming the stale checkpoint on re-migration would
125
+ * re-inject context the lane already saw. Recency is judged by updated_at,
126
+ * the only ordering evidence at this layer.
127
+ */
128
+ export function migrateNullProfileContinuityMutation(sessions, checkpoints, harnessId, rowId) {
129
+ const now = nowIso();
130
+ const migratedSessions = sessions
131
+ .filter((s) => s.harness_id === harnessId && (s.profile_id ?? null) === null)
132
+ .map((s) => SessionSchema.parse({ ...s, profile_id: rowId, updated_at: now }));
133
+ const migratedCheckpoints = [];
134
+ for (const checkpoint of checkpoints) {
135
+ if (checkpoint.harness_id !== harnessId || (checkpoint.profile_id ?? null) !== null)
136
+ continue;
137
+ const migrated = makeLaneCheckpoint(checkpoint.thread_id, harnessId, rowId, checkpoint.turn_id);
138
+ const existing = checkpoints.find((c) => c.id === migrated.id);
139
+ if (existing) {
140
+ const behind = existing.turn_id !== checkpoint.turn_id && existing.updated_at < checkpoint.updated_at;
141
+ if (behind)
142
+ migratedCheckpoints.push(migrated);
143
+ continue;
144
+ }
145
+ migratedCheckpoints.push(migrated);
146
+ }
147
+ return { sessions: migratedSessions, checkpoints: migratedCheckpoints };
148
+ }
149
+ /**
150
+ * The supported downgrade path's reverse of the migration mutation: sessions
151
+ * recorded under the migrated row id return to the null engine-default
152
+ * subject a legacy engine resumes, and each row-lane checkpoint re-seeds the
153
+ * `::default` lane id at its turn.
154
+ */
155
+ export function rollbackProfileContinuityMutation(sessions, checkpoints, harnessId, rowId) {
156
+ const now = nowIso();
157
+ const rolledSessions = sessions
158
+ .filter((s) => s.harness_id === harnessId && s.profile_id === rowId)
159
+ .map((s) => SessionSchema.parse({ ...s, profile_id: null, updated_at: now }));
160
+ const rolledCheckpoints = [];
161
+ for (const checkpoint of checkpoints) {
162
+ if (checkpoint.harness_id !== harnessId || checkpoint.profile_id !== rowId)
163
+ continue;
164
+ rolledCheckpoints.push(makeLaneCheckpoint(checkpoint.thread_id, harnessId, null, checkpoint.turn_id));
165
+ }
166
+ return { sessions: rolledSessions, checkpoints: rolledCheckpoints };
167
+ }
168
+ /**
169
+ * Credential-profile deletion mutation (INV-135): clear every matching scalar
170
+ * thread pin (pins predate a harness discriminator, so any harness's pin at
171
+ * the id clears rather than leave an unrunnable route) and stale the deleted
172
+ * account's live sessions.
173
+ */
174
+ export function invalidateCredentialProfileMutation(threads, sessions, harnessId, profileId) {
175
+ const now = nowIso();
176
+ return {
177
+ threads: threads
178
+ .filter((thread) => thread.credential_profile_id === profileId)
179
+ .map((thread) => ThreadSchema.parse({ ...thread, credential_profile_id: null, updated_at: now })),
180
+ sessions: sessions
181
+ .filter((session) => session.harness_id === harnessId &&
182
+ session.profile_id === profileId &&
183
+ session.state === "live")
184
+ .map(staleSession),
185
+ };
186
+ }
61
187
  /** Mark a session row stale (its profile was deleted): drop the resumable id. */
62
188
  export function staleSession(session) {
63
189
  return SessionSchema.parse({
@@ -1 +1 @@
1
- {"version":3,"file":"thread-lane-checkpoints.js","sourceRoot":"","sources":["../src/thread-lane-checkpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-lane-checkpoints.js","sourceRoot":"","sources":["../src/thread-lane-checkpoints.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { LaneCheckpoint, Session, Thread, ThreadTurn } from "@claudexor/schema";
2
- import type { CreateThreadInput, CreateTurnInput } from "./threads.js";
2
+ import type { CreateThreadInput, CreateTurnInput, UpdateThreadInput } from "./threads.js";
3
3
  /**
4
4
  * Pure ThreadStore support: the journal mutation codec and the idempotency
5
5
  * digests. Extracted from `threads.ts` so the store file stays under the
@@ -43,4 +43,9 @@ export declare function upsert<T extends {
43
43
  export declare function assertUnique(items: Array<{
44
44
  id: string;
45
45
  }>, kind: string): void;
46
+ /** Construct a NEW thread from its create input (defaults documented inline). */
47
+ export declare function buildNewThread(input: CreateThreadInput): Thread;
48
+ /** Apply an UpdateThreadInput patch; a primary outside the (non-empty) pool
49
+ * coerces to null (Auto) rather than persisting an incoherent state. */
50
+ export declare function mergeThreadPatch(thread: Thread, patch: UpdateThreadInput): Thread;
46
51
  //# sourceMappingURL=thread-store-support.d.ts.map