@adhdev/mesh-shared 1.0.58-rc.7 → 1.0.58-rc.8

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.
@@ -51,6 +51,25 @@ export interface MeshNodeFactsProviderQuota {
51
51
  status: string;
52
52
  session: MeshNodeFactsQuotaWindow | null;
53
53
  weekly: MeshNodeFactsQuotaWindow | null;
54
+ /** 30-day billing-style window, only for providers that report one
55
+ * (cursor-cli). Promoted from the index signature 2026-08-24 so readers
56
+ * can render it typed — an 'ok' cursor snapshot often carries ONLY this
57
+ * axis, and a reader that looks at session/weekly alone misreads a
58
+ * healthy reading as a failure. */
59
+ monthly?: MeshNodeFactsQuotaWindow | null;
60
+ /** Per-pool quota buckets, only for providers whose plan has more than one
61
+ * pool (antigravity-cli: Gemini vs Claude/GPT groups, each with a 5h and
62
+ * a weekly bucket). `session`/`weekly` above collapse these to the WORST
63
+ * bucket per window (the routing-safe headline); the buckets carry the
64
+ * per-pool detail a reader should surface. Promoted from the index
65
+ * signature 2026-08-24, same reasoning as `monthly`. */
66
+ buckets?: Array<{
67
+ name?: string;
68
+ usedPercent?: number;
69
+ windowMinutes?: number;
70
+ resetsAt?: number | null;
71
+ [extra: string]: unknown;
72
+ }> | null;
54
73
  /** Unix ms of the snapshot itself — older than the bundle's reportedAt. */
55
74
  updatedAt: number;
56
75
  error: string | null;
@@ -136,7 +155,7 @@ export interface MeshNodeFacts {
136
155
  machineNickname?: string;
137
156
  /**
138
157
  * Per-provider quota snapshots, keyed by QuotaProvider id ('claude-cli',
139
- * 'codex-cli', 'kimi'). Consumed by ROUTING as well as observation: the
158
+ * 'codex-cli', 'cursor-cli', 'kimi'). Consumed by ROUTING as well as observation: the
140
159
  * coordinator's quota gate / spread bonus (daemon-core mesh-quota-routing.ts,
141
160
  * thresholds in RepoMeshPolicy.quotaRouting) reads exactly this shape, so
142
161
  * field renames here are a routing-contract change, not a cosmetic one.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adhdev/mesh-shared",
3
- "version": "1.0.58-rc.7",
3
+ "version": "1.0.58-rc.8",
4
4
  "description": "ADHDev mesh-shared — pure mesh/git status normalizers shared by daemon-core and web-core",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/node-facts.ts CHANGED
@@ -54,6 +54,25 @@ export interface MeshNodeFactsProviderQuota {
54
54
  status: string
55
55
  session: MeshNodeFactsQuotaWindow | null
56
56
  weekly: MeshNodeFactsQuotaWindow | null
57
+ /** 30-day billing-style window, only for providers that report one
58
+ * (cursor-cli). Promoted from the index signature 2026-08-24 so readers
59
+ * can render it typed — an 'ok' cursor snapshot often carries ONLY this
60
+ * axis, and a reader that looks at session/weekly alone misreads a
61
+ * healthy reading as a failure. */
62
+ monthly?: MeshNodeFactsQuotaWindow | null
63
+ /** Per-pool quota buckets, only for providers whose plan has more than one
64
+ * pool (antigravity-cli: Gemini vs Claude/GPT groups, each with a 5h and
65
+ * a weekly bucket). `session`/`weekly` above collapse these to the WORST
66
+ * bucket per window (the routing-safe headline); the buckets carry the
67
+ * per-pool detail a reader should surface. Promoted from the index
68
+ * signature 2026-08-24, same reasoning as `monthly`. */
69
+ buckets?: Array<{
70
+ name?: string
71
+ usedPercent?: number
72
+ windowMinutes?: number
73
+ resetsAt?: number | null
74
+ [extra: string]: unknown
75
+ }> | null
57
76
  /** Unix ms of the snapshot itself — older than the bundle's reportedAt. */
58
77
  updatedAt: number
59
78
  error: string | null
@@ -141,7 +160,7 @@ export interface MeshNodeFacts {
141
160
  machineNickname?: string
142
161
  /**
143
162
  * Per-provider quota snapshots, keyed by QuotaProvider id ('claude-cli',
144
- * 'codex-cli', 'kimi'). Consumed by ROUTING as well as observation: the
163
+ * 'codex-cli', 'cursor-cli', 'kimi'). Consumed by ROUTING as well as observation: the
145
164
  * coordinator's quota gate / spread bonus (daemon-core mesh-quota-routing.ts,
146
165
  * thresholds in RepoMeshPolicy.quotaRouting) reads exactly this shape, so
147
166
  * field renames here are a routing-contract change, not a cosmetic one.
@@ -246,6 +265,7 @@ export const QUOTA_SUPPORTED_PROVIDERS: readonly string[] = [
246
265
  'antigravity-cli',
247
266
  'claude-cli',
248
267
  'codex-cli',
268
+ 'cursor-cli',
249
269
  'grok-cli',
250
270
  'kimi',
251
271
  'opencode',