@google/gemini-cli-core 0.22.1 → 0.22.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.
Files changed (231) hide show
  1. package/dist/google-gemini-cli-core-0.22.0-preview.3.tgz +0 -0
  2. package/dist/src/agents/delegate-to-agent-tool.d.ts +19 -0
  3. package/dist/src/agents/delegate-to-agent-tool.js +111 -0
  4. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -0
  5. package/dist/src/agents/delegate-to-agent-tool.test.d.ts +6 -0
  6. package/dist/src/agents/delegate-to-agent-tool.test.js +133 -0
  7. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -0
  8. package/dist/src/agents/executor.js +1 -1
  9. package/dist/src/agents/executor.js.map +1 -1
  10. package/dist/src/agents/executor.test.js.map +1 -1
  11. package/dist/src/agents/registry.d.ts +15 -0
  12. package/dist/src/agents/registry.js +39 -0
  13. package/dist/src/agents/registry.js.map +1 -1
  14. package/dist/src/agents/registry.test.js +18 -0
  15. package/dist/src/agents/registry.test.js.map +1 -1
  16. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  17. package/dist/src/code_assist/experiments/client_metadata.js +2 -1
  18. package/dist/src/code_assist/experiments/client_metadata.js.map +1 -1
  19. package/dist/src/code_assist/experiments/client_metadata.test.js +7 -10
  20. package/dist/src/code_assist/experiments/client_metadata.test.js.map +1 -1
  21. package/dist/src/commands/init.d.ts +7 -0
  22. package/dist/src/commands/init.js +53 -0
  23. package/dist/src/commands/init.js.map +1 -0
  24. package/dist/src/commands/init.test.d.ts +6 -0
  25. package/dist/src/commands/init.test.js +25 -0
  26. package/dist/src/commands/init.test.js.map +1 -0
  27. package/dist/src/config/config.d.ts +0 -1
  28. package/dist/src/config/config.js +31 -22
  29. package/dist/src/config/config.js.map +1 -1
  30. package/dist/src/config/config.test.js +32 -8
  31. package/dist/src/config/config.test.js.map +1 -1
  32. package/dist/src/config/defaultModelConfigs.js +10 -0
  33. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  34. package/dist/src/config/models.d.ts +9 -1
  35. package/dist/src/config/models.js +11 -1
  36. package/dist/src/config/models.js.map +1 -1
  37. package/dist/src/config/models.test.js +14 -1
  38. package/dist/src/config/models.test.js.map +1 -1
  39. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  40. package/dist/src/confirmation-bus/types.d.ts +4 -0
  41. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  42. package/dist/src/core/contentGenerator.js +5 -3
  43. package/dist/src/core/contentGenerator.js.map +1 -1
  44. package/dist/src/core/contentGenerator.test.js +29 -2
  45. package/dist/src/core/contentGenerator.test.js.map +1 -1
  46. package/dist/src/core/coreToolScheduler.d.ts +1 -1
  47. package/dist/src/core/coreToolScheduler.js +72 -34
  48. package/dist/src/core/coreToolScheduler.js.map +1 -1
  49. package/dist/src/core/coreToolScheduler.test.js +134 -37
  50. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  51. package/dist/src/core/geminiChat.js +1 -3
  52. package/dist/src/core/geminiChat.js.map +1 -1
  53. package/dist/src/core/geminiChat.test.js.map +1 -1
  54. package/dist/src/core/logger.js.map +1 -1
  55. package/dist/src/core/nonInteractiveToolExecutor.test.js +4 -5
  56. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  57. package/dist/src/core/prompts.js +8 -6
  58. package/dist/src/core/prompts.js.map +1 -1
  59. package/dist/src/core/prompts.test.js +9 -3
  60. package/dist/src/core/prompts.test.js.map +1 -1
  61. package/dist/src/core/turn.js +1 -1
  62. package/dist/src/core/turn.js.map +1 -1
  63. package/dist/src/generated/git-commit.d.ts +2 -2
  64. package/dist/src/generated/git-commit.js +2 -2
  65. package/dist/src/hooks/hookEventHandler.js +6 -1
  66. package/dist/src/hooks/hookEventHandler.js.map +1 -1
  67. package/dist/src/hooks/hookEventHandler.test.js +8 -1
  68. package/dist/src/hooks/hookEventHandler.test.js.map +1 -1
  69. package/dist/src/hooks/hookRegistry.d.ts +0 -7
  70. package/dist/src/hooks/hookRegistry.js +0 -20
  71. package/dist/src/hooks/hookRegistry.js.map +1 -1
  72. package/dist/src/hooks/hookRegistry.test.js +1 -7
  73. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  74. package/dist/src/hooks/hookRunner.test.js +1 -1
  75. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  76. package/dist/src/hooks/hookSystem.d.ts +0 -8
  77. package/dist/src/hooks/hookSystem.js +0 -18
  78. package/dist/src/hooks/hookSystem.js.map +1 -1
  79. package/dist/src/hooks/hookSystem.test.js +2 -21
  80. package/dist/src/hooks/hookSystem.test.js.map +1 -1
  81. package/dist/src/ide/detect-ide.test.js +32 -1
  82. package/dist/src/ide/detect-ide.test.js.map +1 -1
  83. package/dist/src/ide/ide-installer.test.js +1 -1
  84. package/dist/src/ide/ide-installer.test.js.map +1 -1
  85. package/dist/src/index.d.ts +3 -0
  86. package/dist/src/index.js +3 -0
  87. package/dist/src/index.js.map +1 -1
  88. package/dist/src/mcp/oauth-provider.js.map +1 -1
  89. package/dist/src/output/json-formatter.test.js +2 -0
  90. package/dist/src/output/json-formatter.test.js.map +1 -1
  91. package/dist/src/output/stream-json-formatter.js +6 -0
  92. package/dist/src/output/stream-json-formatter.js.map +1 -1
  93. package/dist/src/output/stream-json-formatter.test.js +98 -100
  94. package/dist/src/output/stream-json-formatter.test.js.map +1 -1
  95. package/dist/src/output/types.d.ts +2 -0
  96. package/dist/src/policy/config.js +73 -3
  97. package/dist/src/policy/config.js.map +1 -1
  98. package/dist/src/policy/persistence.test.d.ts +6 -0
  99. package/dist/src/policy/persistence.test.js +154 -0
  100. package/dist/src/policy/persistence.test.js.map +1 -0
  101. package/dist/src/policy/policies/agent.toml +31 -0
  102. package/dist/src/policy/policy-engine.d.ts +10 -1
  103. package/dist/src/policy/policy-engine.js +79 -5
  104. package/dist/src/policy/policy-engine.js.map +1 -1
  105. package/dist/src/policy/policy-engine.test.js +26 -2
  106. package/dist/src/policy/policy-engine.test.js.map +1 -1
  107. package/dist/src/policy/shell-safety.test.d.ts +6 -0
  108. package/dist/src/policy/shell-safety.test.js +75 -0
  109. package/dist/src/policy/shell-safety.test.js.map +1 -0
  110. package/dist/src/policy/toml-loader.d.ts +11 -5
  111. package/dist/src/policy/toml-loader.js +38 -23
  112. package/dist/src/policy/toml-loader.js.map +1 -1
  113. package/dist/src/policy/toml-loader.test.js +28 -7
  114. package/dist/src/policy/toml-loader.test.js.map +1 -1
  115. package/dist/src/policy/types.d.ts +15 -0
  116. package/dist/src/safety/checker-runner.js +17 -6
  117. package/dist/src/safety/checker-runner.js.map +1 -1
  118. package/dist/src/services/chatRecordingService.d.ts +5 -0
  119. package/dist/src/services/chatRecordingService.js +7 -0
  120. package/dist/src/services/chatRecordingService.js.map +1 -1
  121. package/dist/src/services/fileSystemService.d.ts +0 -9
  122. package/dist/src/services/fileSystemService.js +0 -11
  123. package/dist/src/services/fileSystemService.js.map +1 -1
  124. package/dist/src/services/loopDetectionService.js +2 -2
  125. package/dist/src/services/loopDetectionService.js.map +1 -1
  126. package/dist/src/services/modelConfig.golden.test.js +32 -0
  127. package/dist/src/services/modelConfig.golden.test.js.map +1 -1
  128. package/dist/src/services/modelConfigService.d.ts +3 -0
  129. package/dist/src/services/modelConfigService.js +3 -2
  130. package/dist/src/services/modelConfigService.js.map +1 -1
  131. package/dist/src/services/modelConfigService.test.js +110 -0
  132. package/dist/src/services/modelConfigService.test.js.map +1 -1
  133. package/dist/src/services/shellExecutionService.js +1 -2
  134. package/dist/src/services/shellExecutionService.js.map +1 -1
  135. package/dist/src/services/shellExecutionService.test.js +6 -3
  136. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  137. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +238 -0
  138. package/dist/src/telemetry/activity-detector.test.js.map +1 -1
  139. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +5 -5
  140. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  141. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +18 -1
  142. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  143. package/dist/src/telemetry/config.js.map +1 -1
  144. package/dist/src/telemetry/loggers.test.js +5 -5
  145. package/dist/src/telemetry/loggers.test.js.map +1 -1
  146. package/dist/src/telemetry/metrics.test.js.map +1 -1
  147. package/dist/src/telemetry/startupProfiler.js +3 -3
  148. package/dist/src/telemetry/startupProfiler.js.map +1 -1
  149. package/dist/src/telemetry/startupProfiler.test.js +11 -2
  150. package/dist/src/telemetry/startupProfiler.test.js.map +1 -1
  151. package/dist/src/telemetry/trace.js.map +1 -1
  152. package/dist/src/telemetry/types.d.ts +10 -5
  153. package/dist/src/telemetry/types.js +16 -8
  154. package/dist/src/telemetry/types.js.map +1 -1
  155. package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
  156. package/dist/src/telemetry/uiTelemetry.js +2 -0
  157. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  158. package/dist/src/telemetry/uiTelemetry.test.js +4 -0
  159. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  160. package/dist/src/test-utils/mock-message-bus.js.map +1 -1
  161. package/dist/src/tools/confirmation-policy.test.d.ts +6 -0
  162. package/dist/src/tools/confirmation-policy.test.js +152 -0
  163. package/dist/src/tools/confirmation-policy.test.js.map +1 -0
  164. package/dist/src/tools/edit.js +5 -0
  165. package/dist/src/tools/edit.js.map +1 -1
  166. package/dist/src/tools/edit.test.js.map +1 -1
  167. package/dist/src/tools/grep.js.map +1 -1
  168. package/dist/src/tools/mcp-tool.js +13 -0
  169. package/dist/src/tools/mcp-tool.js.map +1 -1
  170. package/dist/src/tools/mcp-tool.test.js +25 -0
  171. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  172. package/dist/src/tools/memoryTool.js +1 -0
  173. package/dist/src/tools/memoryTool.js.map +1 -1
  174. package/dist/src/tools/modifiable-tool.js.map +1 -1
  175. package/dist/src/tools/read-file.test.js.map +1 -1
  176. package/dist/src/tools/shell.d.ts +2 -1
  177. package/dist/src/tools/shell.js +9 -1
  178. package/dist/src/tools/shell.js.map +1 -1
  179. package/dist/src/tools/shell.test.js +2 -1
  180. package/dist/src/tools/shell.test.js.map +1 -1
  181. package/dist/src/tools/smart-edit.js +5 -0
  182. package/dist/src/tools/smart-edit.js.map +1 -1
  183. package/dist/src/tools/smart-edit.test.js.map +1 -1
  184. package/dist/src/tools/tool-names.d.ts +1 -0
  185. package/dist/src/tools/tool-names.js +1 -0
  186. package/dist/src/tools/tool-names.js.map +1 -1
  187. package/dist/src/tools/tools.d.ts +19 -0
  188. package/dist/src/tools/tools.js +28 -9
  189. package/dist/src/tools/tools.js.map +1 -1
  190. package/dist/src/tools/web-fetch.js +5 -0
  191. package/dist/src/tools/web-fetch.js.map +1 -1
  192. package/dist/src/tools/write-file.js +5 -0
  193. package/dist/src/tools/write-file.js.map +1 -1
  194. package/dist/src/tools/write-file.test.js.map +1 -1
  195. package/dist/src/utils/bfsFileSearch.d.ts +8 -0
  196. package/dist/src/utils/bfsFileSearch.js +63 -23
  197. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  198. package/dist/src/utils/bfsFileSearch.test.js +65 -1
  199. package/dist/src/utils/bfsFileSearch.test.js.map +1 -1
  200. package/dist/src/utils/checkpointUtils.js.map +1 -1
  201. package/dist/src/utils/extensionLoader.d.ts +2 -2
  202. package/dist/src/utils/extensionLoader.js +5 -6
  203. package/dist/src/utils/extensionLoader.js.map +1 -1
  204. package/dist/src/utils/extensionLoader.test.js +11 -0
  205. package/dist/src/utils/extensionLoader.test.js.map +1 -1
  206. package/dist/src/utils/filesearch/crawlCache.js.map +1 -1
  207. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  208. package/dist/src/utils/pathCorrector.js +12 -2
  209. package/dist/src/utils/pathCorrector.js.map +1 -1
  210. package/dist/src/utils/pathCorrector.test.js +6 -2
  211. package/dist/src/utils/pathCorrector.test.js.map +1 -1
  212. package/dist/src/utils/shell-permissions.d.ts +52 -0
  213. package/dist/src/utils/shell-permissions.js +188 -0
  214. package/dist/src/utils/shell-permissions.js.map +1 -0
  215. package/dist/src/utils/shell-permissions.test.d.ts +6 -0
  216. package/dist/src/utils/shell-permissions.test.js +342 -0
  217. package/dist/src/utils/shell-permissions.test.js.map +1 -0
  218. package/dist/src/utils/shell-utils.d.ts +10 -47
  219. package/dist/src/utils/shell-utils.js +1 -182
  220. package/dist/src/utils/shell-utils.js.map +1 -1
  221. package/dist/src/utils/shell-utils.test.js +1 -288
  222. package/dist/src/utils/shell-utils.test.js.map +1 -1
  223. package/dist/src/utils/tool-utils.js.map +1 -1
  224. package/dist/src/utils/version.d.ts +6 -0
  225. package/dist/src/utils/version.js +15 -0
  226. package/dist/src/utils/version.js.map +1 -0
  227. package/dist/src/utils/version.test.d.ts +6 -0
  228. package/dist/src/utils/version.test.js +39 -0
  229. package/dist/src/utils/version.test.js.map +1 -0
  230. package/dist/tsconfig.tsbuildinfo +1 -1
  231. package/package.json +2 -1
