@google/gemini-cli-core 0.37.0-preview.0 → 0.37.0-preview.2

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.
@@ -180,9 +180,16 @@ As described in the
180
180
  rule that does not explicitly specify `modes` is considered "always active" and
181
181
  will apply to Plan Mode as well.
182
182
 
183
- If you want a rule to apply to other modes but _not_ to Plan Mode, you must
184
- explicitly specify the target modes. For example, to allow `npm test` in default
185
- and Auto-Edit modes but not in Plan Mode:
183
+ To maintain the integrity of Plan Mode as a safe research environment,
184
+ persistent tool approvals are context-aware. Approvals granted in modes like
185
+ Default or Auto-Edit do not apply to Plan Mode, ensuring that tools trusted for
186
+ implementation don't automatically execute while you're researching. However,
187
+ approvals granted while in Plan Mode are treated as intentional choices for
188
+ global trust and apply to all modes.
189
+
190
+ If you want to manually restrict a rule to other modes but _not_ to Plan Mode,
191
+ you must explicitly specify the target modes. For example, to allow `npm test`
192
+ in default and Auto-Edit modes but not in Plan Mode:
186
193
 
187
194
  ```toml
188
195
  [[rule]]
@@ -47,39 +47,39 @@ they appear in the UI.
47
47
 
48
48
  ### UI
49
49
 
50
- | UI Label | Setting | Description | Default |
51
- | ------------------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
52
- | Auto Theme Switching | `ui.autoThemeSwitching` | Automatically switch between default light and dark themes based on terminal background color. | `true` |
53
- | Terminal Background Polling Interval | `ui.terminalBackgroundPollingInterval` | Interval in seconds to poll the terminal background color. | `60` |
54
- | Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
55
- | Inline Thinking | `ui.inlineThinkingMode` | Display model thinking inline: off or full. | `"off"` |
56
- | Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false` |
57
- | Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true` |
58
- | Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
59
- | Show Compatibility Warnings | `ui.showCompatibilityWarnings` | Show warnings about terminal or OS compatibility issues. | `true` |
60
- | Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
61
- | Escape Pasted @ Symbols | `ui.escapePastedAtSymbols` | When enabled, @ symbols in pasted text are escaped to prevent unintended @path expansion. | `false` |
62
- | Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true` |
63
- | Compact Tool Output | `ui.compactToolOutput` | Display tool outputs (like directory listings and file reads) in a compact, structured format. | `false` |
64
- | Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
65
- | Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
66
- | Hide CWD | `ui.footer.hideCWD` | Hide the current working directory in the footer. | `false` |
67
- | Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
68
- | Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
69
- | Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window usage percentage. | `true` |
70
- | Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
71
- | Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
72
- | Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
73
- | Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
74
- | Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
75
- | Show User Identity | `ui.showUserIdentity` | Show the signed-in user's identity (e.g. email) in the UI. | `true` |
76
- | Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
77
- | Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true` |
78
- | Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
79
- | Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true` |
80
- | Loading Phrases | `ui.loadingPhrases` | What to show while the model is working: tips, witty comments, both, or nothing. | `"tips"` |
81
- | Error Verbosity | `ui.errorVerbosity` | Controls whether recoverable errors are hidden (low) or fully shown (full). | `"low"` |
82
- | Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
50
+ | UI Label | Setting | Description | Default |
51
+ | ------------------------------------ | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
52
+ | Auto Theme Switching | `ui.autoThemeSwitching` | Automatically switch between default light and dark themes based on terminal background color. | `true` |
53
+ | Terminal Background Polling Interval | `ui.terminalBackgroundPollingInterval` | Interval in seconds to poll the terminal background color. | `60` |
54
+ | Hide Window Title | `ui.hideWindowTitle` | Hide the window title bar | `false` |
55
+ | Inline Thinking | `ui.inlineThinkingMode` | Display model thinking inline: off or full. | `"off"` |
56
+ | Show Thoughts in Title | `ui.showStatusInTitle` | Show Gemini CLI model thoughts in the terminal window title during the working phase | `false` |
57
+ | Dynamic Window Title | `ui.dynamicWindowTitle` | Update the terminal window title with current status icons (Ready: ◇, Action Required: ✋, Working: ✦) | `true` |
58
+ | Show Home Directory Warning | `ui.showHomeDirectoryWarning` | Show a warning when running Gemini CLI in the home directory. | `true` |
59
+ | Show Compatibility Warnings | `ui.showCompatibilityWarnings` | Show warnings about terminal or OS compatibility issues. | `true` |
60
+ | Hide Tips | `ui.hideTips` | Hide helpful tips in the UI | `false` |
61
+ | Escape Pasted @ Symbols | `ui.escapePastedAtSymbols` | When enabled, @ symbols in pasted text are escaped to prevent unintended @path expansion. | `false` |
62
+ | Show Shortcuts Hint | `ui.showShortcutsHint` | Show the "? for shortcuts" hint above the input. | `true` |
63
+ | Compact Tool Output | `ui.compactToolOutput` | Display tool outputs (like directory listings and file reads) in a compact, structured format. | `false` |
64
+ | Hide Banner | `ui.hideBanner` | Hide the application banner | `false` |
65
+ | Hide Context Summary | `ui.hideContextSummary` | Hide the context summary (GEMINI.md, MCP servers) above the input. | `false` |
66
+ | Hide CWD | `ui.footer.hideCWD` | Hide the current working directory in the footer. | `false` |
67
+ | Hide Sandbox Status | `ui.footer.hideSandboxStatus` | Hide the sandbox status indicator in the footer. | `false` |
68
+ | Hide Model Info | `ui.footer.hideModelInfo` | Hide the model name and context usage in the footer. | `false` |
69
+ | Hide Context Window Percentage | `ui.footer.hideContextPercentage` | Hides the context window usage percentage. | `true` |
70
+ | Hide Footer | `ui.hideFooter` | Hide the footer from the UI | `false` |
71
+ | Show Memory Usage | `ui.showMemoryUsage` | Display memory usage information in the UI | `false` |
72
+ | Show Line Numbers | `ui.showLineNumbers` | Show line numbers in the chat. | `true` |
73
+ | Show Citations | `ui.showCitations` | Show citations for generated text in the chat. | `false` |
74
+ | Show Model Info In Chat | `ui.showModelInfoInChat` | Show the model name in the chat for each model turn. | `false` |
75
+ | Show User Identity | `ui.showUserIdentity` | Show the signed-in user's identity (e.g. email) in the UI. | `true` |
76
+ | Use Alternate Screen Buffer | `ui.useAlternateBuffer` | Use an alternate screen buffer for the UI, preserving shell history. | `false` |
77
+ | Use Background Color | `ui.useBackgroundColor` | Whether to use background colors in the UI. | `true` |
78
+ | Incremental Rendering | `ui.incrementalRendering` | Enable incremental rendering for the UI. This option will reduce flickering but may cause rendering artifacts. Only supported when useAlternateBuffer is enabled. | `true` |
79
+ | Show Spinner | `ui.showSpinner` | Show the spinner during operations. | `true` |
80
+ | Loading Phrases | `ui.loadingPhrases` | What to show while the model is working: tips, witty comments, all, or off. | `"off"` |
81
+ | Error Verbosity | `ui.errorVerbosity` | Controls whether recoverable errors are hidden (low) or fully shown (full). | `"low"` |
82
+ | Screen Reader Mode | `ui.accessibility.screenReader` | Render output in plain-text to be more screen reader accessible | `false` |
83
83
 
