agentlang 0.9.9 → 0.9.11

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 (61) hide show
  1. package/out/extension/main.cjs +38 -38
  2. package/out/extension/main.cjs.map +2 -2
  3. package/out/language/generated/ast.d.ts +1 -1
  4. package/out/language/generated/ast.js +1 -1
  5. package/out/language/generated/grammar.d.ts +1 -1
  6. package/out/language/generated/grammar.js +1 -1
  7. package/out/language/generated/module.d.ts +1 -1
  8. package/out/language/generated/module.js +1 -1
  9. package/out/language/main.cjs +850 -2388
  10. package/out/language/main.cjs.map +4 -4
  11. package/out/runtime/agents/common.d.ts +3 -1
  12. package/out/runtime/agents/common.d.ts.map +1 -1
  13. package/out/runtime/agents/common.js +35 -31
  14. package/out/runtime/agents/common.js.map +1 -1
  15. package/out/runtime/docs.d.ts +1 -0
  16. package/out/runtime/docs.d.ts.map +1 -1
  17. package/out/runtime/docs.js +16 -1
  18. package/out/runtime/docs.js.map +1 -1
  19. package/out/runtime/interpreter.d.ts +1 -0
  20. package/out/runtime/interpreter.d.ts.map +1 -1
  21. package/out/runtime/interpreter.js +60 -9
  22. package/out/runtime/interpreter.js.map +1 -1
  23. package/out/runtime/jsmodules.d.ts +2 -1
  24. package/out/runtime/jsmodules.d.ts.map +1 -1
  25. package/out/runtime/jsmodules.js +2 -1
  26. package/out/runtime/jsmodules.js.map +1 -1
  27. package/out/runtime/loader.d.ts.map +1 -1
  28. package/out/runtime/loader.js +3 -2
  29. package/out/runtime/loader.js.map +1 -1
  30. package/out/runtime/module.d.ts +1 -0
  31. package/out/runtime/module.d.ts.map +1 -1
  32. package/out/runtime/module.js +3 -0
  33. package/out/runtime/module.js.map +1 -1
  34. package/out/runtime/modules/ai.d.ts +12 -0
  35. package/out/runtime/modules/ai.d.ts.map +1 -1
  36. package/out/runtime/modules/ai.js +225 -28
  37. package/out/runtime/modules/ai.js.map +1 -1
  38. package/out/runtime/modules/core.d.ts.map +1 -1
  39. package/out/runtime/modules/core.js +7 -1
  40. package/out/runtime/modules/core.js.map +1 -1
  41. package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -1
  42. package/out/runtime/resolvers/sqldb/impl.js +37 -6
  43. package/out/runtime/resolvers/sqldb/impl.js.map +1 -1
  44. package/out/runtime/services/documentFetcher.d.ts +70 -0
  45. package/out/runtime/services/documentFetcher.d.ts.map +1 -0
  46. package/out/runtime/services/documentFetcher.js +582 -0
  47. package/out/runtime/services/documentFetcher.js.map +1 -0
  48. package/package.json +2 -1
  49. package/src/language/generated/ast.ts +1 -1
  50. package/src/language/generated/grammar.ts +1 -1
  51. package/src/language/generated/module.ts +1 -1
  52. package/src/runtime/agents/common.ts +37 -31
  53. package/src/runtime/docs.ts +17 -1
  54. package/src/runtime/interpreter.ts +64 -7
  55. package/src/runtime/jsmodules.ts +3 -1
  56. package/src/runtime/loader.ts +3 -2
  57. package/src/runtime/module.ts +4 -0
  58. package/src/runtime/modules/ai.ts +270 -33
  59. package/src/runtime/modules/core.ts +7 -1
  60. package/src/runtime/resolvers/sqldb/impl.ts +36 -6
  61. package/src/runtime/services/documentFetcher.ts +691 -0
