@dexto/core 1.5.7 → 1.5.8

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 (128) hide show
  1. package/dist/agent/DextoAgent.cjs +96 -5
  2. package/dist/agent/DextoAgent.d.ts +32 -7
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +96 -5
  5. package/dist/agent/schemas.cjs +5 -0
  6. package/dist/agent/schemas.d.ts +60 -21
  7. package/dist/agent/schemas.d.ts.map +1 -1
  8. package/dist/agent/schemas.js +5 -0
  9. package/dist/context/manager.cjs +1 -1
  10. package/dist/context/manager.js +1 -1
  11. package/dist/context/utils.cjs +69 -42
  12. package/dist/context/utils.d.ts.map +1 -1
  13. package/dist/context/utils.js +69 -42
  14. package/dist/events/index.cjs +4 -1
  15. package/dist/events/index.d.ts +37 -2
  16. package/dist/events/index.d.ts.map +1 -1
  17. package/dist/events/index.js +4 -1
  18. package/dist/index.browser.d.ts +1 -1
  19. package/dist/index.browser.d.ts.map +1 -1
  20. package/dist/llm/curation-config.cjs +82 -0
  21. package/dist/llm/curation-config.d.ts +13 -0
  22. package/dist/llm/curation-config.d.ts.map +1 -0
  23. package/dist/llm/curation-config.js +59 -0
  24. package/dist/llm/curation.cjs +57 -0
  25. package/dist/llm/curation.d.ts +16 -0
  26. package/dist/llm/curation.d.ts.map +1 -0
  27. package/dist/llm/curation.js +34 -0
  28. package/dist/llm/errors.cjs +1 -1
  29. package/dist/llm/errors.d.ts +8 -8
  30. package/dist/llm/errors.js +1 -1
  31. package/dist/llm/executor/provider-options.cjs +1 -1
  32. package/dist/llm/executor/provider-options.js +1 -1
  33. package/dist/llm/executor/turn-executor.cjs +8 -2
  34. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  35. package/dist/llm/executor/turn-executor.js +8 -2
  36. package/dist/llm/index.cjs +14 -3
  37. package/dist/llm/index.d.ts +3 -1
  38. package/dist/llm/index.d.ts.map +1 -1
  39. package/dist/llm/index.js +13 -2
  40. package/dist/llm/registry/auto-update.cjs +263 -0
  41. package/dist/llm/registry/auto-update.d.ts +27 -0
  42. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  43. package/dist/llm/registry/auto-update.js +227 -0
  44. package/dist/llm/registry/index.cjs +806 -0
  45. package/dist/llm/{registry.d.ts → registry/index.d.ts} +19 -41
  46. package/dist/llm/registry/index.d.ts.map +1 -0
  47. package/dist/llm/registry/index.js +756 -0
  48. package/dist/llm/registry/models.generated.cjs +4861 -0
  49. package/dist/llm/registry/models.generated.d.ts +431 -0
  50. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  51. package/dist/llm/registry/models.generated.js +4838 -0
  52. package/dist/llm/registry/models.manual.cjs +44 -0
  53. package/dist/llm/registry/models.manual.d.ts +22 -0
  54. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  55. package/dist/llm/registry/models.manual.js +21 -0
  56. package/dist/llm/registry/sync.cjs +354 -0
  57. package/dist/llm/registry/sync.d.ts +41 -0
  58. package/dist/llm/registry/sync.d.ts.map +1 -0
  59. package/dist/llm/registry/sync.js +328 -0
  60. package/dist/llm/resolver.cjs +27 -18
  61. package/dist/llm/resolver.d.ts +1 -1
  62. package/dist/llm/resolver.d.ts.map +1 -1
  63. package/dist/llm/resolver.js +28 -20
  64. package/dist/llm/schemas.cjs +13 -1
  65. package/dist/llm/schemas.d.ts +23 -23
  66. package/dist/llm/schemas.d.ts.map +1 -1
  67. package/dist/llm/schemas.js +14 -1
  68. package/dist/llm/services/factory.cjs +4 -4
  69. package/dist/llm/services/factory.d.ts.map +1 -1
  70. package/dist/llm/services/factory.js +4 -4
  71. package/dist/llm/services/test-utils.integration.cjs +1 -1
  72. package/dist/llm/services/test-utils.integration.js +1 -1
  73. package/dist/llm/services/vercel.cjs +4 -1
  74. package/dist/llm/services/vercel.d.ts +1 -0
  75. package/dist/llm/services/vercel.d.ts.map +1 -1
  76. package/dist/llm/services/vercel.js +4 -1
  77. package/dist/llm/types.cjs +1 -1
  78. package/dist/llm/types.d.ts +1 -1
  79. package/dist/llm/types.d.ts.map +1 -1
  80. package/dist/llm/types.js +1 -1
  81. package/dist/llm/validation.cjs +1 -1
  82. package/dist/llm/validation.js +1 -1
  83. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  84. package/dist/resources/handlers/filesystem-handler.d.ts +1 -0
  85. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  86. package/dist/resources/handlers/filesystem-handler.js +25 -0
  87. package/dist/session/chat-session.cjs +1 -1
  88. package/dist/session/chat-session.js +1 -1
  89. package/dist/session/message-queue.cjs +29 -5
  90. package/dist/session/message-queue.d.ts +3 -1
  91. package/dist/session/message-queue.d.ts.map +1 -1
  92. package/dist/session/message-queue.js +29 -5
  93. package/dist/session/session-manager.cjs +40 -3
  94. package/dist/session/session-manager.d.ts +3 -1
  95. package/dist/session/session-manager.d.ts.map +1 -1
  96. package/dist/session/session-manager.js +30 -3
  97. package/dist/session/types.d.ts +1 -0
  98. package/dist/session/types.d.ts.map +1 -1
  99. package/dist/tools/internal-tools/provider.d.ts +3 -1
  100. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  101. package/dist/tools/internal-tools/registry.d.ts +1 -1
  102. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  103. package/dist/tools/tool-call-metadata.cjs +75 -0
  104. package/dist/tools/tool-call-metadata.d.ts +16 -0
  105. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  106. package/dist/tools/tool-call-metadata.js +51 -0
  107. package/dist/tools/tool-manager.cjs +257 -30
  108. package/dist/tools/tool-manager.d.ts +43 -2
  109. package/dist/tools/tool-manager.d.ts.map +1 -1
  110. package/dist/tools/tool-manager.js +257 -30
  111. package/dist/utils/api-key-resolver.cjs +1 -1
  112. package/dist/utils/api-key-resolver.js +1 -1
  113. package/dist/utils/env.cjs +49 -0
  114. package/dist/utils/env.d.ts +4 -0
  115. package/dist/utils/env.d.ts.map +1 -0
  116. package/dist/utils/env.js +24 -0
  117. package/dist/utils/index.cjs +3 -1
  118. package/dist/utils/index.d.ts +1 -0
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +1 -0
  121. package/dist/utils/service-initializer.cjs +17 -5
  122. package/dist/utils/service-initializer.d.ts +23 -4
  123. package/dist/utils/service-initializer.d.ts.map +1 -1
  124. package/dist/utils/service-initializer.js +17 -5
  125. package/package.json +6 -2
  126. package/dist/llm/registry.cjs +0 -2075
  127. package/dist/llm/registry.d.ts.map +0 -1
  128. package/dist/llm/registry.js +0 -2025
