@google/gemini-cli 0.12.0-nightly.20251027.cb0947c5 → 0.12.0-preview.0

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 (168) hide show
  1. package/README.md +7 -5
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/disable.d.ts +1 -1
  4. package/dist/src/commands/extensions/disable.js +5 -4
  5. package/dist/src/commands/extensions/disable.js.map +1 -1
  6. package/dist/src/commands/extensions/enable.d.ts +1 -1
  7. package/dist/src/commands/extensions/enable.js +3 -2
  8. package/dist/src/commands/extensions/enable.js.map +1 -1
  9. package/dist/src/commands/extensions/install.js +2 -1
  10. package/dist/src/commands/extensions/install.js.map +1 -1
  11. package/dist/src/commands/extensions/install.test.js +1 -0
  12. package/dist/src/commands/extensions/install.test.js.map +1 -1
  13. package/dist/src/commands/extensions/link.js +2 -1
  14. package/dist/src/commands/extensions/link.js.map +1 -1
  15. package/dist/src/commands/extensions/list.js +2 -2
  16. package/dist/src/commands/extensions/list.js.map +1 -1
  17. package/dist/src/commands/extensions/uninstall.js +2 -1
  18. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  19. package/dist/src/commands/extensions/update.js +2 -2
  20. package/dist/src/commands/extensions/update.js.map +1 -1
  21. package/dist/src/commands/mcp/list.js +2 -2
  22. package/dist/src/commands/mcp/list.js.map +1 -1
  23. package/dist/src/config/config.d.ts +5 -3
  24. package/dist/src/config/config.js +42 -9
  25. package/dist/src/config/config.js.map +1 -1
  26. package/dist/src/config/config.test.js +186 -161
  27. package/dist/src/config/config.test.js.map +1 -1
  28. package/dist/src/config/extension-manager.d.ts +23 -10
  29. package/dist/src/config/extension-manager.js +89 -62
  30. package/dist/src/config/extension-manager.js.map +1 -1
  31. package/dist/src/config/extension.test.js +158 -74
  32. package/dist/src/config/extension.test.js.map +1 -1
  33. package/dist/src/config/extensions/extensionSettings.d.ts +3 -3
  34. package/dist/src/config/extensions/extensionSettings.js +74 -24
  35. package/dist/src/config/extensions/extensionSettings.js.map +1 -1
  36. package/dist/src/config/extensions/extensionSettings.test.js +145 -24
  37. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  38. package/dist/src/config/extensions/github.js +3 -3
  39. package/dist/src/config/extensions/github.js.map +1 -1
  40. package/dist/src/config/extensions/github.test.js +1 -1
  41. package/dist/src/config/extensions/github.test.js.map +1 -1
  42. package/dist/src/config/extensions/update.js +7 -6
  43. package/dist/src/config/extensions/update.js.map +1 -1
  44. package/dist/src/config/extensions/update.test.js +54 -31
  45. package/dist/src/config/extensions/update.test.js.map +1 -1
  46. package/dist/src/config/keyBindings.js +1 -1
  47. package/dist/src/config/keyBindings.js.map +1 -1
  48. package/dist/src/config/policies/read-only.toml +56 -0
  49. package/dist/src/config/policies/write.toml +63 -0
  50. package/dist/src/config/policies/yolo.toml +31 -0
  51. package/dist/src/config/policy-engine.integration.test.js +41 -38
  52. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  53. package/dist/src/config/policy-toml-loader.d.ts +46 -0
  54. package/dist/src/config/policy-toml-loader.js +314 -0
  55. package/dist/src/config/policy-toml-loader.js.map +1 -0
  56. package/dist/src/config/policy-toml-loader.test.d.ts +6 -0
  57. package/dist/src/config/policy-toml-loader.test.js +626 -0
  58. package/dist/src/config/policy-toml-loader.test.js.map +1 -0
  59. package/dist/src/config/policy.d.ts +9 -2
  60. package/dist/src/config/policy.js +139 -110
  61. package/dist/src/config/policy.js.map +1 -1
  62. package/dist/src/config/policy.test.js +780 -82
  63. package/dist/src/config/policy.test.js.map +1 -1
  64. package/dist/src/config/settings.test.js +4 -4
  65. package/dist/src/config/settings.test.js.map +1 -1
  66. package/dist/src/gemini.js +6 -17
  67. package/dist/src/gemini.js.map +1 -1
  68. package/dist/src/gemini.test.js +1 -0
  69. package/dist/src/gemini.test.js.map +1 -1
  70. package/dist/src/generated/git-commit.d.ts +2 -2
  71. package/dist/src/generated/git-commit.js +2 -2
  72. package/dist/src/generated/git-commit.js.map +1 -1
  73. package/dist/src/test-utils/render.d.ts +12 -0
  74. package/dist/src/test-utils/render.js +28 -1
  75. package/dist/src/test-utils/render.js.map +1 -1
  76. package/dist/src/test-utils/render.test.d.ts +6 -0
  77. package/dist/src/test-utils/render.test.js +54 -0
  78. package/dist/src/test-utils/render.test.js.map +1 -0
  79. package/dist/src/ui/AppContainer.js +28 -22
  80. package/dist/src/ui/AppContainer.js.map +1 -1
  81. package/dist/src/ui/AppContainer.test.js +8 -0
  82. package/dist/src/ui/AppContainer.test.js.map +1 -1
  83. package/dist/src/ui/commands/directoryCommand.js +1 -1
  84. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  85. package/dist/src/ui/commands/extensionsCommand.js +45 -1
  86. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  87. package/dist/src/ui/commands/extensionsCommand.test.js +64 -1
  88. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  89. package/dist/src/ui/commands/memoryCommand.js +1 -1
  90. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  91. package/dist/src/ui/commands/memoryCommand.test.js +3 -1
  92. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  93. package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
  94. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  95. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  96. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  97. package/dist/src/ui/components/FolderTrustDialog.test.js +4 -5
  98. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  99. package/dist/src/ui/components/Footer.js +1 -1
  100. package/dist/src/ui/components/Footer.js.map +1 -1
  101. package/dist/src/ui/components/Footer.test.js +24 -0
  102. package/dist/src/ui/components/Footer.test.js.map +1 -1
  103. package/dist/src/ui/components/Help.test.js +0 -1
  104. package/dist/src/ui/components/Help.test.js.map +1 -1
  105. package/dist/src/ui/components/ModelDialog.test.js +5 -6
  106. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  107. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +11 -13
  108. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  109. package/dist/src/ui/components/SettingsDialog.test.js +12 -14
  110. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  111. package/dist/src/ui/components/shared/BaseSelectionList.test.js +11 -13
  112. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  113. package/dist/src/ui/components/shared/text-buffer.test.js +2 -2
  114. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  115. package/dist/src/ui/contexts/KeypressContext.test.js +6 -5
  116. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  117. package/dist/src/ui/contexts/SessionContext.test.js +27 -14
  118. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  119. package/dist/src/ui/hooks/atCommandProcessor.js +2 -2
  120. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  121. package/dist/src/ui/hooks/useAtCompletion.test.js +32 -23
  122. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  123. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +2 -2
  124. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  125. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +1 -2
  126. package/dist/src/ui/hooks/useExtensionUpdates.js +2 -1
  127. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  128. package/dist/src/ui/hooks/useExtensionUpdates.test.js +14 -20
  129. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  130. package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -6
  131. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
  132. package/dist/src/ui/hooks/useFolderTrust.test.js +45 -23
  133. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  134. package/dist/src/ui/hooks/useGeminiStream.js +7 -5
  135. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  136. package/dist/src/ui/hooks/useGeminiStream.test.js +42 -41
  137. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  138. package/dist/src/ui/hooks/useHistoryManager.test.js +2 -2
  139. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  140. package/dist/src/ui/hooks/useInputHistory.test.js +2 -2
  141. package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
  142. package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -2
  143. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  144. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -3
  145. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  146. package/dist/src/ui/hooks/usePhraseCycler.js +1 -1
  147. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  148. package/dist/src/ui/hooks/usePhraseCycler.test.js +83 -111
  149. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  150. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +2 -2
  151. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  152. package/dist/src/ui/hooks/useReactToolScheduler.test.js +1 -2
  153. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -1
  154. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
  155. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  156. package/dist/src/ui/hooks/useShellHistory.test.js +40 -17
  157. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  158. package/dist/src/ui/hooks/useSlashCompletion.test.js +54 -49
  159. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  160. package/dist/src/ui/hooks/useToolScheduler.test.js +48 -42
  161. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  162. package/dist/src/ui/keyMatchers.test.js +3 -3
  163. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  164. package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
  165. package/dist/src/zed-integration/zedIntegration.js +4 -6
  166. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  167. package/dist/tsconfig.tsbuildinfo +1 -1
  168. package/package.json +3 -3
