@dexto/core 1.8.12 → 1.9.1

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 (124) hide show
  1. package/dist/approval/manager.cjs +37 -325
  2. package/dist/approval/manager.d.ts +10 -109
  3. package/dist/approval/manager.d.ts.map +1 -1
  4. package/dist/approval/manager.js +37 -316
  5. package/dist/approval/schemas.cjs +8 -51
  6. package/dist/approval/schemas.d.ts +5 -179
  7. package/dist/approval/schemas.d.ts.map +1 -1
  8. package/dist/approval/schemas.js +8 -47
  9. package/dist/approval/types.cjs +0 -6
  10. package/dist/approval/types.d.ts +2 -27
  11. package/dist/approval/types.d.ts.map +1 -1
  12. package/dist/approval/types.js +0 -6
  13. package/dist/context/compaction/strategies/reactive-overflow-compaction.cjs +2 -0
  14. package/dist/context/compaction/strategies/reactive-overflow-compaction.d.ts.map +1 -1
  15. package/dist/context/compaction/strategies/reactive-overflow-compaction.js +2 -0
  16. package/dist/context/content-clone.cjs +55 -10
  17. package/dist/context/content-clone.d.ts +1 -0
  18. package/dist/context/content-clone.d.ts.map +1 -1
  19. package/dist/context/content-clone.js +53 -9
  20. package/dist/context/manager.cjs +25 -4
  21. package/dist/context/manager.d.ts +4 -2
  22. package/dist/context/manager.d.ts.map +1 -1
  23. package/dist/context/manager.js +25 -4
  24. package/dist/context/schemas.cjs +15 -1
  25. package/dist/context/schemas.d.ts.map +1 -1
  26. package/dist/context/schemas.js +15 -1
  27. package/dist/context/types.d.ts +11 -0
  28. package/dist/context/types.d.ts.map +1 -1
  29. package/dist/errors/DextoRuntimeError.cjs +3 -1
  30. package/dist/errors/DextoRuntimeError.d.ts +5 -3
  31. package/dist/errors/DextoRuntimeError.d.ts.map +1 -1
  32. package/dist/errors/DextoRuntimeError.js +3 -1
  33. package/dist/errors/index.d.ts +1 -1
  34. package/dist/errors/index.d.ts.map +1 -1
  35. package/dist/errors/types.d.ts +1 -0
  36. package/dist/errors/types.d.ts.map +1 -1
  37. package/dist/events/index.d.ts +2 -2
  38. package/dist/events/index.d.ts.map +1 -1
  39. package/dist/llm/executor/provider-error.cjs +25 -4
  40. package/dist/llm/executor/provider-error.d.ts.map +1 -1
  41. package/dist/llm/executor/provider-error.js +25 -4
  42. package/dist/llm/executor/stream-processor.cjs +98 -7
  43. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  44. package/dist/llm/executor/stream-processor.js +98 -7
  45. package/dist/llm/executor/turn-executor.cjs +96 -28
  46. package/dist/llm/executor/turn-executor.d.ts +2 -0
  47. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  48. package/dist/llm/executor/turn-executor.js +96 -28
  49. package/dist/llm/providers/local/schemas.d.ts +2 -2
  50. package/dist/llm/services/factory.cjs +3 -2
  51. package/dist/llm/services/factory.d.ts.map +1 -1
  52. package/dist/llm/services/factory.js +3 -2
  53. package/dist/llm/services/types.d.ts +8 -0
  54. package/dist/llm/services/types.d.ts.map +1 -1
  55. package/dist/llm/services/vercel.cjs +6 -1
  56. package/dist/llm/services/vercel.d.ts +3 -2
  57. package/dist/llm/services/vercel.d.ts.map +1 -1
  58. package/dist/llm/services/vercel.js +6 -1
  59. package/dist/session/chat-session.cjs +4 -0
  60. package/dist/session/chat-session.d.ts +2 -1
  61. package/dist/session/chat-session.d.ts.map +1 -1
  62. package/dist/session/chat-session.js +4 -0
  63. package/dist/session/message-queue.cjs +48 -75
  64. package/dist/session/message-queue.d.ts +1 -2
  65. package/dist/session/message-queue.d.ts.map +1 -1
  66. package/dist/session/message-queue.js +48 -75
  67. package/dist/session/session-manager.cjs +14 -32
  68. package/dist/session/session-manager.d.ts +5 -2
  69. package/dist/session/session-manager.d.ts.map +1 -1
  70. package/dist/session/session-manager.js +14 -32
  71. package/dist/storage/approvals/types.cjs +2 -9
  72. package/dist/storage/approvals/types.d.ts +4 -16
  73. package/dist/storage/approvals/types.d.ts.map +1 -1
  74. package/dist/storage/approvals/types.js +2 -8
  75. package/dist/storage/database/types.d.ts +5 -0
  76. package/dist/storage/database/types.d.ts.map +1 -1
  77. package/dist/storage/index.cjs +0 -2
  78. package/dist/storage/index.d.ts +2 -2
  79. package/dist/storage/index.d.ts.map +1 -1
  80. package/dist/storage/index.js +1 -2
  81. package/dist/storage/message-queue/types.d.ts +14 -6
  82. package/dist/storage/message-queue/types.d.ts.map +1 -1
  83. package/dist/storage/stores/backend.cjs +68 -32
  84. package/dist/storage/stores/backend.d.ts +17 -8
  85. package/dist/storage/stores/backend.d.ts.map +1 -1
  86. package/dist/storage/stores/backend.js +69 -33
  87. package/dist/storage/stores/in-memory.cjs +26 -11
  88. package/dist/storage/stores/in-memory.d.ts.map +1 -1
  89. package/dist/storage/stores/in-memory.js +27 -12
  90. package/dist/test-utils/in-memory-storage.cjs +11 -0
  91. package/dist/test-utils/in-memory-storage.js +11 -0
  92. package/dist/test-utils/session-state-stores.cjs +25 -9
  93. package/dist/test-utils/session-state-stores.js +26 -10
  94. package/dist/tools/approval/tool-approval-policy.cjs +87 -0
  95. package/dist/tools/approval/tool-approval-policy.d.ts +34 -0
  96. package/dist/tools/approval/tool-approval-policy.d.ts.map +1 -0
  97. package/dist/tools/approval/tool-approval-policy.js +64 -0
  98. package/dist/tools/error-codes.cjs +0 -1
  99. package/dist/tools/error-codes.d.ts +0 -1
  100. package/dist/tools/error-codes.d.ts.map +1 -1
  101. package/dist/tools/error-codes.js +0 -1
  102. package/dist/tools/errors.cjs +0 -15
  103. package/dist/tools/errors.d.ts +0 -9
  104. package/dist/tools/errors.d.ts.map +1 -1
  105. package/dist/tools/errors.js +0 -15
  106. package/dist/tools/index.cjs +2 -0
  107. package/dist/tools/index.d.ts +1 -1
  108. package/dist/tools/index.d.ts.map +1 -1
  109. package/dist/tools/index.js +5 -1
  110. package/dist/tools/tool-manager.cjs +94 -312
  111. package/dist/tools/tool-manager.d.ts +4 -19
  112. package/dist/tools/tool-manager.d.ts.map +1 -1
  113. package/dist/tools/tool-manager.js +95 -316
  114. package/dist/tools/types.d.ts +10 -9
  115. package/dist/tools/types.d.ts.map +1 -1
  116. package/dist/utils/service-initializer.cjs +3 -0
  117. package/dist/utils/service-initializer.d.ts +2 -1
  118. package/dist/utils/service-initializer.d.ts.map +1 -1
  119. package/dist/utils/service-initializer.js +3 -0
  120. package/package.json +2 -2
  121. package/dist/tools/pattern-utils.cjs +0 -33
  122. package/dist/tools/pattern-utils.d.ts +0 -20
  123. package/dist/tools/pattern-utils.d.ts.map +0 -1
  124. package/dist/tools/pattern-utils.js +0 -10