@@ -0,0 +1,582 @@
1
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
2
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
3
+ var m = o[Symbol.asyncIterator], i;
4
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
5
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
6
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
7
+ };
8
+ import { GetObjectCommand, S3Client } from '@aws-sdk/client-s3';
9
+ import { readFile } from 'node:fs/promises';
10
+ import { logger } from '../logger.js';
11
+ import { parseAndEvaluateStatement } from '../interpreter.js';
12
+ import { CoreAIModuleName } from '../modules/ai.js';
13
+ import { TtlCache } from '../state.js';
14
+ import { preprocessRawConfig } from '../util.js';
15
+ import { marked } from 'marked';
16
+ import { isNodeEnv } from '../../utils/runtime.js';
17
+ class DocumentFetcherService {
18
+ constructor() {
19
+ this.documentCache = new TtlCache(DocumentFetcherService.CACHE_TTL_MS);
20
+ this.s3Clients = new Map();
21
+ this.pdfParser = null;
22
+ }
23
+ configureDocumentService(config) {
24
+ this.documentServiceConfig = config;
25
+ logger.info('Document service configured', { baseUrl: config.baseUrl });
26
+ }
27
+ async fetchDocument(config) {
28
+ var _a, _b, _c, _d, _e;
29
+ this.ensureNodeEnv();
30
+ const cacheKey = `${config.title}:${config.url || config.documentServiceId}`;
31
+ const cached = this.documentCache.get(cacheKey);
32
+ if (cached) {
33
+ logger.debug('Returning cached document', { title: config.title });
34
+ return cached;
35
+ }
36
+ try {
37
+ let content;
38
+ let sourceUrl;
39
+ if ((_a = config.url) === null || _a === void 0 ? void 0 : _a.startsWith('document-service://')) {
40
+ if (!config.retrievalConfig || config.retrievalConfig.provider !== 'document-service') {
41
+ throw new Error('Document service URL requires retrievalConfig with provider: "document-service"');
42
+ }
43
+ const dsConfig = config.retrievalConfig.config;
44
+ if (!(dsConfig === null || dsConfig === void 0 ? void 0 : dsConfig.baseUrl)) {
45
+ throw new Error('Document service config requires baseUrl');
46
+ }
47
+ const urlPath = config.url.replace('document-service://', '');
48
+ const parts = urlPath.split('/');
49
+ if (parts.length !== 3) {
50
+ throw new Error(`Invalid document service URL format: ${config.url}. Expected: document-service://<user-uuid>/<app-uuid>/<doc-uuid>.ext`);
51
+ }
52
+ const appUuid = parts[1];
53
+ const docIdWithExt = parts[2];
54
+ const docId = docIdWithExt.split('.')[0]; // Remove extension
55
+ this.documentServiceConfig = {
56
+ baseUrl: dsConfig.baseUrl,
57
+ appName: appUuid,
58
+ authToken: dsConfig.authToken,
59
+ getAuthToken: dsConfig.getAuthToken,
60
+ };
61
+ content = await this.fetchFromDocumentService(docId);
62
+ sourceUrl = config.url;
63
+ }
64
+ else if (((_b = config.retrievalConfig) === null || _b === void 0 ? void 0 : _b.provider) === 'document-service') {
65
+ const dsConfig = config.retrievalConfig.config;
66
+ if (!(dsConfig === null || dsConfig === void 0 ? void 0 : dsConfig.baseUrl) || !(dsConfig === null || dsConfig === void 0 ? void 0 : dsConfig.appName)) {
67
+ throw new Error('Document service config requires baseUrl and appName');
68
+ }
69
+ this.documentServiceConfig = {
70
+ baseUrl: dsConfig.baseUrl,
71
+ appName: dsConfig.appName,
72
+ authToken: dsConfig.authToken,
73
+ getAuthToken: dsConfig.getAuthToken,
74
+ };
75
+ const docId = await this.lookupDocumentByTitle(config.title);
76
+ if (docId) {
77
+ content = await this.fetchFromDocumentService(docId);
78
+ sourceUrl = `document-service://${docId}`;
79
+ }
80
+ else {
81
+ throw new Error(`Document not found by title in document service: ${config.title}`);
82
+ }
83
+ }
84
+ else if (config.documentServiceId && this.documentServiceConfig) {
85
+ content = await this.fetchFromDocumentService(config.documentServiceId);
86
+ sourceUrl = `document-service://${config.documentServiceId}`;
87
+ }
88
+ else if ((_c = config.url) === null || _c === void 0 ? void 0 : _c.startsWith('s3://')) {
89
+ content = await this.fetchFromS3(config);
90
+ sourceUrl = config.url;
91
+ }
92
+ else if (((_d = config.url) === null || _d === void 0 ? void 0 : _d.startsWith('http://')) || ((_e = config.url) === null || _e === void 0 ? void 0 : _e.startsWith('https://'))) {
93
+ content = await this.fetchFromUrl(config.url);
94
+ sourceUrl = config.url;
95
+ }
96
+ else if (config.url) {
97
+ content = await this.fetchFromLocal(config.url);
98
+ sourceUrl = config.url;
99
+ }
100
+ else {
101
+ if (this.documentServiceConfig) {
102
+ const docId = await this.lookupDocumentByTitle(config.title);
103
+ if (docId) {
104
+ content = await this.fetchFromDocumentService(docId);
105
+ sourceUrl = `document-service://${docId}`;
106
+ }
107
+ else {
108
+ throw new Error(`Document not found by title: ${config.title}`);
109
+ }
110
+ }
111
+ else {
112
+ throw new Error(`No URL or document service ID provided for: ${config.title}`);
113
+ }
114
+ }
115
+ const document = {
116
+ title: config.title,
117
+ content,
118
+ url: sourceUrl,
119
+ format: this.inferFormat(sourceUrl),
120
+ fetchedAt: new Date(),
121
+ embeddingConfig: config.embeddingConfig,
122
+ };
123
+ this.documentCache.set(cacheKey, document);
124
+ await this.createDocumentEntity(document);
125
+ return document;
126
+ }
127
+ catch (error) {
128
+ logger.error('Failed to fetch document', {
129
+ title: config.title,
130
+ url: config.url,
131
+ documentServiceId: config.documentServiceId,
132
+ error: error instanceof Error ? error.message : String(error),
133
+ stack: error instanceof Error ? error.stack : undefined,
134
+ });
135
+ throw error;
136
+ }
137
+ }
138
+ async fetchDocumentByTitle(title) {
139
+ this.ensureNodeEnv();
140
+ try {
141
+ // First check if we have it in cache
142
+ const cacheKey = `${title}:lookup`;
143
+ const cached = this.documentCache.get(cacheKey);
144
+ if (cached) {
145
+ logger.debug('Returning cached document by title', { title });
146
+ return cached;
147
+ }
148
+ // Try document service lookup first (if configured)
149
+ if (this.documentServiceConfig) {
150
+ const docId = await this.lookupDocumentByTitle(title);
151
+ if (docId) {
152
+ return this.fetchDocument({
153
+ title,
154
+ documentServiceId: docId,
155
+ });
156
+ }
157
+ }
158
+ // Fall back to config-based lookup
159
+ const doc = this.findDocumentInConfig(title);
160
+ if (doc) {
161
+ return this.fetchDocument(doc);
162
+ }
163
+ logger.warn('Document not found', { title });
164
+ return null;
165
+ }
166
+ catch (error) {
167
+ logger.error('Failed to fetch document by title', { title, error });
168
+ return null;
169
+ }
170
+ }
171
+ // Fetch from secure document-service API
172
+ async fetchFromDocumentService(documentId) {
173
+ var _a, _b, _c, _d;
174
+ if (!this.documentServiceConfig) {
175
+ throw new Error('Document service not configured');
176
+ }
177
+ try {
178
+ // Get token - either static from config or dynamic from function
179
+ let token;
180
+ if (this.documentServiceConfig.authToken) {
181
+ token = this.documentServiceConfig.authToken;
182
+ }
183
+ else if (this.documentServiceConfig.getAuthToken) {
184
+ token = await this.documentServiceConfig.getAuthToken();
185
+ }
186
+ else {
187
+ throw new Error('Document service requires authToken or getAuthToken');
188
+ }
189
+ const url = `${this.documentServiceConfig.baseUrl}/api/documents/${documentId}/content`;
190
+ logger.debug('Fetching from document service', { documentId, url });
191
+ const response = await fetch(url, {
192
+ headers: {
193
+ Authorization: `Bearer ${token}`,
194
+ 'x-app-name': this.documentServiceConfig.appName,
195
+ Accept: 'application/json',
196
+ },
197
+ });
198
+ if (!response.ok) {
199
+ if (response.status === 404) {
200
+ throw new Error(`Document not found: ${documentId}`);
201
+ }
202
+ else if (response.status === 403) {
203
+ throw new Error(`Access denied to document: ${documentId}`);
204
+ }
205
+ else {
206
+ throw new Error(`Document service error: ${response.status} ${response.statusText}`);
207
+ }
208
+ }
209
+ const data = await response.json();
210
+ if (data.isBase64) {
211
+ if (((_a = data.mimeType) === null || _a === void 0 ? void 0 : _a.includes('pdf')) || ((_b = data.format) === null || _b === void 0 ? void 0 : _b.toLowerCase()) === 'pdf') {
212
+ try {
213
+ const { parsePdfBuffer } = await import('../docs.js');
214
+ const buffer = Buffer.from(data.content, 'base64');
215
+ const text = await parsePdfBuffer(new Uint8Array(buffer));
216
+ logger.debug('Extracted text from PDF', { documentId, textLength: text.length });
217
+ return text;
218
+ }
219
+ catch (pdfError) {
220
+ logger.error('Failed to parse PDF from document service', {
221
+ documentId,
222
+ error: pdfError.message,
223
+ });
224
+ throw new Error(`Failed to extract text from PDF: ${pdfError.message}`);
225
+ }
226
+ }
227
+ return Buffer.from(data.content, 'base64').toString('utf-8');
228
+ }
229
+ if (((_c = data.format) === null || _c === void 0 ? void 0 : _c.toLowerCase()) === 'md' || ((_d = data.format) === null || _d === void 0 ? void 0 : _d.toLowerCase()) === 'markdown') {
230
+ try {
231
+ const parsedText = this.parseMarkdownText(data.content);
232
+ logger.debug('Parsed markdown content', { documentId, textLength: parsedText.length });
233
+ return parsedText;
234
+ }
235
+ catch (mdError) {
236
+ logger.warn('Markdown parsing failed, returning raw content', {
237
+ documentId,
238
+ error: mdError.message,
239
+ });
240
+ return data.content;
241
+ }
242
+ }
243
+ return data.content;
244
+ }
245
+ catch (error) {
246
+ logger.error('Document service fetch failed', {
247
+ documentId,
248
+ error: error instanceof Error ? error.message : String(error),
249
+ });
250
+ throw error;
251
+ }
252
+ }
253
+ async lookupDocumentByTitle(title) {
254
+ if (!this.documentServiceConfig) {
255
+ return null;
256
+ }
257
+ try {
258
+ let token;
259
+ if (this.documentServiceConfig.authToken) {
260
+ token = this.documentServiceConfig.authToken;
261
+ }
262
+ else if (this.documentServiceConfig.getAuthToken) {
263
+ token = await this.documentServiceConfig.getAuthToken();
264
+ }
265
+ else {
266
+ throw new Error('Document service requires authToken or getAuthToken');
267
+ }
268
+ const url = `${this.documentServiceConfig.baseUrl}/api/documents/lookup/by-title?title=${encodeURIComponent(title)}`;
269
+ logger.debug('Looking up document by title', { title, url });
270
+ const response = await fetch(url, {
271
+ headers: {
272
+ Authorization: `Bearer ${token}`,
273
+ 'x-app-name': this.documentServiceConfig.appName,
274
+ Accept: 'application/json',
275
+ },
276
+ });
277
+ if (response.status === 404) {
278
+ logger.debug('Document not found by title', { title });
279
+ return null;
280
+ }
281
+ if (!response.ok) {
282
+ throw new Error(`Document service lookup error: ${response.status}`);
283
+ }
284
+ const data = await response.json();
285
+ logger.debug('Found document by title', { title, documentId: data.documentId });
286
+ return data.documentId;
287
+ }
288
+ catch (error) {
289
+ logger.error('Document lookup failed', {
290
+ title,
291
+ error: error instanceof Error ? error.message : String(error),
292
+ });
293
+ return null;
294
+ }
295
+ }
296
+ async fetchFromS3(config) {
297
+ const s3Config = this.parseS3Url(config.url, config.retrievalConfig);
298
+ const client = await this.getOrCreateS3Client(s3Config);
299
+ try {
300
+ const response = await client.send(new GetObjectCommand({
301
+ Bucket: s3Config.bucket,
302
+ Key: s3Config.key,
303
+ }));
304
+ if (!response.Body) {
305
+ throw new Error('S3 object has no body');
306
+ }
307
+ const bodyBuffer = await this.readS3BodyToBuffer(response.Body);
308
+ const contentType = (response.ContentType || '').toLowerCase();
309
+ const lowerKey = s3Config.key.toLowerCase();
310
+ const isPdf = contentType.includes('application/pdf') || lowerKey.endsWith('.pdf');
311
+ const isMarkdown = contentType.includes('text/markdown') ||
312
+ lowerKey.endsWith('.md') ||
313
+ lowerKey.endsWith('.markdown') ||
314
+ lowerKey.endsWith('.mdown');
315
+ if (isPdf) {
316
+ return await this.parsePdfBuffer(bodyBuffer);
317
+ }
318
+ if (isMarkdown) {
319
+ return this.parseMarkdownText(bodyBuffer.toString('utf-8'));
320
+ }
321
+ return bodyBuffer.toString('utf-8');
322
+ }
323
+ catch (error) {
324
+ const errorMessage = error instanceof Error ? error.message : String(error);
325
+ const errorStack = error instanceof Error ? error.stack : undefined;
326
+ logger.error('S3 fetch failed', {
327
+ url: config.url,
328
+ bucket: s3Config.bucket,
329
+ key: s3Config.key,
330
+ region: s3Config.region,
331
+ hasAccessKey: !!s3Config.accessKeyId,
332
+ error: errorMessage,
333
+ stack: errorStack,
334
+ });
335
+ throw new Error(`Failed to fetch from S3 (bucket: ${s3Config.bucket}, key: ${s3Config.key}, region: ${s3Config.region}): ${errorMessage}`);
336
+ }
337
+ }
338
+ async fetchFromUrl(url) {
339
+ try {
340
+ const response = await fetch(url, {
341
+ signal: AbortSignal.timeout(30000),
342
+ });
343
+ if (!response.ok) {
344
+ throw new Error(`HTTP ${response.status} ${response.statusText}`);
345
+ }
346
+ const body = await response.arrayBuffer();
347
+ const maxSize = 50 * 1024 * 1024;
348
+ if (body.byteLength > maxSize) {
349
+ throw new Error(`Response too large: ${body.byteLength} bytes`);
350
+ }
351
+ const contentType = (response.headers.get('content-type') || '').toLowerCase();
352
+ const lowerUrl = url.toLowerCase();
353
+ const isMarkdown = contentType.includes('text/markdown') ||
354
+ lowerUrl.endsWith('.md') ||
355
+ lowerUrl.endsWith('.markdown');
356
+ if (isMarkdown) {
357
+ return this.parseMarkdownText(Buffer.from(body).toString('utf-8'));
358
+ }
359
+ return Buffer.from(body).toString('utf-8');
360
+ }
361
+ catch (error) {
362
+ logger.error('URL fetch failed', {
363
+ url,
364
+ error: error instanceof Error ? error.message : String(error),
365
+ });
366
+ throw error;
367
+ }
368
+ }
369
+ async fetchFromLocal(filePath) {
370
+ try {
371
+ const content = await readFile(filePath, 'utf-8');
372
+ const lowerPath = filePath.toLowerCase();
373
+ const isMarkdown = lowerPath.endsWith('.md') || lowerPath.endsWith('.markdown');
374
+ if (isMarkdown) {
375
+ return this.parseMarkdownText(content);
376
+ }
377
+ return content;
378
+ }
379
+ catch (error) {
380
+ logger.error('Local file read failed', {
381
+ path: filePath,
382
+ error: error instanceof Error ? error.message : String(error),
383
+ });
384
+ throw error;
385
+ }
386
+ }
387
+ parseS3Url(url, retrievalConfig) {
388
+ // Parse s3://bucket/key format
389
+ const withoutProtocol = url.replace('s3://', '');
390
+ const firstSlash = withoutProtocol.indexOf('/');
391
+ if (firstSlash === -1) {
392
+ throw new Error(`Invalid S3 URL format: ${url}`);
393
+ }
394
+ const bucket = withoutProtocol.slice(0, firstSlash);
395
+ const key = withoutProtocol.slice(firstSlash + 1);
396
+ const normalizedRetrievalConfig = this.normalizeRetrievalConfig(retrievalConfig);
397
+ // Get S3-specific config from retrievalConfig if provider is s3
398
+ let s3SpecificConfig = {};
399
+ if ((normalizedRetrievalConfig === null || normalizedRetrievalConfig === void 0 ? void 0 : normalizedRetrievalConfig.provider) === 's3' && normalizedRetrievalConfig.config) {
400
+ s3SpecificConfig = normalizedRetrievalConfig.config;
401
+ }
402
+ return {
403
+ bucket,
404
+ key,
405
+ region: s3SpecificConfig.region || process.env.AWS_REGION || 'us-east-1',
406
+ endpoint: s3SpecificConfig.endpoint,
407
+ accessKeyId: s3SpecificConfig.accessKeyId || process.env.AWS_ACCESS_KEY_ID,
408
+ secretAccessKey: s3SpecificConfig.secretAccessKey || process.env.AWS_SECRET_ACCESS_KEY,
409
+ forcePathStyle: s3SpecificConfig.forcePathStyle,
410
+ };
411
+ }
412
+ normalizeRetrievalConfig(config) {
413
+ if (!config) {
414
+ return undefined;
415
+ }
416
+ // Handle nested config structure from Agentlang
417
+ const normalizedConfig = preprocessRawConfig(config);
418
+ return normalizedConfig;
419
+ }
420
+ async getOrCreateS3Client(config) {
421
+ const clientKey = `${config.region}:${config.endpoint || 'default'}:${config.accessKeyId || 'default'}`;
422
+ if (!this.s3Clients.has(clientKey)) {
423
+ const client = new S3Client({
424
+ region: config.region,
425
+ endpoint: config.endpoint,
426
+ forcePathStyle: config.forcePathStyle,
427
+ credentials: config.accessKeyId && config.secretAccessKey
428
+ ? {
429
+ accessKeyId: config.accessKeyId,
430
+ secretAccessKey: config.secretAccessKey,
431
+ }
432
+ : undefined,
433
+ });
434
+ this.s3Clients.set(clientKey, client);
435
+ }
436
+ return this.s3Clients.get(clientKey);
437
+ }
438
+ async parsePdfBuffer(buffer) {
439
+ // Lazy load PDF parser
440
+ if (!this.pdfParser) {
441
+ try {
442
+ const pdfParse = await import('pdf-parse');
443
+ // Handle both ESM and CSM module formats
444
+ const parser = pdfParse.default || pdfParse;
445
+ this.pdfParser = parser;
446
+ }
447
+ catch (error) {
448
+ logger.error('Failed to load PDF parser', { error });
449
+ throw new Error('PDF parsing not available. Please install pdf-parse: npm install pdf-parse');
450
+ }
451
+ }
452
+ try {
453
+ const result = await this.pdfParser(buffer);
454
+ return result.text || '';
455
+ }
456
+ catch (error) {
457
+ logger.error('PDF parsing failed', { error });
458
+ throw new Error(`Failed to parse PDF: ${error}`);
459
+ }
460
+ }
461
+ parseMarkdownText(text) {
462
+ // Convert markdown to plain text for embedding
463
+ // This removes formatting but preserves content structure
464
+ try {
465
+ const html = marked.parse(text);
466
+ // Simple HTML to text conversion
467
+ return html
468
+ .replace(/<[^>]+>/g, ' ') // Remove HTML tags
469
+ .replace(/\s+/g, ' ') // Normalize whitespace
470
+ .replace(/&lt;/g, '<')
471
+ .replace(/&gt;/g, '>')
472
+ .replace(/&amp;/g, '&')
473
+ .replace(/&quot;/g, '"')
474
+ .trim();
475
+ }
476
+ catch (error) {
477
+ logger.warn('Markdown parsing failed, returning raw text', { error });
478
+ return text;
479
+ }
480
+ }
481
+ async readS3BodyToBuffer(body) {
482
+ var _a, e_1, _b, _c;
483
+ if (body.transformToByteArray) {
484
+ const data = await body.transformToByteArray();
485
+ return Buffer.from(data);
486
+ }
487
+ // Fallback for Readable streams
488
+ const chunks = [];
489
+ try {
490
+ for (var _d = true, body_1 = __asyncValues(body), body_1_1; body_1_1 = await body_1.next(), _a = body_1_1.done, !_a; _d = true) {
491
+ _c = body_1_1.value;
492
+ _d = false;
493
+ const chunk = _c;
494
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
495
+ }
496
+ }
497
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
498
+ finally {
499
+ try {
500
+ if (!_d && !_a && (_b = body_1.return)) await _b.call(body_1);
501
+ }
502
+ finally { if (e_1) throw e_1.error; }
503
+ }
504
+ return Buffer.concat(chunks);
505
+ }
506
+ async createDocumentEntity(document) {
507
+ try {
508
+ // Build the Document entity attributes
509
+ let docAttrs = `{title "${document.title}", content "${this.escapeContent(document.content)}"`;
510
+ // Add embeddingConfig if present
511
+ if (document.embeddingConfig) {
512
+ const configStr = JSON.stringify(document.embeddingConfig).replace(/"/g, '\\"');
513
+ docAttrs += `, embeddingConfig "${configStr}"`;
514
+ }
515
+ docAttrs += '}';
516
+ // Upsert to database
517
+ await parseAndEvaluateStatement(`{${CoreAIModuleName}/Document ${docAttrs}, @upsert}`);
518
+ logger.debug('Created Document entity', {
519
+ title: document.title,
520
+ url: document.url,
521
+ hasEmbeddingConfig: !!document.embeddingConfig,
522
+ });
523
+ }
524
+ catch (error) {
525
+ logger.error('Failed to create Document entity', {
526
+ title: document.title,
527
+ error,
528
+ });
529
+ }
530
+ }
531
+ escapeContent(content) {
532
+ return content
533
+ .replace(/\\/g, '\\\\')
534
+ .replace(/"/g, '\\"')
535
+ .replace(/\n/g, '\\n')
536
+ .replace(/\r/g, '\\r')
537
+ .replace(/\t/g, '\\t');
538
+ }
539
+ inferFormat(url) {
540
+ // Handle document-service URLs
541
+ if (url.startsWith('document-service://')) {
542
+ return 'txt';
543
+ }
544
+ const parts = url.split('.');
545
+ if (parts.length > 1) {
546
+ return parts[parts.length - 1].toLowerCase();
547
+ }
548
+ return 'txt';
549
+ }
550
+ findDocumentInConfig(title) {
551
+ // This method should be called during config loading
552
+ // The documents are stored when the config is parsed
553
+ const docs = getConfiguredDocuments();
554
+ return docs.find(d => d.title === title) || null;
555
+ }
556
+ ensureNodeEnv() {
557
+ if (!isNodeEnv) {
558
+ throw new Error('Document fetching is only available in Node.js environment');
559
+ }
560
+ }
561
+ clearCache() {
562
+ // Clear all cache
563
+ this.documentCache.clear();
564
+ }
565
+ }
566
+ DocumentFetcherService.CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
567
+ // Singleton instance
568
+ const documentFetcher = new DocumentFetcherService();
569
+ // Helper function to get configured documents from module config
570
+ function getConfiguredDocuments() {
571
+ // This should be populated during config parsing
572
+ // For now, return empty array - actual implementation depends on how
573
+ // the config system stores document definitions
574
+ return global.__configuredDocuments || [];
575
+ }
576
+ // Export for use in config loading
577
+ export function setConfiguredDocuments(docs) {
578
+ global.__configuredDocuments = docs;
579
+ }
580
+ export { documentFetcher };
581
+ export default documentFetcher;
582
+ //# sourceMappingURL=documentFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentFetcher.js","sourceRoot":"","sources":["../../../src/runtime/services/documentFetcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentlang",
3
3
  "description": "The easiest way to build the most reliable AI agents - enterprise-grade teams of AI agents that collaborate with each other and humans",
4
- "version": "0.9.9",
4
+ "version": "0.9.11",
5
5
  "license": "Sustainable Use License",
6
6
  "author": "agentlang-ai",
7
7
  "homepage": "https://github.com/agentlang-ai/agentlang#readme",
@@ -37,6 +37,7 @@
37
37
  "dependencies": {
38
38
  "@aws-sdk/client-cognito-identity": "^3.975.0",
39
39
  "@aws-sdk/client-cognito-identity-provider": "^3.975.0",
40
+ "@aws-sdk/client-s3": "^3.975.0",
40
41
  "@aws-sdk/credential-providers": "^3.975.0",
41
42
  "@isomorphic-git/lightning-fs": "^4.6.2",
42
43
  "@langchain/anthropic": "^1.3.12",
@@ -1,5 +1,5 @@
1
1
  /******************************************************************************
2
- * This file was generated by langium-cli 4.1.0.
2
+ * This file was generated by langium-cli 4.2.0.
3
3
  * DO NOT EDIT MANUALLY!
4
4
  ******************************************************************************/
5
5
 
@@ -1,5 +1,5 @@
1
1
  /******************************************************************************
2
- * This file was generated by langium-cli 4.1.0.
2
+ * This file was generated by langium-cli 4.2.0.
3
3
  * DO NOT EDIT MANUALLY!
4
4
  ******************************************************************************/
5
5
 
@@ -1,5 +1,5 @@
1
1
  /******************************************************************************
2
- * This file was generated by langium-cli 4.1.0.
2
+ * This file was generated by langium-cli 4.2.0.
3
3
  * DO NOT EDIT MANUALLY!
4
4
  ******************************************************************************/
5
5