@machina.ai/cell-cli-core 1.10.0-rc1 → 1.11.0-rc1

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 (259) hide show
  1. package/dist/package.json +5 -3
  2. package/dist/src/agents/codebase-investigator.js +2 -5
  3. package/dist/src/agents/codebase-investigator.js.map +1 -1
  4. package/dist/src/agents/executor.js +8 -14
  5. package/dist/src/agents/executor.js.map +1 -1
  6. package/dist/src/agents/executor.test.js +36 -31
  7. package/dist/src/agents/executor.test.js.map +1 -1
  8. package/dist/src/agents/registry.js +4 -3
  9. package/dist/src/agents/registry.js.map +1 -1
  10. package/dist/src/code_assist/converter.d.ts +1 -0
  11. package/dist/src/code_assist/converter.js +1 -0
  12. package/dist/src/code_assist/converter.js.map +1 -1
  13. package/dist/src/code_assist/converter.test.js +19 -0
  14. package/dist/src/code_assist/converter.test.js.map +1 -1
  15. package/dist/src/code_assist/oauth2.js +13 -12
  16. package/dist/src/code_assist/oauth2.js.map +1 -1
  17. package/dist/src/config/config.d.ts +10 -9
  18. package/dist/src/config/config.js +36 -22
  19. package/dist/src/config/config.js.map +1 -1
  20. package/dist/src/config/config.test.js +58 -15
  21. package/dist/src/config/config.test.js.map +1 -1
  22. package/dist/src/confirmation-bus/message-bus.d.ts +2 -1
  23. package/dist/src/confirmation-bus/message-bus.js +7 -1
  24. package/dist/src/confirmation-bus/message-bus.js.map +1 -1
  25. package/dist/src/confirmation-bus/types.d.ts +12 -2
  26. package/dist/src/confirmation-bus/types.js +1 -0
  27. package/dist/src/confirmation-bus/types.js.map +1 -1
  28. package/dist/src/core/client.js +3 -2
  29. package/dist/src/core/client.js.map +1 -1
  30. package/dist/src/core/client.test.js +0 -20
  31. package/dist/src/core/client.test.js.map +1 -1
  32. package/dist/src/core/coreToolScheduler.d.ts +7 -0
  33. package/dist/src/core/coreToolScheduler.js +46 -10
  34. package/dist/src/core/coreToolScheduler.js.map +1 -1
  35. package/dist/src/core/coreToolScheduler.test.js +124 -3
  36. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  37. package/dist/src/core/geminiChat.js +1 -0
  38. package/dist/src/core/geminiChat.js.map +1 -1
  39. package/dist/src/core/logger.js +11 -10
  40. package/dist/src/core/logger.js.map +1 -1
  41. package/dist/src/core/nonInteractiveToolExecutor.test.js +3 -0
  42. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  43. package/dist/src/core/prompts.js +15 -21
  44. package/dist/src/core/prompts.js.map +1 -1
  45. package/dist/src/core/turn.d.ts +2 -0
  46. package/dist/src/core/turn.js +3 -1
  47. package/dist/src/core/turn.js.map +1 -1
  48. package/dist/src/core/turn.test.js +48 -0
  49. package/dist/src/core/turn.test.js.map +1 -1
  50. package/dist/src/generated/git-commit.d.ts +2 -2
  51. package/dist/src/generated/git-commit.js +2 -2
  52. package/dist/src/ide/ide-client.js +2 -1
  53. package/dist/src/ide/ide-client.js.map +1 -1
  54. package/dist/src/index.d.ts +4 -0
  55. package/dist/src/index.js +4 -0
  56. package/dist/src/index.js.map +1 -1
  57. package/dist/src/mcp/oauth-provider.js +21 -20
  58. package/dist/src/mcp/oauth-provider.js.map +1 -1
  59. package/dist/src/mcp/oauth-utils.js +9 -8
  60. package/dist/src/mcp/oauth-utils.js.map +1 -1
  61. package/dist/src/mcp/oauth-utils.test.js +13 -2
  62. package/dist/src/mcp/oauth-utils.test.js.map +1 -1
  63. package/dist/src/output/stream-json-formatter.d.ts +32 -0
  64. package/dist/src/output/stream-json-formatter.js +52 -0
  65. package/dist/src/output/stream-json-formatter.js.map +1 -0
  66. package/dist/src/output/stream-json-formatter.test.js +479 -0
  67. package/dist/src/output/stream-json-formatter.test.js.map +1 -0
  68. package/dist/src/output/types.d.ts +63 -1
  69. package/dist/src/output/types.js +11 -0
  70. package/dist/src/output/types.js.map +1 -1
  71. package/dist/src/prompts/prompt-registry.js +2 -1
  72. package/dist/src/prompts/prompt-registry.js.map +1 -1
  73. package/dist/src/routing/strategies/classifierStrategy.js +3 -2
  74. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  75. package/dist/src/services/loopDetectionService.js +3 -2
  76. package/dist/src/services/loopDetectionService.js.map +1 -1
  77. package/dist/src/services/shellExecutionService.js +33 -22
  78. package/dist/src/services/shellExecutionService.js.map +1 -1
  79. package/dist/src/services/shellExecutionService.test.js +52 -11
  80. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  81. package/dist/src/telemetry/activity-monitor.d.ts +116 -0
  82. package/dist/src/telemetry/activity-monitor.js +209 -0
  83. package/dist/src/telemetry/activity-monitor.js.map +1 -0
  84. package/dist/src/telemetry/activity-monitor.test.d.ts +6 -0
  85. package/dist/src/telemetry/activity-monitor.test.js +248 -0
  86. package/dist/src/telemetry/activity-monitor.test.js.map +1 -0
  87. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +1 -0
  88. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +51 -24
  89. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  90. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +3 -14
  91. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  92. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +3 -0
  93. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +7 -1
  94. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  95. package/dist/src/telemetry/index.d.ts +2 -1
  96. package/dist/src/telemetry/index.js +2 -1
  97. package/dist/src/telemetry/index.js.map +1 -1
  98. package/dist/src/telemetry/loggers.test.js +21 -17
  99. package/dist/src/telemetry/loggers.test.js.map +1 -1
  100. package/dist/src/telemetry/sdk.js +3 -2
  101. package/dist/src/telemetry/sdk.js.map +1 -1
  102. package/dist/src/telemetry/types.d.ts +15 -6
  103. package/dist/src/telemetry/types.js +28 -6
  104. package/dist/src/telemetry/types.js.map +1 -1
  105. package/dist/src/tools/edit.js +8 -7
  106. package/dist/src/tools/edit.js.map +1 -1
  107. package/dist/src/tools/edit.test.js +0 -1
  108. package/dist/src/tools/edit.test.js.map +1 -1
  109. package/dist/src/tools/glob.d.ts +3 -2
  110. package/dist/src/tools/glob.js +6 -6
  111. package/dist/src/tools/glob.js.map +1 -1
  112. package/dist/src/tools/grep.d.ts +3 -2
  113. package/dist/src/tools/grep.js +20 -14
  114. package/dist/src/tools/grep.js.map +1 -1
  115. package/dist/src/tools/ls.d.ts +3 -2
  116. package/dist/src/tools/ls.js +8 -7
  117. package/dist/src/tools/ls.js.map +1 -1
  118. package/dist/src/tools/mcp-client-manager.d.ts +2 -9
  119. package/dist/src/tools/mcp-client-manager.js +6 -14
  120. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  121. package/dist/src/tools/mcp-client-manager.test.js +16 -6
  122. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  123. package/dist/src/tools/mcp-client.js +20 -19
  124. package/dist/src/tools/mcp-client.js.map +1 -1
  125. package/dist/src/tools/mcp-tool.d.ts +2 -1
  126. package/dist/src/tools/mcp-tool.js +7 -3
  127. package/dist/src/tools/mcp-tool.js.map +1 -1
  128. package/dist/src/tools/memoryTool.d.ts +1 -1
  129. package/dist/src/tools/memoryTool.js +3 -2
  130. package/dist/src/tools/memoryTool.js.map +1 -1
  131. package/dist/src/tools/message-bus-integration.test.js +14 -1
  132. package/dist/src/tools/message-bus-integration.test.js.map +1 -1
  133. package/dist/src/tools/read-file.d.ts +4 -3
  134. package/dist/src/tools/read-file.js +9 -8
  135. package/dist/src/tools/read-file.js.map +1 -1
  136. package/dist/src/tools/read-many-files.d.ts +4 -3
  137. package/dist/src/tools/read-many-files.js +11 -8
  138. package/dist/src/tools/read-many-files.js.map +1 -1
  139. package/dist/src/tools/read-many-files.test.js +0 -1
  140. package/dist/src/tools/read-many-files.test.js.map +1 -1
  141. package/dist/src/tools/ripGrep.d.ts +3 -2
  142. package/dist/src/tools/ripGrep.js +47 -17
  143. package/dist/src/tools/ripGrep.js.map +1 -1
  144. package/dist/src/tools/ripGrep.test.js +106 -60
  145. package/dist/src/tools/ripGrep.test.js.map +1 -1
  146. package/dist/src/tools/shell.d.ts +1 -1
  147. package/dist/src/tools/shell.js +21 -57
  148. package/dist/src/tools/shell.js.map +1 -1
  149. package/dist/src/tools/shell.test.js +61 -8
  150. package/dist/src/tools/shell.test.js.map +1 -1
  151. package/dist/src/tools/smart-edit.js +7 -6
  152. package/dist/src/tools/smart-edit.js.map +1 -1
  153. package/dist/src/tools/smart-edit.test.js +0 -1
  154. package/dist/src/tools/smart-edit.test.js.map +1 -1
  155. package/dist/src/tools/tool-names.d.ts +8 -0
  156. package/dist/src/tools/tool-names.js +8 -5
  157. package/dist/src/tools/tool-names.js.map +1 -1
  158. package/dist/src/tools/tool-registry.js +4 -3
  159. package/dist/src/tools/tool-registry.js.map +1 -1
  160. package/dist/src/tools/tools.d.ts +17 -10
  161. package/dist/src/tools/tools.js +54 -39
  162. package/dist/src/tools/tools.js.map +1 -1
  163. package/dist/src/tools/web-fetch.d.ts +4 -3
  164. package/dist/src/tools/web-fetch.js +48 -22
  165. package/dist/src/tools/web-fetch.js.map +1 -1
  166. package/dist/src/tools/web-fetch.test.js +261 -0
  167. package/dist/src/tools/web-fetch.test.js.map +1 -1
  168. package/dist/src/tools/web-search.d.ts +4 -3
  169. package/dist/src/tools/web-search.js +8 -6
  170. package/dist/src/tools/web-search.js.map +1 -1
  171. package/dist/src/tools/write-file.d.ts +1 -1
  172. package/dist/src/tools/write-file.js +1 -1
  173. package/dist/src/tools/write-file.js.map +1 -1
  174. package/dist/src/tools/write-file.test.js +0 -1
  175. package/dist/src/tools/write-file.test.js.map +1 -1
  176. package/dist/src/tools/write-todos.d.ts +2 -7
  177. package/dist/src/tools/write-todos.js +10 -4
  178. package/dist/src/tools/write-todos.js.map +1 -1
  179. package/dist/src/tools/write-todos.test.js +2 -2
  180. package/dist/src/tools/write-todos.test.js.map +1 -1
  181. package/dist/src/utils/bfsFileSearch.js +3 -2
  182. package/dist/src/utils/bfsFileSearch.js.map +1 -1
  183. package/dist/src/utils/debugLogger.d.ts +25 -0
  184. package/dist/src/utils/debugLogger.js +33 -0
  185. package/dist/src/utils/debugLogger.js.map +1 -0
  186. package/dist/src/utils/debugLogger.test.d.ts +6 -0
  187. package/dist/src/utils/debugLogger.test.js +67 -0
  188. package/dist/src/utils/debugLogger.test.js.map +1 -0
  189. package/dist/src/utils/delay.d.ts +16 -0
  190. package/dist/src/utils/delay.js +43 -0
  191. package/dist/src/utils/delay.js.map +1 -0
  192. package/dist/src/utils/delay.test.d.ts +6 -0
  193. package/dist/src/utils/delay.test.js +88 -0
  194. package/dist/src/utils/delay.test.js.map +1 -0
  195. package/dist/src/utils/editCorrector.js +5 -9
  196. package/dist/src/utils/editCorrector.js.map +1 -1
  197. package/dist/src/utils/editCorrector.test.js +3 -5
  198. package/dist/src/utils/editCorrector.test.js.map +1 -1
  199. package/dist/src/utils/editor.js +33 -38
  200. package/dist/src/utils/editor.js.map +1 -1
  201. package/dist/src/utils/environmentContext.js +0 -33
  202. package/dist/src/utils/environmentContext.js.map +1 -1
  203. package/dist/src/utils/environmentContext.test.js +0 -34
  204. package/dist/src/utils/environmentContext.test.js.map +1 -1
  205. package/dist/src/utils/fetch.d.ts +1 -0
  206. package/dist/src/utils/fetch.js +9 -0
  207. package/dist/src/utils/fetch.js.map +1 -1
  208. package/dist/src/utils/fileUtils.d.ts +4 -0
  209. package/dist/src/utils/fileUtils.js +34 -2
  210. package/dist/src/utils/fileUtils.js.map +1 -1
  211. package/dist/src/utils/fileUtils.test.js +12 -1
  212. package/dist/src/utils/fileUtils.test.js.map +1 -1
  213. package/dist/src/utils/getFolderStructure.js +2 -1
  214. package/dist/src/utils/getFolderStructure.js.map +1 -1
  215. package/dist/src/utils/gitIgnoreParser.js +7 -6
  216. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  217. package/dist/src/utils/gitIgnoreParser.test.js +30 -0
  218. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -1
  219. package/dist/src/utils/llm-edit-fixer.js +2 -1
  220. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  221. package/dist/src/utils/memoryDiscovery.d.ts +2 -1
  222. package/dist/src/utils/memoryDiscovery.js +12 -11
  223. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  224. package/dist/src/utils/memoryDiscovery.test.js +39 -17
  225. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  226. package/dist/src/utils/memoryImportProcessor.js +3 -2
  227. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  228. package/dist/src/utils/nextSpeakerChecker.js +2 -1
  229. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  230. package/dist/src/utils/retry.d.ts +1 -0
  231. package/dist/src/utils/retry.js +23 -20
  232. package/dist/src/utils/retry.js.map +1 -1
  233. package/dist/src/utils/retry.test.js +19 -1
  234. package/dist/src/utils/retry.test.js.map +1 -1
  235. package/dist/src/utils/safeJsonStringify.d.ts +4 -4
  236. package/dist/src/utils/safeJsonStringify.js +31 -7
  237. package/dist/src/utils/safeJsonStringify.js.map +1 -1
  238. package/dist/src/utils/shell-utils.d.ts +14 -2
  239. package/dist/src/utils/shell-utils.js +353 -136
  240. package/dist/src/utils/shell-utils.js.map +1 -1
  241. package/dist/src/utils/shell-utils.test.js +154 -60
  242. package/dist/src/utils/shell-utils.test.js.map +1 -1
  243. package/dist/src/utils/systemEncoding.js +5 -4
  244. package/dist/src/utils/systemEncoding.js.map +1 -1
  245. package/dist/src/utils/tool-utils.d.ts +2 -2
  246. package/dist/src/utils/tool-utils.js +14 -5
  247. package/dist/src/utils/tool-utils.js.map +1 -1
  248. package/dist/src/utils/userAccountManager.js +5 -4
  249. package/dist/src/utils/userAccountManager.js.map +1 -1
  250. package/dist/src/utils/workspaceContext.js +2 -1
  251. package/dist/src/utils/workspaceContext.js.map +1 -1
  252. package/dist/tsconfig.tsbuildinfo +1 -1
  253. package/package.json +5 -3
  254. package/dist/src/core/subagent.d.ts +0 -236
  255. package/dist/src/core/subagent.js +0 -482
  256. package/dist/src/core/subagent.js.map +0 -1
  257. package/dist/src/core/subagent.test.js +0 -556
  258. package/dist/src/core/subagent.test.js.map +0 -1
  259. /package/dist/src/{core/subagent.test.d.ts → output/stream-json-formatter.test.d.ts} +0 -0
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { expect, describe, it, beforeEach, vi, afterEach } from 'vitest';
7
- import { checkCommandPermissions, escapeShellArg, getCommandRoots, getShellConfiguration, isCommandAllowed, stripShellWrapper, } from './shell-utils.js';
6
+ import { expect, describe, it, beforeEach, beforeAll, vi, afterEach, } from 'vitest';
7
+ import { checkCommandPermissions, escapeShellArg, getCommandRoots, getShellConfiguration, isCommandAllowed, initializeShellParsers, stripShellWrapper, isShellInvocationAllowlisted, } from './shell-utils.js';
8
8
  const mockPlatform = vi.hoisted(() => vi.fn());