@@ -74,6 +74,7 @@ var import_schema = require("../utils/schema.js");
74
74
  var import_types3 = require("../approval/types.js");
75
75
  var import_schemas = require("../approval/schemas.js");
76
76
  var import_session_tool_policy = require("./approval/session-tool-policy.js");
77
+ var import_tool_approval_policy = require("./approval/tool-approval-policy.js");
77
78
  var import_tool_presentation = require("./presentation/tool-presentation.js");
78
79
  var import_decorators = require("../telemetry/decorators.js");
79
80
  var import_types4 = require("../storage/tool-executions/types.js");
@@ -103,6 +104,20 @@ let _ToolManager = class _ToolManager {
103
104
  this.logger,
104
105
  (pattern) => this.normalizeToolPolicyPattern(pattern)
105
106
  );
107
+ this.toolApprovalPolicy = new import_tool_approval_policy.ToolApprovalPolicy({
108
+ getApprovalMode: () => this.approvalMode,
109
+ getLocalTool: (toolName) => this.agentTools.get(toolName),
110
+ isApprovalKeySessionApproved: ({ approvalKey, sessionId }) => this.approvalManager.isApprovalKeySessionApproved(approvalKey, sessionId),
111
+ isToolExplicitlyAllowed: async ({ toolName, sessionId }) => {
112
+ if (sessionId !== void 0 && this.isToolAutoApprovedForSession(sessionId, toolName)) {
113
+ return true;
114
+ }
115
+ if (this.isInAlwaysAllowList(toolName)) {
116
+ return true;
117
+ }
118
+ return await this.allowedToolsProvider.isToolAllowed(toolName, sessionId);
119
+ }
120
+ });
106
121
  this.toolPresentation = new import_tool_presentation.ToolPresentation(
107
122
  (toolName) => this.agentTools.get(toolName),
108
123
  (toolName, args) => this.validateLocalToolArgs(toolName, args),
@@ -144,6 +159,7 @@ let _ToolManager = class _ToolManager {
144
159
  cacheValid = false;
145
160
  logger;
146
161
  sessionToolPolicy;
162
+ toolApprovalPolicy;
147
163
  toolPresentation;
148
164
  cleanupHandlers = /* @__PURE__ */ new Set();
149
165
  cleanupStarted = false;
@@ -463,58 +479,7 @@ let _ToolManager = class _ToolManager {
463
479
  }
464
480
  });
