@terminai/core 0.21.0 → 0.25.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 (303) hide show
  1. package/dist/docs/assets/image.png +0 -0
  2. package/dist/src/audit/redaction.js +24 -0
  3. package/dist/src/audit/redaction.js.map +1 -1
  4. package/dist/src/audit/redaction.test.d.ts +7 -0
  5. package/dist/src/audit/redaction.test.js +45 -0
  6. package/dist/src/audit/redaction.test.js.map +1 -0
  7. package/dist/src/auth/geminiAuthStatus.js +1 -1
  8. package/dist/src/auth/geminiAuthStatus.js.map +1 -1
  9. package/dist/src/auth/geminiAuthStatus.test.js +1 -1
  10. package/dist/src/auth/geminiAuthStatus.test.js.map +1 -1
  11. package/dist/src/auth/providerRegistry.js +20 -0
  12. package/dist/src/auth/providerRegistry.js.map +1 -1
  13. package/dist/src/auth/wizardSettings.d.ts +5 -0
  14. package/dist/src/auth/wizardSettings.js +48 -1
  15. package/dist/src/auth/wizardSettings.js.map +1 -1
  16. package/dist/src/auth/wizardSettings.test.js +30 -2
  17. package/dist/src/auth/wizardSettings.test.js.map +1 -1
  18. package/dist/src/auth/wizardState.d.ts +1 -1
  19. package/dist/src/auth/wizardState.js +6 -0
  20. package/dist/src/auth/wizardState.js.map +1 -1
  21. package/dist/src/auth/wizardState.test.js +23 -0
  22. package/dist/src/auth/wizardState.test.js.map +1 -1
  23. package/dist/src/availability/policyHelpers.test.js +4 -4
  24. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  25. package/dist/src/brain/__tests__/environmentDetector.test.js +2 -1
  26. package/dist/src/brain/__tests__/environmentDetector.test.js.map +1 -1
  27. package/dist/src/brain/__tests__/orchestratorFlag.test.d.ts +7 -0
  28. package/dist/src/brain/__tests__/orchestratorFlag.test.js +47 -0
  29. package/dist/src/brain/__tests__/orchestratorFlag.test.js.map +1 -0
  30. package/dist/src/brain/__tests__/orchestratorRecovery.test.d.ts +7 -0
  31. package/dist/src/brain/__tests__/orchestratorRecovery.test.js +85 -0
  32. package/dist/src/brain/__tests__/orchestratorRecovery.test.js.map +1 -0
  33. package/dist/src/brain/__tests__/thinkingOrchestrator.test.js +1 -0
  34. package/dist/src/brain/__tests__/thinkingOrchestrator.test.js.map +1 -1
  35. package/dist/src/brain/__tests__/toolIntegration.test.d.ts +7 -0
  36. package/dist/src/brain/__tests__/toolIntegration.test.js +154 -0
  37. package/dist/src/brain/__tests__/toolIntegration.test.js.map +1 -0
  38. package/dist/src/brain/advisors/codeGenerator.js +3 -2
  39. package/dist/src/brain/advisors/codeGenerator.js.map +1 -1
  40. package/dist/src/brain/advisors/depScanner.js +3 -2
  41. package/dist/src/brain/advisors/depScanner.js.map +1 -1
  42. package/dist/src/brain/advisors/enumerator.js +3 -2
  43. package/dist/src/brain/advisors/enumerator.js.map +1 -1
  44. package/dist/src/brain/advisors/fallbackChain.js +3 -2
  45. package/dist/src/brain/advisors/fallbackChain.js.map +1 -1
  46. package/dist/src/brain/advisors/patternMatcher.js +3 -2
  47. package/dist/src/brain/advisors/patternMatcher.js.map +1 -1
  48. package/dist/src/brain/consensus.js +2 -1
  49. package/dist/src/brain/consensus.js.map +1 -1
  50. package/dist/src/brain/environmentDetector.d.ts +1 -0
  51. package/dist/src/brain/environmentDetector.js +35 -20
  52. package/dist/src/brain/environmentDetector.js.map +1 -1
  53. package/dist/src/brain/pacLoop.js +2 -1
  54. package/dist/src/brain/pacLoop.js.map +1 -1
  55. package/dist/src/brain/riskAssessor.d.ts +6 -2
  56. package/dist/src/brain/riskAssessor.js +7 -4
  57. package/dist/src/brain/riskAssessor.js.map +1 -1
  58. package/dist/src/brain/stepBackEvaluator.js +2 -1
  59. package/dist/src/brain/stepBackEvaluator.js.map +1 -1
  60. package/dist/src/brain/thinkingOrchestrator.d.ts +9 -1
  61. package/dist/src/brain/thinkingOrchestrator.js +47 -1
  62. package/dist/src/brain/thinkingOrchestrator.js.map +1 -1
  63. package/dist/src/brain/toolIntegration.d.ts +51 -0
  64. package/dist/src/brain/toolIntegration.js +202 -0
  65. package/dist/src/brain/toolIntegration.js.map +1 -0
  66. package/dist/src/code_assist/oauth2.begin.test.js +4 -1
  67. package/dist/src/code_assist/oauth2.begin.test.js.map +1 -1
  68. package/dist/src/code_assist/oauth2.d.ts +1 -1
  69. package/dist/src/code_assist/oauth2.js +9 -13
  70. package/dist/src/code_assist/oauth2.js.map +1 -1
  71. package/dist/src/code_assist/oauth2.test.js +69 -41
  72. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  73. package/dist/src/commands/init.js +5 -0
  74. package/dist/src/commands/init.js.map +1 -1
  75. package/dist/src/computer/PersistentShell.d.ts +5 -0
  76. package/dist/src/computer/PersistentShell.js +21 -2
  77. package/dist/src/computer/PersistentShell.js.map +1 -1
  78. package/dist/src/computer/PersistentShell.test.js +23 -11
  79. package/dist/src/computer/PersistentShell.test.js.map +1 -1
  80. package/dist/src/config/builder.js +78 -5
  81. package/dist/src/config/builder.js.map +1 -1
  82. package/dist/src/config/config.d.ts +12 -1
  83. package/dist/src/config/config.js +64 -0
  84. package/dist/src/config/config.js.map +1 -1
  85. package/dist/src/config/config.test.js +39 -0
  86. package/dist/src/config/config.test.js.map +1 -1
  87. package/dist/src/config/models.d.ts +2 -2
  88. package/dist/src/config/models.js +2 -2
  89. package/dist/src/config/models.js.map +1 -1
  90. package/dist/src/config/models.test.js +1 -1
  91. package/dist/src/config/settings/schema.d.ts +78 -4
  92. package/dist/src/config/settings/schema.js +76 -4
  93. package/dist/src/config/settings/schema.js.map +1 -1
  94. package/dist/src/core/chatGptCodexContentGenerator.d.ts +35 -0
  95. package/dist/src/core/chatGptCodexContentGenerator.js +605 -0
  96. package/dist/src/core/chatGptCodexContentGenerator.js.map +1 -0
  97. package/dist/src/core/chatGptCodexContentGenerator.test.d.ts +7 -0
  98. package/dist/src/core/chatGptCodexContentGenerator.test.js +250 -0
  99. package/dist/src/core/chatGptCodexContentGenerator.test.js.map +1 -0
  100. package/dist/src/core/contentGenerator.d.ts +2 -1
  101. package/dist/src/core/contentGenerator.js +10 -0
  102. package/dist/src/core/contentGenerator.js.map +1 -1
  103. package/dist/src/core/contentGenerator.test.js +36 -0
  104. package/dist/src/core/contentGenerator.test.js.map +1 -1
  105. package/dist/src/core/loggingContentGenerator.d.ts +1 -0
  106. package/dist/src/core/loggingContentGenerator.js +30 -0
  107. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  108. package/dist/src/core/loggingContentGenerator.test.js +62 -0
  109. package/dist/src/core/loggingContentGenerator.test.js.map +1 -1
  110. package/dist/src/core/openaiContentGenerator.d.ts +16 -0
  111. package/dist/src/core/openaiContentGenerator.js +252 -53
  112. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  113. package/dist/src/core/openaiContentGenerator.test.js +176 -7
  114. package/dist/src/core/openaiContentGenerator.test.js.map +1 -1
  115. package/dist/src/core/providerTypes.d.ts +17 -1
  116. package/dist/src/core/providerTypes.js +10 -0
  117. package/dist/src/core/providerTypes.js.map +1 -1
  118. package/dist/src/core/providerTypes.test.js +11 -0
  119. package/dist/src/core/providerTypes.test.js.map +1 -1
  120. package/dist/src/core/turn.js +1 -1
  121. package/dist/src/core/turn.js.map +1 -1
  122. package/dist/src/core/turn.test.js +1 -1
  123. package/dist/src/core/turn.test.js.map +1 -1
  124. package/dist/src/fallback/handler.test.js +14 -14
  125. package/dist/src/fallback/handler.test.js.map +1 -1
  126. package/dist/src/generated/git-commit.d.ts +2 -2
  127. package/dist/src/generated/git-commit.js +2 -2
  128. package/dist/src/generated/git-commit.js.map +1 -1
  129. package/dist/src/gui/drivers/__tests__/sidecarContract.test.d.ts +2 -2
  130. package/dist/src/gui/drivers/__tests__/sidecarContract.test.js +3 -4
  131. package/dist/src/gui/drivers/__tests__/sidecarContract.test.js.map +1 -1
  132. package/dist/src/gui/drivers/linuxAtspiDriver.js +11 -4
  133. package/dist/src/gui/drivers/linuxAtspiDriver.js.map +1 -1
  134. package/dist/src/gui/drivers/windowsUiaDriver.js +2 -2
  135. package/dist/src/gui/drivers/windowsUiaDriver.js.map +1 -1
  136. package/dist/src/gui/selectors/__tests__/selectors.test.js +5 -2
  137. package/dist/src/gui/selectors/__tests__/selectors.test.js.map +1 -1
  138. package/dist/src/gui/selectors/parser.d.ts +1 -1
  139. package/dist/src/gui/selectors/parser.js +1 -1
  140. package/dist/src/gui/selectors/parser.js.map +1 -1
  141. package/dist/src/gui/service/DesktopAutomationService.d.ts +1 -1
  142. package/dist/src/gui/service/DesktopAutomationService.js +8 -9
  143. package/dist/src/gui/service/DesktopAutomationService.js.map +1 -1
  144. package/dist/src/gui/service/__tests__/capabilities.test.d.ts +6 -0
  145. package/dist/src/gui/service/__tests__/capabilities.test.js +32 -4
  146. package/dist/src/gui/service/__tests__/capabilities.test.js.map +1 -1
  147. package/dist/src/gui/service/__tests__/diagnose.test.d.ts +6 -0
  148. package/dist/src/gui/service/__tests__/diagnose.test.js +6 -0
  149. package/dist/src/gui/service/__tests__/diagnose.test.js.map +1 -1
  150. package/dist/src/gui/service/__tests__/progressive.test.d.ts +6 -0
  151. package/dist/src/gui/service/__tests__/progressive.test.js +30 -3
  152. package/dist/src/gui/service/__tests__/progressive.test.js.map +1 -1
  153. package/dist/src/gui/service/__tests__/redaction.test.d.ts +6 -0
  154. package/dist/src/gui/service/__tests__/redaction.test.js +27 -1
  155. package/dist/src/gui/service/__tests__/redaction.test.js.map +1 -1
  156. package/dist/src/gui/service/__tests__/selectorError.test.d.ts +6 -0
  157. package/dist/src/gui/service/__tests__/selectorError.test.js +6 -0
  158. package/dist/src/gui/service/__tests__/selectorError.test.js.map +1 -1
  159. package/dist/src/gui/service/__tests__/wait.test.d.ts +6 -0
  160. package/dist/src/gui/service/__tests__/wait.test.js +29 -2
  161. package/dist/src/gui/service/__tests__/wait.test.js.map +1 -1
  162. package/dist/src/index.d.ts +6 -0
  163. package/dist/src/index.js +7 -0
  164. package/dist/src/index.js.map +1 -1
  165. package/dist/src/openai_chatgpt/constants.d.ts +23 -0
  166. package/dist/src/openai_chatgpt/constants.js +35 -0
  167. package/dist/src/openai_chatgpt/constants.js.map +1 -0
  168. package/dist/src/openai_chatgpt/credentialStorage.d.ts +18 -0
  169. package/dist/src/openai_chatgpt/credentialStorage.js +116 -0
  170. package/dist/src/openai_chatgpt/credentialStorage.js.map +1 -0
  171. package/dist/src/openai_chatgpt/credentialStorage.test.d.ts +7 -0
  172. package/dist/src/openai_chatgpt/credentialStorage.test.js +73 -0
  173. package/dist/src/openai_chatgpt/credentialStorage.test.js.map +1 -0
  174. package/dist/src/openai_chatgpt/imports.d.ts +10 -0
  175. package/dist/src/openai_chatgpt/imports.js +164 -0
  176. package/dist/src/openai_chatgpt/imports.js.map +1 -0
  177. package/dist/src/openai_chatgpt/imports.test.d.ts +7 -0
  178. package/dist/src/openai_chatgpt/imports.test.js +82 -0
  179. package/dist/src/openai_chatgpt/imports.test.js.map +1 -0
  180. package/dist/src/openai_chatgpt/jwt.d.ts +7 -0
  181. package/dist/src/openai_chatgpt/jwt.js +31 -0
  182. package/dist/src/openai_chatgpt/jwt.js.map +1 -0
  183. package/dist/src/openai_chatgpt/jwt.test.d.ts +7 -0
  184. package/dist/src/openai_chatgpt/jwt.test.js +23 -0
  185. package/dist/src/openai_chatgpt/jwt.test.js.map +1 -0
  186. package/dist/src/openai_chatgpt/oauthClient.d.ts +52 -0
  187. package/dist/src/openai_chatgpt/oauthClient.js +196 -0
  188. package/dist/src/openai_chatgpt/oauthClient.js.map +1 -0
  189. package/dist/src/openai_chatgpt/oauthClient.test.d.ts +7 -0
  190. package/dist/src/openai_chatgpt/oauthClient.test.js +138 -0
  191. package/dist/src/openai_chatgpt/oauthClient.test.js.map +1 -0
  192. package/dist/src/openai_chatgpt/types.d.ts +34 -0
  193. package/dist/src/openai_chatgpt/types.js +8 -0
  194. package/dist/src/openai_chatgpt/types.js.map +1 -0
  195. package/dist/src/policy/shell-safety.test.js +2 -1
  196. package/dist/src/policy/shell-safety.test.js.map +1 -1
  197. package/dist/src/safety/approval-ladder/__tests__/buildShellActionProfile.test.js +2 -1
  198. package/dist/src/safety/approval-ladder/__tests__/buildShellActionProfile.test.js.map +1 -1
  199. package/dist/src/safety/built-in.test.js +4 -2
  200. package/dist/src/safety/built-in.test.js.map +1 -1
  201. package/dist/src/telemetry/metrics.test.js +95 -75
  202. package/dist/src/telemetry/metrics.test.js.map +1 -1
  203. package/dist/src/tools/__tests__/edit.risk.test.d.ts +7 -0
  204. package/dist/src/tools/__tests__/edit.risk.test.js +138 -0
  205. package/dist/src/tools/__tests__/edit.risk.test.js.map +1 -0
  206. package/dist/src/tools/__tests__/memoryToolDedupe.test.d.ts +7 -0
  207. package/dist/src/tools/__tests__/memoryToolDedupe.test.js +53 -0
  208. package/dist/src/tools/__tests__/memoryToolDedupe.test.js.map +1 -0
  209. package/dist/src/tools/__tests__/shell.pin.test.js +2 -1
  210. package/dist/src/tools/__tests__/shell.pin.test.js.map +1 -1
  211. package/dist/src/tools/__tests__/shell.provenance.test.js +14 -4
  212. package/dist/src/tools/__tests__/shell.provenance.test.js.map +1 -1
  213. package/dist/src/tools/__tests__/ui-diagnose.test.d.ts +6 -0
  214. package/dist/src/tools/__tests__/ui-diagnose.test.js +11 -8
  215. package/dist/src/tools/__tests__/ui-diagnose.test.js.map +1 -1
  216. package/dist/src/tools/__tests__/ui-health.test.d.ts +6 -0
  217. package/dist/src/tools/__tests__/ui-health.test.js +37 -37
  218. package/dist/src/tools/__tests__/ui-health.test.js.map +1 -1
  219. package/dist/src/tools/agent-control.js +6 -18
  220. package/dist/src/tools/agent-control.js.map +1 -1
  221. package/dist/src/tools/agent-control.test.js +2 -28
  222. package/dist/src/tools/agent-control.test.js.map +1 -1
  223. package/dist/src/tools/edit.js +49 -9
  224. package/dist/src/tools/edit.js.map +1 -1
  225. package/dist/src/tools/edit.test.js +1 -19
  226. package/dist/src/tools/edit.test.js.map +1 -1
  227. package/dist/src/tools/file-ops.js +9 -10
  228. package/dist/src/tools/file-ops.js.map +1 -1
  229. package/dist/src/tools/file-ops.test.js +0 -7
  230. package/dist/src/tools/file-ops.test.js.map +1 -1
  231. package/dist/src/tools/glob.js +4 -16
  232. package/dist/src/tools/glob.js.map +1 -1
  233. package/dist/src/tools/glob.test.js +0 -29
  234. package/dist/src/tools/glob.test.js.map +1 -1
  235. package/dist/src/tools/grep.js +4 -10
  236. package/dist/src/tools/grep.js.map +1 -1
  237. package/dist/src/tools/ls.d.ts +1 -1
  238. package/dist/src/tools/ls.js +8 -7
  239. package/dist/src/tools/ls.js.map +1 -1
  240. package/dist/src/tools/ls.test.js +0 -7
  241. package/dist/src/tools/ls.test.js.map +1 -1
  242. package/dist/src/tools/mcp-client-manager.js +8 -6
  243. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  244. package/dist/src/tools/mcp-client-manager.test.js +0 -10
  245. package/dist/src/tools/mcp-client-manager.test.js.map +1 -1
  246. package/dist/src/tools/memoryTool.js +10 -0
  247. package/dist/src/tools/memoryTool.js.map +1 -1
  248. package/dist/src/tools/process-manager.js +6 -5
  249. package/dist/src/tools/process-manager.js.map +1 -1
  250. package/dist/src/tools/process-manager.test.js +2 -1
  251. package/dist/src/tools/process-manager.test.js.map +1 -1
  252. package/dist/src/tools/read-file.js +8 -10
  253. package/dist/src/tools/read-file.js.map +1 -1
  254. package/dist/src/tools/read-file.test.js +0 -12
  255. package/dist/src/tools/read-file.test.js.map +1 -1
  256. package/dist/src/tools/read-many-files.js +2 -7
  257. package/dist/src/tools/read-many-files.js.map +1 -1
  258. package/dist/src/tools/repl.js +10 -45
  259. package/dist/src/tools/repl.js.map +1 -1
  260. package/dist/src/tools/ripGrep.js +2 -5
  261. package/dist/src/tools/ripGrep.js.map +1 -1
  262. package/dist/src/tools/ripGrep.test.js +1 -1
  263. package/dist/src/tools/ripGrep.test.js.map +1 -1
  264. package/dist/src/tools/shell.d.ts +2 -11
  265. package/dist/src/tools/shell.js +31 -191
  266. package/dist/src/tools/shell.js.map +1 -1
  267. package/dist/src/tools/shell.test.js +2 -1
  268. package/dist/src/tools/shell.test.js.map +1 -1
  269. package/dist/src/tools/smart-edit.js +2 -5
  270. package/dist/src/tools/smart-edit.js.map +1 -1
  271. package/dist/src/tools/smart-edit.test.js +0 -9
  272. package/dist/src/tools/smart-edit.test.js.map +1 -1
  273. package/dist/src/tools/tools.d.ts +5 -0
  274. package/dist/src/tools/tools.js.map +1 -1
  275. package/dist/src/tools/ui-click.js +69 -3
  276. package/dist/src/tools/ui-click.js.map +1 -1
  277. package/dist/src/tools/write-file.js +34 -8
  278. package/dist/src/tools/write-file.js.map +1 -1
  279. package/dist/src/tools/write-file.test.js +1 -15
  280. package/dist/src/tools/write-file.test.js.map +1 -1
  281. package/dist/src/utils/errorReporting.js +1 -1
  282. package/dist/src/utils/errorReporting.js.map +1 -1
  283. package/dist/src/utils/errorReporting.test.js +1 -1
  284. package/dist/src/utils/errorReporting.test.js.map +1 -1
  285. package/dist/src/utils/events.d.ts +11 -0
  286. package/dist/src/utils/events.js +1 -0
  287. package/dist/src/utils/events.js.map +1 -1
  288. package/dist/src/utils/fileUtils.js +2 -7
  289. package/dist/src/utils/fileUtils.js.map +1 -1
  290. package/dist/src/utils/processUtils.d.ts +43 -0
  291. package/dist/src/utils/processUtils.js +134 -0
  292. package/dist/src/utils/processUtils.js.map +1 -0
  293. package/dist/src/utils/shell-permissions.d.ts +1 -0
  294. package/dist/src/utils/shell-permissions.js +3 -3
  295. package/dist/src/utils/shell-permissions.js.map +1 -1
  296. package/dist/src/utils/shell-permissions.test.js +11 -5
  297. package/dist/src/utils/shell-permissions.test.js.map +1 -1
  298. package/dist/src/utils/shell-utils.js +6 -3
  299. package/dist/src/utils/shell-utils.js.map +1 -1
  300. package/dist/src/utils/shell-utils.test.js +6 -2
  301. package/dist/src/utils/shell-utils.test.js.map +1 -1
  302. package/dist/tsconfig.tsbuildinfo +1 -1
  303. package/package.json +5 -3
