@exulu/backend 1.46.0 → 1.47.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.
Files changed (151) hide show
  1. package/.agents/skills/mintlify/SKILL.md +347 -0
  2. package/.editorconfig +15 -0
  3. package/.eslintrc.json +52 -0
  4. package/.jscpd.json +18 -0
  5. package/.prettierignore +5 -0
  6. package/.prettierrc.json +12 -0
  7. package/CHANGELOG.md +11 -4
  8. package/README.md +747 -0
  9. package/SECURITY.md +5 -0
  10. package/dist/index.cjs +12015 -10506
  11. package/dist/index.d.cts +725 -667
  12. package/dist/index.d.ts +725 -667
  13. package/dist/index.js +12034 -10518
  14. package/ee/LICENSE.md +62 -0
  15. package/ee/agentic-retrieval/index.ts +1109 -0
  16. package/ee/documents/THIRD_PARTY_LICENSES/docling.txt +31 -0
  17. package/ee/documents/processing/build_pdf_processor.sh +35 -0
  18. package/ee/documents/processing/chunk_markdown.py +263 -0
  19. package/ee/documents/processing/doc_processor.ts +635 -0
  20. package/ee/documents/processing/pdf_processor.spec +115 -0
  21. package/ee/documents/processing/pdf_to_markdown.py +420 -0
  22. package/ee/documents/processing/requirements.txt +4 -0
  23. package/ee/entitlements.ts +49 -0
  24. package/ee/markdown.ts +686 -0
  25. package/ee/queues/decorator.ts +140 -0
  26. package/ee/queues/queues.ts +156 -0
  27. package/ee/queues/server.ts +6 -0
  28. package/ee/rbac-resolver.ts +51 -0
  29. package/ee/rbac-update.ts +111 -0
  30. package/ee/schemas.ts +347 -0
  31. package/ee/tokenizer.ts +80 -0
  32. package/ee/workers.ts +1423 -0
  33. package/eslint.config.js +88 -0
  34. package/jest.config.ts +25 -0
  35. package/license.md +73 -49
  36. package/mintlify-docs/.mintignore +7 -0
  37. package/mintlify-docs/AGENTS.md +33 -0
  38. package/mintlify-docs/CLAUDE.MD +50 -0
  39. package/mintlify-docs/CONTRIBUTING.md +32 -0
  40. package/mintlify-docs/LICENSE +21 -0
  41. package/mintlify-docs/README.md +55 -0
  42. package/mintlify-docs/ai-tools/claude-code.mdx +43 -0
  43. package/mintlify-docs/ai-tools/cursor.mdx +39 -0
  44. package/mintlify-docs/ai-tools/windsurf.mdx +39 -0
  45. package/mintlify-docs/api-reference/core-types/agent-types.mdx +110 -0
  46. package/mintlify-docs/api-reference/core-types/analytics-types.mdx +95 -0
  47. package/mintlify-docs/api-reference/core-types/configuration-types.mdx +83 -0
  48. package/mintlify-docs/api-reference/core-types/evaluation-types.mdx +106 -0
  49. package/mintlify-docs/api-reference/core-types/job-types.mdx +135 -0
  50. package/mintlify-docs/api-reference/core-types/overview.mdx +73 -0
  51. package/mintlify-docs/api-reference/core-types/prompt-types.mdx +102 -0
  52. package/mintlify-docs/api-reference/core-types/rbac-types.mdx +163 -0
  53. package/mintlify-docs/api-reference/core-types/session-types.mdx +77 -0
  54. package/mintlify-docs/api-reference/core-types/user-management.mdx +112 -0
  55. package/mintlify-docs/api-reference/core-types/workflow-types.mdx +88 -0
  56. package/mintlify-docs/api-reference/core-types.mdx +585 -0
  57. package/mintlify-docs/api-reference/dynamic-types.mdx +851 -0
  58. package/mintlify-docs/api-reference/endpoint/create.mdx +4 -0
  59. package/mintlify-docs/api-reference/endpoint/delete.mdx +4 -0
  60. package/mintlify-docs/api-reference/endpoint/get.mdx +4 -0
  61. package/mintlify-docs/api-reference/endpoint/webhook.mdx +4 -0
  62. package/mintlify-docs/api-reference/introduction.mdx +661 -0
  63. package/mintlify-docs/api-reference/mutations.mdx +1012 -0
  64. package/mintlify-docs/api-reference/openapi.json +217 -0
  65. package/mintlify-docs/api-reference/queries.mdx +1154 -0
  66. package/mintlify-docs/backend/introduction.mdx +218 -0
  67. package/mintlify-docs/changelog.mdx +293 -0
  68. package/mintlify-docs/community-edition.mdx +304 -0
  69. package/mintlify-docs/core/exulu-agent/api-reference.mdx +894 -0
  70. package/mintlify-docs/core/exulu-agent/configuration.mdx +690 -0
  71. package/mintlify-docs/core/exulu-agent/introduction.mdx +552 -0
  72. package/mintlify-docs/core/exulu-app/api-reference.mdx +481 -0
  73. package/mintlify-docs/core/exulu-app/configuration.mdx +319 -0
  74. package/mintlify-docs/core/exulu-app/introduction.mdx +117 -0
  75. package/mintlify-docs/core/exulu-authentication.mdx +810 -0
  76. package/mintlify-docs/core/exulu-chunkers/api-reference.mdx +1011 -0
  77. package/mintlify-docs/core/exulu-chunkers/configuration.mdx +596 -0
  78. package/mintlify-docs/core/exulu-chunkers/introduction.mdx +403 -0
  79. package/mintlify-docs/core/exulu-context/api-reference.mdx +911 -0
  80. package/mintlify-docs/core/exulu-context/configuration.mdx +648 -0
  81. package/mintlify-docs/core/exulu-context/introduction.mdx +394 -0
  82. package/mintlify-docs/core/exulu-database.mdx +811 -0
  83. package/mintlify-docs/core/exulu-default-agents.mdx +545 -0
  84. package/mintlify-docs/core/exulu-eval/api-reference.mdx +772 -0
  85. package/mintlify-docs/core/exulu-eval/configuration.mdx +680 -0
  86. package/mintlify-docs/core/exulu-eval/introduction.mdx +459 -0
  87. package/mintlify-docs/core/exulu-logging.mdx +464 -0
  88. package/mintlify-docs/core/exulu-otel.mdx +670 -0
  89. package/mintlify-docs/core/exulu-queues/api-reference.mdx +648 -0
  90. package/mintlify-docs/core/exulu-queues/configuration.mdx +650 -0
  91. package/mintlify-docs/core/exulu-queues/introduction.mdx +474 -0
  92. package/mintlify-docs/core/exulu-reranker/api-reference.mdx +630 -0
  93. package/mintlify-docs/core/exulu-reranker/configuration.mdx +663 -0
  94. package/mintlify-docs/core/exulu-reranker/introduction.mdx +516 -0
  95. package/mintlify-docs/core/exulu-tool/api-reference.mdx +723 -0
  96. package/mintlify-docs/core/exulu-tool/configuration.mdx +805 -0
  97. package/mintlify-docs/core/exulu-tool/introduction.mdx +539 -0
  98. package/mintlify-docs/core/exulu-variables/api-reference.mdx +699 -0
  99. package/mintlify-docs/core/exulu-variables/configuration.mdx +736 -0
  100. package/mintlify-docs/core/exulu-variables/introduction.mdx +511 -0
  101. package/mintlify-docs/development.mdx +94 -0
  102. package/mintlify-docs/docs.json +248 -0
  103. package/mintlify-docs/enterprise-edition.mdx +538 -0
  104. package/mintlify-docs/essentials/code.mdx +35 -0
  105. package/mintlify-docs/essentials/images.mdx +59 -0
  106. package/mintlify-docs/essentials/markdown.mdx +88 -0
  107. package/mintlify-docs/essentials/navigation.mdx +87 -0
  108. package/mintlify-docs/essentials/reusable-snippets.mdx +110 -0
  109. package/mintlify-docs/essentials/settings.mdx +318 -0
  110. package/mintlify-docs/favicon.svg +3 -0
  111. package/mintlify-docs/frontend/introduction.mdx +39 -0
  112. package/mintlify-docs/getting-started.mdx +267 -0
  113. package/mintlify-docs/guides/custom-agent.mdx +608 -0
  114. package/mintlify-docs/guides/first-agent.mdx +315 -0
  115. package/mintlify-docs/images/admin_ui.png +0 -0
  116. package/mintlify-docs/images/contexts.png +0 -0
  117. package/mintlify-docs/images/create_agents.png +0 -0
  118. package/mintlify-docs/images/evals.png +0 -0
  119. package/mintlify-docs/images/graphql.png +0 -0
  120. package/mintlify-docs/images/graphql_api.png +0 -0
  121. package/mintlify-docs/images/hero-dark.png +0 -0
  122. package/mintlify-docs/images/hero-light.png +0 -0
  123. package/mintlify-docs/images/hero.png +0 -0
  124. package/mintlify-docs/images/knowledge_sources.png +0 -0
  125. package/mintlify-docs/images/mcp.png +0 -0
  126. package/mintlify-docs/images/scaling.png +0 -0
  127. package/mintlify-docs/index.mdx +411 -0
  128. package/mintlify-docs/logo/dark.svg +9 -0
  129. package/mintlify-docs/logo/light.svg +9 -0
  130. package/mintlify-docs/partners.mdx +558 -0
  131. package/mintlify-docs/products.mdx +77 -0
  132. package/mintlify-docs/snippets/snippet-intro.mdx +4 -0
  133. package/mintlify-docs/styles.css +207 -0
  134. package/{documentation → old-documentation}/logging.md +3 -3
  135. package/package.json +35 -4
  136. package/skills-lock.json +10 -0
  137. package/types/context-processor.ts +45 -0
  138. package/types/exulu-table-definition.ts +79 -0
  139. package/types/file-types.ts +18 -0
  140. package/types/models/agent.ts +10 -12
  141. package/types/models/exulu-agent-tool-config.ts +11 -0
  142. package/types/models/rate-limiter-rules.ts +7 -0
  143. package/types/provider-config.ts +21 -0
  144. package/types/queue-config.ts +16 -0
  145. package/types/rbac-rights-modes.ts +1 -0
  146. package/types/statistics.ts +20 -0
  147. package/types/workflow.ts +31 -0
  148. package/changelog-backend-10.11.2025_03.12.2025.md +0 -316
  149. package/types/models/agent-backend.ts +0 -15
  150. /package/{documentation → old-documentation}/otel.md +0 -0
  151. /package/{patch-older-releases-readme.md → old-documentation/patch-older-releases.md} +0 -0