@@ -0,0 +1,56 @@
1
+ # Priority system for policy rules:
2
+ # - Higher priority numbers win over lower priority numbers
3
+ # - When multiple rules match, the highest priority rule is applied
4
+ # - Rules are evaluated in order of priority (highest first)
5
+ #
6
+ # Priority bands (tiers):
7
+ # - Default policies (TOML): 1 + priority/1000 (e.g., priority 100 → 1.100)
8
+ # - User policies (TOML): 2 + priority/1000 (e.g., priority 100 → 2.100)
9
+ # - Admin policies (TOML): 3 + priority/1000 (e.g., priority 100 → 3.100)
10
+ #
11
+ # This ensures Admin > User > Default hierarchy is always preserved,
12
+ # while allowing user-specified priorities to work within each tier.
13
+ #
14
+ # Settings-based and dynamic rules (all in user tier 2.x):
15
+ # 2.95: Tools that the user has selected as "Always Allow" in the interactive UI
16
+ # 2.9: MCP servers excluded list (security: persistent server blocks)
17
+ # 2.4: Command line flag --exclude-tools (explicit temporary blocks)
18
+ # 2.3: Command line flag --allowed-tools (explicit temporary allows)
19
+ # 2.2: MCP servers with trust=true (persistent trusted servers)
20
+ # 2.1: MCP servers allowed list (persistent general server allows)
21
+ #
22
+ # TOML policy priorities (before transformation):
23
+ # 10: Write tools default to ASK_USER (becomes 1.010 in default tier)
24
+ # 15: Auto-edit tool override (becomes 1.015 in default tier)
25
+ # 50: Read-only tools (becomes 1.050 in default tier)
26
+ # 999: YOLO mode allow-all (becomes 1.999 in default tier)
27
+
28
+ [[rule]]
29
+ toolName = "glob"
30
+ decision = "allow"
31
+ priority = 50
32
+
33
+ [[rule]]
34
+ toolName = "search_file_content"
35
+ decision = "allow"
36
+ priority = 50
37
+
38
+ [[rule]]
39
+ toolName = "list_directory"
40
+ decision = "allow"
41
+ priority = 50
42
+
43
+ [[rule]]
44
+ toolName = "read_file"
45
+ decision = "allow"
46
+ priority = 50
47
+
48
+ [[rule]]
49
+ toolName = "read_many_files"
50
+ decision = "allow"
51
+ priority = 50
52
+
53
+ [[rule]]
54
+ toolName = "google_web_search"
55
+ decision = "allow"
56
+ priority = 50
@@ -0,0 +1,63 @@
1
+ # Priority system for policy rules:
2
+ # - Higher priority numbers win over lower priority numbers
3
+ # - When multiple rules match, the highest priority rule is applied
4
+ # - Rules are evaluated in order of priority (highest first)
5
+ #
6
+ # Priority bands (tiers):
7
+ # - Default policies (TOML): 1 + priority/1000 (e.g., priority 100 → 1.100)
8
+ # - User policies (TOML): 2 + priority/1000 (e.g., priority 100 → 2.100)
9
+ # - Admin policies (TOML): 3 + priority/1000 (e.g., priority 100 → 3.100)
10
+ #
11
+ # This ensures Admin > User > Default hierarchy is always preserved,
12
+ # while allowing user-specified priorities to work within each tier.
13
+ #
14
+ # Settings-based and dynamic rules (all in user tier 2.x):
15
+ # 2.95: Tools that the user has selected as "Always Allow" in the interactive UI
16
+ # 2.9: MCP servers excluded list (security: persistent server blocks)
17
+ # 2.4: Command line flag --exclude-tools (explicit temporary blocks)
18
+ # 2.3: Command line flag --allowed-tools (explicit temporary allows)
19
+ # 2.2: MCP servers with trust=true (persistent trusted servers)
20
+ # 2.1: MCP servers allowed list (persistent general server allows)
21
+ #
22
+ # TOML policy priorities (before transformation):
23
+ # 10: Write tools default to ASK_USER (becomes 1.010 in default tier)
24
+ # 15: Auto-edit tool override (becomes 1.015 in default tier)
25
+ # 50: Read-only tools (becomes 1.050 in default tier)
26
+ # 999: YOLO mode allow-all (becomes 1.999 in default tier)
27
+
28
+ [[rule]]
29
+ toolName = "replace"
30
+ decision = "ask_user"
31
+ priority = 10
32
+
33
+ [[rule]]
34
+ toolName = "replace"
35
+ decision = "allow"
36
+ priority = 15
37
+ modes = ["autoEdit"]
38
+
39
+ [[rule]]
40
+ toolName = "save_memory"
41
+ decision = "ask_user"
42
+ priority = 10
43
+
44
+ [[rule]]
45
+ toolName = "run_shell_command"
46
+ decision = "ask_user"
47
+ priority = 10
48
+
49
+ [[rule]]
50
+ toolName = "write_file"
51
+ decision = "ask_user"
52
+ priority = 10
53
+
54
+ [[rule]]
55
+ toolName = "write_file"
56
+ decision = "allow"
57
+ priority = 15
58
+ modes = ["autoEdit"]
59
+
60
+ [[rule]]
61
+ toolName = "web_fetch"
62
+ decision = "ask_user"
63
+ priority = 10
@@ -0,0 +1,31 @@
1
+ # Priority system for policy rules:
2
+ # - Higher priority numbers win over lower priority numbers
3
+ # - When multiple rules match, the highest priority rule is applied
4
+ # - Rules are evaluated in order of priority (highest first)
5
+ #
6
+ # Priority bands (tiers):
7
+ # - Default policies (TOML): 1 + priority/1000 (e.g., priority 100 → 1.100)
8
+ # - User policies (TOML): 2 + priority/1000 (e.g., priority 100 → 2.100)
9
+ # - Admin policies (TOML): 3 + priority/1000 (e.g., priority 100 → 3.100)
10
+ #
11
+ # This ensures Admin > User > Default hierarchy is always preserved,
12
+ # while allowing user-specified priorities to work within each tier.
13
+ #
14
+ # Settings-based and dynamic rules (all in user tier 2.x):
15
+ # 2.95: Tools that the user has selected as "Always Allow" in the interactive UI
16
+ # 2.9: MCP servers excluded list (security: persistent server blocks)
17
+ # 2.4: Command line flag --exclude-tools (explicit temporary blocks)
18
+ # 2.3: Command line flag --allowed-tools (explicit temporary allows)
19
+ # 2.2: MCP servers with trust=true (persistent trusted servers)
20
+ # 2.1: MCP servers allowed list (persistent general server allows)
21
+ #
22
+ # TOML policy priorities (before transformation):
23
+ # 10: Write tools default to ASK_USER (becomes 1.010 in default tier)
24
+ # 15: Auto-edit tool override (becomes 1.015 in default tier)
25
+ # 50: Read-only tools (becomes 1.050 in default tier)
26
+ # 999: YOLO mode allow-all (becomes 1.999 in default tier)
27
+
28
+ [[rule]]
29
+ decision = "allow"
30
+ priority = 999
31
+ modes = ["yolo"]
@@ -8,14 +8,14 @@ import { ApprovalMode, PolicyDecision, PolicyEngine, } from '@google/gemini-cli-
8
8
  import { createPolicyEngineConfig } from './policy.js';
