@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 CHANGED
@@ -1,6 +1,6 @@
1
- ## [1.28.1](https://github.com/Qventu/exulu-backend/compare/v1.28.0...v1.28.1) (2025-10-24)
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
- * made fileUploads config in ExuluApp optional ([078bc9b](https://github.com/Qventu/exulu-backend/commit/078bc9ba3e294387e5cae5a25ee7144353aa6482))
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. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@exulu/backend",
3
3
  "author": "Qventu Bv.",
4
- "version": "1.28.1",
4
+ "version": "1.28.2",
5
5
  "main": "./dist/index.js",
6
6
  "private": false,
7
7
  "publishConfig": {