@@ -1,316 +0,0 @@
1
-
2
- ----
3
-
4
- ### feat: add project-scoped context retrieval and enhanced personalization
5
-
6
- Date: 2025-12-03
7
- Author: dclaessen-exulu
8
-
9
- This commit introduces a comprehensive project-based information retrieval
10
- system and several enhancements to the agent and context infrastructure:
11
-
12
- **Project Context Retrieval:**
13
- - Add createProjectRetrievalTool for project-specific information search
14
- across multiple contexts
15
- - Implement project caching mechanism to optimize repeated project queries
16
- - Support hybrid search across project items with filtering and ranking
17
- - Enable automatic project tool injection when session has associated
18
- project
19
-
20
- **Enhanced Personalization:**
21
- - Add firstname/lastname fields to user authentication for API users
22
- - Include user information in system prompts for better personalization
23
- - Make personalization configurable via privacy settings
24
-
25
- **Field Processor Improvements:**
26
- - Add generateEmbeddings configuration option to field processors
27
- - Support onInsert trigger in addition to existing triggers
28
- - Enable processors to run without user context for system operations
29
- - Improve processor execution flow with better logging
30
-
31
- **Infrastructure Enhancements:**
32
- - Add database connection pool logging for debugging
33
- - Improve file parts processing with better error handling
34
- - Make convertToolsArrayToObject async to support dynamic tool generation
35
- - Enhance storage utility to support uploads without user context
36
- - Better handling of tool variable configs vs execution configs
37
- - Comment out unused project_id from RBAC schema
38
-
39
- **Context and Search Improvements:**
40
- - Add search method directly to ExuluContext class
41
- - Expose applyFilters and contextToTableDefinition utilities
42
- - Support context source execution with exuluConfig parameter
43
- - Improve error messages and reduce excessive logging
44
-
45
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
46
-
47
- Co-Authored-By: Claude <noreply@anthropic.com>
48
-
49
- ----
50
-
51
- ### feat: add document parsing for AI agent file handling with JWT secret fix
52
-
53
- Date: 2025-11-30
54
- Author: dclaessen-exulu
55
-
56
- Enhance agent file processing capabilities and fix authentication:
57
-
58
- - Add officeparser integration to extract text from document files
59
- - Implement processFilePartsInMessages to convert file parts to
60
- OpenAI Responses API compatible format
61
- - Convert document files to text parts with extracted content
62
- - Keep image files as image parts (natively supported by API)
63
- - Add message deduplication to prevent duplicate message IDs
64
- - Change saveChat to process messages sequentially for correct
65
- timestamp ordering
66
- - Fix JWT verification in getToken by converting NEXTAUTH_SECRET
67
- to base64url format as required by jose library
68
-
69
- This enables agents to process uploaded documents by extracting
70
- their text content and presenting it in a format compatible with
71
- the OpenAI Responses API.
72
-
73
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
74
-
75
- Co-Authored-By: Claude <noreply@anthropic.com>
76
-
77
- ----
78
-
79
- ### feat: add PDF preview tool and enhance agent API with cookie authentication and message persistence
80
-
81
- Date: 2025-11-26
82
- Author: dclaessen-exulu
83
-
84
- Adds a new preview-pdf tool for viewing PDF documents and significantly enhances the agent
85
- chat API to support public agents with optional authentication. Implements cookie-based session
86
- management, message ID tracking to prevent duplicates during chat persistence, and allows
87
- passing full message arrays for stateless interactions.
88
-
89
- Also downgrades AI SDK from v5.0.95 to v5.0.65 for stability, adds cookie-parser dependency,
90
- and improves context embedding generation with better metadata handling and increased timeout
91
- limits. Enhances S3 integration with multi-bucket support by making the bucket always be the part of the key before the first slash
92
- improves vector search result limits, and adds better error handling for encrypted variables
93
- and external ID lookups in context operations.
94
-
95
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
96
-
97
- Co-Authored-By: Claude <noreply@anthropic.com>
98
-
99
- ----
100
-
101
- ### fix: issue with upsert
102
-
103
- Date: 2025-11-19
104
- Author: dclaessen-exulu
105
-
106
-
107
- ----
108
-
109
- ### feat: upgrade AI SDK to v5.0.95 and add Gemini 3 Pro support with parameterized context sources
110
-
111
- Date: 2025-11-19
112
- Author: dclaessen-exulu
113
-
114
- This commit introduces several enhancements to the AI capabilities and context system:
115
-
116
- - Upgrade AI SDK from v5.0.56 to v5.0.95 with improved provider utilities
117
- - Add @vercel/oidc dependency for enhanced authentication support
118
- - Implement Google Vertex Gemini 3 Pro agent with 1M+ token context window
119
- - Enhance context source configuration with parameterizable inputs
120
- - Improve Vertex authentication documentation with detailed setup instructions
121
- - Add support for dynamic parameters in context source definitions via GraphQL schema
122
-
123
- The new Gemini 3 Pro agent provides very high intelligence with moderate speed,
124
- supporting text, images, files, audio, and video inputs. Context sources can now
125
- define parameters with names, descriptions, and default values for more flexible
126
- data retrieval configurations.
127
-
128
- Changes include:
129
- - src/index.ts: Export new vertexGemini3ProAgent
130
- - src/registry/index.ts: Register Gemini 3 Pro agent
131
- - src/registry/classes.ts: Add params field to ExuluContextSource config
132
- - src/registry/utils/graphql.ts: Add ContextSourceParam type and params support
133
- - src/templates/agents/google/vertex/index.ts: Add Gemini 3 Pro agent, refactor auth docs
134
- - types/models/context.ts: Add params field to Context interface
135
-
136
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
137
-
138
- Co-Authored-By: Claude <noreply@anthropic.com>
139
-
140
- ----
141
-
142
- ### feat: add Google Vertex AI agent support and enhance embedder configuration system
143
-
144
- Date: 2025-11-18
145
- Author: dclaessen-exulu
146
-
147
- Add Google Vertex Gemini 2.5 Flash agent integration with support for
148
- optional authentication. Implement new embedder_settings table for
149
- context-specific embedder configuration with variable management.
150
-
151
- Major changes:
152
- - Add vertexGemini25FlashAgent to default agents and registry
153
- - Implement embedder_settings schema for per-context embedder config
154
- - Add authenticationInformation field to ExuluAgent class
155
- - Make providerapikey optional across agent and MCP initialization
156
- - Add config field to ExuluEmbedder with hydrateEmbedderConfig method
157
- - Pass context ID and settings to embedder chunker and generation ops
158
- - Update GraphQL schema to expose authenticationInformation and config
159
- - Enhance error messages with agent name and ID for better debugging
160
-
161
- Breaking changes:
162
- - ChunkerOperation signature now requires config parameter
163
- - VectorGenerateOperation signature now requires settings parameter
164
- - convertToolsArrayToObject contexts parameter now optional
165
-
166
- This enables agents that don't require API keys (e.g., Vertex AI with
167
- workload identity) and allows embedders to retrieve configuration from
168
- variables per context.
169
-
170
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
171
-
172
- Co-Authored-By: Claude <noreply@anthropic.com>
173
-
174
- ----
175
-
176
- ### fix: project tracking anthropic passthrough and timeout for worker
177
-
178
- Date: 2025-11-17
179
- Author: dclaessen-exulu
180
-
181
-
182
- ----
183
-
184
- ### feat: add MCP prompt library integration and JSON filtering enhancements
185
-
186
- Date: 2025-11-17
187
- Author: dclaessen-exulu
188
-
189
- Add comprehensive prompt template management via MCP tools and enhanced JSON field filtering:
190
-
191
- Prompt Library Features:
192
- - Add prompt_library and prompt_favorites database schemas
193
- - Register getListOfPromptTemplates and getPromptTemplateDetails MCP tools
194
- - Enable agents to discover and retrieve prompt templates with usage/favorite tracking
195
- - Support agent-specific prompt assignment via assigned_agents JSON field
196
-
197
- GraphQL & Filtering Improvements:
198
- - Add JSON field containment support using PostgreSQL @> operator
199
- - Enhance filter operators to handle JSON equality and IN operations with jsonb casting
200
- - Pass table schema context to applyFilters for type-aware query building
201
-
202
- Bug Fixes & Refinements:
203
- - Fix upsert validation to require id or external_id
204
- - Add source update statistics tracking for API and job triggers
205
- - Improve eval function result metadata structure with function_results array
206
- - Add default scoring method fallback to average for eval runs
207
- - Fix typo: rename eval to evaluation in bullmq decorator
208
-
209
- Configuration:
210
- - Add .mcp.json for exulu-mcp-server-default-coding-agent integration
211
-
212
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
213
-
214
- Co-Authored-By: Claude <noreply@anthropic.com>
215
-
216
- ----
217
-
218
- ### feat: add todo system, enhanced roles, session metadata, and scheduling support
219
-
220
- Date: 2025-11-14
221
- Author: dclaessen-exulu
222
-
223
- This commit introduces several significant features and improvements to the Exulu backend:
224
-
225
- - Implement TodoWrite and TodoRead tools for session-based task tracking
226
- - Store todos in agent_sessions.metadata JSON field
227
- - Add access control checks for todo operations
228
- - Tools require authenticated session context
229
-
230
- - Create default "admin" role with full write permissions
231
- - Create "default" role with agent write + read-only for other resources
232
- - Add support for "evals" and "api" permissions in role structure
233
- - Automatically provision both roles during database initialization
234
-
235
- - Add metadata JSON column to agent_sessions table
236
- - Pass sessionID throughout tool execution pipeline
237
- - Implement getSession helper for consistent session retrieval
238
- - Enable session-aware tool execution with user context
239
-
240
- - Add cron-like scheduling support for context data sources
241
- - Implement queue configuration options
242
- - Add retry logic with exponential/linear backoff strategies
243
- - Enable automated data ingestion workflows
244
-
245
- - Fix Redis URL construction when using authentication
246
- - Improve handling of username/password credentials
247
- - Better fallback values for missing environment variables
248
-
249
- - Support config-based tool description overrides
250
- - Pass sessionID to all tool executions
251
- - Enable tools to access session metadata
252
- - Improve tool configuration hydration
253
-
254
- - Add better-auth (v1.3.34) with WebAuthn support
255
- - Include cryptography libraries (@noble/ciphers, @noble/hashes)
256
- - Add @simplewebauthn packages for authentication flows
257
- - Include kysely for type-safe database queries
258
-
259
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
260
-
261
- Co-Authored-By: Claude <noreply@anthropic.com>
262
-
263
- ----
264
-
265
- ### fix: add ExuluItem as export
266
-
267
- Date: 2025-11-11
268
- Author: dclaessen-exulu
269
-
270
-
271
- ----
272
-
273
- ### feat: implement scheduled data sources for contexts
274
-
275
- Date: 2025-11-11
276
- Author: dclaessen-exulu
277
-
278
- Add support for scheduled data sources within ExuluContext that automatically
279
- fetch and ingest items at regular intervals.
280
-
281
- Key changes:
282
- - Introduce ExuluContextSource type with configurable cron schedules, retry
283
- logic, and backoff strategies
284
- - Add source execution handler in BullMQ workers to process scheduled jobs
285
- - Create automatic job schedulers for each context source with configurable
286
- retry attempts (default: 3) and exponential backoff (default: 2000ms)
287
- - Rename Context.process() to processField() for clarity
288
- - Add executeSource() method to handle source execution and item creation
289
- - Track source metadata in BullMQ job data for job identification
290
-
291
- Sources enable automated data ingestion workflows where external data can be
292
- pulled into contexts on a schedule without manual intervention. Each source
293
- execution creates items in the context and optionally schedules follow-up
294
- processing jobs for embeddings and chunking.
295
-
296
- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
297
-
298
- Co-Authored-By: Claude <noreply@anthropic.com>
299
-
300
- ----
301
-
302
- ### fix: minor exulu upgrade for redis connection
303
-
304
- Date: 2025-11-10
305
- Author: dclaessen-exulu
306
-
307
-
308
- ----
309
-
310
- ### fix: redis auth url
311
-
312
- Date: 2025-11-10
313
- Author: dclaessen-exulu
314
-
315
-
316
- ----
@@ -1,15 +0,0 @@
1
- // Represents an agent backend
2
- // which is created and run in
3
- // the agents service. Agents
4
- // registered in Exulu must have
5
- // a connected backend agent that
6
- // does the actual work.
7
- export interface AgentBackend {
8
- id: string
9
- name: string
10
- description: string
11
- enable_batch: boolean
12
- inputSchema: any;
13
- slug: string
14
- type: string
15
- }
File without changes