@dexto/core 1.6.0 → 1.6.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 (79) hide show
  1. package/dist/agent/DextoAgent.cjs +25 -5
  2. package/dist/agent/DextoAgent.d.ts +12 -1
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +25 -5
  5. package/dist/agent/schemas.d.ts +18 -18
  6. package/dist/approval/manager.cjs +87 -27
  7. package/dist/approval/manager.d.ts +10 -1
  8. package/dist/approval/manager.d.ts.map +1 -1
  9. package/dist/approval/manager.js +87 -27
  10. package/dist/approval/schemas.cjs +22 -8
  11. package/dist/approval/schemas.d.ts +276 -102
  12. package/dist/approval/schemas.d.ts.map +1 -1
  13. package/dist/approval/schemas.js +22 -8
  14. package/dist/context/manager.cjs +2 -2
  15. package/dist/context/manager.d.ts +2 -1
  16. package/dist/context/manager.d.ts.map +1 -1
  17. package/dist/context/manager.js +2 -2
  18. package/dist/context/types.d.ts +3 -2
  19. package/dist/context/types.d.ts.map +1 -1
  20. package/dist/events/index.d.ts +17 -12
  21. package/dist/events/index.d.ts.map +1 -1
  22. package/dist/hooks/index.d.ts +1 -1
  23. package/dist/hooks/index.d.ts.map +1 -1
  24. package/dist/hooks/types.d.ts +1 -22
  25. package/dist/hooks/types.d.ts.map +1 -1
  26. package/dist/llm/executor/stream-processor.cjs +3 -3
  27. package/dist/llm/executor/stream-processor.d.ts +3 -2
  28. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  29. package/dist/llm/executor/stream-processor.js +3 -3
  30. package/dist/llm/executor/turn-executor.cjs +3 -3
  31. package/dist/llm/executor/turn-executor.d.ts +1 -1
  32. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  33. package/dist/llm/executor/turn-executor.js +3 -3
  34. package/dist/llm/providers/local/schemas.d.ts +2 -2
  35. package/dist/llm/schemas.d.ts +4 -4
  36. package/dist/llm/services/vercel.cjs +1 -1
  37. package/dist/llm/services/vercel.js +1 -1
  38. package/dist/logger/default-logger-factory.d.ts +12 -12
  39. package/dist/logger/v2/dexto-logger.cjs +35 -0
  40. package/dist/logger/v2/dexto-logger.d.ts +19 -0
  41. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  42. package/dist/logger/v2/dexto-logger.js +35 -0
  43. package/dist/logger/v2/schemas.d.ts +6 -6
  44. package/dist/logger/v2/test-utils.cjs +2 -0
  45. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  46. package/dist/logger/v2/test-utils.js +2 -0
  47. package/dist/logger/v2/types.d.ts +14 -1
  48. package/dist/logger/v2/types.d.ts.map +1 -1
  49. package/dist/mcp/schemas.d.ts +15 -15
  50. package/dist/memory/schemas.d.ts +4 -4
  51. package/dist/prompts/schemas.d.ts +7 -7
  52. package/dist/systemPrompt/in-built-prompts.cjs +5 -5
  53. package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
  54. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  55. package/dist/systemPrompt/in-built-prompts.js +5 -5
  56. package/dist/systemPrompt/schemas.d.ts +5 -5
  57. package/dist/systemPrompt/types.d.ts +11 -0
  58. package/dist/systemPrompt/types.d.ts.map +1 -1
  59. package/dist/tools/display-types.d.ts +10 -0
  60. package/dist/tools/display-types.d.ts.map +1 -1
  61. package/dist/tools/index.cjs +3 -1
  62. package/dist/tools/index.d.ts +1 -0
  63. package/dist/tools/index.d.ts.map +1 -1
  64. package/dist/tools/index.js +1 -0
  65. package/dist/tools/presentation.cjs +49 -0
  66. package/dist/tools/presentation.d.ts +11 -0
  67. package/dist/tools/presentation.d.ts.map +1 -0
  68. package/dist/tools/presentation.js +24 -0
  69. package/dist/tools/tool-manager.cjs +322 -155
  70. package/dist/tools/tool-manager.d.ts +23 -25
  71. package/dist/tools/tool-manager.d.ts.map +1 -1
  72. package/dist/tools/tool-manager.js +322 -155
  73. package/dist/tools/types.d.ts +134 -55
  74. package/dist/tools/types.d.ts.map +1 -1
  75. package/dist/utils/path.cjs +10 -1
  76. package/dist/utils/path.d.ts +5 -2
  77. package/dist/utils/path.d.ts.map +1 -1
  78. package/dist/utils/path.js +10 -1
  79. package/package.json +2 -2
