@axiom-lattice/gateway 3.0.2 → 3.0.3

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 (155) hide show
  1. package/dist/index.js +31 -9
  2. package/dist/index.js.map +1 -1
  3. package/dist/index.mjs +31 -9
  4. package/dist/index.mjs.map +1 -1
  5. package/package.json +9 -6
  6. package/.eslintrc.json +0 -22
  7. package/.turbo/turbo-build.log +0 -46
  8. package/AGENTS.md +0 -112
  9. package/CHANGELOG.md +0 -1190
  10. package/LOGGER_CONFIG.md +0 -135
  11. package/RESUME_STREAM_CONTENT_BASED.md +0 -326
  12. package/RESUME_STREAM_README.md +0 -388
  13. package/jest.config.js +0 -72
  14. package/public/sdk/README.md +0 -695
  15. package/public/sdk/dashboard-engine-skill.md +0 -1122
  16. package/public/sdk/dashboard-single-file-spec.md +0 -357
  17. package/public/sdk/data-query-sdk-skill.md +0 -307
  18. package/public/sdk/data-query-sdk.d.ts +0 -252
  19. package/public/sdk/data-query-sdk.js +0 -970
  20. package/public/sdk/occupancy-dashboard.html +0 -363
  21. package/public/sdk/test-dashboard.html +0 -690
  22. package/scripts/seed-lark-installation.ts +0 -54
  23. package/src/__tests__/__mocks__/e2b.ts +0 -1
  24. package/src/__tests__/a2a.test.ts +0 -428
  25. package/src/__tests__/channel-installations.test.ts +0 -199
  26. package/src/__tests__/data-query.test.ts +0 -77
  27. package/src/__tests__/sandbox-provider-registration.test.ts +0 -74
  28. package/src/__tests__/setup.ts +0 -5
  29. package/src/__tests__/workspace.test.ts +0 -400
  30. package/src/channels/__tests__/routes.test.ts +0 -50
  31. package/src/channels/lark/LarkChannelAdapter.ts +0 -217
  32. package/src/channels/lark/README.md +0 -187
  33. package/src/channels/lark/__tests__/controller.test.ts +0 -136
  34. package/src/channels/lark/__tests__/mapping-service.test.ts +0 -118
  35. package/src/channels/lark/__tests__/parser.test.ts +0 -72
  36. package/src/channels/lark/__tests__/sender.test.ts +0 -37
  37. package/src/channels/lark/__tests__/verification.test.ts +0 -157
  38. package/src/channels/lark/controller.ts +0 -48
  39. package/src/channels/lark/mapping-service.ts +0 -138
  40. package/src/channels/lark/parser.ts +0 -68
  41. package/src/channels/lark/routes.ts +0 -22
  42. package/src/channels/lark/sender.ts +0 -58
  43. package/src/channels/lark/types.ts +0 -20
  44. package/src/channels/lark/verification.ts +0 -32
  45. package/src/channels/registry.ts +0 -20
  46. package/src/channels/routes.ts +0 -30
  47. package/src/channels/wechat/WechatChannelAdapter.ts +0 -294
  48. package/src/channels/wechat/__tests__/context-store.test.ts +0 -148
  49. package/src/channels/wechat/context-store.ts +0 -54
  50. package/src/channels/wechat/controller.ts +0 -59
  51. package/src/channels/wechat/routes.ts +0 -7
  52. package/src/channels/wechat/types.ts +0 -62
  53. package/src/channels/wechat/wechat-client.ts +0 -162
  54. package/src/config/local-a2a-templates.ts +0 -59
  55. package/src/config.ts +0 -124
  56. package/src/controllers/__tests__/assistant-local-a2a.test.ts +0 -147
  57. package/src/controllers/__tests__/local-a2a-templates.test.ts +0 -112
  58. package/src/controllers/__tests__/mime.test.ts +0 -74
  59. package/src/controllers/__tests__/resources.test.ts +0 -122
  60. package/src/controllers/__tests__/run.test.ts +0 -115
  61. package/src/controllers/__tests__/tasks.test.ts +0 -215
  62. package/src/controllers/__tests__/workflow-tracking.test.ts +0 -113
  63. package/src/controllers/agent_task.ts +0 -72
  64. package/src/controllers/assistant.ts +0 -490
  65. package/src/controllers/auth.ts +0 -524
  66. package/src/controllers/channel-bindings.ts +0 -135
  67. package/src/controllers/channel-installations.ts +0 -409
  68. package/src/controllers/collections.ts +0 -176
  69. package/src/controllers/config.ts +0 -126
  70. package/src/controllers/connections.ts +0 -181
  71. package/src/controllers/data-query.ts +0 -236
  72. package/src/controllers/database-configs.ts +0 -440
  73. package/src/controllers/embeddings.ts +0 -22
  74. package/src/controllers/entries.ts +0 -167
  75. package/src/controllers/eval.ts +0 -513
  76. package/src/controllers/export-import.ts +0 -166
  77. package/src/controllers/health.ts +0 -36
  78. package/src/controllers/local-a2a-templates.ts +0 -18
  79. package/src/controllers/local-a2a.ts +0 -149
  80. package/src/controllers/mcp-configs.ts +0 -673
  81. package/src/controllers/memory.ts +0 -257
  82. package/src/controllers/menu-items.ts +0 -114
  83. package/src/controllers/metrics-configs.ts +0 -1061
  84. package/src/controllers/middleware-types.ts +0 -15
  85. package/src/controllers/models.ts +0 -199
  86. package/src/controllers/personal-assistant.ts +0 -191
  87. package/src/controllers/resources.ts +0 -477
  88. package/src/controllers/run.ts +0 -338
  89. package/src/controllers/sandbox.ts +0 -255
  90. package/src/controllers/schedules.ts +0 -336
  91. package/src/controllers/skills.ts +0 -256
  92. package/src/controllers/tasks.ts +0 -213
  93. package/src/controllers/tenants.ts +0 -121
  94. package/src/controllers/thread_status.ts +0 -66
  95. package/src/controllers/threads.ts +0 -260
  96. package/src/controllers/tools.ts +0 -139
  97. package/src/controllers/users.ts +0 -135
  98. package/src/controllers/workflow-tracking.ts +0 -693
  99. package/src/controllers/workspace.ts +0 -879
  100. package/src/export_registrations/a2a-api-key.registration.ts +0 -89
  101. package/src/export_registrations/agent.registration.ts +0 -80
  102. package/src/export_registrations/binding.registration.ts +0 -106
  103. package/src/export_registrations/channel-installation.registration.ts +0 -88
  104. package/src/export_registrations/collection.registration.ts +0 -85
  105. package/src/export_registrations/connection.registration.ts +0 -97
  106. package/src/export_registrations/database-config.registration.ts +0 -94
  107. package/src/export_registrations/eval.registration.ts +0 -334
  108. package/src/export_registrations/index.ts +0 -31
  109. package/src/export_registrations/mcp-config.registration.ts +0 -97
  110. package/src/export_registrations/menu.registration.ts +0 -91
  111. package/src/export_registrations/metrics-config.registration.ts +0 -94
  112. package/src/export_registrations/skill.registration.ts +0 -88
  113. package/src/export_registrations/task.registration.ts +0 -99
  114. package/src/index.ts +0 -497
  115. package/src/logger/Logger.ts +0 -186
  116. package/src/router/MessageContext.ts +0 -14
  117. package/src/router/MessageRouter.ts +0 -490
  118. package/src/router/middlewares/auditLogger.ts +0 -34
  119. package/src/router/middlewares/deduplication.ts +0 -38
  120. package/src/router/middlewares/index.ts +0 -3
  121. package/src/router/middlewares/rateLimit.ts +0 -46
  122. package/src/routes/__tests__/a2a-test-connection.test.ts +0 -177
  123. package/src/routes/a2a-bridge.ts +0 -266
  124. package/src/routes/a2a-test-connection.ts +0 -126
  125. package/src/routes/a2a.ts +0 -851
  126. package/src/routes/channel-bindings.ts +0 -11
  127. package/src/routes/channel-installations.ts +0 -33
  128. package/src/routes/index.ts +0 -640
  129. package/src/routes/menu-items.ts +0 -10
  130. package/src/routes/resource-routes.ts +0 -35
  131. package/src/routes/stt.ts +0 -102
  132. package/src/schemas/data-query.ts +0 -69
  133. package/src/schemas/index.ts +0 -852
  134. package/src/services/ExportImportService.ts +0 -296
  135. package/src/services/__tests__/ExportImportService.test.ts +0 -130
  136. package/src/services/__tests__/eval-runner.test.ts +0 -131
  137. package/src/services/__tests__/local-a2a.test.ts +0 -124
  138. package/src/services/agent_task_consumer.ts +0 -348
  139. package/src/services/collection_service.ts +0 -258
  140. package/src/services/eval-runner.ts +0 -283
  141. package/src/services/local-a2a.ts +0 -354
  142. package/src/services/queue_service.ts +0 -104
  143. package/src/services/sandbox_service.ts +0 -223
  144. package/src/services/skill_service.ts +0 -97
  145. package/src/services/supabase.ts +0 -60
  146. package/src/swagger.ts +0 -77
  147. package/src/types/index.ts +0 -118
  148. package/src/types/koa.d.ts +0 -7
  149. package/src/utils/__tests__/local-a2a-runtime.test.ts +0 -77
  150. package/src/utils/__tests__/path-containment.test.ts +0 -35
  151. package/src/utils/a2a-url.ts +0 -20
  152. package/src/utils/local-a2a-runtime.ts +0 -107
  153. package/src/utils/mime.ts +0 -44
  154. package/src/utils/path-containment.ts +0 -38
  155. package/tsconfig.json +0 -26
