@office-ai/aioncli-core 0.30.0 → 0.30.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 (324) hide show
  1. package/dist/docs/assets/theme-ansi-dark.png +0 -0
  2. package/dist/docs/assets/theme-atom-one-dark.png +0 -0
  3. package/dist/docs/assets/theme-ayu-dark.png +0 -0
  4. package/dist/docs/assets/theme-default-dark.png +0 -0
  5. package/dist/docs/assets/theme-dracula-dark.png +0 -0
  6. package/dist/docs/assets/theme-github-dark.png +0 -0
  7. package/dist/docs/assets/theme-holiday-dark.png +0 -0
  8. package/dist/docs/assets/theme-shades-of-purple-dark.png +0 -0
  9. package/dist/docs/assets/theme-solarized-dark.png +0 -0
  10. package/dist/docs/assets/theme-solarized-light.png +0 -0
  11. package/dist/docs/cli/notifications.md +58 -0
  12. package/dist/docs/redirects.json +20 -0
  13. package/dist/docs/reference/commands.md +563 -0
  14. package/dist/docs/reference/configuration.md +1804 -0
  15. package/dist/docs/reference/keyboard-shortcuts.md +168 -0
  16. package/dist/docs/reference/memport.md +246 -0
  17. package/dist/docs/reference/policy-engine.md +386 -0
  18. package/dist/docs/reference/tools.md +106 -0
  19. package/dist/docs/resources/faq.md +175 -0
  20. package/dist/docs/resources/quota-and-pricing.md +199 -0
  21. package/dist/docs/resources/tos-privacy.md +102 -0
  22. package/dist/docs/resources/troubleshooting.md +176 -0
  23. package/dist/docs/resources/uninstall.md +56 -0
  24. package/dist/src/agents/a2a-errors.d.ts +65 -0
  25. package/dist/src/agents/a2a-errors.js +164 -0
  26. package/dist/src/agents/a2a-errors.js.map +1 -0
  27. package/dist/src/agents/a2a-errors.test.d.ts +6 -0
  28. package/dist/src/agents/a2a-errors.test.js +183 -0
  29. package/dist/src/agents/a2a-errors.test.js.map +1 -0
  30. package/dist/src/agents/auth-provider/api-key-provider.d.ts +30 -0
  31. package/dist/src/agents/auth-provider/api-key-provider.js +66 -0
  32. package/dist/src/agents/auth-provider/api-key-provider.js.map +1 -0
  33. package/dist/src/agents/auth-provider/api-key-provider.test.d.ts +6 -0
  34. package/dist/src/agents/auth-provider/api-key-provider.test.js +130 -0
  35. package/dist/src/agents/auth-provider/api-key-provider.test.js.map +1 -0
  36. package/dist/src/agents/auth-provider/http-provider.d.ts +28 -0
  37. package/dist/src/agents/auth-provider/http-provider.js +73 -0
  38. package/dist/src/agents/auth-provider/http-provider.js.map +1 -0
  39. package/dist/src/agents/auth-provider/http-provider.test.d.ts +6 -0
  40. package/dist/src/agents/auth-provider/http-provider.test.js +112 -0
  41. package/dist/src/agents/auth-provider/http-provider.test.js.map +1 -0
  42. package/dist/src/agents/auth-provider/oauth2-provider.d.ts +65 -0
  43. package/dist/src/agents/auth-provider/oauth2-provider.js +233 -0
  44. package/dist/src/agents/auth-provider/oauth2-provider.js.map +1 -0
  45. package/dist/src/agents/auth-provider/oauth2-provider.test.d.ts +6 -0
  46. package/dist/src/agents/auth-provider/oauth2-provider.test.js +490 -0
  47. package/dist/src/agents/auth-provider/oauth2-provider.test.js.map +1 -0
  48. package/dist/src/agents/browser/analyzeScreenshot.d.ts +35 -0
  49. package/dist/src/agents/browser/analyzeScreenshot.js +183 -0
  50. package/dist/src/agents/browser/analyzeScreenshot.js.map +1 -0
  51. package/dist/src/agents/browser/analyzeScreenshot.test.d.ts +6 -0
  52. package/dist/src/agents/browser/analyzeScreenshot.test.js +161 -0
  53. package/dist/src/agents/browser/analyzeScreenshot.test.js.map +1 -0
  54. package/dist/src/agents/browser/automationOverlay.d.ts +26 -0
  55. package/dist/src/agents/browser/automationOverlay.js +100 -0
  56. package/dist/src/agents/browser/automationOverlay.js.map +1 -0
  57. package/dist/src/agents/browser/browserAgentDefinition.d.ts +50 -0
  58. package/dist/src/agents/browser/browserAgentDefinition.js +141 -0
  59. package/dist/src/agents/browser/browserAgentDefinition.js.map +1 -0
  60. package/dist/src/agents/browser/browserAgentFactory.d.ts +42 -0
  61. package/dist/src/agents/browser/browserAgentFactory.js +116 -0
  62. package/dist/src/agents/browser/browserAgentFactory.js.map +1 -0
  63. package/dist/src/agents/browser/browserAgentFactory.test.d.ts +6 -0
  64. package/dist/src/agents/browser/browserAgentFactory.test.js +240 -0
  65. package/dist/src/agents/browser/browserAgentFactory.test.js.map +1 -0
  66. package/dist/src/agents/browser/browserAgentInvocation.d.ts +34 -0
  67. package/dist/src/agents/browser/browserAgentInvocation.js +386 -0
  68. package/dist/src/agents/browser/browserAgentInvocation.js.map +1 -0
  69. package/dist/src/agents/browser/browserAgentInvocation.test.d.ts +6 -0
  70. package/dist/src/agents/browser/browserAgentInvocation.test.js +382 -0
  71. package/dist/src/agents/browser/browserAgentInvocation.test.js.map +1 -0
  72. package/dist/src/agents/browser/browserManager.d.ts +115 -0
  73. package/dist/src/agents/browser/browserManager.js +370 -0
  74. package/dist/src/agents/browser/browserManager.js.map +1 -0
  75. package/dist/src/agents/browser/browserManager.test.d.ts +6 -0
  76. package/dist/src/agents/browser/browserManager.test.js +382 -0
  77. package/dist/src/agents/browser/browserManager.test.js.map +1 -0
  78. package/dist/src/agents/browser/mcpToolWrapper.d.ts +45 -0
  79. package/dist/src/agents/browser/mcpToolWrapper.js +358 -0
  80. package/dist/src/agents/browser/mcpToolWrapper.js.map +1 -0
  81. package/dist/src/agents/browser/mcpToolWrapper.test.d.ts +6 -0
  82. package/dist/src/agents/browser/mcpToolWrapper.test.js +126 -0
  83. package/dist/src/agents/browser/mcpToolWrapper.test.js.map +1 -0
  84. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.d.ts +6 -0
  85. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js +59 -0
  86. package/dist/src/agents/browser/mcpToolWrapperConfirmation.test.js.map +1 -0
  87. package/dist/src/agents/browser/modelAvailability.d.ts +23 -0
  88. package/dist/src/agents/browser/modelAvailability.js +23 -0
  89. package/dist/src/agents/browser/modelAvailability.js.map +1 -0
  90. package/dist/src/billing/billing.d.ts +80 -0
  91. package/dist/src/billing/billing.js +128 -0
  92. package/dist/src/billing/billing.js.map +1 -0
  93. package/dist/src/billing/billing.test.d.ts +6 -0
  94. package/dist/src/billing/billing.test.js +182 -0
  95. package/dist/src/billing/billing.test.js.map +1 -0
  96. package/dist/src/billing/index.d.ts +6 -0
  97. package/dist/src/billing/index.js +7 -0
  98. package/dist/src/billing/index.js.map +1 -0
  99. package/dist/src/code_assist/types.d.ts +14 -14
  100. package/dist/src/config/agent-loop-context.d.ts +22 -0
  101. package/dist/src/config/agent-loop-context.js +7 -0
  102. package/dist/src/config/agent-loop-context.js.map +1 -0
  103. package/dist/src/config/trackerFeatureFlag.test.d.ts +6 -0
  104. package/dist/src/config/trackerFeatureFlag.test.js +43 -0
  105. package/dist/src/config/trackerFeatureFlag.test.js.map +1 -0
  106. package/dist/src/config/userHintService.d.ts +46 -0
  107. package/dist/src/config/userHintService.js +81 -0
  108. package/dist/src/config/userHintService.js.map +1 -0
  109. package/dist/src/config/userHintService.test.d.ts +6 -0
  110. package/dist/src/config/userHintService.test.js +62 -0
  111. package/dist/src/config/userHintService.test.js.map +1 -0
  112. package/dist/src/core/localLiteRtLmClient.d.ts +24 -0
  113. package/dist/src/core/localLiteRtLmClient.js +77 -0
  114. package/dist/src/core/localLiteRtLmClient.js.map +1 -0
  115. package/dist/src/core/localLiteRtLmClient.test.d.ts +6 -0
  116. package/dist/src/core/localLiteRtLmClient.test.js +87 -0
  117. package/dist/src/core/localLiteRtLmClient.test.js.map +1 -0
  118. package/dist/src/core/openaiContentGenerator.d.ts +1 -0
  119. package/dist/src/core/openaiContentGenerator.js +15 -14
  120. package/dist/src/core/openaiContentGenerator.js.map +1 -1
  121. package/dist/src/generated/git-commit.d.ts +2 -2
  122. package/dist/src/generated/git-commit.js +2 -2
  123. package/dist/src/hooks/runtimeHooks.test.d.ts +6 -0
  124. package/dist/src/hooks/runtimeHooks.test.js +100 -0
  125. package/dist/src/hooks/runtimeHooks.test.js.map +1 -0
  126. package/dist/src/ide/types.d.ts +10 -10
  127. package/dist/src/mcp/mcp-oauth-provider.d.ts +43 -0
  128. package/dist/src/mcp/mcp-oauth-provider.js +67 -0
  129. package/dist/src/mcp/mcp-oauth-provider.js.map +1 -0
  130. package/dist/src/mcp/mcp-oauth-provider.test.d.ts +6 -0
  131. package/dist/src/mcp/mcp-oauth-provider.test.js +63 -0
  132. package/dist/src/mcp/mcp-oauth-provider.test.js.map +1 -0
  133. package/dist/src/policy/integrity.d.ts +45 -0
  134. package/dist/src/policy/integrity.js +121 -0
  135. package/dist/src/policy/integrity.js.map +1 -0
  136. package/dist/src/policy/integrity.test.d.ts +6 -0
  137. package/dist/src/policy/integrity.test.js +132 -0
  138. package/dist/src/policy/integrity.test.js.map +1 -0
  139. package/dist/src/policy/policies/conseca.toml +6 -0
  140. package/dist/src/policy/workspace-policy.test.js +231 -0
  141. package/dist/src/policy/workspace-policy.test.js.map +1 -0
  142. package/dist/src/routing/strategies/approvalModeStrategy.d.ts +18 -0
  143. package/dist/src/routing/strategies/approvalModeStrategy.js +59 -0
  144. package/dist/src/routing/strategies/approvalModeStrategy.js.map +1 -0
  145. package/dist/src/routing/strategies/approvalModeStrategy.test.d.ts +6 -0
  146. package/dist/src/routing/strategies/approvalModeStrategy.test.js +140 -0
  147. package/dist/src/routing/strategies/approvalModeStrategy.test.js.map +1 -0
  148. package/dist/src/routing/strategies/gemmaClassifierStrategy.d.ts +14 -0
  149. package/dist/src/routing/strategies/gemmaClassifierStrategy.js +182 -0
  150. package/dist/src/routing/strategies/gemmaClassifierStrategy.js.map +1 -0
  151. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.d.ts +6 -0
  152. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js +218 -0
  153. package/dist/src/routing/strategies/gemmaClassifierStrategy.test.js.map +1 -0
  154. package/dist/src/safety/conseca/conseca.d.ts +31 -0
  155. package/dist/src/safety/conseca/conseca.js +105 -0
  156. package/dist/src/safety/conseca/conseca.js.map +1 -0
  157. package/dist/src/safety/conseca/conseca.test.js +226 -0
  158. package/dist/src/safety/conseca/conseca.test.js.map +1 -0
  159. package/dist/src/safety/conseca/integration.test.js +19 -0
  160. package/dist/src/safety/conseca/integration.test.js.map +1 -0
  161. package/dist/src/safety/conseca/policy-enforcer.d.ts +13 -0
  162. package/dist/src/safety/conseca/policy-enforcer.js +135 -0
  163. package/dist/src/safety/conseca/policy-enforcer.js.map +1 -0
  164. package/dist/src/safety/conseca/policy-enforcer.test.js +141 -0
  165. package/dist/src/safety/conseca/policy-enforcer.test.js.map +1 -0
  166. package/dist/src/safety/conseca/policy-generator.d.ts +15 -0
  167. package/dist/src/safety/conseca/policy-generator.js +144 -0
  168. package/dist/src/safety/conseca/policy-generator.js.map +1 -0
  169. package/dist/src/safety/conseca/policy-generator.test.d.ts +6 -0
  170. package/dist/src/safety/conseca/policy-generator.test.js +84 -0
  171. package/dist/src/safety/conseca/policy-generator.test.js.map +1 -0
  172. package/dist/src/safety/conseca/types.d.ts +15 -0
  173. package/dist/src/safety/conseca/types.js +7 -0
  174. package/dist/src/safety/conseca/types.js.map +1 -0
  175. package/dist/src/scheduler/scheduler_parallel.test.d.ts +6 -0
  176. package/dist/src/scheduler/scheduler_parallel.test.js +401 -0
  177. package/dist/src/scheduler/scheduler_parallel.test.js.map +1 -0
  178. package/dist/src/services/FolderTrustDiscoveryService.d.ts +32 -0
  179. package/dist/src/services/FolderTrustDiscoveryService.js +169 -0
  180. package/dist/src/services/FolderTrustDiscoveryService.js.map +1 -0
  181. package/dist/src/services/FolderTrustDiscoveryService.test.d.ts +6 -0
  182. package/dist/src/services/FolderTrustDiscoveryService.test.js +118 -0
  183. package/dist/src/services/FolderTrustDiscoveryService.test.js.map +1 -0
  184. package/dist/src/services/fileKeychain.d.ts +24 -0
  185. package/dist/src/services/fileKeychain.js +123 -0
  186. package/dist/src/services/fileKeychain.js.map +1 -0
  187. package/dist/src/services/keychainService.d.ts +51 -0
  188. package/dist/src/services/keychainService.js +133 -0
  189. package/dist/src/services/keychainService.js.map +1 -0
  190. package/dist/src/services/keychainService.test.d.ts +6 -0
  191. package/dist/src/services/keychainService.test.js +150 -0
  192. package/dist/src/services/keychainService.test.js.map +1 -0
  193. package/dist/src/services/keychainTypes.d.ts +41 -0
  194. package/dist/src/services/keychainTypes.js +18 -0
  195. package/dist/src/services/keychainTypes.js.map +1 -0
  196. package/dist/src/services/trackerService.d.ts +49 -0
  197. package/dist/src/services/trackerService.js +193 -0
  198. package/dist/src/services/trackerService.js.map +1 -0
  199. package/dist/src/services/trackerService.test.d.ts +6 -0
  200. package/dist/src/services/trackerService.test.js +117 -0
  201. package/dist/src/services/trackerService.test.js.map +1 -0
  202. package/dist/src/services/trackerTypes.d.ts +51 -0
  203. package/dist/src/services/trackerTypes.js +33 -0
  204. package/dist/src/services/trackerTypes.js.map +1 -0
  205. package/dist/src/telemetry/billingEvents.d.ts +75 -0
  206. package/dist/src/telemetry/billingEvents.js +181 -0
  207. package/dist/src/telemetry/billingEvents.js.map +1 -0
  208. package/dist/src/telemetry/billingEvents.test.d.ts +6 -0
  209. package/dist/src/telemetry/billingEvents.test.js +139 -0
  210. package/dist/src/telemetry/billingEvents.test.js.map +1 -0
  211. package/dist/src/telemetry/conseca-logger.d.ts +9 -0
  212. package/dist/src/telemetry/conseca-logger.js +91 -0
  213. package/dist/src/telemetry/conseca-logger.js.map +1 -0
  214. package/dist/src/telemetry/conseca-logger.test.d.ts +6 -0
  215. package/dist/src/telemetry/conseca-logger.test.js +90 -0
  216. package/dist/src/telemetry/conseca-logger.test.js.map +1 -0
  217. package/dist/src/telemetry/trace.test.d.ts +6 -0
  218. package/dist/src/telemetry/trace.test.js +116 -0
  219. package/dist/src/telemetry/trace.test.js.map +1 -0
  220. package/dist/src/tools/definitions/trackerTools.d.ts +12 -0
  221. package/dist/src/tools/definitions/trackerTools.js +146 -0
  222. package/dist/src/tools/definitions/trackerTools.js.map +1 -0
  223. package/dist/src/tools/diff-utils.d.ts +9 -0
  224. package/dist/src/tools/diff-utils.js +66 -0
  225. package/dist/src/tools/diff-utils.js.map +1 -0
  226. package/dist/src/tools/diff-utils.test.d.ts +6 -0
  227. package/dist/src/tools/diff-utils.test.js +53 -0
  228. package/dist/src/tools/diff-utils.test.js.map +1 -0
  229. package/dist/src/tools/grep-utils.d.ts +49 -0
  230. package/dist/src/tools/grep-utils.js +147 -0
  231. package/dist/src/tools/grep-utils.js.map +1 -0
  232. package/dist/src/tools/omissionPlaceholderDetector.d.ts +15 -0
  233. package/dist/src/tools/omissionPlaceholderDetector.js +90 -0
  234. package/dist/src/tools/omissionPlaceholderDetector.js.map +1 -0
  235. package/dist/src/tools/omissionPlaceholderDetector.test.d.ts +6 -0
  236. package/dist/src/tools/omissionPlaceholderDetector.test.js +49 -0
  237. package/dist/src/tools/omissionPlaceholderDetector.test.js.map +1 -0
  238. package/dist/src/tools/trackerTools.d.ts +122 -0
  239. package/dist/src/tools/trackerTools.js +365 -0
  240. package/dist/src/tools/trackerTools.js.map +1 -0
  241. package/dist/src/tools/trackerTools.test.d.ts +6 -0
  242. package/dist/src/tools/trackerTools.test.js +97 -0
  243. package/dist/src/tools/trackerTools.test.js.map +1 -0
  244. package/dist/src/utils/approvalModeUtils.d.ts +14 -0
  245. package/dist/src/utils/approvalModeUtils.js +35 -0
  246. package/dist/src/utils/approvalModeUtils.js.map +1 -0
  247. package/dist/src/utils/approvalModeUtils.test.d.ts +6 -0
  248. package/dist/src/utils/approvalModeUtils.test.js +36 -0
  249. package/dist/src/utils/approvalModeUtils.test.js.map +1 -0
  250. package/dist/src/utils/cache.d.ts +63 -0
  251. package/dist/src/utils/cache.js +103 -0
  252. package/dist/src/utils/cache.js.map +1 -0
  253. package/dist/src/utils/cache.test.d.ts +6 -0
  254. package/dist/src/utils/cache.test.js +158 -0
  255. package/dist/src/utils/cache.test.js.map +1 -0
  256. package/dist/src/utils/compatibility.d.ts +41 -0
  257. package/dist/src/utils/compatibility.js +112 -0
  258. package/dist/src/utils/compatibility.js.map +1 -0
  259. package/dist/src/utils/compatibility.test.d.ts +6 -0
  260. package/dist/src/utils/compatibility.test.js +233 -0
  261. package/dist/src/utils/compatibility.test.js.map +1 -0
  262. package/dist/src/utils/envExpansion.d.ts +18 -0
  263. package/dist/src/utils/envExpansion.js +46 -0
  264. package/dist/src/utils/envExpansion.js.map +1 -0
  265. package/dist/src/utils/envExpansion.test.d.ts +6 -0
  266. package/dist/src/utils/envExpansion.test.js +110 -0
  267. package/dist/src/utils/envExpansion.test.js.map +1 -0
  268. package/dist/src/utils/errors_timeout.test.d.ts +6 -0
  269. package/dist/src/utils/errors_timeout.test.js +40 -0
  270. package/dist/src/utils/errors_timeout.test.js.map +1 -0
  271. package/dist/src/utils/fetch.test.d.ts +6 -0
  272. package/dist/src/utils/fetch.test.js +206 -0
  273. package/dist/src/utils/fetch.test.js.map +1 -0
  274. package/dist/src/utils/markdownUtils.d.ts +22 -0
  275. package/dist/src/utils/markdownUtils.js +126 -0
  276. package/dist/src/utils/markdownUtils.js.map +1 -0
  277. package/dist/src/utils/markdownUtils.test.d.ts +6 -0
  278. package/dist/src/utils/markdownUtils.test.js +107 -0
  279. package/dist/src/utils/markdownUtils.test.js.map +1 -0
  280. package/dist/src/utils/oauth-flow.d.ts +105 -0
  281. package/dist/src/utils/oauth-flow.js +370 -0
  282. package/dist/src/utils/oauth-flow.js.map +1 -0
  283. package/dist/src/utils/oauth-flow.test.d.ts +6 -0
  284. package/dist/src/utils/oauth-flow.test.js +360 -0
  285. package/dist/src/utils/oauth-flow.test.js.map +1 -0
  286. package/dist/src/utils/sessionUtils.d.ts +14 -0
  287. package/dist/src/utils/sessionUtils.js +122 -0
  288. package/dist/src/utils/sessionUtils.js.map +1 -0
  289. package/dist/src/utils/sessionUtils.test.d.ts +1 -0
  290. package/dist/src/utils/sessionUtils.test.js +171 -0
  291. package/dist/src/utils/sessionUtils.test.js.map +1 -0
  292. package/dist/src/voice/responseFormatter.d.ts +38 -0
  293. package/dist/src/voice/responseFormatter.js +130 -0
  294. package/dist/src/voice/responseFormatter.js.map +1 -0
  295. package/dist/src/voice/responseFormatter.test.d.ts +6 -0
  296. package/dist/src/voice/responseFormatter.test.js +214 -0
  297. package/dist/src/voice/responseFormatter.test.js.map +1 -0
  298. package/dist/tsconfig.tsbuildinfo +1 -1
  299. package/package.json +1 -1
  300. package/dist/docs/CONTRIBUTING.md +0 -555
  301. package/dist/src/agents/executor.d.ts +0 -114
  302. package/dist/src/agents/executor.js +0 -779
  303. package/dist/src/agents/executor.js.map +0 -1
  304. package/dist/src/agents/executor.test.js +0 -1362
  305. package/dist/src/agents/executor.test.js.map +0 -1
  306. package/dist/src/agents/invocation.d.ts +0 -46
  307. package/dist/src/agents/invocation.js +0 -102
  308. package/dist/src/agents/invocation.js.map +0 -1
  309. package/dist/src/agents/invocation.test.js +0 -215
  310. package/dist/src/agents/invocation.test.js.map +0 -1
  311. package/dist/src/core/subagent.d.ts +0 -236
  312. package/dist/src/core/subagent.js +0 -482
  313. package/dist/src/core/subagent.js.map +0 -1
  314. package/dist/src/core/subagent.test.js +0 -530
  315. package/dist/src/core/subagent.test.js.map +0 -1
  316. package/dist/src/tools/smart-edit.d.ts +0 -78
  317. package/dist/src/tools/smart-edit.js +0 -717
  318. package/dist/src/tools/smart-edit.js.map +0 -1
  319. package/dist/src/tools/smart-edit.test.js +0 -592
  320. package/dist/src/tools/smart-edit.test.js.map +0 -1
  321. /package/dist/src/{agents/executor.test.d.ts → policy/workspace-policy.test.d.ts} +0 -0
  322. /package/dist/src/{agents/invocation.test.d.ts → safety/conseca/conseca.test.d.ts} +0 -0
  323. /package/dist/src/{core/subagent.test.d.ts → safety/conseca/integration.test.d.ts} +0 -0
  324. /package/dist/src/{tools/smart-edit.test.d.ts → safety/conseca/policy-enforcer.test.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerTools.js","sourceRoot":"","sources":["../../../src/tools/trackerTools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,97 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import { Config } from '../config/config.js';
8
+ import { MessageBus } from '../confirmation-bus/message-bus.js';
9
+ import { TrackerCreateTaskTool, TrackerListTasksTool, TrackerUpdateTaskTool, TrackerVisualizeTool, TrackerAddDependencyTool, } from './trackerTools.js';
10
+ import * as fs from 'node:fs/promises';
11
+ import * as path from 'node:path';
12
+ import * as os from 'node:os';
13
+ import { TaskStatus, TaskType } from '../services/trackerTypes.js';
14
+ describe('Tracker Tools Integration', () => {
15
+ let tempDir;
16
+ let config;
17
+ let messageBus;
18
+ beforeEach(async () => {
19
+ tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'tracker-tools-test-'));
20
+ config = new Config({
21
+ sessionId: 'test-session',
22
+ targetDir: tempDir,
23
+ cwd: tempDir,
24
+ model: 'gemini-3-flash',
25
+ debugMode: false,
26
+ });
27
+ messageBus = new MessageBus(null, false);
28
+ });
29
+ afterEach(async () => {
30
+ await fs.rm(tempDir, { recursive: true, force: true });
31
+ });
32
+ const getSignal = () => new AbortController().signal;
33
+ it('creates and lists tasks', async () => {
34
+ const createTool = new TrackerCreateTaskTool(config, messageBus);
35
+ const createResult = await createTool.buildAndExecute({
36
+ title: 'Test Task',
37
+ description: 'Test Description',
38
+ type: TaskType.TASK,
39
+ }, getSignal());
40
+ expect(createResult.llmContent).toContain('Created task');
41
+ const listTool = new TrackerListTasksTool(config, messageBus);
42
+ const listResult = await listTool.buildAndExecute({}, getSignal());
43
+ expect(listResult.llmContent).toContain('Test Task');
44
+ expect(listResult.llmContent).toContain(`(${TaskStatus.OPEN})`);
45
+ });
46
+ it('updates task status', async () => {
47
+ const createTool = new TrackerCreateTaskTool(config, messageBus);
48
+ await createTool.buildAndExecute({
49
+ title: 'Update Me',
50
+ description: '...',
51
+ type: TaskType.TASK,
52
+ }, getSignal());
53
+ const tasks = await config.getTrackerService().listTasks();
54
+ const taskId = tasks[0].id;
55
+ const updateTool = new TrackerUpdateTaskTool(config, messageBus);
56
+ const updateResult = await updateTool.buildAndExecute({
57
+ id: taskId,
58
+ status: TaskStatus.IN_PROGRESS,
59
+ }, getSignal());
60
+ expect(updateResult.llmContent).toContain(`Status: ${TaskStatus.IN_PROGRESS}`);
61
+ const task = await config.getTrackerService().getTask(taskId);
62
+ expect(task?.status).toBe(TaskStatus.IN_PROGRESS);
63
+ });
64
+ it('adds dependencies and visualizes the graph', async () => {
65
+ const createTool = new TrackerCreateTaskTool(config, messageBus);
66
+ // Create Parent
67
+ await createTool.buildAndExecute({
68
+ title: 'Parent Task',
69
+ description: '...',
70
+ type: TaskType.TASK,
71
+ }, getSignal());
72
+ // Create Child
73
+ await createTool.buildAndExecute({
74
+ title: 'Child Task',
75
+ description: '...',
76
+ type: TaskType.TASK,
77
+ }, getSignal());
78
+ const tasks = await config.getTrackerService().listTasks();
79
+ const parentId = tasks.find((t) => t.title === 'Parent Task').id;
80
+ const childId = tasks.find((t) => t.title === 'Child Task').id;
81
+ // Add Dependency
82
+ const addDepTool = new TrackerAddDependencyTool(config, messageBus);
83
+ await addDepTool.buildAndExecute({
84
+ taskId: parentId,
85
+ dependencyId: childId,
86
+ }, getSignal());
87
+ const updatedParent = await config.getTrackerService().getTask(parentId);
88
+ expect(updatedParent?.dependencies).toContain(childId);
89
+ // Visualize
90
+ const vizTool = new TrackerVisualizeTool(config, messageBus);
91
+ const vizResult = await vizTool.buildAndExecute({}, getSignal());
92
+ expect(vizResult.llmContent).toContain('Parent Task');
93
+ expect(vizResult.llmContent).toContain('Child Task');
94
+ expect(vizResult.llmContent).toContain(childId);
95
+ });
96
+ });
97
+ //# sourceMappingURL=trackerTools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerTools.test.js","sourceRoot":"","sources":["../../../src/tools/trackerTools.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ApprovalMode } from '../policy/types.js';
7
+ /**
8
+ * Returns a human-readable description for an approval mode.
9
+ */
10
+ export declare function getApprovalModeDescription(mode: ApprovalMode): string;
11
+ /**
12
+ * Generates a consistent message for plan mode transitions.
13
+ */
14
+ export declare function getPlanModeExitMessage(newMode: ApprovalMode, isManual?: boolean): string;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ApprovalMode } from '../policy/types.js';
7
+ import { checkExhaustive } from './checks.js';
8
+ /**
9
+ * Returns a human-readable description for an approval mode.
10
+ */
11
+ export function getApprovalModeDescription(mode) {
12
+ switch (mode) {
13
+ case ApprovalMode.AUTO_EDIT:
14
+ return 'Auto-Edit mode (edits will be applied automatically)';
15
+ case ApprovalMode.DEFAULT:
16
+ return 'Default mode (edits will require confirmation)';
17
+ case ApprovalMode.PLAN:
18
+ return 'Plan mode (read-only planning)';
19
+ case ApprovalMode.YOLO:
20
+ return 'YOLO mode (all tool calls auto-approved)';
21
+ default:
22
+ return checkExhaustive(mode);
23
+ }
24
+ }
25
+ /**
26
+ * Generates a consistent message for plan mode transitions.
27
+ */
28
+ export function getPlanModeExitMessage(newMode, isManual = false) {
29
+ const description = getApprovalModeDescription(newMode);
30
+ const prefix = isManual
31
+ ? 'User has manually exited Plan Mode.'
32
+ : 'Plan approved.';
33
+ return `${prefix} Switching to ${description}.`;
34
+ }
35
+ //# sourceMappingURL=approvalModeUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvalModeUtils.js","sourceRoot":"","sources":["../../../src/utils/approvalModeUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAkB;IAC3D,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,YAAY,CAAC,SAAS;YACzB,OAAO,sDAAsD,CAAC;QAChE,KAAK,YAAY,CAAC,OAAO;YACvB,OAAO,gDAAgD,CAAC;QAC1D,KAAK,YAAY,CAAC,IAAI;YACpB,OAAO,gCAAgC,CAAC;QAC1C,KAAK,YAAY,CAAC,IAAI;YACpB,OAAO,0CAA0C,CAAC;QACpD;YACE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAqB,EACrB,WAAoB,KAAK;IAEzB,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,gBAAgB,CAAC;IACrB,OAAO,GAAG,MAAM,iBAAiB,WAAW,GAAG,CAAC;AAClD,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect } from 'vitest';
7
+ import { ApprovalMode } from '../policy/types.js';
8
+ import { getApprovalModeDescription, getPlanModeExitMessage, } from './approvalModeUtils.js';
9
+ describe('approvalModeUtils', () => {
10
+ describe('getApprovalModeDescription', () => {
11
+ it('should return correct description for DEFAULT mode', () => {
12
+ expect(getApprovalModeDescription(ApprovalMode.DEFAULT)).toBe('Default mode (edits will require confirmation)');
13
+ });
14
+ it('should return correct description for AUTO_EDIT mode', () => {
15
+ expect(getApprovalModeDescription(ApprovalMode.AUTO_EDIT)).toBe('Auto-Edit mode (edits will be applied automatically)');
16
+ });
17
+ it('should return correct description for PLAN mode', () => {
18
+ expect(getApprovalModeDescription(ApprovalMode.PLAN)).toBe('Plan mode (read-only planning)');
19
+ });
20
+ it('should return correct description for YOLO mode', () => {
21
+ expect(getApprovalModeDescription(ApprovalMode.YOLO)).toBe('YOLO mode (all tool calls auto-approved)');
22
+ });
23
+ });
24
+ describe('getPlanModeExitMessage', () => {
25
+ it('should return standard message when not manual', () => {
26
+ expect(getPlanModeExitMessage(ApprovalMode.DEFAULT, false)).toBe('Plan approved. Switching to Default mode (edits will require confirmation).');
27
+ });
28
+ it('should return manual message when manual is true', () => {
29
+ expect(getPlanModeExitMessage(ApprovalMode.AUTO_EDIT, true)).toBe('User has manually exited Plan Mode. Switching to Auto-Edit mode (edits will be applied automatically).');
30
+ });
31
+ it('should default to non-manual message', () => {
32
+ expect(getPlanModeExitMessage(ApprovalMode.YOLO)).toBe('Plan approved. Switching to YOLO mode (all tool calls auto-approved).');
33
+ });
34
+ });
35
+ });
36
+ //# sourceMappingURL=approvalModeUtils.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvalModeUtils.test.js","sourceRoot":"","sources":["../../../src/utils/approvalModeUtils.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAEhC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAC3D,gDAAgD,CACjD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAC7D,sDAAsD,CACvD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACxD,gCAAgC,CACjC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,0BAA0B,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACxD,0CAA0C,CAC3C,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAC9D,6EAA6E,CAC9E,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAC/D,wGAAwG,CACzG,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,MAAM,CAAC,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACpD,uEAAuE,CACxE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export interface CacheEntry<V> {
7
+ value: V;
8
+ timestamp: number;
9
+ ttl?: number;
10
+ }
11
+ export interface CacheOptions {
12
+ /**
13
+ * Default Time To Live in milliseconds.
14
+ */
15
+ defaultTtl?: number;
16
+ /**
17
+ * If true, and V is a Promise, the entry will be removed from the cache
18
+ * if the promise rejects.
19
+ */
20
+ deleteOnPromiseFailure?: boolean;
21
+ /**
22
+ * The underlying storage mechanism.
23
+ * Use 'weakmap' (default) for object keys to allow garbage collection.
24
+ * Use 'map' if you need to use strings as keys or need the clear() method.
25
+ */
26
+ storage?: 'map' | 'weakmap';
27
+ }
28
+ /**
29
+ * A generic caching service with TTL support.
30
+ */
31
+ export declare class CacheService<K extends object | string | undefined, V> {
32
+ private readonly storage;
33
+ private readonly defaultTtl?;
34
+ private readonly deleteOnPromiseFailure;
35
+ constructor(options?: CacheOptions);
36
+ /**
37
+ * Retrieves a value from the cache. Returns undefined if missing or expired.
38
+ */
39
+ get(key: K): V | undefined;
40
+ /**
41
+ * Stores a value in the cache.
42
+ */
43
+ set(key: K, value: V, ttl?: number): void;
44
+ /**
45
+ * Helper to retrieve a value or create it if missing/expired.
46
+ */
47
+ getOrCreate(key: K, creator: () => V, ttl?: number): V;
48
+ /**
49
+ * Removes an entry from the cache.
50
+ */
51
+ delete(key: K): void;
52
+ /**
53
+ * Clears all entries. Only supported if using Map storage.
54
+ */
55
+ clear(): void;
56
+ }
57
+ /**
58
+ * Factory function to create a new cache.
59
+ */
60
+ export declare function createCache<K extends string | undefined, V>(options: CacheOptions & {
61
+ storage: 'map';
62
+ }): CacheService<K, V>;
63
+ export declare function createCache<K extends object, V>(options?: CacheOptions): CacheService<K, V>;
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * A generic caching service with TTL support.
8
+ */
9
+ export class CacheService {
10
+ storage;
11
+ defaultTtl;
12
+ deleteOnPromiseFailure;
13
+ constructor(options = {}) {
14
+ // Default to map for safety unless weakmap is explicitly requested.
15
+ this.storage =
16
+ options.storage === 'weakmap'
17
+ ? new WeakMap()
18
+ : new Map();
19
+ this.defaultTtl = options.defaultTtl;
20
+ this.deleteOnPromiseFailure = options.deleteOnPromiseFailure ?? true;
21
+ }
22
+ /**
23
+ * Retrieves a value from the cache. Returns undefined if missing or expired.
24
+ */
25
+ get(key) {
26
+ // We have to cast to Map or WeakMap specifically to call get()
27
+ // but since they have the same signature for object keys, we can
28
+ // safely cast to 'any' internally for the dispatch.
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion
30
+ const entry = this.storage.get(key);
31
+ if (!entry) {
32
+ return undefined;
33
+ }
34
+ const ttl = entry.ttl ?? this.defaultTtl;
35
+ if (ttl !== undefined && Date.now() - entry.timestamp > ttl) {
36
+ this.delete(key);
37
+ return undefined;
38
+ }
39
+ return entry.value;
40
+ }
41
+ /**
42
+ * Stores a value in the cache.
43
+ */
44
+ set(key, value, ttl) {
45
+ const entry = {
46
+ value,
47
+ timestamp: Date.now(),
48
+ ttl,
49
+ };
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion
51
+ this.storage.set(key, entry);
52
+ if (this.deleteOnPromiseFailure && value instanceof Promise) {
53
+ value.catch(() => {
54
+ // Only delete if this exact entry is still in the cache
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion
56
+ if (this.storage.get(key) === entry) {
57
+ this.delete(key);
58
+ }
59
+ });
60
+ }
61
+ }
62
+ /**
63
+ * Helper to retrieve a value or create it if missing/expired.
64
+ */
65
+ getOrCreate(key, creator, ttl) {
66
+ let value = this.get(key);
67
+ if (value === undefined) {
68
+ value = creator();
69
+ this.set(key, value, ttl);
70
+ }
71
+ return value;
72
+ }
73
+ /**
74
+ * Removes an entry from the cache.
75
+ */
76
+ delete(key) {
77
+ if (this.storage instanceof Map) {
78
+ this.storage.delete(key);
79
+ }
80
+ else {
81
+ // WeakMap.delete returns a boolean, we can ignore it.
82
+ // Cast to any to bypass the WeakKey constraint since we've already
83
+ // confirmed the storage type.
84
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-type-assertion
85
+ this.storage.delete(key);
86
+ }
87
+ }
88
+ /**
89
+ * Clears all entries. Only supported if using Map storage.
90
+ */
91
+ clear() {
92
+ if (this.storage instanceof Map) {
93
+ this.storage.clear();
94
+ }
95
+ else {
96
+ throw new Error('clear() is not supported on WeakMap storage');
97
+ }
98
+ }
99
+ }
100
+ export function createCache(options = {}) {
101
+ return new CacheService(options);
102
+ }
103
+ //# sourceMappingURL=cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/utils/cache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,158 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
+ import { createCache } from './cache.js';
8
+ describe('CacheService', () => {
9
+ beforeEach(() => {
10
+ vi.useFakeTimers();
11
+ });
12
+ afterEach(() => {
13
+ vi.useRealTimers();
14
+ });
15
+ describe('Basic operations', () => {
16
+ it('should store and retrieve values by default (Map)', () => {
17
+ const cache = createCache({ storage: 'map' });
18
+ cache.set('key', 'value');
19
+ expect(cache.get('key')).toBe('value');
20
+ });
21
+ it('should return undefined for missing keys', () => {
22
+ const cache = createCache({ storage: 'map' });
23
+ expect(cache.get('missing')).toBeUndefined();
24
+ });
25
+ it('should delete entries', () => {
26
+ const cache = createCache({ storage: 'map' });
27
+ cache.set('key', 'value');
28
+ cache.delete('key');
29
+ expect(cache.get('key')).toBeUndefined();
30
+ });
31
+ it('should clear all entries (Map)', () => {
32
+ const cache = createCache({ storage: 'map' });
33
+ cache.set('k1', 'v1');
34
+ cache.set('k2', 'v2');
35
+ cache.clear();
36
+ expect(cache.get('k1')).toBeUndefined();
37
+ expect(cache.get('k2')).toBeUndefined();
38
+ });
39
+ it('should throw on clear() for WeakMap', () => {
40
+ const cache = createCache({ storage: 'weakmap' });
41
+ expect(() => cache.clear()).toThrow('clear() is not supported on WeakMap storage');
42
+ });
43
+ });
44
+ describe('TTL and Expiration', () => {
45
+ it('should expire entries based on defaultTtl', () => {
46
+ const cache = createCache({
47
+ storage: 'map',
48
+ defaultTtl: 1000,
49
+ });
50
+ cache.set('key', 'value');
51
+ vi.advanceTimersByTime(500);
52
+ expect(cache.get('key')).toBe('value');
53
+ vi.advanceTimersByTime(600); // Total 1100
54
+ expect(cache.get('key')).toBeUndefined();
55
+ });
56
+ it('should expire entries based on specific ttl override', () => {
57
+ const cache = createCache({
58
+ storage: 'map',
59
+ defaultTtl: 5000,
60
+ });
61
+ cache.set('key', 'value', 1000);
62
+ vi.advanceTimersByTime(1100);
63
+ expect(cache.get('key')).toBeUndefined();
64
+ });
65
+ it('should not expire if ttl is undefined', () => {
66
+ const cache = createCache({ storage: 'map' });
67
+ cache.set('key', 'value');
68
+ vi.advanceTimersByTime(100000);
69
+ expect(cache.get('key')).toBe('value');
70
+ });
71
+ });
72
+ describe('getOrCreate', () => {
73
+ it('should return existing value if not expired', () => {
74
+ const cache = createCache({ storage: 'map' });
75
+ cache.set('key', 'old');
76
+ const creator = vi.fn().mockReturnValue('new');
77
+ const result = cache.getOrCreate('key', creator);
78
+ expect(result).toBe('old');
79
+ expect(creator).not.toHaveBeenCalled();
80
+ });
81
+ it('should create and store value if missing', () => {
82
+ const cache = createCache({ storage: 'map' });
83
+ const creator = vi.fn().mockReturnValue('new');
84
+ const result = cache.getOrCreate('key', creator);
85
+ expect(result).toBe('new');
86
+ expect(creator).toHaveBeenCalled();
87
+ expect(cache.get('key')).toBe('new');
88
+ });
89
+ it('should recreate value if expired', () => {
90
+ const cache = createCache({
91
+ storage: 'map',
92
+ defaultTtl: 1000,
93
+ });
94
+ cache.set('key', 'old');
95
+ vi.advanceTimersByTime(1100);
96
+ const creator = vi.fn().mockReturnValue('new');
97
+ const result = cache.getOrCreate('key', creator);
98
+ expect(result).toBe('new');
99
+ expect(creator).toHaveBeenCalled();
100
+ });
101
+ });
102
+ describe('Promise Support', () => {
103
+ beforeEach(() => {
104
+ vi.useRealTimers();
105
+ });
106
+ it('should remove failed promises from cache by default', async () => {
107
+ const cache = createCache({ storage: 'map' });
108
+ const promise = Promise.reject(new Error('fail'));
109
+ // We need to catch it to avoid unhandled rejection in test
110
+ promise.catch(() => { });
111
+ cache.set('key', promise);
112
+ expect(cache.get('key')).toBe(promise);
113
+ // Wait for promise to settle
114
+ await new Promise((resolve) => setImmediate(resolve));
115
+ expect(cache.get('key')).toBeUndefined();
116
+ });
117
+ it('should NOT remove failed promises if deleteOnPromiseFailure is false', async () => {
118
+ const cache = createCache({
119
+ storage: 'map',
120
+ deleteOnPromiseFailure: false,
121
+ });
122
+ const promise = Promise.reject(new Error('fail'));
123
+ promise.catch(() => { });
124
+ cache.set('key', promise);
125
+ await new Promise((resolve) => setImmediate(resolve));
126
+ expect(cache.get('key')).toBe(promise);
127
+ });
128
+ it('should only delete the specific failed entry', async () => {
129
+ const cache = createCache({ storage: 'map' });
130
+ const failPromise = Promise.reject(new Error('fail'));
131
+ failPromise.catch(() => { });
132
+ cache.set('key', failPromise);
133
+ // Overwrite with a new success promise before failure settles
134
+ const successPromise = Promise.resolve('ok');
135
+ cache.set('key', successPromise);
136
+ await new Promise((resolve) => setImmediate(resolve));
137
+ // Should still be successPromise
138
+ expect(cache.get('key')).toBe(successPromise);
139
+ });
140
+ });
141
+ describe('WeakMap Storage', () => {
142
+ it('should work with object keys explicitly', () => {
143
+ const cache = createCache({ storage: 'weakmap' });
144
+ const key = { id: 1 };
145
+ cache.set(key, 'value');
146
+ expect(cache.get(key)).toBe('value');
147
+ });
148
+ it('should default to Map for objects', () => {
149
+ const cache = createCache();
150
+ const key = { id: 1 };
151
+ cache.set(key, 'value');
152
+ expect(cache.get(key)).toBe('value');
153
+ // clear() should NOT throw because default is Map
154
+ expect(() => cache.clear()).not.toThrow();
155
+ });
156
+ });
157
+ });
158
+ //# sourceMappingURL=cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.test.js","sourceRoot":"","sources":["../../../src/utils/cache.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Detects if the current OS is Windows 10.
8
+ * Windows 11 also reports as version 10.0, but with build numbers >= 22000.
9
+ */
10
+ export declare function isWindows10(): boolean;
11
+ /**
12
+ * Detects if the current terminal is a JetBrains-based IDE terminal.
13
+ */
14
+ export declare function isJetBrainsTerminal(): boolean;
15
+ /**
16
+ * Detects if the current terminal is the default Apple Terminal.app.
17
+ */
18
+ export declare function isAppleTerminal(): boolean;
19
+ /**
20
+ * Detects if the current terminal supports 256 colors (8-bit).
21
+ */
22
+ export declare function supports256Colors(): boolean;
23
+ /**
24
+ * Detects if the current terminal supports true color (24-bit).
25
+ */
26
+ export declare function supportsTrueColor(): boolean;
27
+ export declare enum WarningPriority {
28
+ Low = "low",
29
+ High = "high"
30
+ }
31
+ export interface StartupWarning {
32
+ id: string;
33
+ message: string;
34
+ priority: WarningPriority;
35
+ }
36
+ /**
37
+ * Returns a list of compatibility warnings based on the current environment.
38
+ */
39
+ export declare function getCompatibilityWarnings(options?: {
40
+ isAlternateBuffer?: boolean;
41
+ }): StartupWarning[];