@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.
- package/dist/agent/DextoAgent.cjs +96 -5
- package/dist/agent/DextoAgent.d.ts +32 -7
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +96 -5
- package/dist/agent/schemas.cjs +5 -0
- package/dist/agent/schemas.d.ts +60 -21
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +5 -0
- package/dist/context/manager.cjs +1 -1
- package/dist/context/manager.js +1 -1
- package/dist/context/utils.cjs +69 -42
- package/dist/context/utils.d.ts.map +1 -1
- package/dist/context/utils.js +69 -42
- package/dist/events/index.cjs +4 -1
- package/dist/events/index.d.ts +37 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +4 -1
- package/dist/index.browser.d.ts +1 -1
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/llm/curation-config.cjs +82 -0
- package/dist/llm/curation-config.d.ts +13 -0
- package/dist/llm/curation-config.d.ts.map +1 -0
- package/dist/llm/curation-config.js +59 -0
- package/dist/llm/curation.cjs +57 -0
- package/dist/llm/curation.d.ts +16 -0
- package/dist/llm/curation.d.ts.map +1 -0
- package/dist/llm/curation.js +34 -0
- package/dist/llm/errors.cjs +1 -1
- package/dist/llm/errors.d.ts +8 -8
- package/dist/llm/errors.js +1 -1
- package/dist/llm/executor/provider-options.cjs +1 -1
- package/dist/llm/executor/provider-options.js +1 -1
- package/dist/llm/executor/turn-executor.cjs +8 -2
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +8 -2
- package/dist/llm/index.cjs +14 -3
- package/dist/llm/index.d.ts +3 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +13 -2
- package/dist/llm/registry/auto-update.cjs +263 -0
- package/dist/llm/registry/auto-update.d.ts +27 -0
- package/dist/llm/registry/auto-update.d.ts.map +1 -0
- package/dist/llm/registry/auto-update.js +227 -0
- package/dist/llm/registry/index.cjs +806 -0
- package/dist/llm/{registry.d.ts → registry/index.d.ts} +19 -41
- package/dist/llm/registry/index.d.ts.map +1 -0
- package/dist/llm/registry/index.js +756 -0
- package/dist/llm/registry/models.generated.cjs +4861 -0
- package/dist/llm/registry/models.generated.d.ts +431 -0
- package/dist/llm/registry/models.generated.d.ts.map +1 -0
- package/dist/llm/registry/models.generated.js +4838 -0
- package/dist/llm/registry/models.manual.cjs +44 -0
- package/dist/llm/registry/models.manual.d.ts +22 -0
- package/dist/llm/registry/models.manual.d.ts.map +1 -0
- package/dist/llm/registry/models.manual.js +21 -0
- package/dist/llm/registry/sync.cjs +354 -0
- package/dist/llm/registry/sync.d.ts +41 -0
- package/dist/llm/registry/sync.d.ts.map +1 -0
- package/dist/llm/registry/sync.js +328 -0
- package/dist/llm/resolver.cjs +27 -18
- package/dist/llm/resolver.d.ts +1 -1
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +28 -20
- package/dist/llm/schemas.cjs +13 -1
- package/dist/llm/schemas.d.ts +23 -23
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +14 -1
- package/dist/llm/services/factory.cjs +4 -4
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +4 -4
- package/dist/llm/services/test-utils.integration.cjs +1 -1
- package/dist/llm/services/test-utils.integration.js +1 -1
- package/dist/llm/services/vercel.cjs +4 -1
- package/dist/llm/services/vercel.d.ts +1 -0
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +4 -1
- package/dist/llm/types.cjs +1 -1
- package/dist/llm/types.d.ts +1 -1
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/llm/types.js +1 -1
- package/dist/llm/validation.cjs +1 -1
- package/dist/llm/validation.js +1 -1
- package/dist/resources/handlers/filesystem-handler.cjs +25 -0
- package/dist/resources/handlers/filesystem-handler.d.ts +1 -0
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +25 -0
- package/dist/session/chat-session.cjs +1 -1
- package/dist/session/chat-session.js +1 -1
- package/dist/session/message-queue.cjs +29 -5
- package/dist/session/message-queue.d.ts +3 -1
- package/dist/session/message-queue.d.ts.map +1 -1
- package/dist/session/message-queue.js +29 -5
- package/dist/session/session-manager.cjs +40 -3
- package/dist/session/session-manager.d.ts +3 -1
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +30 -3
- package/dist/session/types.d.ts +1 -0
- package/dist/session/types.d.ts.map +1 -1
- package/dist/tools/internal-tools/provider.d.ts +3 -1
- package/dist/tools/internal-tools/provider.d.ts.map +1 -1
- package/dist/tools/internal-tools/registry.d.ts +1 -1
- package/dist/tools/internal-tools/registry.d.ts.map +1 -1
- package/dist/tools/tool-call-metadata.cjs +75 -0
- package/dist/tools/tool-call-metadata.d.ts +16 -0
- package/dist/tools/tool-call-metadata.d.ts.map +1 -0
- package/dist/tools/tool-call-metadata.js +51 -0
- package/dist/tools/tool-manager.cjs +257 -30
- package/dist/tools/tool-manager.d.ts +43 -2
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +257 -30
- package/dist/utils/api-key-resolver.cjs +1 -1
- package/dist/utils/api-key-resolver.js +1 -1
- package/dist/utils/env.cjs +49 -0
- package/dist/utils/env.d.ts +4 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +24 -0
- package/dist/utils/index.cjs +3 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/service-initializer.cjs +17 -5
- package/dist/utils/service-initializer.d.ts +23 -4
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +17 -5
- package/package.json +6 -2
- package/dist/llm/registry.cjs +0 -2075
- package/dist/llm/registry.d.ts.map +0 -1
- 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
|
|
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
|
|
114
|
-
|
|
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
|
|
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;
|
|
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
|
|
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
|
|
92
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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?:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|
package/dist/session/types.d.ts
CHANGED
|
@@ -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;
|
|
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:
|
|
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,
|
|
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,
|
|
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
|
+
};
|