quotacap 0.0.34 → 0.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.
Files changed (68) hide show
  1. package/README.md +1 -1
  2. package/dist/advisory/engine.d.ts +8 -3
  3. package/dist/advisory/engine.js +80 -48
  4. package/dist/advisory/snapshot.js +37 -21
  5. package/dist/advisory/types.d.ts +28 -2
  6. package/dist/advisory/types.js +3 -0
  7. package/dist/catalog/agy.d.ts +4 -0
  8. package/dist/catalog/agy.js +59 -0
  9. package/dist/catalog/claude.d.ts +3 -0
  10. package/dist/catalog/claude.js +70 -0
  11. package/dist/catalog/codex.d.ts +3 -0
  12. package/dist/catalog/codex.js +55 -0
  13. package/dist/catalog/grok.d.ts +3 -0
  14. package/dist/catalog/grok.js +36 -0
  15. package/dist/catalog/index.d.ts +17 -0
  16. package/dist/catalog/index.js +152 -0
  17. package/dist/catalog/kimi.d.ts +3 -0
  18. package/dist/catalog/kimi.js +51 -0
  19. package/dist/catalog/muse.d.ts +4 -0
  20. package/dist/catalog/muse.js +67 -0
  21. package/dist/catalog/types.d.ts +21 -0
  22. package/dist/catalog/types.js +3 -0
  23. package/dist/cli/advise.js +20 -0
  24. package/dist/cli/clients.d.ts +3 -0
  25. package/dist/cli/clients.js +2 -0
  26. package/dist/cli/models.d.ts +3 -0
  27. package/dist/cli/models.js +134 -0
  28. package/dist/cli/snapshot-source.js +1 -0
  29. package/dist/config.d.ts +3 -0
  30. package/dist/config.js +2 -0
  31. package/dist/format/markdown.d.ts +1 -0
  32. package/dist/format/markdown.js +14 -0
  33. package/dist/format/rows.d.ts +1 -1
  34. package/dist/format/rows.js +24 -4
  35. package/dist/format/terminal.js +18 -1
  36. package/dist/http/server.d.ts +2 -0
  37. package/dist/http/server.js +100 -0
  38. package/dist/mcp/server.d.ts +13 -0
  39. package/dist/mcp/server.js +31 -3
  40. package/dist/runtime/poll.d.ts +13 -0
  41. package/dist/runtime/poll.js +34 -2
  42. package/dist/runtime/service.js +9 -0
  43. package/dist/store/catalogs.d.ts +10 -0
  44. package/dist/store/catalogs.js +64 -0
  45. package/dist/store/db.js +27 -1
  46. package/dist/store/quotas.d.ts +22 -0
  47. package/dist/store/quotas.js +93 -8
  48. package/dist/version.js +1 -1
  49. package/dist/web/src/components/ClosedWeeks.d.ts +16 -0
  50. package/dist/web/src/components/ClosedWeeks.js +102 -0
  51. package/dist/web/src/components/PaceBar.d.ts +17 -5
  52. package/dist/web/src/components/PaceBar.js +51 -8
  53. package/dist/web/src/components/PacingLegend.js +1 -0
  54. package/dist/web/src/components/ProviderCard.js +3 -1
  55. package/dist/web/src/components/ProviderDrawer.js +7 -1
  56. package/dist/web/src/components/ProviderRow.js +3 -1
  57. package/dist/web/src/components/Recommendation.js +12 -3
  58. package/dist/web/src/components/ResetRail.js +2 -0
  59. package/dist/web/src/state.d.ts +20 -1
  60. package/dist/web/src/state.js +1 -0
  61. package/dist/webAssets.js +1 -1
  62. package/dist/webHtml.js +1 -1
  63. package/package.json +1 -1
  64. package/web/dist/assets/index-Cm_QtC0G.js +12 -0
  65. package/web/dist/assets/index-DiOyUuQc.css +1 -0
  66. package/web/dist/index.html +2 -2
  67. package/web/dist/assets/index-CjNVp2Yx.css +0 -1
  68. package/web/dist/assets/index-irnos0UG.js +0 -12
@@ -1,5 +1,5 @@
1
1
  export type Urgency = "burn now" | "use soon" | "slow down" | "save" | "on track";
2
- export type BurnStatus = "at risk" | "on track" | "unknown";
2
+ export type BurnStatus = "at risk" | "watch" | "on track" | "unknown";
3
3
  export type PaceSource = "recent" | "window-average" | "unknown";
4
4
  export type RecommendationBasis = "known-waste" | "unknown-headroom" | "none";
5
5
  export type ExclusionReason = "not-reporting" | "stale" | "reset-passed" | "invalid" | "provider-failed" | null;
@@ -9,6 +9,12 @@ export interface AdvisoryView {
9
9
  remaining: number;
10
10
  idealRate: number;
11
11
  burnRate: number | null;
12
+ /** Measured 24h rolling rate; absent on advisories from a daemon older than the blend. */
13
+ recentRate?: number | null;
14
+ /** History-anchored baseline feeding the blend; null when unavailable. */
15
+ baselineRate?: number | null;
16
+ /** Cumulative position versus elapsed time; null on excluded/unknown branches. */
17
+ aheadOfElapsed?: boolean | null;
12
18
  /** Window-average pace (used % ÷ days elapsed); null before the window start is known. */
13
19
  avgPace: number | null;
14
20
  burnMeasured: boolean;
@@ -27,6 +33,18 @@ export interface RecommendationView {
27
33
  alternatives: unknown[];
28
34
  advisories: AdvisoryView[];
29
35
  }
36
+ export interface WindowCloseView {
37
+ provider: string;
38
+ plan: string | null;
39
+ usedPct: number;
40
+ leftoverPct: number;
41
+ sampledAt: string;
42
+ periodStart: string | null;
43
+ resetsAt: string | null;
44
+ resetsAtEstimated: boolean;
45
+ detectedAt: string;
46
+ reason: "usage-drop" | "resets-at-rolled" | "both";
47
+ }
30
48
  export interface QuotaView {
31
49
  provider: string;
32
50
  plan: string;
@@ -71,6 +89,7 @@ export interface ProviderView {
71
89
  evidence: string[];
72
90
  exclusionReason: ExclusionReason;
73
91
  advisory: AdvisoryView | null;
92
+ lastCloses: WindowCloseView[];
74
93
  }
75
94
  export interface UpdateView {
76
95
  current: string;
@@ -16,6 +16,7 @@ export function toViewModel(s) {
16
16
  harness: p.harness ?? null,
17
17
  description: p.description ?? null,
18
18
  evidence: Array.isArray(p.evidence) ? [...p.evidence] : [],
19
+ lastCloses: Array.isArray(p.lastCloses) ? [...p.lastCloses] : [],
19
20
  }))
20
21
  : [];
21
22
  const advisories = Array.isArray(s.recommendation?.advisories)