84
84
  ### IDE
85
85
 
@@ -354,8 +354,8 @@ their corresponding top-level category object in your `settings.json` file.
354
354
 
355
355
  - **`ui.loadingPhrases`** (enum):
356
356
  - **Description:** What to show while the model is working: tips, witty
357
- comments, both, or nothing.
358
- - **Default:** `"tips"`
357
+ comments, all, or off.
358
+ - **Default:** `"off"`
359
359
  - **Values:** `"tips"`, `"witty"`, `"all"`, `"off"`
360
360
 
361
361
  - **`ui.errorVerbosity`** (enum):
@@ -171,6 +171,24 @@ modes specified, it is always active.
171
171
  [Customizing Plan Mode Policies](../cli/plan-mode.md#customizing-policies).
172
172
  - `yolo`: A mode where all tools are auto-approved (use with extreme caution).
173
173
 
174
+ To maintain the integrity of Plan Mode as a safe research environment,
175
+ persistent tool approvals are context-aware. When you select **"Allow for all
176
+ future sessions"**, the policy engine explicitly includes the current mode and
177
+ all more permissive modes in the hierarchy (`plan` < `default` < `autoEdit` <
178
+ `yolo`).
179
+
180
+ - **Approvals in `plan` mode**: These represent an intentional choice to trust a
181
+ tool globally. The resulting rule explicitly includes all modes (`plan`,
182
+ `default`, `autoEdit`, and `yolo`).
183
+ - **Approvals in other modes**: These only apply to the current mode and those
184
+ more permissive. For example:
185
+ - An approval granted in **`default`** mode applies to `default`, `autoEdit`,
186
+ and `yolo`.
187
+ - An approval granted in **`autoEdit`** mode applies to `autoEdit` and `yolo`.
188
+ - An approval granted in **`yolo`** mode applies only to `yolo`. This ensures
189
+ that trust flows correctly to more permissive environments while maintaining
190
+ the safety of more restricted modes like `plan`.
191
+
174
192
  ## Rule matching
175
193
 
176
194
  When a tool call is made, the engine checks it against all active rules,
@@ -304,7 +322,8 @@ priority = 10
304
322
  denyMessage = "Deletion is permanent"
305
323
 
306
324
  # (Optional) An array of approval modes where this rule is active.
307
- modes = ["autoEdit"]
325
+ # If omitted or empty, the rule applies to all modes.
326
+ modes = ["default", "autoEdit", "yolo"]
308
327
 
309
328
  # (Optional) A boolean to restrict the rule to interactive (true) or
310
329
  # non-interactive (false) environments.
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { type FunctionCall } from '@google/genai';
7
+ import { type ApprovalMode } from '../policy/types.js';
7
8
  import type { ToolConfirmationOutcome, ToolConfirmationPayload, DiffStat } from '../tools/tools.js';
8
9
  import type { ToolCall } from '../scheduler/types.js';
9
10
  import type { SandboxPermissions } from '../services/sandboxManager.js';
@@ -132,6 +133,7 @@ export interface UpdatePolicy {
132
133
  commandPrefix?: string | string[];
133
134
  mcpName?: string;
134
135
  allowRedirection?: boolean;
136
+ modes?: ApprovalMode[];
135
137
  }
136
138
  export interface ToolPolicyRejection {
137
139
  type: MessageBusType.TOOL_POLICY_REJECTION;
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import {} from '@google/genai';
7
+ import {} from '../policy/types.js';
7
8
  export var MessageBusType;
8
9
  (function (MessageBusType) {
9
10
  MessageBusType["TOOL_CONFIRMATION_REQUEST"] = "tool-confirmation-request";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/confirmation-bus/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,MAAM,eAAe,CAAC;AAUlD,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,yEAAuD,CAAA;IACvD,2EAAyD,CAAA;IACzD,iEAA+C,CAAA;IAC/C,mEAAiD,CAAA;IACjD,mEAAiD,CAAA;IACjD,iDAA+B,CAAA;IAC/B,yDAAuC,CAAA;IACvC,uDAAqC,CAAA;IACrC,yDAAuC,CAAA;IACvC,yDAAuC,CAAA;AACzC,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAqJD,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/confirmation-bus/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAqB,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,MAAM,oBAAoB,CAAC;AAUvD,MAAM,CAAN,IAAY,cAWX;AAXD,WAAY,cAAc;IACxB,yEAAuD,CAAA;IACvD,2EAAyD,CAAA;IACzD,iEAA+C,CAAA;IAC/C,mEAAiD,CAAA;IACjD,mEAAiD,CAAA;IACjD,iDAA+B,CAAA;IAC/B,yDAAuC,CAAA;IACvC,uDAAqC,CAAA;IACrC,yDAAuC,CAAA;IACvC,yDAAuC,CAAA;AACzC,CAAC,EAXW,cAAc,KAAd,cAAc,QAWzB;AAsJD,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB"}
@@ -3,5 +3,5 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "d9d51ba15";
7
- export declare const CLI_VERSION = "0.37.0-preview.0";
6
+ export declare const GIT_COMMIT_INFO = "ac3452077";
7
+ export declare const CLI_VERSION = "0.37.0-preview.2";
@@ -5,6 +5,6 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = 'd9d51ba15';
9
- export const CLI_VERSION = '0.37.0-preview.0';
8
+ export const GIT_COMMIT_INFO = 'ac3452077';
9
+ export const CLI_VERSION = '0.37.0-preview.2';
10
10
  //# sourceMappingURL=git-commit.js.map
@@ -398,6 +398,42 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
398
398
  disableAlwaysAllow: settings.disableAlwaysAllow,
399
399
  };
400
400
  }
401
+ /**
402
+ * Finds a rule in the rule array that matches the given criteria.
403
+ */
404
+ function findMatchingRule(rules, criteria) {
405
+ return rules.find((r) => r.toolName === criteria.toolName &&
406
+ r.mcpName === criteria.mcpName &&
407
+ JSON.stringify(r.commandPrefix) ===
408
+ JSON.stringify(criteria.commandPrefix) &&
409
+ r.argsPattern === criteria.argsPattern);
410
+ }
411
+ /**
412
+ * Creates a new TOML rule object from the given tool name and message.
413
+ */
414
+ function createTomlRule(toolName, message) {
415
+ const rule = {
416
+ decision: 'allow',
417
+ priority: getAlwaysAllowPriorityFraction(),
418
+ toolName,
419
+ };
420
+ if (message.mcpName) {
421
+ rule.mcpName = message.mcpName;
422
+ }
423
+ if (message.commandPrefix) {
424
+ rule.commandPrefix = message.commandPrefix;
425
+ }
426
+ else if (message.argsPattern) {
427
+ rule.argsPattern = message.argsPattern;
428
+ }
429
+ if (message.allowRedirection !== undefined) {
430
+ rule.allowRedirection = message.allowRedirection;
431
+ }
432
+ if (message.modes) {
433
+ rule.modes = message.modes;
434
+ }
435
+ return rule;
436
+ }
401
437
  export function createPolicyUpdater(policyEngine, messageBus, storage) {
402
438
  // Use a sequential queue for persistence to avoid lost updates from concurrent events.
403
439
  let persistenceQueue = Promise.resolve();
@@ -424,6 +460,7 @@ export function createPolicyUpdater(policyEngine, messageBus, storage) {
424
460
  priority,
425
461
  argsPattern: new RegExp(pattern),
426
462
  mcpName: message.mcpName,
463
+ modes: message.modes,
427
464
  source: 'Dynamic (Confirmed)',
428
465
  allowRedirection: message.allowRedirection,
429
466
  });
@@ -452,6 +489,7 @@ export function createPolicyUpdater(policyEngine, messageBus, storage) {
452
489
  priority,
453
490
  argsPattern,
454
491
  mcpName: message.mcpName,
492
+ modes: message.modes,
455
493
  source: 'Dynamic (Confirmed)',
456
494
  allowRedirection: message.allowRedirection,
457
495
  });
@@ -483,36 +521,32 @@ export function createPolicyUpdater(policyEngine, messageBus, storage) {
483
521
  if (!existingData.rule) {
484
522
  existingData.rule = [];
485
523
  }
486
- // Create new rule object
487
- const newRule = {
488
- decision: 'allow',
489
- priority: getAlwaysAllowPriorityFraction(),
490
- };
524
+ // Normalize tool name for MCP
525
+ let normalizedToolName = toolName;
491
526
  if (message.mcpName) {
492
- newRule.mcpName = message.mcpName;
493
527
  const expectedPrefix = `${MCP_TOOL_PREFIX}${message.mcpName}_`;
494
528
  if (toolName.startsWith(expectedPrefix)) {
495
- newRule.toolName = toolName.slice(expectedPrefix.length);
529
+ normalizedToolName = toolName.slice(expectedPrefix.length);
496
530
  }
497
- else {
498
- newRule.toolName = toolName;
531
+ }
532
+ // Look for an existing rule to update
533
+ const existingRule = findMatchingRule(existingData.rule, {
534
+ toolName: normalizedToolName,
535
+ mcpName: message.mcpName,
536
+ commandPrefix: message.commandPrefix,
537
+ argsPattern: message.argsPattern,
538
+ });
539
+ if (existingRule) {
540
+ if (message.allowRedirection !== undefined) {
541
+ existingRule.allowRedirection = message.allowRedirection;
542
+ }
543
+ if (message.modes) {
544
+ existingRule.modes = message.modes;
499
545
  }
500
546
  }
501
547
  else {
502
- newRule.toolName = toolName;
503
- }
504
- if (message.commandPrefix) {
505
- newRule.commandPrefix = message.commandPrefix;
506
- }
507
- else if (message.argsPattern) {
508
- // message.argsPattern was already validated above
509
- newRule.argsPattern = message.argsPattern;
510
- }
511
- if (message.allowRedirection !== undefined) {
512
- newRule.allowRedirection = message.allowRedirection;
548
+ existingData.rule.push(createTomlRule(normalizedToolName, message));
513
549
  }
514
- // Add to rules
515
- existingData.rule.push(newRule);
516
550
  // Serialize back to TOML
517
551
  // @iarna/toml stringify might not produce beautiful output but it handles escaping correctly
518
552
  // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/policy/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/policy/config.ts"],"names":[],"mappings":"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"}
@@ -184,5 +184,47 @@ decision = "deny"
184
184
  const content = memfs.readFileSync(policyFile, 'utf-8');
185
185
  expect(content).toContain('toolName = "test_tool"');
186
186
  });
187
+ it('should include modes if provided', async () => {
188
+ createPolicyUpdater(policyEngine, messageBus, mockStorage);
189
+ const policyFile = '/mock/user/.gemini/policies/auto-saved.toml';
190
+ vi.spyOn(mockStorage, 'getAutoSavedPolicyPath').mockReturnValue(policyFile);
191
+ await messageBus.publish({
192
+ type: MessageBusType.UPDATE_POLICY,
193
+ toolName: 'test_tool',
194
+ persist: true,
195
+ modes: [ApprovalMode.DEFAULT, ApprovalMode.YOLO],
196
+ });
197
+ await vi.advanceTimersByTimeAsync(100);
198
+ const content = memfs.readFileSync(policyFile, 'utf-8');
199
+ expect(content).toContain('modes = [ "default", "yolo" ]');
200
+ });
201
+ it('should update existing rule modes instead of appending redundant rule', async () => {
202
+ createPolicyUpdater(policyEngine, messageBus, mockStorage);
203
+ const policyFile = '/mock/user/.gemini/policies/auto-saved.toml';
204
+ vi.spyOn(mockStorage, 'getAutoSavedPolicyPath').mockReturnValue(policyFile);
205
+ const existingContent = `
206
+ [[rule]]
207
+ decision = "allow"
208
+ priority = 950
209
+ toolName = "test_tool"
210
+ modes = [ "autoEdit", "yolo" ]
211
+ `;
212
+ const dir = path.dirname(policyFile);
213
+ memfs.mkdirSync(dir, { recursive: true });
214
+ memfs.writeFileSync(policyFile, existingContent);
215
+ // Now grant in DEFAULT mode, which should include [default, autoEdit, yolo]
216
+ await messageBus.publish({
217
+ type: MessageBusType.UPDATE_POLICY,
218
+ toolName: 'test_tool',
219
+ persist: true,
220
+ modes: [ApprovalMode.DEFAULT, ApprovalMode.AUTO_EDIT, ApprovalMode.YOLO],
221
+ });
222
+ await vi.advanceTimersByTimeAsync(100);
223
+ const content = memfs.readFileSync(policyFile, 'utf-8');
224
+ // Should NOT have two [[rule]] entries for test_tool
225
+ const ruleCount = (content.match(/\[\[rule\]\]/g) || []).length;
226
+ expect(ruleCount).toBe(1);
227
+ expect(content).toContain('modes = [ "default", "autoEdit", "yolo" ]');
228
+ });
187
229
  });
