@dexto/core 1.6.21 → 1.6.24

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 (78) hide show
  1. package/dist/agent/DextoAgent.cjs +159 -51
  2. package/dist/agent/DextoAgent.d.ts +3 -1
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +162 -53
  5. package/dist/agent/types.d.ts +2 -0
  6. package/dist/agent/types.d.ts.map +1 -1
  7. package/dist/context/manager.cjs +147 -35
  8. package/dist/context/manager.d.ts +6 -0
  9. package/dist/context/manager.d.ts.map +1 -1
  10. package/dist/context/manager.js +149 -36
  11. package/dist/context/types.cjs +5 -0
  12. package/dist/context/types.d.ts +24 -1
  13. package/dist/context/types.d.ts.map +1 -1
  14. package/dist/context/types.js +4 -0
  15. package/dist/context/utils.cjs +85 -25
  16. package/dist/context/utils.d.ts +5 -3
  17. package/dist/context/utils.d.ts.map +1 -1
  18. package/dist/context/utils.js +84 -25
  19. package/dist/events/index.d.ts +14 -0
  20. package/dist/events/index.d.ts.map +1 -1
  21. package/dist/index.browser.d.ts +1 -0
  22. package/dist/index.browser.d.ts.map +1 -1
  23. package/dist/llm/executor/stream-processor.cjs +38 -6
  24. package/dist/llm/executor/stream-processor.d.ts +2 -0
  25. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  26. package/dist/llm/executor/stream-processor.js +38 -6
  27. package/dist/llm/executor/turn-executor.cjs +5 -2
  28. package/dist/llm/executor/turn-executor.d.ts +1 -1
  29. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  30. package/dist/llm/executor/turn-executor.js +5 -2
  31. package/dist/llm/formatters/vercel.cjs +3 -1
  32. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  33. package/dist/llm/formatters/vercel.js +3 -1
  34. package/dist/llm/providers/local/schemas.d.ts +2 -2
  35. package/dist/llm/registry/index.cjs +44 -13
  36. package/dist/llm/registry/index.d.ts.map +1 -1
  37. package/dist/llm/registry/index.js +44 -13
  38. package/dist/llm/registry/models.generated.cjs +1270 -1324
  39. package/dist/llm/registry/models.generated.d.ts +617 -210
  40. package/dist/llm/registry/models.generated.d.ts.map +1 -1
  41. package/dist/llm/registry/models.generated.js +1270 -1324
  42. package/dist/llm/registry/sync.cjs +5 -0
  43. package/dist/llm/registry/sync.d.ts.map +1 -1
  44. package/dist/llm/registry/sync.js +5 -0
  45. package/dist/llm/schemas.d.ts +50 -50
  46. package/dist/llm/services/factory.cjs +19 -1
  47. package/dist/llm/services/factory.d.ts.map +1 -1
  48. package/dist/llm/services/factory.js +19 -1
  49. package/dist/llm/types.cjs +1 -1
  50. package/dist/llm/types.d.ts +1 -1
  51. package/dist/llm/types.d.ts.map +1 -1
  52. package/dist/llm/types.js +1 -1
  53. package/dist/llm/usage-metadata.cjs +4 -2
  54. package/dist/llm/usage-metadata.d.ts +2 -0
  55. package/dist/llm/usage-metadata.d.ts.map +1 -1
  56. package/dist/llm/usage-metadata.js +8 -3
  57. package/dist/resources/handlers/filesystem-handler.cjs +55 -9
  58. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  59. package/dist/resources/handlers/filesystem-handler.js +55 -9
  60. package/dist/resources/reference-parser.cjs +47 -12
  61. package/dist/resources/reference-parser.d.ts +6 -3
  62. package/dist/resources/reference-parser.d.ts.map +1 -1
  63. package/dist/resources/reference-parser.js +47 -12
  64. package/dist/tools/index.d.ts +1 -0
  65. package/dist/tools/index.d.ts.map +1 -1
  66. package/dist/tools/tool-call-metadata.cjs +1 -1
  67. package/dist/tools/tool-call-metadata.d.ts +1 -1
  68. package/dist/tools/tool-call-metadata.d.ts.map +1 -1
  69. package/dist/tools/tool-call-metadata.js +1 -1
  70. package/dist/tools/tool-manager.cjs +3 -0
  71. package/dist/tools/tool-manager.d.ts.map +1 -1
  72. package/dist/tools/tool-manager.js +7 -1
  73. package/dist/tools/types.d.ts +2 -0
  74. package/dist/tools/types.d.ts.map +1 -1
  75. package/dist/utils/api-key-resolver.cjs +25 -0
  76. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  77. package/dist/utils/api-key-resolver.js +25 -0
  78. package/package.json +1 -1
