@exulu/backend 1.53.1 → 1.55.0
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/dist/index.cjs +5812 -4003
- package/dist/index.d.cts +46 -7
- package/dist/index.d.ts +46 -7
- package/dist/index.js +5830 -4023
- package/ee/agentic-retrieval/v3/agent-loop.ts +288 -0
- package/ee/agentic-retrieval/v3/classifier.ts +78 -0
- package/ee/agentic-retrieval/v3/context-sampler.ts +70 -0
- package/ee/agentic-retrieval/v3/dynamic-tools.ts +115 -0
- package/ee/agentic-retrieval/v3/index.ts +375 -0
- package/ee/agentic-retrieval/v3/session-tools-registry.ts +20 -0
- package/ee/agentic-retrieval/v3/strategies.ts +171 -0
- package/ee/agentic-retrieval/v3/tools.ts +550 -0
- package/ee/agentic-retrieval/v3/trajectory.ts +309 -0
- package/ee/agentic-retrieval/v3/types.ts +59 -0
- package/ee/chunking/markdown.ts +4 -2
- package/ee/invoke-skills/create-sandbox.ts +119 -0
- package/ee/python/documents/processing/doc_processor.ts +106 -14
- package/ee/workers.ts +1 -1
- package/package.json +9 -4
- package/ee/agentic-retrieval/index.ts +0 -1109
package/dist/index.d.cts
CHANGED
|
@@ -65,6 +65,7 @@ interface ExuluAgent {
|
|
|
65
65
|
source: "code" | "database";
|
|
66
66
|
memory?: string;
|
|
67
67
|
welcomemessage?: string;
|
|
68
|
+
defaultagent?: boolean;
|
|
68
69
|
type: "agent";
|
|
69
70
|
name: string;
|
|
70
71
|
image?: string;
|
|
@@ -96,6 +97,10 @@ interface ExuluAgent {
|
|
|
96
97
|
name: string;
|
|
97
98
|
description: string;
|
|
98
99
|
}[];
|
|
100
|
+
skills?: {
|
|
101
|
+
id: string;
|
|
102
|
+
name: string;
|
|
103
|
+
}[];
|
|
99
104
|
maxContextLength?: number;
|
|
100
105
|
authenticationInformation?: string;
|
|
101
106
|
systemInstructions?: string;
|
|
@@ -528,7 +533,6 @@ declare class ExuluContext {
|
|
|
528
533
|
calculateVectors?: "manual" | "onUpdate" | "onInsert" | "always";
|
|
529
534
|
maxRetrievalResults?: number;
|
|
530
535
|
defaultRightsMode?: ExuluRightsMode;
|
|
531
|
-
enableAsTool?: boolean;
|
|
532
536
|
cutoffs?: {
|
|
533
537
|
cosineDistance?: number;
|
|
534
538
|
tsvector?: number;
|
|
@@ -557,7 +561,6 @@ declare class ExuluContext {
|
|
|
557
561
|
configuration?: {
|
|
558
562
|
calculateVectors?: "manual" | "onUpdate" | "onInsert" | "always";
|
|
559
563
|
defaultRightsMode?: ExuluRightsMode;
|
|
560
|
-
enableAsTool?: boolean;
|
|
561
564
|
languages?: ("german" | "english")[];
|
|
562
565
|
maxRetrievalResults?: number;
|
|
563
566
|
expand?: {
|
|
@@ -662,7 +665,6 @@ declare class ExuluContext {
|
|
|
662
665
|
};
|
|
663
666
|
createItemsTable: () => Promise<void>;
|
|
664
667
|
createChunksTable: () => Promise<void>;
|
|
665
|
-
tool: () => ExuluTool | null;
|
|
666
668
|
}
|
|
667
669
|
|
|
668
670
|
declare class ExuluReranker {
|
|
@@ -752,12 +754,14 @@ declare class ExuluProvider {
|
|
|
752
754
|
get providerName(): string;
|
|
753
755
|
get modelName(): string;
|
|
754
756
|
tool: (instance: string, providers: ExuluProvider[], contexts: ExuluContext[], rerankers: ExuluReranker[]) => Promise<ExuluTool | null>;
|
|
755
|
-
generateSync: ({ prompt, req, user, session, inputMessages, currentTools, allExuluTools, statistics, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, outputSchema, agent, instructions, }: {
|
|
757
|
+
generateSync: ({ prompt, req, user, session, inputMessages, approvedTools, currentTools, allExuluTools, statistics, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, outputSchema, agent, instructions, maxStepCount, }: {
|
|
756
758
|
prompt?: string;
|
|
757
759
|
user?: User;
|
|
760
|
+
maxStepCount?: number;
|
|
758
761
|
req?: Request;
|
|
759
762
|
session?: string;
|
|
760
763
|
agent?: ExuluAgent;
|
|
764
|
+
approvedTools?: string[];
|
|
761
765
|
inputMessages?: UIMessage[];
|
|
762
766
|
currentTools?: ExuluTool[];
|
|
763
767
|
allExuluTools?: ExuluTool[];
|
|
@@ -778,10 +782,11 @@ declare class ExuluProvider {
|
|
|
778
782
|
* - Image files -> image parts (which ARE supported by Responses API)
|
|
779
783
|
*/
|
|
780
784
|
private processFilePartsInMessages;
|
|
781
|
-
generateStream: ({ user, session, agent, message, previousMessages, currentTools, approvedTools, allExuluTools, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, instructions, req, }: {
|
|
785
|
+
generateStream: ({ user, session, agent, message, previousMessages, currentTools, approvedTools, allExuluTools, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, instructions, req, maxStepCount }: {
|
|
782
786
|
user?: User;
|
|
783
787
|
session?: string;
|
|
784
788
|
agent?: ExuluAgent;
|
|
789
|
+
maxStepCount?: number;
|
|
785
790
|
message?: UIMessage;
|
|
786
791
|
previousMessages?: UIMessage[];
|
|
787
792
|
currentTools?: ExuluTool[];
|
|
@@ -988,6 +993,10 @@ declare class ExuluQueues {
|
|
|
988
993
|
}
|
|
989
994
|
declare const queues: ExuluQueues;
|
|
990
995
|
|
|
996
|
+
declare const trajectoryRegistry: {
|
|
997
|
+
lastFile: string | undefined;
|
|
998
|
+
};
|
|
999
|
+
|
|
991
1000
|
/**
|
|
992
1001
|
* Represents the data structure for a chunk object.
|
|
993
1002
|
*
|
|
@@ -1899,7 +1908,9 @@ declare class MarkdownChunker {
|
|
|
1899
1908
|
*/
|
|
1900
1909
|
private findLogicalBreakpoint;
|
|
1901
1910
|
private headers;
|
|
1902
|
-
chunk(text: string, chunkSize: number, prefix?: string
|
|
1911
|
+
chunk(text: string, chunkSize: number, prefix?: string, config?: {
|
|
1912
|
+
pageBreakTags?: boolean;
|
|
1913
|
+
}): Promise<{
|
|
1903
1914
|
text: string;
|
|
1904
1915
|
page: number;
|
|
1905
1916
|
}[]>;
|
|
@@ -2024,6 +2035,25 @@ declare function documentProcessor({ file, name, config }: {
|
|
|
2024
2035
|
config?: DocumentProcessorConfig;
|
|
2025
2036
|
}): Promise<ProcessedDocument | undefined>;
|
|
2026
2037
|
|
|
2038
|
+
/**
|
|
2039
|
+
* Creates the v3 ExuluTool for agentic context retrieval.
|
|
2040
|
+
*
|
|
2041
|
+
* Compared to v2:
|
|
2042
|
+
* - Single LLM call per step (vs two in v2)
|
|
2043
|
+
* - Query classification upfront → strategy-based step budget (1–3 vs hardcoded 2)
|
|
2044
|
+
* - Context example records sampled at init and cached
|
|
2045
|
+
* - Strategy-specific instructions and tool sets
|
|
2046
|
+
*/
|
|
2047
|
+
declare function createAgenticRetrievalToolV3({ contexts, instructions: adminInstructions, rerankers, user, role, model, preselectedItemIds, }: {
|
|
2048
|
+
contexts: ExuluContext[];
|
|
2049
|
+
rerankers: ExuluReranker[];
|
|
2050
|
+
user?: User;
|
|
2051
|
+
role?: string;
|
|
2052
|
+
model?: LanguageModel;
|
|
2053
|
+
instructions?: string;
|
|
2054
|
+
preselectedItemIds?: string[];
|
|
2055
|
+
}): ExuluTool | undefined;
|
|
2056
|
+
|
|
2027
2057
|
type JOB_STATUS = "completed" | "failed" | "delayed" | "active" | "waiting" | "paused" | "stuck";
|
|
2028
2058
|
declare const JOB_STATUS_ENUM: {
|
|
2029
2059
|
completed: string;
|
|
@@ -2038,6 +2068,15 @@ declare const JOB_STATUS_ENUM: {
|
|
|
2038
2068
|
declare const ExuluJobs: {
|
|
2039
2069
|
redis: typeof redisClient;
|
|
2040
2070
|
};
|
|
2071
|
+
declare const ExuluDefaultTools: {
|
|
2072
|
+
agentic: {
|
|
2073
|
+
retrieval: {
|
|
2074
|
+
create: {
|
|
2075
|
+
v3: typeof createAgenticRetrievalToolV3;
|
|
2076
|
+
};
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2079
|
+
};
|
|
2041
2080
|
declare const ExuluDefaultProviders: {
|
|
2042
2081
|
anthropic: {
|
|
2043
2082
|
opus4: ExuluProvider;
|
|
@@ -2123,4 +2162,4 @@ declare const ExuluPython: {
|
|
|
2123
2162
|
instructions: typeof getPythonSetupInstructions;
|
|
2124
2163
|
};
|
|
2125
2164
|
|
|
2126
|
-
export { type JOB_STATUS as EXULU_JOB_STATUS, JOB_STATUS_ENUM as EXULU_JOB_STATUS_ENUM, type STATISTICS_TYPE as EXULU_STATISTICS_TYPE, STATISTICS_TYPE_ENUM as EXULU_STATISTICS_TYPE_ENUM, type ExuluAgent, ExuluApp, ExuluAuthentication, ExuluChunkers, ExuluContext, ExuluDatabase, ExuluDefaultProviders, ExuluDocumentProcessor, ExuluEmbedder, ExuluEval, type Item as ExuluItem, ExuluJobs, ExuluOtel, ExuluProvider, ExuluPython, queues as ExuluQueues, ExuluReranker, ExuluTool, ExuluVariables };
|
|
2165
|
+
export { type JOB_STATUS as EXULU_JOB_STATUS, JOB_STATUS_ENUM as EXULU_JOB_STATUS_ENUM, type STATISTICS_TYPE as EXULU_STATISTICS_TYPE, STATISTICS_TYPE_ENUM as EXULU_STATISTICS_TYPE_ENUM, type ExuluAgent, ExuluApp, ExuluAuthentication, ExuluChunkers, ExuluContext, ExuluDatabase, ExuluDefaultProviders, ExuluDefaultTools, ExuluDocumentProcessor, ExuluEmbedder, ExuluEval, type Item as ExuluItem, ExuluJobs, ExuluOtel, ExuluProvider, ExuluPython, queues as ExuluQueues, ExuluReranker, ExuluTool, trajectoryRegistry as ExuluTrajectoryRegistry, ExuluVariables };
|
package/dist/index.d.ts
CHANGED
|
@@ -65,6 +65,7 @@ interface ExuluAgent {
|
|
|
65
65
|
source: "code" | "database";
|
|
66
66
|
memory?: string;
|
|
67
67
|
welcomemessage?: string;
|
|
68
|
+
defaultagent?: boolean;
|
|
68
69
|
type: "agent";
|
|
69
70
|
name: string;
|
|
70
71
|
image?: string;
|
|
@@ -96,6 +97,10 @@ interface ExuluAgent {
|
|
|
96
97
|
name: string;
|
|
97
98
|
description: string;
|
|
98
99
|
}[];
|
|
100
|
+
skills?: {
|
|
101
|
+
id: string;
|
|
102
|
+
name: string;
|
|
103
|
+
}[];
|
|
99
104
|
maxContextLength?: number;
|
|
100
105
|
authenticationInformation?: string;
|
|
101
106
|
systemInstructions?: string;
|
|
@@ -528,7 +533,6 @@ declare class ExuluContext {
|
|
|
528
533
|
calculateVectors?: "manual" | "onUpdate" | "onInsert" | "always";
|
|
529
534
|
maxRetrievalResults?: number;
|
|
530
535
|
defaultRightsMode?: ExuluRightsMode;
|
|
531
|
-
enableAsTool?: boolean;
|
|
532
536
|
cutoffs?: {
|
|
533
537
|
cosineDistance?: number;
|
|
534
538
|
tsvector?: number;
|
|
@@ -557,7 +561,6 @@ declare class ExuluContext {
|
|
|
557
561
|
configuration?: {
|
|
558
562
|
calculateVectors?: "manual" | "onUpdate" | "onInsert" | "always";
|
|
559
563
|
defaultRightsMode?: ExuluRightsMode;
|
|
560
|
-
enableAsTool?: boolean;
|
|
561
564
|
languages?: ("german" | "english")[];
|
|
562
565
|
maxRetrievalResults?: number;
|
|
563
566
|
expand?: {
|
|
@@ -662,7 +665,6 @@ declare class ExuluContext {
|
|
|
662
665
|
};
|
|
663
666
|
createItemsTable: () => Promise<void>;
|
|
664
667
|
createChunksTable: () => Promise<void>;
|
|
665
|
-
tool: () => ExuluTool | null;
|
|
666
668
|
}
|
|
667
669
|
|
|
668
670
|
declare class ExuluReranker {
|
|
@@ -752,12 +754,14 @@ declare class ExuluProvider {
|
|
|
752
754
|
get providerName(): string;
|
|
753
755
|
get modelName(): string;
|
|
754
756
|
tool: (instance: string, providers: ExuluProvider[], contexts: ExuluContext[], rerankers: ExuluReranker[]) => Promise<ExuluTool | null>;
|
|
755
|
-
generateSync: ({ prompt, req, user, session, inputMessages, currentTools, allExuluTools, statistics, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, outputSchema, agent, instructions, }: {
|
|
757
|
+
generateSync: ({ prompt, req, user, session, inputMessages, approvedTools, currentTools, allExuluTools, statistics, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, outputSchema, agent, instructions, maxStepCount, }: {
|
|
756
758
|
prompt?: string;
|
|
757
759
|
user?: User;
|
|
760
|
+
maxStepCount?: number;
|
|
758
761
|
req?: Request;
|
|
759
762
|
session?: string;
|
|
760
763
|
agent?: ExuluAgent;
|
|
764
|
+
approvedTools?: string[];
|
|
761
765
|
inputMessages?: UIMessage[];
|
|
762
766
|
currentTools?: ExuluTool[];
|
|
763
767
|
allExuluTools?: ExuluTool[];
|
|
@@ -778,10 +782,11 @@ declare class ExuluProvider {
|
|
|
778
782
|
* - Image files -> image parts (which ARE supported by Responses API)
|
|
779
783
|
*/
|
|
780
784
|
private processFilePartsInMessages;
|
|
781
|
-
generateStream: ({ user, session, agent, message, previousMessages, currentTools, approvedTools, allExuluTools, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, instructions, req, }: {
|
|
785
|
+
generateStream: ({ user, session, agent, message, previousMessages, currentTools, approvedTools, allExuluTools, toolConfigs, providerapikey, contexts, rerankers, exuluConfig, instructions, req, maxStepCount }: {
|
|
782
786
|
user?: User;
|
|
783
787
|
session?: string;
|
|
784
788
|
agent?: ExuluAgent;
|
|
789
|
+
maxStepCount?: number;
|
|
785
790
|
message?: UIMessage;
|
|
786
791
|
previousMessages?: UIMessage[];
|
|
787
792
|
currentTools?: ExuluTool[];
|
|
@@ -988,6 +993,10 @@ declare class ExuluQueues {
|
|
|
988
993
|
}
|
|
989
994
|
declare const queues: ExuluQueues;
|
|
990
995
|
|
|
996
|
+
declare const trajectoryRegistry: {
|
|
997
|
+
lastFile: string | undefined;
|
|
998
|
+
};
|
|
999
|
+
|
|
991
1000
|
/**
|
|
992
1001
|
* Represents the data structure for a chunk object.
|
|
993
1002
|
*
|
|
@@ -1899,7 +1908,9 @@ declare class MarkdownChunker {
|
|
|
1899
1908
|
*/
|
|
1900
1909
|
private findLogicalBreakpoint;
|
|
1901
1910
|
private headers;
|
|
1902
|
-
chunk(text: string, chunkSize: number, prefix?: string
|
|
1911
|
+
chunk(text: string, chunkSize: number, prefix?: string, config?: {
|
|
1912
|
+
pageBreakTags?: boolean;
|
|
1913
|
+
}): Promise<{
|
|
1903
1914
|
text: string;
|
|
1904
1915
|
page: number;
|
|
1905
1916
|
}[]>;
|
|
@@ -2024,6 +2035,25 @@ declare function documentProcessor({ file, name, config }: {
|
|
|
2024
2035
|
config?: DocumentProcessorConfig;
|
|
2025
2036
|
}): Promise<ProcessedDocument | undefined>;
|
|
2026
2037
|
|
|
2038
|
+
/**
|
|
2039
|
+
* Creates the v3 ExuluTool for agentic context retrieval.
|
|
2040
|
+
*
|
|
2041
|
+
* Compared to v2:
|
|
2042
|
+
* - Single LLM call per step (vs two in v2)
|
|
2043
|
+
* - Query classification upfront → strategy-based step budget (1–3 vs hardcoded 2)
|
|
2044
|
+
* - Context example records sampled at init and cached
|
|
2045
|
+
* - Strategy-specific instructions and tool sets
|
|
2046
|
+
*/
|
|
2047
|
+
declare function createAgenticRetrievalToolV3({ contexts, instructions: adminInstructions, rerankers, user, role, model, preselectedItemIds, }: {
|
|
2048
|
+
contexts: ExuluContext[];
|
|
2049
|
+
rerankers: ExuluReranker[];
|
|
2050
|
+
user?: User;
|
|
2051
|
+
role?: string;
|
|
2052
|
+
model?: LanguageModel;
|
|
2053
|
+
instructions?: string;
|
|
2054
|
+
preselectedItemIds?: string[];
|
|
2055
|
+
}): ExuluTool | undefined;
|
|
2056
|
+
|
|
2027
2057
|
type JOB_STATUS = "completed" | "failed" | "delayed" | "active" | "waiting" | "paused" | "stuck";
|
|
2028
2058
|
declare const JOB_STATUS_ENUM: {
|
|
2029
2059
|
completed: string;
|
|
@@ -2038,6 +2068,15 @@ declare const JOB_STATUS_ENUM: {
|
|
|
2038
2068
|
declare const ExuluJobs: {
|
|
2039
2069
|
redis: typeof redisClient;
|
|
2040
2070
|
};
|
|
2071
|
+
declare const ExuluDefaultTools: {
|
|
2072
|
+
agentic: {
|
|
2073
|
+
retrieval: {
|
|
2074
|
+
create: {
|
|
2075
|
+
v3: typeof createAgenticRetrievalToolV3;
|
|
2076
|
+
};
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2079
|
+
};
|
|
2041
2080
|
declare const ExuluDefaultProviders: {
|
|
2042
2081
|
anthropic: {
|
|
2043
2082
|
opus4: ExuluProvider;
|
|
@@ -2123,4 +2162,4 @@ declare const ExuluPython: {
|
|
|
2123
2162
|
instructions: typeof getPythonSetupInstructions;
|
|
2124
2163
|
};
|
|
2125
2164
|
|
|
2126
|
-
export { type JOB_STATUS as EXULU_JOB_STATUS, JOB_STATUS_ENUM as EXULU_JOB_STATUS_ENUM, type STATISTICS_TYPE as EXULU_STATISTICS_TYPE, STATISTICS_TYPE_ENUM as EXULU_STATISTICS_TYPE_ENUM, type ExuluAgent, ExuluApp, ExuluAuthentication, ExuluChunkers, ExuluContext, ExuluDatabase, ExuluDefaultProviders, ExuluDocumentProcessor, ExuluEmbedder, ExuluEval, type Item as ExuluItem, ExuluJobs, ExuluOtel, ExuluProvider, ExuluPython, queues as ExuluQueues, ExuluReranker, ExuluTool, ExuluVariables };
|
|
2165
|
+
export { type JOB_STATUS as EXULU_JOB_STATUS, JOB_STATUS_ENUM as EXULU_JOB_STATUS_ENUM, type STATISTICS_TYPE as EXULU_STATISTICS_TYPE, STATISTICS_TYPE_ENUM as EXULU_STATISTICS_TYPE_ENUM, type ExuluAgent, ExuluApp, ExuluAuthentication, ExuluChunkers, ExuluContext, ExuluDatabase, ExuluDefaultProviders, ExuluDefaultTools, ExuluDocumentProcessor, ExuluEmbedder, ExuluEval, type Item as ExuluItem, ExuluJobs, ExuluOtel, ExuluProvider, ExuluPython, queues as ExuluQueues, ExuluReranker, ExuluTool, trajectoryRegistry as ExuluTrajectoryRegistry, ExuluVariables };
|