9
9
  describe('Policy Engine Integration Tests', () => {
10
10
  describe('Policy configuration produces valid PolicyEngine config', () => {
11
- it('should create a working PolicyEngine from basic settings', () => {
11
+ it('should create a working PolicyEngine from basic settings', async () => {
12
12
  const settings = {
13
13
  tools: {
14
14
  allowed: ['run_shell_command'],
15
15
  exclude: ['write_file'],
16
16
  },
17
17
  };
18
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
18
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
19
19
  const engine = new PolicyEngine(config);
20
20
  // Allowed tool should be allowed
21
21
  expect(engine.check({ name: 'run_shell_command' })).toBe(PolicyDecision.ALLOW);
@@ -26,7 +26,7 @@ describe('Policy Engine Integration Tests', () => {
26
26
  // Unknown tools should use default
27
27
  expect(engine.check({ name: 'unknown_tool' })).toBe(PolicyDecision.ASK_USER);
28
28
  });
29
- it('should handle MCP server wildcard patterns correctly', () => {
29
+ it('should handle MCP server wildcard patterns correctly', async () => {
30
30
  const settings = {
31
31
  mcp: {
32
32
  allowed: ['allowed-server'],
@@ -40,7 +40,7 @@ describe('Policy Engine Integration Tests', () => {
40
40
  },
41
41
  },
42
42
  };
43
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
43
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
44
44
  const engine = new PolicyEngine(config);
45
45
  // Tools from allowed server should be allowed
46
46
  expect(engine.check({ name: 'allowed-server__tool1' })).toBe(PolicyDecision.ALLOW);
@@ -54,7 +54,7 @@ describe('Policy Engine Integration Tests', () => {
54
54
  // Tools from unknown servers should use default
55
55
  expect(engine.check({ name: 'unknown-server__tool' })).toBe(PolicyDecision.ASK_USER);
56
56
  });
57
- it('should correctly prioritize specific tool rules over MCP server wildcards', () => {
57
+ it('should correctly prioritize specific tool excludes over MCP server wildcards', async () => {
58
58
  const settings = {
59
59
  mcp: {
60
60
  allowed: ['my-server'],
@@ -63,13 +63,14 @@ describe('Policy Engine Integration Tests', () => {
63
63
  exclude: ['my-server__dangerous-tool'],
64
64
  },
65
65
  };
66
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
66
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
67
67
  const engine = new PolicyEngine(config);
68
- // Server is allowed, but specific tool is excluded
68
+ // MCP server allowed (priority 2.1) provides general allow for server
69
69
  expect(engine.check({ name: 'my-server__safe-tool' })).toBe(PolicyDecision.ALLOW);
70
+ // But specific tool exclude (priority 2.4) wins over server allow
70
71
  expect(engine.check({ name: 'my-server__dangerous-tool' })).toBe(PolicyDecision.DENY);
71
72
  });
72
- it('should handle complex mixed configurations', () => {
73
+ it('should handle complex mixed configurations', async () => {
73
74
  const settings = {
74
75
  tools: {
75
76
  autoAccept: true, // Allows read-only tools
@@ -88,7 +89,7 @@ describe('Policy Engine Integration Tests', () => {
88
89
  },
89
90
  },
90
91
  };
91
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
92
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
92
93
  const engine = new PolicyEngine(config);
93
94
  // Read-only tools should be allowed (autoAccept)
94
95
  expect(engine.check({ name: 'read_file' })).toBe(PolicyDecision.ALLOW);
@@ -107,13 +108,13 @@ describe('Policy Engine Integration Tests', () => {
107
108
  // Write tools should ask by default
108
109
  expect(engine.check({ name: 'write_file' })).toBe(PolicyDecision.ASK_USER);
109
110
  });
110
- it('should handle YOLO mode correctly', () => {
111
+ it('should handle YOLO mode correctly', async () => {
111
112
  const settings = {
112
113
  tools: {
113
114
  exclude: ['dangerous-tool'], // Even in YOLO, excludes should be respected
114
115
  },
115
116
  };
116
- const config = createPolicyEngineConfig(settings, ApprovalMode.YOLO);
117
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.YOLO);
117
118
  const engine = new PolicyEngine(config);
118
119
  // Most tools should be allowed in YOLO mode
119
120
  expect(engine.check({ name: 'run_shell_command' })).toBe(PolicyDecision.ALLOW);
@@ -122,17 +123,17 @@ describe('Policy Engine Integration Tests', () => {
122
123
  // But explicitly excluded tools should still be denied
123
124
  expect(engine.check({ name: 'dangerous-tool' })).toBe(PolicyDecision.DENY);
124
125
  });
125
- it('should handle AUTO_EDIT mode correctly', () => {
126
+ it('should handle AUTO_EDIT mode correctly', async () => {
126
127
  const settings = {};
127
- const config = createPolicyEngineConfig(settings, ApprovalMode.AUTO_EDIT);
128
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.AUTO_EDIT);
128
129
  const engine = new PolicyEngine(config);
129
- // Edit tool should be allowed (EditTool.Name = 'replace')
130
+ // Edit tools should be allowed in AUTO_EDIT mode
130
131
  expect(engine.check({ name: 'replace' })).toBe(PolicyDecision.ALLOW);
132
+ expect(engine.check({ name: 'write_file' })).toBe(PolicyDecision.ALLOW);
131
133
  // Other tools should follow normal rules
132
134
  expect(engine.check({ name: 'run_shell_command' })).toBe(PolicyDecision.ASK_USER);
133
- expect(engine.check({ name: 'write_file' })).toBe(PolicyDecision.ASK_USER);
134
135
  });
135
- it('should verify priority ordering works correctly in practice', () => {
136
+ it('should verify priority ordering works correctly in practice', async () => {
136
137
  const settings = {
137
138
  tools: {
138
139
  autoAccept: true, // Priority 50
@@ -151,23 +152,24 @@ describe('Policy Engine Integration Tests', () => {
151
152
  },
152
153
  },
153
154
  };
154
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
155
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
155
156
  const engine = new PolicyEngine(config);
156
157
  // Test that priorities are applied correctly
157
158
  const rules = config.rules || [];
158
159
  // Find rules and verify their priorities
159
160
  const blockedToolRule = rules.find((r) => r.toolName === 'blocked-tool');
160
- expect(blockedToolRule?.priority).toBe(200);
161
+ expect(blockedToolRule?.priority).toBe(2.4); // Command line exclude
161
162
  const blockedServerRule = rules.find((r) => r.toolName === 'blocked-server__*');
162
- expect(blockedServerRule?.priority).toBe(195);
163
+ expect(blockedServerRule?.priority).toBe(2.9); // MCP server exclude
163
164
  const specificToolRule = rules.find((r) => r.toolName === 'specific-tool');
164
- expect(specificToolRule?.priority).toBe(100);
165
+ expect(specificToolRule?.priority).toBe(2.3); // Command line allow
165
166
  const trustedServerRule = rules.find((r) => r.toolName === 'trusted-server__*');
166
- expect(trustedServerRule?.priority).toBe(90);
167
+ expect(trustedServerRule?.priority).toBe(2.2); // MCP trusted server
167
168
  const mcpServerRule = rules.find((r) => r.toolName === 'mcp-server__*');
168
- expect(mcpServerRule?.priority).toBe(85);
169
+ expect(mcpServerRule?.priority).toBe(2.1); // MCP allowed server
169
170
  const readOnlyToolRule = rules.find((r) => r.toolName === 'glob');
170
- expect(readOnlyToolRule?.priority).toBe(50);
171
+ // Priority 50 in default tier → 1.05
172
+ expect(readOnlyToolRule?.priority).toBeCloseTo(1.05, 5);
171
173
  // Verify the engine applies these priorities correctly
172
174
  expect(engine.check({ name: 'blocked-tool' })).toBe(PolicyDecision.DENY);
173
175
  expect(engine.check({ name: 'blocked-server__any' })).toBe(PolicyDecision.DENY);
@@ -176,7 +178,7 @@ describe('Policy Engine Integration Tests', () => {
176
178
  expect(engine.check({ name: 'mcp-server__any' })).toBe(PolicyDecision.ALLOW);
177
179
  expect(engine.check({ name: 'glob' })).toBe(PolicyDecision.ALLOW);
178
180
  });
179
- it('should handle edge case: MCP server with both trust and exclusion', () => {
181
+ it('should handle edge case: MCP server with both trust and exclusion', async () => {
180
182
  const settings = {
181
183
  mcpServers: {
182
184
  'conflicted-server': {
@@ -189,12 +191,12 @@ describe('Policy Engine Integration Tests', () => {
189
191
  excluded: ['conflicted-server'], // Priority 195 - DENY
190
192
  },
191
193
  };
192
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
194
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
193
195
  const engine = new PolicyEngine(config);
194
196
  // Exclusion (195) should win over trust (90)
195
197
  expect(engine.check({ name: 'conflicted-server__tool' })).toBe(PolicyDecision.DENY);
196
198
  });
197
- it('should handle edge case: specific tool allowed but server excluded', () => {
199
+ it('should handle edge case: specific tool allowed but server excluded', async () => {
198
200
  const settings = {
199
201
  mcp: {
200
202
  excluded: ['my-server'], // Priority 195 - DENY
@@ -203,16 +205,16 @@ describe('Policy Engine Integration Tests', () => {
203
205
  allowed: ['my-server__special-tool'], // Priority 100 - ALLOW
204
206
  },
205
207
  };
206
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
208
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
207
209
  const engine = new PolicyEngine(config);
208
210
  // Server exclusion (195) wins over specific tool allow (100)
209
211
  // This might be counterintuitive but follows the priority system
210
212
  expect(engine.check({ name: 'my-server__special-tool' })).toBe(PolicyDecision.DENY);
211
213
  expect(engine.check({ name: 'my-server__other-tool' })).toBe(PolicyDecision.DENY);
212
214
  });
213
- it('should verify non-interactive mode transformation', () => {
215
+ it('should verify non-interactive mode transformation', async () => {
214
216
  const settings = {};
215
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
217
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
216
218
  // Enable non-interactive mode
217
219
  const engineConfig = { ...config, nonInteractive: true };
218
220
  const engine = new PolicyEngine(engineConfig);
@@ -220,9 +222,9 @@ describe('Policy Engine Integration Tests', () => {
220
222
  expect(engine.check({ name: 'unknown_tool' })).toBe(PolicyDecision.DENY);
221
223
  expect(engine.check({ name: 'run_shell_command' })).toBe(PolicyDecision.DENY);
222
224
  });
223
- it('should handle empty settings gracefully', () => {
225
+ it('should handle empty settings gracefully', async () => {
224
226
  const settings = {};
225
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
227
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
226
228
  const engine = new PolicyEngine(config);
227
229
  // Should have default rules for write tools
228
230
  expect(engine.check({ name: 'write_file' })).toBe(PolicyDecision.ASK_USER);
@@ -230,7 +232,7 @@ describe('Policy Engine Integration Tests', () => {
230
232
  // Unknown tools should use default
231
233
  expect(engine.check({ name: 'unknown' })).toBe(PolicyDecision.ASK_USER);
232
234
  });
233
- it('should verify rules are created with correct priorities', () => {
235
+ it('should verify rules are created with correct priorities', async () => {
234
236
  const settings = {
235
237
  tools: {
236
238
  autoAccept: true,
@@ -242,19 +244,20 @@ describe('Policy Engine Integration Tests', () => {
242
244
  excluded: ['server2'],
243
245
  },
244
246
  };
245
- const config = createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
247
+ const config = await createPolicyEngineConfig(settings, ApprovalMode.DEFAULT);
246
248
  const rules = config.rules || [];
247
249
  // Verify each rule has the expected priority
248
250
  const tool3Rule = rules.find((r) => r.toolName === 'tool3');
249
- expect(tool3Rule?.priority).toBe(200); // Excluded tools
251
+ expect(tool3Rule?.priority).toBe(2.4); // Excluded tools (user tier)
250
252
  const server2Rule = rules.find((r) => r.toolName === 'server2__*');
251
- expect(server2Rule?.priority).toBe(195); // Excluded servers
253
+ expect(server2Rule?.priority).toBe(2.9); // Excluded servers (user tier)
252
254
  const tool1Rule = rules.find((r) => r.toolName === 'tool1');
253
- expect(tool1Rule?.priority).toBe(100); // Allowed tools
255
+ expect(tool1Rule?.priority).toBe(2.3); // Allowed tools (user tier)
254
256
  const server1Rule = rules.find((r) => r.toolName === 'server1__*');
255
- expect(server1Rule?.priority).toBe(85); // Allowed servers
257
+ expect(server1Rule?.priority).toBe(2.1); // Allowed servers (user tier)
256
258
  const globRule = rules.find((r) => r.toolName === 'glob');
257
- expect(globRule?.priority).toBe(50); // Auto-accept read-only
259
+ // Priority 50 in default tier → 1.05
260
+ expect(globRule?.priority).toBeCloseTo(1.05, 5); // Auto-accept read-only
258
261
  // The PolicyEngine will sort these by priority when it's created
259
262
  const engine = new PolicyEngine(config);
260
263
  const sortedRules = engine.getRules();
@@ -1 +1 @@
1
- {"version":3,"file":"policy-engine.integration.test.js","sourceRoot":"","sources":["../../../src/config/policy-engine.integration.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-engine.integration.test.js","sourceRoot":"","sources":["../../../src/config/policy-engine.integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type PolicyRule, type ApprovalMode } from '@google/gemini-cli-core';
7
+ /**
8
+ * Types of errors that can occur while loading policy files.
9
+ */
10
+ export type PolicyFileErrorType = 'file_read' | 'toml_parse' | 'schema_validation' | 'rule_validation' | 'regex_compilation';
11
+ /**
12
+ * Detailed error information for policy file loading failures.
13
+ */
14
+ export interface PolicyFileError {
15
+ filePath: string;
16
+ fileName: string;
17
+ tier: 'default' | 'user' | 'admin';
18
+ ruleIndex?: number;
19
+ errorType: PolicyFileErrorType;
20
+ message: string;
21
+ details?: string;
22
+ suggestion?: string;
23
+ }
24
+ /**
25
+ * Result of loading policies from TOML files.
26
+ */
27
+ export interface PolicyLoadResult {
28
+ rules: PolicyRule[];
29
+ errors: PolicyFileError[];
30
+ }
31
+ /**
32
+ * Loads and parses policies from TOML files in the specified directories.
33
+ *
34
+ * This function:
35
+ * 1. Scans directories for .toml files
36
+ * 2. Parses and validates each file
37
+ * 3. Transforms rules (commandPrefix, arrays, mcpName, priorities)
38
+ * 4. Filters rules by approval mode
39
+ * 5. Collects detailed error information for any failures
40
+ *
41
+ * @param approvalMode The current approval mode (for filtering rules by mode)
42
+ * @param policyDirs Array of directory paths to scan for policy files
43
+ * @param getPolicyTier Function to determine tier (1-3) for a directory
44
+ * @returns Object containing successfully parsed rules and any errors encountered
45
+ */
46
+ export declare function loadPoliciesFromToml(approvalMode: ApprovalMode, policyDirs: string[], getPolicyTier: (dir: string) => number): Promise<PolicyLoadResult>;