@dexto/core 1.6.14 → 1.6.15

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.
@@ -1466,7 +1466,7 @@ Either:
1466
1466
  this.logger.debug(`Compaction skipped for session ${sessionId} - history too short`);
1467
1467
  return null;
1468
1468
  }
1469
- const contributorContext = await this.toolManager.buildContributorContext();
1469
+ const contributorContext = await this.toolManager.buildContributorContext({ sessionId });
1470
1470
  const tools = await llmService.getEnabledTools();
1471
1471
  const beforeEstimate = await contextManager.getContextTokenEstimate(
1472
1472
  contributorContext,
@@ -1544,7 +1544,7 @@ Either:
1544
1544
  throw import_session.SessionError.notFound(sessionId);
1545
1545
  }
1546
1546
  const contextManager = session.getContextManager();
1547
- const contributorContext = await this.toolManager.buildContributorContext();
1547
+ const contributorContext = await this.toolManager.buildContributorContext({ sessionId });
1548
1548
  const llmService = session.getLLMService();
1549
1549
  const tools = await llmService.getEnabledTools();
1550
1550
  const tokenEstimate = await contextManager.getContextTokenEstimate(
@@ -1401,7 +1401,7 @@ Either:
1401
1401
  this.logger.debug(`Compaction skipped for session ${sessionId} - history too short`);
1402
1402
  return null;
1403
1403
  }
1404
- const contributorContext = await this.toolManager.buildContributorContext();
1404
+ const contributorContext = await this.toolManager.buildContributorContext({ sessionId });
1405
1405
  const tools = await llmService.getEnabledTools();
1406
1406
  const beforeEstimate = await contextManager.getContextTokenEstimate(
1407
1407
  contributorContext,
@@ -1479,7 +1479,7 @@ Either:
1479
1479
  throw SessionError.notFound(sessionId);
1480
1480
  }
1481
1481
  const contextManager = session.getContextManager();
1482
- const contributorContext = await this.toolManager.buildContributorContext();
1482
+ const contributorContext = await this.toolManager.buildContributorContext({ sessionId });
1483
1483
  const llmService = session.getLLMService();
1484
1484
  const tools = await llmService.getEnabledTools();
