attocode 0.1.3 → 0.1.4

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 (129) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/README.md +56 -0
  3. package/dist/src/agent.d.ts +5 -0
  4. package/dist/src/agent.d.ts.map +1 -1
  5. package/dist/src/agent.js +201 -15
  6. package/dist/src/agent.js.map +1 -1
  7. package/dist/src/analysis/feedback-loop.d.ts +115 -0
  8. package/dist/src/analysis/feedback-loop.d.ts.map +1 -0
  9. package/dist/src/analysis/feedback-loop.js +226 -0
  10. package/dist/src/analysis/feedback-loop.js.map +1 -0
  11. package/dist/src/analysis/index.d.ts +9 -0
  12. package/dist/src/analysis/index.d.ts.map +1 -0
  13. package/dist/src/analysis/index.js +9 -0
  14. package/dist/src/analysis/index.js.map +1 -0
  15. package/dist/src/analysis/prompt-templates.d.ts +36 -0
  16. package/dist/src/analysis/prompt-templates.d.ts.map +1 -0
  17. package/dist/src/analysis/prompt-templates.js +198 -0
  18. package/dist/src/analysis/prompt-templates.js.map +1 -0
  19. package/dist/src/analysis/trace-summary.d.ts +56 -0
  20. package/dist/src/analysis/trace-summary.d.ts.map +1 -0
  21. package/dist/src/analysis/trace-summary.js +261 -0
  22. package/dist/src/analysis/trace-summary.js.map +1 -0
  23. package/dist/src/commands/handler.d.ts.map +1 -1
  24. package/dist/src/commands/handler.js +194 -2
  25. package/dist/src/commands/handler.js.map +1 -1
  26. package/dist/src/config.d.ts +3 -0
  27. package/dist/src/config.d.ts.map +1 -1
  28. package/dist/src/config.js.map +1 -1
  29. package/dist/src/defaults.d.ts +11 -2
  30. package/dist/src/defaults.d.ts.map +1 -1
  31. package/dist/src/defaults.js +25 -2
  32. package/dist/src/defaults.js.map +1 -1
  33. package/dist/src/errors/index.d.ts +233 -0
  34. package/dist/src/errors/index.d.ts.map +1 -0
  35. package/dist/src/errors/index.js +427 -0
  36. package/dist/src/errors/index.js.map +1 -0
  37. package/dist/src/integrations/auto-compaction.d.ts +33 -0
  38. package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
  39. package/dist/src/integrations/auto-compaction.js +47 -3
  40. package/dist/src/integrations/auto-compaction.js.map +1 -1
  41. package/dist/src/integrations/dead-letter-queue.d.ts +208 -0
  42. package/dist/src/integrations/dead-letter-queue.d.ts.map +1 -0
  43. package/dist/src/integrations/dead-letter-queue.js +458 -0
  44. package/dist/src/integrations/dead-letter-queue.js.map +1 -0
  45. package/dist/src/integrations/health-check.d.ts +218 -0
  46. package/dist/src/integrations/health-check.d.ts.map +1 -0
  47. package/dist/src/integrations/health-check.js +400 -0
  48. package/dist/src/integrations/health-check.js.map +1 -0
  49. package/dist/src/integrations/index.d.ts +5 -0
  50. package/dist/src/integrations/index.d.ts.map +1 -1
  51. package/dist/src/integrations/index.js +9 -0
  52. package/dist/src/integrations/index.js.map +1 -1
  53. package/dist/src/integrations/mcp-client.d.ts +9 -0
  54. package/dist/src/integrations/mcp-client.d.ts.map +1 -1
  55. package/dist/src/integrations/mcp-client.js +49 -7
  56. package/dist/src/integrations/mcp-client.js.map +1 -1
  57. package/dist/src/integrations/openrouter-pricing.d.ts +28 -3
  58. package/dist/src/integrations/openrouter-pricing.d.ts.map +1 -1
  59. package/dist/src/integrations/openrouter-pricing.js +57 -16
  60. package/dist/src/integrations/openrouter-pricing.js.map +1 -1
  61. package/dist/src/integrations/retry.d.ts +131 -0
  62. package/dist/src/integrations/retry.d.ts.map +1 -0
  63. package/dist/src/integrations/retry.js +233 -0
  64. package/dist/src/integrations/retry.js.map +1 -0
  65. package/dist/src/integrations/sqlite-store.d.ts +42 -0
  66. package/dist/src/integrations/sqlite-store.d.ts.map +1 -1
  67. package/dist/src/integrations/sqlite-store.js +111 -0
  68. package/dist/src/integrations/sqlite-store.js.map +1 -1
  69. package/dist/src/main.js +88 -7
  70. package/dist/src/main.js.map +1 -1
  71. package/dist/src/modes/repl.d.ts.map +1 -1
  72. package/dist/src/modes/repl.js +37 -1
  73. package/dist/src/modes/repl.js.map +1 -1
  74. package/dist/src/modes/tui.d.ts.map +1 -1
  75. package/dist/src/modes/tui.js +46 -5
  76. package/dist/src/modes/tui.js.map +1 -1
  77. package/dist/src/modes.d.ts.map +1 -1
  78. package/dist/src/modes.js +10 -3
  79. package/dist/src/modes.js.map +1 -1
  80. package/dist/src/persistence/schema.d.ts +4 -0
  81. package/dist/src/persistence/schema.d.ts.map +1 -1
  82. package/dist/src/persistence/schema.js +49 -0
  83. package/dist/src/persistence/schema.js.map +1 -1
  84. package/dist/src/providers/adapters/anthropic.d.ts +24 -2
  85. package/dist/src/providers/adapters/anthropic.d.ts.map +1 -1
  86. package/dist/src/providers/adapters/anthropic.js +184 -0
  87. package/dist/src/providers/adapters/anthropic.js.map +1 -1
  88. package/dist/src/tools/bash.d.ts.map +1 -1
  89. package/dist/src/tools/bash.js +7 -4
  90. package/dist/src/tools/bash.js.map +1 -1
  91. package/dist/src/tools/file.d.ts.map +1 -1
  92. package/dist/src/tools/file.js +31 -10
  93. package/dist/src/tools/file.js.map +1 -1
  94. package/dist/src/tools/permission.d.ts +12 -0
  95. package/dist/src/tools/permission.d.ts.map +1 -1
  96. package/dist/src/tools/permission.js +136 -0
  97. package/dist/src/tools/permission.js.map +1 -1
  98. package/dist/src/tools/registry.d.ts +23 -1
  99. package/dist/src/tools/registry.d.ts.map +1 -1
  100. package/dist/src/tools/registry.js +77 -17
  101. package/dist/src/tools/registry.js.map +1 -1
  102. package/dist/src/tools/standard.d.ts.map +1 -1
  103. package/dist/src/tools/standard.js +8 -0
  104. package/dist/src/tools/standard.js.map +1 -1
  105. package/dist/src/tools/types.d.ts +20 -1
  106. package/dist/src/tools/types.d.ts.map +1 -1
  107. package/dist/src/tools/types.js.map +1 -1
  108. package/dist/src/tracing/trace-collector.d.ts +198 -2
  109. package/dist/src/tracing/trace-collector.d.ts.map +1 -1
  110. package/dist/src/tracing/trace-collector.js +315 -3
  111. package/dist/src/tracing/trace-collector.js.map +1 -1
  112. package/dist/src/tracing/types.d.ts +470 -2
  113. package/dist/src/tracing/types.d.ts.map +1 -1
  114. package/dist/src/tracing/types.js +25 -0
  115. package/dist/src/tracing/types.js.map +1 -1
  116. package/dist/src/tui/app.d.ts.map +1 -1
  117. package/dist/src/tui/app.js +161 -4
  118. package/dist/src/tui/app.js.map +1 -1
  119. package/dist/src/types.d.ts +35 -0
  120. package/dist/src/types.d.ts.map +1 -1
  121. package/package.json +6 -3
  122. package/dist/src/hello.d.ts +0 -2
  123. package/dist/src/hello.d.ts.map +0 -1
  124. package/dist/src/hello.js +0 -4
  125. package/dist/src/hello.js.map +0 -1
  126. package/dist/src/test-sqlite.d.ts +0 -2
  127. package/dist/src/test-sqlite.d.ts.map +0 -1
  128. package/dist/src/test-sqlite.js +0 -114
  129. package/dist/src/test-sqlite.js.map +0 -1
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Generic Retry Utility
3
+ *
4
+ * Provides configurable retry logic with exponential backoff for transient failures.
5
+ * Used by tools, MCP client, and other operations that may encounter temporary errors.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const result = await withRetry(
10
+ * () => fetchData(),
11
+ * {
12
+ * maxAttempts: 3,
13
+ * baseDelayMs: 1000,
14
+ * retryableErrors: ['ETIMEDOUT', 'ECONNRESET'],
15
+ * }
16
+ * );
17
+ * ```
18
+ */
19
+ /**
20
+ * Default retryable error patterns.
21
+ * These are common transient errors that often resolve on retry.
22
+ */
23
+ export const DEFAULT_RETRYABLE_ERRORS = [
24
+ 'ETIMEDOUT',
25
+ 'ECONNRESET',
26
+ 'ECONNREFUSED',
27
+ 'ENOTFOUND',
28
+ 'EPIPE',
29
+ 'EBUSY',
30
+ 'timeout',
31
+ 'socket hang up',
32
+ 'network error',
33
+ 'temporarily unavailable',
34
+ 'service unavailable',
35
+ 'rate limit',
36
+ ];
37
+ /**
38
+ * Default retryable error codes.
39
+ */
40
+ export const DEFAULT_RETRYABLE_CODES = [
41
+ 'ETIMEDOUT',
42
+ 'ECONNRESET',
43
+ 'ECONNREFUSED',
44
+ 'ENOTFOUND',
45
+ 'EPIPE',
46
+ 'EBUSY',
47
+ 'EAGAIN',
48
+ 'ENETUNREACH',
49
+ 'EHOSTUNREACH',
50
+ ];
51
+ // =============================================================================
52
+ // RETRY IMPLEMENTATION
53
+ // =============================================================================
54
+ /**
55
+ * Execute a function with retry logic.
56
+ *
57
+ * @param fn - The async function to execute
58
+ * @param config - Retry configuration
59
+ * @returns Promise resolving to the result or throwing the last error
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * // Basic usage with defaults
64
+ * const data = await withRetry(() => fetchData(), { maxAttempts: 3 });
65
+ *
66
+ * // With custom config
67
+ * const data = await withRetry(
68
+ * () => unreliableApi(),
69
+ * {
70
+ * maxAttempts: 5,
71
+ * baseDelayMs: 500,
72
+ * backoffMultiplier: 1.5,
73
+ * retryableErrors: ['timeout'],
74
+ * onRetry: (attempt, err) => console.log(`Retry ${attempt}: ${err.message}`),
75
+ * }
76
+ * );
77
+ * ```
78
+ */
79
+ export async function withRetry(fn, config) {
80
+ const { maxAttempts, baseDelayMs = 1000, maxDelayMs = 30000, backoffMultiplier = 2, jitter = true, retryableErrors = DEFAULT_RETRYABLE_ERRORS, retryableCodes = DEFAULT_RETRYABLE_CODES, isRetryable, onRetry, onExhausted, } = config;
81
+ let lastError;
82
+ let attempt = 0;
83
+ while (attempt < maxAttempts) {
84
+ attempt++;
85
+ try {
86
+ return await fn();
87
+ }
88
+ catch (error) {
89
+ lastError = error;
90
+ // Check if this is the last attempt
91
+ if (attempt >= maxAttempts) {
92
+ onExhausted?.(attempt, lastError);
93
+ throw lastError;
94
+ }
95
+ // Check if error is retryable
96
+ if (!shouldRetry(lastError, retryableErrors, retryableCodes, isRetryable)) {
97
+ throw lastError;
98
+ }
99
+ // Calculate delay with exponential backoff
100
+ let delay = Math.min(baseDelayMs * Math.pow(backoffMultiplier, attempt - 1), maxDelayMs);
101
+ // Add jitter (±25%)
102
+ if (jitter) {
103
+ const jitterAmount = delay * 0.25;
104
+ delay += (Math.random() - 0.5) * 2 * jitterAmount;
105
+ delay = Math.max(0, delay);
106
+ }
107
+ onRetry?.(attempt, lastError, delay);
108
+ // Wait before retry
109
+ await sleep(delay);
110
+ }
111
+ }
112
+ // Should never reach here, but TypeScript needs this
113
+ throw lastError ?? new Error('Retry failed');
114
+ }
115
+ /**
116
+ * Execute a function with retry and return detailed result.
117
+ *
118
+ * Unlike withRetry, this never throws - it returns a result object
119
+ * that indicates success or failure.
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const result = await withRetryResult(() => unreliableOp(), { maxAttempts: 3 });
124
+ * if (result.success) {
125
+ * console.log('Got:', result.value);
126
+ * } else {
127
+ * console.log('Failed after', result.attempts, 'attempts:', result.error);
128
+ * }
129
+ * ```
130
+ */
131
+ export async function withRetryResult(fn, config) {
132
+ const startTime = Date.now();
133
+ let attempts = 0;
134
+ try {
135
+ const result = await withRetry(async () => {
136
+ attempts++;
137
+ return await fn();
138
+ }, config);
139
+ return {
140
+ success: true,
141
+ value: result,
142
+ attempts,
143
+ totalTimeMs: Date.now() - startTime,
144
+ };
145
+ }
146
+ catch (error) {
147
+ return {
148
+ success: false,
149
+ error: error,
150
+ attempts,
151
+ totalTimeMs: Date.now() - startTime,
152
+ };
153
+ }
154
+ }
155
+ // =============================================================================
156
+ // HELPERS
157
+ // =============================================================================
158
+ /**
159
+ * Determine if an error should trigger a retry.
160
+ */
161
+ function shouldRetry(error, retryableErrors, retryableCodes, customIsRetryable) {
162
+ // Custom check takes precedence
163
+ if (customIsRetryable) {
164
+ return customIsRetryable(error);
165
+ }
166
+ // Check error code
167
+ const code = error.code;
168
+ if (code && retryableCodes.includes(code)) {
169
+ return true;
170
+ }
171
+ // Check error message patterns
172
+ const message = error.message.toLowerCase();
173
+ for (const pattern of retryableErrors) {
174
+ if (message.includes(pattern.toLowerCase())) {
175
+ return true;
176
+ }
177
+ }
178
+ return false;
179
+ }
180
+ /**
181
+ * Sleep for a specified duration.
182
+ */
183
+ function sleep(ms) {
184
+ return new Promise(resolve => setTimeout(resolve, ms));
185
+ }
186
+ // =============================================================================
187
+ // SPECIALIZED RETRY CONFIGS
188
+ // =============================================================================
189
+ /**
190
+ * Retry config for tool execution.
191
+ * Conservative: 2 attempts, short delays.
192
+ */
193
+ export const TOOL_RETRY_CONFIG = {
194
+ baseDelayMs: 500,
195
+ maxDelayMs: 5000,
196
+ backoffMultiplier: 2,
197
+ retryableCodes: ['ETIMEDOUT', 'ECONNRESET', 'EBUSY', 'EAGAIN'],
198
+ retryableErrors: ['timeout', 'temporarily unavailable'],
199
+ };
200
+ /**
201
+ * Retry config for MCP calls.
202
+ * More aggressive: 3 attempts, longer delays.
203
+ */
204
+ export const MCP_RETRY_CONFIG = {
205
+ baseDelayMs: 1000,
206
+ maxDelayMs: 10000,
207
+ backoffMultiplier: 2,
208
+ retryableCodes: DEFAULT_RETRYABLE_CODES,
209
+ retryableErrors: ['timeout', 'socket hang up', 'connection reset'],
210
+ };
211
+ /**
212
+ * Retry config for file operations.
213
+ * Short delays, handles busy files.
214
+ */
215
+ export const FILE_RETRY_CONFIG = {
216
+ baseDelayMs: 100,
217
+ maxDelayMs: 2000,
218
+ backoffMultiplier: 2,
219
+ retryableCodes: ['EBUSY', 'EAGAIN', 'EMFILE', 'ENFILE'],
220
+ retryableErrors: ['resource busy', 'too many open files'],
221
+ };
222
+ /**
223
+ * Retry config for network operations.
224
+ * Standard exponential backoff.
225
+ */
226
+ export const NETWORK_RETRY_CONFIG = {
227
+ baseDelayMs: 1000,
228
+ maxDelayMs: 30000,
229
+ backoffMultiplier: 2,
230
+ retryableCodes: DEFAULT_RETRYABLE_CODES,
231
+ retryableErrors: DEFAULT_RETRYABLE_ERRORS,
232
+ };
233
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/integrations/retry.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * await store.appendMessage({ role: 'user', content: 'Hello' });
12
12
  * ```
13
13
  */
14
+ import Database from 'better-sqlite3';
14
15
  import type { Message, ToolCall } from '../types.js';
15
16
  import type { SessionEntry, SessionEventListener, SessionStoreConfig } from './session-store.js';
16
17
  import type { PendingPlan } from './pending-plan.js';
@@ -303,6 +304,11 @@ export declare class SQLiteStore {
303
304
  checkpointCount: number;
304
305
  dbSizeBytes: number;
305
306
  };
307
+ /**
308
+ * Get the underlying database instance.
309
+ * Useful for integrations that need direct database access (e.g., DeadLetterQueue).
310
+ */
311
+ getDatabase(): Database.Database;
306
312
  /**
307
313
  * Log API usage for cost tracking.
308
314
  * Inserts a usage log entry and updates session totals atomically.
@@ -490,6 +496,42 @@ export declare class SQLiteStore {
490
496
  migrated: number;
491
497
  failed: number;
492
498
  }>;
499
+ /**
500
+ * Check if remembered permissions feature is available.
501
+ */
502
+ hasRememberedPermissionsFeature(): boolean;
503
+ /**
504
+ * Remember a permission decision.
505
+ * @param toolName - The tool name (e.g., 'bash')
506
+ * @param decision - 'always' or 'never'
507
+ * @param pattern - Optional command pattern (for bash commands)
508
+ */
509
+ rememberPermission(toolName: string, decision: 'always' | 'never', pattern?: string): void;
510
+ /**
511
+ * Get a remembered permission decision.
512
+ * Returns the decision if found, or undefined if no remembered decision.
513
+ */
514
+ getRememberedPermission(toolName: string, pattern?: string): {
515
+ decision: 'always' | 'never';
516
+ pattern?: string;
517
+ } | undefined;
518
+ /**
519
+ * List all remembered permission decisions.
520
+ */
521
+ listRememberedPermissions(): Array<{
522
+ toolName: string;
523
+ pattern?: string;
524
+ decision: 'always' | 'never';
525
+ createdAt: string;
526
+ }>;
527
+ /**
528
+ * Remove a remembered permission decision.
529
+ */
530
+ forgetPermission(toolName: string, pattern?: string): void;
531
+ /**
532
+ * Clear all remembered permissions for a tool or all tools.
533
+ */
534
+ clearRememberedPermissions(toolName?: string): void;
493
535
  /**
494
536
  * Prune old sessions if over limit.
495
537
  */
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../src/integrations/sqlite-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sqlite-store.d.ts","sourceRoot":"","sources":["../../../src/integrations/sqlite-store.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,8 @@ export class SQLiteStore {
37
37
  goals: false,
38
38
  workerResults: false,
39
39
  pendingPlans: false,
40
+ deadLetterQueue: false,
41
+ rememberedPermissions: false,
40
42
  };
41
43
  // Prepared statements for performance
42
44
  // Goal-related statements are optional (only prepared if feature is available)
@@ -331,6 +333,28 @@ export class SQLiteStore {
331
333
  DELETE FROM pending_plans WHERE id = ?
332
334
  `);