465
481
  }
466
- // ==================== Pattern Approval Helpers ====================
467
- getToolApprovalPatternKeyFn(toolName) {
468
- const tool = this.agentTools.get(toolName);
469
- return tool?.approval?.patternKey;
470
- }
471
- getToolSuggestApprovalPatternsFn(toolName) {
472
- const tool = this.agentTools.get(toolName);
473
- return tool?.approval?.suggestPatterns;
474
- }
475
- getToolApprovalOverrideFn(toolName) {
476
- const tool = this.agentTools.get(toolName);
477
- return tool?.approval?.override;
478
- }
479
- getToolApprovalOnGrantedFn(toolName) {
480
- const tool = this.agentTools.get(toolName);
481
- return tool?.approval?.onGranted;
482
- }
483
- getToolPatternKey(toolName, args) {
484
- if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
485
- return null;
486
- }
487
- const getPatternKey = this.getToolApprovalPatternKeyFn(toolName);
488
- if (!getPatternKey) {
489
- return null;
490
- }
491
- try {
492
- return getPatternKey(args);
493
- } catch (error) {
494
- this.logger.debug(
495
- `Pattern key generation failed for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
496
- );
497
- return null;
498
- }
499
- }
500
- getToolSuggestedPatterns(toolName, args) {
501
- if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
502
- return void 0;
503
- }
504
- const suggestPatterns = this.getToolSuggestApprovalPatternsFn(toolName);
505
- if (!suggestPatterns) {
506
- return void 0;
507
- }
508
- try {
509
- const patterns = suggestPatterns(args);
510
- return patterns.length > 0 ? patterns : void 0;
511
- } catch (error) {
512
- this.logger.debug(
513
- `Pattern suggestion failed for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
514
- );
515
- return void 0;
516
- }
517
- }
482
+ // ==================== Approval Helpers ====================
518
483
  /**
519
484
  * Auto-approve pending tool approval requests for the same tool.
520
485
  * Called after a user selects "remember choice" for a tool.
@@ -535,7 +500,7 @@ let _ToolManager = class _ToolManager {
535
500
  if (request.metadata.toolName !== toolName) {
536
501
  return false;
537
502
  }
538
- return request.metadata.directoryAccess === void 0;
503
+ return true;
539
504
  },
540
505
  { rememberChoice: false }
541
506
  // Don't propagate remember choice to auto-approved requests
@@ -546,18 +511,7 @@ let _ToolManager = class _ToolManager {
546
511
  );
547
512
  }
548
513
  }
549
- /**
550
- * Auto-approve pending tool approval requests that are now covered by a remembered pattern.
551
- * Called after a user selects "remember pattern" for a tool.
552
- */
553
- autoApprovePendingPatternRequests(toolName, sessionId) {
554
- if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
555
- return;
556
- }
557
- const getPatternKey = this.getToolApprovalPatternKeyFn(toolName);
558
- if (!getPatternKey) {
559
- return;
560
- }
514
+ autoApprovePendingApprovalKeyRequests(approvalKey, sessionId) {
561
515
  const count = this.approvalManager.autoApprovePendingRequests(
562
516
  (request) => {
563
517
  if (request.type !== import_types3.ApprovalType.TOOL_APPROVAL) {
@@ -566,64 +520,16 @@ let _ToolManager = class _ToolManager {
566
520
  if (request.sessionId !== sessionId) {
567
521
  return false;
568
522
  }
569
- if (request.metadata.toolName !== toolName) {
570
- return false;
571
- }
572
- if (request.metadata.directoryAccess !== void 0) {
573
- return false;
574
- }
575
- let patternKey;
576
- try {
577
- patternKey = getPatternKey(request.metadata.args);
578
- } catch (error) {
579
- this.logger.debug(
580
- `Pattern key generation failed for '${toolName}': ${error instanceof Error ? error.message : String(error)}`
581
- );
582
- return false;
583
- }
584
- if (!patternKey) return false;
585
- return this.approvalManager.matchesPattern(toolName, patternKey, sessionId);
523
+ return request.metadata.approvalKey === approvalKey;
586
524
  },
587
- { rememberPattern: void 0 }
588
- // Don't propagate pattern choice to auto-approved requests
525
+ { rememberChoice: false }
589
526
  );
590
527
  if (count > 0) {
591
528
  this.logger.info(
592
- `Auto-approved ${count} parallel request(s) for tool '${toolName}' after user selected "remember pattern"`
593
- );
594
- }
595
- }
596
- /**
597
- * Auto-approve pending tool approval requests that are now covered by a remembered directory.
598
- * Called after a user selects "remember directory" for a directory-access prompt.
599
- */
600
- autoApprovePendingDirectoryRequests(toolName, sessionId) {
601
- const count = this.approvalManager.autoApprovePendingRequests(
602
- (request) => {
603
- if (request.type !== import_types3.ApprovalType.TOOL_APPROVAL) {
604
- return false;
605
- }
606
- if (request.sessionId !== sessionId) {
607
- return false;
608
- }
609
- if (request.metadata.toolName !== toolName) {
610
- return false;
611
- }
612
- const directoryAccess = request.metadata.directoryAccess;
613
- if (!directoryAccess) {
614
- return false;
529
+ "Auto-approved parallel request(s) after approval key was remembered",
530
+ {
531
+ count
615
532
  }
616
- return this.approvalManager.isDirectorySessionApproved(
617
- directoryAccess.parentDir,
618
- sessionId
619
- );
620
- },
621
- { rememberDirectory: false }
622
- );
623
- if (count > 0) {
624
- this.logger.info(
625
- 'Auto-approved parallel request(s) after user selected "remember directory"',
626
- { count, toolName }
627
533
  );
628
534
  }
629
535
  }
@@ -924,89 +830,57 @@ let _ToolManager = class _ToolManager {
924
830
  ...callDescription !== void 0 ? { callDescription } : {},
925
831
  ...eventMeta !== void 0 ? { meta: eventMeta } : {}
926
832
  };
927
- const overrideRequest = await this.getToolApprovalOverrideRequest(
928
- input.toolName,
929
- validatedArgs,
930
- input.toolCallId,
931
- sessionId,
932
- input.runContext
933
- );
934
- if (overrideRequest) {
935
- if (!overrideRequest.directoryAccess) {
936
- return {
937
- kind: "approval-required",
938
- call,
939
- onGrantedRequestDetails: overrideRequest.onGrantedRequestDetails,
940
- requestDetails: overrideRequest.requestDetails
941
- };
942
- }
943
- const quickResult2 = await this.classifyQuickApprovalRequirement(
944
- input.toolName,
945
- validatedArgs,
833
+ const approvalGate = await this.toolApprovalPolicy.resolve({
834
+ args: validatedArgs,
835
+ getContext: () => this.buildToolExecutionContext({
946
836
  sessionId,
947
- overrideRequest.directoryAccess
948
- );
949
- if (quickResult2 === "ready") {
950
- return { kind: "ready", call };
951
- }
952
- const displayPreview2 = await this.toolPresentation.preview({
953
- toolName: input.toolName,
954
- args: validatedArgs,
955
837
  toolCallId: input.toolCallId,
956
- ...sessionId !== void 0 ? { sessionId } : {},
957
- ...input.runContext !== void 0 ? { runContext: input.runContext } : {}
958
- });
959
- const suggestedPatterns2 = this.getToolSuggestedPatterns(input.toolName, validatedArgs);
960
- return {
961
- kind: "approval-required",
962
- call,
963
- onGrantedRequestDetails: overrideRequest.onGrantedRequestDetails,
964
- requestDetails: {
965
- ...overrideRequest.requestDetails,
966
- metadata: {
967
- ...overrideRequest.requestDetails.metadata,
968
- presentationSnapshot,
969
- ...callDescription !== void 0 ? { description: callDescription } : {},
970
- ...displayPreview2 !== void 0 ? { displayPreview: displayPreview2 } : {},
971
- ...suggestedPatterns2 !== void 0 ? { suggestedPatterns: suggestedPatterns2 } : {}
972
- }
973
- }
974
- };
975
- }
976
- const quickResult = await this.classifyQuickApprovalRequirement(
977
- input.toolName,
978
- validatedArgs,
979
- sessionId
980
- );
981
- if (quickResult === "ready") {
838
+ runContext: input.runContext
839
+ }),
840
+ ...sessionId !== void 0 ? { sessionId } : {},
841
+ source,
842
+ toolName: input.toolName
843
+ });
844
+ if (approvalGate.kind === "ready") {
982
845
  return { kind: "ready", call };
983
846
  }
984
- const displayPreview = await this.toolPresentation.preview({
985
- toolName: input.toolName,
847
+ return await this.prepareApprovalRequiredToolCall({
848
+ approvalGate,
986
849
  args: validatedArgs,
987
- toolCallId: input.toolCallId,
850
+ call,
851
+ ...callDescription !== void 0 ? { callDescription } : {},
852
+ ...input.runContext !== void 0 ? { runContext: input.runContext } : {},
988
853
  ...sessionId !== void 0 ? { sessionId } : {},
989
- ...input.runContext !== void 0 ? { runContext: input.runContext } : {}
854
+ toolCallId: input.toolCallId,
855
+ toolName: input.toolName
856
+ });
857
+ }
858
+ async prepareApprovalRequiredToolCall(input) {
859
+ const displayPreview = await this.toolPresentation.preview({
860
+ args: input.args,
861
+ ...input.runContext !== void 0 ? { runContext: input.runContext } : {},
862
+ ...input.sessionId !== void 0 ? { sessionId: input.sessionId } : {},
863
+ toolCallId: input.toolCallId,
864
+ toolName: input.toolName
990
865
  });
991
- const suggestedPatterns = this.getToolSuggestedPatterns(input.toolName, validatedArgs);
992
866
  const hostRuntime = input.runContext?.hostRuntime;
993
867
  const requestDetails = {
994
868
  type: import_types3.ApprovalType.TOOL_APPROVAL,
995
- ...sessionId !== void 0 ? { sessionId } : {},
869
+ ...input.sessionId !== void 0 ? { sessionId: input.sessionId } : {},
996
870
  ...hostRuntime !== void 0 ? { hostRuntime } : {},
997
871
  metadata: {
998
872
  toolName: input.toolName,
999
- presentationSnapshot,
873
+ ...input.approvalGate.approvalKey !== void 0 ? { approvalKey: input.approvalGate.approvalKey } : {},
874
+ presentationSnapshot: input.call.presentationSnapshot,
1000
875
  toolCallId: input.toolCallId,
1001
- args: validatedArgs,
1002
- ...callDescription !== void 0 ? { description: callDescription } : {},
1003
- ...displayPreview !== void 0 ? { displayPreview } : {},
1004
- ...suggestedPatterns !== void 0 ? { suggestedPatterns } : {}
876
+ args: input.args,
877
+ ...input.callDescription !== void 0 ? { description: input.callDescription } : {},
878
+ ...displayPreview !== void 0 ? { displayPreview } : {}
1005
879
  }
1006
880
  };
1007
881
  return {
1008
882
  kind: "approval-required",
1009
- call,
883
+ call: input.call,
1010
884
  onGrantedRequestDetails: requestDetails,
1011
885
  requestDetails
1012
886
  };
@@ -1020,7 +894,7 @@ let _ToolManager = class _ToolManager {
1020
894
  this.assertRecordedApprovalMatchesPreparedCall(prepared, request);
1021
895
  return { prepared, request };
1022
896
  }
1023
- async applyApprovalDecision(recorded, decision, runContext) {
897
+ async applyApprovalDecision(recorded, decision) {
1024
898
  if (decision.approvalId !== recorded.request.approvalId) {
1025
899
  throw import_errors.ToolError.executionFailed(
1026
900
  recorded.prepared.call.toolName,
@@ -1043,7 +917,7 @@ let _ToolManager = class _ToolManager {
1043
917
  response: record.response
1044
918
  };
1045
919
  }
1046
- await this.applyApprovalGrantedEffects(recorded.prepared, record.response, runContext);
920
+ await this.applyApprovalGrantedEffects(recorded.prepared, record.response);
1047
921
  return {
1048
922
  kind: "ready",
1049
923
  call: {
@@ -1082,28 +956,6 @@ let _ToolManager = class _ToolManager {
1082
956
  assertOnGrantedRequestMatchesPreparedCall(prepared) {
1083
957
  const approvalDetails = prepared.requestDetails;
1084
958
  const grantedDetails = prepared.onGrantedRequestDetails;
1085
- const directoryAccess = approvalDetails.type === import_types3.ApprovalType.TOOL_APPROVAL && "directoryAccess" in approvalDetails.metadata ? import_schemas.DirectoryAccessMetadataSchema.parse(approvalDetails.metadata.directoryAccess) : void 0;
1086
- if (directoryAccess !== void 0) {
1087
- const expected = {
1088
- type: import_types3.ApprovalType.DIRECTORY_ACCESS,
1089
- sessionId: approvalDetails.sessionId,
1090
- hostRuntime: approvalDetails.hostRuntime,
1091
- metadata: directoryAccess
1092
- };
1093
- const actual = {
1094
- type: grantedDetails.type,
1095
- sessionId: grantedDetails.sessionId,
1096
- hostRuntime: grantedDetails.hostRuntime,
1097
- metadata: grantedDetails.metadata
1098
- };
1099
- if (!(0, import_node_util.isDeepStrictEqual)(actual, expected)) {
1100
- throw import_errors.ToolError.executionFailed(
1101
- prepared.call.toolName,
1102
- "Approval granted-effects request does not match the prepared tool call"
1103
- );
1104
- }
1105
- return;
1106
- }
1107
959
  if (!(0, import_node_util.isDeepStrictEqual)(grantedDetails, approvalDetails)) {
1108
960
  throw import_errors.ToolError.executionFailed(
1109
961
  prepared.call.toolName,
@@ -1111,26 +963,30 @@ let _ToolManager = class _ToolManager {
1111
963
  );
1112
964
  }
1113
965
  }
1114
- async applyApprovalGrantedEffects(prepared, response, runContext) {
1115
- const requestDetails = prepared.onGrantedRequestDetails;
966
+ async applyApprovalGrantedEffects(prepared, response) {
1116
967
  const approvalRequestDetails = prepared.requestDetails;
1117
968
  const sessionId = approvalRequestDetails.sessionId;
1118
- const onGranted = this.getToolApprovalOnGrantedFn(prepared.call.toolName);
1119
- if (onGranted) {
1120
- const context = this.buildToolExecutionContext({
1121
- sessionId,
1122
- toolCallId: prepared.call.toolCallId,
1123
- runContext
1124
- });
1125
- await Promise.resolve(onGranted(response, context, requestDetails));
1126
- }
1127
- if (approvalRequestDetails.type === import_types3.ApprovalType.TOOL_APPROVAL && response.data) {
969
+ if (approvalRequestDetails.type === import_types3.ApprovalType.TOOL_APPROVAL) {
970
+ const toolMetadata = import_schemas.ToolApprovalMetadataSchema.parse(approvalRequestDetails.metadata);
971
+ const approvalKey = toolMetadata.approvalKey;
972
+ const data = response.data ? import_schemas.ToolApprovalResponseDataSchema.parse(response.data) : void 0;
973
+ if (approvalKey !== void 0) {
974
+ await this.approvalManager.addApprovedKey(
975
+ approvalKey,
976
+ data?.rememberChoice ? "session" : "once",
977
+ sessionId
978
+ );
979
+ }
980
+ if (!data) {
981
+ return;
982
+ }
1128
983
  await this.handleRememberChoice(
1129
984
  prepared.call.toolName,
1130
985
  {
1131
- data: import_schemas.ToolApprovalResponseDataSchema.parse(response.data),
986
+ data,
1132
987
  ...response.sessionId !== void 0 ? { sessionId: response.sessionId } : {}
1133
988
  },
989
+ approvalKey,
1134
990
  sessionId
1135
991
  );
1136
992
  }
@@ -1186,72 +1042,6 @@ let _ToolManager = class _ToolManager {
1186
1042
  }
1187
1043
  };
1188
1044
  }
1189
- async getToolApprovalOverrideRequest(toolName, args, toolCallId, sessionId, runContext) {
1190
- if (toolName.startsWith(_ToolManager.MCP_TOOL_PREFIX)) {
1191
- return null;
1192
- }
1193
- const getApprovalOverride = this.getToolApprovalOverrideFn(toolName);
1194
- if (!getApprovalOverride) {
1195
- return null;
1196
- }
1197
- const context = this.buildToolExecutionContext({ sessionId, toolCallId, runContext });
1198
- const approvalRequest = await getApprovalOverride(args, context);
1199
- if (!approvalRequest) {
1200
- return null;
1201
- }
1202
- const requestDetails = {
1203
- ...approvalRequest,
1204
- ...sessionId && !approvalRequest.sessionId ? { sessionId } : {},
1205
- ...runContext?.hostRuntime !== void 0 && approvalRequest.hostRuntime === void 0 ? { hostRuntime: runContext.hostRuntime } : {}
1206
- };
1207
- if (requestDetails.type !== import_types3.ApprovalType.DIRECTORY_ACCESS) {
1208
- return { requestDetails, onGrantedRequestDetails: requestDetails };
1209
- }
1210
- const parseResult = import_schemas.DirectoryAccessMetadataSchema.safeParse(requestDetails.metadata);
1211
- if (!parseResult.success) {
1212
- throw import_errors.ToolError.configInvalid(
1213
- `Tool '${toolName}' returned invalid directory access metadata`
1214
- );
1215
- }
1216
- const directoryAccess = parseResult.data;
1217
- return {
1218
- directoryAccess,
1219
- onGrantedRequestDetails: requestDetails,
1220
- requestDetails: {
1221
- type: import_types3.ApprovalType.TOOL_APPROVAL,
1222
- ...requestDetails.sessionId !== void 0 ? { sessionId: requestDetails.sessionId } : {},
1223
- ...requestDetails.hostRuntime !== void 0 ? { hostRuntime: requestDetails.hostRuntime } : {},
1224
- metadata: {
1225
- toolName,
1226
- toolCallId,
1227
- args,
1228
- directoryAccess
1229
- }
1230
- }
1231
- };
1232
- }
1233
- async classifyQuickApprovalRequirement(toolName, args, sessionId, directoryAccess) {
1234
- if (directoryAccess) {
1235
- return this.approvalMode === "auto-approve" ? "ready" : "approval-required";
1236
- }
1237
- if (sessionId && this.isToolAutoApprovedForSession(sessionId, toolName)) {
1238
- return "ready";
1239
- }
1240
- if (this.isInAlwaysAllowList(toolName)) {
1241
- return "ready";
1242
- }
1243
- if (await this.allowedToolsProvider.isToolAllowed(toolName, sessionId)) {
1244
- return "ready";
1245
- }
1246
- const patternKey = this.getToolPatternKey(toolName, args);
1247
- if (patternKey && this.approvalManager.matchesPattern(toolName, patternKey, sessionId)) {
1248
- return "ready";
1249
- }
1250
- if (this.approvalMode === "auto-approve") {
1251
- return "ready";
1252
- }
1253
- return "approval-required";
1254
- }
1255
1045
  async executeTool(toolName, args, toolCallId, invocation) {
1256
1046
  const { sessionId, runContext, hostRuntime } = this.resolveToolExecutionInvocation(invocation);
1257
1047
  this.logger.debug(`\u{1F527} Tool execution requested: '${toolName}' (toolCallId: ${toolCallId})`);
@@ -1284,17 +1074,14 @@ let _ToolManager = class _ToolManager {
1284
1074
  this.resolveDirectApprovalIdentity(invocation, toolCallId)
1285
1075
  );
1286
1076
  const response = await this.requestApprovalDecision(recorded);
1287
- applied = await this.applyApprovalDecision(
1288
- recorded,
1289
- {
1290
- approvalId: response.approvalId,
1291
- status: response.status,
1292
- ...response.reason !== void 0 ? { reason: response.reason } : {},
1293
- ...response.message !== void 0 ? { message: response.message } : {},
1294
- ...response.data !== void 0 ? { data: response.data } : {}
1295
- },
1296
- runContext
1297
- );
1077
+ applied = await this.applyApprovalDecision(recorded, {
1078
+ approvalId: response.approvalId,
1079
+ status: response.status,
1080
+ ...response.reason !== void 0 ? { reason: response.reason } : {},
1081
+ ...response.message !== void 0 ? { message: response.message } : {},
1082
+ ...response.timeoutMs !== void 0 ? { timeoutMs: response.timeoutMs } : {},
1083
+ ...response.data !== void 0 ? { data: response.data } : {}
1084
+ });
1298
1085
  } catch (error) {
1299
1086
  await this.recordDirectToolExecutionFailure(prepared.call, invocation, error);
1300
1087
  throw error;
@@ -1800,26 +1587,21 @@ let _ToolManager = class _ToolManager {
1800
1587
  /**
1801
1588
  * Handle "remember" actions when user approves a tool.
1802
1589
  */
1803
- async handleRememberChoice(toolName, response, sessionId) {
1590
+ async handleRememberChoice(toolName, response, approvalKey, sessionId) {
1804
1591
  const data = response.data;
1805
1592
  if (!data) return;
1806
1593
  const rememberChoice = data.rememberChoice;
1807
- const rememberPattern = data.rememberPattern;
1808
- const rememberDirectory = data.rememberDirectory;
1809
1594
  if (rememberChoice) {
1810
1595
  const allowSessionId = sessionId ?? response.sessionId;
1811
- await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
1812
- this.logger.info(
1813
- `Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
1814
- );
1815
- this.autoApprovePendingToolRequests(toolName, allowSessionId);
1816
- } else if (rememberPattern && this.getToolApprovalPatternKeyFn(toolName)) {
1817
- await this.approvalManager.addPattern(toolName, rememberPattern, sessionId);
1818
- this.logger.info(`Pattern '${rememberPattern}' added for tool '${toolName}' approval`);
1819
- this.autoApprovePendingPatternRequests(toolName, sessionId);
1820
- } else if (rememberDirectory) {
1821
- const allowSessionId = sessionId ?? response.sessionId;
1822
- this.autoApprovePendingDirectoryRequests(toolName, allowSessionId);
1596
+ if (approvalKey !== void 0) {
1597
+ this.autoApprovePendingApprovalKeyRequests(approvalKey, allowSessionId);
1598
+ } else {
1599
+ await this.allowedToolsProvider.allowTool(toolName, allowSessionId);
1600
+ this.logger.info(
1601
+ `Tool '${toolName}' added to allowed tools for session '${allowSessionId ?? "global"}' (remember choice selected)`
1602
+ );
1603
+ this.autoApprovePendingToolRequests(toolName, allowSessionId);
1604
+ }
1823
1605
  }
1824
1606
  }
1825
1607
  /**
@@ -127,6 +127,7 @@ export declare class ToolManager {
127
127
  private cacheValid;
128
128
  private logger;
129
129
  private readonly sessionToolPolicy;
130
+ private readonly toolApprovalPolicy;
130
131
  private readonly toolPresentation;
131
132
  private cleanupHandlers;
132
133
  private cleanupStarted;
@@ -248,12 +249,6 @@ export declare class ToolManager {
248
249
  * Set up listeners for MCP notifications to invalidate cache on changes
249
250
  */
250
251
  private setupNotificationListeners;
251
- private getToolApprovalPatternKeyFn;
252
- private getToolSuggestApprovalPatternsFn;
253
- private getToolApprovalOverrideFn;
254
- private getToolApprovalOnGrantedFn;
255
- private getToolPatternKey;
256
- private getToolSuggestedPatterns;
257
252
  /**
258
253
  * Auto-approve pending tool approval requests for the same tool.
259
254
  * Called after a user selects "remember choice" for a tool.
@@ -263,16 +258,7 @@ export declare class ToolManager {
263
258
  * @param sessionId The session ID for which the tool was allowed
264
259
  */
265
260
  private autoApprovePendingToolRequests;
266
- /**
267
- * Auto-approve pending tool approval requests that are now covered by a remembered pattern.
268
- * Called after a user selects "remember pattern" for a tool.
269
- */
270
- private autoApprovePendingPatternRequests;
271
- /**
272
- * Auto-approve pending tool approval requests that are now covered by a remembered directory.
273
- * Called after a user selects "remember directory" for a directory-access prompt.
274
- */
275
- private autoApprovePendingDirectoryRequests;
261
+ private autoApprovePendingApprovalKeyRequests;
276
262
  getMcpManager(): MCPManager;
277
263
  setContributorContextFactory(factory?: DynamicContributorContextFactory | null): void;
278
264
  buildContributorContext(options?: {
@@ -310,8 +296,9 @@ export declare class ToolManager {
310
296
  */
311
297
  getAllTools(): Promise<ToolSet>;
312
298
  prepareToolCall(input: PrepareToolCallInput): Promise<PreparedToolCall>;
299
+ private prepareApprovalRequiredToolCall;
313
300
  recordApprovalRequest(prepared: ApprovalRequiredPreparedToolCall, identity: ToolApprovalRecordIdentity): Promise<RecordedToolApproval>;
314
- applyApprovalDecision(recorded: RecordedToolApproval, decision: ApprovalDecisionInput, runContext?: AgentRunContext): Promise<ToolApprovalDecisionApplication>;
301
+ applyApprovalDecision(recorded: RecordedToolApproval, decision: ApprovalDecisionInput): Promise<ToolApprovalDecisionApplication>;
315
302
  requestApprovalDecision(recorded: RecordedToolApproval): Promise<ApprovalResponse>;
316
303
  private assertRecordedApprovalMatchesPreparedCall;
317
304
  private assertOnGrantedRequestMatchesPreparedCall;
@@ -321,8 +308,6 @@ export declare class ToolManager {
321
308
  private resolveExecutableToolSource;
322
309
  private createPreparedToolError;
323
310
  private createPreparedToolTerminal;
324
- private getToolApprovalOverrideRequest;
325
- private classifyQuickApprovalRequirement;
326
311
  executeTool(toolName: string, args: Record<string, unknown>, toolCallId: string, invocation?: ToolExecutionInvocation): Promise<import('./types.js').ToolExecutionResult>;
327
312
  private emitPreparedToolCallEvent;
328
313
  private replayExistingDirectToolExecution;
@@ -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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"}