@@ -115,6 +115,8 @@ describe('StreamJsonFormatter', () => {
115
115
  total_tokens: 100,
116
116
  input_tokens: 50,
117
117
  output_tokens: 50,
118
+ cached: 0,
119
+ input: 50,
118
120
  duration_ms: 1200,
119
121
  tool_calls: 2,
120
122
  },
@@ -136,6 +138,8 @@ describe('StreamJsonFormatter', () => {
136
138
  total_tokens: 100,
137
139
  input_tokens: 50,
138
140
  output_tokens: 50,
141
+ cached: 0,
142
+ input: 50,
139
143
  duration_ms: 1200,
140
144
  tool_calls: 0,
141
145
  },
@@ -190,139 +194,129 @@ describe('StreamJsonFormatter', () => {
190
194
  });
191
195
  });
192
196
  describe('convertToStreamStats', () => {
197
+ const createMockMetrics = () => ({
198
+ models: {},
199
+ tools: {
200
+ totalCalls: 0,
201
+ totalSuccess: 0,
202
+ totalFail: 0,
203
+ totalDurationMs: 0,
204
+ totalDecisions: {
205
+ [ToolCallDecision.ACCEPT]: 0,
206
+ [ToolCallDecision.REJECT]: 0,
207
+ [ToolCallDecision.MODIFY]: 0,
208
+ [ToolCallDecision.AUTO_ACCEPT]: 0,
209
+ },
210
+ byName: {},
211
+ },
212
+ files: {
213
+ totalLinesAdded: 0,
214
+ totalLinesRemoved: 0,
215
+ },
216
+ });
193
217
  it('should aggregate token counts from single model', () => {
194
- const metrics = {
195
- models: {
196
- 'gemini-2.0-flash': {
197
- api: {
198
- totalRequests: 1,
199
- totalErrors: 0,
200
- totalLatencyMs: 1000,
201
- },
202
- tokens: {
203
- prompt: 50,
204
- candidates: 30,
205
- total: 80,
206
- cached: 0,
207
- thoughts: 0,
208
- tool: 0,
209
- },
210
- },
218
+ const metrics = createMockMetrics();
219
+ metrics.models['gemini-2.0-flash'] = {
220
+ api: {
221
+ totalRequests: 1,
222
+ totalErrors: 0,
223
+ totalLatencyMs: 1000,
211
224
  },
212
- tools: {
213
- totalCalls: 2,
214
- totalSuccess: 2,
215
- totalFail: 0,
216
- totalDurationMs: 500,
217
- totalDecisions: {
218
- [ToolCallDecision.ACCEPT]: 0,
219
- [ToolCallDecision.REJECT]: 0,
220
- [ToolCallDecision.MODIFY]: 0,
221
- [ToolCallDecision.AUTO_ACCEPT]: 2,
222
- },
223
- byName: {},
224
- },
225
- files: {
226
- totalLinesAdded: 0,
227
- totalLinesRemoved: 0,
225
+ tokens: {
226
+ input: 50,
227
+ prompt: 50,
228
+ candidates: 30,
229
+ total: 80,
230
+ cached: 0,
231
+ thoughts: 0,
232
+ tool: 0,
228
233
  },
229
234
  };
235
+ metrics.tools.totalCalls = 2;
236
+ metrics.tools.totalDecisions[ToolCallDecision.AUTO_ACCEPT] = 2;
230
237
  const result = formatter.convertToStreamStats(metrics, 1200);
231
238
  expect(result).toEqual({
232
239
  total_tokens: 80,
233
240
  input_tokens: 50,
234
241
  output_tokens: 30,
242
+ cached: 0,
243
+ input: 50,
235
244
  duration_ms: 1200,
236
245
  tool_calls: 2,
237
246
  });
238
247
  });
239
248
  it('should aggregate token counts from multiple models', () => {
240
- const metrics = {
241
- models: {
242
- 'gemini-2.0-flash': {
243
- api: {
244
- totalRequests: 1,
245
- totalErrors: 0,
246
- totalLatencyMs: 1000,
247
- },
248
- tokens: {
249
- prompt: 50,
250
- candidates: 30,
251
- total: 80,
252
- cached: 0,
253
- thoughts: 0,
254
- tool: 0,
255
- },
256
- },
257
- 'gemini-1.5-pro': {
258
- api: {
259
- totalRequests: 1,
260
- totalErrors: 0,
261
- totalLatencyMs: 2000,
262
- },
263
- tokens: {
264
- prompt: 100,
265
- candidates: 70,
266
- total: 170,
267
- cached: 0,
268
- thoughts: 0,
269
- tool: 0,
270
- },
271
- },
249
+ const metrics = createMockMetrics();
250
+ metrics.models['gemini-pro'] = {
251
+ api: { totalRequests: 1, totalErrors: 0, totalLatencyMs: 1000 },
252
+ tokens: {
253
+ input: 50,
254
+ prompt: 50,
255
+ candidates: 30,
256
+ total: 80,
257
+ cached: 0,
258
+ thoughts: 0,
259
+ tool: 0,
272
260
  },
273
- tools: {
274
- totalCalls: 5,
275
- totalSuccess: 5,
276
- totalFail: 0,
277
- totalDurationMs: 1000,
278
- totalDecisions: {
279
- [ToolCallDecision.ACCEPT]: 0,
280
- [ToolCallDecision.REJECT]: 0,
281
- [ToolCallDecision.MODIFY]: 0,
282
- [ToolCallDecision.AUTO_ACCEPT]: 5,
283
- },
284
- byName: {},
285
- },
286
- files: {
287
- totalLinesAdded: 0,
288
- totalLinesRemoved: 0,
261
+ };
262
+ metrics.models['gemini-ultra'] = {
263
+ api: { totalRequests: 1, totalErrors: 0, totalLatencyMs: 2000 },
264
+ tokens: {
265
+ input: 100,
266
+ prompt: 100,
267
+ candidates: 70,
268
+ total: 170,
269
+ cached: 0,
270
+ thoughts: 0,
271
+ tool: 0,
289
272
  },
290
273
  };
274
+ metrics.tools.totalCalls = 5;
291
275
  const result = formatter.convertToStreamStats(metrics, 3000);
292
276
  expect(result).toEqual({
293
277
  total_tokens: 250, // 80 + 170
294
278
  input_tokens: 150, // 50 + 100
295
279
  output_tokens: 100, // 30 + 70
280
+ cached: 0,
281
+ input: 150,
296
282
  duration_ms: 3000,
297
283
  tool_calls: 5,
298
284
  });
299
285
  });
300
- it('should handle empty metrics', () => {
301
- const metrics = {
302
- models: {},
303
- tools: {
304
- totalCalls: 0,
305
- totalSuccess: 0,
306
- totalFail: 0,
307
- totalDurationMs: 0,
308
- totalDecisions: {
309
- [ToolCallDecision.ACCEPT]: 0,
310
- [ToolCallDecision.REJECT]: 0,
311
- [ToolCallDecision.MODIFY]: 0,
312
- [ToolCallDecision.AUTO_ACCEPT]: 0,
313
- },
314
- byName: {},
315
- },
316
- files: {
317
- totalLinesAdded: 0,
318
- totalLinesRemoved: 0,
286
+ it('should aggregate cached token counts correctly', () => {
287
+ const metrics = createMockMetrics();
288
+ metrics.models['gemini-pro'] = {
289
+ api: { totalRequests: 1, totalErrors: 0, totalLatencyMs: 1000 },
290
+ tokens: {
291
+ input: 20, // 50 prompt - 30 cached
292
+ prompt: 50,
293
+ candidates: 30,
294
+ total: 80,
295
+ cached: 30,
296
+ thoughts: 0,
297
+ tool: 0,
319
298
  },
320
299
  };
300
+ const result = formatter.convertToStreamStats(metrics, 1200);
301
+ expect(result).toEqual({
302
+ total_tokens: 80,
303
+ input_tokens: 50,
304
+ output_tokens: 30,
305
+ cached: 30,
306
+ input: 20,
307
+ duration_ms: 1200,
308
+ tool_calls: 0,
309
+ });
310
+ });
311
+ it('should handle empty metrics', () => {
312
+ const metrics = createMockMetrics();
321
313
  const result = formatter.convertToStreamStats(metrics, 100);
322
314
  expect(result).toEqual({
323
315
  total_tokens: 0,
324
316
  input_tokens: 0,
325
317
  output_tokens: 0,
318
+ cached: 0,
319
+ input: 0,
326
320
  duration_ms: 100,
327
321
  tool_calls: 0,
328
322
  });
@@ -443,6 +437,8 @@ describe('StreamJsonFormatter', () => {
443
437
  total_tokens: 0,
444
438
  input_tokens: 0,
445
439
  output_tokens: 0,
440
+ cached: 0,
441
+ input: 0,
446
442
  duration_ms: 0,
447
443
  tool_calls: 0,
448
444
  },
@@ -462,6 +458,8 @@ describe('StreamJsonFormatter', () => {
462
458
  total_tokens: 100,
463
459
  input_tokens: 50,
464
460
  output_tokens: 50,
461
+ cached: 0,
462
+ input: 50,
465
463
  duration_ms: 1200,
466
464
  tool_calls: 2,
467
465
  },
@@ -1 +1 @@
1
- {"version":3,"file":"stream-json-formatter.test.js","sourceRoot":"","sources":["../../../src/output/stream-json-formatter.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream-json-formatter.test.js","sourceRoot":"","sources":["../../../src/output/stream-json-formatter.test.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,8 @@ export interface StreamStats {
68
68
  total_tokens: number;
69
69
  input_tokens: number;
70
70
  output_tokens: number;
71
+ cached: number;
72
+ input: number;
71
73
  duration_ms: number;
72
74
  tool_calls: number;
73
75
  }
@@ -3,11 +3,13 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import * as fs from 'node:fs/promises';
6
7
  import * as path from 'node:path';
7
8
  import { fileURLToPath } from 'node:url';
8
9
  import { Storage } from '../config/storage.js';
9
10
  import { PolicyDecision, } from './types.js';
10
- import { loadPoliciesFromToml } from './toml-loader.js';
11
+ import { loadPoliciesFromToml, escapeRegex, } from './toml-loader.js';
12
+ import toml from '@iarna/toml';
11
13
  import { MessageBusType, } from '../confirmation-bus/types.js';
12
14
  import {} from '../confirmation-bus/message-bus.js';
13
15
  import { coreEvents } from '../utils/events.js';
@@ -82,7 +84,7 @@ export function formatPolicyError(error) {
82
84
  export async function createPolicyEngineConfig(settings, approvalMode, defaultPoliciesDir) {
83
85
  const policyDirs = getPolicyDirectories(defaultPoliciesDir);
84
86
  // Load policies from TOML files
85
- const { rules: tomlRules, checkers: tomlCheckers, errors, } = await loadPoliciesFromToml(approvalMode, policyDirs, (dir) => getPolicyTier(dir, defaultPoliciesDir));
87
+ const { rules: tomlRules, checkers: tomlCheckers, errors, } = await loadPoliciesFromToml(policyDirs, (dir) => getPolicyTier(dir, defaultPoliciesDir));
86
88
  // Emit any errors encountered during TOML loading to the UI
87
89
  // coreEvents has a buffer that will display these once the UI is ready
88
90
  if (errors.length > 0) {
@@ -181,11 +183,21 @@ export async function createPolicyEngineConfig(settings, approvalMode, defaultPo
181
183
  rules,
182
184
  checkers,
183
185
  defaultDecision: PolicyDecision.ASK_USER,
186
+ approvalMode,
184
187
  };
185
188
  }
186
189
  export function createPolicyUpdater(policyEngine, messageBus) {
187
- messageBus.subscribe(MessageBusType.UPDATE_POLICY, (message) => {
190
+ messageBus.subscribe(MessageBusType.UPDATE_POLICY, async (message) => {
188
191
  const toolName = message.toolName;
192
+ let argsPattern = message.argsPattern
193
+ ? new RegExp(message.argsPattern)
194
+ : undefined;
195
+ if (message.commandPrefix) {
196
+ // Convert commandPrefix to argsPattern for in-memory rule
197
+ // This mimics what toml-loader does
198
+ const escapedPrefix = escapeRegex(message.commandPrefix);
199
+ argsPattern = new RegExp(`"command":"${escapedPrefix}`);
200
+ }
189
201
  policyEngine.addRule({
190
202
  toolName,
191
203
  decision: PolicyDecision.ALLOW,
@@ -193,7 +205,65 @@ export function createPolicyUpdater(policyEngine, messageBus) {
193
205
  // This ensures user "always allow" selections are high priority
194
206
  // but still lose to admin policies (3.xxx) and settings excludes (200)
195
207
  priority: 2.95,
208
+ argsPattern,
196
209
  });
210
+ if (message.persist) {
211
+ try {
212
+ const userPoliciesDir = Storage.getUserPoliciesDir();
213
+ await fs.mkdir(userPoliciesDir, { recursive: true });
214
+ const policyFile = path.join(userPoliciesDir, 'auto-saved.toml');
215
+ // Read existing file
216
+ let existingData = {};
217
+ try {
218
+ const fileContent = await fs.readFile(policyFile, 'utf-8');
219
+ existingData = toml.parse(fileContent);
220
+ }
221
+ catch (error) {
222
+ if (error.code !== 'ENOENT') {
223
+ console.warn(`Failed to parse ${policyFile}, overwriting with new policy.`, error);
224
+ }
225
+ }
226
+ // Initialize rule array if needed
227
+ if (!existingData.rule) {
228
+ existingData.rule = [];
229
+ }
230
+ // Create new rule object
231
+ const newRule = {};
232
+ if (message.mcpName) {
233
+ newRule.mcpName = message.mcpName;
234
+ // Extract simple tool name
235
+ const simpleToolName = toolName.startsWith(`${message.mcpName}__`)
236
+ ? toolName.slice(message.mcpName.length + 2)
237
+ : toolName;
238
+ newRule.toolName = simpleToolName;
239
+ newRule.decision = 'allow';
240
+ newRule.priority = 200;
241
+ }
242
+ else {
243
+ newRule.toolName = toolName;
244
+ newRule.decision = 'allow';
245
+ newRule.priority = 100;
246
+ }
247
+ if (message.commandPrefix) {
248
+ newRule.commandPrefix = message.commandPrefix;
249
+ }
250
+ else if (message.argsPattern) {
251
+ newRule.argsPattern = message.argsPattern;
252
+ }
253
+ // Add to rules
254
+ existingData.rule.push(newRule);
255
+ // Serialize back to TOML
256
+ // @iarna/toml stringify might not produce beautiful output but it handles escaping correctly
257
+ const newContent = toml.stringify(existingData);
258
+ // Atomic write: write to tmp then rename
259
+ const tmpFile = `${policyFile}.tmp`;
260
+ await fs.writeFile(tmpFile, newContent, 'utf-8');
261
+ await fs.rename(tmpFile, policyFile);
262
+ }
263
+ catch (error) {
264
+ coreEvents.emitFeedback('error', `Failed to persist policy for ${toolName}`, error);
265
+ }
266
+ }
197
267
  });
198
268
  }
199
269
  //# sourceMappingURL=config.js.map
@@ -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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAEL,cAAc,GAIf,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EAEpB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAC1B,OAAO,IAAI,MAAM,aAAa,CAAC;AAC/B,OAAO,EACL,cAAc,GAEf,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAmB,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAE1E,iDAAiD;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,kBAA2B;IAC9D,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAE1C,4EAA4E;IAC5E,mEAAmE;IACnE,+FAA+F;IAC/F,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,GAAW,EACX,kBAA2B;IAE3B,MAAM,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACvD,MAAM,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAE1D,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEzD,IACE,kBAAkB;QAClB,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAClD,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,aAAa,KAAK,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC9D,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,IAAI,aAAa,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;QACtC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAsB;IACtD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,OAAO,GAAG,IAAI,SAAS,0BAA0B,KAAK,CAAC,QAAQ,KAAK,CAAC;IACzE,OAAO,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAChC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,IAAI,mBAAmB,KAAK,CAAC,UAAU,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,QAAwB,EACxB,YAA0B,EAC1B,kBAA2B;IAE3B,MAAM,UAAU,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAE5D,gCAAgC;IAChC,MAAM,EACJ,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,YAAY,EACtB,MAAM,GACP,GAAG,MAAM,oBAAoB,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CACjD,aAAa,CAAC,GAAG,EAAE,kBAAkB,CAAC,CACvC,CAAC;IAEF,4DAA4D;IAC5D,uEAAuE;IACvE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAiB,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAEnC,oCAAoC;IACpC,4DAA4D;IAC5D,oEAAoE;IACpE,6DAA6D;IAC7D,EAAE;IACF,0BAA0B;IAC1B,4EAA4E;IAC5E,yEAAyE;IACzE,0EAA0E;IAC1E,EAAE;IACF,qEAAqE;IACrE,qEAAqE;IACrE,EAAE;IACF,2DAA2D;IAC3D,mFAAmF;IACnF,yEAAyE;IACzE,wEAAwE;IACxE,wEAAwE;IACxE,mEAAmE;IACnE,sEAAsE;IACtE,EAAE;IACF,kDAAkD;IAClD,wEAAwE;IACxE,gEAAgE;IAChE,wDAAwD;IACxD,6DAA6D;IAE7D,oEAAoE;IACpE,+EAA+E;IAC/E,IAAI,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,GAAG,UAAU,KAAK;gBAC5B,QAAQ,EAAE,cAAc,CAAC,IAAI;gBAC7B,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,wDAAwD;IACxD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,cAAc,CAAC,IAAI;gBAC7B,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,wDAAwD;IACxD,IAAI,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC1C,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,IAAI;gBACd,QAAQ,EAAE,cAAc,CAAC,KAAK;gBAC9B,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gDAAgD;IAChD,yDAAyD;IACzD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,KAAK,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CACrD,QAAQ,CAAC,UAAU,CACpB,EAAE,CAAC;YACF,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACvB,uCAAuC;gBACvC,0FAA0F;gBAC1F,KAAK,CAAC,IAAI,CAAC;oBACT,QAAQ,EAAE,GAAG,UAAU,KAAK;oBAC5B,QAAQ,EAAE,cAAc,CAAC,KAAK;oBAC9B,QAAQ,EAAE,GAAG;iBACd,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,+DAA+D;IAC/D,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAC1B,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9C,KAAK,CAAC,IAAI,CAAC;gBACT,QAAQ,EAAE,GAAG,UAAU,KAAK;gBAC5B,QAAQ,EAAE,cAAc,CAAC,KAAK;gBAC9B,QAAQ,EAAE,GAAG;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,QAAQ;QACR,eAAe,EAAE,cAAc,CAAC,QAAQ;QACxC,YAAY;KACb,CAAC;AACJ,CAAC;AAaD,MAAM,UAAU,mBAAmB,CACjC,YAA0B,EAC1B,UAAsB;IAEtB,UAAU,CAAC,SAAS,CAClB,cAAc,CAAC,aAAa,EAC5B,KAAK,EAAE,OAAqB,EAAE,EAAE;QAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW;YACnC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,0DAA0D;YAC1D,oCAAoC;YACpC,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACzD,WAAW,GAAG,IAAI,MAAM,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,YAAY,CAAC,OAAO,CAAC;YACnB,QAAQ;YACR,QAAQ,EAAE,cAAc,CAAC,KAAK;YAC9B,kDAAkD;YAClD,gEAAgE;YAChE,uEAAuE;YACvE,QAAQ,EAAE,IAAI;YACd,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBACrD,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;gBAEjE,qBAAqB;gBACrB,IAAI,YAAY,GAA0B,EAAE,CAAC;gBAC7C,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;oBAC3D,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA0B,CAAC;gBAClE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBACvD,OAAO,CAAC,IAAI,CACV,mBAAmB,UAAU,gCAAgC,EAC7D,KAAK,CACN,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,kCAAkC;gBAClC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;oBACvB,YAAY,CAAC,IAAI,GAAG,EAAE,CAAC;gBACzB,CAAC;gBAED,yBAAyB;gBACzB,MAAM,OAAO,GAAa,EAAE,CAAC;gBAE7B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;oBAClC,2BAA2B;oBAC3B,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC;wBAChE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;wBAC5C,CAAC,CAAC,QAAQ,CAAC;oBACb,OAAO,CAAC,QAAQ,GAAG,cAAc,CAAC;oBAClC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;oBAC3B,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACzB,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC5B,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;oBAC3B,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;gBACzB,CAAC;gBAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;oBAC1B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;gBAChD,CAAC;qBAAM,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBAC/B,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC5C,CAAC;gBAED,eAAe;gBACf,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAEhC,yBAAyB;gBACzB,6FAA6F;gBAC7F,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAA4B,CAAC,CAAC;gBAEhE,yCAAyC;gBACzC,MAAM,OAAO,GAAG,GAAG,UAAU,MAAM,CAAC;gBACpC,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,CAAC,YAAY,CACrB,OAAO,EACP,gCAAgC,QAAQ,EAAE,EAC1C,KAAK,CACN,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, beforeEach, afterEach, } from 'vitest';
7
+ import * as fs from 'node:fs/promises';
8
+ import * as path from 'node:path';
9
+ import { createPolicyUpdater } from './config.js';
10
+ import { PolicyEngine } from './policy-engine.js';
11
+ import { MessageBus } from '../confirmation-bus/message-bus.js';
12
+ import { MessageBusType } from '../confirmation-bus/types.js';
13
+ import { Storage } from '../config/storage.js';
14
+ import { ApprovalMode } from './types.js';
15
+ vi.mock('node:fs/promises');
16
+ vi.mock('../config/storage.js');
17
+ describe('createPolicyUpdater', () => {
18
+ let policyEngine;
19
+ let messageBus;
20
+ beforeEach(() => {
21
+ policyEngine = new PolicyEngine({
22
+ rules: [],
23
+ checkers: [],
24
+ approvalMode: ApprovalMode.DEFAULT,
25
+ });
26
+ messageBus = new MessageBus(policyEngine);
27
+ vi.clearAllMocks();
28
+ });
29
+ afterEach(() => {
30
+ vi.restoreAllMocks();
31
+ });
32
+ it('should persist policy when persist flag is true', async () => {
33
+ createPolicyUpdater(policyEngine, messageBus);
34
+ const userPoliciesDir = '/mock/user/policies';
35
+ vi.spyOn(Storage, 'getUserPoliciesDir').mockReturnValue(userPoliciesDir);
36
+ fs.mkdir.mockResolvedValue(undefined);
37
+ fs.readFile.mockRejectedValue(new Error('File not found')); // Simulate new file
38
+ fs.writeFile.mockResolvedValue(undefined);
39
+ fs.rename.mockResolvedValue(undefined);
40
+ const toolName = 'test_tool';
41
+ await messageBus.publish({
42
+ type: MessageBusType.UPDATE_POLICY,
43
+ toolName,
44
+ persist: true,
45
+ });
46
+ // Wait for async operations (microtasks)
47
+ await new Promise((resolve) => setTimeout(resolve, 0));
48
+ expect(Storage.getUserPoliciesDir).toHaveBeenCalled();
49
+ expect(fs.mkdir).toHaveBeenCalledWith(userPoliciesDir, {
50
+ recursive: true,
51
+ });
52
+ // Check written content
53
+ const expectedContent = expect.stringContaining(`toolName = "test_tool"`);
54
+ expect(fs.writeFile).toHaveBeenCalledWith(expect.stringMatching(/\.tmp$/), expectedContent, 'utf-8');
55
+ expect(fs.rename).toHaveBeenCalledWith(expect.stringMatching(/\.tmp$/), path.join(userPoliciesDir, 'auto-saved.toml'));
56
+ });
57
+ it('should not persist policy when persist flag is false or undefined', async () => {
58
+ createPolicyUpdater(policyEngine, messageBus);
59
+ await messageBus.publish({
60
+ type: MessageBusType.UPDATE_POLICY,
61
+ toolName: 'test_tool',
62
+ });
63
+ await new Promise((resolve) => setTimeout(resolve, 0));
64
+ expect(fs.writeFile).not.toHaveBeenCalled();
65
+ expect(fs.rename).not.toHaveBeenCalled();
66
+ });
67
+ it('should persist policy with commandPrefix when provided', async () => {
68
+ createPolicyUpdater(policyEngine, messageBus);
69
+ const userPoliciesDir = '/mock/user/policies';
70
+ vi.spyOn(Storage, 'getUserPoliciesDir').mockReturnValue(userPoliciesDir);
71
+ fs.mkdir.mockResolvedValue(undefined);
72
+ fs.readFile.mockRejectedValue(new Error('File not found'));
73
+ fs.writeFile.mockResolvedValue(undefined);
74
+ fs.rename.mockResolvedValue(undefined);
75
+ const toolName = 'run_shell_command';
76
+ const commandPrefix = 'git status';
77
+ await messageBus.publish({
78
+ type: MessageBusType.UPDATE_POLICY,
79
+ toolName,
80
+ persist: true,
81
+ commandPrefix,
82
+ });
83
+ await new Promise((resolve) => setTimeout(resolve, 0));
84
+ // In-memory rule check (unchanged)
85
+ const rules = policyEngine.getRules();
86
+ const addedRule = rules.find((r) => r.toolName === toolName);
87
+ expect(addedRule).toBeDefined();
88
+ expect(addedRule?.priority).toBe(2.95);
89
+ expect(addedRule?.argsPattern).toEqual(new RegExp(`"command":"git status`));
90
+ // Verify file written
91
+ expect(fs.writeFile).toHaveBeenCalledWith(expect.stringMatching(/\.tmp$/), expect.stringContaining(`commandPrefix = "git status"`), 'utf-8');
92
+ });
93
+ it('should persist policy with mcpName and toolName when provided', async () => {
94
+ createPolicyUpdater(policyEngine, messageBus);
95
+ const userPoliciesDir = '/mock/user/policies';
96
+ vi.spyOn(Storage, 'getUserPoliciesDir').mockReturnValue(userPoliciesDir);
97
+ fs.mkdir.mockResolvedValue(undefined);
98
+ fs.readFile.mockRejectedValue(new Error('File not found'));
99
+ fs.writeFile.mockResolvedValue(undefined);
100
+ fs.rename.mockResolvedValue(undefined);
101
+ const mcpName = 'my-jira-server';
102
+ const simpleToolName = 'search';
103
+ const toolName = `${mcpName}__${simpleToolName}`;
104
+ await messageBus.publish({
105
+ type: MessageBusType.UPDATE_POLICY,
106
+ toolName,
107
+ persist: true,
108
+ mcpName,
109
+ });
110
+ await new Promise((resolve) => setTimeout(resolve, 0));
111
+ // Verify file written
112
+ const writeCall = fs.writeFile.mock.calls[0];
113
+ const writtenContent = writeCall[1];
114
+ expect(writtenContent).toContain(`mcpName = "${mcpName}"`);
115
+ expect(writtenContent).toContain(`toolName = "${simpleToolName}"`);
116
+ expect(writtenContent).toContain('priority = 200');
117
+ });
118
+ it('should escape special characters in toolName and mcpName', async () => {
119
+ createPolicyUpdater(policyEngine, messageBus);
120
+ const userPoliciesDir = '/mock/user/policies';
121
+ vi.spyOn(Storage, 'getUserPoliciesDir').mockReturnValue(userPoliciesDir);
122
+ fs.mkdir.mockResolvedValue(undefined);
123
+ fs.readFile.mockRejectedValue(new Error('File not found'));
124
+ fs.writeFile.mockResolvedValue(undefined);
125
+ fs.rename.mockResolvedValue(undefined);
126
+ const mcpName = 'my"jira"server';
127
+ const toolName = `my"jira"server__search"tool"`;
128
+ await messageBus.publish({
129
+ type: MessageBusType.UPDATE_POLICY,
130
+ toolName,
131
+ persist: true,
132
+ mcpName,
133
+ });
134
+ await new Promise((resolve) => setTimeout(resolve, 0));
135
+ const writeCall = fs.writeFile.mock.calls[0];
136
+ const writtenContent = writeCall[1];
137
+ // Verify escaping - should be valid TOML
138
+ // Note: @iarna/toml optimizes for shortest representation, so it may use single quotes 'foo"bar'
139
+ // instead of "foo\"bar\"" if there are no single quotes in the string.
140
+ try {
141
+ expect(writtenContent).toContain(`mcpName = "my\\"jira\\"server"`);
142
+ }
143
+ catch {
144
+ expect(writtenContent).toContain(`mcpName = 'my"jira"server'`);
145
+ }
146
+ try {
147
+ expect(writtenContent).toContain(`toolName = "search\\"tool\\""`);
148
+ }
149
+ catch {
150
+ expect(writtenContent).toContain(`toolName = 'search"tool"'`);
151
+ }
152
+ });
153
+ });
154
+ //# sourceMappingURL=persistence.test.js.map