@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.
Files changed (72) hide show
  1. package/dist/agent/DextoAgent.cjs +27 -14
  2. package/dist/agent/DextoAgent.d.ts +7 -6
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +27 -14
  5. package/dist/approval/manager.cjs +328 -178
  6. package/dist/approval/manager.d.ts +39 -31
  7. package/dist/approval/manager.d.ts.map +1 -1
  8. package/dist/approval/manager.js +328 -178
  9. package/dist/approval/session-approval-store.cjs +91 -0
  10. package/dist/approval/session-approval-store.d.ts +55 -0
  11. package/dist/approval/session-approval-store.d.ts.map +1 -0
  12. package/dist/approval/session-approval-store.js +68 -0
  13. package/dist/llm/executor/turn-executor.cjs +7 -3
  14. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  15. package/dist/llm/executor/turn-executor.js +7 -3
  16. package/dist/llm/services/factory.cjs +10 -4
  17. package/dist/llm/services/factory.d.ts +2 -21
  18. package/dist/llm/services/factory.d.ts.map +1 -1
  19. package/dist/llm/services/factory.js +11 -7
  20. package/dist/llm/services/types.d.ts +33 -2
  21. package/dist/llm/services/types.d.ts.map +1 -1
  22. package/dist/llm/services/vercel.cjs +4 -5
  23. package/dist/llm/services/vercel.d.ts +3 -3
  24. package/dist/llm/services/vercel.d.ts.map +1 -1
  25. package/dist/llm/services/vercel.js +2 -3
  26. package/dist/logger/default-logger-factory.d.ts +12 -12
  27. package/dist/logger/v2/schemas.d.ts +6 -6
  28. package/dist/mcp/schemas.d.ts +10 -10
  29. package/dist/session/chat-session.cjs +39 -41
  30. package/dist/session/chat-session.d.ts +22 -12
  31. package/dist/session/chat-session.d.ts.map +1 -1
  32. package/dist/session/chat-session.js +39 -41
  33. package/dist/session/message-queue-store.cjs +75 -0
  34. package/dist/session/message-queue-store.d.ts +16 -0
  35. package/dist/session/message-queue-store.d.ts.map +1 -0
  36. package/dist/session/message-queue-store.js +52 -0
  37. package/dist/session/message-queue.cjs +140 -46
  38. package/dist/session/message-queue.d.ts +18 -6
  39. package/dist/session/message-queue.d.ts.map +1 -1
  40. package/dist/session/message-queue.js +140 -46
  41. package/dist/session/session-manager.cjs +130 -25
  42. package/dist/session/session-manager.d.ts +18 -1
  43. package/dist/session/session-manager.d.ts.map +1 -1
  44. package/dist/session/session-manager.js +130 -25
  45. package/dist/session/title-generator.cjs +9 -2
  46. package/dist/session/title-generator.d.ts +2 -0
  47. package/dist/session/title-generator.d.ts.map +1 -1
  48. package/dist/session/title-generator.js +9 -2
  49. package/dist/telemetry/errors.cjs +2 -2
  50. package/dist/telemetry/errors.js +2 -2
  51. package/dist/telemetry/index.d.ts +1 -1
  52. package/dist/telemetry/index.d.ts.map +1 -1
  53. package/dist/telemetry/index.js +3 -1
  54. package/dist/telemetry/telemetry.cjs +62 -21
  55. package/dist/telemetry/telemetry.d.ts +14 -0
  56. package/dist/telemetry/telemetry.d.ts.map +1 -1
  57. package/dist/telemetry/telemetry.js +62 -21
  58. package/dist/test-utils/session-state-stores.cjs +68 -0
  59. package/dist/test-utils/session-state-stores.js +42 -0
  60. package/dist/tools/session-tool-preferences-store.cjs +86 -0
  61. package/dist/tools/session-tool-preferences-store.d.ts +29 -0
  62. package/dist/tools/session-tool-preferences-store.d.ts.map +1 -0
  63. package/dist/tools/session-tool-preferences-store.js +63 -0
  64. package/dist/tools/tool-manager.cjs +131 -32
  65. package/dist/tools/tool-manager.d.ts +17 -6
  66. package/dist/tools/tool-manager.d.ts.map +1 -1
  67. package/dist/tools/tool-manager.js +131 -32
  68. package/dist/utils/service-initializer.cjs +38 -5
  69. package/dist/utils/service-initializer.d.ts +11 -1
  70. package/dist/utils/service-initializer.d.ts.map +1 -1
  71. package/dist/utils/service-initializer.js +36 -4
  72. 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
- * LLMService → ToolManager → [MCPManager, local tools]
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":"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"}
1
+ {"version":3,"file":"tool-manager.d.ts","sourceRoot":"","sources":["../../src/tools/tool-manager.ts"],"names":[],"mappings":"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"}
@@ -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
- constructor(mcpManager, approvalManager, allowedToolsProvider, approvalMode, agentEventBus, toolPolicies, tools, logger) {
80
- this.mcpManager = mcpManager;
81
- this.approvalManager = approvalManager;
82
- this.allowedToolsProvider = allowedToolsProvider;
83
- this.approvalMode = approvalMode;
84
- this.agentEventBus = agentEventBus;
85
- this.toolPolicies = toolPolicies;
86
- this.logger = logger.createChild(DextoLogComponent.TOOLS);
87
- this.setTools(tools);
88
- this.toolExecutionContextFactory = () => {
89
- throw ToolError.configInvalid(
90
- "ToolExecutionContextFactory not configured. DextoAgent.start() must configure tool execution context before tools can run."
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
- this.setupNotificationListeners();
94
- this.logger.debug("ToolManager initialized");
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.sessionUserAutoApproveTools.set(sessionId, normalized);
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
- const hadAutoApprove = this.sessionUserAutoApproveTools.has(sessionId);
270
- this.sessionUserAutoApproveTools.delete(sessionId);
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.sessionDisabledTools.set(sessionId, [...toolNames]);
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
- const hadOverrides = this.sessionDisabledTools.has(sessionId);
332
- this.sessionDisabledTools.delete(sessionId);
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(directoryAccess.parentDir);
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(directoryAccess.parentDir, "once");
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
- async function createAgentServices(config, logger, agentEventBus, overrides, compactionStrategy) {
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":"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"}
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
- async function createAgentServices(config, logger, agentEventBus, overrides, compactionStrategy) {
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
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/core",
3
- "version": "1.6.25",
3
+ "version": "1.6.26",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",