333
335
  }
336
+ // Remembered permissions statements (optional - only if feature available)
337
+ if (this.features.rememberedPermissions) {
338
+ this.stmts.insertRememberedPermission = this.db.prepare(`
339
+ INSERT OR REPLACE INTO remembered_permissions (tool_name, pattern, decision, created_at)
340
+ VALUES (@toolName, @pattern, @decision, @createdAt)
341
+ `);
342
+ this.stmts.getRememberedPermission = this.db.prepare(`
343
+ SELECT tool_name as toolName, pattern, decision, created_at as createdAt
344
+ FROM remembered_permissions
345
+ WHERE tool_name = ? AND (pattern = ? OR pattern IS NULL)
346
+ ORDER BY pattern IS NULL ASC
347
+ LIMIT 1
348
+ `);
349
+ this.stmts.listRememberedPermissions = this.db.prepare(`
350
+ SELECT tool_name as toolName, pattern, decision, created_at as createdAt
351
+ FROM remembered_permissions
352
+ ORDER BY tool_name, pattern
353
+ `);
354
+ this.stmts.deleteRememberedPermission = this.db.prepare(`
355
+ DELETE FROM remembered_permissions WHERE tool_name = ? AND (pattern = ? OR (? IS NULL AND pattern IS NULL))
356
+ `);
357
+ }
334
358
  }