188
230
  //# sourceMappingURL=persistence.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.test.js","sourceRoot":"","sources":["../../../src/policy/persistence.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC;AAEzC,+CAA+C;AAC/C,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAE9E,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEhC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,YAA0B,CAAC;IAC/B,IAAI,UAAsB,CAAC;IAC3B,IAAI,WAAoB,CAAC;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,GAAG,CAAC,KAAK,EAAE,CAAC;QACZ,YAAY,GAAG,IAAI,YAAY,CAAC;YAC9B,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,YAAY,EAAE,YAAY,CAAC,OAAO;SACnC,CAAC,CAAC;QACH,UAAU,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;QAC1C,WAAW,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;QACrB,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,wEAAwE;QACxE,mEAAmE;QACnE,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAChD,MAAM,gBAAgB,GAAG,8BAA8B,EAAE,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,cAAc,gBAAgB,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QACjF,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,WAAW;SACtB,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;QACrD,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,eAAe,GACnB,4DAA4D,CAAC;QAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAEjD,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACxD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,eAAe,GAAG;;;;;;;;CAQ3B,CAAC;QACE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAEjD,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAChD,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,SAAS;SACvB,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,6CAA6C,CAAC;QACjE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,wBAAwB,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QAE5E,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,cAAc,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAEzE,gEAAgE;QAChE,iGAAiG;QACjG,uEAAuE;QACvE,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;QAC1E,mBAAmB,CAAC,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE3D,MAAM,oBAAoB,GAAG,gCAAgC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAC1B,oBAAoB,EACpB,0BAA0B,CAC3B,CAAC;QACF,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,iCAAiC,CAAC,CAAC,eAAe,CACtE,UAAU,CACX,CAAC;QAEF,MAAM,UAAU,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,cAAc,CAAC,aAAa;YAClC,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;QAEvC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAW,CAAC;QAClE,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"persistence.test.js","sourceRoot":"","sources":["../../../src/policy/persistence.test.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,12 @@ export declare enum ApprovalMode {