@@ -5,7 +5,6 @@
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
7
  import { describe, it, expect, vi, beforeEach } from 'vitest';
8
- import { FileOperation, MemoryMetricType, ToolExecutionPhase, ApiRequestPhase, } from './metrics.js';
9
8
  import { makeFakeConfig } from '../test-utils/config.js';
10
9
  import { ModelRoutingEvent, AgentFinishEvent } from './types.js';
11
10
  import { AgentTerminateMode } from '../agents/types.js';
@@ -46,6 +45,10 @@ function originalOtelMockFactory() {
46
45
  vi.mock('@opentelemetry/api');
47
46
  vi.mock('./telemetryAttributes.js');
48
47
  describe('Telemetry Metrics', () => {
48
+ let FileOperationEnum;
49
+ let MemoryMetricTypeEnum;
50
+ let ToolExecutionPhaseEnum;
51
+ let ApiRequestPhaseEnum;
49
52
  let initializeMetricsModule;
50
53
  let recordTokenUsageMetricsModule;
51
54
  let recordFileOperationMetricModule;
@@ -82,6 +85,10 @@ describe('Telemetry Metrics', () => {
82
85
  'user.email': 'test@example.com',
83
86
  });
84
87
  const metricsJsModule = await import('./metrics.js');
88
+ FileOperationEnum = metricsJsModule.FileOperation;
89
+ MemoryMetricTypeEnum = metricsJsModule.MemoryMetricType;
90
+ ToolExecutionPhaseEnum = metricsJsModule.ToolExecutionPhase;
91
+ ApiRequestPhaseEnum = metricsJsModule.ApiRequestPhase;
85
92
  initializeMetricsModule = metricsJsModule.initializeMetrics;
86
93
  recordTokenUsageMetricsModule = metricsJsModule.recordTokenUsageMetrics;
87
94
  recordFileOperationMetricModule = metricsJsModule.recordFileOperationMetric;
@@ -296,68 +303,72 @@ describe('Telemetry Metrics', () => {
296
303
  getSessionId: () => 'test-session-id',
297
304
  getTelemetryEnabled: () => true,
298
305
  };
299
- it.each([
300
- {
301
- name: 'should not record metrics if not initialized',
306
+ function runTestCase({ initialized, attributes, shouldCall, }) {
307
+ if (initialized) {
308
+ initializeMetricsModule(mockConfig);
309
+ // The session start event also calls the counter.
310
+ mockCounterAddFn.mockClear();
311
+ }
312
+ recordFileOperationMetricModule(mockConfig, attributes);
313
+ if (shouldCall) {
314
+ expect(mockCounterAddFn).toHaveBeenCalledWith(1, {
315
+ 'session.id': 'test-session-id',
316
+ 'installation.id': 'test-installation-id',
317
+ 'user.email': 'test@example.com',
318
+ ...attributes,
319
+ });
320
+ }
321
+ else {
322
+ expect(mockCounterAddFn).not.toHaveBeenCalled();
323
+ }
324
+ }
325
+ it('should not record metrics if not initialized', () => {
326
+ runTestCase({
302
327
  initialized: false,
303
328
  attributes: {
304
- operation: FileOperation.CREATE,
329
+ operation: FileOperationEnum.CREATE,
305
330
  lines: 10,
306
331
  mimetype: 'text/plain',
307
332
  extension: 'txt',
308
333
  },
309
334
  shouldCall: false,
310
- },
311
- {
312
- name: 'should record file creation with all attributes',
335
+ });
336
+ });
337
+ it('should record file creation with all attributes', () => {
338
+ runTestCase({
313
339
  initialized: true,
314
340
  attributes: {
315
- operation: FileOperation.CREATE,
341
+ operation: FileOperationEnum.CREATE,
316
342
  lines: 10,
317
343
  mimetype: 'text/plain',
318
344
  extension: 'txt',
319
345
  },
320
346
  shouldCall: true,
321
- },
322
- {
323
- name: 'should record file read with minimal attributes',
347
+ });
348
+ });
349
+ it('should record file read with minimal attributes', () => {
350
+ runTestCase({
324
351
  initialized: true,
325
- attributes: { operation: FileOperation.READ },
352
+ attributes: { operation: FileOperationEnum.READ },
326
353
  shouldCall: true,
327
- },
328
- {
329
- name: 'should record file update with some attributes',
354
+ });
355
+ });
356
+ it('should record file update with some attributes', () => {
357
+ runTestCase({
330
358
  initialized: true,
331
359
  attributes: {
332
- operation: FileOperation.UPDATE,
360
+ operation: FileOperationEnum.UPDATE,
333
361
  mimetype: 'application/javascript',
334
362
  },
335
363
  shouldCall: true,
336
- },
337
- {
338
- name: 'should record file update with no optional attributes',
364
+ });
365
+ });
366
+ it('should record file update with no optional attributes', () => {
367
+ runTestCase({
339
368
  initialized: true,
340
- attributes: { operation: FileOperation.UPDATE },
369
+ attributes: { operation: FileOperationEnum.UPDATE },
341
370
  shouldCall: true,
342
- },
343
- ])('$name', ({ initialized, attributes, shouldCall }) => {
344
- if (initialized) {
345
- initializeMetricsModule(mockConfig);
346
- // The session start event also calls the counter.
347
- mockCounterAddFn.mockClear();
348
- }
349
- recordFileOperationMetricModule(mockConfig, attributes);
350
- if (shouldCall) {
351
- expect(mockCounterAddFn).toHaveBeenCalledWith(1, {
352
- 'session.id': 'test-session-id',
353
- 'installation.id': 'test-installation-id',
354
- 'user.email': 'test@example.com',
355
- ...attributes,
356
- });
357
- }
358
- else {
359
- expect(mockCounterAddFn).not.toHaveBeenCalled();
360
- }
371
+ });
361
372
  });
362
373
  });
363
374
  describe('recordModelRoutingMetrics', () => {
@@ -688,33 +699,7 @@ describe('Telemetry Metrics', () => {
688
699
  });
689
700
  });
690
701
  describe('recordMemoryUsage', () => {
691
- it.each([
692
- {
693
- memory_type: MemoryMetricType.HEAP_USED,
694
- component: 'startup',
695
- value: 15728640,
696
- },
697
- {
698
- memory_type: MemoryMetricType.HEAP_TOTAL,
699
- component: 'api_call',
700
- value: 31457280,
701
- },
702
- {
703
- memory_type: MemoryMetricType.EXTERNAL,
704
- component: 'tool_execution',
705
- value: 2097152,
706
- },
707
- {
708
- memory_type: MemoryMetricType.RSS,
709
- component: 'memory_monitor',
710
- value: 41943040,
711
- },
712
- {
713
- memory_type: MemoryMetricType.HEAP_USED,
714
- component: undefined,
715
- value: 15728640,
716
- },
717
- ])('should record memory usage for $memory_type', ({ memory_type, component, value }) => {
702
+ function assertMemoryUsage({ memory_type, component, value, }) {
718
703
  initializeMetricsModule(mockConfig);
719
704
  mockHistogramRecordFn.mockClear();
720
705
  recordMemoryUsageModule(mockConfig, value, {
@@ -731,6 +716,41 @@ describe('Telemetry Metrics', () => {
731
716
  expectedAttributes['component'] = component;
732
717
  }
733
718
  expect(mockHistogramRecordFn).toHaveBeenCalledWith(value, expectedAttributes);
719
+ }
720
+ it('should record heap used memory usage', () => {
721
+ assertMemoryUsage({
722
+ memory_type: MemoryMetricTypeEnum.HEAP_USED,
723
+ component: 'startup',
724
+ value: 15728640,
725
+ });
726
+ });
727
+ it('should record heap total memory usage', () => {
728
+ assertMemoryUsage({
729
+ memory_type: MemoryMetricTypeEnum.HEAP_TOTAL,
730
+ component: 'api_call',
731
+ value: 31457280,
732
+ });
733
+ });
734
+ it('should record external memory usage', () => {
735
+ assertMemoryUsage({
736
+ memory_type: MemoryMetricTypeEnum.EXTERNAL,
737
+ component: 'tool_execution',
738
+ value: 2097152,
739
+ });
740
+ });
741
+ it('should record RSS memory usage', () => {
742
+ assertMemoryUsage({
743
+ memory_type: MemoryMetricTypeEnum.RSS,
744
+ component: 'memory_monitor',
745
+ value: 41943040,
746
+ });
747
+ });
748
+ it('should record memory usage without component', () => {
749
+ assertMemoryUsage({
750
+ memory_type: MemoryMetricTypeEnum.HEAP_USED,
751
+ component: undefined,
752
+ value: 15728640,
753
+ });
734
754
  });
735
755
  });
736
756
  describe('recordCpuUsage', () => {
@@ -786,7 +806,7 @@ describe('Telemetry Metrics', () => {
786
806
  mockHistogramRecordFn.mockClear();
787
807
  recordToolExecutionBreakdownModule(mockConfig, 25, {
788
808
  function_name: 'Read',
789
- phase: ToolExecutionPhase.VALIDATION,
809
+ phase: ToolExecutionPhaseEnum.VALIDATION,
790
810
  });
791
811
  expect(mockHistogramRecordFn).toHaveBeenCalledWith(25, {
792
812
  'session.id': 'test-session-id',
@@ -801,15 +821,15 @@ describe('Telemetry Metrics', () => {
801
821
  mockHistogramRecordFn.mockClear();
802
822
  recordToolExecutionBreakdownModule(mockConfig, 50, {
803
823
  function_name: 'Bash',
804
- phase: ToolExecutionPhase.PREPARATION,
824
+ phase: ToolExecutionPhaseEnum.PREPARATION,
805
825
  });
806
826
  recordToolExecutionBreakdownModule(mockConfig, 1500, {
807
827
  function_name: 'Bash',
808
- phase: ToolExecutionPhase.EXECUTION,
828
+ phase: ToolExecutionPhaseEnum.EXECUTION,
809
829
  });
810
830
  recordToolExecutionBreakdownModule(mockConfig, 75, {
811
831
  function_name: 'Bash',
812
- phase: ToolExecutionPhase.RESULT_PROCESSING,
832
+ phase: ToolExecutionPhaseEnum.RESULT_PROCESSING,
813
833
  });
814
834
  expect(mockHistogramRecordFn).toHaveBeenCalledTimes(3); // One for each call
815
835
  expect(mockHistogramRecordFn).toHaveBeenNthCalledWith(1, 50, {
@@ -875,7 +895,7 @@ describe('Telemetry Metrics', () => {
875
895
  mockHistogramRecordFn.mockClear();
876
896
  recordApiRequestBreakdownModule(mockConfig, 15, {
877
897
  model: 'gemini-pro',
878
- phase: ApiRequestPhase.REQUEST_PREPARATION,
898
+ phase: ApiRequestPhaseEnum.REQUEST_PREPARATION,
879
899
  });
880
900
  expect(mockHistogramRecordFn).toHaveBeenCalledWith(15, {
881
901
  'session.id': 'test-session-id',
@@ -890,15 +910,15 @@ describe('Telemetry Metrics', () => {
890
910
  mockHistogramRecordFn.mockClear();
891
911
  recordApiRequestBreakdownModule(mockConfig, 250, {
892
912
  model: 'gemini-pro',
893
- phase: ApiRequestPhase.NETWORK_LATENCY,
913
+ phase: ApiRequestPhaseEnum.NETWORK_LATENCY,
894
914
  });
895
915
  recordApiRequestBreakdownModule(mockConfig, 100, {
896
916
  model: 'gemini-pro',
897
- phase: ApiRequestPhase.RESPONSE_PROCESSING,
917
+ phase: ApiRequestPhaseEnum.RESPONSE_PROCESSING,
898
918
  });
899
919
  recordApiRequestBreakdownModule(mockConfig, 50, {
900
920
  model: 'gemini-pro',
901
- phase: ApiRequestPhase.TOKEN_PROCESSING,
921
+ phase: ApiRequestPhaseEnum.TOKEN_PROCESSING,
902
922
  });
903
923
  expect(mockHistogramRecordFn).toHaveBeenCalledTimes(3); // One for each call
904
924
  expect(mockHistogramRecordFn).toHaveBeenNthCalledWith(1, 250, {
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.test.js","sourceRoot":"","sources":["../../../src/telemetry/metrics.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metrics.test.js","sourceRoot":"","sources":["../../../src/telemetry/metrics.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * Portions Copyright 2025 TerminaI Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ export {};
@@ -0,0 +1,138 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * Portions Copyright 2025 TerminaI Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
8
+ import { ApprovalMode } from '../../policy/types.js';
9
+ // Track the evaluateBrain calls
10
+ let evaluateBrainCalls = [];
11
+ // Mock BrainRiskManager to capture evaluateBrain calls
12
+ vi.mock('../../brain/toolIntegration.js', () => ({
13
+ BrainRiskManager: vi.fn().mockImplementation(() => ({
14
+ evaluateBrain: vi
15
+ .fn()
16
+ .mockImplementation((request, commandOrAction, systemContext) => {
17
+ evaluateBrainCalls.push({
18
+ request,
19
+ commandOrAction,
20
+ systemContext,
21
+ });
22
+ return Promise.resolve({
23
+ assessment: { overallRisk: 'low' },
24
+ decision: { requiresConfirmation: false },
25
+ confidenceAction: { type: 'proceed' },
26
+ request,
27
+ });
28
+ }),
29
+ applyBrainAuthority: vi.fn((review) => review),
30
+ formatRiskPreamble: vi
31
+ .fn()
32
+ .mockReturnValue({ text: '', surfaceToUser: false }),
33
+ recordOutcome: vi.fn(),
34
+ getBrainContext: vi.fn().mockReturnValue(null),
35
+ })),
36
+ }));
37
+ // Now import EditTool after mock is set up
38
+ import { EditTool } from '../edit.js';
39
+ // Skip on Windows - tests time out due to platform-specific issues
40
+ describe.skipIf(process.platform === 'win32')('EditTool Risk Assessment (P0.4)', () => {
41
+ let mockConfig;
42
+ let mockFileSystemService;
43
+ beforeEach(() => {
44
+ evaluateBrainCalls = [];
45
+ mockFileSystemService = {
46
+ writeTextFile: vi.fn().mockResolvedValue(undefined),
47
+ readTextFile: vi.fn().mockRejectedValue({ code: 'ENOENT' }),
48
+ };
49
+ mockConfig = {
50
+ isInteractive: () => true,
51
+ getApprovalMode: () => ApprovalMode.DEFAULT,
52
+ getWorkspaceContext: () => ({
53
+ targetDir: '/app',
54
+ isPathWithinWorkspace: vi.fn().mockReturnValue(true),
55
+ getDirectories: vi.fn().mockReturnValue(['/app']),
56
+ }),
57
+ getAllowedTools: () => [],
58
+ getTargetDir: () => '/app',
59
+ // Use 'governing' authority to ensure brain evaluation is called
60
+ getBrainAuthority: () => 'governing',
61
+ getSecurityProfile: () => 'balanced',
62
+ getTrustedDomains: () => [],
63
+ getCriticalPaths: () => [],
64
+ getFileSystemService: () => mockFileSystemService,
65
+ getGeminiClient: () => null,
66
+ getBaseLlmClient: () => ({
67
+ generateContent: vi.fn().mockResolvedValue({
68
+ candidates: [{ content: { parts: [{ text: '{}' }] } }],
69
+ }),
70
+ }),
71
+ getIdeMode: () => false,
72
+ };
73
+ });
74
+ afterEach(() => {
75
+ vi.clearAllMocks();
76
+ });
77
+ it('sanitizes input for brain risk assessment (no raw content) for new file', async () => {
78
+ // Simulate file doesn't exist (new file creation)
79
+ mockFileSystemService.readTextFile = vi
80
+ .fn()
81
+ .mockRejectedValue({ code: 'ENOENT' });
82
+ const tool = new EditTool(mockConfig);
83
+ const params = {
84
+ file_path: '/app/secret.txt',
85
+ old_string: '', // Empty means new file
86
+ new_string: 'super secret API_KEY=12345',
87
+ };
88
+ const invocation = tool.build(params);
89
+ // Call shouldConfirmExecute which triggers brain evaluation
90
+ await invocation.shouldConfirmExecute(new AbortController().signal);
91
+ // For new file creation, the approval ladder may give level A which
92
+ // combined with brain evaluation means brain may or may not be called.
93
+ // This test focuses on ensuring if brain IS called, it's sanitized.
94
+ // The edit test below validates the sanitization logic more thoroughly.
95
+ if (evaluateBrainCalls.length > 0) {
96
+ const call = evaluateBrainCalls[0];
97
+ const riskDescription = call.commandOrAction;
98
+ // Critical assertions:
99
+ // 1. Must NOT contain raw param content (secrets)
100
+ expect(riskDescription).not.toContain('super secret');
101
+ expect(riskDescription).not.toContain('API_KEY');
102
+ expect(riskDescription).not.toContain('12345');
103
+ // 2. Must contain metadata about the operation
104
+ expect(riskDescription).toContain('Creating new file');
105
+ expect(riskDescription).toContain('chars');
106
+ }
107
+ });
108
+ it('sanitizes input for brain risk assessment (no raw content) for edit', async () => {
109
+ // Simulate existing file
110
+ mockFileSystemService.readTextFile = vi
111
+ .fn()
112
+ .mockResolvedValue('old secret content with PASSWORD=abc123');
113
+ const tool = new EditTool(mockConfig);
114
+ const params = {
115
+ file_path: '/app/config.env',
116
+ old_string: 'old secret content with PASSWORD=abc123',
117
+ new_string: 'new secret content with PASSWORD=xyz789',
118
+ };
119
+ const invocation = tool.build(params);
120
+ await invocation.shouldConfirmExecute(new AbortController().signal);
121
+ // Verify evaluateBrain was called
122
+ expect(evaluateBrainCalls.length).toBeGreaterThan(0);
123
+ const call = evaluateBrainCalls[0];
124
+ const riskDescription = call.commandOrAction;
125
+ // Critical assertions:
126
+ // 1. Must NOT contain raw param content (secrets)
127
+ expect(riskDescription).not.toContain('old secret content');
128
+ expect(riskDescription).not.toContain('new secret content');
129
+ expect(riskDescription).not.toContain('PASSWORD');
130
+ expect(riskDescription).not.toContain('abc123');
131
+ expect(riskDescription).not.toContain('xyz789');
132
+ // 2. Must contain metadata about the operation
133
+ expect(riskDescription).toContain('Replacing');
134
+ expect(riskDescription).toContain('chars');
135
+ expect(riskDescription).toContain('.env'); // file extension
136
+ });
137
+ });
138
+ //# sourceMappingURL=edit.risk.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.risk.test.js","sourceRoot":"","sources":["../../../../src/tools/__tests__/edit.risk.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * Portions Copyright 2025 TerminaI Authors
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ export {};