@exulu/backend 1.48.2 → 1.49.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 +351 -42
- package/dist/index.d.cts +96 -1
- package/dist/index.d.ts +96 -1
- package/dist/index.js +340 -38
- package/ee/{markdown.ts → chunking/markdown.ts} +2 -2
- package/ee/python/README.md +295 -0
- package/ee/python/documents/processing/README.md +155 -0
- package/ee/{documents → python/documents}/processing/doc_processor.ts +25 -17
- package/ee/{documents/processing/pdf_to_markdown.py → python/documents/processing/document_to_markdown.py} +3 -10
- package/ee/python/setup.sh +180 -0
- package/package.json +14 -3
- package/scripts/postinstall.cjs +149 -0
- package/.agents/skills/mintlify/SKILL.md +0 -347
- package/.editorconfig +0 -15
- package/.eslintrc.json +0 -52
- package/.github/workflows/release-backend.yml +0 -38
- package/.husky/commit-msg +0 -1
- package/.jscpd.json +0 -18
- package/.mcp.json +0 -25
- package/.nvmrc +0 -1
- package/.prettierignore +0 -5
- package/.prettierrc.json +0 -12
- package/CHANGELOG.md +0 -8
- package/SECURITY.md +0 -5
- package/commitlint.config.js +0 -4
- package/devops/documentation/patch-older-releases.md +0 -42
- package/ee/documents/processing/build_pdf_processor.sh +0 -35
- package/ee/documents/processing/chunk_markdown.py +0 -263
- package/ee/documents/processing/pdf_processor.spec +0 -115
- package/eslint.config.js +0 -88
- package/jest.config.ts +0 -25
- package/mintlify-docs/.mintignore +0 -7
- package/mintlify-docs/AGENTS.md +0 -33
- package/mintlify-docs/CLAUDE.MD +0 -50
- package/mintlify-docs/CONTRIBUTING.md +0 -32
- package/mintlify-docs/LICENSE +0 -21
- package/mintlify-docs/README.md +0 -55
- package/mintlify-docs/ai-tools/claude-code.mdx +0 -43
- package/mintlify-docs/ai-tools/cursor.mdx +0 -39
- package/mintlify-docs/ai-tools/windsurf.mdx +0 -39
- package/mintlify-docs/api-reference/core-types/agent-types.mdx +0 -110
- package/mintlify-docs/api-reference/core-types/analytics-types.mdx +0 -95
- package/mintlify-docs/api-reference/core-types/configuration-types.mdx +0 -83
- package/mintlify-docs/api-reference/core-types/evaluation-types.mdx +0 -106
- package/mintlify-docs/api-reference/core-types/job-types.mdx +0 -135
- package/mintlify-docs/api-reference/core-types/overview.mdx +0 -73
- package/mintlify-docs/api-reference/core-types/prompt-types.mdx +0 -102
- package/mintlify-docs/api-reference/core-types/rbac-types.mdx +0 -163
- package/mintlify-docs/api-reference/core-types/session-types.mdx +0 -77
- package/mintlify-docs/api-reference/core-types/user-management.mdx +0 -112
- package/mintlify-docs/api-reference/core-types/workflow-types.mdx +0 -88
- package/mintlify-docs/api-reference/core-types.mdx +0 -585
- package/mintlify-docs/api-reference/dynamic-types.mdx +0 -851
- package/mintlify-docs/api-reference/endpoint/create.mdx +0 -4
- package/mintlify-docs/api-reference/endpoint/delete.mdx +0 -4
- package/mintlify-docs/api-reference/endpoint/get.mdx +0 -4
- package/mintlify-docs/api-reference/endpoint/webhook.mdx +0 -4
- package/mintlify-docs/api-reference/introduction.mdx +0 -661
- package/mintlify-docs/api-reference/mutations.mdx +0 -1012
- package/mintlify-docs/api-reference/openapi.json +0 -217
- package/mintlify-docs/api-reference/queries.mdx +0 -1154
- package/mintlify-docs/backend/introduction.mdx +0 -218
- package/mintlify-docs/changelog.mdx +0 -387
- package/mintlify-docs/community-edition.mdx +0 -304
- package/mintlify-docs/core/exulu-agent/api-reference.mdx +0 -894
- package/mintlify-docs/core/exulu-agent/configuration.mdx +0 -690
- package/mintlify-docs/core/exulu-agent/introduction.mdx +0 -552
- package/mintlify-docs/core/exulu-app/api-reference.mdx +0 -481
- package/mintlify-docs/core/exulu-app/configuration.mdx +0 -319
- package/mintlify-docs/core/exulu-app/introduction.mdx +0 -117
- package/mintlify-docs/core/exulu-authentication.mdx +0 -810
- package/mintlify-docs/core/exulu-chunkers/api-reference.mdx +0 -1011
- package/mintlify-docs/core/exulu-chunkers/configuration.mdx +0 -596
- package/mintlify-docs/core/exulu-chunkers/introduction.mdx +0 -403
- package/mintlify-docs/core/exulu-context/api-reference.mdx +0 -911
- package/mintlify-docs/core/exulu-context/configuration.mdx +0 -648
- package/mintlify-docs/core/exulu-context/introduction.mdx +0 -394
- package/mintlify-docs/core/exulu-database.mdx +0 -811
- package/mintlify-docs/core/exulu-default-agents.mdx +0 -545
- package/mintlify-docs/core/exulu-eval/api-reference.mdx +0 -772
- package/mintlify-docs/core/exulu-eval/configuration.mdx +0 -680
- package/mintlify-docs/core/exulu-eval/introduction.mdx +0 -459
- package/mintlify-docs/core/exulu-logging.mdx +0 -464
- package/mintlify-docs/core/exulu-otel.mdx +0 -670
- package/mintlify-docs/core/exulu-queues/api-reference.mdx +0 -648
- package/mintlify-docs/core/exulu-queues/configuration.mdx +0 -650
- package/mintlify-docs/core/exulu-queues/introduction.mdx +0 -474
- package/mintlify-docs/core/exulu-reranker/api-reference.mdx +0 -630
- package/mintlify-docs/core/exulu-reranker/configuration.mdx +0 -663
- package/mintlify-docs/core/exulu-reranker/introduction.mdx +0 -516
- package/mintlify-docs/core/exulu-tool/api-reference.mdx +0 -723
- package/mintlify-docs/core/exulu-tool/configuration.mdx +0 -805
- package/mintlify-docs/core/exulu-tool/introduction.mdx +0 -539
- package/mintlify-docs/core/exulu-variables/api-reference.mdx +0 -699
- package/mintlify-docs/core/exulu-variables/configuration.mdx +0 -736
- package/mintlify-docs/core/exulu-variables/introduction.mdx +0 -511
- package/mintlify-docs/development.mdx +0 -94
- package/mintlify-docs/docs.json +0 -248
- package/mintlify-docs/enterprise-edition.mdx +0 -538
- package/mintlify-docs/essentials/code.mdx +0 -35
- package/mintlify-docs/essentials/images.mdx +0 -59
- package/mintlify-docs/essentials/markdown.mdx +0 -88
- package/mintlify-docs/essentials/navigation.mdx +0 -87
- package/mintlify-docs/essentials/reusable-snippets.mdx +0 -110
- package/mintlify-docs/essentials/settings.mdx +0 -318
- package/mintlify-docs/favicon.svg +0 -3
- package/mintlify-docs/frontend/introduction.mdx +0 -39
- package/mintlify-docs/getting-started.mdx +0 -267
- package/mintlify-docs/guides/custom-agent.mdx +0 -608
- package/mintlify-docs/guides/first-agent.mdx +0 -315
- package/mintlify-docs/images/admin_ui.png +0 -0
- package/mintlify-docs/images/contexts.png +0 -0
- package/mintlify-docs/images/create_agents.png +0 -0
- package/mintlify-docs/images/evals.png +0 -0
- package/mintlify-docs/images/graphql.png +0 -0
- package/mintlify-docs/images/graphql_api.png +0 -0
- package/mintlify-docs/images/hero-dark.png +0 -0
- package/mintlify-docs/images/hero-light.png +0 -0
- package/mintlify-docs/images/hero.png +0 -0
- package/mintlify-docs/images/knowledge_sources.png +0 -0
- package/mintlify-docs/images/mcp.png +0 -0
- package/mintlify-docs/images/scaling.png +0 -0
- package/mintlify-docs/index.mdx +0 -411
- package/mintlify-docs/logo/dark.svg +0 -9
- package/mintlify-docs/logo/light.svg +0 -9
- package/mintlify-docs/partners.mdx +0 -558
- package/mintlify-docs/products.mdx +0 -77
- package/mintlify-docs/snippets/snippet-intro.mdx +0 -4
- package/mintlify-docs/styles.css +0 -207
- package/ngrok.bash +0 -1
- package/ngrok.md +0 -6
- package/ngrok.yml +0 -10
- package/release.config.cjs +0 -15
- package/skills-lock.json +0 -10
- package/types/context-processor.ts +0 -45
- package/types/enums/eval-types.ts +0 -5
- package/types/enums/field-types.ts +0 -1
- package/types/enums/jobs.ts +0 -11
- package/types/enums/statistics.ts +0 -13
- package/types/exulu-table-definition.ts +0 -79
- package/types/file-types.ts +0 -18
- package/types/models/agent-session.ts +0 -27
- package/types/models/agent.ts +0 -68
- package/types/models/context.ts +0 -53
- package/types/models/embedding.ts +0 -17
- package/types/models/eval-run.ts +0 -40
- package/types/models/exulu-agent-tool-config.ts +0 -11
- package/types/models/item.ts +0 -21
- package/types/models/job.ts +0 -8
- package/types/models/project.ts +0 -16
- package/types/models/rate-limiter-rules.ts +0 -7
- package/types/models/test-case.ts +0 -25
- package/types/models/tool.ts +0 -9
- package/types/models/user-role.ts +0 -12
- package/types/models/user.ts +0 -20
- package/types/models/variable.ts +0 -8
- package/types/models/vector-methods.ts +0 -7
- package/types/provider-config.ts +0 -21
- package/types/queue-config.ts +0 -16
- package/types/rbac-rights-modes.ts +0 -1
- package/types/statistics.ts +0 -20
- package/types/workflow.ts +0 -31
- /package/ee/{documents → python/documents}/THIRD_PARTY_LICENSES/docling.txt +0 -0
- /package/ee/{documents/processing → python}/requirements.txt +0 -0
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Configuration"
|
|
3
|
-
description: "Complete guide to configuring your ExuluApp instance"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Configuration overview
|
|
7
|
-
|
|
8
|
-
The `ExuluConfig` object passed to `app.create()` controls all aspects of your Exulu IMP instance. This guide covers each configuration section in detail.
|
|
9
|
-
|
|
10
|
-
## Basic structure
|
|
11
|
-
|
|
12
|
-
```typescript
|
|
13
|
-
import { ExuluApp, type ExuluConfig } from "@exulu/backend";
|
|
14
|
-
|
|
15
|
-
const config: ExuluConfig = {
|
|
16
|
-
telemetry: { enabled: false },
|
|
17
|
-
logger: { /* Winston configuration */ },
|
|
18
|
-
workers: { enabled: true },
|
|
19
|
-
MCP: { enabled: false },
|
|
20
|
-
fileUploads: { /* S3 configuration */ },
|
|
21
|
-
privacy: { /* Privacy settings */ }
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const app = new ExuluApp();
|
|
25
|
-
await app.create({ config });
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Telemetry
|
|
29
|
-
|
|
30
|
-
Configure OpenTelemetry integration for distributed tracing.
|
|
31
|
-
|
|
32
|
-
<ParamField path="telemetry.enabled" type="boolean" required>
|
|
33
|
-
Enable or disable OpenTelemetry tracing for the Express server
|
|
34
|
-
</ParamField>
|
|
35
|
-
|
|
36
|
-
```typescript
|
|
37
|
-
config: {
|
|
38
|
-
telemetry: {
|
|
39
|
-
enabled: true
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
<Note>
|
|
45
|
-
Telemetry data is sent to the configured OpenTelemetry collector. You need to set up OTEL environment variables or use `ExuluOtel.create()` separately.
|
|
46
|
-
</Note>
|
|
47
|
-
|
|
48
|
-
## Logging
|
|
49
|
-
|
|
50
|
-
Configure Winston logging transports for both the Express server and workers.
|
|
51
|
-
|
|
52
|
-
<ParamField path="logger.winston.transports" type="winston.transport[]">
|
|
53
|
-
Array of Winston transport instances for server logging
|
|
54
|
-
</ParamField>
|
|
55
|
-
|
|
56
|
-
```typescript
|
|
57
|
-
import winston from "winston";
|
|
58
|
-
|
|
59
|
-
config: {
|
|
60
|
-
logger: {
|
|
61
|
-
winston: {
|
|
62
|
-
transports: [
|
|
63
|
-
new winston.transports.Console({
|
|
64
|
-
format: winston.format.json()
|
|
65
|
-
}),
|
|
66
|
-
new winston.transports.File({
|
|
67
|
-
filename: "exulu-server.log"
|
|
68
|
-
})
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
<Tip>
|
|
76
|
-
If no transports are provided, ExuluApp defaults to console logging with timestamps and colors in development.
|
|
77
|
-
</Tip>
|
|
78
|
-
|
|
79
|
-
## Workers
|
|
80
|
-
|
|
81
|
-
Configure BullMQ background workers for job processing.
|
|
82
|
-
|
|
83
|
-
<ParamField path="workers.enabled" type="boolean" required>
|
|
84
|
-
Enable background workers. Set to `false` if running only an API server without job processing.
|
|
85
|
-
</ParamField>
|
|
86
|
-
|
|
87
|
-
<ParamField path="workers.logger.winston.transports" type="winston.transport[]">
|
|
88
|
-
Separate logging configuration for worker processes. Falls back to `logger.winston.transports` if not specified.
|
|
89
|
-
</ParamField>
|
|
90
|
-
|
|
91
|
-
<ParamField path="workers.telemetry.enabled" type="boolean">
|
|
92
|
-
Enable OpenTelemetry tracing for worker processes. Falls back to `telemetry.enabled` if not specified.
|
|
93
|
-
</ParamField>
|
|
94
|
-
|
|
95
|
-
```typescript
|
|
96
|
-
config: {
|
|
97
|
-
workers: {
|
|
98
|
-
enabled: true,
|
|
99
|
-
logger: {
|
|
100
|
-
winston: {
|
|
101
|
-
transports: [
|
|
102
|
-
new winston.transports.File({
|
|
103
|
-
filename: "exulu-workers.log"
|
|
104
|
-
})
|
|
105
|
-
]
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
telemetry: {
|
|
109
|
-
enabled: true
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Starting workers
|
|
116
|
-
|
|
117
|
-
After configuring workers, start them in a separate process:
|
|
118
|
-
|
|
119
|
-
```typescript
|
|
120
|
-
// workers.ts
|
|
121
|
-
import { app } from "./app";
|
|
122
|
-
|
|
123
|
-
await app.bullmq.workers.create();
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
<Warning>
|
|
127
|
-
Workers require Redis to be configured via the `REDIS_HOST` and `REDIS_PORT` environment variables.
|
|
128
|
-
</Warning>
|
|
129
|
-
|
|
130
|
-
## MCP (Model Context Protocol)
|
|
131
|
-
|
|
132
|
-
Enable the MCP server for external tool integrations.
|
|
133
|
-
|
|
134
|
-
<ParamField path="MCP.enabled" type="boolean" required>
|
|
135
|
-
Enable the MCP server. When enabled, ExuluApp exposes your agents, tools, and contexts via the MCP protocol.
|
|
136
|
-
</ParamField>
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
config: {
|
|
140
|
-
MCP: {
|
|
141
|
-
enabled: true
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
<Info>
|
|
147
|
-
The MCP server integrates with your Express app and exposes endpoints for MCP clients to discover and invoke tools.
|
|
148
|
-
</Info>
|
|
149
|
-
|
|
150
|
-
## File uploads
|
|
151
|
-
|
|
152
|
-
Configure S3-compatible storage for file uploads.
|
|
153
|
-
|
|
154
|
-
<ParamField path="fileUploads.s3region" type="string" required>
|
|
155
|
-
AWS region for S3 bucket
|
|
156
|
-
</ParamField>
|
|
157
|
-
|
|
158
|
-
<ParamField path="fileUploads.s3key" type="string" required>
|
|
159
|
-
AWS access key ID
|
|
160
|
-
</ParamField>
|
|
161
|
-
|
|
162
|
-
<ParamField path="fileUploads.s3secret" type="string" required>
|
|
163
|
-
AWS secret access key
|
|
164
|
-
</ParamField>
|
|
165
|
-
|
|
166
|
-
<ParamField path="fileUploads.s3Bucket" type="string" required>
|
|
167
|
-
S3 bucket name
|
|
168
|
-
</ParamField>
|
|
169
|
-
|
|
170
|
-
<ParamField path="fileUploads.s3endpoint" type="string">
|
|
171
|
-
Custom S3 endpoint URL (for S3-compatible services like MinIO)
|
|
172
|
-
</ParamField>
|
|
173
|
-
|
|
174
|
-
<ParamField path="fileUploads.s3prefix" type="string">
|
|
175
|
-
Prefix for all uploaded files in the bucket
|
|
176
|
-
</ParamField>
|
|
177
|
-
|
|
178
|
-
```typescript
|
|
179
|
-
config: {
|
|
180
|
-
fileUploads: {
|
|
181
|
-
s3region: "us-east-1",
|
|
182
|
-
s3key: process.env.AWS_ACCESS_KEY_ID,
|
|
183
|
-
s3secret: process.env.AWS_SECRET_ACCESS_KEY,
|
|
184
|
-
s3Bucket: "exulu-uploads",
|
|
185
|
-
s3prefix: "uploads/"
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
<CodeGroup>
|
|
191
|
-
```typescript MinIO example
|
|
192
|
-
config: {
|
|
193
|
-
fileUploads: {
|
|
194
|
-
s3region: "us-east-1",
|
|
195
|
-
s3key: "minioadmin",
|
|
196
|
-
s3secret: "minioadmin",
|
|
197
|
-
s3Bucket: "exulu",
|
|
198
|
-
s3endpoint: "http://localhost:9000",
|
|
199
|
-
s3prefix: "files/"
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
```typescript AWS S3 example
|
|
205
|
-
config: {
|
|
206
|
-
fileUploads: {
|
|
207
|
-
s3region: "us-west-2",
|
|
208
|
-
s3key: process.env.AWS_ACCESS_KEY_ID,
|
|
209
|
-
s3secret: process.env.AWS_SECRET_ACCESS_KEY,
|
|
210
|
-
s3Bucket: "my-exulu-bucket"
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
```
|
|
214
|
-
</CodeGroup>
|
|
215
|
-
|
|
216
|
-
## Privacy
|
|
217
|
-
|
|
218
|
-
Configure privacy and personalization features.
|
|
219
|
-
|
|
220
|
-
<ParamField path="privacy.systemPromptPersonalization" type="boolean">
|
|
221
|
-
Enable system prompt personalization based on user interactions. When disabled, all users receive the same system prompts.
|
|
222
|
-
</ParamField>
|
|
223
|
-
|
|
224
|
-
```typescript
|
|
225
|
-
config: {
|
|
226
|
-
privacy: {
|
|
227
|
-
systemPromptPersonalization: false
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
## Complete example
|
|
233
|
-
|
|
234
|
-
```typescript
|
|
235
|
-
import { ExuluApp, type ExuluConfig } from "@exulu/backend";
|
|
236
|
-
import winston from "winston";
|
|
237
|
-
|
|
238
|
-
const config: ExuluConfig = {
|
|
239
|
-
telemetry: {
|
|
240
|
-
enabled: process.env.NODE_ENV === "production"
|
|
241
|
-
},
|
|
242
|
-
logger: {
|
|
243
|
-
winston: {
|
|
244
|
-
transports: [
|
|
245
|
-
new winston.transports.Console({
|
|
246
|
-
format: winston.format.combine(
|
|
247
|
-
winston.format.colorize(),
|
|
248
|
-
winston.format.simple()
|
|
249
|
-
)
|
|
250
|
-
}),
|
|
251
|
-
new winston.transports.File({
|
|
252
|
-
filename: "logs/exulu.log",
|
|
253
|
-
format: winston.format.json()
|
|
254
|
-
})
|
|
255
|
-
]
|
|
256
|
-
}
|
|
257
|
-
},
|
|
258
|
-
workers: {
|
|
259
|
-
enabled: true,
|
|
260
|
-
telemetry: {
|
|
261
|
-
enabled: true
|
|
262
|
-
}
|
|
263
|
-
},
|
|
264
|
-
MCP: {
|
|
265
|
-
enabled: true
|
|
266
|
-
},
|
|
267
|
-
fileUploads: {
|
|
268
|
-
s3region: process.env.AWS_REGION!,
|
|
269
|
-
s3key: process.env.AWS_ACCESS_KEY_ID!,
|
|
270
|
-
s3secret: process.env.AWS_SECRET_ACCESS_KEY!,
|
|
271
|
-
s3Bucket: process.env.S3_BUCKET!,
|
|
272
|
-
s3prefix: "uploads/"
|
|
273
|
-
},
|
|
274
|
-
privacy: {
|
|
275
|
-
systemPromptPersonalization: false
|
|
276
|
-
}
|
|
277
|
-
};
|
|
278
|
-
|
|
279
|
-
const app = new ExuluApp();
|
|
280
|
-
await app.create({ config });
|
|
281
|
-
|
|
282
|
-
const expressApp = await app.express.init();
|
|
283
|
-
expressApp.listen(3000);
|
|
284
|
-
```
|
|
285
|
-
|
|
286
|
-
## Environment variables
|
|
287
|
-
|
|
288
|
-
Many configuration values should come from environment variables for security and deployment flexibility:
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
# Required for workers
|
|
292
|
-
REDIS_HOST=localhost
|
|
293
|
-
REDIS_PORT=6379
|
|
294
|
-
|
|
295
|
-
# Required for database
|
|
296
|
-
POSTGRES_HOST=localhost
|
|
297
|
-
POSTGRES_PORT=5432
|
|
298
|
-
POSTGRES_USER=exulu
|
|
299
|
-
POSTGRES_PASSWORD=password
|
|
300
|
-
POSTGRES_DB=exulu
|
|
301
|
-
|
|
302
|
-
# Required for authentication
|
|
303
|
-
NEXTAUTH_SECRET=your-secret-key
|
|
304
|
-
|
|
305
|
-
# Optional for telemetry
|
|
306
|
-
SIGNOZ_ACCESS_TOKEN=your-token
|
|
307
|
-
SIGNOZ_TRACES_URL=https://your-signoz.com
|
|
308
|
-
SIGNOZ_LOGS_URL=https://your-signoz.com
|
|
309
|
-
|
|
310
|
-
# Optional for file uploads
|
|
311
|
-
AWS_ACCESS_KEY_ID=your-key
|
|
312
|
-
AWS_SECRET_ACCESS_KEY=your-secret
|
|
313
|
-
AWS_REGION=us-east-1
|
|
314
|
-
S3_BUCKET=your-bucket
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
<Note>
|
|
318
|
-
Use a `.env` file with `dotenv` for local development. Never commit secrets to version control.
|
|
319
|
-
</Note>
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Overview"
|
|
3
|
-
description: "The main application class for initializing and managing your Exulu IMP instance"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
`ExuluApp` is the central class for the Exulu Intelligence Management Platform (IMP). It orchestrates all components of your AI agent infrastructure, including agents, contexts, tools, evaluations, and background workers.
|
|
9
|
-
|
|
10
|
-
## Key features
|
|
11
|
-
|
|
12
|
-
<CardGroup cols={2}>
|
|
13
|
-
<Card title="Agent management" icon="robot">
|
|
14
|
-
Register and manage AI agents from multiple providers (OpenAI, Anthropic, Google, Cerebras)
|
|
15
|
-
</Card>
|
|
16
|
-
<Card title="Context system" icon="database">
|
|
17
|
-
Configure semantic search contexts with vector embeddings
|
|
18
|
-
</Card>
|
|
19
|
-
<Card title="Background workers" icon="gear">
|
|
20
|
-
Process long-running tasks with BullMQ workers
|
|
21
|
-
</Card>
|
|
22
|
-
<Card title="Express integration" icon="server">
|
|
23
|
-
Built-in API server with GraphQL and REST endpoints
|
|
24
|
-
</Card>
|
|
25
|
-
</CardGroup>
|
|
26
|
-
|
|
27
|
-
## Installation
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm install @exulu/backend
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Quick start
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
import { ExuluApp } from "@exulu/backend";
|
|
37
|
-
|
|
38
|
-
// Create and configure the app
|
|
39
|
-
const app = new ExuluApp();
|
|
40
|
-
await app.create({
|
|
41
|
-
config: {
|
|
42
|
-
telemetry: { enabled: false },
|
|
43
|
-
workers: { enabled: true },
|
|
44
|
-
MCP: { enabled: false }
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Initialize Express server
|
|
49
|
-
const expressApp = await app.express.init();
|
|
50
|
-
expressApp.listen(3000, () => {
|
|
51
|
-
console.log("Exulu IMP running on port 3000");
|
|
52
|
-
});
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
## Architecture
|
|
56
|
-
|
|
57
|
-
The ExuluApp follows a factory pattern where you instantiate the class and then call the async `create()` method to initialize all components:
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
const app = new ExuluApp();
|
|
61
|
-
const initializedApp = await app.create({
|
|
62
|
-
contexts: { /* your contexts */ },
|
|
63
|
-
agents: [ /* custom agents */ ],
|
|
64
|
-
tools: [ /* custom tools */ ],
|
|
65
|
-
evals: [ /* custom evaluations */ ],
|
|
66
|
-
rerankers: [ /* custom rerankers */ ],
|
|
67
|
-
config: { /* configuration */ }
|
|
68
|
-
});
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Core concepts
|
|
72
|
-
|
|
73
|
-
<AccordionGroup>
|
|
74
|
-
<Accordion title="Agents">
|
|
75
|
-
AI agents are the execution units that process requests. Exulu IMP includes default agents for major providers:
|
|
76
|
-
- Anthropic (Claude Opus 4, Sonnet 4, Sonnet 4.5)
|
|
77
|
-
- OpenAI (GPT-5, GPT-4.1, GPT-4o series)
|
|
78
|
-
- Google (Vertex Gemini 2.5 Flash, Pro, 3 Pro)
|
|
79
|
-
- Cerebras (Llama 3.3, GPT-OSS)
|
|
80
|
-
|
|
81
|
-
You can add custom agents by passing them to the `agents` array.
|
|
82
|
-
</Accordion>
|
|
83
|
-
|
|
84
|
-
<Accordion title="Contexts">
|
|
85
|
-
Contexts are semantic search indices that allow agents to query relevant information. Each context:
|
|
86
|
-
- Has an associated vector database table
|
|
87
|
-
- Defines embeddings generation logic
|
|
88
|
-
- Can include multiple data sources
|
|
89
|
-
- Automatically exposes a tool for agents to use
|
|
90
|
-
</Accordion>
|
|
91
|
-
|
|
92
|
-
<Accordion title="Tools">
|
|
93
|
-
Tools extend agent capabilities by providing functions they can call. Default tools include:
|
|
94
|
-
- Todo management tools
|
|
95
|
-
- Perplexity search tools
|
|
96
|
-
- Context query tools (auto-generated from contexts)
|
|
97
|
-
</Accordion>
|
|
98
|
-
|
|
99
|
-
<Accordion title="Workers">
|
|
100
|
-
BullMQ workers process background jobs:
|
|
101
|
-
- Agent request execution
|
|
102
|
-
- Embeddings generation
|
|
103
|
-
- Evaluation runs
|
|
104
|
-
- Scheduled context source updates
|
|
105
|
-
</Accordion>
|
|
106
|
-
</AccordionGroup>
|
|
107
|
-
|
|
108
|
-
## Next steps
|
|
109
|
-
|
|
110
|
-
<CardGroup cols={2}>
|
|
111
|
-
<Card title="Configuration" icon="gear" href="/core/exulu-app/configuration">
|
|
112
|
-
Learn about all configuration options
|
|
113
|
-
</Card>
|
|
114
|
-
<Card title="API reference" icon="code" href="/core/exulu-app/api-reference">
|
|
115
|
-
Explore methods and properties
|
|
116
|
-
</Card>
|
|
117
|
-
</CardGroup>
|