@exulu/backend 1.28.1 → 1.28.2
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/CHANGELOG.md +2 -2
- package/dist/index.cjs +74 -74
- package/dist/index.js +74 -74
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
## [1.28.
|
|
1
|
+
## [1.28.2](https://github.com/Qventu/exulu-backend/compare/v1.28.1...v1.28.2) (2025-10-24)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Bug Fixes
|
|
5
5
|
|
|
6
|
-
*
|
|
6
|
+
* circular import llm as a judge val ([0fe0753](https://github.com/Qventu/exulu-backend/commit/0fe0753c926acc22ed2b52f60f3d6323d77c39d4))
|
package/dist/index.cjs
CHANGED
|
@@ -7718,6 +7718,80 @@ var outputsContext = new ExuluContext({
|
|
|
7718
7718
|
var import_winston2 = __toESM(require("winston"), 1);
|
|
7719
7719
|
var import_util = __toESM(require("util"), 1);
|
|
7720
7720
|
|
|
7721
|
+
// src/bullmq/queues.ts
|
|
7722
|
+
var import_bullmq5 = require("bullmq");
|
|
7723
|
+
var import_bullmq_otel = require("bullmq-otel");
|
|
7724
|
+
var ExuluQueues = class {
|
|
7725
|
+
queues;
|
|
7726
|
+
constructor() {
|
|
7727
|
+
this.queues = [];
|
|
7728
|
+
}
|
|
7729
|
+
list = /* @__PURE__ */ new Map();
|
|
7730
|
+
// list of queue names
|
|
7731
|
+
queue(name) {
|
|
7732
|
+
return this.queues.find((x) => x.queue?.name === name);
|
|
7733
|
+
}
|
|
7734
|
+
// name: string
|
|
7735
|
+
// concurrency: global concurrency for the queue
|
|
7736
|
+
// ratelimit: maximum number of jobs per second
|
|
7737
|
+
// Rate limit is set on workers (see workers.ts), even global rate limits,
|
|
7738
|
+
// that is a bit counter-intuitive. Since queues are registered using .user
|
|
7739
|
+
// method of ExuluQueues we need to store the desired rate limit on the queue
|
|
7740
|
+
// here so we can use the value when creating workers for the queue instance
|
|
7741
|
+
// as there is no way to store a rate limit value natively on a bullm queue.
|
|
7742
|
+
register = (name, concurrency = 1, ratelimit = 1) => {
|
|
7743
|
+
const use = async () => {
|
|
7744
|
+
const existing = this.queues.find((x) => x.queue?.name === name);
|
|
7745
|
+
if (existing) {
|
|
7746
|
+
const globalConcurrency = await existing.queue.getGlobalConcurrency();
|
|
7747
|
+
if (globalConcurrency !== concurrency) {
|
|
7748
|
+
await existing.queue.setGlobalConcurrency(concurrency);
|
|
7749
|
+
}
|
|
7750
|
+
return {
|
|
7751
|
+
queue: existing.queue,
|
|
7752
|
+
ratelimit,
|
|
7753
|
+
concurrency
|
|
7754
|
+
};
|
|
7755
|
+
}
|
|
7756
|
+
if (!redisServer.host?.length || !redisServer.port?.length) {
|
|
7757
|
+
console.error(`[EXULU] no redis server configured, but you are trying to use a queue ( ${name}), likely in an agent or embedder (look for ExuluQueues.register().use() ).`);
|
|
7758
|
+
throw new Error(`[EXULU] no redis server configured.`);
|
|
7759
|
+
}
|
|
7760
|
+
const newQueue = new import_bullmq5.Queue(
|
|
7761
|
+
`${name}`,
|
|
7762
|
+
{
|
|
7763
|
+
connection: {
|
|
7764
|
+
...redisServer,
|
|
7765
|
+
enableOfflineQueue: false
|
|
7766
|
+
},
|
|
7767
|
+
telemetry: new import_bullmq_otel.BullMQOtel("simple-guide")
|
|
7768
|
+
}
|
|
7769
|
+
);
|
|
7770
|
+
await newQueue.setGlobalConcurrency(concurrency);
|
|
7771
|
+
this.queues.push({
|
|
7772
|
+
queue: newQueue,
|
|
7773
|
+
ratelimit,
|
|
7774
|
+
concurrency
|
|
7775
|
+
});
|
|
7776
|
+
return {
|
|
7777
|
+
queue: newQueue,
|
|
7778
|
+
ratelimit,
|
|
7779
|
+
concurrency
|
|
7780
|
+
};
|
|
7781
|
+
};
|
|
7782
|
+
this.list.set(name, {
|
|
7783
|
+
name,
|
|
7784
|
+
concurrency,
|
|
7785
|
+
ratelimit,
|
|
7786
|
+
use
|
|
7787
|
+
});
|
|
7788
|
+
return {
|
|
7789
|
+
use
|
|
7790
|
+
};
|
|
7791
|
+
};
|
|
7792
|
+
};
|
|
7793
|
+
var queues = new ExuluQueues();
|
|
7794
|
+
|
|
7721
7795
|
// src/templates/evals/index.ts
|
|
7722
7796
|
var import_zod3 = require("zod");
|
|
7723
7797
|
var llmAsJudgeEval = new ExuluEval2({
|
|
@@ -8031,80 +8105,6 @@ var ExuluApp = class {
|
|
|
8031
8105
|
};
|
|
8032
8106
|
};
|
|
8033
8107
|
|
|
8034
|
-
// src/bullmq/queues.ts
|
|
8035
|
-
var import_bullmq5 = require("bullmq");
|
|
8036
|
-
var import_bullmq_otel = require("bullmq-otel");
|
|
8037
|
-
var ExuluQueues = class {
|
|
8038
|
-
queues;
|
|
8039
|
-
constructor() {
|
|
8040
|
-
this.queues = [];
|
|
8041
|
-
}
|
|
8042
|
-
list = /* @__PURE__ */ new Map();
|
|
8043
|
-
// list of queue names
|
|
8044
|
-
queue(name) {
|
|
8045
|
-
return this.queues.find((x) => x.queue?.name === name);
|
|
8046
|
-
}
|
|
8047
|
-
// name: string
|
|
8048
|
-
// concurrency: global concurrency for the queue
|
|
8049
|
-
// ratelimit: maximum number of jobs per second
|
|
8050
|
-
// Rate limit is set on workers (see workers.ts), even global rate limits,
|
|
8051
|
-
// that is a bit counter-intuitive. Since queues are registered using .user
|
|
8052
|
-
// method of ExuluQueues we need to store the desired rate limit on the queue
|
|
8053
|
-
// here so we can use the value when creating workers for the queue instance
|
|
8054
|
-
// as there is no way to store a rate limit value natively on a bullm queue.
|
|
8055
|
-
register = (name, concurrency = 1, ratelimit = 1) => {
|
|
8056
|
-
const use = async () => {
|
|
8057
|
-
const existing = this.queues.find((x) => x.queue?.name === name);
|
|
8058
|
-
if (existing) {
|
|
8059
|
-
const globalConcurrency = await existing.queue.getGlobalConcurrency();
|
|
8060
|
-
if (globalConcurrency !== concurrency) {
|
|
8061
|
-
await existing.queue.setGlobalConcurrency(concurrency);
|
|
8062
|
-
}
|
|
8063
|
-
return {
|
|
8064
|
-
queue: existing.queue,
|
|
8065
|
-
ratelimit,
|
|
8066
|
-
concurrency
|
|
8067
|
-
};
|
|
8068
|
-
}
|
|
8069
|
-
if (!redisServer.host?.length || !redisServer.port?.length) {
|
|
8070
|
-
console.error(`[EXULU] no redis server configured, but you are trying to use a queue ( ${name}), likely in an agent or embedder (look for ExuluQueues.register().use() ).`);
|
|
8071
|
-
throw new Error(`[EXULU] no redis server configured.`);
|
|
8072
|
-
}
|
|
8073
|
-
const newQueue = new import_bullmq5.Queue(
|
|
8074
|
-
`${name}`,
|
|
8075
|
-
{
|
|
8076
|
-
connection: {
|
|
8077
|
-
...redisServer,
|
|
8078
|
-
enableOfflineQueue: false
|
|
8079
|
-
},
|
|
8080
|
-
telemetry: new import_bullmq_otel.BullMQOtel("simple-guide")
|
|
8081
|
-
}
|
|
8082
|
-
);
|
|
8083
|
-
await newQueue.setGlobalConcurrency(concurrency);
|
|
8084
|
-
this.queues.push({
|
|
8085
|
-
queue: newQueue,
|
|
8086
|
-
ratelimit,
|
|
8087
|
-
concurrency
|
|
8088
|
-
});
|
|
8089
|
-
return {
|
|
8090
|
-
queue: newQueue,
|
|
8091
|
-
ratelimit,
|
|
8092
|
-
concurrency
|
|
8093
|
-
};
|
|
8094
|
-
};
|
|
8095
|
-
this.list.set(name, {
|
|
8096
|
-
name,
|
|
8097
|
-
concurrency,
|
|
8098
|
-
ratelimit,
|
|
8099
|
-
use
|
|
8100
|
-
});
|
|
8101
|
-
return {
|
|
8102
|
-
use
|
|
8103
|
-
};
|
|
8104
|
-
};
|
|
8105
|
-
};
|
|
8106
|
-
var queues = new ExuluQueues();
|
|
8107
|
-
|
|
8108
8108
|
// src/chunking/types/base.ts
|
|
8109
8109
|
var Chunk = class _Chunk {
|
|
8110
8110
|
/** The text of the chunk. */
|
package/dist/index.js
CHANGED
|
@@ -7685,6 +7685,80 @@ var outputsContext = new ExuluContext({
|
|
|
7685
7685
|
import winston2 from "winston";
|
|
7686
7686
|
import util from "util";
|
|
7687
7687
|
|
|
7688
|
+
// src/bullmq/queues.ts
|
|
7689
|
+
import { Queue as Queue3 } from "bullmq";
|
|
7690
|
+
import { BullMQOtel } from "bullmq-otel";
|
|
7691
|
+
var ExuluQueues = class {
|
|
7692
|
+
queues;
|
|
7693
|
+
constructor() {
|
|
7694
|
+
this.queues = [];
|
|
7695
|
+
}
|
|
7696
|
+
list = /* @__PURE__ */ new Map();
|
|
7697
|
+
// list of queue names
|
|
7698
|
+
queue(name) {
|
|
7699
|
+
return this.queues.find((x) => x.queue?.name === name);
|
|
7700
|
+
}
|
|
7701
|
+
// name: string
|
|
7702
|
+
// concurrency: global concurrency for the queue
|
|
7703
|
+
// ratelimit: maximum number of jobs per second
|
|
7704
|
+
// Rate limit is set on workers (see workers.ts), even global rate limits,
|
|
7705
|
+
// that is a bit counter-intuitive. Since queues are registered using .user
|
|
7706
|
+
// method of ExuluQueues we need to store the desired rate limit on the queue
|
|
7707
|
+
// here so we can use the value when creating workers for the queue instance
|
|
7708
|
+
// as there is no way to store a rate limit value natively on a bullm queue.
|
|
7709
|
+
register = (name, concurrency = 1, ratelimit = 1) => {
|
|
7710
|
+
const use = async () => {
|
|
7711
|
+
const existing = this.queues.find((x) => x.queue?.name === name);
|
|
7712
|
+
if (existing) {
|
|
7713
|
+
const globalConcurrency = await existing.queue.getGlobalConcurrency();
|
|
7714
|
+
if (globalConcurrency !== concurrency) {
|
|
7715
|
+
await existing.queue.setGlobalConcurrency(concurrency);
|
|
7716
|
+
}
|
|
7717
|
+
return {
|
|
7718
|
+
queue: existing.queue,
|
|
7719
|
+
ratelimit,
|
|
7720
|
+
concurrency
|
|
7721
|
+
};
|
|
7722
|
+
}
|
|
7723
|
+
if (!redisServer.host?.length || !redisServer.port?.length) {
|
|
7724
|
+
console.error(`[EXULU] no redis server configured, but you are trying to use a queue ( ${name}), likely in an agent or embedder (look for ExuluQueues.register().use() ).`);
|
|
7725
|
+
throw new Error(`[EXULU] no redis server configured.`);
|
|
7726
|
+
}
|
|
7727
|
+
const newQueue = new Queue3(
|
|
7728
|
+
`${name}`,
|
|
7729
|
+
{
|
|
7730
|
+
connection: {
|
|
7731
|
+
...redisServer,
|
|
7732
|
+
enableOfflineQueue: false
|
|
7733
|
+
},
|
|
7734
|
+
telemetry: new BullMQOtel("simple-guide")
|
|
7735
|
+
}
|
|
7736
|
+
);
|
|
7737
|
+
await newQueue.setGlobalConcurrency(concurrency);
|
|
7738
|
+
this.queues.push({
|
|
7739
|
+
queue: newQueue,
|
|
7740
|
+
ratelimit,
|
|
7741
|
+
concurrency
|
|
7742
|
+
});
|
|
7743
|
+
return {
|
|
7744
|
+
queue: newQueue,
|
|
7745
|
+
ratelimit,
|
|
7746
|
+
concurrency
|
|
7747
|
+
};
|
|
7748
|
+
};
|
|
7749
|
+
this.list.set(name, {
|
|
7750
|
+
name,
|
|
7751
|
+
concurrency,
|
|
7752
|
+
ratelimit,
|
|
7753
|
+
use
|
|
7754
|
+
});
|
|
7755
|
+
return {
|
|
7756
|
+
use
|
|
7757
|
+
};
|
|
7758
|
+
};
|
|
7759
|
+
};
|
|
7760
|
+
var queues = new ExuluQueues();
|
|
7761
|
+
|
|
7688
7762
|
// src/templates/evals/index.ts
|
|
7689
7763
|
import { z as z3 } from "zod";
|
|
7690
7764
|
var llmAsJudgeEval = new ExuluEval2({
|
|
@@ -7998,80 +8072,6 @@ var ExuluApp = class {
|
|
|
7998
8072
|
};
|
|
7999
8073
|
};
|
|
8000
8074
|
|
|
8001
|
-
// src/bullmq/queues.ts
|
|
8002
|
-
import { Queue as Queue3 } from "bullmq";
|
|
8003
|
-
import { BullMQOtel } from "bullmq-otel";
|
|
8004
|
-
var ExuluQueues = class {
|
|
8005
|
-
queues;
|
|
8006
|
-
constructor() {
|
|
8007
|
-
this.queues = [];
|
|
8008
|
-
}
|
|
8009
|
-
list = /* @__PURE__ */ new Map();
|
|
8010
|
-
// list of queue names
|
|
8011
|
-
queue(name) {
|
|
8012
|
-
return this.queues.find((x) => x.queue?.name === name);
|
|
8013
|
-
}
|
|
8014
|
-
// name: string
|
|
8015
|
-
// concurrency: global concurrency for the queue
|
|
8016
|
-
// ratelimit: maximum number of jobs per second
|
|
8017
|
-
// Rate limit is set on workers (see workers.ts), even global rate limits,
|
|
8018
|
-
// that is a bit counter-intuitive. Since queues are registered using .user
|
|
8019
|
-
// method of ExuluQueues we need to store the desired rate limit on the queue
|
|
8020
|
-
// here so we can use the value when creating workers for the queue instance
|
|
8021
|
-
// as there is no way to store a rate limit value natively on a bullm queue.
|
|
8022
|
-
register = (name, concurrency = 1, ratelimit = 1) => {
|
|
8023
|
-
const use = async () => {
|
|
8024
|
-
const existing = this.queues.find((x) => x.queue?.name === name);
|
|
8025
|
-
if (existing) {
|
|
8026
|
-
const globalConcurrency = await existing.queue.getGlobalConcurrency();
|
|
8027
|
-
if (globalConcurrency !== concurrency) {
|
|
8028
|
-
await existing.queue.setGlobalConcurrency(concurrency);
|
|
8029
|
-
}
|
|
8030
|
-
return {
|
|
8031
|
-
queue: existing.queue,
|
|
8032
|
-
ratelimit,
|
|
8033
|
-
concurrency
|
|
8034
|
-
};
|
|
8035
|
-
}
|
|
8036
|
-
if (!redisServer.host?.length || !redisServer.port?.length) {
|
|
8037
|
-
console.error(`[EXULU] no redis server configured, but you are trying to use a queue ( ${name}), likely in an agent or embedder (look for ExuluQueues.register().use() ).`);
|
|
8038
|
-
throw new Error(`[EXULU] no redis server configured.`);
|
|
8039
|
-
}
|
|
8040
|
-
const newQueue = new Queue3(
|
|
8041
|
-
`${name}`,
|
|
8042
|
-
{
|
|
8043
|
-
connection: {
|
|
8044
|
-
...redisServer,
|
|
8045
|
-
enableOfflineQueue: false
|
|
8046
|
-
},
|
|
8047
|
-
telemetry: new BullMQOtel("simple-guide")
|
|
8048
|
-
}
|
|
8049
|
-
);
|
|
8050
|
-
await newQueue.setGlobalConcurrency(concurrency);
|
|
8051
|
-
this.queues.push({
|
|
8052
|
-
queue: newQueue,
|
|
8053
|
-
ratelimit,
|
|
8054
|
-
concurrency
|
|
8055
|
-
});
|
|
8056
|
-
return {
|
|
8057
|
-
queue: newQueue,
|
|
8058
|
-
ratelimit,
|
|
8059
|
-
concurrency
|
|
8060
|
-
};
|
|
8061
|
-
};
|
|
8062
|
-
this.list.set(name, {
|
|
8063
|
-
name,
|
|
8064
|
-
concurrency,
|
|
8065
|
-
ratelimit,
|
|
8066
|
-
use
|
|
8067
|
-
});
|
|
8068
|
-
return {
|
|
8069
|
-
use
|
|
8070
|
-
};
|
|
8071
|
-
};
|
|
8072
|
-
};
|
|
8073
|
-
var queues = new ExuluQueues();
|
|
8074
|
-
|
|
8075
8075
|
// src/chunking/types/base.ts
|
|
8076
8076
|
var Chunk = class _Chunk {
|
|
8077
8077
|
/** The text of the chunk. */
|