9
9
  const mockHomedir = vi.hoisted(() => vi.fn());
10
10
  const mockTmpdir = vi.hoisted(() => vi.fn());
@@ -23,6 +23,12 @@ vi.mock('shell-quote', () => ({
23
23
  quote: mockQuote,
24
24
  }));
25
25
  let config;
26
+ const isWindowsRuntime = process.platform === 'win32';
27
+ const describeWindowsOnly = isWindowsRuntime ? describe : describe.skip;
28
+ beforeAll(async () => {
29
+ mockPlatform.mockReturnValue('linux');
30
+ await initializeShellParsers();
31
+ });
26
32
  beforeEach(() => {
27
33
  mockPlatform.mockReturnValue('linux');
28
34
  mockQuote.mockImplementation((args) => args.map((arg) => `'${arg}'`).join(' '));
@@ -37,32 +43,32 @@ afterEach(() => {
37
43
  });
38
44
  describe('isCommandAllowed', () => {
39
45
  it('should allow a command if no restrictions are provided', () => {
40
- const result = isCommandAllowed('ls -l', config);
46
+ const result = isCommandAllowed('goodCommand --safe', config);
41
47
  expect(result.allowed).toBe(true);
42
48
  });
43
49
  it('should allow a command if it is in the global allowlist', () => {
44
- config.getCoreTools = () => ['ShellTool(ls)'];
45
- const result = isCommandAllowed('ls -l', config);
50
+ config.getCoreTools = () => ['ShellTool(goodCommand)'];
51
+ const result = isCommandAllowed('goodCommand --safe', config);
46
52
  expect(result.allowed).toBe(true);
47
53
  });
48
54
  it('should block a command if it is not in a strict global allowlist', () => {
49
- config.getCoreTools = () => ['ShellTool(ls -l)'];
50
- const result = isCommandAllowed('rm -rf /', config);
55
+ config.getCoreTools = () => ['ShellTool(goodCommand --safe)'];
56
+ const result = isCommandAllowed('badCommand --danger', config);
51
57
  expect(result.allowed).toBe(false);
52
- expect(result.reason).toBe(`Command(s) not in the allowed commands list. Disallowed commands: "rm -rf /"`);
58
+ expect(result.reason).toBe(`Command(s) not in the allowed commands list. Disallowed commands: "badCommand --danger"`);
53
59
  });
54
60
  it('should block a command if it is in the blocked list', () => {
55
- config.getExcludeTools = () => ['ShellTool(rm -rf /)'];
56
- const result = isCommandAllowed('rm -rf /', config);
61
+ config.getExcludeTools = () => ['ShellTool(badCommand --danger)'];
62
+ const result = isCommandAllowed('badCommand --danger', config);
57
63
  expect(result.allowed).toBe(false);
58
- expect(result.reason).toBe(`Command 'rm -rf /' is blocked by configuration`);
64
+ expect(result.reason).toBe(`Command 'badCommand --danger' is blocked by configuration`);
59
65
  });
60
66
  it('should prioritize the blocklist over the allowlist', () => {
61
- config.getCoreTools = () => ['ShellTool(rm -rf /)'];
62
- config.getExcludeTools = () => ['ShellTool(rm -rf /)'];
63
- const result = isCommandAllowed('rm -rf /', config);
67
+ config.getCoreTools = () => ['ShellTool(badCommand --danger)'];
68
+ config.getExcludeTools = () => ['ShellTool(badCommand --danger)'];
69
+ const result = isCommandAllowed('badCommand --danger', config);
64
70
  expect(result.allowed).toBe(false);
65
- expect(result.reason).toBe(`Command 'rm -rf /' is blocked by configuration`);
71
+ expect(result.reason).toBe(`Command 'badCommand --danger' is blocked by configuration`);
66
72
  });
67
73
  it('should allow any command when a wildcard is in coreTools', () => {
68
74
  config.getCoreTools = () => ['ShellTool'];
@@ -77,75 +83,89 @@ describe('isCommandAllowed', () => {
77
83
  });
78
84
  it('should block a command on the blocklist even with a wildcard allow', () => {
79
85
  config.getCoreTools = () => ['ShellTool'];
80
- config.getExcludeTools = () => ['ShellTool(rm -rf /)'];
81
- const result = isCommandAllowed('rm -rf /', config);
86
+ config.getExcludeTools = () => ['ShellTool(badCommand --danger)'];
87
+ const result = isCommandAllowed('badCommand --danger', config);
82
88
  expect(result.allowed).toBe(false);
83
- expect(result.reason).toBe(`Command 'rm -rf /' is blocked by configuration`);
89
+ expect(result.reason).toBe(`Command 'badCommand --danger' is blocked by configuration`);
84
90
  });
85
91
  it('should allow a chained command if all parts are on the global allowlist', () => {
86
92
  config.getCoreTools = () => [
87
93
  'run_shell_command(echo)',
88
- 'run_shell_command(ls)',
94
+ 'run_shell_command(goodCommand)',
89
95
  ];
90
- const result = isCommandAllowed('echo "hello" && ls -l', config);
96
+ const result = isCommandAllowed('echo "hello" && goodCommand --safe', config);
91
97
  expect(result.allowed).toBe(true);
92
98
  });
93
99
  it('should block a chained command if any part is blocked', () => {
94
- config.getExcludeTools = () => ['run_shell_command(rm)'];
95
- const result = isCommandAllowed('echo "hello" && rm -rf /', config);
100
+ config.getExcludeTools = () => ['run_shell_command(badCommand)'];
101
+ const result = isCommandAllowed('echo "hello" && badCommand --danger', config);
96
102
  expect(result.allowed).toBe(false);
97
- expect(result.reason).toBe(`Command 'rm -rf /' is blocked by configuration`);
103
+ expect(result.reason).toBe(`Command 'badCommand --danger' is blocked by configuration`);
98
104
  });
99
105
  describe('command substitution', () => {
100
- it('should block command substitution using `$(...)`', () => {
101
- const result = isCommandAllowed('echo $(rm -rf /)', config);
102
- expect(result.allowed).toBe(false);
103
- expect(result.reason).toContain('Command substitution');
106
+ it('should allow command substitution using `$(...)`', () => {
107
+ const result = isCommandAllowed('echo $(goodCommand --safe)', config);
108
+ expect(result.allowed).toBe(true);
109
+ expect(result.reason).toBeUndefined();
104
110
  });
105
- it('should block command substitution using `<(...)`', () => {
111
+ it('should allow command substitution using `<(...)`', () => {
106
112
  const result = isCommandAllowed('diff <(ls) <(ls -a)', config);
107
- expect(result.allowed).toBe(false);
108
- expect(result.reason).toContain('Command substitution');
113
+ expect(result.allowed).toBe(true);
114
+ expect(result.reason).toBeUndefined();
109
115
  });
110
- it('should block command substitution using `>(...)`', () => {
116
+ it('should allow command substitution using `>(...)`', () => {
111
117
  const result = isCommandAllowed('echo "Log message" > >(tee log.txt)', config);
112
- expect(result.allowed).toBe(false);
113
- expect(result.reason).toContain('Command substitution');
118
+ expect(result.allowed).toBe(true);
119
+ expect(result.reason).toBeUndefined();
114
120
  });
115
- it('should block command substitution using backticks', () => {
116
- const result = isCommandAllowed('echo `rm -rf /`', config);
117
- expect(result.allowed).toBe(false);
118
- expect(result.reason).toContain('Command substitution');
121
+ it('should allow command substitution using backticks', () => {
122
+ const result = isCommandAllowed('echo `goodCommand --safe`', config);
123
+ expect(result.allowed).toBe(true);
124
+ expect(result.reason).toBeUndefined();
119
125
  });
120
126
  it('should allow substitution-like patterns inside single quotes', () => {
121
127
  config.getCoreTools = () => ['ShellTool(echo)'];
122
128
  const result = isCommandAllowed("echo '$(pwd)'", config);
123
129
  expect(result.allowed).toBe(true);
124
130
  });
131
+ it('should block a command when parsing fails', () => {
132
+ const result = isCommandAllowed('ls &&', config);
133
+ expect(result.allowed).toBe(false);
134
+ expect(result.reason).toBe('Command rejected because it could not be parsed safely');
135
+ });
125
136
  });
126
137
  });
127
138
  describe('checkCommandPermissions', () => {
128
139
  describe('in "Default Allow" mode (no sessionAllowlist)', () => {
129
140
  it('should return a detailed success object for an allowed command', () => {
130
- const result = checkCommandPermissions('ls -l', config);
141
+ const result = checkCommandPermissions('goodCommand --safe', config);
131
142
  expect(result).toEqual({
132
143
  allAllowed: true,
133
144
  disallowedCommands: [],
134
145
  });
135
146
  });
147
+ it('should block commands that cannot be parsed safely', () => {
148
+ const result = checkCommandPermissions('ls &&', config);
149
+ expect(result).toEqual({
150
+ allAllowed: false,
151
+ disallowedCommands: ['ls &&'],
152
+ blockReason: 'Command rejected because it could not be parsed safely',
153
+ isHardDenial: true,
154
+ });
155
+ });
136
156
  it('should return a detailed failure object for a blocked command', () => {
137
- config.getExcludeTools = () => ['ShellTool(rm)'];
138
- const result = checkCommandPermissions('rm -rf /', config);
157
+ config.getExcludeTools = () => ['ShellTool(badCommand)'];
158
+ const result = checkCommandPermissions('badCommand --danger', config);
139
159
  expect(result).toEqual({
140
160
  allAllowed: false,
141
- disallowedCommands: ['rm -rf /'],
142
- blockReason: `Command 'rm -rf /' is blocked by configuration`,
161
+ disallowedCommands: ['badCommand --danger'],
162
+ blockReason: `Command 'badCommand --danger' is blocked by configuration`,
143
163
  isHardDenial: true,
144
164
  });
145
165
  });
146
166
  it('should return a detailed failure object for a command not on a strict allowlist', () => {
147
- config.getCoreTools = () => ['ShellTool(ls)'];
148
- const result = checkCommandPermissions('git status && ls', config);
167
+ config.getCoreTools = () => ['ShellTool(goodCommand)'];
168
+ const result = checkCommandPermissions('git status && goodCommand', config);
149
169
  expect(result).toEqual({
150
170
  allAllowed: false,
151
171
  disallowedCommands: ['git status'],
@@ -156,18 +176,18 @@ describe('checkCommandPermissions', () => {
156
176
  });
157
177
  describe('in "Default Deny" mode (with sessionAllowlist)', () => {
158
178
  it('should allow a command on the sessionAllowlist', () => {
159
- const result = checkCommandPermissions('ls -l', config, new Set(['ls -l']));
179
+ const result = checkCommandPermissions('goodCommand --safe', config, new Set(['goodCommand --safe']));
160
180
  expect(result.allAllowed).toBe(true);
161
181
  });
162
182
  it('should block a command not on the sessionAllowlist or global allowlist', () => {
163
- const result = checkCommandPermissions('rm -rf /', config, new Set(['ls -l']));
183
+ const result = checkCommandPermissions('badCommand --danger', config, new Set(['goodCommand --safe']));
164
184
  expect(result.allAllowed).toBe(false);
165
185
  expect(result.blockReason).toContain('not on the global or session allowlist');
166
- expect(result.disallowedCommands).toEqual(['rm -rf /']);
186
+ expect(result.disallowedCommands).toEqual(['badCommand --danger']);
167
187
  });
168
188
  it('should allow a command on the global allowlist even if not on the session allowlist', () => {
169
189
  config.getCoreTools = () => ['ShellTool(git status)'];
170
- const result = checkCommandPermissions('git status', config, new Set(['ls -l']));
190
+ const result = checkCommandPermissions('git status', config, new Set(['goodCommand --safe']));
171
191
  expect(result.allAllowed).toBe(true);
172
192
  });
173
193
  it('should allow a chained command if parts are on different allowlists', () => {
@@ -176,16 +196,16 @@ describe('checkCommandPermissions', () => {
176
196
  expect(result.allAllowed).toBe(true);
177
197
  });
178
198
  it('should block a command on the sessionAllowlist if it is also globally blocked', () => {
179
- config.getExcludeTools = () => ['run_shell_command(rm)'];
180
- const result = checkCommandPermissions('rm -rf /', config, new Set(['rm -rf /']));
199
+ config.getExcludeTools = () => ['run_shell_command(badCommand)'];
200
+ const result = checkCommandPermissions('badCommand --danger', config, new Set(['badCommand --danger']));
181
201
  expect(result.allAllowed).toBe(false);
182
202
  expect(result.blockReason).toContain('is blocked by configuration');
183
203
  });
184
204
  it('should block a chained command if one part is not on any allowlist', () => {
185
205
  config.getCoreTools = () => ['run_shell_command(echo)'];
186
- const result = checkCommandPermissions('echo "hello" && rm -rf /', config, new Set(['echo']));
206
+ const result = checkCommandPermissions('echo "hello" && badCommand --danger', config, new Set(['echo']));
187
207
  expect(result.allAllowed).toBe(false);
188
- expect(result.disallowedCommands).toEqual(['rm -rf /']);
208
+ expect(result.disallowedCommands).toEqual(['badCommand --danger']);
189
209
  });
190
210
  });
191
211
  });
@@ -207,6 +227,45 @@ describe('getCommandRoots', () => {
207
227
  const result = getCommandRoots('echo "hello" && git commit -m "feat"');
208
228
  expect(result).toEqual(['echo', 'git']);
209
229
  });
230
+ it('should include nested command substitutions', () => {
231
+ const result = getCommandRoots('echo $(badCommand --danger)');
232
+ expect(result).toEqual(['echo', 'badCommand']);
233
+ });
234
+ it('should include process substitutions', () => {
235
+ const result = getCommandRoots('diff <(ls) <(ls -a)');
236
+ expect(result).toEqual(['diff', 'ls', 'ls']);
237
+ });
238
+ it('should include backtick substitutions', () => {
239
+ const result = getCommandRoots('echo `badCommand --danger`');
240
+ expect(result).toEqual(['echo', 'badCommand']);
241
+ });
242
+ });
243
+ describeWindowsOnly('PowerShell integration', () => {
244
+ const originalComSpec = process.env['ComSpec'];
245
+ beforeEach(() => {
246
+ mockPlatform.mockReturnValue('win32');
247
+ const systemRoot = process.env['SystemRoot'] || 'C:\\\\Windows';
248
+ process.env['ComSpec'] =
249
+ `${systemRoot}\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\powershell.exe`;
250
+ });
251
+ afterEach(() => {
252
+ if (originalComSpec === undefined) {
253
+ delete process.env['ComSpec'];
254
+ }
255
+ else {
256
+ process.env['ComSpec'] = originalComSpec;
257
+ }
258
+ });
259
+ it('should return command roots using PowerShell AST output', () => {
260
+ const roots = getCommandRoots('Get-ChildItem | Select-Object Name');
261
+ expect(roots.length).toBeGreaterThan(0);
262
+ expect(roots).toContain('Get-ChildItem');
263
+ });
264
+ it('should block commands when PowerShell parser reports errors', () => {
265
+ const { allowed, reason } = isCommandAllowed('Get-ChildItem |', config);
266
+ expect(allowed).toBe(false);
267
+ expect(reason).toBe('Command rejected because it could not be parsed safely');
268
+ });
210
269
  });
211
270
  describe('stripShellWrapper', () => {
212
271
  it('should strip sh -c with quotes', () => {
@@ -221,10 +280,45 @@ describe('stripShellWrapper', () => {
221
280
  it('should strip cmd.exe /c', () => {
222
281
  expect(stripShellWrapper('cmd.exe /c "dir"')).toEqual('dir');
223
282
  });
283
+ it('should strip powershell.exe -Command with optional -NoProfile', () => {
284
+ expect(stripShellWrapper('powershell.exe -NoProfile -Command "Get-ChildItem"')).toEqual('Get-ChildItem');
285
+ expect(stripShellWrapper('powershell.exe -Command "Get-ChildItem"')).toEqual('Get-ChildItem');
286
+ });
287
+ it('should strip pwsh -Command wrapper', () => {
288
+ expect(stripShellWrapper('pwsh -NoProfile -Command "Get-ChildItem"')).toEqual('Get-ChildItem');
289
+ });
224
290
  it('should not strip anything if no wrapper is present', () => {
225
291
  expect(stripShellWrapper('ls -l')).toEqual('ls -l');
226
292
  });
227
293
  });
294
+ describe('isShellInvocationAllowlisted', () => {
295
+ function createInvocation(command) {
296
+ return { params: { command } };
297
+ }
298
+ it('should return false when any chained command segment is not allowlisted', () => {
299
+ const invocation = createInvocation('git status && rm -rf /tmp/should-not-run');
300
+ expect(isShellInvocationAllowlisted(invocation, ['run_shell_command(git)'])).toBe(false);
301
+ });
302
+ it('should return true when every segment is explicitly allowlisted', () => {
303
+ const invocation = createInvocation('git status && rm -rf /tmp/should-run && git diff');
304
+ expect(isShellInvocationAllowlisted(invocation, [
305
+ 'run_shell_command(git)',
306
+ 'run_shell_command(rm -rf)',
307
+ ])).toBe(true);
308
+ });
309
+ it('should return true when the allowlist contains a wildcard shell entry', () => {
310
+ const invocation = createInvocation('git status && rm -rf /tmp/should-run');
311
+ expect(isShellInvocationAllowlisted(invocation, ['run_shell_command'])).toBe(true);
312
+ });
313
+ it('should treat piped commands as separate segments that must be allowlisted', () => {
314
+ const invocation = createInvocation('git status | tail -n 1');
315
+ expect(isShellInvocationAllowlisted(invocation, ['run_shell_command(git)'])).toBe(false);
316
+ expect(isShellInvocationAllowlisted(invocation, [
317
+ 'run_shell_command(git)',
318
+ 'run_shell_command(tail)',
319
+ ])).toBe(true);
320
+ });
321
+ });
228
322
  describe('escapeShellArg', () => {
229
323
  describe('POSIX (bash)', () => {
230
324
  it('should use shell-quote for escaping', () => {
@@ -297,20 +391,20 @@ describe('getShellConfiguration', () => {
297
391
  beforeEach(() => {
298
392
  mockPlatform.mockReturnValue('win32');
299
393
  });
300
- it('should return cmd.exe configuration by default', () => {
394
+ it('should return PowerShell configuration by default', () => {
301
395
  delete process.env['ComSpec'];
302
396
  const config = getShellConfiguration();
303
- expect(config.executable).toBe('cmd.exe');
304
- expect(config.argsPrefix).toEqual(['/d', '/s', '/c']);
305
- expect(config.shell).toBe('cmd');
397
+ expect(config.executable).toBe('powershell.exe');
398
+ expect(config.argsPrefix).toEqual(['-NoProfile', '-Command']);
399
+ expect(config.shell).toBe('powershell');
306
400
  });
307
- it('should respect ComSpec for cmd.exe', () => {
401
+ it('should ignore ComSpec when pointing to cmd.exe', () => {
308
402
  const cmdPath = 'C:\\WINDOWS\\system32\\cmd.exe';
309
403
  process.env['ComSpec'] = cmdPath;
310
404
  const config = getShellConfiguration();
311
- expect(config.executable).toBe(cmdPath);
312
- expect(config.argsPrefix).toEqual(['/d', '/s', '/c']);
313
- expect(config.shell).toBe('cmd');
405
+ expect(config.executable).toBe('powershell.exe');
406
+ expect(config.argsPrefix).toEqual(['-NoProfile', '-Command']);
407
+ expect(config.shell).toBe('powershell');
314
408
  });
315
409
  it('should return PowerShell configuration if ComSpec points to powershell.exe', () => {
316
410
  const psPath = 'C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe';
@@ -1 +1 @@
1
- {"version":3,"file":"shell-utils.test.js","sourceRoot":"","sources":["../../../src/utils/shell-utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shell-utils.test.js","sourceRoot":"","sources":["../../../src/utils/shell-utils.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  import { execSync } from 'node:child_process';
7
7
  import os from 'node:os';
8
8
  import { detect as chardetDetect } from 'chardet';
9
+ import { debugLogger } from './debugLogger.js';
9
10
  // Cache for system encoding to avoid repeated detection
10
11
  // Use undefined to indicate "not yet checked" vs null meaning "checked but failed"
11
12
  let cachedSystemEncoding = undefined;
@@ -58,7 +59,7 @@ export function getSystemEncoding() {
58
59
  throw new Error(`Unable to parse Windows code page from 'chcp' output "${output.trim()}". `);
59
60
  }
60
61
  catch (error) {
61
- console.warn(`Failed to get Windows code page using 'chcp' command: ${error instanceof Error ? error.message : String(error)}. ` +
62
+ debugLogger.warn(`Failed to get Windows code page using 'chcp' command: ${error instanceof Error ? error.message : String(error)}. ` +
62
63
  `Will attempt to detect encoding from command output instead.`);
63
64
  }
64
65
  return null;
@@ -77,7 +78,7 @@ export function getSystemEncoding() {
77
78
  .trim();
78
79
  }
79
80
  catch (_e) {
80
- console.warn('Failed to get locale charmap.');
81
+ debugLogger.warn('Failed to get locale charmap.');
81
82
  return null;
82
83
  }
83
84
  }
@@ -124,7 +125,7 @@ export function windowsCodePageToEncoding(cp) {
124
125
  if (map[cp]) {
125
126
  return map[cp];
126
127
  }
127
- console.warn(`Unable to determine encoding for windows code page ${cp}.`);
128
+ debugLogger.warn(`Unable to determine encoding for windows code page ${cp}.`);
128
129
  return null; // Return null if no mapping found
129
130
  }
130
131
  /**
@@ -142,7 +143,7 @@ export function detectEncodingFromBuffer(buffer) {
142
143
  }
143
144
  }
144
145
  catch (error) {
145
- console.warn('Failed to detect encoding with chardet:', error);
146
+ debugLogger.warn('Failed to detect encoding with chardet:', error);
146
147
  }
147
148
  return null;
148
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"systemEncoding.js","sourceRoot":"","sources":["../../../src/utils/systemEncoding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"systemEncoding.js","sourceRoot":"","sources":["../../../src/utils/systemEncoding.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import type { AnyDeclarativeTool, AnyToolInvocation } from '../index.js';
8
8
  * Checks if a tool invocation matches any of a list of patterns.
9
9
  *
10
10
  * @param toolOrToolName The tool object or the name of the tool being invoked.
11
- * @param invocation The invocation object for the tool.
11
+ * @param invocation The invocation object for the tool or the command invoked.
12
12
  * @param patterns A list of patterns to match against.
13
13
  * Patterns can be:
14
14
  * - A tool name (e.g., "ReadFileTool") to match any invocation of that tool.
@@ -16,4 +16,4 @@ import type { AnyDeclarativeTool, AnyToolInvocation } from '../index.js';
16
16
  * invocations where the arguments start with that prefix.
17
17
  * @returns True if the invocation matches any pattern, false otherwise.
18
18
  */
19
- export declare function doesToolInvocationMatch(toolOrToolName: AnyDeclarativeTool | string, invocation: AnyToolInvocation, patterns: string[]): boolean;
19
+ export declare function doesToolInvocationMatch(toolOrToolName: AnyDeclarativeTool | string, invocation: AnyToolInvocation | string, patterns: string[]): boolean;
@@ -9,7 +9,7 @@ import { SHELL_TOOL_NAMES } from './shell-utils.js';
9
9
  * Checks if a tool invocation matches any of a list of patterns.
10
10
  *
11
11
  * @param toolOrToolName The tool object or the name of the tool being invoked.
12
- * @param invocation The invocation object for the tool.
12
+ * @param invocation The invocation object for the tool or the command invoked.
13
13
  * @param patterns A list of patterns to match against.
14
14
  * Patterns can be:
15
15
  * - A tool name (e.g., "ReadFileTool") to match any invocation of that tool.
@@ -45,10 +45,19 @@ export function doesToolInvocationMatch(toolOrToolName, invocation, patterns) {
45
45
  continue;
46
46
  }
47
47
  const argPattern = pattern.substring(openParen + 1, pattern.length - 1);
48
- if ('command' in invocation.params &&
49
- toolNames.some((name) => SHELL_TOOL_NAMES.includes(name))) {
50
- const argValue = String(invocation.params.command);
51
- if (argValue === argPattern || argValue.startsWith(argPattern + ' ')) {
48
+ let command;
49
+ if (typeof invocation === 'string') {
50
+ command = invocation;
51
+ }
52
+ else {
53
+ if (!('command' in invocation.params)) {
54
+ // This invocation has no command - nothing to check.
55
+ continue;
56
+ }
57
+ command = String(invocation.params.command);
58
+ }
59
+ if (toolNames.some((name) => SHELL_TOOL_NAMES.includes(name))) {
60
+ if (command === argPattern || command.startsWith(argPattern + ' ')) {
52
61
  return true;
53
62
  }
54
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tool-utils.js","sourceRoot":"","sources":["../../../src/utils/tool-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAA2C,EAC3C,UAA6B,EAC7B,QAAkB;IAElB,IAAI,SAAmB,CAAC;IACxB,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3B,SAAS,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,CAAC,cAAwB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9D,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,iCAAiC;YACjC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExE,IACE,SAAS,IAAI,UAAU,CAAC,MAAM;YAC9B,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EACzD,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,CACpB,UAAU,CAAC,MAA8B,CAAC,OAAO,CACnD,CAAC;YACF,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;gBACrE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"tool-utils.js","sourceRoot":"","sources":["../../../src/utils/tool-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CACrC,cAA2C,EAC3C,UAAsC,EACtC,QAAkB;IAElB,IAAI,SAAmB,CAAC;IACxB,IAAI,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3B,SAAS,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,CAAC,cAAwB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC9D,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEvC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,iCAAiC;YACjC,IAAI,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAExE,IAAI,OAAe,CAAC;QACpB,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,GAAG,UAAU,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,CAAC,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,qDAAqD;gBACrD,SAAS;YACX,CAAC;YACD,OAAO,GAAG,MAAM,CAAE,UAAU,CAAC,MAA8B,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC9D,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -6,6 +6,7 @@
6
6
  import path from 'node:path';
7
7
  import { promises as fsp, readFileSync } from 'node:fs';
8
8
  import { Storage } from '../config/storage.js';
9
+ import { debugLogger } from './debugLogger.js';
9
10
  export class UserAccountManager {
10
11
  getGoogleAccountsCachePath() {
11
12
  return Storage.getGoogleAccountsPath();
@@ -23,7 +24,7 @@ export class UserAccountManager {
23
24
  const parsed = JSON.parse(content);
24
25
  // Inlined validation logic
25
26
  if (typeof parsed !== 'object' || parsed === null) {
26
- console.log('Invalid accounts file schema, starting fresh.');
27
+ debugLogger.log('Invalid accounts file schema, starting fresh.');
27
28
  return defaultState;
28
29
  }
29
30
  const { active, old } = parsed;
@@ -31,7 +32,7 @@ export class UserAccountManager {
31
32
  (old === undefined ||
32
33
  (Array.isArray(old) && old.every((i) => typeof i === 'string')));
33
34
  if (!isValid) {
34
- console.log('Invalid accounts file schema, starting fresh.');
35
+ debugLogger.log('Invalid accounts file schema, starting fresh.');
35
36
  return defaultState;
36
37
  }
37
38
  return {
@@ -51,7 +52,7 @@ export class UserAccountManager {
51
52
  error.code === 'ENOENT') {
52
53
  return defaultState;
53
54
  }
54
- console.log('Error during sync read of accounts, starting fresh.', error);
55
+ debugLogger.log('Error during sync read of accounts, starting fresh.', error);
55
56
  return defaultState;
56
57
  }
57
58
  }
@@ -67,7 +68,7 @@ export class UserAccountManager {
67
68
  error.code === 'ENOENT') {
68
69
  return defaultState;
69
70
  }
70
- console.log('Could not parse accounts file, starting fresh.', error);
71
+ debugLogger.log('Could not parse accounts file, starting fresh.', error);
71
72
  return defaultState;
72
73
  }
73
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"userAccountManager.js","sourceRoot":"","sources":["../../../src/utils/userAccountManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"userAccountManager.js","sourceRoot":"","sources":["../../../src/utils/userAccountManager.ts"],"names":[],"mappings":"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"}