335
359
  // ===========================================================================
336
360
  // SESSION MANAGEMENT (compatible with SessionStore interface)
@@ -583,6 +607,13 @@ export class SQLiteStore {
583
607
  const dbSizeBytes = this.db.prepare('SELECT page_count * page_size as size FROM pragma_page_count(), pragma_page_size()').get().size;
584
608
  return { sessionCount, entryCount, toolCallCount, checkpointCount, dbSizeBytes };
585
609
  }
610
+ /**
611
+ * Get the underlying database instance.
612
+ * Useful for integrations that need direct database access (e.g., DeadLetterQueue).
613
+ */
614
+ getDatabase() {
615
+ return this.db;
616
+ }
586
617
  // ===========================================================================
587
618
  // COST TRACKING
588
619
  // ===========================================================================
@@ -1358,6 +1389,86 @@ export class SQLiteStore {
1358
1389
  return { migrated, failed };
1359
1390
  }
1360
1391
  // ===========================================================================
1392
+ // REMEMBERED PERMISSIONS
1393
+ // ===========================================================================
1394
+ /**
1395
+ * Check if remembered permissions feature is available.
1396
+ */
1397
+ hasRememberedPermissionsFeature() {
1398
+ return this.features.rememberedPermissions;
1399
+ }
1400
+ /**
1401
+ * Remember a permission decision.
1402
+ * @param toolName - The tool name (e.g., 'bash')
1403
+ * @param decision - 'always' or 'never'
1404
+ * @param pattern - Optional command pattern (for bash commands)
1405
+ */
1406
+ rememberPermission(toolName, decision, pattern) {
1407
+ if (!this.features.rememberedPermissions || !this.stmts.insertRememberedPermission) {
1408
+ return;
1409
+ }
1410
+ this.stmts.insertRememberedPermission.run({
1411
+ toolName,
1412
+ pattern: pattern ?? null,
1413
+ decision,
1414
+ createdAt: new Date().toISOString(),
1415
+ });
1416
+ }
1417
+ /**
1418
+ * Get a remembered permission decision.
1419
+ * Returns the decision if found, or undefined if no remembered decision.
1420
+ */
1421
+ getRememberedPermission(toolName, pattern) {
1422
+ if (!this.features.rememberedPermissions || !this.stmts.getRememberedPermission) {
1423
+ return undefined;
1424
+ }
1425
+ const row = this.stmts.getRememberedPermission.get(toolName, pattern ?? null);
1426
+ if (!row)
1427
+ return undefined;
1428
+ return {
1429
+ decision: row.decision,
1430
+ pattern: row.pattern ?? undefined,
1431
+ };
1432
+ }
1433
+ /**
1434
+ * List all remembered permission decisions.
1435
+ */
1436
+ listRememberedPermissions() {
1437
+ if (!this.features.rememberedPermissions || !this.stmts.listRememberedPermissions) {
1438
+ return [];
1439
+ }
1440
+ const rows = this.stmts.listRememberedPermissions.all();
1441
+ return rows.map(row => ({
1442
+ toolName: row.toolName,
1443
+ pattern: row.pattern ?? undefined,
1444
+ decision: row.decision,
1445
+ createdAt: row.createdAt,
1446
+ }));
1447
+ }
1448
+ /**
1449
+ * Remove a remembered permission decision.
1450
+ */
1451
+ forgetPermission(toolName, pattern) {
1452
+ if (!this.features.rememberedPermissions || !this.stmts.deleteRememberedPermission) {
1453
+ return;
1454
+ }
1455
+ this.stmts.deleteRememberedPermission.run(toolName, pattern ?? null, pattern ?? null);
1456
+ }
1457
+ /**
1458
+ * Clear all remembered permissions for a tool or all tools.
1459
+ */
1460
+ clearRememberedPermissions(toolName) {
1461
+ if (!this.features.rememberedPermissions) {
1462
+ return;
1463
+ }
1464
+ if (toolName) {
1465
+ this.db.prepare('DELETE FROM remembered_permissions WHERE tool_name = ?').run(toolName);
1466
+ }
1467
+ else {
1468
+ this.db.prepare('DELETE FROM remembered_permissions').run();
1469
+ }
1470
+ }
1471
+ // ===========================================================================
1361
1472
  // LIFECYCLE
1362
1473
  // ===========================================================================
1363
1474
  /**