@cartanova/qgrid-cli 1.1.3 → 1.1.4
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.
|
@@ -35,10 +35,15 @@ var ClaudePool = class {
|
|
|
35
35
|
active: !this.quotaExhausted.has(token)
|
|
36
36
|
}));
|
|
37
37
|
}
|
|
38
|
+
rrIndex = 0;
|
|
38
39
|
selectWorker() {
|
|
39
40
|
const candidates = [...this.workers.entries()].filter(([token]) => !this.quotaExhausted.has(token)).flatMap(([, workers]) => workers);
|
|
40
41
|
if (candidates.length === 0) return null;
|
|
41
|
-
|
|
42
|
+
const minDepth = Math.min(...candidates.map((w) => w.getQueueDepth()));
|
|
43
|
+
const idle = candidates.filter((w) => w.getQueueDepth() === minDepth);
|
|
44
|
+
const picked = idle[this.rrIndex % idle.length];
|
|
45
|
+
this.rrIndex++;
|
|
46
|
+
return picked ?? null;
|
|
42
47
|
}
|
|
43
48
|
async query(input, timeoutMs) {
|
|
44
49
|
const triedTokens = /* @__PURE__ */ new Set();
|
|
@@ -106,4 +111,4 @@ function getPool() {
|
|
|
106
111
|
//#endregion
|
|
107
112
|
export { ClaudePool, getPool, initPool };
|
|
108
113
|
|
|
109
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9vbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vcWdyaWQvcG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXVkZVBvb2wg4oCUIOupgO2LsCDthqDtgbAg7ZSE66Gc7IS47IqkIO2SgC5cbiAqXG4gKiAyLWxheWVyIOyVhO2CpO2FjeyymDogQ2xhdWRlUG9vbCDihpIgV29ya2VyIChmbGF0KVxuICogLSBNYXA8dG9rZW4sIFdvcmtlcltdPuuhnCDthqDtgbDrs4Qg7JuM7LukIOq0gOumrCAo7JuQ67O4IO2GoO2BsOydtCDtgqQpXG4gKiAtIGxlYXN0LXF1ZXVlLWRlcHRoIOudvOyasO2MhVxuICogLSDtiKzrqoXtlZwg7L+87YSwIGZhaWxvdmVyIChRdW90YUVycm9yIOyLnCDri6Trpbgg7Yag7YGw7Jy866GcIOyekOuPmSDsnqzsi5zrj4QpXG4gKiAtIOybjOy7pCDqtIDrpqzrp4wg64u064u5IChEQiDsnZjsobQg7JeG7J2MKVxuICovXG5pbXBvcnQgdHlwZSB7IENsaVJlc3VsdCwgUG9vbENvbmZpZywgUXVlcnlJbnB1dCwgVG9rZW5TdGF0cyB9IGZyb20gXCIuL3FncmlkLnR5cGVzXCI7XG5pbXBvcnQgeyBRdW90YUVycm9yIH0gZnJvbSBcIi4vcWdyaWQudHlwZXNcIjtcbmltcG9ydCB7IFdvcmtlciwgdHlwZSBXb3JrZXJDb25maWcgfSBmcm9tIFwiLi93b3JrZXJcIjtcblxuZXhwb3J0IGNsYXNzIENsYXVkZVBvb2wge1xuICB3b3JrZXJzID0gbmV3IE1hcDxzdHJpbmcsIFdvcmtlcltdPigpO1xuICB0b2tlbk5hbWVzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgcXVvdGFFeGhhdXN0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcmVxdWVzdENvdW50cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGxhc3RVc2VkVG9rZW4gPSBcIlwiO1xuICBsYXN0VXNlZFdvcmtlckluZGV4ID0gMDtcbiAgc2l6ZTogbnVtYmVyO1xuICBtb2RlbDogc3RyaW5nO1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIGN3ZDogc3RyaW5nO1xuICBtYXhDYWxsczogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogUG9vbENvbmZpZykge1xuICAgIHRoaXMuc2l6ZSA9IGNvbmZpZy5zaXplID8/IDM7XG4gICAgdGhpcy5tb2RlbCA9IGNvbmZpZy5tb2RlbCA/PyBcInNvbm5ldFwiO1xuICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0ID8/IDMwMF8wMDA7XG4gICAgdGhpcy5jd2QgPSBjb25maWcuY3dkID8/IFwiL3RtcC9xZ3JpZFwiO1xuICAgIHRoaXMubWF4Q2FsbHMgPSBjb25maWcubWF4Q2FsbHMgPz8gNTAwO1xuXG4gICAgY29uZmlnLnRva2Vucy5mb3JFYWNoKCh7IHRva2VuLCBuYW1lIH0pID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlV29ya2Vycyh0b2tlbiwgbmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRMYXN0VXNlZFdvcmtlck5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlTmFtZSA9IHRoaXMudG9rZW5OYW1lcy5nZXQodGhpcy5sYXN0VXNlZFRva2VuKSA/
|
|
114
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9vbC5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBwbGljYXRpb24vcWdyaWQvcG9vbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsYXVkZVBvb2wg4oCUIOupgO2LsCDthqDtgbAg7ZSE66Gc7IS47IqkIO2SgC5cbiAqXG4gKiAyLWxheWVyIOyVhO2CpO2FjeyymDogQ2xhdWRlUG9vbCDihpIgV29ya2VyIChmbGF0KVxuICogLSBNYXA8dG9rZW4sIFdvcmtlcltdPuuhnCDthqDtgbDrs4Qg7JuM7LukIOq0gOumrCAo7JuQ67O4IO2GoO2BsOydtCDtgqQpXG4gKiAtIGxlYXN0LXF1ZXVlLWRlcHRoIOudvOyasO2MhVxuICogLSDtiKzrqoXtlZwg7L+87YSwIGZhaWxvdmVyIChRdW90YUVycm9yIOyLnCDri6Trpbgg7Yag7YGw7Jy866GcIOyekOuPmSDsnqzsi5zrj4QpXG4gKiAtIOybjOy7pCDqtIDrpqzrp4wg64u064u5IChEQiDsnZjsobQg7JeG7J2MKVxuICovXG5pbXBvcnQgdHlwZSB7IENsaVJlc3VsdCwgUG9vbENvbmZpZywgUXVlcnlJbnB1dCwgVG9rZW5TdGF0cyB9IGZyb20gXCIuL3FncmlkLnR5cGVzXCI7XG5pbXBvcnQgeyBRdW90YUVycm9yIH0gZnJvbSBcIi4vcWdyaWQudHlwZXNcIjtcbmltcG9ydCB7IFdvcmtlciwgdHlwZSBXb3JrZXJDb25maWcgfSBmcm9tIFwiLi93b3JrZXJcIjtcblxuZXhwb3J0IGNsYXNzIENsYXVkZVBvb2wge1xuICB3b3JrZXJzID0gbmV3IE1hcDxzdHJpbmcsIFdvcmtlcltdPigpO1xuICB0b2tlbk5hbWVzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgcXVvdGFFeGhhdXN0ZWQgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgcmVxdWVzdENvdW50cyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gIGxhc3RVc2VkVG9rZW4gPSBcIlwiO1xuICBsYXN0VXNlZFdvcmtlckluZGV4ID0gMDtcbiAgc2l6ZTogbnVtYmVyO1xuICBtb2RlbDogc3RyaW5nO1xuICB0aW1lb3V0OiBudW1iZXI7XG4gIGN3ZDogc3RyaW5nO1xuICBtYXhDYWxsczogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogUG9vbENvbmZpZykge1xuICAgIHRoaXMuc2l6ZSA9IGNvbmZpZy5zaXplID8/IDM7XG4gICAgdGhpcy5tb2RlbCA9IGNvbmZpZy5tb2RlbCA/PyBcInNvbm5ldFwiO1xuICAgIHRoaXMudGltZW91dCA9IGNvbmZpZy50aW1lb3V0ID8/IDMwMF8wMDA7XG4gICAgdGhpcy5jd2QgPSBjb25maWcuY3dkID8/IFwiL3RtcC9xZ3JpZFwiO1xuICAgIHRoaXMubWF4Q2FsbHMgPSBjb25maWcubWF4Q2FsbHMgPz8gNTAwO1xuXG4gICAgY29uZmlnLnRva2Vucy5mb3JFYWNoKCh7IHRva2VuLCBuYW1lIH0pID0+IHtcbiAgICAgIHRoaXMuY3JlYXRlV29ya2Vycyh0b2tlbiwgbmFtZSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRMYXN0VXNlZFdvcmtlck5hbWUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlTmFtZSA9IHRoaXMudG9rZW5OYW1lcy5nZXQodGhpcy5sYXN0VXNlZFRva2VuKSA/PyBcIlVua25vd25cIjtcbiAgICByZXR1cm4gYCR7YmFzZU5hbWV9LSR7dGhpcy5sYXN0VXNlZFdvcmtlckluZGV4fWA7XG4gIH1cblxuICBnZXRTdGF0cygpOiBUb2tlblN0YXRzW10ge1xuICAgIHJldHVybiBbLi4udGhpcy53b3JrZXJzLmtleXMoKV0ubWFwKCh0b2tlbikgPT4gKHtcbiAgICAgIHRva2VuLFxuICAgICAgbmFtZTogdGhpcy50b2tlbk5hbWVzLmdldCh0b2tlbikgPz8gXCJVbmtub3duXCIsXG4gICAgICByZXF1ZXN0czogdGhpcy5yZXF1ZXN0Q291bnRzLmdldCh0b2tlbikgPz8gMCxcbiAgICAgIGFjdGl2ZTogIXRoaXMucXVvdGFFeGhhdXN0ZWQuaGFzKHRva2VuKSxcbiAgICB9KSk7XG4gIH1cblxuICBwcml2YXRlIHJySW5kZXggPSAwO1xuXG4gIHNlbGVjdFdvcmtlcigpOiBXb3JrZXIgfCBudWxsIHtcbiAgICBjb25zdCBjYW5kaWRhdGVzID0gWy4uLnRoaXMud29ya2Vycy5lbnRyaWVzKCldXG4gICAgICAuZmlsdGVyKChbdG9rZW5dKSA9PiAhdGhpcy5xdW90YUV4aGF1c3RlZC5oYXModG9rZW4pKVxuICAgICAgLmZsYXRNYXAoKFssIHdvcmtlcnNdKSA9PiB3b3JrZXJzKTtcblxuICAgIGlmIChjYW5kaWRhdGVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG51bGw7XG5cbiAgICBjb25zdCBtaW5EZXB0aCA9IE1hdGgubWluKC4uLmNhbmRpZGF0ZXMubWFwKCh3KSA9PiB3LmdldFF1ZXVlRGVwdGgoKSkpO1xuICAgIGNvbnN0IGlkbGUgPSBjYW5kaWRhdGVzLmZpbHRlcigodykgPT4gdy5nZXRRdWV1ZURlcHRoKCkgPT09IG1pbkRlcHRoKTtcbiAgICBjb25zdCBwaWNrZWQgPSBpZGxlW3RoaXMucnJJbmRleCAlIGlkbGUubGVuZ3RoXTtcbiAgICB0aGlzLnJySW5kZXgrKztcbiAgICByZXR1cm4gcGlja2VkID8/IG51bGw7XG4gIH1cblxuICBhc3luYyBxdWVyeShpbnB1dDogUXVlcnlJbnB1dCwgdGltZW91dE1zPzogbnVtYmVyKTogUHJvbWlzZTxDbGlSZXN1bHQ+IHtcbiAgICBjb25zdCB0cmllZFRva2VucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IHdvcmtlciA9IHRoaXMuc2VsZWN0V29ya2VyKCk7XG4gICAgICBpZiAoIXdvcmtlcikge1xuICAgICAgICB0aHJvdyBuZXcgUXVvdGFFcnJvcihcIkFsbCB0b2tlbnMgZXhoYXVzdGVkXCIpO1xuICAgICAgfVxuXG4gICAgICBpZiAodHJpZWRUb2tlbnMuaGFzKHdvcmtlci50b2tlbklkKSkge1xuICAgICAgICB0aHJvdyBuZXcgUXVvdGFFcnJvcihcIkFsbCB0b2tlbnMgZXhoYXVzdGVkXCIpO1xuICAgICAgfVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB3b3JrZXIucXVlcnkoaW5wdXQsIHRpbWVvdXRNcyk7XG4gICAgICAgIHRoaXMubGFzdFVzZWRUb2tlbiA9IHdvcmtlci50b2tlbklkO1xuICAgICAgICBjb25zdCB0b2tlbldvcmtlcnMgPSB0aGlzLndvcmtlcnMuZ2V0KHdvcmtlci50b2tlbklkKTtcbiAgICAgICAgdGhpcy5sYXN0VXNlZFdvcmtlckluZGV4ID0gdG9rZW5Xb3JrZXJzID8gdG9rZW5Xb3JrZXJzLmluZGV4T2Yod29ya2VyKSArIDEgOiAwO1xuICAgICAgICB0aGlzLnJlcXVlc3RDb3VudHMuc2V0KHdvcmtlci50b2tlbklkLCAodGhpcy5yZXF1ZXN0Q291bnRzLmdldCh3b3JrZXIudG9rZW5JZCkgPz8gMCkgKyAxKTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBRdW90YUVycm9yKSB7XG4gICAgICAgICAgdGhpcy5xdW90YUV4aGF1c3RlZC5hZGQod29ya2VyLnRva2VuSWQpO1xuICAgICAgICAgIHRyaWVkVG9rZW5zLmFkZCh3b3JrZXIudG9rZW5JZCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGtpbGwoKTogdm9pZCB7XG4gICAgWy4uLnRoaXMud29ya2Vycy52YWx1ZXMoKV0uZmxhdCgpLmZvckVhY2goKHcpID0+IHtcbiAgICAgIHcua2lsbCgpO1xuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlV29ya2Vycyh0b2tlbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy53b3JrZXJzLmhhcyh0b2tlbikpIHJldHVybjtcblxuICAgIHRoaXMudG9rZW5OYW1lcy5zZXQodG9rZW4sIG5hbWUpO1xuICAgIGNvbnN0IHdvcmtlckNvbmZpZzogV29ya2VyQ29uZmlnID0ge1xuICAgICAgdG9rZW4sXG4gICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgIHRpbWVvdXQ6IHRoaXMudGltZW91dCxcbiAgICAgIGN3ZDogdGhpcy5jd2QsXG4gICAgICBtYXhDYWxsczogdGhpcy5tYXhDYWxscyxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmtlcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnNpemUgfSwgKCkgPT4gbmV3IFdvcmtlcih3b3JrZXJDb25maWcpKTtcbiAgICB0aGlzLndvcmtlcnMuc2V0KHRva2VuLCB3b3JrZXJzKTtcbiAgICB0aGlzLnJlcXVlc3RDb3VudHMuc2V0KHRva2VuLCAwKTtcbiAgfVxuXG4gIGRlc3Ryb3lXb3JrZXJzKHRva2VuOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCB3b3JrZXJzID0gdGhpcy53b3JrZXJzLmdldCh0b2tlbik7XG4gICAgaWYgKCF3b3JrZXJzKSByZXR1cm47XG5cbiAgICB3b3JrZXJzLmZvckVhY2goKHcpID0+IHtcbiAgICAgIHcua2lsbCgpO1xuICAgIH0pO1xuICAgIHRoaXMud29ya2Vycy5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMudG9rZW5OYW1lcy5kZWxldGUodG9rZW4pO1xuICAgIHRoaXMucXVvdGFFeGhhdXN0ZWQuZGVsZXRlKHRva2VuKTtcbiAgICB0aGlzLnJlcXVlc3RDb3VudHMuZGVsZXRlKHRva2VuKTtcbiAgfVxufVxuXG4vLyBQb29sIOyLseq4gO2EtCDqtIDrpqxcbmxldCBwb29sOiBDbGF1ZGVQb29sIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0UG9vbCh0b2tlbnM6IHsgdG9rZW46IHN0cmluZzsgbmFtZTogc3RyaW5nIH1bXSk6IENsYXVkZVBvb2wge1xuICBwb29sID0gbmV3IENsYXVkZVBvb2woeyB0b2tlbnMgfSk7XG4gIHJldHVybiBwb29sO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9vbCgpOiBDbGF1ZGVQb29sIHtcbiAgaWYgKCFwb29sKSB0aHJvdyBuZXcgRXJyb3IoXCJQb29sIG5vdCBpbml0aWFsaXplZC4gQ2FsbCBpbml0UG9vbCgpIGZpcnN0LlwiKTtcbiAgcmV0dXJuIHBvb2w7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFhQSxJQUFhLGFBQWIsTUFBd0I7Q0FDdEIsMEJBQVUsSUFBSSxLQUF1QjtDQUNyQyw2QkFBYSxJQUFJLEtBQXFCO0NBQ3RDLGlDQUFpQixJQUFJLEtBQWE7Q0FDbEMsZ0NBQWdCLElBQUksS0FBcUI7Q0FDekMsZ0JBQWdCO0NBQ2hCLHNCQUFzQjtDQUN0QjtDQUNBO0NBQ0E7Q0FDQTtDQUNBO0NBRUEsWUFBWSxRQUFvQjtBQUM5QixPQUFLLE9BQU8sT0FBTyxRQUFRO0FBQzNCLE9BQUssUUFBUSxPQUFPLFNBQVM7QUFDN0IsT0FBSyxVQUFVLE9BQU8sV0FBVztBQUNqQyxPQUFLLE1BQU0sT0FBTyxPQUFPO0FBQ3pCLE9BQUssV0FBVyxPQUFPLFlBQVk7QUFFbkMsU0FBTyxPQUFPLFNBQVMsRUFBRSxPQUFPLFdBQVc7QUFDekMsUUFBSyxjQUFjLE9BQU8sS0FBSztJQUMvQjs7Q0FHSix3QkFBZ0M7QUFFOUIsU0FBTyxHQURVLEtBQUssV0FBVyxJQUFJLEtBQUssY0FBYyxJQUFJLFVBQ3pDLEdBQUcsS0FBSzs7Q0FHN0IsV0FBeUI7QUFDdkIsU0FBTyxDQUFDLEdBQUcsS0FBSyxRQUFRLE1BQU0sQ0FBQyxDQUFDLEtBQUssV0FBVztHQUM5QztHQUNBLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxJQUFJO0dBQ3BDLFVBQVUsS0FBSyxjQUFjLElBQUksTUFBTSxJQUFJO0dBQzNDLFFBQVEsQ0FBQyxLQUFLLGVBQWUsSUFBSSxNQUFNO0dBQ3hDLEVBQUU7O0NBR0wsVUFBa0I7Q0FFbEIsZUFBOEI7RUFDNUIsTUFBTSxhQUFhLENBQUMsR0FBRyxLQUFLLFFBQVEsU0FBUyxDQUFDLENBQzNDLFFB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
|
|
@@ -50,6 +50,8 @@ export class ClaudePool {
|
|
|
50
50
|
}));
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
+
private rrIndex = 0;
|
|
54
|
+
|
|
53
55
|
selectWorker(): Worker | null {
|
|
54
56
|
const candidates = [...this.workers.entries()]
|
|
55
57
|
.filter(([token]) => !this.quotaExhausted.has(token))
|
|
@@ -57,7 +59,11 @@ export class ClaudePool {
|
|
|
57
59
|
|
|
58
60
|
if (candidates.length === 0) return null;
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
const minDepth = Math.min(...candidates.map((w) => w.getQueueDepth()));
|
|
63
|
+
const idle = candidates.filter((w) => w.getQueueDepth() === minDepth);
|
|
64
|
+
const picked = idle[this.rrIndex % idle.length];
|
|
65
|
+
this.rrIndex++;
|
|
66
|
+
return picked ?? null;
|
|
61
67
|
}
|
|
62
68
|
|
|
63
69
|
async query(input: QueryInput, timeoutMs?: number): Promise<CliResult> {
|