@@ -1187,6 +1187,28 @@ Either:
1187
1187
  this.ensureStarted();
1188
1188
  return await this.sessionManager.listSessions();
1189
1189
  }
1190
+ /**
1191
+ * Sets the log level for this agent.
1192
+ *
1193
+ * Note: In some hosts (e.g. interactive CLI), session logs may be written by
1194
+ * session-scoped file loggers rather than the base agent logger. When a sessionId
1195
+ * is provided, this also updates the in-memory session logger so file logs reflect
1196
+ * the new level immediately.
1197
+ */
1198
+ async setLogLevel(level, options) {
1199
+ this.ensureStarted();
1200
+ this.logger.setLevel(level);
1201
+ const sessionId = options?.sessionId;
1202
+ if (!sessionId) {
1203
+ return;
1204
+ }
1205
+ const session = await this.sessionManager.getSession(sessionId, false);
1206
+ if (!session) {
1207
+ return;
1208
+ }
1209
+ session.logger.setLevel(level);
1210
+ session.logger.debug(`Log level changed to '${level}'`);
1211
+ }
1190
1212
  /**
1191
1213
  * Ends a session by removing it from memory without deleting conversation history.
1192
1214
  * Used for cleanup, agent shutdown, and session expiry.
@@ -1432,7 +1454,7 @@ Either:
1432
1454
  this.logger.debug(`Compaction skipped for session ${sessionId} - history too short`);
1433
1455
  return null;
1434
1456
  }
1435
- const contributorContext = { mcpManager: this.mcpManager };
1457
+ const contributorContext = await this.toolManager.buildContributorContext();
1436
1458
  const tools = await llmService.getEnabledTools();
1437
1459
  const beforeEstimate = await contextManager.getContextTokenEstimate(
1438
1460
  contributorContext,
@@ -1510,7 +1532,7 @@ Either:
1510
1532
  throw import_session.SessionError.notFound(sessionId);
1511
1533
  }
1512
1534
  const contextManager = session.getContextManager();
1513
- const contributorContext = { mcpManager: this.mcpManager };
1535
+ const contributorContext = await this.toolManager.buildContributorContext();
1514
1536
  const llmService = session.getLLMService();
1515
1537
  const tools = await llmService.getEnabledTools();
1516
1538
  const tokenEstimate = await contextManager.getContextTokenEstimate(
@@ -2277,9 +2299,7 @@ Either:
2277
2299
  */
2278
2300
  async getSystemPrompt() {
2279
2301
  this.ensureStarted();
2280
- const context2 = {
2281
- mcpManager: this.mcpManager
2282
- };
2302
+ const context2 = await this.toolManager.buildContributorContext();
2283
2303
  return await this.systemPromptManager.build(context2);
2284
2304
  }
2285
2305
  /**
@@ -9,7 +9,7 @@ import { AgentStateManager } from './state-manager.js';
9
9
  import { SessionManager, ChatSession } from '../session/index.js';
10
10
  import type { SessionMetadata } from '../session/index.js';
11
11
  import { AgentServices } from '../utils/service-initializer.js';
12
- import type { Logger } from '../logger/v2/types.js';
12
+ import type { Logger, LogLevel } from '../logger/v2/types.js';
13
13
  import type { McpServerConfig, McpServerStatus } from '../mcp/schemas.js';
14
14
  import type { ModelInfo } from '../llm/registry/index.js';
15
15
  import type { LLMProvider } from '../llm/types.js';
@@ -352,6 +352,17 @@ export declare class DextoAgent {
352
352
  * @returns Array of session IDs
353
353
  */