@@ -37,7 +37,7 @@ class FileSystemResourceHandler {
37
37
  return Array.from(this.resourcesCache.values());
38
38
  }
39
39
  canHandle(uri) {
40
- return uri.startsWith("fs://");
40
+ return uri.startsWith("fs://") || path.isAbsolute(uri);
41
41
  }
42
42
  isPathAllowed(canonicalPath) {
43
43
  return this.canonicalRoots.some((root) => {
@@ -62,7 +62,7 @@ class FileSystemResourceHandler {
62
62
  if (!this.canHandle(uri)) {
63
63
  throw ResourceError.noSuitableProvider(uri);
64
64
  }
65
- const filePath = uri.replace("fs://", "");
65
+ const filePath = uri.startsWith("fs://") ? uri.replace("fs://", "") : uri;
66
66
  const resolvedPath = path.resolve(filePath);
67
67
  let canonicalPath;
68
68
  try {
@@ -79,18 +79,21 @@ class FileSystemResourceHandler {
79
79
  throw ResourceError.readFailed(uri, `File too large (${stat.size} bytes)`);
80
80
  }
81
81
  if (this.isBinaryFile(canonicalPath)) {
82
+ const mimeType = this.getMimeType(canonicalPath);
83
+ const content2 = await fs.readFile(canonicalPath);
82
84
  return {
83
85
  contents: [
84
86
  {
85
87
  uri,
86
- mimeType: "text/plain",
87
- text: `[Binary file: ${path.basename(canonicalPath)} (${stat.size} bytes)]`
88
+ mimeType,
89
+ blob: content2.toString("base64")
88
90
  }
89
91
  ],
90
92
  _meta: {
91
93
  isBinary: true,
92
94
  size: stat.size,
93
- originalMimeType: this.getMimeType(canonicalPath)
95
+ originalMimeType: mimeType,
96
+ originalName: path.basename(canonicalPath)
94
97
  }
95
98
  };
96
99
  }
@@ -103,7 +106,7 @@ class FileSystemResourceHandler {
103
106
  text: content
104
107
  }
105
108
  ],
106
- _meta: { size: stat.size }
109
+ _meta: { size: stat.size, originalName: path.basename(canonicalPath) }
107
110
  };
108
111
  } catch (error) {
109
112
  throw ResourceError.readFailed(uri, error);
@@ -128,14 +131,24 @@ class FileSystemResourceHandler {
128
131
  ".ico",
129
132
  ".tiff",
130
133
  ".webp",
134
+ ".svg",
135
+ ".avif",
131
136
  ".mp3",
137
+ ".wav",
138
+ ".ogg",
139
+ ".oga",
140
+ ".m4a",
141
+ ".aac",
142
+ ".flac",
132
143
  ".mp4",
144
+ ".m4v",
133
145
  ".avi",
134
146
  ".mov",
135
147
  ".wmv",
136
148
  ".flv",
137
149
  ".mkv",
138
150
  ".webm",
151
+ ".ogv",
139
152
  ".pdf",
140
153
  ".zip",
141
154
  ".tar",
@@ -211,14 +224,17 @@ class FileSystemResourceHandler {
211
224
  const stat = await fs.stat(canonical);
212
225
  if (stat.isFile()) {
213
226
  if (!this.shouldIncludeFile(canonical, includeExtensions, includeHidden)) return;
214
- const uri = `fs://${canonical.replace(/\\/g, "/")}`;
227
+ const uri = canonical.replace(/\\/g, "/");
215
228
  this.resourcesCache.set(uri, {
216
229
  uri,
217
230
  name: this.generateCleanFileName(canonical),
218
231
  description: "Filesystem resource",
219
232
  source: "internal",
220
233
  size: stat.size,
221
- lastModified: stat.mtime
234
+ lastModified: stat.mtime,
235
+ metadata: {
236
+ originalUri: canonical.replace(/\\/g, "/")
237
+ }
222
238
  });
223
239
  this.fileCount++;
224
240
  return;
@@ -343,6 +359,7 @@ class FileSystemResourceHandler {
343
359
  ".tsx": "text/typescript",
344
360
  ".vue": "text/x-vue",
345
361
  ".json": "application/json",
362
+ ".jsonc": "application/json",
346
363
  ".xml": "text/xml",
347
364
  ".yaml": "text/yaml",
348
365
  ".yml": "text/yaml",
@@ -350,6 +367,8 @@ class FileSystemResourceHandler {
350
367
  ".ini": "text/plain",
351
368
  ".cfg": "text/plain",
352
369
  ".conf": "text/plain",
370
+ ".csv": "text/csv",
371
+ ".log": "text/plain",
353
372
  ".py": "text/x-python",
354
373
  ".rb": "text/x-ruby",
355
374
  ".php": "text/x-php",
@@ -369,7 +388,34 @@ class FileSystemResourceHandler {
369
388
  ".sql": "text/x-sql",
370
389
  ".rst": "text/x-rst",
371
390
  ".tex": "text/x-tex",
372
- ".dockerfile": "text/x-dockerfile"
391
+ ".dockerfile": "text/x-dockerfile",
392
+ ".pdf": "application/pdf",
393
+ ".jpg": "image/jpeg",
394
+ ".jpeg": "image/jpeg",
395
+ ".png": "image/png",
396
+ ".gif": "image/gif",
397
+ ".bmp": "image/bmp",
398
+ ".ico": "image/x-icon",
399
+ ".tif": "image/tiff",
400
+ ".tiff": "image/tiff",
401
+ ".webp": "image/webp",
402
+ ".svg": "image/svg+xml",
403
+ ".avif": "image/avif",
404
+ ".mp3": "audio/mpeg",
405
+ ".wav": "audio/wav",
406
+ ".ogg": "audio/ogg",
407
+ ".oga": "audio/ogg",
408
+ ".m4a": "audio/mp4",
409
+ ".aac": "audio/aac",
410
+ ".flac": "audio/flac",
411
+ ".weba": "audio/webm",
412
+ ".mp4": "video/mp4",
413
+ ".m4v": "video/mp4",
414
+ ".webm": "video/webm",
415
+ ".mov": "video/quicktime",
416
+ ".avi": "video/x-msvideo",
417
+ ".mkv": "video/x-matroska",
418
+ ".ogv": "video/ogg"
373
419
  };
374
420
  return mimeTypes[ext] || "text/plain";
375
421
  }
@@ -24,9 +24,38 @@ __export(reference_parser_exports, {
24
24
  resolveResourceReferences: () => resolveResourceReferences
25
25
  });
26
26
  module.exports = __toCommonJS(reference_parser_exports);
27
+ function matchesMimePattern(mimeType, pattern) {
28
+ if (!mimeType) return false;
29
+ const normalizedMime = mimeType.toLowerCase().trim();
30
+ const normalizedPattern = pattern.toLowerCase().trim();
31
+ if (normalizedPattern === "*/*") {
32
+ return true;
33
+ }
34
+ if (normalizedPattern.endsWith("/*")) {
35
+ const patternType = normalizedPattern.split("/")[0];
36
+ const mimeTypeType = normalizedMime.split("/")[0];
37
+ return mimeTypeType === patternType;
38
+ }
39
+ return normalizedMime === normalizedPattern;
40
+ }
41
+ function matchesAnyMimePattern(mimeType, patterns) {
42
+ return patterns.some((pattern) => matchesMimePattern(mimeType, pattern));
43
+ }
27
44
  function escapeRegExp(literal) {
28
45
  return literal.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
29
46
  }
47
+ function deriveExtractedKind(mimeType) {
48
+ const normalizedMimeType = mimeType.trim().toLowerCase();
49
+ if (normalizedMimeType.startsWith("image/")) return "image";
50
+ if (normalizedMimeType.startsWith("audio/")) return "audio";
51
+ if (normalizedMimeType.startsWith("video/")) return "video";
52
+ return "binary";
53
+ }
54
+ function getCanonicalResourceReference(resourceUri, resource) {
55
+ const originalUri = typeof resource?.metadata?.originalUri === "string" ? resource.metadata.originalUri : void 0;
56
+ const candidate = originalUri ?? resourceUri;
57
+ return candidate.startsWith("fs://") ? candidate.replace("fs://", "") : candidate;
58
+ }
30
59
  function parseResourceReferences(message) {
31
60
  const references = [];
32
61
  const regex = /(?:^|(?<=\s))@(?:(<[^>]+>)|([a-zA-Z0-9_-]+):([a-zA-Z0-9._/-]+)|([a-zA-Z0-9._/-]+))(?![a-zA-Z0-9@.])/g;
@@ -150,14 +179,14 @@ function formatResourceContent(resourceUri, resourceName, content) {
150
179
  contentParts.push("--- End of resource content ---\n");
151
180
  return contentParts.join("\n");
152
181
  }
153
- async function expandMessageReferences(message, availableResources, resourceReader) {
182
+ async function expandMessageReferences(message, availableResources, resourceReader, allowedMediaTypes) {
154
183
  const parsedRefs = parseResourceReferences(message);
155
184
  if (parsedRefs.length === 0) {
156
185
  return {
157
186
  expandedMessage: message,
158
187
  expandedReferences: [],
159
188
  unresolvedReferences: [],
160
- extractedImages: []
189
+ extractedResources: []
161
190
  };
162
191
  }
163
192
  const resolvedRefs = resolveResourceReferences(parsedRefs, availableResources);
@@ -165,24 +194,30 @@ async function expandMessageReferences(message, availableResources, resourceRead
165
194
  const unresolvedReferences = resolvedRefs.filter((ref) => !ref.resourceUri);
166
195
  let expandedMessage = message;
167
196
  const failedRefs = [];
168
- const extractedImages = [];
197
+ const extractedResources = [];
169
198
  for (const ref of expandedReferences) {
170
199
  try {
171
200
  const content = await resourceReader(ref.resourceUri);
172
201
  const resource = availableResources[ref.resourceUri];
173
- let isImageResource = false;
202
+ const extractedFromResource = [];
174
203
  for (const item of content.contents) {
175
- if ("blob" in item && item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
176
- extractedImages.push({
177
- image: item.blob,
204
+ if ("blob" in item && item.blob && item.mimeType && typeof item.blob === "string") {
205
+ const isAllowed = !allowedMediaTypes || matchesAnyMimePattern(item.mimeType, allowedMediaTypes);
206
+ if (!isAllowed) {
207
+ continue;
208
+ }
209
+ extractedFromResource.push({
210
+ uri: getCanonicalResourceReference(ref.resourceUri, resource),
211
+ data: item.blob,
178
212
  mimeType: item.mimeType,
179
- name: resource?.name || ref.identifier
213
+ name: resource?.name || ref.identifier,
214
+ kind: deriveExtractedKind(item.mimeType),
215
+ ...typeof content._meta?.size === "number" ? { size: content._meta.size } : {}
180
216
  });
181
- isImageResource = true;
182
- break;
183
217
  }
184
218
  }
185
- if (isImageResource) {
219
+ if (extractedFromResource.length > 0) {
220
+ extractedResources.push(...extractedFromResource);
186
221
  const pattern = new RegExp(escapeRegExp(ref.originalRef), "g");
187
222
  expandedMessage = expandedMessage.replace(pattern, " ").replace(/\s{2,}/g, " ").trim();
188
223
  } else {
@@ -205,7 +240,7 @@ async function expandMessageReferences(message, availableResources, resourceRead
205
240
  expandedMessage,
206
241
  expandedReferences: finalExpandedReferences,
207
242
  unresolvedReferences,
208
- extractedImages
243
+ extractedResources
209
244
  };
210
245
  }
211
246
  // Annotate the CommonJS export names for ESM import in node:
@@ -11,10 +11,13 @@ export interface ResourceExpansionResult {
11
11
  expandedMessage: string;
12
12
  expandedReferences: ResourceReference[];
13
13
  unresolvedReferences: ResourceReference[];
14
- extractedImages: Array<{
15
- image: string;
14
+ extractedResources: Array<{
15
+ uri: string;
16
+ data: string;
16
17
  mimeType: string;
17
18
  name: string;
19
+ kind: 'image' | 'audio' | 'video' | 'binary';
20
+ size?: number;
18
21
  }>;
19
22
  }
20
23
  /**
@@ -29,5 +32,5 @@ export interface ResourceExpansionResult {
29
32
  export declare function parseResourceReferences(message: string): ResourceReference[];
30
33
  export declare function resolveResourceReferences(references: ResourceReference[], availableResources: ResourceSet): ResourceReference[];
31
34
  export declare function formatResourceContent(resourceUri: string, resourceName: string, content: ReadResourceResult): string;
32
- export declare function expandMessageReferences(message: string, availableResources: ResourceSet, resourceReader: (uri: string) => Promise<ReadResourceResult>): Promise<ResourceExpansionResult>;
35
+ export declare function expandMessageReferences(message: string, availableResources: ResourceSet, resourceReader: (uri: string) => Promise<ReadResourceResult>, allowedMediaTypes?: string[]): Promise<ResourceExpansionResult>;
33
36
  //# sourceMappingURL=reference-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference-parser.d.ts","sourceRoot":"","sources":["../../src/resources/reference-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAK7E,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,eAAe,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7E;AAMD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAuB5E;AAED,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,kBAAkB,EAAE,WAAW,GAChC,iBAAiB,EAAE,CAmCrB;AAiGD,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC5B,MAAM,CAaR;AAED,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,WAAW,EAC/B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,GAC7D,OAAO,CAAC,uBAAuB,CAAC,CA+ElC"}
1
+ {"version":3,"file":"reference-parser.d.ts","sourceRoot":"","sources":["../../src/resources/reference-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAK7E,MAAM,WAAW,iBAAiB;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,eAAe,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,kBAAkB,EAAE,KAAK,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;QAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;CACN;AAiDD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAuB5E;AAED,wBAAgB,yBAAyB,CACrC,UAAU,EAAE,iBAAiB,EAAE,EAC/B,kBAAkB,EAAE,WAAW,GAChC,iBAAiB,EAAE,CAmCrB;AAiGD,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC5B,MAAM,CAaR;AAED,wBAAsB,uBAAuB,CACzC,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,WAAW,EAC/B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,kBAAkB,CAAC,EAC5D,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAoFlC"}
@@ -1,7 +1,36 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
+ function matchesMimePattern(mimeType, pattern) {
3
+ if (!mimeType) return false;
4
+ const normalizedMime = mimeType.toLowerCase().trim();
5
+ const normalizedPattern = pattern.toLowerCase().trim();
6
+ if (normalizedPattern === "*/*") {
7
+ return true;
8
+ }
9
+ if (normalizedPattern.endsWith("/*")) {
10
+ const patternType = normalizedPattern.split("/")[0];
11
+ const mimeTypeType = normalizedMime.split("/")[0];
12
+ return mimeTypeType === patternType;
13
+ }
14
+ return normalizedMime === normalizedPattern;
15
+ }
16
+ function matchesAnyMimePattern(mimeType, patterns) {
17
+ return patterns.some((pattern) => matchesMimePattern(mimeType, pattern));
18
+ }
2
19
  function escapeRegExp(literal) {
3
20
  return literal.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&");
4
21
  }
22
+ function deriveExtractedKind(mimeType) {
23
+ const normalizedMimeType = mimeType.trim().toLowerCase();
24
+ if (normalizedMimeType.startsWith("image/")) return "image";
25
+ if (normalizedMimeType.startsWith("audio/")) return "audio";
26
+ if (normalizedMimeType.startsWith("video/")) return "video";
27
+ return "binary";
28
+ }
29
+ function getCanonicalResourceReference(resourceUri, resource) {
30
+ const originalUri = typeof resource?.metadata?.originalUri === "string" ? resource.metadata.originalUri : void 0;
31
+ const candidate = originalUri ?? resourceUri;
32
+ return candidate.startsWith("fs://") ? candidate.replace("fs://", "") : candidate;
33
+ }
5
34
  function parseResourceReferences(message) {
6
35
  const references = [];
7
36
  const regex = /(?:^|(?<=\s))@(?:(<[^>]+>)|([a-zA-Z0-9_-]+):([a-zA-Z0-9._/-]+)|([a-zA-Z0-9._/-]+))(?![a-zA-Z0-9@.])/g;
@@ -125,14 +154,14 @@ function formatResourceContent(resourceUri, resourceName, content) {
125
154
  contentParts.push("--- End of resource content ---\n");
126
155
  return contentParts.join("\n");
127
156
  }
128
- async function expandMessageReferences(message, availableResources, resourceReader) {
157
+ async function expandMessageReferences(message, availableResources, resourceReader, allowedMediaTypes) {
129
158
  const parsedRefs = parseResourceReferences(message);
130
159
  if (parsedRefs.length === 0) {
131
160
  return {
132
161
  expandedMessage: message,
133
162
  expandedReferences: [],
134
163
  unresolvedReferences: [],
135
- extractedImages: []
164
+ extractedResources: []
136
165
  };
137
166
  }
138
167
  const resolvedRefs = resolveResourceReferences(parsedRefs, availableResources);
@@ -140,24 +169,30 @@ async function expandMessageReferences(message, availableResources, resourceRead
140
169
  const unresolvedReferences = resolvedRefs.filter((ref) => !ref.resourceUri);
141
170
  let expandedMessage = message;
142
171
  const failedRefs = [];
143
- const extractedImages = [];
172
+ const extractedResources = [];
144
173
  for (const ref of expandedReferences) {
145
174
  try {
146
175
  const content = await resourceReader(ref.resourceUri);
147
176
  const resource = availableResources[ref.resourceUri];
148
- let isImageResource = false;
177
+ const extractedFromResource = [];
149
178
  for (const item of content.contents) {
150
- if ("blob" in item && item.blob && item.mimeType && item.mimeType.startsWith("image/") && typeof item.blob === "string") {
151
- extractedImages.push({
152
- image: item.blob,
179
+ if ("blob" in item && item.blob && item.mimeType && typeof item.blob === "string") {
180
+ const isAllowed = !allowedMediaTypes || matchesAnyMimePattern(item.mimeType, allowedMediaTypes);
181
+ if (!isAllowed) {
182
+ continue;
183
+ }
184
+ extractedFromResource.push({
185
+ uri: getCanonicalResourceReference(ref.resourceUri, resource),
186
+ data: item.blob,
153
187
  mimeType: item.mimeType,
154
- name: resource?.name || ref.identifier
188
+ name: resource?.name || ref.identifier,
189
+ kind: deriveExtractedKind(item.mimeType),
190
+ ...typeof content._meta?.size === "number" ? { size: content._meta.size } : {}
155
191
  });
156
- isImageResource = true;
157
- break;
158
192
  }
159
193
  }
160
- if (isImageResource) {
194
+ if (extractedFromResource.length > 0) {
195
+ extractedResources.push(...extractedFromResource);
161
196
  const pattern = new RegExp(escapeRegExp(ref.originalRef), "g");
162
197
  expandedMessage = expandedMessage.replace(pattern, " ").replace(/\s{2,}/g, " ").trim();
163
198
  } else {
@@ -180,7 +215,7 @@ async function expandMessageReferences(message, availableResources, resourceRead
180
215
  expandedMessage,
181
216
  expandedReferences: finalExpandedReferences,
182
217
  unresolvedReferences,
183
- extractedImages
218
+ extractedResources
184
219
  };
185
220
  }
186
221
  export {
@@ -9,6 +9,7 @@ export { defineTool } from './define-tool.js';
9
9
  export * from './display-types.js';
10
10
  export * from './schemas.js';
11
11
  export * from './presentation.js';
12
+ export type { ToolCallMetadata, ToolCallMetaWrapper } from './tool-call-metadata.js';
12
13
  export { ToolError } from './errors.js';
13
14
  export { ToolErrorCode } from './error-codes.js';
14
15
  export { ToolManager, type ToolExecutionContextFactory } from './tool-manager.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAG7B,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,KAAK,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,cAAc,oBAAoB,CAAC;AAGnC,cAAc,cAAc,CAAC;AAG7B,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,KAAK,2BAA2B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -42,7 +42,7 @@ const META_SCHEMA = {
42
42
  description: "Optional description shown to the user when requesting approval."
43
43
  }
44
44
  },
45
- additionalProperties: false
45
+ additionalProperties: true
46
46
  };
47
47
  const META_KEY = "__meta";
48
48
  function wrapToolParametersSchema(parameters) {
@@ -1,5 +1,5 @@
1
1
  import type { JSONSchema7 } from 'json-schema';
2
- export type ToolCallMetadata = {
2
+ export type ToolCallMetadata = Record<string, unknown> & {
3
3
  runInBackground?: boolean;
4
4
  timeoutMs?: number;
5
5
  notifyOnComplete?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call-metadata.d.ts","sourceRoot":"","sources":["../../src/tools/tool-call-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AA2BF,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAgB7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAChE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,EAAE,gBAAgB,CAAC;CAC1B,CAQA"}
1
+ {"version":3,"file":"tool-call-metadata.d.ts","sourceRoot":"","sources":["../../src/tools/tool-call-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,MAAM,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AA2BF,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,WAAW,GAAG,WAAW,CAgB7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAChE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,IAAI,EAAE,gBAAgB,CAAC;CAC1B,CAQA"}
@@ -19,7 +19,7 @@ const META_SCHEMA = {
19
19
  description: "Optional description shown to the user when requesting approval."
20
20
  }
21
21
  },
22
- additionalProperties: false
22
+ additionalProperties: true
23
23
  };
24
24
  const META_KEY = "__meta";
25
25
  function wrapToolParametersSchema(parameters) {
@@ -1041,6 +1041,7 @@ let _ToolManager = class _ToolManager {
1041
1041
  */
1042
1042
  async executeTool(toolName, args, toolCallId, sessionId, abortSignal) {
1043
1043
  const { toolArgs: rawToolArgs, meta } = (0, import_tool_call_metadata.extractToolCallMeta)(args);
1044
+ const eventMeta = Object.keys(meta).length > 0 ? meta : void 0;
1044
1045
  let toolArgs = rawToolArgs;
1045
1046
  const callDescription = typeof meta.callDescription === "string" ? meta.callDescription : typeof rawToolArgs.description === "string" ? rawToolArgs.description : void 0;
1046
1047
  const backgroundTasksEnabled = (0, import_env.isBackgroundTasksEnabled)();
@@ -1057,6 +1058,7 @@ let _ToolManager = class _ToolManager {
1057
1058
  toolName,
1058
1059
  presentationSnapshot,
1059
1060
  args: toolArgs,
1061
+ ...eventMeta !== void 0 ? { meta: eventMeta } : {},
1060
1062
  ...callDescription !== void 0 && { callDescription },
1061
1063
  callId: toolCallId,
1062
1064
  sessionId
@@ -1240,6 +1242,7 @@ let _ToolManager = class _ToolManager {
1240
1242
  return {
1241
1243
  result,
1242
1244
  ...presentationSnapshot !== void 0 && { presentationSnapshot },
1245
+ ...eventMeta !== void 0 ? { meta: eventMeta } : {},
1243
1246
  ...requireApproval && { requireApproval, approvalStatus }
1244
1247
  };
1245
1248
  } catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,10 @@ import { DextoLogComponent } from "../logger/v2/types.js";
11
11
  import { convertZodSchemaToJsonSchema } from "../utils/schema.js";
12
12
  import { ApprovalStatus, ApprovalType, DenialReason } from "../approval/types.js";
13
13
  import { InstrumentClass } from "../telemetry/decorators.js";
14
- import { extractToolCallMeta, wrapToolParametersSchema } from "./tool-call-metadata.js";
14
+ import {
15
+ extractToolCallMeta,
16
+ wrapToolParametersSchema
17
+ } from "./tool-call-metadata.js";
15
18
  import { isBackgroundTasksEnabled } from "../utils/env.js";
16
19
  _ToolManager_decorators = [InstrumentClass({
17
20
  prefix: "tool",
@@ -978,6 +981,7 @@ let _ToolManager = class _ToolManager {
978
981
  */
979
982
  async executeTool(toolName, args, toolCallId, sessionId, abortSignal) {
980
983
  const { toolArgs: rawToolArgs, meta } = extractToolCallMeta(args);
984
+ const eventMeta = Object.keys(meta).length > 0 ? meta : void 0;
981
985
  let toolArgs = rawToolArgs;
982
986
  const callDescription = typeof meta.callDescription === "string" ? meta.callDescription : typeof rawToolArgs.description === "string" ? rawToolArgs.description : void 0;
983
987
  const backgroundTasksEnabled = isBackgroundTasksEnabled();
@@ -994,6 +998,7 @@ let _ToolManager = class _ToolManager {
994
998
  toolName,
995
999
  presentationSnapshot,
996
1000
  args: toolArgs,
1001
+ ...eventMeta !== void 0 ? { meta: eventMeta } : {},
997
1002
  ...callDescription !== void 0 && { callDescription },
998
1003
  callId: toolCallId,
999
1004
  sessionId
@@ -1177,6 +1182,7 @@ let _ToolManager = class _ToolManager {
1177
1182
  return {
1178
1183
  result,
1179
1184
  ...presentationSnapshot !== void 0 && { presentationSnapshot },
1185
+ ...eventMeta !== void 0 ? { meta: eventMeta } : {},
1180
1186
  ...requireApproval && { requireApproval, approvalStatus }
1181
1187
  };
1182
1188
  } catch (error) {
@@ -88,6 +88,8 @@ export interface ToolExecutionResult {
88
88
  result: unknown;
89
89
  /** Optional UI-agnostic presentation snapshot for this call/result */
90
90
  presentationSnapshot?: ToolPresentationSnapshotV1;
91
+ /** Optional non-execution metadata carried through the tool lifecycle */
92
+ meta?: import('./tool-call-metadata.js').ToolCallMetadata;
91
93
  /** Whether this tool required user approval before execution */
92
94
  requireApproval?: boolean;
93
95
  /** The approval status (only present if requireApproval is true) */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,8 @@ __export(api_key_resolver_exports, {
23
23
  resolveApiKeyForProvider: () => resolveApiKeyForProvider
24
24
  });
25
25
  module.exports = __toCommonJS(api_key_resolver_exports);
26
+ var import_fs = require("fs");
27
+ var import_path = require("./path.js");
26
28
  const PROVIDER_API_KEY_MAP = {
27
29
  openai: ["OPENAI_API_KEY", "OPENAI_KEY"],
28
30
  "openai-compatible": ["OPENAI_API_KEY", "OPENAI_KEY"],
@@ -58,7 +60,30 @@ const PROVIDER_API_KEY_MAP = {
58
60
  // fireworks: ['FIREWORKS_API_KEY'],
59
61
  // deepseek: ['DEEPSEEK_API_KEY'],
60
62
  };
63
+ function resolveDextoApiKeyFromAuthConfig() {
64
+ const authPath = (0, import_path.getDextoGlobalPath)("", "auth.json");
65
+ if (!(0, import_fs.existsSync)(authPath)) {
66
+ return void 0;
67
+ }
68
+ try {
69
+ const parsed = JSON.parse((0, import_fs.readFileSync)(authPath, "utf-8"));
70
+ const authKey = typeof parsed.dextoApiKey === "string" ? parsed.dextoApiKey.trim() : void 0;
71
+ if (!authKey) {
72
+ return void 0;
73
+ }
74
+ process.env.DEXTO_API_KEY = authKey;
75
+ return authKey;
76
+ } catch {
77
+ return void 0;
78
+ }
79
+ }
61
80
  function resolveApiKeyForProvider(provider) {
81
+ if (provider === "dexto-nova") {
82
+ const authKey = resolveDextoApiKeyFromAuthConfig();
83
+ if (authKey) {
84
+ return authKey;
85
+ }
86
+ }
62
87
  const envVars = PROVIDER_API_KEY_MAP[provider];
63
88
  if (!envVars) {
64
89
  return void 0;
@@ -1 +1 @@
1
- {"version":3,"file":"api-key-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/api-key-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;GAGG;AAGH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CA+B9D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAelF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAGpE"}
1
+ {"version":3,"file":"api-key-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/api-key-resolver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGnD;;;GAGG;AAGH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CA+B9D,CAAC;AA2BF;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAsBlF;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAGpE"}