@@ -42,7 +42,8 @@ class MessageQueueService {
42
42
  id: generateId(),
43
43
  content: message.content,
44
44
  queuedAt: Date.now(),
45
- ...message.metadata !== void 0 && { metadata: message.metadata }
45
+ ...message.metadata !== void 0 && { metadata: message.metadata },
46
+ ...message.kind !== void 0 && { kind: message.kind }
46
47
  };
47
48
  this.queue.push(queuedMsg);
48
49
  this.logger.debug(`Message queued: ${queuedMsg.id}, position: ${this.queue.length}`);
@@ -87,13 +88,14 @@ class MessageQueueService {
87
88
  count: messages.length,
88
89
  ids: messages.map((m) => m.id),
89
90
  coalesced: messages.length > 1,
90
- content: combined.combinedContent
91
+ content: combined.combinedContent,
92
+ messages
91
93
  });
92
94
  return combined;
93
95
  }
94
96
  /**
95
97
  * Coalesce multiple messages into one (multimodal-aware).
96
- * Strategy: Combine with numbered separators, preserve all media.
98
+ * Strategy: Combine with per-kind formatting, preserve all media.
97
99
  */
98
100
  coalesce(messages) {
99
101
  if (messages.length === 1) {
@@ -108,10 +110,32 @@ class MessageQueueService {
108
110
  lastQueuedAt: firstMsg.queuedAt
109
111
  };
110
112
  }
113
+ const getMessageKind = (message) => message.kind ?? "default";
114
+ const totalUserMessages = messages.filter(
115
+ (message) => getMessageKind(message) !== "background"
116
+ ).length;
117
+ const hasBackgroundMessages = messages.some(
118
+ (message) => getMessageKind(message) === "background"
119
+ );
120
+ const getUserPrefix = (index, total, mixed) => {
121
+ if (mixed) {
122
+ return `User follow-up ${index + 1}`;
123
+ }
124
+ if (total <= 1) return null;
125
+ if (total === 2) {
126
+ return index === 0 ? "First" : "Also";
127
+ }
128
+ return `[${index + 1}]`;
129
+ };
111
130
  const combinedContent = [];
131
+ let userIndex = 0;
112
132
  for (const [i, msg] of messages.entries()) {
113
- const prefix = messages.length === 2 ? i === 0 ? "First" : "Also" : `[${i + 1}]`;
114
- let prefixText = `${prefix}: `;
133
+ const kind = getMessageKind(msg);
134
+ const prefix = kind === "background" ? null : getUserPrefix(userIndex, totalUserMessages, hasBackgroundMessages);
135
+ if (kind !== "background") {
136
+ userIndex += 1;
137
+ }
138
+ let prefixText = prefix ? `${prefix}: ` : "";
115
139
  for (const part of msg.content) {
116
140
  if (part.type === "text") {
117
141
  if (prefixText) {
@@ -12,6 +12,8 @@ export interface UserMessageInput {
12
12
  content: ContentPart[];
13
13
  /** Optional metadata to attach to the message */
14
14
  metadata?: Record<string, unknown>;
15
+ /** Optional kind of queued message */
16
+ kind?: 'default' | 'background';
15
17
  }
16
18
  /**
17
19
  * MessageQueueService handles queuing of user messages during agent execution.
@@ -80,7 +82,7 @@ export declare class MessageQueueService {
80
82
  dequeueAll(): CoalescedMessage | null;
81
83
  /**
82
84
  * Coalesce multiple messages into one (multimodal-aware).
83
- * Strategy: Combine with numbered separators, preserve all media.
85
+ * Strategy: Combine with per-kind formatting, preserve all media.
84
86
  */
85
87
  private coalesce;
86
88
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"message-queue.d.ts","sourceRoot":"","sources":["../../src/session/message-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS1D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,2DAA2D;IAC3D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,mBAAmB;IAIxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAJlB,OAAO,CAAC,KAAK,CAAuB;gBAGxB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;IAwBlF;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,IAAI,gBAAgB,GAAG,IAAI;IAsBrC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IA0EhB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,MAAM,IAAI,aAAa,EAAE;IAIzB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAY9B"}
1
+ {"version":3,"file":"message-queue.d.ts","sourceRoot":"","sources":["../../src/session/message-queue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAS1D;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC7B,2DAA2D;IAC3D,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,mBAAmB;IAIxB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IAJlB,OAAO,CAAC,KAAK,CAAuB;gBAGxB,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,YAAY;IAGhC;;;;;;OAMG;IACH,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG;QAAE,MAAM,EAAE,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE;IAyBlF;;;;;;;;;;;;;;;;;;OAkBG;IACH,UAAU,IAAI,gBAAgB,GAAG,IAAI;IAuBrC;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAuGhB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,MAAM,IAAI,aAAa,EAAE;IAIzB;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI1C;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAY9B"}
@@ -20,7 +20,8 @@ class MessageQueueService {
20
20
  id: generateId(),
21
21
  content: message.content,
22
22
  queuedAt: Date.now(),
23
- ...message.metadata !== void 0 && { metadata: message.metadata }
23
+ ...message.metadata !== void 0 && { metadata: message.metadata },
24
+ ...message.kind !== void 0 && { kind: message.kind }
24
25
  };
25
26
  this.queue.push(queuedMsg);
26
27
  this.logger.debug(`Message queued: ${queuedMsg.id}, position: ${this.queue.length}`);
@@ -65,13 +66,14 @@ class MessageQueueService {
65
66
  count: messages.length,
66
67
  ids: messages.map((m) => m.id),
67
68
  coalesced: messages.length > 1,
68
- content: combined.combinedContent
69
+ content: combined.combinedContent,
70
+ messages
69
71
  });
70
72
  return combined;
71
73
  }
72
74
  /**
73
75
  * Coalesce multiple messages into one (multimodal-aware).
74
- * Strategy: Combine with numbered separators, preserve all media.
76
+ * Strategy: Combine with per-kind formatting, preserve all media.
75
77
  */
76
78
  coalesce(messages) {
77
79
  if (messages.length === 1) {
@@ -86,10 +88,32 @@ class MessageQueueService {
86
88
  lastQueuedAt: firstMsg.queuedAt
87
89
  };
88
90
  }
91
+ const getMessageKind = (message) => message.kind ?? "default";
92
+ const totalUserMessages = messages.filter(
93
+ (message) => getMessageKind(message) !== "background"
94
+ ).length;
95
+ const hasBackgroundMessages = messages.some(
96
+ (message) => getMessageKind(message) === "background"
97
+ );
98
+ const getUserPrefix = (index, total, mixed) => {
99
+ if (mixed) {
100
+ return `User follow-up ${index + 1}`;
101
+ }
102
+ if (total <= 1) return null;
103
+ if (total === 2) {
104
+ return index === 0 ? "First" : "Also";
105
+ }
106
+ return `[${index + 1}]`;
107
+ };
89
108
  const combinedContent = [];
109
+ let userIndex = 0;
90
110
  for (const [i, msg] of messages.entries()) {
91
- const prefix = messages.length === 2 ? i === 0 ? "First" : "Also" : `[${i + 1}]`;
92
- let prefixText = `${prefix}: `;
111
+ const kind = getMessageKind(msg);
112
+ const prefix = kind === "background" ? null : getUserPrefix(userIndex, totalUserMessages, hasBackgroundMessages);
113
+ if (kind !== "background") {
114
+ userIndex += 1;
115
+ }
116
+ let prefixText = prefix ? `${prefix}: ` : "";
93
117
  for (const part of msg.content) {
94
118
  if (part.type === "text") {
95
119
  if (prefixText) {
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var session_manager_exports = {};
20
30
  __export(session_manager_exports, {
@@ -153,7 +163,20 @@ class SessionManager {
153
163
  });
154
164
  const sessionData2 = await this.services.storageManager.getDatabase().get(sessionKey);
155
165
  if (sessionData2?.llmOverride) {
156
- this.services.stateManager.updateLLM(sessionData2.llmOverride, id);
166
+ const { resolveApiKeyForProvider } = await import("../utils/api-key-resolver.js");
167
+ const apiKey = resolveApiKeyForProvider(sessionData2.llmOverride.provider);
168
+ if (!apiKey) {
169
+ this.logger.warn(
170
+ `Skipped LLM override restore for session ${id}: missing API key for provider ${sessionData2.llmOverride.provider}`,
171
+ { sessionId: id, provider: sessionData2.llmOverride.provider }
172
+ );
173
+ } else {
174
+ const restoredConfig = {
175
+ ...sessionData2.llmOverride,
176
+ apiKey
177
+ };
178
+ this.services.stateManager.updateLLM(restoredConfig, id);
179
+ }
157
180
  }
158
181
  const session2 = new import_chat_session.ChatSession(
159
182
  { ...this.services, sessionManager: this },
@@ -239,7 +262,20 @@ class SessionManager {
239
262
  sessionId
240
263
  });
241
264
  if (sessionData.llmOverride) {
242
- this.services.stateManager.updateLLM(sessionData.llmOverride, sessionId);
265
+ const { resolveApiKeyForProvider } = await import("../utils/api-key-resolver.js");
266
+ const apiKey = resolveApiKeyForProvider(sessionData.llmOverride.provider);
267
+ if (!apiKey) {
268
+ this.logger.warn(
269
+ `Skipped LLM override restore for session ${sessionId}: missing API key for provider ${sessionData.llmOverride.provider}`,
270
+ { sessionId, provider: sessionData.llmOverride.provider }
271
+ );
272
+ } else {
273
+ const restoredConfig = {
274
+ ...sessionData.llmOverride,
275
+ apiKey
276
+ };
277
+ this.services.stateManager.updateLLM(restoredConfig, sessionId);
278
+ }
243
279
  }
244
280
  const session = new import_chat_session.ChatSession(
245
281
  { ...this.services, sessionManager: this },
@@ -534,7 +570,8 @@ class SessionManager {
534
570
  const sessionKey = `session:${sessionId}`;
535
571
  const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
536
572
  if (sessionData) {
537
- sessionData.llmOverride = newLLMConfig;
573
+ const { apiKey: _apiKey, ...configWithoutApiKey } = newLLMConfig;
574
+ sessionData.llmOverride = configWithoutApiKey;
538
575
  await this.services.storageManager.getDatabase().set(sessionKey, sessionData);
539
576
  await this.services.storageManager.getCache().set(sessionKey, sessionData, this.sessionTTL / 1e3);
540
577
  }
@@ -32,6 +32,7 @@ export interface SessionManagerConfig {
32
32
  /** Host hook for creating a session-scoped logger (e.g. file logger) */
33
33
  sessionLoggerFactory?: SessionLoggerFactory;
34
34
  }
35
+ type PersistedLLMConfig = Omit<ValidatedLLMConfig, 'apiKey'>;
35
36
  export interface SessionData {
36
37
  id: string;
37
38
  userId?: string;
@@ -42,7 +43,7 @@ export interface SessionData {
42
43
  tokenUsage?: SessionTokenUsage;
43
44
  estimatedCost?: number;
44
45
  /** Persisted LLM config override for this session */
45
- llmOverride?: ValidatedLLMConfig;
46
+ llmOverride?: PersistedLLMConfig;
46
47
  }
47
48
  /**
48
49
  * Manages multiple chat sessions within a Dexto agent.
@@ -227,4 +228,5 @@ export declare class SessionManager {
227
228
  */
228
229
  cleanup(): Promise<void>;
229
230
  }
231
+ export {};
230
232
  //# sourceMappingURL=session-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/session/session-manager.ts"],"names":[],"mappings":"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"}
@@ -131,7 +131,20 @@ class SessionManager {
131
131
  });
132
132
  const sessionData2 = await this.services.storageManager.getDatabase().get(sessionKey);
133
133
  if (sessionData2?.llmOverride) {
134
- this.services.stateManager.updateLLM(sessionData2.llmOverride, id);
134
+ const { resolveApiKeyForProvider } = await import("../utils/api-key-resolver.js");
135
+ const apiKey = resolveApiKeyForProvider(sessionData2.llmOverride.provider);
136
+ if (!apiKey) {
137
+ this.logger.warn(
138
+ `Skipped LLM override restore for session ${id}: missing API key for provider ${sessionData2.llmOverride.provider}`,
139
+ { sessionId: id, provider: sessionData2.llmOverride.provider }
140
+ );
141
+ } else {
142
+ const restoredConfig = {
143
+ ...sessionData2.llmOverride,
144
+ apiKey
145
+ };
146
+ this.services.stateManager.updateLLM(restoredConfig, id);
147
+ }
135
148
  }
136
149
  const session2 = new ChatSession(
137
150
  { ...this.services, sessionManager: this },
@@ -217,7 +230,20 @@ class SessionManager {
217
230
  sessionId
218
231
  });
219
232
  if (sessionData.llmOverride) {
220
- this.services.stateManager.updateLLM(sessionData.llmOverride, sessionId);
233
+ const { resolveApiKeyForProvider } = await import("../utils/api-key-resolver.js");
234
+ const apiKey = resolveApiKeyForProvider(sessionData.llmOverride.provider);
235
+ if (!apiKey) {
236
+ this.logger.warn(
237
+ `Skipped LLM override restore for session ${sessionId}: missing API key for provider ${sessionData.llmOverride.provider}`,
238
+ { sessionId, provider: sessionData.llmOverride.provider }
239
+ );
240
+ } else {
241
+ const restoredConfig = {
242
+ ...sessionData.llmOverride,
243
+ apiKey
244
+ };
245
+ this.services.stateManager.updateLLM(restoredConfig, sessionId);
246
+ }
221
247
  }
222
248
  const session = new ChatSession(
223
249
  { ...this.services, sessionManager: this },
@@ -512,7 +538,8 @@ class SessionManager {
512
538
  const sessionKey = `session:${sessionId}`;
513
539
  const sessionData = await this.services.storageManager.getDatabase().get(sessionKey);
514
540
  if (sessionData) {
515
- sessionData.llmOverride = newLLMConfig;
541
+ const { apiKey: _apiKey, ...configWithoutApiKey } = newLLMConfig;
542
+ sessionData.llmOverride = configWithoutApiKey;
516
543
  await this.services.storageManager.getDatabase().set(sessionKey, sessionData);
517
544
  await this.services.storageManager.getCache().set(sessionKey, sessionData, this.sessionTTL / 1e3);
518
545
  }
@@ -4,6 +4,7 @@ export interface QueuedMessage {
4
4
  content: ContentPart[];
5
5
  queuedAt: number;
6
6
  metadata?: Record<string, unknown>;
7
+ kind?: 'default' | 'background';
7
8
  }
8
9
  export interface CoalescedMessage {
9
10
  messages: QueuedMessage[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,IAAI,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe,EAAE,WAAW,EAAE,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACxB"}
@@ -18,6 +18,7 @@ import type { InternalToolsConfig, CustomToolsConfig } from '../schemas.js';
18
18
  * - No unnecessary ProcessedInternalTool wrapper - uses InternalTool directly
19
19
  * - Custom tools follow the same provider pattern as blob storage
20
20
  */
21
+ type ToolServices = InternalToolsServices & Record<string, unknown>;
21
22
  export declare class InternalToolsProvider {
22
23
  private services;
23
24
  private internalTools;
@@ -26,7 +27,7 @@ export declare class InternalToolsProvider {
26
27
  private customToolConfigs;
27
28
  private logger;
28
29
  private agent?;
29
- constructor(services: InternalToolsServices, config: InternalToolsConfig | undefined, customToolConfigs: CustomToolsConfig | undefined, logger: IDextoLogger);
30
+ constructor(services: ToolServices, config: InternalToolsConfig | undefined, customToolConfigs: CustomToolsConfig | undefined, logger: IDextoLogger);
30
31
  /**
31
32
  * Set agent reference after construction (avoids circular dependency)
32
33
  * Must be called before initialize() if custom tools need agent access
@@ -111,4 +112,5 @@ export declare class InternalToolsProvider {
111
112
  */
112
113
  getCustomToolCount(): number;
113
114
  }
115
+ export {};
114
116
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAA0C,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAK5E;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAwB;IACxC,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGvB,QAAQ,EAAE,qBAAqB,EAC/B,MAAM,EAAE,mBAAmB,YAAK,EAChC,iBAAiB,EAAE,iBAAiB,YAAK,EACzC,MAAM,EAAE,YAAY;IAYxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,OAAO,eAAe,EAAE,UAAU,GAAG,IAAI;IAInE;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAgE3B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;IA0CnB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAc3B;;OAEG;IACH,cAAc,IAAI,OAAO;IAczB;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG/B"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAA0C,MAAM,eAAe,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAK5E;;;;;;;;;;;;;GAaG;AACH,KAAK,YAAY,GAAG,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpE,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,KAAK,CAAC,CAAa;gBAGvB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,mBAAmB,YAAK,EAChC,iBAAiB,EAAE,iBAAiB,YAAK,EACzC,MAAM,EAAE,YAAY;IAYxB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC;;;OAGG;IACH,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAIpD;;;;OAIG;IACH,aAAa,CAAC,UAAU,EAAE,OAAO,eAAe,EAAE,UAAU,GAAG,IAAI;IAInE;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAgD7B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAgE3B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIlC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI1C;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD;;OAEG;IACG,WAAW,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,WAAW,EACzB,UAAU,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;IA0CnB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAc3B;;OAEG;IACH,cAAc,IAAI,OAAO;IAczB;;OAEG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,oBAAoB,IAAI,MAAM;IAI9B;;OAEG;IACH,kBAAkB,IAAI,MAAM;CAG/B"}
@@ -57,7 +57,7 @@ export interface TaskForker {
57
57
  * Services available to internal tools
58
58
  * Add new services here as needed for internal tools
59
59
  */
60
- export interface InternalToolsServices {
60
+ export interface InternalToolsServices extends Record<string, unknown> {
61
61
  searchService?: SearchService;
62
62
  approvalManager?: ApprovalManager;
63
63
  resourceManager?: ResourceManager;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAOrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,OAAO,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACN;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,KAAK,mBAAmB,GAAG,CAAC,QAAQ,EAAE,qBAAqB,KAAK,YAAY,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,SAAS,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC;IAC3D,gBAAgB,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAmCvF,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,yBAAyB,CAE1F"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/tools/internal-tools/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAOrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,WAAW,UAAU;IACvB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,OAAO,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,OAAO,CAAC;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACN;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAsB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,+EAA+E;IAC/E,UAAU,CAAC,EAAE,UAAU,CAAC;CAC3B;AAED;;GAEG;AACH,KAAK,mBAAmB,GAAG,CAAC,QAAQ,EAAE,qBAAqB,KAAK,YAAY,CAAC;AAE7E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,mBAAmB,CAAC;IAC7B,gBAAgB,EAAE,SAAS,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC;IAC3D,gBAAgB,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAmCvF,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,yBAAyB,CAE1F"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var tool_call_metadata_exports = {};
20
+ __export(tool_call_metadata_exports, {
21
+ extractToolCallMeta: () => extractToolCallMeta,
22
+ wrapToolParametersSchema: () => wrapToolParametersSchema
23
+ });
24
+ module.exports = __toCommonJS(tool_call_metadata_exports);
25
+ const META_SCHEMA = {
26
+ type: "object",
27
+ properties: {
28
+ runInBackground: {
29
+ type: "boolean",
30
+ description: "Run the tool in background and return a task ID immediately."
31
+ },
32
+ timeoutMs: {
33
+ type: "number",
34
+ description: "Optional timeout in milliseconds for background tasks."
35
+ },
36
+ notifyOnComplete: {
37
+ type: "boolean",
38
+ description: "Notify when the background task completes."
39
+ },
40
+ callDescription: {
41
+ type: "string",
42
+ description: "Optional description shown to the user when requesting approval."
43
+ }
44
+ },
45
+ additionalProperties: false
46
+ };
47
+ const META_KEY = "__dexto";
48
+ function wrapToolParametersSchema(parameters) {
49
+ if (parameters.type !== "object" || !parameters.properties) {
50
+ return parameters;
51
+ }
52
+ if (META_KEY in parameters.properties) {
53
+ return parameters;
54
+ }
55
+ return {
56
+ ...parameters,
57
+ properties: {
58
+ ...parameters.properties,
59
+ [META_KEY]: META_SCHEMA
60
+ }
61
+ };
62
+ }
63
+ function extractToolCallMeta(args) {
64
+ const { __dexto, ...toolArgs } = args;
65
+ const meta = __dexto ?? {};
66
+ return {
67
+ toolArgs,
68
+ meta
69
+ };
70
+ }
71
+ // Annotate the CommonJS export names for ESM import in node:
72
+ 0 && (module.exports = {
73
+ extractToolCallMeta,
74
+ wrapToolParametersSchema
75
+ });
@@ -0,0 +1,16 @@
1
+ import type { JSONSchema7 } from 'json-schema';
2
+ export type ToolCallMetadata = {
3
+ runInBackground?: boolean;
4
+ timeoutMs?: number;
5
+ notifyOnComplete?: boolean;
6
+ callDescription?: string;
7
+ };
8
+ export type ToolCallMetaWrapper = {
9
+ __dexto: ToolCallMetadata;
10
+ };
11
+ export declare function wrapToolParametersSchema(parameters: JSONSchema7): JSONSchema7;
12
+ export declare function extractToolCallMeta(args: Record<string, unknown>): {
13
+ toolArgs: Record<string, unknown>;
14
+ meta: ToolCallMetadata;
15
+ };
16
+ //# sourceMappingURL=tool-call-metadata.d.ts.map
@@ -0,0 +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,OAAO,EAAE,gBAAgB,CAAC;CAC7B,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"}
@@ -0,0 +1,51 @@
1
+ import "../chunk-PTJYTZNU.js";
2
+ const META_SCHEMA = {
3
+ type: "object",
4
+ properties: {
5
+ runInBackground: {
6
+ type: "boolean",
7
+ description: "Run the tool in background and return a task ID immediately."
8
+ },
9
+ timeoutMs: {
10
+ type: "number",
11
+ description: "Optional timeout in milliseconds for background tasks."
12
+ },
13
+ notifyOnComplete: {
14
+ type: "boolean",
15
+ description: "Notify when the background task completes."
16
+ },
17
+ callDescription: {
18
+ type: "string",
19
+ description: "Optional description shown to the user when requesting approval."
20
+ }
21
+ },
22
+ additionalProperties: false
23
+ };
24
+ const META_KEY = "__dexto";
25
+ function wrapToolParametersSchema(parameters) {
26
+ if (parameters.type !== "object" || !parameters.properties) {
27
+ return parameters;
28
+ }
29
+ if (META_KEY in parameters.properties) {
30
+ return parameters;
31
+ }
32
+ return {
33
+ ...parameters,
34
+ properties: {
35
+ ...parameters.properties,
36
+ [META_KEY]: META_SCHEMA
37
+ }
38
+ };
39
+ }
40
+ function extractToolCallMeta(args) {
41
+ const { __dexto, ...toolArgs } = args;
42
+ const meta = __dexto ?? {};
43
+ return {
44
+ toolArgs,
45
+ meta
46
+ };
47
+ }
48
+ export {
49
+ extractToolCallMeta,
50
+ wrapToolParametersSchema
51
+ };