354
354
  listSessions(): Promise<string[]>;
355
+ /**
356
+ * Sets the log level for this agent.
357
+ *
358
+ * Note: In some hosts (e.g. interactive CLI), session logs may be written by
359
+ * session-scoped file loggers rather than the base agent logger. When a sessionId
360
+ * is provided, this also updates the in-memory session logger so file logs reflect
361
+ * the new level immediately.
362
+ */
363
+ setLogLevel(level: LogLevel, options?: {
364
+ sessionId?: string;
365
+ }): Promise<void>;
355
366
  /**
356
367
  * Ends a session by removing it from memory without deleting conversation history.
357
368
  * Used for cleanup, agent shutdown, and session expiry.
@@ -1 +1 @@
1
- {"version":3,"file":"DextoAgent.d.ts","sourceRoot":"","sources":["../../src/agent/DextoAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DextoAgent.d.ts","sourceRoot":"","sources":["../../src/agent/DextoAgent.ts"],"names":[],"mappings":"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"}
@@ -1122,6 +1122,28 @@ Either:
1122
1122
  this.ensureStarted();
1123
1123
  return await this.sessionManager.listSessions();
1124
1124
  }
1125
+ /**
1126
+ * Sets the log level for this agent.
1127
+ *
1128
+ * Note: In some hosts (e.g. interactive CLI), session logs may be written by
1129
+ * session-scoped file loggers rather than the base agent logger. When a sessionId
1130
+ * is provided, this also updates the in-memory session logger so file logs reflect
1131
+ * the new level immediately.
1132
+ */
1133
+ async setLogLevel(level, options) {
1134
+ this.ensureStarted();
1135
+ this.logger.setLevel(level);
1136
+ const sessionId = options?.sessionId;
1137
+ if (!sessionId) {
1138
+ return;
1139
+ }
1140
+ const session = await this.sessionManager.getSession(sessionId, false);
1141
+ if (!session) {
1142
+ return;
1143
+ }
1144
+ session.logger.setLevel(level);
1145
+ session.logger.debug(`Log level changed to '${level}'`);
1146
+ }
1125
1147
  /**
1126
1148
  * Ends a session by removing it from memory without deleting conversation history.
1127
1149
  * Used for cleanup, agent shutdown, and session expiry.
@@ -1367,7 +1389,7 @@ Either:
1367
1389
  this.logger.debug(`Compaction skipped for session ${sessionId} - history too short`);
1368
1390
  return null;
1369
1391
  }
1370
- const contributorContext = { mcpManager: this.mcpManager };
1392
+ const contributorContext = await this.toolManager.buildContributorContext();
1371
1393
  const tools = await llmService.getEnabledTools();
1372
1394
  const beforeEstimate = await contextManager.getContextTokenEstimate(
1373
1395
  contributorContext,
@@ -1445,7 +1467,7 @@ Either:
1445
1467
  throw SessionError.notFound(sessionId);
1446
1468
  }
1447
1469
  const contextManager = session.getContextManager();
1448
- const contributorContext = { mcpManager: this.mcpManager };
1470
+ const contributorContext = await this.toolManager.buildContributorContext();
1449
1471
  const llmService = session.getLLMService();
1450
1472
  const tools = await llmService.getEnabledTools();
1451
1473
  const tokenEstimate = await contextManager.getContextTokenEstimate(
@@ -2212,9 +2234,7 @@ Either:
2212
2234
  */
2213
2235
  async getSystemPrompt() {
2214
2236
  this.ensureStarted();
2215
- const context2 = {
2216
- mcpManager: this.mcpManager
2217
- };
2237
+ const context2 = await this.toolManager.buildContributorContext();
2218
2238
  return await this.systemPromptManager.build(context2);
2219
2239
  }
