@telora/daemon-core 0.2.56 → 0.2.57
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.
|
@@ -30,7 +30,7 @@ export interface ResourceUtilization {
|
|
|
30
30
|
queueDepthPerEngine: Record<string, number>;
|
|
31
31
|
}
|
|
32
32
|
export declare class ResourceGovernor {
|
|
33
|
-
private
|
|
33
|
+
private maxGlobal;
|
|
34
34
|
private readonly engineLimits;
|
|
35
35
|
/** Current slot count per engine. */
|
|
36
36
|
private readonly activePerEngine;
|
|
@@ -56,6 +56,20 @@ export declare class ResourceGovernor {
|
|
|
56
56
|
* request if one is waiting.
|
|
57
57
|
*/
|
|
58
58
|
releaseSlot(engine: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Apply a new global session cap LIVE (hot-reload of maxTotalSessions /
|
|
61
|
+
* maxGlobalSessions) without a restart. Raising the cap re-runs the FIFO
|
|
62
|
+
* queue so any waiters the new headroom permits acquire immediately;
|
|
63
|
+
* lowering it caps only NEW acquisitions and never revokes an in-flight
|
|
64
|
+
* slot (running teams are never killed). Idempotent for an unchanged value.
|
|
65
|
+
*/
|
|
66
|
+
setMaxGlobalSessions(max: number): void;
|
|
67
|
+
/**
|
|
68
|
+
* Apply a new per-engine session limit LIVE. Same semantics as
|
|
69
|
+
* {@link setMaxGlobalSessions}: raising re-runs the queue, lowering caps
|
|
70
|
+
* only new acquisitions. Adds the engine to the limit map if absent.
|
|
71
|
+
*/
|
|
72
|
+
setEngineLimit(engine: string, limit: number): void;
|
|
59
73
|
/** Return a snapshot of current utilization. */
|
|
60
74
|
getUtilization(): ResourceUtilization;
|
|
61
75
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-governor.d.ts","sourceRoot":"","sources":["../src/resource-governor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAaD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"resource-governor.d.ts","sourceRoot":"","sources":["../src/resource-governor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,+CAA+C;AAC/C,MAAM,WAAW,sBAAsB;IACrC,8DAA8D;IAC9D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,yDAAyD;AACzD,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,sBAAsB;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7C;AAaD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,qCAAqC;IACrC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAE7D,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAwB;IAE9C,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,sBAAsB;IAe1C;;;;;OAKG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1C;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAOvC;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAUjC;;;;;;OAMG;IACH,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAWvC;;;;OAIG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWnD,gDAAgD;IAChD,cAAc,IAAI,mBAAmB;IA+BrC;;;OAGG;IACH,QAAQ,IAAI,IAAI;IAShB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAab,sEAAsE;IACtE,OAAO,CAAC,UAAU;IAelB,qDAAqD;IACrD,OAAO,CAAC,aAAa;IAKrB,qDAAqD;IACrD,OAAO,CAAC,eAAe;IAQvB;;;OAGG;IACH,OAAO,CAAC,YAAY;CAcrB"}
|
|
@@ -79,6 +79,42 @@ export class ResourceGovernor {
|
|
|
79
79
|
this.activePerEngine.set(engine, current - 1);
|
|
80
80
|
this.processQueue();
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Apply a new global session cap LIVE (hot-reload of maxTotalSessions /
|
|
84
|
+
* maxGlobalSessions) without a restart. Raising the cap re-runs the FIFO
|
|
85
|
+
* queue so any waiters the new headroom permits acquire immediately;
|
|
86
|
+
* lowering it caps only NEW acquisitions and never revokes an in-flight
|
|
87
|
+
* slot (running teams are never killed). Idempotent for an unchanged value.
|
|
88
|
+
*/
|
|
89
|
+
setMaxGlobalSessions(max) {
|
|
90
|
+
if (!Number.isFinite(max) || max < 1) {
|
|
91
|
+
throw new Error(`maxGlobalSessions must be >= 1, got ${max}`);
|
|
92
|
+
}
|
|
93
|
+
if (max === this.maxGlobal)
|
|
94
|
+
return;
|
|
95
|
+
const raised = max > this.maxGlobal;
|
|
96
|
+
this.maxGlobal = max;
|
|
97
|
+
// Only a raise can free capacity for waiters; a lower cannot grant slots.
|
|
98
|
+
if (raised)
|
|
99
|
+
this.processQueue();
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Apply a new per-engine session limit LIVE. Same semantics as
|
|
103
|
+
* {@link setMaxGlobalSessions}: raising re-runs the queue, lowering caps
|
|
104
|
+
* only new acquisitions. Adds the engine to the limit map if absent.
|
|
105
|
+
*/
|
|
106
|
+
setEngineLimit(engine, limit) {
|
|
107
|
+
if (!Number.isFinite(limit) || limit < 1) {
|
|
108
|
+
throw new Error(`Engine limit for '${engine}' must be >= 1, got ${limit}`);
|
|
109
|
+
}
|
|
110
|
+
const prev = this.engineLimits.get(engine);
|
|
111
|
+
if (prev === limit)
|
|
112
|
+
return;
|
|
113
|
+
this.engineLimits.set(engine, limit);
|
|
114
|
+
// Only a raise (or a newly-added, higher limit) can free capacity.
|
|
115
|
+
if (prev === undefined || limit > prev)
|
|
116
|
+
this.processQueue();
|
|
117
|
+
}
|
|
82
118
|
/** Return a snapshot of current utilization. */
|
|
83
119
|
getUtilization() {
|
|
84
120
|
let total = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-governor.js","sourceRoot":"","sources":["../src/resource-governor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAmCH,8EAA8E;AAC9E,mBAAmB;AACnB,8EAA8E;AAE9E,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"resource-governor.js","sourceRoot":"","sources":["../src/resource-governor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED