instar 1.3.230 → 1.3.231
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/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +8 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/LlmCircuitBreaker.d.ts +15 -0
- package/dist/core/LlmCircuitBreaker.d.ts.map +1 -1
- package/dist/core/LlmCircuitBreaker.js +37 -1
- package/dist/core/LlmCircuitBreaker.js.map +1 -1
- package/dist/monitoring/ResourceLedger.d.ts +78 -0
- package/dist/monitoring/ResourceLedger.d.ts.map +1 -0
- package/dist/monitoring/ResourceLedger.js +163 -0
- package/dist/monitoring/ResourceLedger.js.map +1 -0
- package/dist/monitoring/ResourceLedgerPoller.d.ts +64 -0
- package/dist/monitoring/ResourceLedgerPoller.d.ts.map +1 -0
- package/dist/monitoring/ResourceLedgerPoller.js +83 -0
- package/dist/monitoring/ResourceLedgerPoller.js.map +1 -0
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +5 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +2 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +49 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/CapabilityIndex.d.ts.map +1 -1
- package/dist/server/CapabilityIndex.js +11 -0
- package/dist/server/CapabilityIndex.js.map +1 -1
- package/dist/server/routes.d.ts +1 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +18 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +47 -47
- package/src/scaffold/templates.ts +5 -0
- package/upgrades/1.3.231.md +39 -0
- package/upgrades/side-effects/resource-ledger-phase-a.md +101 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA6eH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
|
|
@@ -29,6 +29,14 @@ const SHARED_DEFAULTS = {
|
|
|
29
29
|
rateLimitSentinel: {
|
|
30
30
|
enabled: true,
|
|
31
31
|
},
|
|
32
|
+
// ResourceLedger (Phase A) — default-on so every agent durably records its
|
|
33
|
+
// rate-limit events (breaker trips + sentinel detections) instead of losing
|
|
34
|
+
// them on restart. Read-only observability; never gates. Event-driven,
|
|
35
|
+
// negligible cost. enabled:false leaves the ledger null (route 503s).
|
|
36
|
+
// See docs/specs/per-agent-resource-ledger.md.
|
|
37
|
+
resourceLedger: {
|
|
38
|
+
enabled: true,
|
|
39
|
+
},
|
|
32
40
|
// SocketDisconnectSentinel + ActiveWorkSilenceSentinel — default-on so
|
|
33
41
|
// every agent recovers from connection drops and silent mid-task freezes
|
|
34
42
|
// without anyone having to notice manually. enabled:false restores
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,6 +106,8 @@ export declare class LlmCircuitBreaker {
|
|
|
106
106
|
private tripCount;
|
|
107
107
|
private lastReason;
|
|
108
108
|
private lastTrippedAt;
|
|
109
|
+
private tripListeners;
|
|
110
|
+
private recoverListeners;
|
|
109
111
|
private openMs;
|
|
110
112
|
private enabled;
|
|
111
113
|
private readonly now;
|
|
@@ -142,6 +144,19 @@ export declare class LlmCircuitBreaker {
|
|
|
142
144
|
* fallback — it is not the breaker's concern, and staying open on unrelated
|
|
143
145
|
* errors would needlessly keep all LLM features down.
|
|
144
146
|
*/
|
|
147
|
+
/** Subscribe to circuit-open (trip) events. Returns an unsubscribe fn. */
|
|
148
|
+
onTrip(cb: (e: {
|
|
149
|
+
reason: string;
|
|
150
|
+
retryAfterMs?: number;
|
|
151
|
+
ts: number;
|
|
152
|
+
tripCount: number;
|
|
153
|
+
}) => void): () => void;
|
|
154
|
+
/** Subscribe to circuit-recover (open→closed) events. Returns an unsubscribe fn. */
|
|
155
|
+
onRecover(cb: (e: {
|
|
156
|
+
ts: number;
|
|
157
|
+
}) => void): () => void;
|
|
158
|
+
private emitTrip;
|
|
159
|
+
private emitRecover;
|
|
145
160
|
onResolved(): void;
|
|
146
161
|
/**
|
|
147
162
|
* Record that the underlying call was rejected for a usage/rate limit. Opens
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmCircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/core/LlmCircuitBreaker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,6HAA6H;AAC7H,qBAAa,cAAe,SAAQ,KAAK;IAEV,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO;IAD7D,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAU;gBACzB,OAAO,EAAE,MAAM,EAAW,aAAa,CAAC,EAAE,OAAO,YAAA;CAI9D;AAED,wHAAwH;AACxH,qBAAa,mBAAoB,SAAQ,KAAK;IAEhC,QAAQ,CAAC,YAAY,EAAE,MAAM;IADzC,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAU;gBAChB,YAAY,EAAE,MAAM;CAM1C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAE5E;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG;IACrE,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CA4CA;AA6CD,KAAK,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4GAA4G;IAC5G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kCAAkC;IAClC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,iEAAiE;IACjE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAKD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,aAAa,CAAuB;
|
|
1
|
+
{"version":3,"file":"LlmCircuitBreaker.d.ts","sourceRoot":"","sources":["../../src/core/LlmCircuitBreaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -171,6 +171,12 @@ export class LlmCircuitBreaker {
|
|
|
171
171
|
tripCount = 0;
|
|
172
172
|
lastReason = null;
|
|
173
173
|
lastTrippedAt = null;
|
|
174
|
+
// Decoupled trip/recover observers (Phase A of the per-agent ResourceLedger).
|
|
175
|
+
// A durable ledger subscribes here to persist rate-limit events without the
|
|
176
|
+
// breaker depending on monitoring/. Listener errors are SWALLOWED — an
|
|
177
|
+
// observer must NEVER affect the breaker, which gates real work.
|
|
178
|
+
tripListeners = [];
|
|
179
|
+
recoverListeners = [];
|
|
174
180
|
openMs;
|
|
175
181
|
enabled;
|
|
176
182
|
now;
|
|
@@ -242,10 +248,37 @@ export class LlmCircuitBreaker {
|
|
|
242
248
|
* fallback — it is not the breaker's concern, and staying open on unrelated
|
|
243
249
|
* errors would needlessly keep all LLM features down.
|
|
244
250
|
*/
|
|
251
|
+
/** Subscribe to circuit-open (trip) events. Returns an unsubscribe fn. */
|
|
252
|
+
onTrip(cb) {
|
|
253
|
+
this.tripListeners.push(cb);
|
|
254
|
+
return () => { this.tripListeners = this.tripListeners.filter((l) => l !== cb); };
|
|
255
|
+
}
|
|
256
|
+
/** Subscribe to circuit-recover (open→closed) events. Returns an unsubscribe fn. */
|
|
257
|
+
onRecover(cb) {
|
|
258
|
+
this.recoverListeners.push(cb);
|
|
259
|
+
return () => { this.recoverListeners = this.recoverListeners.filter((l) => l !== cb); };
|
|
260
|
+
}
|
|
261
|
+
emitTrip(e) {
|
|
262
|
+
for (const l of this.tripListeners) {
|
|
263
|
+
try {
|
|
264
|
+
l(e);
|
|
265
|
+
}
|
|
266
|
+
catch { /* an observer must never affect the breaker */ }
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
emitRecover(e) {
|
|
270
|
+
for (const l of this.recoverListeners) {
|
|
271
|
+
try {
|
|
272
|
+
l(e);
|
|
273
|
+
}
|
|
274
|
+
catch { /* an observer must never affect the breaker */ }
|
|
275
|
+
}
|
|
276
|
+
}
|
|
245
277
|
onResolved() {
|
|
246
278
|
if (!this.enabled)
|
|
247
279
|
return;
|
|
248
|
-
|
|
280
|
+
const wasOpen = this.state !== 'closed';
|
|
281
|
+
if (wasOpen) {
|
|
249
282
|
this.log(`[llm-circuit] closing: provider responded (was ${this.state})`);
|
|
250
283
|
}
|
|
251
284
|
this.state = 'closed';
|
|
@@ -253,6 +286,8 @@ export class LlmCircuitBreaker {
|
|
|
253
286
|
this.openUntil = 0;
|
|
254
287
|
// Clean slate — the next trip with no retry-after hint gets the full window.
|
|
255
288
|
this.currentOpenMs = this.openMs;
|
|
289
|
+
if (wasOpen)
|
|
290
|
+
this.emitRecover({ ts: this.now() });
|
|
256
291
|
}
|
|
257
292
|
/**
|
|
258
293
|
* Record that the underlying call was rejected for a usage/rate limit. Opens
|
|
@@ -287,6 +322,7 @@ export class LlmCircuitBreaker {
|
|
|
287
322
|
this.openUntil = now + this.currentOpenMs;
|
|
288
323
|
this.probeInFlight = false;
|
|
289
324
|
this.log(`[llm-circuit] OPEN: provider rate-limited — pausing ALL LLM-backed work for ~${Math.round(this.currentOpenMs / 1000)}s (trip #${this.tripCount}); reason: ${this.lastReason}`);
|
|
325
|
+
this.emitTrip({ reason: this.lastReason, retryAfterMs, ts: now, tripCount: this.tripCount });
|
|
290
326
|
}
|
|
291
327
|
/**
|
|
292
328
|
* Bounded wait-and-retry acquire — the coherence-critical primitive.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LlmCircuitBreaker.js","sourceRoot":"","sources":["../../src/core/LlmCircuitBreaker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LlmCircuitBreaker.js","sourceRoot":"","sources":["../../src/core/LlmCircuitBreaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { Database as BetterSqliteDatabase } from 'better-sqlite3';
|
|
2
|
+
/** Canonical event kinds. `circuit-open`/`circuit-recover` come from the breaker
|
|
3
|
+
* (the primary, account-level signal); the throttle/quota/529 kinds come from
|
|
4
|
+
* RateLimitSentinel (session-scoped, secondary — tagged `source`). */
|
|
5
|
+
export type RateLimitEventKind = 'circuit-open' | 'circuit-recover' | 'throttle' | 'quota' | '529';
|
|
6
|
+
export type RateLimitEventSource = 'circuit-breaker' | 'session-sentinel';
|
|
7
|
+
export interface RateLimitEventInput {
|
|
8
|
+
ts: number;
|
|
9
|
+
kind: RateLimitEventKind;
|
|
10
|
+
source: RateLimitEventSource;
|
|
11
|
+
/** Stable per-event sequence within this process — together with ts+source it
|
|
12
|
+
* forms the row id, so same-ms events are distinct and restarts don't replay. */
|
|
13
|
+
seq: number;
|
|
14
|
+
accountKey?: string;
|
|
15
|
+
sessionName?: string;
|
|
16
|
+
reason?: string;
|
|
17
|
+
detail?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface RateLimitSummaryRow {
|
|
20
|
+
/** Headline: breaker trips (the account-level signal). */
|
|
21
|
+
circuitOpenCount: number;
|
|
22
|
+
circuitRecoverCount: number;
|
|
23
|
+
/** Session-sentinel detections, reported separately (different semantics). */
|
|
24
|
+
sentinelCount: number;
|
|
25
|
+
totalEvents: number;
|
|
26
|
+
/** Breaker trips per hour over the window — the "rate" asked for. */
|
|
27
|
+
tripsPerHour: number;
|
|
28
|
+
oldestEventTs: number | null;
|
|
29
|
+
newestEventTs: number | null;
|
|
30
|
+
windowMs: number;
|
|
31
|
+
}
|
|
32
|
+
export interface RateLimitKindRow {
|
|
33
|
+
kind: RateLimitEventKind;
|
|
34
|
+
source: RateLimitEventSource;
|
|
35
|
+
count: number;
|
|
36
|
+
firstTs: number;
|
|
37
|
+
lastTs: number;
|
|
38
|
+
}
|
|
39
|
+
export interface RateLimitEventRow {
|
|
40
|
+
id: string;
|
|
41
|
+
ts: number;
|
|
42
|
+
kind: RateLimitEventKind;
|
|
43
|
+
source: RateLimitEventSource;
|
|
44
|
+
accountKey: string;
|
|
45
|
+
sessionName: string | null;
|
|
46
|
+
reason: string | null;
|
|
47
|
+
detail: string | null;
|
|
48
|
+
}
|
|
49
|
+
export interface ResourceLedgerOptions {
|
|
50
|
+
/** SQLite db path, or ':memory:' for tests. */
|
|
51
|
+
dbPath: string;
|
|
52
|
+
/** Test seam — inject a Database instance. */
|
|
53
|
+
databaseFactory?: (dbPath: string) => BetterSqliteDatabase;
|
|
54
|
+
}
|
|
55
|
+
export declare class ResourceLedger {
|
|
56
|
+
private db;
|
|
57
|
+
private insertEvent;
|
|
58
|
+
private closed;
|
|
59
|
+
constructor(opts: ResourceLedgerOptions);
|
|
60
|
+
/** Per-event identity: ts + source + seq is unique within a process; the source
|
|
61
|
+
* prefix keeps breaker and sentinel rows from ever colliding. NOT a content
|
|
62
|
+
* hash, so two genuine same-ms events stay distinct. */
|
|
63
|
+
private static eventId;
|
|
64
|
+
/** Record one rate-limit event. Idempotent on (source,ts,seq). Never throws —
|
|
65
|
+
* observability must not break the observed path. */
|
|
66
|
+
recordRateLimitEvent(e: RateLimitEventInput): void;
|
|
67
|
+
/** Count + rate of rate-limit events over the trailing window. */
|
|
68
|
+
rateLimitSummary(nowMs: number, windowMs: number): RateLimitSummaryRow;
|
|
69
|
+
/** Per-kind breakdown over the window. */
|
|
70
|
+
rateLimitByKind(nowMs: number, windowMs: number): RateLimitKindRow[];
|
|
71
|
+
/** Recent event rows, newest first. */
|
|
72
|
+
rateLimitEvents(opts?: {
|
|
73
|
+
sinceMs?: number;
|
|
74
|
+
limit?: number;
|
|
75
|
+
}): RateLimitEventRow[];
|
|
76
|
+
close(): void;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=ResourceLedger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceLedger.d.ts","sourceRoot":"","sources":["../../src/monitoring/ResourceLedger.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAIvE;;uEAEuE;AACvE,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,iBAAiB,GACjB,UAAU,GACV,OAAO,GACP,KAAK,CAAC;AAEV,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B;sFACkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,oBAAoB,CAAC;CAC5D;AAkBD,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,EAAE,qBAAqB;IA4BvC;;6DAEyD;IACzD,OAAO,CAAC,MAAM,CAAC,OAAO;IAItB;0DACsD;IACtD,oBAAoB,CAAC,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAkBlD,kEAAkE;IAClE,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB;IA6BtE,0CAA0C;IAC1C,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAapE,uCAAuC;IACvC,eAAe,CAAC,IAAI,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,iBAAiB,EAAE;IAerF,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ResourceLedger — per-agent resource-usage observability (Phase A: rate-limit events).
|
|
3
|
+
*
|
|
4
|
+
* Durable, read-only. Mirrors TokenLedger / FeatureMetricsLedger: SQLite opened
|
|
5
|
+
* through NativeModuleHealer, WAL, registered for close-on-exit via
|
|
6
|
+
* SqliteRegistry, schema applied idempotently. Like FeatureMetricsLedger, every
|
|
7
|
+
* write swallows its error so observability can NEVER break the path it
|
|
8
|
+
* observes. It never gates, throttles, or mutates any runtime flow.
|
|
9
|
+
*
|
|
10
|
+
* Phase A persists the one resource signal that is ephemeral today: rate-limit
|
|
11
|
+
* events. LlmCircuitBreaker counts trips in process-local memory (lost on
|
|
12
|
+
* restart) and RateLimitSentinel emits transient events — so "how many times was
|
|
13
|
+
* the account throttled today" is currently unanswerable. This store makes it
|
|
14
|
+
* durable. Each event is written event-driven by ResourceLedgerPoller (from the
|
|
15
|
+
* breaker's trip/recover emitter and the sentinel's events), one row per
|
|
16
|
+
* emission, with a real per-event identity (not a content hash) so legitimate
|
|
17
|
+
* same-millisecond events don't collapse and a restart can't replay-double-count.
|
|
18
|
+
*
|
|
19
|
+
* CPU/memory sampling (resource_samples) + retention is Phase B; the table and
|
|
20
|
+
* its methods are not in this file yet.
|
|
21
|
+
*
|
|
22
|
+
* Spec: docs/specs/per-agent-resource-ledger.md.
|
|
23
|
+
*/
|
|
24
|
+
import * as fs from 'node:fs';
|
|
25
|
+
import * as path from 'node:path';
|
|
26
|
+
import Database from 'better-sqlite3';
|
|
27
|
+
import { registerSqliteHandle } from '../core/SqliteRegistry.js';
|
|
28
|
+
import { NativeModuleHealer } from '../memory/NativeModuleHealer.js';
|
|
29
|
+
const SCHEMA = [
|
|
30
|
+
`CREATE TABLE IF NOT EXISTS rate_limit_events (
|
|
31
|
+
id TEXT PRIMARY KEY,
|
|
32
|
+
ts INTEGER NOT NULL,
|
|
33
|
+
kind TEXT NOT NULL,
|
|
34
|
+
source TEXT NOT NULL,
|
|
35
|
+
account_key TEXT NOT NULL DEFAULT 'default',
|
|
36
|
+
session_name TEXT,
|
|
37
|
+
reason TEXT,
|
|
38
|
+
detail TEXT
|
|
39
|
+
)`,
|
|
40
|
+
`CREATE INDEX IF NOT EXISTS idx_rle_ts ON rate_limit_events (ts)`,
|
|
41
|
+
`CREATE INDEX IF NOT EXISTS idx_rle_kind_ts ON rate_limit_events (kind, ts)`,
|
|
42
|
+
`CREATE INDEX IF NOT EXISTS idx_rle_source_ts ON rate_limit_events (source, ts)`,
|
|
43
|
+
];
|
|
44
|
+
export class ResourceLedger {
|
|
45
|
+
db;
|
|
46
|
+
insertEvent;
|
|
47
|
+
closed = false;
|
|
48
|
+
constructor(opts) {
|
|
49
|
+
if (opts.dbPath !== ':memory:') {
|
|
50
|
+
fs.mkdirSync(path.dirname(opts.dbPath), { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
// Open through the native-module healer — identical ABI-resilience to
|
|
53
|
+
// TokenLedger/FeatureMetricsLedger, so a Node upgrade can't brick /resources.
|
|
54
|
+
this.db = NativeModuleHealer.openWithHealSync('ResourceLedger', () => opts.databaseFactory?.(opts.dbPath) ?? new Database(opts.dbPath));
|
|
55
|
+
this.db.pragma('journal_mode = WAL');
|
|
56
|
+
this.db.pragma('synchronous = NORMAL');
|
|
57
|
+
for (const ddl of SCHEMA) {
|
|
58
|
+
try {
|
|
59
|
+
this.db.exec(ddl);
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
const msg = err.message || '';
|
|
63
|
+
if (!/duplicate column name/i.test(msg))
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
registerSqliteHandle(() => { try {
|
|
68
|
+
this.db?.close();
|
|
69
|
+
}
|
|
70
|
+
catch { /* already closed */ } });
|
|
71
|
+
this.insertEvent = this.db.prepare(`INSERT OR IGNORE INTO rate_limit_events
|
|
72
|
+
(id, ts, kind, source, account_key, session_name, reason, detail)
|
|
73
|
+
VALUES (@id, @ts, @kind, @source, @accountKey, @sessionName, @reason, @detail)`);
|
|
74
|
+
}
|
|
75
|
+
/** Per-event identity: ts + source + seq is unique within a process; the source
|
|
76
|
+
* prefix keeps breaker and sentinel rows from ever colliding. NOT a content
|
|
77
|
+
* hash, so two genuine same-ms events stay distinct. */
|
|
78
|
+
static eventId(e) {
|
|
79
|
+
return `${e.source}:${e.ts}:${e.seq}`;
|
|
80
|
+
}
|
|
81
|
+
/** Record one rate-limit event. Idempotent on (source,ts,seq). Never throws —
|
|
82
|
+
* observability must not break the observed path. */
|
|
83
|
+
recordRateLimitEvent(e) {
|
|
84
|
+
if (this.closed)
|
|
85
|
+
return;
|
|
86
|
+
try {
|
|
87
|
+
this.insertEvent.run({
|
|
88
|
+
id: ResourceLedger.eventId(e),
|
|
89
|
+
ts: e.ts,
|
|
90
|
+
kind: e.kind,
|
|
91
|
+
source: e.source,
|
|
92
|
+
accountKey: e.accountKey && e.accountKey.trim() ? e.accountKey.trim() : 'default',
|
|
93
|
+
sessionName: e.sessionName ?? null,
|
|
94
|
+
reason: e.reason ?? null,
|
|
95
|
+
detail: e.detail ?? null,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
/* swallow — never break the observed path (Close the Loop applied to self) */
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Count + rate of rate-limit events over the trailing window. */
|
|
103
|
+
rateLimitSummary(nowMs, windowMs) {
|
|
104
|
+
const since = nowMs - windowMs;
|
|
105
|
+
const row = this.db
|
|
106
|
+
.prepare(`SELECT
|
|
107
|
+
SUM(CASE WHEN kind='circuit-open' THEN 1 ELSE 0 END) AS circuitOpenCount,
|
|
108
|
+
SUM(CASE WHEN kind='circuit-recover' THEN 1 ELSE 0 END) AS circuitRecoverCount,
|
|
109
|
+
SUM(CASE WHEN source='session-sentinel' THEN 1 ELSE 0 END) AS sentinelCount,
|
|
110
|
+
COUNT(*) AS totalEvents,
|
|
111
|
+
MIN(ts) AS oldestEventTs,
|
|
112
|
+
MAX(ts) AS newestEventTs
|
|
113
|
+
FROM rate_limit_events
|
|
114
|
+
WHERE ts >= ?`)
|
|
115
|
+
.get(since);
|
|
116
|
+
const trips = Number(row.circuitOpenCount ?? 0);
|
|
117
|
+
const hours = windowMs / 3_600_000;
|
|
118
|
+
return {
|
|
119
|
+
circuitOpenCount: trips,
|
|
120
|
+
circuitRecoverCount: Number(row.circuitRecoverCount ?? 0),
|
|
121
|
+
sentinelCount: Number(row.sentinelCount ?? 0),
|
|
122
|
+
totalEvents: Number(row.totalEvents ?? 0),
|
|
123
|
+
tripsPerHour: hours > 0 ? +(trips / hours).toFixed(2) : 0,
|
|
124
|
+
oldestEventTs: row.oldestEventTs ?? null,
|
|
125
|
+
newestEventTs: row.newestEventTs ?? null,
|
|
126
|
+
windowMs,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/** Per-kind breakdown over the window. */
|
|
130
|
+
rateLimitByKind(nowMs, windowMs) {
|
|
131
|
+
const since = nowMs - windowMs;
|
|
132
|
+
return this.db
|
|
133
|
+
.prepare(`SELECT kind, source, COUNT(*) AS count, MIN(ts) AS firstTs, MAX(ts) AS lastTs
|
|
134
|
+
FROM rate_limit_events
|
|
135
|
+
WHERE ts >= ?
|
|
136
|
+
GROUP BY kind, source
|
|
137
|
+
ORDER BY count DESC`)
|
|
138
|
+
.all(since);
|
|
139
|
+
}
|
|
140
|
+
/** Recent event rows, newest first. */
|
|
141
|
+
rateLimitEvents(opts = {}) {
|
|
142
|
+
const limit = Math.min(Math.max(opts.limit ?? 100, 1), 1000);
|
|
143
|
+
const since = opts.sinceMs ?? 0;
|
|
144
|
+
return this.db
|
|
145
|
+
.prepare(`SELECT id, ts, kind, source, account_key AS accountKey,
|
|
146
|
+
session_name AS sessionName, reason, detail
|
|
147
|
+
FROM rate_limit_events
|
|
148
|
+
WHERE ts >= ?
|
|
149
|
+
ORDER BY ts DESC
|
|
150
|
+
LIMIT ?`)
|
|
151
|
+
.all(since, limit);
|
|
152
|
+
}
|
|
153
|
+
close() {
|
|
154
|
+
if (this.closed)
|
|
155
|
+
return;
|
|
156
|
+
this.closed = true;
|
|
157
|
+
try {
|
|
158
|
+
this.db.close();
|
|
159
|
+
}
|
|
160
|
+
catch { /* ignore */ }
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=ResourceLedger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceLedger.js","sourceRoot":"","sources":["../../src/monitoring/ResourceLedger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ResourceLedgerPoller — feeds the ResourceLedger (Phase A: rate-limit events).
|
|
3
|
+
*
|
|
4
|
+
* Event-driven, not polled: subscribes to the LlmCircuitBreaker's trip/recover
|
|
5
|
+
* observer (the primary, account-level rate-limit signal) and, when wired, the
|
|
6
|
+
* RateLimitSentinel's session-scoped events. Each emission becomes one durable
|
|
7
|
+
* `rate_limit_events` row. A per-source monotonic sequence makes same-millisecond
|
|
8
|
+
* events distinct and lets the ledger dedupe replays idempotently.
|
|
9
|
+
*
|
|
10
|
+
* Strictly observation: it only reads signals that already fire and writes them
|
|
11
|
+
* down. It never gates, throttles, or reaches back into the breaker (and the
|
|
12
|
+
* breaker swallows observer errors, so this poller can never affect it).
|
|
13
|
+
*
|
|
14
|
+
* CPU/memory sampling (async, bounded) is Phase B and is not in this file yet.
|
|
15
|
+
*
|
|
16
|
+
* Spec: docs/specs/per-agent-resource-ledger.md.
|
|
17
|
+
*/
|
|
18
|
+
import type { ResourceLedger } from './ResourceLedger.js';
|
|
19
|
+
/** The minimal breaker surface this poller needs (avoids importing the class so
|
|
20
|
+
* monitoring/ stays decoupled from the concrete breaker). */
|
|
21
|
+
export interface TripObservableBreaker {
|
|
22
|
+
onTrip(cb: (e: {
|
|
23
|
+
reason: string;
|
|
24
|
+
retryAfterMs?: number;
|
|
25
|
+
ts: number;
|
|
26
|
+
tripCount: number;
|
|
27
|
+
}) => void): () => void;
|
|
28
|
+
onRecover(cb: (e: {
|
|
29
|
+
ts: number;
|
|
30
|
+
}) => void): () => void;
|
|
31
|
+
}
|
|
32
|
+
/** The minimal sentinel surface (EventEmitter-shaped). Optional. */
|
|
33
|
+
export interface RateLimitEventSentinel {
|
|
34
|
+
on(event: string, listener: (...args: any[]) => void): unknown;
|
|
35
|
+
off?(event: string, listener: (...args: any[]) => void): unknown;
|
|
36
|
+
}
|
|
37
|
+
export interface ResourceLedgerPollerOptions {
|
|
38
|
+
ledger: ResourceLedger;
|
|
39
|
+
breaker: TripObservableBreaker;
|
|
40
|
+
/** Optional — wired in commands/server.ts where the sentinel is constructed. */
|
|
41
|
+
rateLimitSentinel?: RateLimitEventSentinel | null;
|
|
42
|
+
/** Clock seam for tests. */
|
|
43
|
+
now?: () => number;
|
|
44
|
+
/** Account identifier (single shared key today; reserved for fleet roll-up). */
|
|
45
|
+
accountKey?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare class ResourceLedgerPoller {
|
|
48
|
+
private readonly ledger;
|
|
49
|
+
private readonly breaker;
|
|
50
|
+
private readonly sentinel;
|
|
51
|
+
private readonly now;
|
|
52
|
+
private readonly accountKey;
|
|
53
|
+
private breakerSeq;
|
|
54
|
+
private sentinelSeq;
|
|
55
|
+
private unsubs;
|
|
56
|
+
private started;
|
|
57
|
+
constructor(opts: ResourceLedgerPollerOptions);
|
|
58
|
+
start(): void;
|
|
59
|
+
/** Map a sentinel detection to a kind. Session-scoped server throttles are the
|
|
60
|
+
* common case; 529-overload is distinguished when the reason says so. */
|
|
61
|
+
private classifySentinel;
|
|
62
|
+
stop(): void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=ResourceLedgerPoller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResourceLedgerPoller.d.ts","sourceRoot":"","sources":["../../src/monitoring/ResourceLedgerPoller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAC;AAE9E;8DAC8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC9G,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACxD;AAED,oEAAoE;AACpE,MAAM,WAAW,sBAAsB;IACrC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;IAC/D,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC;CAClE;AAED,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,qBAAqB,CAAC;IAC/B,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAClD,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAMpC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,EAAE,2BAA2B;IAQ7C,KAAK,IAAI,IAAI;IA+Cb;8EAC0E;IAC1E,OAAO,CAAC,gBAAgB;IAOxB,IAAI,IAAI,IAAI;CAKb"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export class ResourceLedgerPoller {
|
|
2
|
+
ledger;
|
|
3
|
+
breaker;
|
|
4
|
+
sentinel;
|
|
5
|
+
now;
|
|
6
|
+
accountKey;
|
|
7
|
+
// Per-source monotonic sequence — combined with ts it forms the event id, so
|
|
8
|
+
// two events in the same millisecond stay distinct and a restart can't replay
|
|
9
|
+
// (the seq resets to 0 on restart, but the ledger row id is source:ts:seq and
|
|
10
|
+
// INSERT OR IGNORE — a genuinely new post-restart event has a new ts).
|
|
11
|
+
breakerSeq = 0;
|
|
12
|
+
sentinelSeq = 0;
|
|
13
|
+
unsubs = [];
|
|
14
|
+
started = false;
|
|
15
|
+
constructor(opts) {
|
|
16
|
+
this.ledger = opts.ledger;
|
|
17
|
+
this.breaker = opts.breaker;
|
|
18
|
+
this.sentinel = opts.rateLimitSentinel ?? null;
|
|
19
|
+
this.now = opts.now ?? (() => Date.now());
|
|
20
|
+
this.accountKey = opts.accountKey && opts.accountKey.trim() ? opts.accountKey.trim() : 'default';
|
|
21
|
+
}
|
|
22
|
+
start() {
|
|
23
|
+
if (this.started)
|
|
24
|
+
return;
|
|
25
|
+
this.started = true;
|
|
26
|
+
this.unsubs.push(this.breaker.onTrip((e) => {
|
|
27
|
+
this.ledger.recordRateLimitEvent({
|
|
28
|
+
ts: e.ts,
|
|
29
|
+
kind: 'circuit-open',
|
|
30
|
+
source: 'circuit-breaker',
|
|
31
|
+
seq: this.breakerSeq++,
|
|
32
|
+
accountKey: this.accountKey,
|
|
33
|
+
reason: e.reason,
|
|
34
|
+
detail: typeof e.retryAfterMs === 'number' ? `retryAfterMs=${e.retryAfterMs}` : undefined,
|
|
35
|
+
});
|
|
36
|
+
}));
|
|
37
|
+
this.unsubs.push(this.breaker.onRecover((e) => {
|
|
38
|
+
this.ledger.recordRateLimitEvent({
|
|
39
|
+
ts: e.ts,
|
|
40
|
+
kind: 'circuit-recover',
|
|
41
|
+
source: 'circuit-breaker',
|
|
42
|
+
seq: this.breakerSeq++,
|
|
43
|
+
accountKey: this.accountKey,
|
|
44
|
+
});
|
|
45
|
+
}));
|
|
46
|
+
if (this.sentinel) {
|
|
47
|
+
const onDetected = (state) => {
|
|
48
|
+
this.ledger.recordRateLimitEvent({
|
|
49
|
+
ts: this.now(),
|
|
50
|
+
kind: this.classifySentinel(state),
|
|
51
|
+
source: 'session-sentinel',
|
|
52
|
+
seq: this.sentinelSeq++,
|
|
53
|
+
accountKey: this.accountKey,
|
|
54
|
+
sessionName: typeof state?.sessionName === 'string' ? state.sessionName : undefined,
|
|
55
|
+
reason: typeof state?.reason === 'string' ? state.reason : undefined,
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
this.sentinel.on('rate-limit:detected', onDetected);
|
|
59
|
+
this.unsubs.push(() => this.sentinel?.off?.('rate-limit:detected', onDetected));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/** Map a sentinel detection to a kind. Session-scoped server throttles are the
|
|
63
|
+
* common case; 529-overload is distinguished when the reason says so. */
|
|
64
|
+
classifySentinel(state) {
|
|
65
|
+
const reason = typeof state?.reason === 'string' ? state.reason.toLowerCase() : '';
|
|
66
|
+
if (/529|overloaded/.test(reason))
|
|
67
|
+
return '529';
|
|
68
|
+
if (/usage|quota|weekly|session limit/.test(reason))
|
|
69
|
+
return 'quota';
|
|
70
|
+
return 'throttle';
|
|
71
|
+
}
|
|
72
|
+
stop() {
|
|
73
|
+
for (const u of this.unsubs) {
|
|
74
|
+
try {
|
|
75
|
+
u();
|
|
76
|
+
}
|
|
77
|
+
catch { /* ignore */ }
|
|
78
|
+
}
|
|
79
|
+
this.unsubs = [];
|
|
80
|
+
this.started = false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=ResourceLedgerPoller.js.map
|