2220
2240
  /**
@@ -776,6 +776,11 @@ export declare const AgentCardSchema: z.ZodObject<{
776
776
  name: string;
777
777
  url: string;
778
778
  version: string;
779
+ capabilities: {
780
+ streaming: boolean;
781
+ stateTransitionHistory: boolean;
782
+ pushNotifications?: boolean | undefined;
783
+ };
779
784
  protocolVersion: string;
780
785
  preferredTransport: "JSONRPC" | "GRPC" | "HTTP+JSON";
781
786
  defaultInputModes: string[];
@@ -789,15 +794,6 @@ export declare const AgentCardSchema: z.ZodObject<{
789
794
  outputModes: string[];
790
795
  examples?: string[] | undefined;
791
796
  }[];
792
- capabilities: {
793
- streaming: boolean;
794
- stateTransitionHistory: boolean;
795
- pushNotifications?: boolean | undefined;
796
- };
797
- provider?: {
798
- url: string;
799
- organization: string;
800
- } | undefined;
801
797
  metadata?: z.objectOutputType<{
802
798
  dexto: z.ZodOptional<z.ZodObject<{
803
799
  authentication: z.ZodOptional<z.ZodObject<{
@@ -873,6 +869,10 @@ export declare const AgentCardSchema: z.ZodObject<{
873
869
  } | undefined;
874
870
  }>>;
875
871
  }, z.ZodTypeAny, "passthrough"> | undefined;
872
+ provider?: {
873
+ url: string;
874
+ organization: string;
875
+ } | undefined;
876
876
  iconUrl?: string | undefined;
877
877
  documentationUrl?: string | undefined;
878
878
  additionalInterfaces?: {
@@ -937,10 +937,6 @@ export declare const AgentCardSchema: z.ZodObject<{
937
937
  name: string;
938
938
  url: string;
939
939
  version: string;
940
- provider?: {
941
- url: string;
942
- organization: string;
943
- } | undefined;
944
940
  metadata?: z.objectInputType<{
945
941
  dexto: z.ZodOptional<z.ZodObject<{
946
942
  authentication: z.ZodOptional<z.ZodObject<{
@@ -1016,6 +1012,15 @@ export declare const AgentCardSchema: z.ZodObject<{
1016
1012
  } | undefined;
1017
1013
  }>>;
1018
1014
  }, z.ZodTypeAny, "passthrough"> | undefined;
1015
+ capabilities?: {
1016
+ streaming?: boolean | undefined;
1017
+ pushNotifications?: boolean | undefined;
1018
+ stateTransitionHistory?: boolean | undefined;
1019
+ } | undefined;
1020
+ provider?: {
1021
+ url: string;
1022
+ organization: string;
1023
+ } | undefined;
1019
1024
  protocolVersion?: string | undefined;
1020
1025
  preferredTransport?: "JSONRPC" | "GRPC" | "HTTP+JSON" | undefined;
1021
1026
  defaultInputModes?: string[] | undefined;
@@ -1035,11 +1040,6 @@ export declare const AgentCardSchema: z.ZodObject<{
1035
1040
  url: string;
1036
1041
  transport: "JSONRPC" | "GRPC" | "HTTP+JSON";
1037
1042
  }[] | undefined;
1038
- capabilities?: {
1039
- streaming?: boolean | undefined;
1040
- pushNotifications?: boolean | undefined;
1041
- stateTransitionHistory?: boolean | undefined;
1042
- } | undefined;
1043
1043
  securitySchemes?: Record<string, {
1044
1044
  type: "apiKey";
1045
1045
  name: string;
@@ -32,11 +32,36 @@ __export(manager_exports, {
32
32
  });
33
33
  module.exports = __toCommonJS(manager_exports);
34
34
  var import_node_path = __toESM(require("node:path"), 1);
35
+ var import_node_fs = require("node:fs");
35
36
  var import_types = require("./types.js");
36
37
  var import_factory = require("./factory.js");
37
38
  var import_types2 = require("../logger/v2/types.js");
38
39
  var import_errors = require("./errors.js");
39
40
  var import_pattern_utils = require("../tools/pattern-utils.js");
41
+ function tryRealpathSync(targetPath) {
42
+ try {
43
+ return (0, import_node_fs.realpathSync)(targetPath);
44
+ } catch {
45
+ return null;
46
+ }
47
+ }
48
+ function tryRealpathSyncWithExistingParent(resolvedPath) {
49
+ const direct = tryRealpathSync(resolvedPath);
50
+ if (direct) return direct;
51
+ let currentDir = import_node_path.default.dirname(resolvedPath);
52
+ while (true) {
53
+ const realDir = tryRealpathSync(currentDir);
54
+ if (realDir) {
55
+ const suffix = import_node_path.default.relative(currentDir, resolvedPath);
56
+ return import_node_path.default.join(realDir, suffix);
57
+ }
58
+ const parent = import_node_path.default.dirname(currentDir);
59
+ if (parent === currentDir) {
60
+ return null;
61
+ }
62
+ currentDir = parent;
63
+ }
64
+ }
40
65
  class ApprovalManager {
41
66
  handler;
42
67
  config;
@@ -82,7 +107,7 @@ class ApprovalManager {
82
107
  * Check if a pattern key is covered by any approved pattern for a tool.
83
108
  *
84
109
  * Note: This expects a pattern key (e.g. "git push *"), not raw arguments.
85
- * Tools are responsible for generating the key via Tool.getApprovalPatternKey().
110
+ * Tools are responsible for generating the key via `tool.approval.patternKey()`.
86
111
  */
