@exulu/backend 1.47.0 → 1.48.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/.mcp.json +7 -0
- package/CHANGELOG.md +4 -15
- package/README.md +2 -2
- package/dist/index.cjs +54 -51
- package/dist/index.d.cts +347 -347
- package/dist/index.d.ts +347 -347
- package/dist/index.js +53 -51
- package/ee/entitlements.ts +1 -1
- package/ee/schemas.ts +4 -3
- package/mintlify-docs/changelog.mdx +96 -2
- package/package.json +4 -3
- package/old-documentation/logging.md +0 -122
- package/old-documentation/otel.md +0 -145
- /package/{old-documentation → devops/documentation}/patch-older-releases.md +0 -0
package/dist/index.js
CHANGED
|
@@ -473,7 +473,7 @@ var requestValidators = {
|
|
|
473
473
|
};
|
|
474
474
|
|
|
475
475
|
// types/enums/statistics.ts
|
|
476
|
-
var
|
|
476
|
+
var STATISTICS_TYPE_ENUM = {
|
|
477
477
|
CONTEXT_RETRIEVE: "CONTEXT_RETRIEVE",
|
|
478
478
|
SOURCE_UPDATE: "SOURCE_UPDATE",
|
|
479
479
|
EMBEDDER_UPSERT: "EMBEDDER_UPSERT",
|
|
@@ -1778,7 +1778,7 @@ var rolesSchema = {
|
|
|
1778
1778
|
type: "text"
|
|
1779
1779
|
},
|
|
1780
1780
|
{
|
|
1781
|
-
name:
|
|
1781
|
+
name: "agents",
|
|
1782
1782
|
type: "text"
|
|
1783
1783
|
// write | read access to agents
|
|
1784
1784
|
},
|
|
@@ -1792,12 +1792,12 @@ var rolesSchema = {
|
|
|
1792
1792
|
// write | read access to workflows
|
|
1793
1793
|
},
|
|
1794
1794
|
{
|
|
1795
|
-
name:
|
|
1795
|
+
name: "variables",
|
|
1796
1796
|
type: "text"
|
|
1797
1797
|
// write | read access to variables
|
|
1798
1798
|
},
|
|
1799
1799
|
{
|
|
1800
|
-
name:
|
|
1800
|
+
name: "users",
|
|
1801
1801
|
type: "text"
|
|
1802
1802
|
// write | read access to users
|
|
1803
1803
|
},
|
|
@@ -2145,7 +2145,7 @@ var agentSessionsSchema = {
|
|
|
2145
2145
|
}
|
|
2146
2146
|
]
|
|
2147
2147
|
};
|
|
2148
|
-
var
|
|
2148
|
+
var variablesSchema = {
|
|
2149
2149
|
type: "variables",
|
|
2150
2150
|
name: {
|
|
2151
2151
|
plural: "variables",
|
|
@@ -2201,7 +2201,7 @@ var projectsSchema = {
|
|
|
2201
2201
|
}
|
|
2202
2202
|
]
|
|
2203
2203
|
};
|
|
2204
|
-
var
|
|
2204
|
+
var agentsSchema = {
|
|
2205
2205
|
type: "agents",
|
|
2206
2206
|
name: {
|
|
2207
2207
|
plural: "agents",
|
|
@@ -2269,7 +2269,7 @@ var agentsSchema2 = {
|
|
|
2269
2269
|
}
|
|
2270
2270
|
]
|
|
2271
2271
|
};
|
|
2272
|
-
var
|
|
2272
|
+
var usersSchema = {
|
|
2273
2273
|
type: "users",
|
|
2274
2274
|
name: {
|
|
2275
2275
|
plural: "users",
|
|
@@ -2447,6 +2447,10 @@ var promptLibrarySchema = {
|
|
|
2447
2447
|
{
|
|
2448
2448
|
name: "assigned_agents",
|
|
2449
2449
|
type: "json"
|
|
2450
|
+
},
|
|
2451
|
+
{
|
|
2452
|
+
name: "history",
|
|
2453
|
+
type: "json"
|
|
2450
2454
|
}
|
|
2451
2455
|
]
|
|
2452
2456
|
};
|
|
@@ -2509,13 +2513,13 @@ var coreSchemas = {
|
|
|
2509
2513
|
get: () => {
|
|
2510
2514
|
const license = checkLicense();
|
|
2511
2515
|
const schemas = {
|
|
2512
|
-
agentsSchema: () => addCoreFields(
|
|
2516
|
+
agentsSchema: () => addCoreFields(agentsSchema),
|
|
2513
2517
|
agentMessagesSchema: () => addCoreFields(agentMessagesSchema),
|
|
2514
2518
|
agentSessionsSchema: () => addCoreFields(agentSessionsSchema),
|
|
2515
2519
|
projectsSchema: () => addCoreFields(projectsSchema),
|
|
2516
|
-
usersSchema: () => addCoreFields(
|
|
2520
|
+
usersSchema: () => addCoreFields(usersSchema),
|
|
2517
2521
|
statisticsSchema: () => addCoreFields(statisticsSchema),
|
|
2518
|
-
variablesSchema: () => addCoreFields(
|
|
2522
|
+
variablesSchema: () => addCoreFields(variablesSchema),
|
|
2519
2523
|
platformConfigurationsSchema: () => addCoreFields(platformConfigurationsSchema),
|
|
2520
2524
|
promptLibrarySchema: () => addCoreFields(promptLibrarySchema),
|
|
2521
2525
|
embedderSettingsSchema: () => addCoreFields(embedderSettingsSchema),
|
|
@@ -3060,7 +3064,7 @@ var vectorSearch = async ({
|
|
|
3060
3064
|
await updateStatistic({
|
|
3061
3065
|
name: "count",
|
|
3062
3066
|
label: table.name.singular,
|
|
3063
|
-
type:
|
|
3067
|
+
type: STATISTICS_TYPE_ENUM.CONTEXT_RETRIEVE,
|
|
3064
3068
|
trigger,
|
|
3065
3069
|
user: user?.id,
|
|
3066
3070
|
role
|
|
@@ -3669,7 +3673,7 @@ var convertExuluToolsToAiSdkTools = async (currentTools, approvedTools, allExulu
|
|
|
3669
3673
|
await updateStatistic({
|
|
3670
3674
|
name: "count",
|
|
3671
3675
|
label: cur.name,
|
|
3672
|
-
type:
|
|
3676
|
+
type: STATISTICS_TYPE_ENUM.TOOL_CALL,
|
|
3673
3677
|
trigger: "agent",
|
|
3674
3678
|
count: 1,
|
|
3675
3679
|
user: user?.id,
|
|
@@ -4566,7 +4570,7 @@ var ExuluContext2 = class {
|
|
|
4566
4570
|
await updateStatistic({
|
|
4567
4571
|
name: "count",
|
|
4568
4572
|
label: this.name,
|
|
4569
|
-
type:
|
|
4573
|
+
type: STATISTICS_TYPE_ENUM.TOOL_CALL,
|
|
4570
4574
|
trigger: "tool",
|
|
4571
4575
|
count: 1,
|
|
4572
4576
|
user: user?.id,
|
|
@@ -5676,9 +5680,6 @@ var finalizeRequestedFields = async ({
|
|
|
5676
5680
|
});
|
|
5677
5681
|
});
|
|
5678
5682
|
} else {
|
|
5679
|
-
console.log("[EXULU] table name singular", table.name.singular);
|
|
5680
|
-
console.log("[EXULU] requestedFields", requestedFields);
|
|
5681
|
-
console.log("[EXULU] result", result);
|
|
5682
5683
|
if (table.name.singular === "workflow_template") {
|
|
5683
5684
|
if (requestedFields.includes("variables")) {
|
|
5684
5685
|
const variables = [];
|
|
@@ -6911,7 +6912,7 @@ function createMutations(table, providers, contexts, rerankers, tools, config) {
|
|
|
6911
6912
|
await updateStatistic({
|
|
6912
6913
|
name: "count",
|
|
6913
6914
|
label: source.id,
|
|
6914
|
-
type:
|
|
6915
|
+
type: STATISTICS_TYPE_ENUM.SOURCE_UPDATE,
|
|
6915
6916
|
trigger: "api",
|
|
6916
6917
|
count: 1,
|
|
6917
6918
|
user: context?.user?.id,
|
|
@@ -7663,7 +7664,7 @@ var createWorkers = async (providers, queues2, config, contexts, rerankers, eval
|
|
|
7663
7664
|
await updateStatistic({
|
|
7664
7665
|
name: "count",
|
|
7665
7666
|
label: source.id,
|
|
7666
|
-
type:
|
|
7667
|
+
type: STATISTICS_TYPE_ENUM.SOURCE_UPDATE,
|
|
7667
7668
|
trigger: "api",
|
|
7668
7669
|
count: 1,
|
|
7669
7670
|
user: data?.user,
|
|
@@ -8046,7 +8047,7 @@ var processUiMessagesFlow = async ({
|
|
|
8046
8047
|
updateStatistic({
|
|
8047
8048
|
name: "count",
|
|
8048
8049
|
label: statistics.label,
|
|
8049
|
-
type:
|
|
8050
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
8050
8051
|
trigger: statistics.trigger,
|
|
8051
8052
|
count: 1,
|
|
8052
8053
|
user: user.id,
|
|
@@ -8056,7 +8057,7 @@ var processUiMessagesFlow = async ({
|
|
|
8056
8057
|
updateStatistic({
|
|
8057
8058
|
name: "inputTokens",
|
|
8058
8059
|
label: statistics.label,
|
|
8059
|
-
type:
|
|
8060
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
8060
8061
|
trigger: statistics.trigger,
|
|
8061
8062
|
count: metadata?.inputTokens,
|
|
8062
8063
|
user: user.id,
|
|
@@ -8067,7 +8068,7 @@ var processUiMessagesFlow = async ({
|
|
|
8067
8068
|
updateStatistic({
|
|
8068
8069
|
name: "outputTokens",
|
|
8069
8070
|
label: statistics.label,
|
|
8070
|
-
type:
|
|
8071
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
8071
8072
|
trigger: statistics.trigger,
|
|
8072
8073
|
count: metadata?.outputTokens
|
|
8073
8074
|
})
|
|
@@ -9952,7 +9953,7 @@ var ExuluProvider = class {
|
|
|
9952
9953
|
await updateStatistic({
|
|
9953
9954
|
name: "count",
|
|
9954
9955
|
label: agent.name,
|
|
9955
|
-
type:
|
|
9956
|
+
type: STATISTICS_TYPE_ENUM.TOOL_CALL,
|
|
9956
9957
|
trigger: "tool",
|
|
9957
9958
|
count: 1,
|
|
9958
9959
|
user: user?.id,
|
|
@@ -10184,7 +10185,7 @@ var ExuluProvider = class {
|
|
|
10184
10185
|
updateStatistic({
|
|
10185
10186
|
name: "count",
|
|
10186
10187
|
label: statistics.label,
|
|
10187
|
-
type:
|
|
10188
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
10188
10189
|
trigger: statistics.trigger,
|
|
10189
10190
|
count: 1,
|
|
10190
10191
|
user: user?.id,
|
|
@@ -10194,7 +10195,7 @@ var ExuluProvider = class {
|
|
|
10194
10195
|
updateStatistic({
|
|
10195
10196
|
name: "inputTokens",
|
|
10196
10197
|
label: statistics.label,
|
|
10197
|
-
type:
|
|
10198
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
10198
10199
|
trigger: statistics.trigger,
|
|
10199
10200
|
count: inputTokens
|
|
10200
10201
|
})
|
|
@@ -10203,7 +10204,7 @@ var ExuluProvider = class {
|
|
|
10203
10204
|
updateStatistic({
|
|
10204
10205
|
name: "outputTokens",
|
|
10205
10206
|
label: statistics.label,
|
|
10206
|
-
type:
|
|
10207
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
10207
10208
|
trigger: statistics.trigger,
|
|
10208
10209
|
count: outputTokens
|
|
10209
10210
|
})
|
|
@@ -10249,7 +10250,7 @@ var ExuluProvider = class {
|
|
|
10249
10250
|
updateStatistic({
|
|
10250
10251
|
name: "count",
|
|
10251
10252
|
label: statistics.label,
|
|
10252
|
-
type:
|
|
10253
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
10253
10254
|
trigger: statistics.trigger,
|
|
10254
10255
|
count: 1,
|
|
10255
10256
|
user: user?.id,
|
|
@@ -10259,7 +10260,7 @@ var ExuluProvider = class {
|
|
|
10259
10260
|
updateStatistic({
|
|
10260
10261
|
name: "inputTokens",
|
|
10261
10262
|
label: statistics.label,
|
|
10262
|
-
type:
|
|
10263
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
10263
10264
|
trigger: statistics.trigger,
|
|
10264
10265
|
count: totalUsage?.inputTokens,
|
|
10265
10266
|
user: user?.id,
|
|
@@ -10270,7 +10271,7 @@ var ExuluProvider = class {
|
|
|
10270
10271
|
updateStatistic({
|
|
10271
10272
|
name: "outputTokens",
|
|
10272
10273
|
label: statistics.label,
|
|
10273
|
-
type:
|
|
10274
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
10274
10275
|
trigger: statistics.trigger,
|
|
10275
10276
|
count: totalUsage?.outputTokens
|
|
10276
10277
|
})
|
|
@@ -10665,7 +10666,7 @@ var global_queues = {
|
|
|
10665
10666
|
eval_runs: "eval_runs"
|
|
10666
10667
|
};
|
|
10667
10668
|
var {
|
|
10668
|
-
agentsSchema:
|
|
10669
|
+
agentsSchema: agentsSchema2,
|
|
10669
10670
|
feedbackSchema: feedbackSchema2,
|
|
10670
10671
|
projectsSchema: projectsSchema2,
|
|
10671
10672
|
jobResultsSchema: jobResultsSchema2,
|
|
@@ -10676,8 +10677,8 @@ var {
|
|
|
10676
10677
|
agentSessionsSchema: agentSessionsSchema2,
|
|
10677
10678
|
agentMessagesSchema: agentMessagesSchema2,
|
|
10678
10679
|
rolesSchema: rolesSchema2,
|
|
10679
|
-
usersSchema:
|
|
10680
|
-
variablesSchema:
|
|
10680
|
+
usersSchema: usersSchema2,
|
|
10681
|
+
variablesSchema: variablesSchema2,
|
|
10681
10682
|
workflowTemplatesSchema: workflowTemplatesSchema2,
|
|
10682
10683
|
rbacSchema: rbacSchema2,
|
|
10683
10684
|
promptLibrarySchema: promptLibrarySchema2,
|
|
@@ -10720,9 +10721,9 @@ var createExpressRoutes = async (app, providers, tools, contexts, config, evals,
|
|
|
10720
10721
|
`);
|
|
10721
10722
|
const schema = createSDL(
|
|
10722
10723
|
[
|
|
10723
|
-
|
|
10724
|
+
usersSchema2(),
|
|
10724
10725
|
rolesSchema2(),
|
|
10725
|
-
|
|
10726
|
+
agentsSchema2(),
|
|
10726
10727
|
feedbackSchema2(),
|
|
10727
10728
|
projectsSchema2(),
|
|
10728
10729
|
jobResultsSchema2(),
|
|
@@ -10735,7 +10736,7 @@ var createExpressRoutes = async (app, providers, tools, contexts, config, evals,
|
|
|
10735
10736
|
testCasesSchema2(),
|
|
10736
10737
|
agentSessionsSchema2(),
|
|
10737
10738
|
agentMessagesSchema2(),
|
|
10738
|
-
|
|
10739
|
+
variablesSchema2(),
|
|
10739
10740
|
workflowTemplatesSchema2(),
|
|
10740
10741
|
statisticsSchema2(),
|
|
10741
10742
|
rbacSchema2()
|
|
@@ -11179,7 +11180,7 @@ Mood: friendly and intelligent.
|
|
|
11179
11180
|
updateStatistic({
|
|
11180
11181
|
name: "count",
|
|
11181
11182
|
label: statistics.label,
|
|
11182
|
-
type:
|
|
11183
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
11183
11184
|
trigger: statistics.trigger,
|
|
11184
11185
|
count: 1,
|
|
11185
11186
|
user: user?.id,
|
|
@@ -11189,7 +11190,7 @@ Mood: friendly and intelligent.
|
|
|
11189
11190
|
updateStatistic({
|
|
11190
11191
|
name: "inputTokens",
|
|
11191
11192
|
label: statistics.label,
|
|
11192
|
-
type:
|
|
11193
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
11193
11194
|
trigger: statistics.trigger,
|
|
11194
11195
|
count: metadata?.inputTokens,
|
|
11195
11196
|
user: user?.id,
|
|
@@ -11200,7 +11201,7 @@ Mood: friendly and intelligent.
|
|
|
11200
11201
|
updateStatistic({
|
|
11201
11202
|
name: "outputTokens",
|
|
11202
11203
|
label: statistics.label,
|
|
11203
|
-
type:
|
|
11204
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
11204
11205
|
trigger: statistics.trigger,
|
|
11205
11206
|
count: metadata?.outputTokens
|
|
11206
11207
|
})
|
|
@@ -11270,7 +11271,7 @@ Mood: friendly and intelligent.
|
|
|
11270
11271
|
const user = authenticationResult.user;
|
|
11271
11272
|
let agentQuery = db2("agents");
|
|
11272
11273
|
agentQuery.select("*");
|
|
11273
|
-
agentQuery = applyAccessControl(
|
|
11274
|
+
agentQuery = applyAccessControl(agentsSchema2(), agentQuery, authenticationResult.user);
|
|
11274
11275
|
agentQuery.where({ id: req.params.agent });
|
|
11275
11276
|
const agent = await agentQuery.first();
|
|
11276
11277
|
if (!agent) {
|
|
@@ -11467,7 +11468,7 @@ data: ${JSON.stringify(event)}
|
|
|
11467
11468
|
updateStatistic({
|
|
11468
11469
|
name: "count",
|
|
11469
11470
|
label: statistics.label,
|
|
11470
|
-
type:
|
|
11471
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
11471
11472
|
trigger: statistics.trigger,
|
|
11472
11473
|
count: 1,
|
|
11473
11474
|
user: user.id,
|
|
@@ -11478,7 +11479,7 @@ data: ${JSON.stringify(event)}
|
|
|
11478
11479
|
updateStatistic({
|
|
11479
11480
|
name: "inputTokens",
|
|
11480
11481
|
label: statistics.label,
|
|
11481
|
-
type:
|
|
11482
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
11482
11483
|
trigger: statistics.trigger,
|
|
11483
11484
|
count: totalInputTokens,
|
|
11484
11485
|
user: user.id,
|
|
@@ -11490,7 +11491,7 @@ data: ${JSON.stringify(event)}
|
|
|
11490
11491
|
updateStatistic({
|
|
11491
11492
|
name: "outputTokens",
|
|
11492
11493
|
label: statistics.label,
|
|
11493
|
-
type:
|
|
11494
|
+
type: STATISTICS_TYPE_ENUM.AGENT_RUN,
|
|
11494
11495
|
trigger: statistics.trigger,
|
|
11495
11496
|
count: totalInputTokens,
|
|
11496
11497
|
user: user.id,
|
|
@@ -14569,7 +14570,7 @@ var ExuluEmbedder = class {
|
|
|
14569
14570
|
await updateStatistic({
|
|
14570
14571
|
name: "count",
|
|
14571
14572
|
label: statistics.label,
|
|
14572
|
-
type:
|
|
14573
|
+
type: STATISTICS_TYPE_ENUM.EMBEDDER_GENERATE,
|
|
14573
14574
|
trigger: statistics.trigger,
|
|
14574
14575
|
count: 1,
|
|
14575
14576
|
user,
|
|
@@ -14597,7 +14598,7 @@ var ExuluEmbedder = class {
|
|
|
14597
14598
|
await updateStatistic({
|
|
14598
14599
|
name: "count",
|
|
14599
14600
|
label: statistics.label,
|
|
14600
|
-
type:
|
|
14601
|
+
type: STATISTICS_TYPE_ENUM.EMBEDDER_GENERATE,
|
|
14601
14602
|
trigger: statistics.trigger,
|
|
14602
14603
|
count: 1,
|
|
14603
14604
|
user,
|
|
@@ -15018,7 +15019,7 @@ var SentenceChunker = class _SentenceChunker extends BaseChunker {
|
|
|
15018
15019
|
|
|
15019
15020
|
// src/postgres/init-db.ts
|
|
15020
15021
|
var {
|
|
15021
|
-
agentsSchema:
|
|
15022
|
+
agentsSchema: agentsSchema3,
|
|
15022
15023
|
feedbackSchema: feedbackSchema3,
|
|
15023
15024
|
testCasesSchema: testCasesSchema3,
|
|
15024
15025
|
evalSetsSchema: evalSetsSchema3,
|
|
@@ -15027,9 +15028,9 @@ var {
|
|
|
15027
15028
|
platformConfigurationsSchema: platformConfigurationsSchema3,
|
|
15028
15029
|
agentMessagesSchema: agentMessagesSchema3,
|
|
15029
15030
|
rolesSchema: rolesSchema3,
|
|
15030
|
-
usersSchema:
|
|
15031
|
+
usersSchema: usersSchema3,
|
|
15031
15032
|
statisticsSchema: statisticsSchema3,
|
|
15032
|
-
variablesSchema:
|
|
15033
|
+
variablesSchema: variablesSchema3,
|
|
15033
15034
|
workflowTemplatesSchema: workflowTemplatesSchema3,
|
|
15034
15035
|
rbacSchema: rbacSchema3,
|
|
15035
15036
|
projectsSchema: projectsSchema3,
|
|
@@ -15075,9 +15076,9 @@ var up = async function(knex) {
|
|
|
15075
15076
|
embedderSettingsSchema3(),
|
|
15076
15077
|
promptFavoritesSchema3(),
|
|
15077
15078
|
rbacSchema3(),
|
|
15078
|
-
|
|
15079
|
+
agentsSchema3(),
|
|
15079
15080
|
feedbackSchema3(),
|
|
15080
|
-
|
|
15081
|
+
variablesSchema3(),
|
|
15081
15082
|
workflowTemplatesSchema3()
|
|
15082
15083
|
];
|
|
15083
15084
|
const createTable = async (schema) => {
|
|
@@ -15124,7 +15125,7 @@ var up = async function(knex) {
|
|
|
15124
15125
|
table.string("email", 255);
|
|
15125
15126
|
table.timestamp("emailVerified", { useTz: true });
|
|
15126
15127
|
table.text("image");
|
|
15127
|
-
for (const field of
|
|
15128
|
+
for (const field of usersSchema3().fields) {
|
|
15128
15129
|
console.log("[EXULU] field", field);
|
|
15129
15130
|
const { type, name, default: defaultValue, unique } = field;
|
|
15130
15131
|
if (name === "id" || name === "name" || name === "email" || name === "emailVerified" || name === "image" || name === "password") {
|
|
@@ -15137,7 +15138,7 @@ var up = async function(knex) {
|
|
|
15137
15138
|
}
|
|
15138
15139
|
});
|
|
15139
15140
|
} else {
|
|
15140
|
-
await addMissingFields(knex, "users",
|
|
15141
|
+
await addMissingFields(knex, "users", usersSchema3().fields, [
|
|
15141
15142
|
"id",
|
|
15142
15143
|
"name",
|
|
15143
15144
|
"email",
|
|
@@ -16214,7 +16215,7 @@ var ExuluChunkers = {
|
|
|
16214
16215
|
};
|
|
16215
16216
|
export {
|
|
16216
16217
|
JOB_STATUS_ENUM as EXULU_JOB_STATUS_ENUM,
|
|
16217
|
-
|
|
16218
|
+
STATISTICS_TYPE_ENUM as EXULU_STATISTICS_TYPE_ENUM,
|
|
16218
16219
|
ExuluApp2 as ExuluApp,
|
|
16219
16220
|
ExuluAuthentication,
|
|
16220
16221
|
ExuluChunkers,
|
|
@@ -16226,6 +16227,7 @@ export {
|
|
|
16226
16227
|
ExuluEval,
|
|
16227
16228
|
ExuluJobs,
|
|
16228
16229
|
ExuluOtel,
|
|
16230
|
+
ExuluProvider,
|
|
16229
16231
|
queues as ExuluQueues,
|
|
16230
16232
|
ExuluReranker,
|
|
16231
16233
|
ExuluTool,
|
package/ee/entitlements.ts
CHANGED
|
@@ -8,7 +8,7 @@ export const ENTITLEMENTS: {
|
|
|
8
8
|
"template-conversations": boolean,
|
|
9
9
|
"agent-feedback": boolean,
|
|
10
10
|
"multi-agent-tooling": boolean,
|
|
11
|
-
"advanced-document-processing": boolean
|
|
11
|
+
"advanced-document-processing": boolean,
|
|
12
12
|
} = {
|
|
13
13
|
"rbac": false,
|
|
14
14
|
"advanced-markdown-chunker": false,
|
package/ee/schemas.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Ee edition specific schemas
|
|
2
2
|
|
|
3
|
+
import { STATISTICS_TYPE_ENUM } from "@EXULU_TYPES/enums/statistics";
|
|
3
4
|
import type { ExuluTableDefinition } from "@EXULU_TYPES/exulu-table-definition";
|
|
4
5
|
|
|
5
6
|
export const feedbackSchema: ExuluTableDefinition = {
|
|
@@ -49,7 +50,7 @@ export const rolesSchema: ExuluTableDefinition = {
|
|
|
49
50
|
type: "text",
|
|
50
51
|
},
|
|
51
52
|
{
|
|
52
|
-
name:
|
|
53
|
+
name: "agents",
|
|
53
54
|
type: "text", // write | read access to agents
|
|
54
55
|
},
|
|
55
56
|
{
|
|
@@ -61,11 +62,11 @@ export const rolesSchema: ExuluTableDefinition = {
|
|
|
61
62
|
type: "text", // write | read access to workflows
|
|
62
63
|
},
|
|
63
64
|
{
|
|
64
|
-
name:
|
|
65
|
+
name: "variables",
|
|
65
66
|
type: "text", // write | read access to variables
|
|
66
67
|
},
|
|
67
68
|
{
|
|
68
|
-
name:
|
|
69
|
+
name: "users",
|
|
69
70
|
type: "text", // write | read access to users
|
|
70
71
|
},
|
|
71
72
|
{
|
|
@@ -3,7 +3,101 @@ title: "Changelog"
|
|
|
3
3
|
description: "Product updates and release notes for Exulu IMP"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
<Update label="March 2026">
|
|
6
|
+
<Update label="March 2026 - Enterprise Edition">
|
|
7
|
+
**Release Date:** March 11, 2026
|
|
8
|
+
|
|
9
|
+
This release introduces a major architectural change with the separation of Community and Enterprise Edition features, along with a powerful new document processing system.
|
|
10
|
+
|
|
11
|
+
### Versions
|
|
12
|
+
- **Backend NPM package:** 1.48.0
|
|
13
|
+
|
|
14
|
+
<Info>This release includes breaking changes if you were using enterprise features. Please review the migration guide for Enterprise Edition.</Info>
|
|
15
|
+
|
|
16
|
+
## What's New
|
|
17
|
+
|
|
18
|
+
### Enterprise Edition Separation
|
|
19
|
+
We've established a clear separation between Community Edition (CE) and Enterprise Edition (EE) features:
|
|
20
|
+
|
|
21
|
+
- **EE Directory Structure:** All enterprise features now organized in dedicated `ee/` directory
|
|
22
|
+
- **License-based Entitlements:** New entitlements system with license checking for premium features
|
|
23
|
+
- **Feature Differentiation:** Clear documentation of CE vs EE feature sets
|
|
24
|
+
- **Moved to EE:** Agentic retrieval, BullMQ queues, RBAC, workers, and tokenizer are now enterprise features
|
|
25
|
+
|
|
26
|
+
### Advanced Document Processing System
|
|
27
|
+
Powerful new document processing pipeline with VLM-powered validation:
|
|
28
|
+
|
|
29
|
+
- **Multi-format Support:** Process PDF, DOCX, DOC, TXT, and MD files
|
|
30
|
+
- **Python-based PDF Processor:** Uses MIT-licensed Docling library for accurate extraction
|
|
31
|
+
- **VLM Validation:** Vision Language Model validates and corrects OCR results
|
|
32
|
+
- **Smart Chunking:** Page-aware markdown chunking with heading hierarchy preservation
|
|
33
|
+
- **Table Extraction:** Automatic table detection and normalization in markdown format
|
|
34
|
+
- **Hybrid Chunking:** Combines semantic understanding with token-based splitting
|
|
35
|
+
- **Standalone Executable:** Build script creates portable PDF processor executable
|
|
36
|
+
|
|
37
|
+
### Code Architecture Improvements
|
|
38
|
+
Significant refactoring for better maintainability and clarity:
|
|
39
|
+
|
|
40
|
+
- **Provider-Agent Separation:** Clear distinction between `ExuluProvider` (LLM configuration) and `ExuluAgent` (provider + tools + contexts)
|
|
41
|
+
- **Code-defined Agents:** Support for defining agents in code, not just via database/API/UI
|
|
42
|
+
- **Refactored Load Logic:** Agent loading logic moved into ExuluApp as methods
|
|
43
|
+
- **Shared Utilities:** Extracted `withRetry` utility for reusable retry logic across codebase
|
|
44
|
+
- **Consolidated Schemas:** Updated GraphQL resolvers and schemas for better organization
|
|
45
|
+
|
|
46
|
+
## Documentation Updates
|
|
47
|
+
|
|
48
|
+
- **CE vs EE Comparison:** New pages documenting feature differences
|
|
49
|
+
- **Partners Program:** Documentation for licensing and partnerships
|
|
50
|
+
- **Enhanced API Reference:** Expanded with EE features
|
|
51
|
+
- **Migration Guides:** Clear instructions for upgrading to new architecture
|
|
52
|
+
|
|
53
|
+
## Bug Fixes
|
|
54
|
+
|
|
55
|
+
- **Import Errors:** Fixed import path issues after EE separation
|
|
56
|
+
- **TypeScript Paths:** Updated configuration for EE modules
|
|
57
|
+
- **Queue Structure:** Updated validators for new queue organization
|
|
58
|
+
|
|
59
|
+
## Dependency Updates
|
|
60
|
+
|
|
61
|
+
### New Dependencies
|
|
62
|
+
- `docling` - Python library for document processing
|
|
63
|
+
- `mammoth` - DOCX to markdown conversion
|
|
64
|
+
- `turndown` - HTML to markdown conversion
|
|
65
|
+
|
|
66
|
+
## Breaking Changes
|
|
67
|
+
|
|
68
|
+
<Warning>
|
|
69
|
+
If you were using any of the following features, they now require an Enterprise Edition license:
|
|
70
|
+
- Agentic retrieval system
|
|
71
|
+
- BullMQ-based queues
|
|
72
|
+
- RBAC (Role-Based Access Control)
|
|
73
|
+
- Worker processes
|
|
74
|
+
- Custom tokenizer features
|
|
75
|
+
</Warning>
|
|
76
|
+
|
|
77
|
+
## Migration Guide
|
|
78
|
+
|
|
79
|
+
For users upgrading from previous versions:
|
|
80
|
+
|
|
81
|
+
1. Update to `@exulu/backend@latest`
|
|
82
|
+
2. Review your usage of enterprise features
|
|
83
|
+
3. Update import paths if you're importing from internal modules
|
|
84
|
+
4. Check the CE vs EE documentation to understand feature availability
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
npm install @exulu/backend@latest
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## What This Means For You
|
|
91
|
+
|
|
92
|
+
- **Clear Licensing:** Understand exactly which features are available in each edition
|
|
93
|
+
- **Better Architecture:** Cleaner separation of concerns between providers and agents
|
|
94
|
+
- **Advanced Processing:** Extract structured content from complex documents with high accuracy
|
|
95
|
+
- **VLM Validation:** Leverage vision models to improve OCR quality
|
|
96
|
+
- **Code-first Agents:** Define agents programmatically for better version control and deployment
|
|
97
|
+
- **Improved Maintainability:** Clearer code structure makes customization easier
|
|
98
|
+
</Update>
|
|
99
|
+
|
|
100
|
+
<Update label="March 2026 - Q1 Winter Release">
|
|
7
101
|
**Release Date:** March 5, 2026
|
|
8
102
|
|
|
9
103
|
We're excited to share the latest updates to Exulu IMP! This release focuses on intelligent retrieval capabilities, code quality improvements, and expanded AI model support.
|
|
@@ -132,7 +226,7 @@ description: "Product updates and release notes for Exulu IMP"
|
|
|
132
226
|
```
|
|
133
227
|
</Update>
|
|
134
228
|
|
|
135
|
-
<Update label="January 2026">
|
|
229
|
+
<Update label="January 2026 - Q4 Winter Release">
|
|
136
230
|
**Release Date:** January 10, 2026
|
|
137
231
|
|
|
138
232
|
We're excited to announce a major platform update bringing significant workflow enhancements, a significantly improved chat experience, and substantial architectural improvements. This release represents our most comprehensive update to date, with a focus on developer productivity, system performance, and user experience.
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@exulu/backend",
|
|
3
3
|
"author": "Qventu Bv.",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.48.2",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"private": false,
|
|
7
7
|
"publishConfig": {
|
|
8
|
-
"access": "
|
|
8
|
+
"access": "public"
|
|
9
9
|
},
|
|
10
10
|
"module": "./dist/index.mjs",
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
},
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
18
|
-
"url": "https://github.com/Qventu/exulu-backend"
|
|
18
|
+
"url": "https://github.com/Qventu/exulu-backend.git"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
21
|
"preinstall": "node -e \"if (process.version !== 'v22.18.0') { console.error('❌ Wrong Node.js version. Expected v22.18.0, got ' + process.version); process.exit(1); }\"",
|
|
@@ -126,6 +126,7 @@
|
|
|
126
126
|
"natural": "^8.1.0",
|
|
127
127
|
"officeparser": "^5.2.2",
|
|
128
128
|
"openai": "^5.21.0",
|
|
129
|
+
"p-limit": "^7.3.0",
|
|
129
130
|
"papaparse": "^5.5.2",
|
|
130
131
|
"pg": "^8.16.3",
|
|
131
132
|
"pgvector": "^0.2.0",
|