25
25
  YOLO = "yolo",
26
26
  PLAN = "plan"
27
27
  }
28
+ /**
29
+ * The order of permissiveness for approval modes.
30
+ * Tools allowed in a less permissive mode should also be allowed
31
+ * in more permissive modes.
32
+ */
33
+ export declare const MODES_BY_PERMISSIVENESS: ApprovalMode[];
28
34
  /**
29
35
  * Configuration for the built-in allowed-path checker.
30
36
  */
@@ -39,6 +39,17 @@ export var ApprovalMode;
39
39
  ApprovalMode["YOLO"] = "yolo";
40
40
  ApprovalMode["PLAN"] = "plan";
41
41
  })(ApprovalMode || (ApprovalMode = {}));
42
+ /**
43
+ * The order of permissiveness for approval modes.
44
+ * Tools allowed in a less permissive mode should also be allowed
45
+ * in more permissive modes.
46
+ */
47
+ export const MODES_BY_PERMISSIVENESS = [
48
+ ApprovalMode.PLAN,
49
+ ApprovalMode.DEFAULT,
50
+ ApprovalMode.AUTO_EDIT,
51
+ ApprovalMode.YOLO,
52
+ ];
42
53
  export var InProcessCheckerType;
43
54
  (function (InProcessCheckerType) {
44
55
  InProcessCheckerType["ALLOWED_PATH"] = "allowed-path";
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/policy/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAOD;;GAEG;AACH,MAAM,kBAAkB,GAAiB;IACvC,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,uEAAuE;QACvE,kBAAkB,CAAC,QAAQ,CAAC,MAAoB,CAAC,EACjD,CAAC;QACD,uEAAuE;QACvE,OAAO,MAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,sCAAsB,CAAA;IACtB,6BAAa,CAAA;IACb,6BAAa,CAAA;AACf,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AA2BD,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qDAA6B,CAAA;IAC7B,2CAAmB,CAAA;AACrB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAoQD;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,8BAA8B,GAAG,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/policy/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAOD;;GAEG;AACH,MAAM,kBAAkB,GAAiB;IACvC,SAAS;IACT,MAAM;IACN,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAA8B;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IACpC,IACE,OAAO,MAAM,KAAK,QAAQ;QAC1B,uEAAuE;QACvE,kBAAkB,CAAC,QAAQ,CAAC,MAAoB,CAAC,EACjD,CAAC;QACD,uEAAuE;QACvE,OAAO,MAAoB,CAAC;IAC9B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,mCAAmB,CAAA;IACnB,sCAAsB,CAAA;IACtB,6BAAa,CAAA;IACb,6BAAa,CAAA;AACf,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY,CAAC,IAAI;IACjB,YAAY,CAAC,OAAO;IACpB,YAAY,CAAC,SAAS;IACtB,YAAY,CAAC,IAAI;CAClB,CAAC;AA2BF,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qDAA6B,CAAA;IAC7B,2CAAmB,CAAA;AACrB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAoQD;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GACvC,8BAA8B,GAAG,IAAI,CAAC;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ToolErrorType } from '../tools/tool-error.js';
7
- import { ApprovalMode, PolicyDecision, } from '../policy/types.js';
7
+ import { ApprovalMode, MODES_BY_PERMISSIVENESS, PolicyDecision, } from '../policy/types.js';
8
8
  import { MessageBusType, } from '../confirmation-bus/types.js';
9
9
  import { ToolConfirmationOutcome, } from '../tools/tools.js';
10
10
  import { buildFilePathArgsPattern } from '../policy/utils.js';
@@ -72,6 +72,19 @@ export async function updatePolicy(tool, outcome, confirmationDetails, context,
72
72
  }
73
73
  // Determine persist scope if we are persisting.
74
74
  let persistScope;
75
+ let modes;
76
+ const currentMode = context.config.getApprovalMode();
77
+ // If this is an 'Always Allow' selection, we restrict it to the current mode
78
+ // and more permissive modes.
79
+ if (outcome === ToolConfirmationOutcome.ProceedAlways ||
80
+ outcome === ToolConfirmationOutcome.ProceedAlwaysTool ||
81
+ outcome === ToolConfirmationOutcome.ProceedAlwaysServer ||
82
+ outcome === ToolConfirmationOutcome.ProceedAlwaysAndSave) {
83
+ const modeIndex = MODES_BY_PERMISSIVENESS.indexOf(currentMode);
84
+ if (modeIndex !== -1) {
85
+ modes = MODES_BY_PERMISSIVENESS.slice(modeIndex);
86
+ }
87
+ }
75
88
  if (outcome === ToolConfirmationOutcome.ProceedAlwaysAndSave) {
76
89
  // If folder is trusted and workspace policies are enabled, we prefer workspace scope.
77
90
  if (context.config &&
@@ -85,11 +98,11 @@ export async function updatePolicy(tool, outcome, confirmationDetails, context,
85
98
  }
86
99
  // Specialized Tools (MCP)
87
100
  if (confirmationDetails?.type === 'mcp') {
88
- await handleMcpPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope);
101
+ await handleMcpPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope, modes);
89
102
  return;
90
103
  }
91
104
  // Generic Fallback (Shell, Info, etc.)
92
- await handleStandardPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope, toolInvocation, context.config);
105
+ await handleStandardPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope, toolInvocation, context.config, modes);
93
106
  }
