@dexto/core 1.6.25 → 1.6.26
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 +27 -14
- package/dist/agent/DextoAgent.d.ts +7 -6
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +27 -14
- package/dist/approval/manager.cjs +328 -178
- package/dist/approval/manager.d.ts +39 -31
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +328 -178
- package/dist/approval/session-approval-store.cjs +91 -0
- package/dist/approval/session-approval-store.d.ts +55 -0
- package/dist/approval/session-approval-store.d.ts.map +1 -0
- package/dist/approval/session-approval-store.js +68 -0
- package/dist/llm/executor/turn-executor.cjs +7 -3
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +7 -3
- package/dist/llm/services/factory.cjs +10 -4
- package/dist/llm/services/factory.d.ts +2 -21
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +11 -7
- package/dist/llm/services/types.d.ts +33 -2
- package/dist/llm/services/types.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +4 -5
- package/dist/llm/services/vercel.d.ts +3 -3
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +2 -3
- package/dist/logger/default-logger-factory.d.ts +12 -12
- package/dist/logger/v2/schemas.d.ts +6 -6
- package/dist/mcp/schemas.d.ts +10 -10
- package/dist/session/chat-session.cjs +39 -41
- package/dist/session/chat-session.d.ts +22 -12
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +39 -41
- package/dist/session/message-queue-store.cjs +75 -0
- package/dist/session/message-queue-store.d.ts +16 -0
- package/dist/session/message-queue-store.d.ts.map +1 -0
- package/dist/session/message-queue-store.js +52 -0
- package/dist/session/message-queue.cjs +140 -46
- package/dist/session/message-queue.d.ts +18 -6
- package/dist/session/message-queue.d.ts.map +1 -1
- package/dist/session/message-queue.js +140 -46
- package/dist/session/session-manager.cjs +130 -25
- package/dist/session/session-manager.d.ts +18 -1
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +130 -25
- package/dist/session/title-generator.cjs +9 -2
- package/dist/session/title-generator.d.ts +2 -0
- package/dist/session/title-generator.d.ts.map +1 -1
- package/dist/session/title-generator.js +9 -2
- package/dist/telemetry/errors.cjs +2 -2
- package/dist/telemetry/errors.js +2 -2
- package/dist/telemetry/index.d.ts +1 -1
- package/dist/telemetry/index.d.ts.map +1 -1
- package/dist/telemetry/index.js +3 -1
- package/dist/telemetry/telemetry.cjs +62 -21
- package/dist/telemetry/telemetry.d.ts +14 -0
- package/dist/telemetry/telemetry.d.ts.map +1 -1
- package/dist/telemetry/telemetry.js +62 -21
- package/dist/test-utils/session-state-stores.cjs +68 -0
- package/dist/test-utils/session-state-stores.js +42 -0
- package/dist/tools/session-tool-preferences-store.cjs +86 -0
- package/dist/tools/session-tool-preferences-store.d.ts +29 -0
- package/dist/tools/session-tool-preferences-store.d.ts.map +1 -0
- package/dist/tools/session-tool-preferences-store.js +63 -0
- package/dist/tools/tool-manager.cjs +131 -32
- package/dist/tools/tool-manager.d.ts +17 -6
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +131 -32
- package/dist/utils/service-initializer.cjs +38 -5
- package/dist/utils/service-initializer.d.ts +11 -1
- package/dist/utils/service-initializer.d.ts.map +1 -1
- package/dist/utils/service-initializer.js +36 -4
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ import type { HookManager } from '../hooks/manager.js';
|
|
|
9
9
|
import type { SessionManager } from '../session/index.js';
|
|
10
10
|
import type { AgentStateManager } from '../agent/state-manager.js';
|
|
11
11
|
import type { WorkspaceManager } from '../workspace/manager.js';
|
|
12
|
+
import type { SessionToolPreferencesStore } from './session-tool-preferences-store.js';
|
|
12
13
|
import type { DynamicContributorContext, DynamicContributorContextFactory } from '../systemPrompt/types.js';
|
|
13
14
|
export type ToolExecutionContextFactory = (baseContext: ToolExecutionContextBase) => ToolExecutionContext;
|
|
14
15
|
/**
|
|
@@ -26,7 +27,7 @@ export type ToolExecutionContextFactory = (baseContext: ToolExecutionContextBase
|
|
|
26
27
|
* - Handle cross-source naming conflicts (MCP tools are prefixed with `mcp--`)
|
|
27
28
|
*
|
|
28
29
|
* Architecture:
|
|
29
|
-
*
|
|
30
|
+
* LLM runtime → ToolManager → [MCPManager, local tools]
|
|
30
31
|
* ↓
|
|
31
32
|
* ApprovalManager (for approvals)
|
|
32
33
|
*
|
|
@@ -38,6 +39,7 @@ export type ToolExecutionContextFactory = (baseContext: ToolExecutionContextBase
|
|
|
38
39
|
* See feature-plans/telemetry.md for details
|
|
39
40
|
*/
|
|
40
41
|
export declare class ToolManager {
|
|
42
|
+
private readonly sessionToolPreferencesStore;
|
|
41
43
|
private mcpManager;
|
|
42
44
|
private agentTools;
|
|
43
45
|
private approvalManager;
|
|
@@ -61,12 +63,21 @@ export declare class ToolManager {
|
|
|
61
63
|
private sessionAutoApproveTools;
|
|
62
64
|
private sessionUserAutoApproveTools;
|
|
63
65
|
private sessionDisabledTools;
|
|
66
|
+
private readonly restoredSessionPreferences;
|
|
67
|
+
private readonly sessionPreferenceLocks;
|
|
64
68
|
private globalDisabledTools;
|
|
65
69
|
private cleanupHandlers;
|
|
66
70
|
private cleanupStarted;
|
|
67
71
|
private resolveLocalToolIdOrAlias;
|
|
68
72
|
private normalizeToolPolicyPattern;
|
|
69
|
-
constructor(mcpManager: MCPManager, approvalManager: ApprovalManager, allowedToolsProvider: AllowedToolsProvider, approvalMode: 'manual' | 'auto-approve' | 'auto-deny', agentEventBus: AgentEventBus, toolPolicies: ToolPolicies, tools: Tool[], logger: Logger);
|
|
73
|
+
constructor(mcpManager: MCPManager, approvalManager: ApprovalManager, allowedToolsProvider: AllowedToolsProvider, approvalMode: 'manual' | 'auto-approve' | 'auto-deny', agentEventBus: AgentEventBus, toolPolicies: ToolPolicies, tools: Tool[], logger: Logger, sessionToolPreferencesStore: SessionToolPreferencesStore);
|
|
74
|
+
private runWithSessionPreferenceLock;
|
|
75
|
+
private applySessionToolPreferences;
|
|
76
|
+
private getSessionToolPreferencesSnapshot;
|
|
77
|
+
restoreSessionState(sessionId: string): Promise<void>;
|
|
78
|
+
evictSessionState(sessionId: string): void;
|
|
79
|
+
deleteSessionState(sessionId: string): Promise<void>;
|
|
80
|
+
private persistSessionToolPreferences;
|
|
70
81
|
/**
|
|
71
82
|
* Initialize the ToolManager and its components
|
|
72
83
|
*/
|
|
@@ -105,11 +116,11 @@ export declare class ToolManager {
|
|
|
105
116
|
/**
|
|
106
117
|
* Set session-level auto-approve tools chosen by the user.
|
|
107
118
|
*/
|
|
108
|
-
setSessionUserAutoApproveTools(sessionId: string, autoApproveTools: string[]): void
|
|
119
|
+
setSessionUserAutoApproveTools(sessionId: string, autoApproveTools: string[]): Promise<void>;
|
|
109
120
|
/**
|
|
110
121
|
* Clear session-level auto-approve tools chosen by the user.
|
|
111
122
|
*/
|
|
112
|
-
clearSessionUserAutoApproveTools(sessionId: string): void
|
|
123
|
+
clearSessionUserAutoApproveTools(sessionId: string): Promise<void>;
|
|
113
124
|
/**
|
|
114
125
|
* Clear session-level auto-approve tools.
|
|
115
126
|
* Call this when the session ends or when the skill completes.
|
|
@@ -126,11 +137,11 @@ export declare class ToolManager {
|
|
|
126
137
|
/**
|
|
127
138
|
* Set session-level disabled tools (overrides global list).
|
|
128
139
|
*/
|
|
129
|
-
setSessionDisabledTools(sessionId: string, toolNames: string[]): void
|
|
140
|
+
setSessionDisabledTools(sessionId: string, toolNames: string[]): Promise<void>;
|
|
130
141
|
/**
|
|
131
142
|
* Clear session-level disabled tools.
|
|
132
143
|
*/
|
|
133
|
-
clearSessionDisabledTools(sessionId: string): void
|
|
144
|
+
clearSessionDisabledTools(sessionId: string): Promise<void>;
|
|
134
145
|
/**
|
|
135
146
|
* Get disabled tools for a session (session override wins).
|
|
136
147
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACH,OAAO,EACP,oBAAoB,EACpB,wBAAwB,EACxB,IAAI,EAEP,MAAM,YAAY,CAAC;AAKpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQ9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,24 @@ _ToolManager_decorators = [InstrumentClass({
|
|
|
21
21
|
excludeMethods: ["setHookSupport", "getApprovalManager", "getAllowedToolsProvider"]
|
|
22
22
|
})];
|
|
23
23
|
let _ToolManager = class _ToolManager {
|
|
24
|
+
constructor(mcpManager, approvalManager, allowedToolsProvider, approvalMode, agentEventBus, toolPolicies, tools, logger, sessionToolPreferencesStore) {
|
|
25
|
+
this.sessionToolPreferencesStore = sessionToolPreferencesStore;
|
|
26
|
+
this.mcpManager = mcpManager;
|
|
27
|
+
this.approvalManager = approvalManager;
|
|
28
|
+
this.allowedToolsProvider = allowedToolsProvider;
|
|
29
|
+
this.approvalMode = approvalMode;
|
|
30
|
+
this.agentEventBus = agentEventBus;
|
|
31
|
+
this.toolPolicies = toolPolicies;
|
|
32
|
+
this.logger = logger.createChild(DextoLogComponent.TOOLS);
|
|
33
|
+
this.setTools(tools);
|
|
34
|
+
this.toolExecutionContextFactory = () => {
|
|
35
|
+
throw ToolError.configInvalid(
|
|
36
|
+
"ToolExecutionContextFactory not configured. DextoAgent.start() must configure tool execution context before tools can run."
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
this.setupNotificationListeners();
|
|
40
|
+
this.logger.debug("ToolManager initialized");
|
|
41
|
+
}
|
|
24
42
|
mcpManager;
|
|
25
43
|
agentTools = /* @__PURE__ */ new Map();
|
|
26
44
|
approvalManager;
|
|
@@ -53,6 +71,8 @@ let _ToolManager = class _ToolManager {
|
|
|
53
71
|
// Session-level auto-approve tools set by users (UI)
|
|
54
72
|
sessionUserAutoApproveTools = /* @__PURE__ */ new Map();
|
|
55
73
|
sessionDisabledTools = /* @__PURE__ */ new Map();
|
|
74
|
+
restoredSessionPreferences = /* @__PURE__ */ new Set();
|
|
75
|
+
sessionPreferenceLocks = /* @__PURE__ */ new Map();
|
|
56
76
|
globalDisabledTools = [];
|
|
57
77
|
cleanupHandlers = /* @__PURE__ */ new Set();
|
|
58
78
|
cleanupStarted = false;
|
|
@@ -76,22 +96,76 @@ let _ToolManager = class _ToolManager {
|
|
|
76
96
|
}
|
|
77
97
|
return this.resolveLocalToolIdOrAlias(pattern) ?? pattern;
|
|
78
98
|
}
|
|
79
|
-
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
this.
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
)
|
|
99
|
+
async runWithSessionPreferenceLock(sessionId, fn) {
|
|
100
|
+
const previousLock = this.sessionPreferenceLocks.get(sessionId) ?? Promise.resolve();
|
|
101
|
+
const currentResult = previousLock.catch(() => {
|
|
102
|
+
}).then(() => fn());
|
|
103
|
+
const currentLock = currentResult.then(
|
|
104
|
+
() => void 0,
|
|
105
|
+
() => void 0
|
|
106
|
+
);
|
|
107
|
+
this.sessionPreferenceLocks.set(sessionId, currentLock);
|
|
108
|
+
try {
|
|
109
|
+
return await currentResult;
|
|
110
|
+
} finally {
|
|
111
|
+
if (this.sessionPreferenceLocks.get(sessionId) === currentLock) {
|
|
112
|
+
this.sessionPreferenceLocks.delete(sessionId);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
applySessionToolPreferences(sessionId, preferences) {
|
|
117
|
+
if (preferences.userAutoApproveTools.length > 0) {
|
|
118
|
+
this.sessionUserAutoApproveTools.set(sessionId, [...preferences.userAutoApproveTools]);
|
|
119
|
+
} else {
|
|
120
|
+
this.sessionUserAutoApproveTools.delete(sessionId);
|
|
121
|
+
}
|
|
122
|
+
if (preferences.disabledTools.length > 0) {
|
|
123
|
+
this.sessionDisabledTools.set(sessionId, [...preferences.disabledTools]);
|
|
124
|
+
} else {
|
|
125
|
+
this.sessionDisabledTools.delete(sessionId);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
getSessionToolPreferencesSnapshot(sessionId) {
|
|
129
|
+
return {
|
|
130
|
+
userAutoApproveTools: [...this.sessionUserAutoApproveTools.get(sessionId) ?? []],
|
|
131
|
+
disabledTools: [...this.sessionDisabledTools.get(sessionId) ?? []]
|
|
92
132
|
};
|
|
93
|
-
|
|
94
|
-
|
|
133
|
+
}
|
|
134
|
+
async restoreSessionState(sessionId) {
|
|
135
|
+
if (this.restoredSessionPreferences.has(sessionId)) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
await this.runWithSessionPreferenceLock(sessionId, async () => {
|
|
139
|
+
if (this.restoredSessionPreferences.has(sessionId)) {
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
const preferences = await this.sessionToolPreferencesStore.load(sessionId);
|
|
143
|
+
this.applySessionToolPreferences(sessionId, preferences);
|
|
144
|
+
this.restoredSessionPreferences.add(sessionId);
|
|
145
|
+
this.logger.debug("Restored persisted session tool preferences", {
|
|
146
|
+
sessionId,
|
|
147
|
+
autoApproveCount: preferences.userAutoApproveTools.length,
|
|
148
|
+
disabledCount: preferences.disabledTools.length
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
evictSessionState(sessionId) {
|
|
153
|
+
this.sessionAutoApproveTools.delete(sessionId);
|
|
154
|
+
this.sessionUserAutoApproveTools.delete(sessionId);
|
|
155
|
+
this.sessionDisabledTools.delete(sessionId);
|
|
156
|
+
this.restoredSessionPreferences.delete(sessionId);
|
|
157
|
+
}
|
|
158
|
+
async deleteSessionState(sessionId) {
|
|
159
|
+
await this.runWithSessionPreferenceLock(sessionId, async () => {
|
|
160
|
+
this.evictSessionState(sessionId);
|
|
161
|
+
await this.sessionToolPreferencesStore.delete(sessionId);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
async persistSessionToolPreferences(sessionId) {
|
|
165
|
+
await this.sessionToolPreferencesStore.save(
|
|
166
|
+
sessionId,
|
|
167
|
+
this.getSessionToolPreferencesSnapshot(sessionId)
|
|
168
|
+
);
|
|
95
169
|
}
|
|
96
170
|
/**
|
|
97
171
|
* Initialize the ToolManager and its components
|
|
@@ -248,15 +322,19 @@ let _ToolManager = class _ToolManager {
|
|
|
248
322
|
/**
|
|
249
323
|
* Set session-level auto-approve tools chosen by the user.
|
|
250
324
|
*/
|
|
251
|
-
setSessionUserAutoApproveTools(sessionId, autoApproveTools) {
|
|
325
|
+
async setSessionUserAutoApproveTools(sessionId, autoApproveTools) {
|
|
326
|
+
await this.restoreSessionState(sessionId);
|
|
252
327
|
if (autoApproveTools.length === 0) {
|
|
253
|
-
this.clearSessionUserAutoApproveTools(sessionId);
|
|
328
|
+
await this.clearSessionUserAutoApproveTools(sessionId);
|
|
254
329
|
return;
|
|
255
330
|
}
|
|
256
331
|
const normalized = autoApproveTools.map(
|
|
257
332
|
(pattern) => this.normalizeToolPolicyPattern(pattern)
|
|
258
333
|
);
|
|
259
|
-
this.
|
|
334
|
+
await this.runWithSessionPreferenceLock(sessionId, async () => {
|
|
335
|
+
this.sessionUserAutoApproveTools.set(sessionId, normalized);
|
|
336
|
+
await this.persistSessionToolPreferences(sessionId);
|
|
337
|
+
});
|
|
260
338
|
this.logger.info(
|
|
261
339
|
`Session user auto-approve tools set for '${sessionId}': ${autoApproveTools.length} tools`
|
|
262
340
|
);
|
|
@@ -265,9 +343,14 @@ let _ToolManager = class _ToolManager {
|
|
|
265
343
|
/**
|
|
266
344
|
* Clear session-level auto-approve tools chosen by the user.
|
|
267
345
|
*/
|
|
268
|
-
clearSessionUserAutoApproveTools(sessionId) {
|
|
269
|
-
|
|
270
|
-
|
|
346
|
+
async clearSessionUserAutoApproveTools(sessionId) {
|
|
347
|
+
await this.restoreSessionState(sessionId);
|
|
348
|
+
let hadAutoApprove = false;
|
|
349
|
+
await this.runWithSessionPreferenceLock(sessionId, async () => {
|
|
350
|
+
hadAutoApprove = this.sessionUserAutoApproveTools.has(sessionId);
|
|
351
|
+
this.sessionUserAutoApproveTools.delete(sessionId);
|
|
352
|
+
await this.persistSessionToolPreferences(sessionId);
|
|
353
|
+
});
|
|
271
354
|
if (hadAutoApprove) {
|
|
272
355
|
this.logger.info(`Session user auto-approve tools cleared for '${sessionId}'`);
|
|
273
356
|
}
|
|
@@ -308,12 +391,16 @@ let _ToolManager = class _ToolManager {
|
|
|
308
391
|
/**
|
|
309
392
|
* Set session-level disabled tools (overrides global list).
|
|
310
393
|
*/
|
|
311
|
-
setSessionDisabledTools(sessionId, toolNames) {
|
|
394
|
+
async setSessionDisabledTools(sessionId, toolNames) {
|
|
395
|
+
await this.restoreSessionState(sessionId);
|
|
312
396
|
if (toolNames.length === 0) {
|
|
313
|
-
this.clearSessionDisabledTools(sessionId);
|
|
397
|
+
await this.clearSessionDisabledTools(sessionId);
|
|
314
398
|
return;
|
|
315
399
|
}
|
|
316
|
-
this.
|
|
400
|
+
await this.runWithSessionPreferenceLock(sessionId, async () => {
|
|
401
|
+
this.sessionDisabledTools.set(sessionId, [...toolNames]);
|
|
402
|
+
await this.persistSessionToolPreferences(sessionId);
|
|
403
|
+
});
|
|
317
404
|
this.logger.info("Session disabled tools updated", {
|
|
318
405
|
sessionId,
|
|
319
406
|
count: toolNames.length
|
|
@@ -327,9 +414,14 @@ let _ToolManager = class _ToolManager {
|
|
|
327
414
|
/**
|
|
328
415
|
* Clear session-level disabled tools.
|
|
329
416
|
*/
|
|
330
|
-
clearSessionDisabledTools(sessionId) {
|
|
331
|
-
|
|
332
|
-
|
|
417
|
+
async clearSessionDisabledTools(sessionId) {
|
|
418
|
+
await this.restoreSessionState(sessionId);
|
|
419
|
+
let hadOverrides = false;
|
|
420
|
+
await this.runWithSessionPreferenceLock(sessionId, async () => {
|
|
421
|
+
hadOverrides = this.sessionDisabledTools.has(sessionId);
|
|
422
|
+
this.sessionDisabledTools.delete(sessionId);
|
|
423
|
+
await this.persistSessionToolPreferences(sessionId);
|
|
424
|
+
});
|
|
333
425
|
if (hadOverrides) {
|
|
334
426
|
this.logger.info("Session disabled tools cleared", { sessionId });
|
|
335
427
|
}
|
|
@@ -729,7 +821,7 @@ let _ToolManager = class _ToolManager {
|
|
|
729
821
|
return false;
|
|
730
822
|
}
|
|
731
823
|
if (!patternKey) return false;
|
|
732
|
-
return this.approvalManager.matchesPattern(toolName, patternKey);
|
|
824
|
+
return this.approvalManager.matchesPattern(toolName, patternKey, sessionId);
|
|
733
825
|
},
|
|
734
826
|
{ rememberPattern: void 0 }
|
|
735
827
|
// Don't propagate pattern choice to auto-approved requests
|
|
@@ -760,7 +852,10 @@ let _ToolManager = class _ToolManager {
|
|
|
760
852
|
if (!directoryAccess) {
|
|
761
853
|
return false;
|
|
762
854
|
}
|
|
763
|
-
return this.approvalManager.isDirectorySessionApproved(
|
|
855
|
+
return this.approvalManager.isDirectorySessionApproved(
|
|
856
|
+
directoryAccess.parentDir,
|
|
857
|
+
sessionId
|
|
858
|
+
);
|
|
764
859
|
},
|
|
765
860
|
{ rememberDirectory: false }
|
|
766
861
|
);
|
|
@@ -1410,7 +1505,11 @@ let _ToolManager = class _ToolManager {
|
|
|
1410
1505
|
async tryQuickApprovalResolution(toolName, args, sessionId, directoryAccess) {
|
|
1411
1506
|
if (directoryAccess) {
|
|
1412
1507
|
if (this.approvalMode === "auto-approve") {
|
|
1413
|
-
this.approvalManager.addApprovedDirectory(
|
|
1508
|
+
await this.approvalManager.addApprovedDirectory(
|
|
1509
|
+
directoryAccess.parentDir,
|
|
1510
|
+
"once",
|
|
1511
|
+
sessionId
|
|
1512
|
+
);
|
|
1414
1513
|
return { requireApproval: false };
|
|
1415
1514
|
}
|
|
1416
1515
|
return null;
|
|
@@ -1434,7 +1533,7 @@ let _ToolManager = class _ToolManager {
|
|
|
1434
1533
|
return { requireApproval: false };
|
|
1435
1534
|
}
|
|
1436
1535
|
const patternKey = this.getToolPatternKey(toolName, args);
|
|
1437
|
-
if (patternKey && this.approvalManager.matchesPattern(toolName, patternKey)) {
|
|
1536
|
+
if (patternKey && this.approvalManager.matchesPattern(toolName, patternKey, sessionId)) {
|
|
1438
1537
|
this.logger.info(
|
|
1439
1538
|
`Tool '${toolName}' matched approved pattern key '${patternKey}' \u2013 skipping confirmation.`
|
|
1440
1539
|
);
|
|
@@ -1544,7 +1643,7 @@ let _ToolManager = class _ToolManager {
|
|
|
1544
1643
|
);
|
|
1545
1644
|
this.autoApprovePendingToolRequests(toolName, allowSessionId);
|
|
1546
1645
|
} else if (rememberPattern && this.getToolApprovalPatternKeyFn(toolName)) {
|
|
1547
|
-
this.approvalManager.addPattern(toolName, rememberPattern);
|
|
1646
|
+
await this.approvalManager.addPattern(toolName, rememberPattern, sessionId);
|
|
1548
1647
|
this.logger.info(`Pattern '${rememberPattern}' added for tool '${toolName}' approval`);
|
|
1549
1648
|
this.autoApprovePendingPatternRequests(toolName, sessionId);
|
|
1550
1649
|
} else if (rememberDirectory) {
|
|
@@ -28,7 +28,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var service_initializer_exports = {};
|
|
30
30
|
__export(service_initializer_exports, {
|
|
31
|
-
createAgentServices: () => createAgentServices
|
|
31
|
+
createAgentServices: () => createAgentServices,
|
|
32
|
+
initializeAgentTelemetry: () => initializeAgentTelemetry
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(service_initializer_exports);
|
|
34
35
|
var import_manager = require("../mcp/manager.js");
|
|
@@ -42,14 +43,28 @@ var import_workspace = require("../workspace/index.js");
|
|
|
42
43
|
var import_factory = require("../tools/confirmation/allowed-tools-provider/factory.js");
|
|
43
44
|
var import_manager3 = require("../resources/manager.js");
|
|
44
45
|
var import_manager4 = require("../approval/manager.js");
|
|
46
|
+
var import_session_approval_store = require("../approval/session-approval-store.js");
|
|
45
47
|
var import_memory = require("../memory/index.js");
|
|
46
48
|
var import_manager5 = require("../hooks/manager.js");
|
|
47
|
-
|
|
49
|
+
var import_message_queue_store = require("../session/message-queue-store.js");
|
|
50
|
+
var import_session_tool_preferences_store = require("../tools/session-tool-preferences-store.js");
|
|
51
|
+
async function initializeAgentTelemetry(config, logger, telemetryBootstrap) {
|
|
52
|
+
if (telemetryBootstrap) {
|
|
53
|
+
await telemetryBootstrap({
|
|
54
|
+
agentId: config.agentId,
|
|
55
|
+
config: config.telemetry,
|
|
56
|
+
logger
|
|
57
|
+
});
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
48
60
|
if (config.telemetry?.enabled) {
|
|
49
61
|
const { Telemetry } = await import("../telemetry/telemetry.js");
|
|
50
62
|
await Telemetry.init(config.telemetry);
|
|
51
63
|
logger.debug("Telemetry initialized");
|
|
52
64
|
}
|
|
65
|
+
}
|
|
66
|
+
async function createAgentServices(config, logger, agentEventBus, overrides, compactionStrategy) {
|
|
67
|
+
await initializeAgentTelemetry(config, logger, overrides?.telemetryBootstrap);
|
|
53
68
|
logger.debug("Using pre-created agent event bus");
|
|
54
69
|
logger.debug("Initializing storage manager");
|
|
55
70
|
const storageManager = overrides?.storageManager ?? (() => {
|
|
@@ -62,6 +77,16 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
62
77
|
await storageManager.connect();
|
|
63
78
|
}
|
|
64
79
|
logger.debug("Storage manager initialized", await storageManager.getInfo());
|
|
80
|
+
const sessionCacheTtlMs = config.sessions?.sessionTTL ?? 36e5;
|
|
81
|
+
const sessionApprovalStore = new import_session_approval_store.SessionApprovalStore(storageManager, logger, {
|
|
82
|
+
cacheTtlMs: sessionCacheTtlMs
|
|
83
|
+
});
|
|
84
|
+
const sessionToolPreferencesStore = new import_session_tool_preferences_store.SessionToolPreferencesStore(storageManager, logger, {
|
|
85
|
+
cacheTtlMs: sessionCacheTtlMs
|
|
86
|
+
});
|
|
87
|
+
const messageQueueStore = new import_message_queue_store.MessageQueueStore(storageManager, logger, {
|
|
88
|
+
cacheTtlMs: sessionCacheTtlMs
|
|
89
|
+
});
|
|
65
90
|
const workspaceManager = new import_workspace.WorkspaceManager(
|
|
66
91
|
storageManager.getDatabase(),
|
|
67
92
|
agentEventBus,
|
|
@@ -84,7 +109,8 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
84
109
|
}
|
|
85
110
|
}
|
|
86
111
|
},
|
|
87
|
-
logger
|
|
112
|
+
logger,
|
|
113
|
+
sessionApprovalStore
|
|
88
114
|
);
|
|
89
115
|
logger.debug("Approval system initialized");
|
|
90
116
|
const mcpManager = new import_manager.MCPManager(logger, agentEventBus);
|
|
@@ -142,7 +168,8 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
142
168
|
agentEventBus,
|
|
143
169
|
config.permissions.toolPolicies,
|
|
144
170
|
[],
|
|
145
|
-
logger
|
|
171
|
+
logger,
|
|
172
|
+
sessionToolPreferencesStore
|
|
146
173
|
);
|
|
147
174
|
await toolManager.setWorkspaceManager(workspaceManager);
|
|
148
175
|
const mcpServerCount = Object.keys(config.mcpServers).length;
|
|
@@ -164,6 +191,7 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
164
191
|
stateManager,
|
|
165
192
|
systemPromptManager,
|
|
166
193
|
toolManager,
|
|
194
|
+
approvalManager,
|
|
167
195
|
agentEventBus,
|
|
168
196
|
storageManager,
|
|
169
197
|
// Add storage manager to session services
|
|
@@ -173,6 +201,7 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
173
201
|
// Add hook manager for hook execution
|
|
174
202
|
mcpManager,
|
|
175
203
|
// Add MCP manager for ChatSession
|
|
204
|
+
messageQueueStore,
|
|
176
205
|
compactionStrategy: compactionStrategy ?? null,
|
|
177
206
|
workspaceManager
|
|
178
207
|
// Workspace context propagation
|
|
@@ -182,6 +211,9 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
182
211
|
sessionTTL: config.sessions?.sessionTTL,
|
|
183
212
|
...overrides?.sessionLoggerFactory !== void 0 && {
|
|
184
213
|
sessionLoggerFactory: overrides.sessionLoggerFactory
|
|
214
|
+
},
|
|
215
|
+
...overrides?.languageModelFactory !== void 0 && {
|
|
216
|
+
languageModelFactory: overrides.languageModelFactory
|
|
185
217
|
}
|
|
186
218
|
},
|
|
187
219
|
logger
|
|
@@ -208,5 +240,6 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
208
240
|
}
|
|
209
241
|
// Annotate the CommonJS export names for ESM import in node:
|
|
210
242
|
0 && (module.exports = {
|
|
211
|
-
createAgentServices
|
|
243
|
+
createAgentServices,
|
|
244
|
+
initializeAgentTelemetry
|
|
212
245
|
});
|
|
@@ -18,6 +18,7 @@ import { MemoryManager } from '../memory/index.js';
|
|
|
18
18
|
import { HookManager } from '../hooks/manager.js';
|
|
19
19
|
import type { Hook } from '../hooks/types.js';
|
|
20
20
|
import type { CompactionStrategy } from '../context/compaction/types.js';
|
|
21
|
+
import type { LanguageModelFactory } from '../llm/services/types.js';
|
|
21
22
|
/**
|
|
22
23
|
* Type for the core agent services returned by createAgentServices
|
|
23
24
|
*/
|
|
@@ -48,20 +49,29 @@ export type ToolManagerFactoryOptions = {
|
|
|
48
49
|
};
|
|
49
50
|
export type ToolManagerFactory = (options: ToolManagerFactoryOptions) => ToolManager;
|
|
50
51
|
export type ToolkitLoader = (toolkits: string[]) => Promise<Tool[]>;
|
|
52
|
+
export type TelemetryBootstrapContext = Readonly<{
|
|
53
|
+
agentId: string;
|
|
54
|
+
config: AgentRuntimeSettings['telemetry'];
|
|
55
|
+
logger: Logger;
|
|
56
|
+
}>;
|
|
57
|
+
export type TelemetryBootstrap = (context: TelemetryBootstrapContext) => Promise<void> | void;
|
|
51
58
|
export type InitializeServicesOptions = {
|
|
52
59
|
sessionLoggerFactory?: import('../session/session-manager.js').SessionLoggerFactory;
|
|
60
|
+
languageModelFactory?: LanguageModelFactory;
|
|
53
61
|
mcpAuthProviderFactory?: import('../mcp/types.js').McpAuthProviderFactory | null;
|
|
54
62
|
toolManager?: ToolManager;
|
|
55
63
|
toolManagerFactory?: ToolManagerFactory;
|
|
56
64
|
storageManager?: StorageManager;
|
|
57
65
|
hooks?: Hook[] | undefined;
|
|
66
|
+
telemetryBootstrap?: TelemetryBootstrap | undefined;
|
|
58
67
|
};
|
|
68
|
+
export declare function initializeAgentTelemetry(config: AgentRuntimeSettings, logger: Logger, telemetryBootstrap?: TelemetryBootstrap | undefined): Promise<void>;
|
|
59
69
|
/**
|
|
60
70
|
* Initializes all agent services from a validated configuration.
|
|
61
71
|
* @param config The validated agent configuration object
|
|
62
72
|
* @param logger Logger instance for this agent (dependency injection)
|
|
63
73
|
* @param agentEventBus Pre-created event bus from DextoAgent constructor
|
|
64
|
-
* @param overrides Optional service overrides for customization (e.g., sessionLoggerFactory)
|
|
74
|
+
* @param overrides Optional service overrides for customization (e.g., sessionLoggerFactory, languageModelFactory)
|
|
65
75
|
* @returns All the initialized services required for a Dexto agent
|
|
66
76
|
*/
|
|
67
77
|
export declare function createAgentServices(config: AgentRuntimeSettings, logger: Logger, agentEventBus: AgentEventBus, overrides?: InitializeServicesOptions, compactionStrategy?: CompactionStrategy | null | undefined): Promise<AgentServices>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-initializer.d.ts","sourceRoot":"","sources":["../../src/utils/service-initializer.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"service-initializer.d.ts","sourceRoot":"","sources":["../../src/utils/service-initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,14 +10,28 @@ import { WorkspaceManager } from "../workspace/index.js";
|
|
|
10
10
|
import { createAllowedToolsProvider } from "../tools/confirmation/allowed-tools-provider/factory.js";
|
|
11
11
|
import { ResourceManager } from "../resources/manager.js";
|
|
12
12
|
import { ApprovalManager } from "../approval/manager.js";
|
|
13
|
+
import { SessionApprovalStore } from "../approval/session-approval-store.js";
|
|
13
14
|
import { MemoryManager } from "../memory/index.js";
|
|
14
15
|
import { HookManager } from "../hooks/manager.js";
|
|
15
|
-
|
|
16
|
+
import { MessageQueueStore } from "../session/message-queue-store.js";
|
|
17
|
+
import { SessionToolPreferencesStore } from "../tools/session-tool-preferences-store.js";
|
|
18
|
+
async function initializeAgentTelemetry(config, logger, telemetryBootstrap) {
|
|
19
|
+
if (telemetryBootstrap) {
|
|
20
|
+
await telemetryBootstrap({
|
|
21
|
+
agentId: config.agentId,
|
|
22
|
+
config: config.telemetry,
|
|
23
|
+
logger
|
|
24
|
+
});
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
16
27
|
if (config.telemetry?.enabled) {
|
|
17
28
|
const { Telemetry } = await import("../telemetry/telemetry.js");
|
|
18
29
|
await Telemetry.init(config.telemetry);
|
|
19
30
|
logger.debug("Telemetry initialized");
|
|
20
31
|
}
|
|
32
|
+
}
|
|
33
|
+
async function createAgentServices(config, logger, agentEventBus, overrides, compactionStrategy) {
|
|
34
|
+
await initializeAgentTelemetry(config, logger, overrides?.telemetryBootstrap);
|
|
21
35
|
logger.debug("Using pre-created agent event bus");
|
|
22
36
|
logger.debug("Initializing storage manager");
|
|
23
37
|
const storageManager = overrides?.storageManager ?? (() => {
|
|
@@ -30,6 +44,16 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
30
44
|
await storageManager.connect();
|
|
31
45
|
}
|
|
32
46
|
logger.debug("Storage manager initialized", await storageManager.getInfo());
|
|
47
|
+
const sessionCacheTtlMs = config.sessions?.sessionTTL ?? 36e5;
|
|
48
|
+
const sessionApprovalStore = new SessionApprovalStore(storageManager, logger, {
|
|
49
|
+
cacheTtlMs: sessionCacheTtlMs
|
|
50
|
+
});
|
|
51
|
+
const sessionToolPreferencesStore = new SessionToolPreferencesStore(storageManager, logger, {
|
|
52
|
+
cacheTtlMs: sessionCacheTtlMs
|
|
53
|
+
});
|
|
54
|
+
const messageQueueStore = new MessageQueueStore(storageManager, logger, {
|
|
55
|
+
cacheTtlMs: sessionCacheTtlMs
|
|
56
|
+
});
|
|
33
57
|
const workspaceManager = new WorkspaceManager(
|
|
34
58
|
storageManager.getDatabase(),
|
|
35
59
|
agentEventBus,
|
|
@@ -52,7 +76,8 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
52
76
|
}
|
|
53
77
|
}
|
|
54
78
|
},
|
|
55
|
-
logger
|
|
79
|
+
logger,
|
|
80
|
+
sessionApprovalStore
|
|
56
81
|
);
|
|
57
82
|
logger.debug("Approval system initialized");
|
|
58
83
|
const mcpManager = new MCPManager(logger, agentEventBus);
|
|
@@ -110,7 +135,8 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
110
135
|
agentEventBus,
|
|
111
136
|
config.permissions.toolPolicies,
|
|
112
137
|
[],
|
|
113
|
-
logger
|
|
138
|
+
logger,
|
|
139
|
+
sessionToolPreferencesStore
|
|
114
140
|
);
|
|
115
141
|
await toolManager.setWorkspaceManager(workspaceManager);
|
|
116
142
|
const mcpServerCount = Object.keys(config.mcpServers).length;
|
|
@@ -132,6 +158,7 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
132
158
|
stateManager,
|
|
133
159
|
systemPromptManager,
|
|
134
160
|
toolManager,
|
|
161
|
+
approvalManager,
|
|
135
162
|
agentEventBus,
|
|
136
163
|
storageManager,
|
|
137
164
|
// Add storage manager to session services
|
|
@@ -141,6 +168,7 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
141
168
|
// Add hook manager for hook execution
|
|
142
169
|
mcpManager,
|
|
143
170
|
// Add MCP manager for ChatSession
|
|
171
|
+
messageQueueStore,
|
|
144
172
|
compactionStrategy: compactionStrategy ?? null,
|
|
145
173
|
workspaceManager
|
|
146
174
|
// Workspace context propagation
|
|
@@ -150,6 +178,9 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
150
178
|
sessionTTL: config.sessions?.sessionTTL,
|
|
151
179
|
...overrides?.sessionLoggerFactory !== void 0 && {
|
|
152
180
|
sessionLoggerFactory: overrides.sessionLoggerFactory
|
|
181
|
+
},
|
|
182
|
+
...overrides?.languageModelFactory !== void 0 && {
|
|
183
|
+
languageModelFactory: overrides.languageModelFactory
|
|
153
184
|
}
|
|
154
185
|
},
|
|
155
186
|
logger
|
|
@@ -175,5 +206,6 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
|
|
|
175
206
|
};
|
|
176
207
|
}
|
|
177
208
|
export {
|
|
178
|
-
createAgentServices
|
|
209
|
+
createAgentServices,
|
|
210
|
+
initializeAgentTelemetry
|
|
179
211
|
};
|