@@ -1,388 +0,0 @@
1
- # Resume Stream Feature
2
-
3
- ## Overview
4
-
5
- The `resume_stream` feature allows you to continue receiving streaming chunks from a known position. This is particularly useful for scenarios where the client connection is interrupted (e.g., page refresh, network issues) and you want to seamlessly continue from where you left off.
6
-
7
- ## Architecture
8
-
9
- ### ChunkBuffer Integration
10
-
11
- The feature leverages the `ChunkBuffer` module from `@axiom-lattice/core` to:
12
-
13
- - Store streaming chunks in memory
14
- - Track thread status (active/completed/aborted)
15
- - Provide TTL-based automatic cleanup
16
- - Calculate and return only new chunks since a known position
17
-
18
- ### How It Works
19
-
20
- ```
21
- ┌─────────────────┐
22
- │ Original │
23
- │ Streaming │ ──► Chunks stored in ChunkBuffer
24
- │ (agent_stream) │ (thread_id, message_id, content)
25
- └─────────────────┘
26
-
27
- │ Connection lost / Page refresh
28
-
29
-
30
- ┌─────────────────┐
31
- │ Resume Stream │
32
- │ (from known │ ──► Polls for new chunks
33
- │ position) │ Returns only new content
34
- └─────────────────┘ Ends when thread completes
35
- ```
36
-
37
- ## API Reference
38
-
39
- ### `resume_stream(options)`
40
-
41
- Creates an async iterator that yields new chunks as they arrive.
42
-
43
- #### Parameters
44
-
45
- ```typescript
46
- {
47
- thread_id: string; // Thread identifier
48
- message_id: string; // Message identifier (usually run_id)
49
- known_content: string; // Content already received (used to find resume position)
50
- poll_interval?: number; // Polling interval in ms (default: 100)
51
- }
52
- ```
53
-
54
- #### Returns
55
-
56
- An async iterable object with `Symbol.asyncIterator`:
57
-
58
- ```typescript
59
- {
60
- content: string; // Chunk content
61
- timestamp: number; // When chunk was added
62
- messageId: string; // Message identifier
63
- }
64
- ```
65
-
66
- #### Behavior
67
-
68
- - **Polling**: Checks for new chunks every `poll_interval` milliseconds
69
- - **Status Check**: Monitors thread status (active/completed/aborted)
70
- - **Timeout**: Automatically stops after 30 seconds of no new data
71
- - **Completion**: Exits when thread is no longer active
72
-
73
- ## Usage Examples
74
-
75
- ### Example 1: Basic Resume After Page Refresh
76
-
77
- ```typescript
78
- import {
79
- resume_stream,
80
- get_accumulated_content,
81
- } from "./services/agent_service";
82
-
83
- // Client already received content before refresh (e.g., from localStorage or state)
84
- const knownContent = "Hello world! This is content I already received...";
85
-
86
- const stream = await resume_stream({
87
- thread_id: "thread-123",
88
- message_id: "msg-abc-456",
89
- known_content: knownContent,
90
- });
91
-
92
- // Consume new chunks
93
- for await (const chunk of stream) {
94
- console.log("New content:", chunk.content);
95
- displayInUI(chunk.content); // Update your UI
96
- }
97
-
98
- console.log("Stream completed!");
99
- ```
100
-
101
- ### Example 2: Check Status Before Resuming
102
-
103
- ```typescript
104
- import { get_thread_status, resume_stream } from "./services/agent_service";
105
-
106
- // Check thread status first
107
- const status = await get_thread_status("thread-123");
108
-
109
- if (!status.exists) {
110
- console.log("Thread not found or expired");
111
- } else if (status.status === "completed") {
112
- // Thread already finished, get full content
113
- const content = await get_accumulated_content("thread-123");
114
- displayFullContent(content);
115
- } else if (status.status === "active") {
116
- // Thread still streaming, resume from current position
117
- const currentContent = await get_accumulated_content("thread-123");
118
-
119
- const stream = await resume_stream({
120
- thread_id: "thread-123",
121
- message_id: "msg-123",
122
- known_content: currentContent,
123
- });
124
-
125
- for await (const chunk of stream) {
126
- appendToUI(chunk.content);
127
- }
128
- }
129
- ```
130
-
131
- ### Example 3: Express/Fastify Endpoint (SSE)
132
-
133
- ```typescript
134
- import express from "express";
135
- import { resume_stream } from "./services/agent_service";
136
-
137
- const app = express();
138
-
139
- app.post("/api/resume-stream", async (req, res) => {
140
- const { thread_id, message_id, known_content } = req.body;
141
-
142
- // Set up Server-Sent Events
143
- res.setHeader("Content-Type", "text/event-stream");
144
- res.setHeader("Cache-Control", "no-cache");
145
- res.setHeader("Connection", "keep-alive");
146
-
147
- try {
148
- const stream = await resume_stream({
149
- thread_id,
150
- message_id,
151
- known_content,
152
- });
153
-
154
- for await (const chunk of stream) {
155
- res.write(`data: ${JSON.stringify(chunk)}\n\n`);
156
- }
157
-
158
- res.write("event: complete\ndata: {}\n\n");
159
- res.end();
160
- } catch (error) {
161
- res.write(
162
- `event: error\ndata: ${JSON.stringify({ error: error.message })}\n\n`
163
- );
164
- res.end();
165
- }
166
- });
167
- ```
168
-
169
- ### Example 4: React Hook
170
-
171
- ```typescript
172
- import { useState, useEffect } from 'react';
173
-
174
- function useResumeStream(threadId: string, messageId: string, knownContent: string) {
175
- const [content, setContent] = useState('');
176
- const [isStreaming, setIsStreaming] = useState(false);
177
- const [error, setError] = useState<Error | null>(null);
178
-
179
- useEffect(() => {
180
- let isCancelled = false;
181
-
182
- async function startStream() {
183
- setIsStreaming(true);
184
-
185
- try {
186
- const stream = await resume_stream({
187
- thread_id: threadId,
188
- message_id: messageId,
189
- known_content: knownContent,
190
- });
191
-
192
- for await (const chunk of stream) {
193
- if (isCancelled) break;
194
- setContent(prev => prev + chunk.content);
195
- }
196
- } catch (err) {
197
- if (!isCancelled) {
198
- setError(err as Error);
199
- }
200
- } finally {
201
- if (!isCancelled) {
202
- setIsStreaming(false);
203
- }
204
- }
205
- }
206
-
207
- startStream();
208
-
209
- return () => {
210
- isCancelled = true;
211
- };
212
- }, [threadId, messageId, knownContent]);
213
-
214
- return { content, isStreaming, error };
215
- }
216
-
217
- // Usage in component
218
- function ChatMessage({ threadId, messageId, initialContent }) {
219
- const { content, isStreaming } = useResumeStream(
220
- threadId,
221
- messageId,
222
- initialContent
223
- );
224
-
225
- return (
226
- <div>
227
- {initialContent + content}
228
- {isStreaming && <span className="cursor">▋</span>}
229
- </div>
230
- );
231
- }
232
- ```
233
-
234
- ## Related Functions
235
-
236
- ### `get_accumulated_content(thread_id)`
237
-
238
- Get all accumulated content for a thread.
239
-
240
- ```typescript
241
- const content = await get_accumulated_content("thread-123");
242
- ```
243
-
244
- ### `get_thread_status(thread_id)`
245
-
246
- Get thread status and metadata.
247
-
248
- ```typescript
249
- const status = await get_thread_status("thread-123");
250
- // {
251
- // exists: true,
252
- // status: 'active' | 'completed' | 'aborted',
253
- // chunkCount: 42,
254
- // createdAt: 1234567890,
255
- // updatedAt: 1234567900
256
- // }
257
- ```
258
-
259
- ### `get_active_threads()`
260
-
261
- Get all currently active threads.
262
-
263
- ```typescript
264
- const activeThreads = await get_active_threads();
265
- // ['thread-1', 'thread-2', 'thread-3']
266
- ```
267
-
268
- ### `clear_thread_buffer(thread_id)`
269
-
270
- Manually clear a thread's buffer.
271
-
272
- ```typescript
273
- await clear_thread_buffer("thread-123");
274
- ```
275
-
276
- ## Configuration
277
-
278
- ### TTL (Time-To-Live)
279
-
280
- Threads are automatically cleaned up after 1 hour of inactivity:
281
-
282
- ```typescript
283
- // In agent_service.ts
284
- const buffer = new InMemoryChunkBuffer({
285
- ttl: 60 * 60 * 1000, // 1 hour
286
- cleanupInterval: 5 * 60 * 1000, // Clean every 5 minutes
287
- });
288
- ```
289
-
290
- ### Polling Interval
291
-
292
- Adjust polling frequency based on your needs:
293
-
294
- ```typescript
295
- // Fast polling for real-time updates
296
- const stream = await resume_stream({
297
- thread_id: "thread-123",
298
- message_id: "msg-123",
299
- known_content: knownContent,
300
- poll_interval: 50, // Check every 50ms
301
- });
302
-
303
- // Slower polling to reduce server load
304
- const stream = await resume_stream({
305
- thread_id: "thread-123",
306
- message_id: "msg-123",
307
- known_content: knownContent,
308
- poll_interval: 500, // Check every 500ms
309
- });
310
- ```
311
-
312
- ### Timeout
313
-
314
- The resume stream automatically times out after 30 seconds of no new data:
315
-
316
- ```typescript
317
- // In agent_service.ts - resume_stream function
318
- const maxIdleTime = 30000; // 30 seconds
319
- ```
320
-
321
- ## Error Handling
322
-
323
- ### Thread Not Found
324
-
325
- ```typescript
326
- const stream = await resume_stream({
327
- thread_id: "non-existent",
328
- message_id: "msg-123",
329
- known_content: "",
330
- });
331
-
332
- // Stream will exit immediately if thread doesn't exist
333
- for await (const chunk of stream) {
334
- // Won't execute
335
- }
336
- ```
337
-
338
- ### Network Errors
339
-
340
- ```typescript
341
- try {
342
- const stream = await resume_stream({
343
- thread_id: "thread-123",
344
- message_id: "msg-123",
345
- known_content: previousContent,
346
- });
347
-
348
- for await (const chunk of stream) {
349
- displayChunk(chunk);
350
- }
351
- } catch (error) {
352
- console.error("Stream error:", error);
353
- showErrorToUser("Failed to resume stream");
354
- }
355
- ```
356
-
357
- ## Best Practices
358
-
359
- 1. **Always Check Status First**: Check thread status before attempting to resume
360
- 2. **Store Message ID**: Keep track of the `message_id` (usually `run_id`) with your content
361
- 3. **Preserve Content Exactly**: Store the exact content as received (no formatting/processing)
362
- 4. **Handle Completion**: Be prepared for the stream to end at any time
363
- 5. **Implement Retry Logic**: Add retry mechanism for transient failures
364
- 6. **Set Appropriate Poll Interval**: Balance between responsiveness and server load
365
- 7. **Content Matching**: The algorithm matches content intelligently - exact match, prefix, or suffix
366
-
367
- ## Performance Considerations
368
-
369
- - **Memory Usage**: Chunks are stored in memory (consider TTL for long-running applications)
370
- - **Polling Overhead**: Lower `poll_interval` increases server load but improves responsiveness
371
- - **Concurrent Streams**: Multiple resume streams can run concurrently
372
- - **Cleanup**: Old threads are automatically cleaned up based on TTL
373
-
374
- ## Limitations
375
-
376
- - **In-Memory Only**: Current implementation stores chunks in memory (lost on server restart)
377
- - **Single Message Per Thread**: Designed for one active message per thread
378
- - **Content Matching**: Relies on exact content matching (whitespace, encoding must match)
379
- - **No Persistence**: Chunks are not persisted to disk or database
380
- - **Performance**: Content matching is O(n) where n is number of chunks
381
-
382
- ## Future Enhancements
383
-
384
- - **Persistent Storage**: Add Redis or database backend for persistence across restarts
385
- - **WebSocket Support**: Direct WebSocket integration for lower latency
386
- - **Event-Based Notifications**: Use event emitters instead of polling
387
- - **Compression**: Compress stored chunks to reduce memory usage
388
- - **Multi-Message Support**: Handle multiple concurrent messages per thread
package/jest.config.js DELETED
@@ -1,72 +0,0 @@
1
- module.exports = {
2
- preset: "ts-jest",
3
- testEnvironment: "node",
4
- roots: ["<rootDir>/src"],
5
- testMatch: ["**/__tests__/**/*.test.ts", "**/?(*.)+(spec|test).ts"],
6
- transform: {
7
- "^.+\\.ts$": [
8
- "ts-jest",
9
- {
10
- isolatedModules: true,
11
- },
12
- ],
13
- },
14
- moduleNameMapper: {
15
- "^@axiom-lattice/core$": "<rootDir>/../core/src/index.ts",
16
- "^@axiom-lattice/protocols$": "<rootDir>/../protocols/src/index.ts",
17
- "^@axiom-lattice/pg-stores$": "<rootDir>/../pg-stores/src/index.ts",
18
- "^@axiom-lattice/queue-redis$": "<rootDir>/../queue-redis/src/index.ts",
19
- "^@memory_lattice$": "<rootDir>/../core/src/memory_lattice",
20
- "^@memory_lattice/(.*)$": "<rootDir>/../core/src/memory_lattice/$1",
21
- "^@model_lattice$": "<rootDir>/../core/src/model_lattice",
22
- "^@model_lattice/(.*)$": "<rootDir>/../core/src/model_lattice/$1",
23
- "^@tool_lattice$": "<rootDir>/../core/src/tool_lattice",
24
- "^@tool_lattice/(.*)$": "<rootDir>/../core/src/tool_lattice/$1",
25
- "^@store_lattice$": "<rootDir>/../core/src/store_lattice",
26
- "^@store_lattice/(.*)$": "<rootDir>/../core/src/store_lattice/$1",
27
- "^@agent_lattice$": "<rootDir>/../core/src/agent_lattice",
28
- "^@agent_lattice/(.*)$": "<rootDir>/../core/src/agent_lattice/$1",
29
- "^@skill_lattice$": "<rootDir>/../core/src/skill_lattice",
30
- "^@skill_lattice/(.*)$": "<rootDir>/../core/src/skill_lattice/$1",
31
- "^@sandbox_lattice$": "<rootDir>/../core/src/sandbox_lattice",
32
- "^@sandbox_lattice/(.*)$": "<rootDir>/../core/src/sandbox_lattice/$1",
33
- "^@mcp_lattice$": "<rootDir>/../core/src/mcp_lattice",
34
- "^@mcp_lattice/(.*)$": "<rootDir>/../core/src/mcp_lattice/$1",
35
- "^@chunk_buffer_lattice$": "<rootDir>/../core/src/chunk_buffer_lattice",
36
- "^@chunk_buffer_lattice/(.*)$": "<rootDir>/../core/src/chunk_buffer_lattice/$1",
37
- "^@base$": "<rootDir>/../core/src/base",
38
- "^@base/(.*)$": "<rootDir>/../core/src/base/$1",
39
- "^@services$": "<rootDir>/../core/src/services",
40
- "^@services/(.*)$": "<rootDir>/../core/src/services/$1",
41
- "^@middlewares$": "<rootDir>/../core/src/middlewares",
42
- "^@middlewares/(.*)\.js$": "<rootDir>/../core/src/middlewares/$1",
43
- "^@middlewares/(.*)$": "<rootDir>/../core/src/middlewares/$1",
44
- "^@deep_agent_new$": "<rootDir>/../core/src/deep_agent_new",
45
- "^@deep_agent_new/(.*)$": "<rootDir>/../core/src/deep_agent_new/$1",
46
- "^@agent_team$": "<rootDir>/../core/src/agent_team",
47
- "^@agent_team/(.*)$": "<rootDir>/../core/src/agent_team/$1",
48
- "^@schedule_lattice$": "<rootDir>/../core/src/schedule_lattice",
49
- "^@schedule_lattice/(.*)$": "<rootDir>/../core/src/schedule_lattice/$1",
50
- "^@queue_lattice$": "<rootDir>/../core/src/queue_lattice",
51
- "^@queue_lattice/(.*)$": "<rootDir>/../core/src/queue_lattice/$1",
52
- "^@embeddings_lattice$": "<rootDir>/../core/src/embeddings_lattice",
53
- "^@embeddings_lattice/(.*)$": "<rootDir>/../core/src/embeddings_lattice/$1",
54
- "^@vectorstore_lattice$": "<rootDir>/../core/src/vectorstore_lattice",
55
- "^@vectorstore_lattice/(.*)$": "<rootDir>/../core/src/vectorstore_lattice/$1",
56
- "^@logger_lattice$": "<rootDir>/../core/src/logger_lattice",
57
- "^@logger_lattice/(.*)$": "<rootDir>/../core/src/logger_lattice/$1",
58
- "^@util$": "<rootDir>/../core/src/util",
59
- "^@util/(.*)$": "<rootDir>/../core/src/util/$1",
60
- "^@/(.*)$": "<rootDir>/src/$1",
61
- "^@services/(.*)$": "<rootDir>/src/services/$1",
62
- "^@utils/(.*)$": "<rootDir>/src/utils/$1",
63
- "^@types$": "<rootDir>/src/types/index.ts",
64
- "^e2b$": "<rootDir>/src/__tests__/__mocks__/e2b.ts",
65
- // Strip .js extension from ESM-style imports (must come after all @-scoped mappings)
66
- "^(@.*)[.]js$": "$1",
67
- "^(\\.{1,2}/.*)\\.js$": "$1",
68
- },
69
- collectCoverageFrom: ["src/**/*.ts", "!src/**/*.d.ts", "!src/__tests__/**/*"],
70
- coverageReporters: ["text", "lcov", "html"],
71
- testTimeout: 30000,
72
- };