94
107
  /**
95
108
  * Returns true if the user's 'Always Allow' selection for a specific tool
@@ -106,7 +119,7 @@ function isAutoEditTransition(tool, outcome) {
106
119
  * Handles policy updates for standard tools (Shell, Info, etc.), including
107
120
  * session-level and persistent approvals.
108
121
  */
109
- async function handleStandardPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope, toolInvocation, config) {
122
+ async function handleStandardPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope, toolInvocation, config, modes) {
110
123
  if (outcome === ToolConfirmationOutcome.ProceedAlways ||
111
124
  outcome === ToolConfirmationOutcome.ProceedAlwaysAndSave) {
112
125
  const options = toolInvocation?.getPolicyUpdateOptions?.(outcome) || {};
@@ -124,6 +137,7 @@ async function handleStandardPolicyUpdate(tool, outcome, confirmationDetails, me
124
137
  toolName: tool.name,
125
138
  persist: outcome === ToolConfirmationOutcome.ProceedAlwaysAndSave,
126
139
  persistScope,
140
+ modes,
127
141
  ...options,
128
142
  });
129
143
  }
@@ -132,7 +146,7 @@ async function handleStandardPolicyUpdate(tool, outcome, confirmationDetails, me
132
146
  * Handles policy updates specifically for MCP tools, including session-level
133
147
  * and persistent approvals.
134
148
  */
135
- async function handleMcpPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope) {
149
+ async function handleMcpPolicyUpdate(tool, outcome, confirmationDetails, messageBus, persistScope, modes) {
136
150
  const isMcpAlways = outcome === ToolConfirmationOutcome.ProceedAlways ||
137
151
  outcome === ToolConfirmationOutcome.ProceedAlwaysTool ||
138
152
  outcome === ToolConfirmationOutcome.ProceedAlwaysServer ||
@@ -152,6 +166,7 @@ async function handleMcpPolicyUpdate(tool, outcome, confirmationDetails, message
152
166
  mcpName: confirmationDetails.serverName,
153
167
  persist,
154
168
  persistScope,
169
+ modes,
155
170
  });
156
171
  }
157
172
  //# sourceMappingURL=policy.js.map