87
112
  matchesPattern(toolName, patternKey) {
88
113
  const patterns = this.toolPatterns.get(toolName);
@@ -133,6 +158,29 @@ class ApprovalManager {
133
158
  return this.toolPatterns;
134
159
  }
135
160
  // ==================== Directory Access Methods ====================
161
+ /**
162
+ * Resolve a directory path for use as an approval key.
163
+ *
164
+ * We store BOTH the resolved path and (when available) its realpath, so approvals
165
+ * continue to work even when other subsystems canonicalize paths via realpath
166
+ * (e.g. macOS /tmp -> /private/tmp or custom symlinked directories).
167
+ */
168
+ getDirectoryApprovalKeys(directory) {
169
+ const resolved = import_node_path.default.resolve(directory);
170
+ const real = tryRealpathSyncWithExistingParent(resolved);
171
+ if (real && real !== resolved) {
172
+ return [resolved, real];
173
+ }
174
+ return [resolved];
175
+ }
176
+ getFileApprovalKeys(filePath) {
177
+ const resolved = import_node_path.default.resolve(filePath);
178
+ const real = tryRealpathSyncWithExistingParent(resolved);
179
+ if (real && real !== resolved) {
180
+ return [resolved, real];
181
+ }
182
+ return [resolved];
183
+ }
136
184
  /**
137
185
  * Initialize the working directory as a session-approved directory.
138
186
  * This should be called once during setup to ensure the working directory
@@ -141,9 +189,7 @@ class ApprovalManager {
141
189
  * @param workingDir The working directory path
142
190
  */
143
191
  initializeWorkingDirectory(workingDir) {
144
- const normalized = import_node_path.default.resolve(workingDir);
145
- this.approvedDirectories.set(normalized, "session");
146
- this.logger.debug(`Initialized working directory as session-approved: "${normalized}"`);
192
+ this.addApprovedDirectory(workingDir, "session");
147
193
  }
148
194
  /**
149
195
  * Add a directory to the approved list for this session.
@@ -163,16 +209,28 @@ class ApprovalManager {
163
209
  * ```
164
210
  */
165
211
  addApprovedDirectory(directory, type = "session") {
166
- const normalized = import_node_path.default.resolve(directory);
167
- const existing = this.approvedDirectories.get(normalized);
168
- if (existing === "session") {
212
+ const keys = this.getDirectoryApprovalKeys(directory);
213
+ const existingTypes = keys.map((key) => this.approvedDirectories.get(key)).filter((value) => value !== void 0);
214
+ const hasSessionApproval = existingTypes.includes("session");
215
+ const effectiveType = type === "session" || hasSessionApproval ? "session" : "once";
216
+ for (const key of keys) {
217
+ const existing = this.approvedDirectories.get(key);
218
+ if (existing === "session") {
219
+ continue;
220
+ }
221
+ this.approvedDirectories.set(key, effectiveType);
222
+ }
223
+ const resolvedKey = keys[0];
224
+ if (effectiveType === "session" && type === "once" && hasSessionApproval) {
169
225
  this.logger.debug(
170
- `Directory "${normalized}" already approved as 'session', not downgrading to '${type}'`
226
+ `Directory "${resolvedKey}" already approved as 'session', not downgrading to 'once'`
171
227
  );
172
228
  return;
173
229
  }
174
- this.approvedDirectories.set(normalized, type);
175
- this.logger.debug(`Added approved directory: "${normalized}" (type: ${type})`);
230
+ const realKey = keys.length > 1 ? keys[1] : null;
231
+ this.logger.debug(
232
+ `Added approved directory: "${resolvedKey}" (type: ${effectiveType})${realKey ? `, realpath: "${realKey}"` : ""}`
233
+ );
176
234
  }
177
235
  /**
178
236
  * Check if a file path is within any session-approved directory.
@@ -183,15 +241,16 @@ class ApprovalManager {
183
241
  * @returns true if the path is within a session-approved directory
184
242
  */
185
243
  isDirectorySessionApproved(filePath) {
186
- const normalized = import_node_path.default.resolve(filePath);
187
- for (const [approvedDir, type] of this.approvedDirectories) {
188
- if (type !== "session") continue;
189
- const relative = import_node_path.default.relative(approvedDir, normalized);
190
- if (!relative.startsWith("..") && !import_node_path.default.isAbsolute(relative)) {
191
- this.logger.debug(
192
- `Path "${normalized}" is within session-approved directory "${approvedDir}"`
193
- );
194
- return true;
244
+ for (const normalized of this.getFileApprovalKeys(filePath)) {
245
+ for (const [approvedDir, type] of this.approvedDirectories) {
246
+ if (type !== "session") continue;
247
+ const relative = import_node_path.default.relative(approvedDir, normalized);
248
+ if (!relative.startsWith("..") && !import_node_path.default.isAbsolute(relative)) {
249
+ this.logger.debug(
250
+ `Path "${normalized}" is within session-approved directory "${approvedDir}"`
251
+ );
252
+ return true;
253
+ }
195
254
  }
196
255
  }
197
256
  return false;
@@ -205,14 +264,15 @@ class ApprovalManager {
205
264
  * @returns true if the path is within any approved directory
206
265
  */
207
266
  isDirectoryApproved(filePath) {
208
- const normalized = import_node_path.default.resolve(filePath);
209
- for (const [approvedDir] of this.approvedDirectories) {
210
- const relative = import_node_path.default.relative(approvedDir, normalized);
211
- if (!relative.startsWith("..") && !import_node_path.default.isAbsolute(relative)) {
212
- this.logger.debug(
213
- `Path "${normalized}" is within approved directory "${approvedDir}"`
214
- );
215
- return true;
267
+ for (const normalized of this.getFileApprovalKeys(filePath)) {
268
+ for (const [approvedDir] of this.approvedDirectories) {
269
+ const relative = import_node_path.default.relative(approvedDir, normalized);
270
+ if (!relative.startsWith("..") && !import_node_path.default.isAbsolute(relative)) {
271
+ this.logger.debug(
272
+ `Path "${normalized}" is within approved directory "${approvedDir}"`
273
+ );
274
+ return true;
275
+ }
216
276
  }
217
277
  }
218
278
  return false;
@@ -76,7 +76,7 @@ export declare class ApprovalManager {
76
76
  * Check if a pattern key is covered by any approved pattern for a tool.
77
77
  *
78
78
  * Note: This expects a pattern key (e.g. "git push *"), not raw arguments.
79
- * Tools are responsible for generating the key via Tool.getApprovalPatternKey().
79
+ * Tools are responsible for generating the key via `tool.approval.patternKey()`.
80
80
  */
81
81
  matchesPattern(toolName: string, patternKey: string): boolean;
82
82
  /**
@@ -91,6 +91,15 @@ export declare class ApprovalManager {
91
91
  * Get all tool patterns (for debugging/display).
92
92
  */
93
93
  getAllToolPatterns(): ReadonlyMap<string, Set<string>>;
94
+ /**
95
+ * Resolve a directory path for use as an approval key.
96
+ *
97
+ * We store BOTH the resolved path and (when available) its realpath, so approvals
98
+ * continue to work even when other subsystems canonicalize paths via realpath
99
+ * (e.g. macOS /tmp -> /private/tmp or custom symlinked directories).
100
+ */
101
+ private getDirectoryApprovalKeys;
102
+ private getFileApprovalKeys;
94
103
  /**
95
104
  * Initialize the working directory as a session-approved directory.
96
105
  * This should be called once during setup to ensure the working directory
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/approval/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/approval/manager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,35 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
2
  import path from "node:path";
3
+ import { realpathSync } from "node:fs";
3
4
  import { ApprovalType, ApprovalStatus, DenialReason } from "./types.js";
4
5
  import { createApprovalRequest } from "./factory.js";
5
6
  import { DextoLogComponent } from "../logger/v2/types.js";
6
7
  import { ApprovalError } from "./errors.js";
7
8
  import { patternCovers } from "../tools/pattern-utils.js";
9
+ function tryRealpathSync(targetPath) {
10
+ try {
11
+ return realpathSync(targetPath);
12
+ } catch {
13
+ return null;
14
+ }
15
+ }
16
+ function tryRealpathSyncWithExistingParent(resolvedPath) {
17
+ const direct = tryRealpathSync(resolvedPath);
18
+ if (direct) return direct;
19
+ let currentDir = path.dirname(resolvedPath);
20
+ while (true) {
21
+ const realDir = tryRealpathSync(currentDir);
22
+ if (realDir) {
23
+ const suffix = path.relative(currentDir, resolvedPath);
24
+ return path.join(realDir, suffix);
25
+ }
26
+ const parent = path.dirname(currentDir);
27
+ if (parent === currentDir) {
28
+ return null;
29
+ }
30
+ currentDir = parent;
31
+ }
32
+ }
8
33
  class ApprovalManager {
9
34
  handler;
10
35
  config;
@@ -50,7 +75,7 @@ class ApprovalManager {
50
75
  * Check if a pattern key is covered by any approved pattern for a tool.
51
76
  *
52
77
  * Note: This expects a pattern key (e.g. "git push *"), not raw arguments.
53
- * Tools are responsible for generating the key via Tool.getApprovalPatternKey().
78
+ * Tools are responsible for generating the key via `tool.approval.patternKey()`.
54
79
  */
55
80
  matchesPattern(toolName, patternKey) {
56
81
  const patterns = this.toolPatterns.get(toolName);
@@ -101,6 +126,29 @@ class ApprovalManager {
101
126
  return this.toolPatterns;
102
127
  }
103
128
  // ==================== Directory Access Methods ====================
129
+ /**
130
+ * Resolve a directory path for use as an approval key.
131
+ *
132
+ * We store BOTH the resolved path and (when available) its realpath, so approvals
133
+ * continue to work even when other subsystems canonicalize paths via realpath
134
+ * (e.g. macOS /tmp -> /private/tmp or custom symlinked directories).
135
+ */
136
+ getDirectoryApprovalKeys(directory) {
137
+ const resolved = path.resolve(directory);
138
+ const real = tryRealpathSyncWithExistingParent(resolved);
139
+ if (real && real !== resolved) {
140
+ return [resolved, real];
141
+ }
142
+ return [resolved];
143
+ }
144
+ getFileApprovalKeys(filePath) {
145
+ const resolved = path.resolve(filePath);
146
+ const real = tryRealpathSyncWithExistingParent(resolved);
147
+ if (real && real !== resolved) {
148
+ return [resolved, real];
149
+ }
150
+ return [resolved];
151
+ }
104
152
  /**
105
153
  * Initialize the working directory as a session-approved directory.
106
154
  * This should be called once during setup to ensure the working directory
@@ -109,9 +157,7 @@ class ApprovalManager {
109
157
  * @param workingDir The working directory path
110
158
  */
111
159
  initializeWorkingDirectory(workingDir) {
112
- const normalized = path.resolve(workingDir);
113
- this.approvedDirectories.set(normalized, "session");
114
- this.logger.debug(`Initialized working directory as session-approved: "${normalized}"`);
160
+ this.addApprovedDirectory(workingDir, "session");
115
161
  }
116
162
  /**
117
163
  * Add a directory to the approved list for this session.
@@ -131,16 +177,28 @@ class ApprovalManager {
131
177
  * ```
132
178
  */
133
179
  addApprovedDirectory(directory, type = "session") {
134
- const normalized = path.resolve(directory);
135
- const existing = this.approvedDirectories.get(normalized);
136
- if (existing === "session") {
180
+ const keys = this.getDirectoryApprovalKeys(directory);
181
+ const existingTypes = keys.map((key) => this.approvedDirectories.get(key)).filter((value) => value !== void 0);
182
+ const hasSessionApproval = existingTypes.includes("session");
183
+ const effectiveType = type === "session" || hasSessionApproval ? "session" : "once";
184
+ for (const key of keys) {
185
+ const existing = this.approvedDirectories.get(key);
186
+ if (existing === "session") {
187
+ continue;
188
+ }
189
+ this.approvedDirectories.set(key, effectiveType);
190
+ }
191
+ const resolvedKey = keys[0];
192
+ if (effectiveType === "session" && type === "once" && hasSessionApproval) {
137
193
  this.logger.debug(
138
- `Directory "${normalized}" already approved as 'session', not downgrading to '${type}'`
194
+ `Directory "${resolvedKey}" already approved as 'session', not downgrading to 'once'`
139
195
  );
140
196
  return;
141
197
  }
142
- this.approvedDirectories.set(normalized, type);
143
- this.logger.debug(`Added approved directory: "${normalized}" (type: ${type})`);
198
+ const realKey = keys.length > 1 ? keys[1] : null;
199
+ this.logger.debug(
200
+ `Added approved directory: "${resolvedKey}" (type: ${effectiveType})${realKey ? `, realpath: "${realKey}"` : ""}`
201
+ );
144
202
  }
145
203
  /**
146
204
  * Check if a file path is within any session-approved directory.
@@ -151,15 +209,16 @@ class ApprovalManager {
151
209
  * @returns true if the path is within a session-approved directory
152
210
  */
153
211
  isDirectorySessionApproved(filePath) {
154
- const normalized = path.resolve(filePath);
155
- for (const [approvedDir, type] of this.approvedDirectories) {
156
- if (type !== "session") continue;
157
- const relative = path.relative(approvedDir, normalized);
158
- if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
159
- this.logger.debug(
160
- `Path "${normalized}" is within session-approved directory "${approvedDir}"`
161
- );
162
- return true;
212
+ for (const normalized of this.getFileApprovalKeys(filePath)) {
213
+ for (const [approvedDir, type] of this.approvedDirectories) {
214
+ if (type !== "session") continue;
215
+ const relative = path.relative(approvedDir, normalized);
216
+ if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
217
+ this.logger.debug(
218
+ `Path "${normalized}" is within session-approved directory "${approvedDir}"`
219
+ );
220
+ return true;
221
+ }
163
222
  }
164
223
  }
165
224
  return false;
@@ -173,14 +232,15 @@ class ApprovalManager {
173
232
  * @returns true if the path is within any approved directory
174
233
  */
175
234
  isDirectoryApproved(filePath) {
176
- const normalized = path.resolve(filePath);
177
- for (const [approvedDir] of this.approvedDirectories) {
178
- const relative = path.relative(approvedDir, normalized);
179
- if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
180
- this.logger.debug(
181
- `Path "${normalized}" is within approved directory "${approvedDir}"`
182
- );
183
- return true;
235
+ for (const normalized of this.getFileApprovalKeys(filePath)) {
236
+ for (const [approvedDir] of this.approvedDirectories) {
237
+ const relative = path.relative(approvedDir, normalized);
238
+ if (!relative.startsWith("..") && !path.isAbsolute(relative)) {
239
+ this.logger.debug(
240
+ `Path "${normalized}" is within approved directory "${approvedDir}"`
241
+ );
242
+ return true;
243
+ }
184
244
  }
185
245
  }
186
246
  return false;