1485
1485
  const tokenEstimate = await contextManager.getContextTokenEstimate(
@@ -781,10 +781,6 @@ export declare const AgentCardSchema: z.ZodObject<{
781
781
  stateTransitionHistory: boolean;
782
782
  pushNotifications?: boolean | undefined;
783
783
  };
784
- protocolVersion: string;
785
- preferredTransport: "JSONRPC" | "GRPC" | "HTTP+JSON";
786
- defaultInputModes: string[];
787
- defaultOutputModes: string[];
788
784
  skills: {
789
785
  description: string;
790
786
  name: string;
@@ -794,6 +790,10 @@ export declare const AgentCardSchema: z.ZodObject<{
794
790
  outputModes: string[];
795
791
  examples?: string[] | undefined;
796
792
  }[];
793
+ protocolVersion: string;
794
+ preferredTransport: "JSONRPC" | "GRPC" | "HTTP+JSON";
795
+ defaultInputModes: string[];
796
+ defaultOutputModes: string[];
797
797
  metadata?: z.objectOutputType<{
798
798
  dexto: z.ZodOptional<z.ZodObject<{
799
799
  authentication: z.ZodOptional<z.ZodObject<{
@@ -1021,10 +1021,6 @@ export declare const AgentCardSchema: z.ZodObject<{
1021
1021
  url: string;
1022
1022
  organization: string;
1023
1023
  } | undefined;
1024
- protocolVersion?: string | undefined;
1025
- preferredTransport?: "JSONRPC" | "GRPC" | "HTTP+JSON" | undefined;
1026
- defaultInputModes?: string[] | undefined;
1027
- defaultOutputModes?: string[] | undefined;
1028
1024
  skills?: {
1029
1025
  description: string;
1030
1026
  name: string;
@@ -1034,6 +1030,10 @@ export declare const AgentCardSchema: z.ZodObject<{
1034
1030
  inputModes?: string[] | undefined;
1035
1031
  outputModes?: string[] | undefined;
1036
1032
  }[] | undefined;
1033
+ protocolVersion?: string | undefined;
1034
+ preferredTransport?: "JSONRPC" | "GRPC" | "HTTP+JSON" | undefined;
1035
+ defaultInputModes?: string[] | undefined;
1036
+ defaultOutputModes?: string[] | undefined;
1037
1037
  iconUrl?: string | undefined;
1038
1038
  documentationUrl?: string | undefined;
1039
1039
  additionalInterfaces?: {
@@ -199,7 +199,9 @@ class VercelLLMService {
199
199
  const parts = typeof content === "string" ? [{ type: "text", text: content }] : content;
200
200
  await this.contextManager.addUserMessage(parts);
201
201
  const executor = this.createTurnExecutor(options?.signal);
202
- const contributorContext = await this.toolManager.buildContributorContext();
202
+ const contributorContext = await this.toolManager.buildContributorContext({
203
+ sessionId: this.sessionId
204
+ });
203
205
  const result = await executor.execute(contributorContext, true);
204
206
  return {
205
207
  text: result.text ?? ""
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,kBAAkB,CAEf;IACX,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,2BAA2B,EAC5C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,kBAAkB,GAAG,IAAI;IAuC9F,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAc,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C;;;;;;;OAOG;IACG,MAAM,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAwD5B;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;IAItC;;OAEG;IACH,qBAAqB,IAAI,OAAO,mCAAmC,EAAE,kBAAkB,GAAG,IAAI;IAI9F,gBAAgB,IAAI,aAAa;CAGpC"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAI1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,kBAAkB,CAEf;IACX,OAAO,CAAC,WAAW,CAAC,CAAc;IAElC;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,2BAA2B,EAC5C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,kBAAkB,GAAG,IAAI;IAuC9F,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAc,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C;;;;;;;OAOG;IACG,MAAM,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IA0D5B;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;IAItC;;OAEG;IACH,qBAAqB,IAAI,OAAO,mCAAmC,EAAE,kBAAkB,GAAG,IAAI;IAI9F,gBAAgB,IAAI,aAAa;CAGpC"}
@@ -136,7 +136,9 @@ class VercelLLMService {
136
136
  const parts = typeof content === "string" ? [{ type: "text", text: content }] : content;
137
137
  await this.contextManager.addUserMessage(parts);
138
138
  const executor = this.createTurnExecutor(options?.signal);
139
- const contributorContext = await this.toolManager.buildContributorContext();
139
+ const contributorContext = await this.toolManager.buildContributorContext({
140
+ sessionId: this.sessionId
141
+ });
140
142
  const result = await executor.execute(contributorContext, true);
141
143
  return {
142
144
  text: result.text ?? ""
@@ -6,10 +6,14 @@ export type EnvironmentContext = {
6
6
  shell?: string;
7
7
  isGitRepo?: boolean;
8
8
  };
9
+ export type SessionContext = {
10
+ id: string;
11
+ };
9
12
  export interface DynamicContributorContext {
10
13
  mcpManager: MCPManager;
11
14
  workspace?: WorkspaceContext | null;
12
15
  environment?: EnvironmentContext;
16
+ session?: SessionContext | null;
13
17
  }
14
18
  export type DynamicContributorContextOverrides = Partial<DynamicContributorContext>;
15
19
  export type DynamicContributorContextFactory = () => DynamicContributorContextOverrides | Promise<DynamicContributorContextOverrides>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/systemPrompt/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAGF,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,MAAM,kCAAkC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACpF,MAAM,MAAM,gCAAgC,GAAG,MACzC,kCAAkC,GAClC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAGlD,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/systemPrompt/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;CACd,CAAC;AAGF,MAAM,WAAW,yBAAyB;IACtC,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,MAAM,kCAAkC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACpF,MAAM,MAAM,gCAAgC,GAAG,MACzC,kCAAkC,GAClC,OAAO,CAAC,kCAAkC,CAAC,CAAC;AAGlD,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE"}
@@ -214,15 +214,15 @@ let _ToolManager = class _ToolManager {
214
214
  /**
215
215
  * Set workspace manager for tool execution context propagation.
216
216
  */
217
- setWorkspaceManager(workspaceManager) {
217
+ async setWorkspaceManager(workspaceManager) {
218
218
  this.workspaceManager = workspaceManager;
219
- void this.refreshWorkspace();
220
219
  if (!this.workspaceListenerAttached) {
221
220
  this.workspaceListenerAttached = true;
222
221
  this.agentEventBus.on(
223
222
  "workspace:changed",
224
223
  (payload) => {
225
224
  this.currentWorkspace = payload.workspace ?? void 0;
225
+ this.invalidateCache();
226
226
  },
227
227
  { signal: this.workspaceListenerAbort.signal }
228
228
  );
@@ -232,6 +232,7 @@ let _ToolManager = class _ToolManager {
232
232
  }
233
233
  });
234
234
  }
235
+ await this.refreshWorkspace();
235
236
  this.logger.debug("WorkspaceManager reference configured for ToolManager");
236
237
  }
237
238
  async refreshWorkspace() {
@@ -239,7 +240,11 @@ let _ToolManager = class _ToolManager {
239
240
  return;
240
241
  }
241
242
  try {
243
+ const previousWorkspacePath = this.currentWorkspace?.path;
242
244
  this.currentWorkspace = await this.workspaceManager.getWorkspace();
245
+ if (previousWorkspacePath !== this.currentWorkspace?.path) {
246
+ this.invalidateCache();
247
+ }
243
248
  } catch (error) {
244
249
  this.logger.debug(
245
250
  `Failed to refresh workspace context: ${error instanceof Error ? error.message : String(error)}`
@@ -465,6 +470,31 @@ let _ToolManager = class _ToolManager {
465
470
  this.cacheValid = false;
466
471
  this.toolsCache = {};
467
472
  }
473
+ async refreshDynamicToolDescriptions() {
474
+ if (!this.cacheValid) {
475
+ return;
476
+ }
477
+ for (const [toolName, tool] of this.agentTools) {
478
+ if (!tool.getDescription) {
479
+ continue;
480
+ }
481
+ const cachedTool = this.toolsCache[toolName];
482
+ if (!cachedTool) {
483
+ continue;
484
+ }
485
+ try {
486
+ const fallbackDescription = tool.description.trim() ? tool.description : "";
487
+ const dynamicDescription = await tool.getDescription(
488
+ this.buildToolExecutionContext({})
489
+ );
490
+ cachedTool.description = dynamicDescription.trim() ? dynamicDescription : fallbackDescription;
491
+ } catch (error) {
492
+ this.logger.warn(
493
+ `Failed to refresh dynamic description for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
494
+ );
495
+ }
496
+ }
497
+ }
468
498
  /**
469
499
  * Set up listeners for MCP notifications to invalidate cache on changes
470
500
  */
@@ -807,11 +837,13 @@ let _ToolManager = class _ToolManager {
807
837
  setContributorContextFactory(factory) {
808
838
  this.contributorContextFactory = factory ?? void 0;
809
839
  }
810
- async buildContributorContext() {
840
+ async buildContributorContext(options) {
811
841
  const baseWorkspace = this.currentWorkspace ?? null;
842
+ const sessionId = typeof options?.sessionId === "string" && options.sessionId.length > 0 ? options.sessionId : void 0;
812
843
  const baseContext = {
813
844
  mcpManager: this.mcpManager,
814
- workspace: baseWorkspace
845
+ workspace: baseWorkspace,
846
+ ...sessionId !== void 0 ? { session: { id: sessionId } } : {}
815
847
  };
816
848
  if (!this.contributorContextFactory) {
817
849
  return baseContext;
@@ -820,11 +852,13 @@ let _ToolManager = class _ToolManager {
820
852
  const overrides = await this.contributorContextFactory() ?? {};
821
853
  const workspace = overrides.workspace !== void 0 ? overrides.workspace : baseWorkspace;
822
854
  const environment = overrides.environment !== void 0 ? overrides.environment : baseContext.environment;
855
+ const session = overrides.session !== void 0 ? overrides.session : baseContext.session;
823
856
  const mcpManager = overrides.mcpManager ?? baseContext.mcpManager;
824
857
  return {
825
858
  mcpManager,
826
859
  workspace,
827
- ...environment !== void 0 ? { environment } : {}
860
+ ...environment !== void 0 ? { environment } : {},
861
+ ...session !== void 0 ? { session } : {}
828
862
  };
829
863
  } catch (error) {
830
864
  this.logger.warn(
@@ -921,9 +955,24 @@ let _ToolManager = class _ToolManager {
921
955
  mcpTools = {};
922
956
  }
923
957
  for (const [toolName, tool] of this.agentTools) {
958
+ let description = tool.description || "No description provided";
959
+ if (tool.getDescription) {
960
+ try {
961
+ const dynamicDescription = await tool.getDescription(
962
+ this.buildToolExecutionContext({})
963
+ );
964
+ if (dynamicDescription.trim()) {
965
+ description = dynamicDescription;
966
+ }
967
+ } catch (error) {
968
+ this.logger.warn(
969
+ `Failed to build dynamic description for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
970
+ );
971
+ }
972
+ }
924
973
  allTools[toolName] = {
925
974
  name: toolName,
926
- description: tool.description || "No description provided",
975
+ description,
927
976
  parameters: (0, import_tool_call_metadata.wrapToolParametersSchema)(
928
977
  (0, import_schema.convertZodSchemaToJsonSchema)(tool.inputSchema, this.logger)
929
978
  )
@@ -953,6 +1002,7 @@ let _ToolManager = class _ToolManager {
953
1002
  */
954
1003
  async getAllTools() {
955
1004
  if (this.cacheValid) {
1005
+ await this.refreshDynamicToolDescriptions();
956
1006
  return this.toolsCache;
957
1007
  }
958
1008
  this.toolsCache = await this.buildAllTools();
@@ -83,7 +83,7 @@ export declare class ToolManager {
83
83
  /**
84
84
  * Set workspace manager for tool execution context propagation.
85
85
  */
86
- setWorkspaceManager(workspaceManager: WorkspaceManager): void;
86
+ setWorkspaceManager(workspaceManager: WorkspaceManager): Promise<void>;
87
87
  private refreshWorkspace;
88
88
  /**
89
89
  * Set session-level auto-approve tools.
@@ -174,6 +174,7 @@ export declare class ToolManager {
174
174
  * Invalidate the tools cache when tool sources change
175
175
  */
176
176
  private invalidateCache;
177
+ private refreshDynamicToolDescriptions;
177
178
  /**
178
179
  * Set up listeners for MCP notifications to invalidate cache on changes
179
180
  */
@@ -213,7 +214,9 @@ export declare class ToolManager {
213
214
  private autoApprovePendingDirectoryRequests;
214
215
  getMcpManager(): MCPManager;
215
216
  setContributorContextFactory(factory?: DynamicContributorContextFactory | null): void;
216
- buildContributorContext(): Promise<DynamicContributorContext>;
217
+ buildContributorContext(options?: {
218
+ sessionId?: string | null;
219
+ }): Promise<DynamicContributorContext>;
217
220
  /**
218
221
  * Get all MCP tools (delegates to mcpManager.getAllTools())
219
222
  * This provides access to MCP tools while maintaining separation of concerns
@@ -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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"}
@@ -151,15 +151,15 @@ let _ToolManager = class _ToolManager {
151
151
  /**
152
152
  * Set workspace manager for tool execution context propagation.
153
153
  */
154
- setWorkspaceManager(workspaceManager) {
154
+ async setWorkspaceManager(workspaceManager) {
155
155
  this.workspaceManager = workspaceManager;
156
- void this.refreshWorkspace();
157
156
  if (!this.workspaceListenerAttached) {
158
157
  this.workspaceListenerAttached = true;
159
158
  this.agentEventBus.on(
160
159
  "workspace:changed",
161
160
  (payload) => {
162
161
  this.currentWorkspace = payload.workspace ?? void 0;
162
+ this.invalidateCache();
163
163
  },
164
164
  { signal: this.workspaceListenerAbort.signal }
165
165
  );
@@ -169,6 +169,7 @@ let _ToolManager = class _ToolManager {
169
169
  }
170
170
  });
171
171
  }
172
+ await this.refreshWorkspace();
172
173
  this.logger.debug("WorkspaceManager reference configured for ToolManager");
173
174
  }
174
175
  async refreshWorkspace() {
@@ -176,7 +177,11 @@ let _ToolManager = class _ToolManager {
176
177
  return;
177
178
  }
178
179
  try {
180
+ const previousWorkspacePath = this.currentWorkspace?.path;
179
181
  this.currentWorkspace = await this.workspaceManager.getWorkspace();
182
+ if (previousWorkspacePath !== this.currentWorkspace?.path) {
183
+ this.invalidateCache();
184
+ }
180
185
  } catch (error) {
181
186
  this.logger.debug(
182
187
  `Failed to refresh workspace context: ${error instanceof Error ? error.message : String(error)}`
@@ -402,6 +407,31 @@ let _ToolManager = class _ToolManager {
402
407
  this.cacheValid = false;
403
408
  this.toolsCache = {};
404
409
  }
410
+ async refreshDynamicToolDescriptions() {
411
+ if (!this.cacheValid) {
412
+ return;
413
+ }
414
+ for (const [toolName, tool] of this.agentTools) {
415
+ if (!tool.getDescription) {
416
+ continue;
417
+ }
418
+ const cachedTool = this.toolsCache[toolName];
419
+ if (!cachedTool) {
420
+ continue;
421
+ }
422
+ try {
423
+ const fallbackDescription = tool.description.trim() ? tool.description : "";
424
+ const dynamicDescription = await tool.getDescription(
425
+ this.buildToolExecutionContext({})
426
+ );
427
+ cachedTool.description = dynamicDescription.trim() ? dynamicDescription : fallbackDescription;
428
+ } catch (error) {
429
+ this.logger.warn(
430
+ `Failed to refresh dynamic description for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
431
+ );
432
+ }
433
+ }
434
+ }
405
435
  /**
406
436
  * Set up listeners for MCP notifications to invalidate cache on changes
407
437
  */
@@ -744,11 +774,13 @@ let _ToolManager = class _ToolManager {
744
774
  setContributorContextFactory(factory) {
745
775
  this.contributorContextFactory = factory ?? void 0;
746
776
  }
747
- async buildContributorContext() {
777
+ async buildContributorContext(options) {
748
778
  const baseWorkspace = this.currentWorkspace ?? null;
779
+ const sessionId = typeof options?.sessionId === "string" && options.sessionId.length > 0 ? options.sessionId : void 0;
749
780
  const baseContext = {
750
781
  mcpManager: this.mcpManager,
751
- workspace: baseWorkspace
782
+ workspace: baseWorkspace,
783
+ ...sessionId !== void 0 ? { session: { id: sessionId } } : {}
752
784
  };
753
785
  if (!this.contributorContextFactory) {
754
786
  return baseContext;
@@ -757,11 +789,13 @@ let _ToolManager = class _ToolManager {
757
789
  const overrides = await this.contributorContextFactory() ?? {};
758
790
  const workspace = overrides.workspace !== void 0 ? overrides.workspace : baseWorkspace;
759
791
  const environment = overrides.environment !== void 0 ? overrides.environment : baseContext.environment;
792
+ const session = overrides.session !== void 0 ? overrides.session : baseContext.session;
760
793
  const mcpManager = overrides.mcpManager ?? baseContext.mcpManager;
761
794
  return {
762
795
  mcpManager,
763
796
  workspace,
764
- ...environment !== void 0 ? { environment } : {}
797
+ ...environment !== void 0 ? { environment } : {},
798
+ ...session !== void 0 ? { session } : {}
765
799
  };
766
800
  } catch (error) {
767
801
  this.logger.warn(
@@ -858,9 +892,24 @@ let _ToolManager = class _ToolManager {
858
892
  mcpTools = {};
859
893
  }
860
894
  for (const [toolName, tool] of this.agentTools) {
895
+ let description = tool.description || "No description provided";
896
+ if (tool.getDescription) {
897
+ try {
898
+ const dynamicDescription = await tool.getDescription(
899
+ this.buildToolExecutionContext({})
900
+ );
901
+ if (dynamicDescription.trim()) {
902
+ description = dynamicDescription;
903
+ }
904
+ } catch (error) {
905
+ this.logger.warn(
906
+ `Failed to build dynamic description for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
907
+ );
908
+ }
909
+ }
861
910
  allTools[toolName] = {
862
911
  name: toolName,
863
- description: tool.description || "No description provided",
912
+ description,
864
913
  parameters: wrapToolParametersSchema(
865
914
  convertZodSchemaToJsonSchema(tool.inputSchema, this.logger)
866
915
  )
@@ -890,6 +939,7 @@ let _ToolManager = class _ToolManager {
890
939
  */
891
940
  async getAllTools() {
892
941
  if (this.cacheValid) {
942
+ await this.refreshDynamicToolDescriptions();
893
943
  return this.toolsCache;
894
944
  }
895
945
  this.toolsCache = await this.buildAllTools();
@@ -195,6 +195,11 @@ export interface Tool<TSchema extends ZodTypeAny = ZodTypeAny> {
195
195
  id: string;
196
196
  /** Human-readable description of what the tool does */
197
197
  description: string;
198
+ /**
199
+ * Optional dynamic description for LLM tool discovery.
200
+ * Use when the tool description depends on runtime context such as the active workspace.
201
+ */
202
+ getDescription?: ((context: ToolExecutionContext) => Promise<string> | string) | undefined;
198
203
  /** Zod schema defining the input parameters */
199
204
  inputSchema: TSchema;
200
205
  /** The actual function that executes the tool - input is validated by Zod before execution */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"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"}
@@ -36,22 +36,84 @@ module.exports = __toCommonJS(execution_context_exports);
36
36
  var import_fs_walk = require("./fs-walk.js");
37
37
  var import_fs = require("fs");
38
38
  var path = __toESM(require("path"), 1);
39
- function isDextoSourceDirectory(dirPath) {
40
- const packageJsonPath = path.join(dirPath, "package.json");
39
+ const DIRECT_PROJECT_ROOT_MARKERS = [
40
+ path.join(".dexto", "deploy.json"),
41
+ path.join(".dexto", "cloud", "bootstrap.json"),
42
+ "coding-agent.yml",
43
+ "coding-agent.yaml",
44
+ path.join("agents", "registry.json"),
45
+ path.join("agents", "agent-registry.json"),
46
+ path.join("agents", "coding-agent.yml"),
47
+ path.join("agents", "coding-agent.yaml"),
48
+ path.join("agents", "coding-agent", "coding-agent.yml"),
49
+ path.join("agents", "coding-agent", "coding-agent.yaml"),
50
+ path.join("src", "dexto", "agents", "coding-agent.yml"),
51
+ path.join("src", "dexto", "agents", "coding-agent.yaml")
52
+ ];
53
+ function getCaseInsensitiveRootFilename(dirPath, filename) {
54
+ try {
55
+ return (0, import_fs.readdirSync)(dirPath).find((entry) => entry.toLowerCase() === filename.toLowerCase()) ?? null;
56
+ } catch {
57
+ return null;
58
+ }
59
+ }
60
+ function hasWorkspaceAuthoringDirectory(dirPath, name) {
61
+ try {
62
+ return (0, import_fs.statSync)(path.join(dirPath, name)).isDirectory();
63
+ } catch {
64
+ return false;
65
+ }
66
+ }
67
+ function hasDextoWorkspaceAgentsFile(dirPath) {
68
+ const agentsFilename = getCaseInsensitiveRootFilename(dirPath, "agents.md");
69
+ if (!agentsFilename) {
70
+ return false;
71
+ }
41
72
  try {
42
- const pkg = JSON.parse((0, import_fs.readFileSync)(packageJsonPath, "utf-8"));
43
- return pkg.name === "dexto-monorepo";
73
+ const content = (0, import_fs.readFileSync)(path.join(dirPath, agentsFilename), "utf-8").toLowerCase();
74
+ return content.includes("dexto workspace") || content.includes("dexto-workspace");
44
75
  } catch {
45
76
  return false;
46
77
  }
47
78
  }
79
+ function hasWorkspaceScaffoldMarker(dirPath) {
80
+ return hasDextoWorkspaceAgentsFile(dirPath) && (hasWorkspaceAuthoringDirectory(dirPath, "agents") || hasWorkspaceAuthoringDirectory(dirPath, "skills"));
81
+ }
82
+ function readPackageName(dirPath) {
83
+ try {
84
+ const pkg = JSON.parse((0, import_fs.readFileSync)(path.join(dirPath, "package.json"), "utf-8"));
85
+ return typeof pkg.name === "string" ? pkg.name : null;
86
+ } catch {
87
+ return null;
88
+ }
89
+ }
90
+ function isInternalDextoPackage(dirPath) {
91
+ const packageName = readPackageName(dirPath);
92
+ return packageName === "dexto" || packageName?.startsWith("@dexto/") === true;
93
+ }
94
+ function hasProjectRootMarker(dirPath) {
95
+ if (hasWorkspaceScaffoldMarker(dirPath)) {
96
+ return true;
97
+ }
98
+ return DIRECT_PROJECT_ROOT_MARKERS.some(
99
+ (relativePath) => (0, import_fs.existsSync)(path.join(dirPath, relativePath))
100
+ );
101
+ }
102
+ function isDextoSourceDirectory(dirPath) {
103
+ return readPackageName(dirPath) === "dexto-monorepo";
104
+ }
48
105
  function isDextoProjectDirectory(dirPath) {
49
- const packageJsonPath = path.join(dirPath, "package.json");
106
+ if (isDextoSourceDirectory(dirPath)) {
107
+ return false;
108
+ }
109
+ if (isInternalDextoPackage(dirPath)) {
110
+ return false;
111
+ }
112
+ if (hasProjectRootMarker(dirPath)) {
113
+ return true;
114
+ }
50
115
  try {
51
- const pkg = JSON.parse((0, import_fs.readFileSync)(packageJsonPath, "utf-8"));
52
- if (pkg.name === "dexto" || pkg.name === "@dexto/core" || pkg.name === "@dexto/webui") {
53
- return false;
54
- }
116
+ const pkg = JSON.parse((0, import_fs.readFileSync)(path.join(dirPath, "package.json"), "utf-8"));
55
117
  const allDeps = {
56
118
  ...pkg.dependencies ?? {},
57
119
  ...pkg.devDependencies ?? {},
@@ -1 +1 @@
1
- {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/utils/execution-context.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;AAgD/E;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAErF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAsB,GAAG,gBAAgB,CAavF"}
1
+ {"version":3,"file":"execution-context.d.ts","sourceRoot":"","sources":["../../src/utils/execution-context.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,eAAe,GAAG,YAAY,CAAC;AA2H/E;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAEpF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAErF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,GAAE,MAAsB,GAAG,gBAAgB,CAavF"}
@@ -1,23 +1,85 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
2
  import { walkUpDirectories } from "./fs-walk.js";
3
- import { readFileSync } from "fs";
3
+ import { existsSync, readFileSync, readdirSync, statSync } from "fs";
4
4
  import * as path from "path";
5
- function isDextoSourceDirectory(dirPath) {
6
- const packageJsonPath = path.join(dirPath, "package.json");
5
+ const DIRECT_PROJECT_ROOT_MARKERS = [
6
+ path.join(".dexto", "deploy.json"),
7
+ path.join(".dexto", "cloud", "bootstrap.json"),
8
+ "coding-agent.yml",
9
+ "coding-agent.yaml",
10
+ path.join("agents", "registry.json"),
11
+ path.join("agents", "agent-registry.json"),
12
+ path.join("agents", "coding-agent.yml"),
13
+ path.join("agents", "coding-agent.yaml"),
14
+ path.join("agents", "coding-agent", "coding-agent.yml"),
15
+ path.join("agents", "coding-agent", "coding-agent.yaml"),
16
+ path.join("src", "dexto", "agents", "coding-agent.yml"),
17
+ path.join("src", "dexto", "agents", "coding-agent.yaml")
18
+ ];
19
+ function getCaseInsensitiveRootFilename(dirPath, filename) {
20
+ try {
21
+ return readdirSync(dirPath).find((entry) => entry.toLowerCase() === filename.toLowerCase()) ?? null;
22
+ } catch {
23
+ return null;
24
+ }
25
+ }
26
+ function hasWorkspaceAuthoringDirectory(dirPath, name) {
27
+ try {
28
+ return statSync(path.join(dirPath, name)).isDirectory();
29
+ } catch {
30
+ return false;
31
+ }
32
+ }
33
+ function hasDextoWorkspaceAgentsFile(dirPath) {
34
+ const agentsFilename = getCaseInsensitiveRootFilename(dirPath, "agents.md");
35
+ if (!agentsFilename) {
36
+ return false;
37
+ }
7
38
  try {
8
- const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
9
- return pkg.name === "dexto-monorepo";
39
+ const content = readFileSync(path.join(dirPath, agentsFilename), "utf-8").toLowerCase();
40
+ return content.includes("dexto workspace") || content.includes("dexto-workspace");
10
41
  } catch {
11
42
  return false;
12
43
  }
13
44
  }
45
+ function hasWorkspaceScaffoldMarker(dirPath) {
46
+ return hasDextoWorkspaceAgentsFile(dirPath) && (hasWorkspaceAuthoringDirectory(dirPath, "agents") || hasWorkspaceAuthoringDirectory(dirPath, "skills"));
47
+ }
48
+ function readPackageName(dirPath) {
49
+ try {
50
+ const pkg = JSON.parse(readFileSync(path.join(dirPath, "package.json"), "utf-8"));
51
+ return typeof pkg.name === "string" ? pkg.name : null;
52
+ } catch {
53
+ return null;
54
+ }
55
+ }
56
+ function isInternalDextoPackage(dirPath) {
57
+ const packageName = readPackageName(dirPath);
58
+ return packageName === "dexto" || packageName?.startsWith("@dexto/") === true;
59
+ }
60
+ function hasProjectRootMarker(dirPath) {
61
+ if (hasWorkspaceScaffoldMarker(dirPath)) {
62
+ return true;
63
+ }
64
+ return DIRECT_PROJECT_ROOT_MARKERS.some(
65
+ (relativePath) => existsSync(path.join(dirPath, relativePath))
66
+ );
67
+ }
68
+ function isDextoSourceDirectory(dirPath) {
69
+ return readPackageName(dirPath) === "dexto-monorepo";
70
+ }
14
71
  function isDextoProjectDirectory(dirPath) {
15
- const packageJsonPath = path.join(dirPath, "package.json");
72
+ if (isDextoSourceDirectory(dirPath)) {
73
+ return false;
74
+ }
75
+ if (isInternalDextoPackage(dirPath)) {
76
+ return false;
77
+ }
78
+ if (hasProjectRootMarker(dirPath)) {
79
+ return true;
80
+ }
16
81
  try {
17
- const pkg = JSON.parse(readFileSync(packageJsonPath, "utf-8"));
18
- if (pkg.name === "dexto" || pkg.name === "@dexto/core" || pkg.name === "@dexto/webui") {
19
- return false;
20
- }
82
+ const pkg = JSON.parse(readFileSync(path.join(dirPath, "package.json"), "utf-8"));
21
83
  const allDeps = {
22
84
  ...pkg.dependencies ?? {},
23
85
  ...pkg.devDependencies ?? {},
@@ -144,7 +144,7 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
144
144
  [],
145
145
  logger
146
146
  );
147
- toolManager.setWorkspaceManager(workspaceManager);
147
+ await toolManager.setWorkspaceManager(workspaceManager);
148
148
  const mcpServerCount = Object.keys(config.mcpServers).length;
149
149
  if (mcpServerCount === 0) {
150
150
  logger.info("Agent initialized without MCP servers - only built-in capabilities available");
@@ -112,7 +112,7 @@ async function createAgentServices(config, logger, agentEventBus, overrides, com
112
112
  [],
113
113
  logger
114
114
  );
115
- toolManager.setWorkspaceManager(workspaceManager);
115
+ await toolManager.setWorkspaceManager(workspaceManager);
116
116
  const mcpServerCount = Object.keys(config.mcpServers).length;
117
117
  if (mcpServerCount === 0) {
118
118
  logger.info("Agent initialized without MCP servers - only built-in capabilities available");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dexto/core",
3
- "version": "1.6.14",
3
+ "version": "1.6.15",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",