@hibanacloud/core 0.3.15

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 (1076) hide show
  1. package/dist/.last_build +0 -0
  2. package/dist/index.d.ts +19 -0
  3. package/dist/index.js +20 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/__mocks__/fs/promises.d.ts +11 -0
  6. package/dist/src/__mocks__/fs/promises.js +17 -0
  7. package/dist/src/__mocks__/fs/promises.js.map +1 -0
  8. package/dist/src/code_assist/codeAssist.d.ts +12 -0
  9. package/dist/src/code_assist/codeAssist.js +31 -0
  10. package/dist/src/code_assist/codeAssist.js.map +1 -0
  11. package/dist/src/code_assist/converter.d.ts +74 -0
  12. package/dist/src/code_assist/converter.js +160 -0
  13. package/dist/src/code_assist/converter.js.map +1 -0
  14. package/dist/src/code_assist/converter.test.d.ts +6 -0
  15. package/dist/src/code_assist/converter.test.js +372 -0
  16. package/dist/src/code_assist/converter.test.js.map +1 -0
  17. package/dist/src/code_assist/oauth-credential-storage.d.ts +25 -0
  18. package/dist/src/code_assist/oauth-credential-storage.js +109 -0
  19. package/dist/src/code_assist/oauth-credential-storage.js.map +1 -0
  20. package/dist/src/code_assist/oauth-credential-storage.test.d.ts +6 -0
  21. package/dist/src/code_assist/oauth-credential-storage.test.js +136 -0
  22. package/dist/src/code_assist/oauth-credential-storage.test.js.map +1 -0
  23. package/dist/src/code_assist/oauth2.d.ts +22 -0
  24. package/dist/src/code_assist/oauth2.js +431 -0
  25. package/dist/src/code_assist/oauth2.js.map +1 -0
  26. package/dist/src/code_assist/oauth2.test.d.ts +6 -0
  27. package/dist/src/code_assist/oauth2.test.js +818 -0
  28. package/dist/src/code_assist/oauth2.test.js.map +1 -0
  29. package/dist/src/code_assist/server.d.ts +37 -0
  30. package/dist/src/code_assist/server.js +148 -0
  31. package/dist/src/code_assist/server.js.map +1 -0
  32. package/dist/src/code_assist/server.test.d.ts +6 -0
  33. package/dist/src/code_assist/server.test.js +159 -0
  34. package/dist/src/code_assist/server.test.js.map +1 -0
  35. package/dist/src/code_assist/setup.d.ts +20 -0
  36. package/dist/src/code_assist/setup.js +101 -0
  37. package/dist/src/code_assist/setup.js.map +1 -0
  38. package/dist/src/code_assist/setup.test.d.ts +6 -0
  39. package/dist/src/code_assist/setup.test.js +171 -0
  40. package/dist/src/code_assist/setup.test.js.map +1 -0
  41. package/dist/src/code_assist/types.d.ts +163 -0
  42. package/dist/src/code_assist/types.js +46 -0
  43. package/dist/src/code_assist/types.js.map +1 -0
  44. package/dist/src/config/config.d.ts +431 -0
  45. package/dist/src/config/config.js +869 -0
  46. package/dist/src/config/config.js.map +1 -0
  47. package/dist/src/config/config.test.d.ts +6 -0
  48. package/dist/src/config/config.test.js +896 -0
  49. package/dist/src/config/config.test.js.map +1 -0
  50. package/dist/src/config/constants.d.ts +11 -0
  51. package/dist/src/config/constants.js +16 -0
  52. package/dist/src/config/constants.js.map +1 -0
  53. package/dist/src/config/flashFallback.test.d.ts +6 -0
  54. package/dist/src/config/flashFallback.test.js +87 -0
  55. package/dist/src/config/flashFallback.test.js.map +1 -0
  56. package/dist/src/config/models.d.ts +28 -0
  57. package/dist/src/config/models.js +42 -0
  58. package/dist/src/config/models.js.map +1 -0
  59. package/dist/src/config/models.test.d.ts +6 -0
  60. package/dist/src/config/models.test.js +55 -0
  61. package/dist/src/config/models.test.js.map +1 -0
  62. package/dist/src/config/storage.d.ts +34 -0
  63. package/dist/src/config/storage.js +95 -0
  64. package/dist/src/config/storage.js.map +1 -0
  65. package/dist/src/config/storage.test.d.ts +6 -0
  66. package/dist/src/config/storage.test.js +43 -0
  67. package/dist/src/config/storage.test.js.map +1 -0
  68. package/dist/src/core/__tests__/openaiTimeoutHandling.test.d.ts +6 -0
  69. package/dist/src/core/__tests__/openaiTimeoutHandling.test.js +295 -0
  70. package/dist/src/core/__tests__/openaiTimeoutHandling.test.js.map +1 -0
  71. package/dist/src/core/__tests__/orphanedToolCallsTest.d.ts +64 -0
  72. package/dist/src/core/__tests__/orphanedToolCallsTest.js +122 -0
  73. package/dist/src/core/__tests__/orphanedToolCallsTest.js.map +1 -0
  74. package/dist/src/core/baseLlmClient.d.ts +49 -0
  75. package/dist/src/core/baseLlmClient.js +104 -0
  76. package/dist/src/core/baseLlmClient.js.map +1 -0
  77. package/dist/src/core/baseLlmClient.test.d.ts +6 -0
  78. package/dist/src/core/baseLlmClient.test.js +323 -0
  79. package/dist/src/core/baseLlmClient.test.js.map +1 -0
  80. package/dist/src/core/client.d.ts +56 -0
  81. package/dist/src/core/client.js +522 -0
  82. package/dist/src/core/client.js.map +1 -0
  83. package/dist/src/core/client.test.d.ts +6 -0
  84. package/dist/src/core/client.test.js +1829 -0
  85. package/dist/src/core/client.test.js.map +1 -0
  86. package/dist/src/core/contentGenerator.d.ts +52 -0
  87. package/dist/src/core/contentGenerator.js +106 -0
  88. package/dist/src/core/contentGenerator.js.map +1 -0
  89. package/dist/src/core/contentGenerator.test.d.ts +6 -0
  90. package/dist/src/core/contentGenerator.test.js +77 -0
  91. package/dist/src/core/contentGenerator.test.js.map +1 -0
  92. package/dist/src/core/coreToolScheduler.d.ts +134 -0
  93. package/dist/src/core/coreToolScheduler.js +774 -0
  94. package/dist/src/core/coreToolScheduler.js.map +1 -0
  95. package/dist/src/core/coreToolScheduler.test.d.ts +6 -0
  96. package/dist/src/core/coreToolScheduler.test.js +1802 -0
  97. package/dist/src/core/coreToolScheduler.test.js.map +1 -0
  98. package/dist/src/core/geminiChat.d.ts +124 -0
  99. package/dist/src/core/geminiChat.js +518 -0
  100. package/dist/src/core/geminiChat.js.map +1 -0
  101. package/dist/src/core/geminiChat.test.d.ts +6 -0
  102. package/dist/src/core/geminiChat.test.js +1149 -0
  103. package/dist/src/core/geminiChat.test.js.map +1 -0
  104. package/dist/src/core/geminiRequest.d.ts +13 -0
  105. package/dist/src/core/geminiRequest.js +11 -0
  106. package/dist/src/core/geminiRequest.js.map +1 -0
  107. package/dist/src/core/geminiRequest.test.d.ts +6 -0
  108. package/dist/src/core/geminiRequest.test.js +73 -0
  109. package/dist/src/core/geminiRequest.test.js.map +1 -0
  110. package/dist/src/core/logger.d.ts +67 -0
  111. package/dist/src/core/logger.js +361 -0
  112. package/dist/src/core/logger.js.map +1 -0
  113. package/dist/src/core/logger.test.d.ts +6 -0
  114. package/dist/src/core/logger.test.js +534 -0
  115. package/dist/src/core/logger.test.js.map +1 -0
  116. package/dist/src/core/loggingContentGenerator.d.ts +25 -0
  117. package/dist/src/core/loggingContentGenerator.js +94 -0
  118. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  119. package/dist/src/core/nonInteractiveToolExecutor.d.ts +16 -0
  120. package/dist/src/core/nonInteractiveToolExecutor.js +29 -0
  121. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -0
  122. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +6 -0
  123. package/dist/src/core/nonInteractiveToolExecutor.test.js +294 -0
  124. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -0
  125. package/dist/src/core/openaiContentGenerator/constants.d.ts +7 -0
  126. package/dist/src/core/openaiContentGenerator/constants.js +8 -0
  127. package/dist/src/core/openaiContentGenerator/constants.js.map +1 -0
  128. package/dist/src/core/openaiContentGenerator/converter.d.ts +108 -0
  129. package/dist/src/core/openaiContentGenerator/converter.js +851 -0
  130. package/dist/src/core/openaiContentGenerator/converter.js.map +1 -0
  131. package/dist/src/core/openaiContentGenerator/converter.test.d.ts +6 -0
  132. package/dist/src/core/openaiContentGenerator/converter.test.js +108 -0
  133. package/dist/src/core/openaiContentGenerator/converter.test.js.map +1 -0
  134. package/dist/src/core/openaiContentGenerator/errorHandler.d.ts +20 -0
  135. package/dist/src/core/openaiContentGenerator/errorHandler.js +82 -0
  136. package/dist/src/core/openaiContentGenerator/errorHandler.js.map +1 -0
  137. package/dist/src/core/openaiContentGenerator/errorHandler.test.d.ts +6 -0
  138. package/dist/src/core/openaiContentGenerator/errorHandler.test.js +287 -0
  139. package/dist/src/core/openaiContentGenerator/errorHandler.test.js.map +1 -0
  140. package/dist/src/core/openaiContentGenerator/index.d.ts +22 -0
  141. package/dist/src/core/openaiContentGenerator/index.js +49 -0
  142. package/dist/src/core/openaiContentGenerator/index.js.map +1 -0
  143. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.d.ts +21 -0
  144. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.js +105 -0
  145. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.js.map +1 -0
  146. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.test.d.ts +6 -0
  147. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.test.js +230 -0
  148. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.test.js.map +1 -0
  149. package/dist/src/core/openaiContentGenerator/pipeline.d.ts +66 -0
  150. package/dist/src/core/openaiContentGenerator/pipeline.js +265 -0
  151. package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -0
  152. package/dist/src/core/openaiContentGenerator/pipeline.test.d.ts +6 -0
  153. package/dist/src/core/openaiContentGenerator/pipeline.test.js +1028 -0
  154. package/dist/src/core/openaiContentGenerator/pipeline.test.js.map +1 -0
  155. package/dist/src/core/openaiContentGenerator/provider/README.md +61 -0
  156. package/dist/src/core/openaiContentGenerator/provider/anthropic.d.ts +14 -0
  157. package/dist/src/core/openaiContentGenerator/provider/anthropic.js +28 -0
  158. package/dist/src/core/openaiContentGenerator/provider/anthropic.js.map +1 -0
  159. package/dist/src/core/openaiContentGenerator/provider/anthropic.test.d.ts +1 -0
  160. package/dist/src/core/openaiContentGenerator/provider/anthropic.test.js +138 -0
  161. package/dist/src/core/openaiContentGenerator/provider/anthropic.test.js.map +1 -0
  162. package/dist/src/core/openaiContentGenerator/provider/dashscope.d.ts +63 -0
  163. package/dist/src/core/openaiContentGenerator/provider/dashscope.js +241 -0
  164. package/dist/src/core/openaiContentGenerator/provider/dashscope.js.map +1 -0
  165. package/dist/src/core/openaiContentGenerator/provider/dashscope.test.d.ts +6 -0
  166. package/dist/src/core/openaiContentGenerator/provider/dashscope.test.js +707 -0
  167. package/dist/src/core/openaiContentGenerator/provider/dashscope.test.js.map +1 -0
  168. package/dist/src/core/openaiContentGenerator/provider/deepseek.d.ts +14 -0
  169. package/dist/src/core/openaiContentGenerator/provider/deepseek.js +70 -0
  170. package/dist/src/core/openaiContentGenerator/provider/deepseek.js.map +1 -0
  171. package/dist/src/core/openaiContentGenerator/provider/deepseek.test.d.ts +6 -0
  172. package/dist/src/core/openaiContentGenerator/provider/deepseek.test.js +151 -0
  173. package/dist/src/core/openaiContentGenerator/provider/deepseek.test.js.map +1 -0
  174. package/dist/src/core/openaiContentGenerator/provider/default.d.ts +15 -0
  175. package/dist/src/core/openaiContentGenerator/provider/default.js +48 -0
  176. package/dist/src/core/openaiContentGenerator/provider/default.js.map +1 -0
  177. package/dist/src/core/openaiContentGenerator/provider/default.test.d.ts +6 -0
  178. package/dist/src/core/openaiContentGenerator/provider/default.test.js +176 -0
  179. package/dist/src/core/openaiContentGenerator/provider/default.test.js.map +1 -0
  180. package/dist/src/core/openaiContentGenerator/provider/index.d.ts +7 -0
  181. package/dist/src/core/openaiContentGenerator/provider/index.js +7 -0
  182. package/dist/src/core/openaiContentGenerator/provider/index.js.map +1 -0
  183. package/dist/src/core/openaiContentGenerator/provider/modelscope.d.ts +17 -0
  184. package/dist/src/core/openaiContentGenerator/provider/modelscope.js +25 -0
  185. package/dist/src/core/openaiContentGenerator/provider/modelscope.js.map +1 -0
  186. package/dist/src/core/openaiContentGenerator/provider/modelscope.test.d.ts +6 -0
  187. package/dist/src/core/openaiContentGenerator/provider/modelscope.test.js +66 -0
  188. package/dist/src/core/openaiContentGenerator/provider/modelscope.test.js.map +1 -0
  189. package/dist/src/core/openaiContentGenerator/provider/openrouter.d.ts +10 -0
  190. package/dist/src/core/openaiContentGenerator/provider/openrouter.js +33 -0
  191. package/dist/src/core/openaiContentGenerator/provider/openrouter.js.map +1 -0
  192. package/dist/src/core/openaiContentGenerator/provider/openrouter.test.d.ts +6 -0
  193. package/dist/src/core/openaiContentGenerator/provider/openrouter.test.js +175 -0
  194. package/dist/src/core/openaiContentGenerator/provider/openrouter.test.js.map +1 -0
  195. package/dist/src/core/openaiContentGenerator/provider/types.d.ts +23 -0
  196. package/dist/src/core/openaiContentGenerator/provider/types.js +2 -0
  197. package/dist/src/core/openaiContentGenerator/provider/types.js.map +1 -0
  198. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.d.ts +145 -0
  199. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.js +381 -0
  200. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.js.map +1 -0
  201. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.test.d.ts +6 -0
  202. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.test.js +537 -0
  203. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.test.js.map +1 -0
  204. package/dist/src/core/openaiContentGenerator/telemetryService.d.ts +36 -0
  205. package/dist/src/core/openaiContentGenerator/telemetryService.js +150 -0
  206. package/dist/src/core/openaiContentGenerator/telemetryService.js.map +1 -0
  207. package/dist/src/core/openaiContentGenerator/telemetryService.test.d.ts +6 -0
  208. package/dist/src/core/openaiContentGenerator/telemetryService.test.js +978 -0
  209. package/dist/src/core/openaiContentGenerator/telemetryService.test.js.map +1 -0
  210. package/dist/src/core/prompts.d.ts +73 -0
  211. package/dist/src/core/prompts.js +813 -0
  212. package/dist/src/core/prompts.js.map +1 -0
  213. package/dist/src/core/prompts.test.d.ts +6 -0
  214. package/dist/src/core/prompts.test.js +488 -0
  215. package/dist/src/core/prompts.test.js.map +1 -0
  216. package/dist/src/core/tokenLimits.d.ts +25 -0
  217. package/dist/src/core/tokenLimits.js +194 -0
  218. package/dist/src/core/tokenLimits.js.map +1 -0
  219. package/dist/src/core/tokenLimits.test.d.ts +1 -0
  220. package/dist/src/core/tokenLimits.test.js +304 -0
  221. package/dist/src/core/tokenLimits.test.js.map +1 -0
  222. package/dist/src/core/turn.d.ts +152 -0
  223. package/dist/src/core/turn.js +187 -0
  224. package/dist/src/core/turn.js.map +1 -0
  225. package/dist/src/core/turn.test.d.ts +6 -0
  226. package/dist/src/core/turn.test.js +628 -0
  227. package/dist/src/core/turn.test.js.map +1 -0
  228. package/dist/src/fallback/handler.d.ts +7 -0
  229. package/dist/src/fallback/handler.js +97 -0
  230. package/dist/src/fallback/handler.js.map +1 -0
  231. package/dist/src/fallback/handler.test.d.ts +6 -0
  232. package/dist/src/fallback/handler.test.js +130 -0
  233. package/dist/src/fallback/handler.test.js.map +1 -0
  234. package/dist/src/fallback/types.d.ts +14 -0
  235. package/dist/src/fallback/types.js +7 -0
  236. package/dist/src/fallback/types.js.map +1 -0
  237. package/dist/src/generated/git-commit.d.ts +7 -0
  238. package/dist/src/generated/git-commit.js +10 -0
  239. package/dist/src/generated/git-commit.js.map +1 -0
  240. package/dist/src/ide/constants.d.ts +9 -0
  241. package/dist/src/ide/constants.js +10 -0
  242. package/dist/src/ide/constants.js.map +1 -0
  243. package/dist/src/ide/detect-ide.d.ts +56 -0
  244. package/dist/src/ide/detect-ide.js +68 -0
  245. package/dist/src/ide/detect-ide.js.map +1 -0
  246. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  247. package/dist/src/ide/detect-ide.test.js +113 -0
  248. package/dist/src/ide/detect-ide.test.js.map +1 -0
  249. package/dist/src/ide/ide-client.d.ts +110 -0
  250. package/dist/src/ide/ide-client.js +651 -0
  251. package/dist/src/ide/ide-client.js.map +1 -0
  252. package/dist/src/ide/ide-client.test.d.ts +6 -0
  253. package/dist/src/ide/ide-client.test.js +390 -0
  254. package/dist/src/ide/ide-client.test.js.map +1 -0
  255. package/dist/src/ide/ide-installer.d.ts +14 -0
  256. package/dist/src/ide/ide-installer.js +112 -0
  257. package/dist/src/ide/ide-installer.js.map +1 -0
  258. package/dist/src/ide/ide-installer.test.d.ts +6 -0
  259. package/dist/src/ide/ide-installer.test.js +134 -0
  260. package/dist/src/ide/ide-installer.test.js.map +1 -0
  261. package/dist/src/ide/ideContext.d.ts +44 -0
  262. package/dist/src/ide/ideContext.js +101 -0
  263. package/dist/src/ide/ideContext.js.map +1 -0
  264. package/dist/src/ide/ideContext.test.d.ts +6 -0
  265. package/dist/src/ide/ideContext.test.js +393 -0
  266. package/dist/src/ide/ideContext.test.js.map +1 -0
  267. package/dist/src/ide/process-utils.d.ts +21 -0
  268. package/dist/src/ide/process-utils.js +171 -0
  269. package/dist/src/ide/process-utils.js.map +1 -0
  270. package/dist/src/ide/process-utils.test.d.ts +6 -0
  271. package/dist/src/ide/process-utils.test.js +158 -0
  272. package/dist/src/ide/process-utils.test.js.map +1 -0
  273. package/dist/src/ide/types.d.ts +486 -0
  274. package/dist/src/ide/types.js +138 -0
  275. package/dist/src/ide/types.js.map +1 -0
  276. package/dist/src/index.d.ts +99 -0
  277. package/dist/src/index.js +112 -0
  278. package/dist/src/index.js.map +1 -0
  279. package/dist/src/index.test.d.ts +6 -0
  280. package/dist/src/index.test.js +12 -0
  281. package/dist/src/index.test.js.map +1 -0
  282. package/dist/src/mcp/google-auth-provider.d.ts +23 -0
  283. package/dist/src/mcp/google-auth-provider.js +72 -0
  284. package/dist/src/mcp/google-auth-provider.js.map +1 -0
  285. package/dist/src/mcp/google-auth-provider.test.d.ts +6 -0
  286. package/dist/src/mcp/google-auth-provider.test.js +89 -0
  287. package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
  288. package/dist/src/mcp/oauth-provider.d.ts +150 -0
  289. package/dist/src/mcp/oauth-provider.js +613 -0
  290. package/dist/src/mcp/oauth-provider.js.map +1 -0
  291. package/dist/src/mcp/oauth-provider.test.d.ts +6 -0
  292. package/dist/src/mcp/oauth-provider.test.js +847 -0
  293. package/dist/src/mcp/oauth-provider.test.js.map +1 -0
  294. package/dist/src/mcp/oauth-token-storage.d.ts +65 -0
  295. package/dist/src/mcp/oauth-token-storage.js +180 -0
  296. package/dist/src/mcp/oauth-token-storage.js.map +1 -0
  297. package/dist/src/mcp/oauth-token-storage.test.d.ts +6 -0
  298. package/dist/src/mcp/oauth-token-storage.test.js +299 -0
  299. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -0
  300. package/dist/src/mcp/oauth-utils.d.ts +119 -0
  301. package/dist/src/mcp/oauth-utils.js +236 -0
  302. package/dist/src/mcp/oauth-utils.js.map +1 -0
  303. package/dist/src/mcp/oauth-utils.test.d.ts +6 -0
  304. package/dist/src/mcp/oauth-utils.test.js +199 -0
  305. package/dist/src/mcp/oauth-utils.test.js.map +1 -0
  306. package/dist/src/mcp/sa-impersonation-provider.d.ts +33 -0
  307. package/dist/src/mcp/sa-impersonation-provider.js +130 -0
  308. package/dist/src/mcp/sa-impersonation-provider.js.map +1 -0
  309. package/dist/src/mcp/sa-impersonation-provider.test.d.ts +6 -0
  310. package/dist/src/mcp/sa-impersonation-provider.test.js +117 -0
  311. package/dist/src/mcp/sa-impersonation-provider.test.js.map +1 -0
  312. package/dist/src/mcp/token-storage/base-token-storage.d.ts +19 -0
  313. package/dist/src/mcp/token-storage/base-token-storage.js +36 -0
  314. package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -0
  315. package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +6 -0
  316. package/dist/src/mcp/token-storage/base-token-storage.test.js +160 -0
  317. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -0
  318. package/dist/src/mcp/token-storage/file-token-storage.d.ts +24 -0
  319. package/dist/src/mcp/token-storage/file-token-storage.js +144 -0
  320. package/dist/src/mcp/token-storage/file-token-storage.js.map +1 -0
  321. package/dist/src/mcp/token-storage/file-token-storage.test.d.ts +6 -0
  322. package/dist/src/mcp/token-storage/file-token-storage.test.js +235 -0
  323. package/dist/src/mcp/token-storage/file-token-storage.test.js.map +1 -0
  324. package/dist/src/mcp/token-storage/hybrid-token-storage.d.ts +23 -0
  325. package/dist/src/mcp/token-storage/hybrid-token-storage.js +78 -0
  326. package/dist/src/mcp/token-storage/hybrid-token-storage.js.map +1 -0
  327. package/dist/src/mcp/token-storage/hybrid-token-storage.test.d.ts +6 -0
  328. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js +193 -0
  329. package/dist/src/mcp/token-storage/hybrid-token-storage.test.js.map +1 -0
  330. package/dist/src/mcp/token-storage/index.d.ts +11 -0
  331. package/dist/src/mcp/token-storage/index.js +12 -0
  332. package/dist/src/mcp/token-storage/index.js.map +1 -0
  333. package/dist/src/mcp/token-storage/keychain-token-storage.d.ts +31 -0
  334. package/dist/src/mcp/token-storage/keychain-token-storage.js +190 -0
  335. package/dist/src/mcp/token-storage/keychain-token-storage.js.map +1 -0
  336. package/dist/src/mcp/token-storage/keychain-token-storage.test.d.ts +6 -0
  337. package/dist/src/mcp/token-storage/keychain-token-storage.test.js +254 -0
  338. package/dist/src/mcp/token-storage/keychain-token-storage.test.js.map +1 -0
  339. package/dist/src/mcp/token-storage/types.d.ts +38 -0
  340. package/dist/src/mcp/token-storage/types.js +11 -0
  341. package/dist/src/mcp/token-storage/types.js.map +1 -0
  342. package/dist/src/mocks/msw.d.ts +6 -0
  343. package/dist/src/mocks/msw.js +8 -0
  344. package/dist/src/mocks/msw.js.map +1 -0
  345. package/dist/src/oauth/callbackServer.d.ts +15 -0
  346. package/dist/src/oauth/callbackServer.js +89 -0
  347. package/dist/src/oauth/callbackServer.js.map +1 -0
  348. package/dist/src/oauth/oauthClient.d.ts +57 -0
  349. package/dist/src/oauth/oauthClient.js +233 -0
  350. package/dist/src/oauth/oauthClient.js.map +1 -0
  351. package/dist/src/oauth/pkce.d.ts +25 -0
  352. package/dist/src/oauth/pkce.js +45 -0
  353. package/dist/src/oauth/pkce.js.map +1 -0
  354. package/dist/src/oauth/tokenManager.d.ts +37 -0
  355. package/dist/src/oauth/tokenManager.js +110 -0
  356. package/dist/src/oauth/tokenManager.js.map +1 -0
  357. package/dist/src/output/json-formatter.d.ts +11 -0
  358. package/dist/src/output/json-formatter.js +30 -0
  359. package/dist/src/output/json-formatter.js.map +1 -0
  360. package/dist/src/output/json-formatter.test.d.ts +6 -0
  361. package/dist/src/output/json-formatter.test.js +266 -0
  362. package/dist/src/output/json-formatter.test.js.map +1 -0
  363. package/dist/src/output/types.d.ts +25 -0
  364. package/dist/src/output/types.js +17 -0
  365. package/dist/src/output/types.js.map +1 -0
  366. package/dist/src/prompts/mcp-prompts.d.ts +8 -0
  367. package/dist/src/prompts/mcp-prompts.js +13 -0
  368. package/dist/src/prompts/mcp-prompts.js.map +1 -0
  369. package/dist/src/prompts/prompt-registry.d.ts +34 -0
  370. package/dist/src/prompts/prompt-registry.js +63 -0
  371. package/dist/src/prompts/prompt-registry.js.map +1 -0
  372. package/dist/src/qwen/qwenContentGenerator.d.ts +70 -0
  373. package/dist/src/qwen/qwenContentGenerator.js +180 -0
  374. package/dist/src/qwen/qwenContentGenerator.js.map +1 -0
  375. package/dist/src/qwen/qwenContentGenerator.test.d.ts +6 -0
  376. package/dist/src/qwen/qwenContentGenerator.test.js +1178 -0
  377. package/dist/src/qwen/qwenContentGenerator.test.js.map +1 -0
  378. package/dist/src/qwen/qwenOAuth2.d.ts +194 -0
  379. package/dist/src/qwen/qwenOAuth2.js +594 -0
  380. package/dist/src/qwen/qwenOAuth2.js.map +1 -0
  381. package/dist/src/qwen/qwenOAuth2.test.d.ts +6 -0
  382. package/dist/src/qwen/qwenOAuth2.test.js +1724 -0
  383. package/dist/src/qwen/qwenOAuth2.test.js.map +1 -0
  384. package/dist/src/qwen/sharedTokenManager.d.ts +196 -0
  385. package/dist/src/qwen/sharedTokenManager.js +647 -0
  386. package/dist/src/qwen/sharedTokenManager.js.map +1 -0
  387. package/dist/src/qwen/sharedTokenManager.test.d.ts +7 -0
  388. package/dist/src/qwen/sharedTokenManager.test.js +662 -0
  389. package/dist/src/qwen/sharedTokenManager.test.js.map +1 -0
  390. package/dist/src/services/chatCompressionService.d.ts +32 -0
  391. package/dist/src/services/chatCompressionService.js +180 -0
  392. package/dist/src/services/chatCompressionService.js.map +1 -0
  393. package/dist/src/services/chatCompressionService.test.d.ts +6 -0
  394. package/dist/src/services/chatCompressionService.test.js +292 -0
  395. package/dist/src/services/chatCompressionService.test.js.map +1 -0
  396. package/dist/src/services/chatRecordingService.d.ts +144 -0
  397. package/dist/src/services/chatRecordingService.js +330 -0
  398. package/dist/src/services/chatRecordingService.js.map +1 -0
  399. package/dist/src/services/chatRecordingService.test.d.ts +6 -0
  400. package/dist/src/services/chatRecordingService.test.js +332 -0
  401. package/dist/src/services/chatRecordingService.test.js.map +1 -0
  402. package/dist/src/services/fileDiscoveryService.d.ts +45 -0
  403. package/dist/src/services/fileDiscoveryService.js +104 -0
  404. package/dist/src/services/fileDiscoveryService.js.map +1 -0
  405. package/dist/src/services/fileDiscoveryService.test.d.ts +6 -0
  406. package/dist/src/services/fileDiscoveryService.test.js +143 -0
  407. package/dist/src/services/fileDiscoveryService.test.js.map +1 -0
  408. package/dist/src/services/fileSystemService.d.ts +40 -0
  409. package/dist/src/services/fileSystemService.js +29 -0
  410. package/dist/src/services/fileSystemService.js.map +1 -0
  411. package/dist/src/services/fileSystemService.test.d.ts +6 -0
  412. package/dist/src/services/fileSystemService.test.js +41 -0
  413. package/dist/src/services/fileSystemService.test.js.map +1 -0
  414. package/dist/src/services/gitService.d.ts +22 -0
  415. package/dist/src/services/gitService.js +98 -0
  416. package/dist/src/services/gitService.js.map +1 -0
  417. package/dist/src/services/gitService.test.d.ts +6 -0
  418. package/dist/src/services/gitService.test.js +187 -0
  419. package/dist/src/services/gitService.test.js.map +1 -0
  420. package/dist/src/services/loopDetectionService.d.ts +103 -0
  421. package/dist/src/services/loopDetectionService.js +379 -0
  422. package/dist/src/services/loopDetectionService.js.map +1 -0
  423. package/dist/src/services/loopDetectionService.test.d.ts +6 -0
  424. package/dist/src/services/loopDetectionService.test.js +588 -0
  425. package/dist/src/services/loopDetectionService.test.js.map +1 -0
  426. package/dist/src/services/shellExecutionService.d.ts +102 -0
  427. package/dist/src/services/shellExecutionService.js +522 -0
  428. package/dist/src/services/shellExecutionService.js.map +1 -0
  429. package/dist/src/services/shellExecutionService.test.d.ts +6 -0
  430. package/dist/src/services/shellExecutionService.test.js +655 -0
  431. package/dist/src/services/shellExecutionService.test.js.map +1 -0
  432. package/dist/src/subagents/builtin-agents.d.ts +35 -0
  433. package/dist/src/subagents/builtin-agents.js +85 -0
  434. package/dist/src/subagents/builtin-agents.js.map +1 -0
  435. package/dist/src/subagents/builtin-agents.test.d.ts +6 -0
  436. package/dist/src/subagents/builtin-agents.test.js +78 -0
  437. package/dist/src/subagents/builtin-agents.test.js.map +1 -0
  438. package/dist/src/subagents/index.d.ts +29 -0
  439. package/dist/src/subagents/index.js +15 -0
  440. package/dist/src/subagents/index.js.map +1 -0
  441. package/dist/src/subagents/subagent-events.d.ts +95 -0
  442. package/dist/src/subagents/subagent-events.js +31 -0
  443. package/dist/src/subagents/subagent-events.js.map +1 -0
  444. package/dist/src/subagents/subagent-hooks.d.ts +29 -0
  445. package/dist/src/subagents/subagent-hooks.js +7 -0
  446. package/dist/src/subagents/subagent-hooks.js.map +1 -0
  447. package/dist/src/subagents/subagent-manager.d.ts +170 -0
  448. package/dist/src/subagents/subagent-manager.js +596 -0
  449. package/dist/src/subagents/subagent-manager.js.map +1 -0
  450. package/dist/src/subagents/subagent-manager.test.d.ts +6 -0
  451. package/dist/src/subagents/subagent-manager.test.js +822 -0
  452. package/dist/src/subagents/subagent-manager.test.js.map +1 -0
  453. package/dist/src/subagents/subagent-statistics.d.ts +46 -0
  454. package/dist/src/subagents/subagent-statistics.js +193 -0
  455. package/dist/src/subagents/subagent-statistics.js.map +1 -0
  456. package/dist/src/subagents/subagent-statistics.test.d.ts +6 -0
  457. package/dist/src/subagents/subagent-statistics.test.js +231 -0
  458. package/dist/src/subagents/subagent-statistics.test.js.map +1 -0
  459. package/dist/src/subagents/subagent.d.ts +162 -0
  460. package/dist/src/subagents/subagent.js +677 -0
  461. package/dist/src/subagents/subagent.js.map +1 -0
  462. package/dist/src/subagents/subagent.test.d.ts +6 -0
  463. package/dist/src/subagents/subagent.test.js +477 -0
  464. package/dist/src/subagents/subagent.test.js.map +1 -0
  465. package/dist/src/subagents/types.d.ts +218 -0
  466. package/dist/src/subagents/types.js +58 -0
  467. package/dist/src/subagents/types.js.map +1 -0
  468. package/dist/src/subagents/types.test.d.ts +6 -0
  469. package/dist/src/subagents/types.test.js +31 -0
  470. package/dist/src/subagents/types.test.js.map +1 -0
  471. package/dist/src/subagents/validation.d.ts +63 -0
  472. package/dist/src/subagents/validation.js +293 -0
  473. package/dist/src/subagents/validation.js.map +1 -0
  474. package/dist/src/subagents/validation.test.d.ts +6 -0
  475. package/dist/src/subagents/validation.test.js +330 -0
  476. package/dist/src/subagents/validation.test.js.map +1 -0
  477. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +137 -0
  478. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +915 -0
  479. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -0
  480. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +18 -0
  481. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +594 -0
  482. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  483. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +115 -0
  484. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +291 -0
  485. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -0
  486. package/dist/src/telemetry/config.d.ts +31 -0
  487. package/dist/src/telemetry/config.js +76 -0
  488. package/dist/src/telemetry/config.js.map +1 -0
  489. package/dist/src/telemetry/config.test.d.ts +6 -0
  490. package/dist/src/telemetry/config.test.js +124 -0
  491. package/dist/src/telemetry/config.test.js.map +1 -0
  492. package/dist/src/telemetry/constants.d.ts +36 -0
  493. package/dist/src/telemetry/constants.js +38 -0
  494. package/dist/src/telemetry/constants.js.map +1 -0
  495. package/dist/src/telemetry/file-exporters.d.ts +29 -0
  496. package/dist/src/telemetry/file-exporters.js +62 -0
  497. package/dist/src/telemetry/file-exporters.js.map +1 -0
  498. package/dist/src/telemetry/index.d.ts +25 -0
  499. package/dist/src/telemetry/index.js +31 -0
  500. package/dist/src/telemetry/index.js.map +1 -0
  501. package/dist/src/telemetry/integration.test.circular.d.ts +6 -0
  502. package/dist/src/telemetry/integration.test.circular.js +95 -0
  503. package/dist/src/telemetry/integration.test.circular.js.map +1 -0
  504. package/dist/src/telemetry/loggers.d.ts +37 -0
  505. package/dist/src/telemetry/loggers.js +651 -0
  506. package/dist/src/telemetry/loggers.js.map +1 -0
  507. package/dist/src/telemetry/loggers.test.circular.d.ts +6 -0
  508. package/dist/src/telemetry/loggers.test.circular.js +107 -0
  509. package/dist/src/telemetry/loggers.test.circular.js.map +1 -0
  510. package/dist/src/telemetry/loggers.test.d.ts +6 -0
  511. package/dist/src/telemetry/loggers.test.js +978 -0
  512. package/dist/src/telemetry/loggers.test.js.map +1 -0
  513. package/dist/src/telemetry/metrics.d.ts +320 -0
  514. package/dist/src/telemetry/metrics.js +532 -0
  515. package/dist/src/telemetry/metrics.js.map +1 -0
  516. package/dist/src/telemetry/metrics.test.d.ts +6 -0
  517. package/dist/src/telemetry/metrics.test.js +744 -0
  518. package/dist/src/telemetry/metrics.test.js.map +1 -0
  519. package/dist/src/telemetry/qwen-logger/event-types.d.ts +88 -0
  520. package/dist/src/telemetry/qwen-logger/event-types.js +2 -0
  521. package/dist/src/telemetry/qwen-logger/event-types.js.map +1 -0
  522. package/dist/src/telemetry/qwen-logger/qwen-logger.d.ts +91 -0
  523. package/dist/src/telemetry/qwen-logger/qwen-logger.js +685 -0
  524. package/dist/src/telemetry/qwen-logger/qwen-logger.js.map +1 -0
  525. package/dist/src/telemetry/qwen-logger/qwen-logger.test.d.ts +6 -0
  526. package/dist/src/telemetry/qwen-logger/qwen-logger.test.js +317 -0
  527. package/dist/src/telemetry/qwen-logger/qwen-logger.test.js.map +1 -0
  528. package/dist/src/telemetry/sdk.d.ts +9 -0
  529. package/dist/src/telemetry/sdk.js +164 -0
  530. package/dist/src/telemetry/sdk.js.map +1 -0
  531. package/dist/src/telemetry/sdk.test.d.ts +6 -0
  532. package/dist/src/telemetry/sdk.test.js +116 -0
  533. package/dist/src/telemetry/sdk.test.js.map +1 -0
  534. package/dist/src/telemetry/telemetry-utils.d.ts +6 -0
  535. package/dist/src/telemetry/telemetry-utils.js +14 -0
  536. package/dist/src/telemetry/telemetry-utils.js.map +1 -0
  537. package/dist/src/telemetry/telemetry-utils.test.d.ts +6 -0
  538. package/dist/src/telemetry/telemetry-utils.test.js +40 -0
  539. package/dist/src/telemetry/telemetry-utils.test.js.map +1 -0
  540. package/dist/src/telemetry/telemetry.test.d.ts +6 -0
  541. package/dist/src/telemetry/telemetry.test.js +50 -0
  542. package/dist/src/telemetry/telemetry.test.js.map +1 -0
  543. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  544. package/dist/src/telemetry/tool-call-decision.js +29 -0
  545. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  546. package/dist/src/telemetry/types.d.ts +327 -0
  547. package/dist/src/telemetry/types.js +558 -0
  548. package/dist/src/telemetry/types.js.map +1 -0
  549. package/dist/src/telemetry/uiTelemetry.d.ts +75 -0
  550. package/dist/src/telemetry/uiTelemetry.js +152 -0
  551. package/dist/src/telemetry/uiTelemetry.js.map +1 -0
  552. package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
  553. package/dist/src/telemetry/uiTelemetry.test.js +625 -0
  554. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
  555. package/dist/src/test-utils/config.d.ts +17 -0
  556. package/dist/src/test-utils/config.js +32 -0
  557. package/dist/src/test-utils/config.js.map +1 -0
  558. package/dist/src/test-utils/index.d.ts +6 -0
  559. package/dist/src/test-utils/index.js +7 -0
  560. package/dist/src/test-utils/index.js.map +1 -0
  561. package/dist/src/test-utils/mock-tool.d.ts +66 -0
  562. package/dist/src/test-utils/mock-tool.js +121 -0
  563. package/dist/src/test-utils/mock-tool.js.map +1 -0
  564. package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
  565. package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
  566. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
  567. package/dist/src/tools/diffOptions.d.ts +9 -0
  568. package/dist/src/tools/diffOptions.js +46 -0
  569. package/dist/src/tools/diffOptions.js.map +1 -0
  570. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  571. package/dist/src/tools/diffOptions.test.js +155 -0
  572. package/dist/src/tools/diffOptions.test.js.map +1 -0
  573. package/dist/src/tools/edit.d.ts +55 -0
  574. package/dist/src/tools/edit.js +421 -0
  575. package/dist/src/tools/edit.js.map +1 -0
  576. package/dist/src/tools/edit.test.d.ts +6 -0
  577. package/dist/src/tools/edit.test.js +684 -0
  578. package/dist/src/tools/edit.test.js.map +1 -0
  579. package/dist/src/tools/exitPlanMode.d.ts +28 -0
  580. package/dist/src/tools/exitPlanMode.js +132 -0
  581. package/dist/src/tools/exitPlanMode.js.map +1 -0
  582. package/dist/src/tools/exitPlanMode.test.d.ts +6 -0
  583. package/dist/src/tools/exitPlanMode.test.js +178 -0
  584. package/dist/src/tools/exitPlanMode.test.js.map +1 -0
  585. package/dist/src/tools/glob.d.ts +44 -0
  586. package/dist/src/tools/glob.js +190 -0
  587. package/dist/src/tools/glob.js.map +1 -0
  588. package/dist/src/tools/glob.test.d.ts +6 -0
  589. package/dist/src/tools/glob.test.js +442 -0
  590. package/dist/src/tools/glob.test.js.map +1 -0
  591. package/dist/src/tools/grep.d.ts +44 -0
  592. package/dist/src/tools/grep.js +425 -0
  593. package/dist/src/tools/grep.js.map +1 -0
  594. package/dist/src/tools/grep.test.d.ts +6 -0
  595. package/dist/src/tools/grep.test.js +360 -0
  596. package/dist/src/tools/grep.test.js.map +1 -0
  597. package/dist/src/tools/ls.d.ts +68 -0
  598. package/dist/src/tools/ls.js +215 -0
  599. package/dist/src/tools/ls.js.map +1 -0
  600. package/dist/src/tools/ls.test.d.ts +6 -0
  601. package/dist/src/tools/ls.test.js +249 -0
  602. package/dist/src/tools/ls.test.js.map +1 -0
  603. package/dist/src/tools/mcp-client-manager.d.ts +40 -0
  604. package/dist/src/tools/mcp-client-manager.js +83 -0
  605. package/dist/src/tools/mcp-client-manager.js.map +1 -0
  606. package/dist/src/tools/mcp-client-manager.test.d.ts +6 -0
  607. package/dist/src/tools/mcp-client-manager.test.js +58 -0
  608. package/dist/src/tools/mcp-client-manager.test.js.map +1 -0
  609. package/dist/src/tools/mcp-client.d.ts +189 -0
  610. package/dist/src/tools/mcp-client.js +957 -0
  611. package/dist/src/tools/mcp-client.js.map +1 -0
  612. package/dist/src/tools/mcp-client.test.d.ts +6 -0
  613. package/dist/src/tools/mcp-client.test.js +309 -0
  614. package/dist/src/tools/mcp-client.test.js.map +1 -0
  615. package/dist/src/tools/mcp-tool.d.ts +24 -0
  616. package/dist/src/tools/mcp-tool.js +268 -0
  617. package/dist/src/tools/mcp-tool.js.map +1 -0
  618. package/dist/src/tools/mcp-tool.test.d.ts +6 -0
  619. package/dist/src/tools/mcp-tool.test.js +714 -0
  620. package/dist/src/tools/mcp-tool.test.js.map +1 -0
  621. package/dist/src/tools/memoryTool.d.ts +41 -0
  622. package/dist/src/tools/memoryTool.js +396 -0
  623. package/dist/src/tools/memoryTool.js.map +1 -0
  624. package/dist/src/tools/memoryTool.test.d.ts +6 -0
  625. package/dist/src/tools/memoryTool.test.js +419 -0
  626. package/dist/src/tools/memoryTool.test.js.map +1 -0
  627. package/dist/src/tools/modifiable-tool.d.ts +32 -0
  628. package/dist/src/tools/modifiable-tool.js +88 -0
  629. package/dist/src/tools/modifiable-tool.js.map +1 -0
  630. package/dist/src/tools/modifiable-tool.test.d.ts +6 -0
  631. package/dist/src/tools/modifiable-tool.test.js +193 -0
  632. package/dist/src/tools/modifiable-tool.test.js.map +1 -0
  633. package/dist/src/tools/read-file.d.ts +35 -0
  634. package/dist/src/tools/read-file.js +124 -0
  635. package/dist/src/tools/read-file.js.map +1 -0
  636. package/dist/src/tools/read-file.test.d.ts +6 -0
  637. package/dist/src/tools/read-file.test.js +339 -0
  638. package/dist/src/tools/read-file.test.js.map +1 -0
  639. package/dist/src/tools/read-many-files.d.ts +60 -0
  640. package/dist/src/tools/read-many-files.js +391 -0
  641. package/dist/src/tools/read-many-files.js.map +1 -0
  642. package/dist/src/tools/read-many-files.test.d.ts +6 -0
  643. package/dist/src/tools/read-many-files.test.js +566 -0
  644. package/dist/src/tools/read-many-files.test.js.map +1 -0
  645. package/dist/src/tools/ripGrep.d.ts +44 -0
  646. package/dist/src/tools/ripGrep.js +233 -0
  647. package/dist/src/tools/ripGrep.js.map +1 -0
  648. package/dist/src/tools/ripGrep.test.d.ts +6 -0
  649. package/dist/src/tools/ripGrep.test.js +529 -0
  650. package/dist/src/tools/ripGrep.test.js.map +1 -0
  651. package/dist/src/tools/shell.d.ts +33 -0
  652. package/dist/src/tools/shell.js +388 -0
  653. package/dist/src/tools/shell.js.map +1 -0
  654. package/dist/src/tools/shell.test.d.ts +6 -0
  655. package/dist/src/tools/shell.test.js +566 -0
  656. package/dist/src/tools/shell.test.js.map +1 -0
  657. package/dist/src/tools/smart-edit.d.ts +91 -0
  658. package/dist/src/tools/smart-edit.js +703 -0
  659. package/dist/src/tools/smart-edit.js.map +1 -0
  660. package/dist/src/tools/smart-edit.test.d.ts +6 -0
  661. package/dist/src/tools/smart-edit.test.js +542 -0
  662. package/dist/src/tools/smart-edit.test.js.map +1 -0
  663. package/dist/src/tools/task.d.ts +59 -0
  664. package/dist/src/tools/task.js +412 -0
  665. package/dist/src/tools/task.js.map +1 -0
  666. package/dist/src/tools/task.test.d.ts +6 -0
  667. package/dist/src/tools/task.test.js +369 -0
  668. package/dist/src/tools/task.test.js.map +1 -0
  669. package/dist/src/tools/todoWrite.d.ts +42 -0
  670. package/dist/src/tools/todoWrite.js +407 -0
  671. package/dist/src/tools/todoWrite.js.map +1 -0
  672. package/dist/src/tools/todoWrite.test.d.ts +6 -0
  673. package/dist/src/tools/todoWrite.test.js +234 -0
  674. package/dist/src/tools/todoWrite.test.js.map +1 -0
  675. package/dist/src/tools/tool-error.d.ts +45 -0
  676. package/dist/src/tools/tool-error.js +61 -0
  677. package/dist/src/tools/tool-error.js.map +1 -0
  678. package/dist/src/tools/tool-names.d.ts +56 -0
  679. package/dist/src/tools/tool-names.js +62 -0
  680. package/dist/src/tools/tool-names.js.map +1 -0
  681. package/dist/src/tools/tool-registry.d.ts +87 -0
  682. package/dist/src/tools/tool-registry.js +370 -0
  683. package/dist/src/tools/tool-registry.js.map +1 -0
  684. package/dist/src/tools/tool-registry.test.d.ts +6 -0
  685. package/dist/src/tools/tool-registry.test.js +332 -0
  686. package/dist/src/tools/tool-registry.test.js.map +1 -0
  687. package/dist/src/tools/tools.d.ts +327 -0
  688. package/dist/src/tools/tools.js +258 -0
  689. package/dist/src/tools/tools.js.map +1 -0
  690. package/dist/src/tools/tools.test.d.ts +6 -0
  691. package/dist/src/tools/tools.test.js +205 -0
  692. package/dist/src/tools/tools.test.js.map +1 -0
  693. package/dist/src/tools/web-fetch.d.ts +31 -0
  694. package/dist/src/tools/web-fetch.js +163 -0
  695. package/dist/src/tools/web-fetch.js.map +1 -0
  696. package/dist/src/tools/web-fetch.test.d.ts +6 -0
  697. package/dist/src/tools/web-fetch.test.js +133 -0
  698. package/dist/src/tools/web-fetch.test.js.map +1 -0
  699. package/dist/src/tools/web-search/base-provider.d.ts +31 -0
  700. package/dist/src/tools/web-search/base-provider.js +34 -0
  701. package/dist/src/tools/web-search/base-provider.js.map +1 -0
  702. package/dist/src/tools/web-search/index.d.ts +24 -0
  703. package/dist/src/tools/web-search/index.js +245 -0
  704. package/dist/src/tools/web-search/index.js.map +1 -0
  705. package/dist/src/tools/web-search/index.test.d.ts +6 -0
  706. package/dist/src/tools/web-search/index.test.js +237 -0
  707. package/dist/src/tools/web-search/index.test.js.map +1 -0
  708. package/dist/src/tools/web-search/providers/dashscope-provider.d.ts +23 -0
  709. package/dist/src/tools/web-search/providers/dashscope-provider.js +120 -0
  710. package/dist/src/tools/web-search/providers/dashscope-provider.js.map +1 -0
  711. package/dist/src/tools/web-search/providers/google-provider.d.ts +17 -0
  712. package/dist/src/tools/web-search/providers/google-provider.js +55 -0
  713. package/dist/src/tools/web-search/providers/google-provider.js.map +1 -0
  714. package/dist/src/tools/web-search/providers/tavily-provider.d.ts +17 -0
  715. package/dist/src/tools/web-search/providers/tavily-provider.js +54 -0
  716. package/dist/src/tools/web-search/providers/tavily-provider.js.map +1 -0
  717. package/dist/src/tools/web-search/types.d.ts +138 -0
  718. package/dist/src/tools/web-search/types.js +7 -0
  719. package/dist/src/tools/web-search/types.js.map +1 -0
  720. package/dist/src/tools/web-search/utils.d.ts +28 -0
  721. package/dist/src/tools/web-search/utils.js +35 -0
  722. package/dist/src/tools/web-search/utils.js.map +1 -0
  723. package/dist/src/tools/write-file.d.ts +52 -0
  724. package/dist/src/tools/write-file.js +293 -0
  725. package/dist/src/tools/write-file.js.map +1 -0
  726. package/dist/src/tools/write-file.test.d.ts +6 -0
  727. package/dist/src/tools/write-file.test.js +516 -0
  728. package/dist/src/tools/write-file.test.js.map +1 -0
  729. package/dist/src/utils/LruCache.d.ts +13 -0
  730. package/dist/src/utils/LruCache.js +38 -0
  731. package/dist/src/utils/LruCache.js.map +1 -0
  732. package/dist/src/utils/bfsFileSearch.d.ts +24 -0
  733. package/dist/src/utils/bfsFileSearch.js +95 -0
  734. package/dist/src/utils/bfsFileSearch.js.map +1 -0
  735. package/dist/src/utils/bfsFileSearch.test.d.ts +6 -0
  736. package/dist/src/utils/bfsFileSearch.test.js +163 -0
  737. package/dist/src/utils/bfsFileSearch.test.js.map +1 -0
  738. package/dist/src/utils/browser.d.ts +13 -0
  739. package/dist/src/utils/browser.js +50 -0
  740. package/dist/src/utils/browser.js.map +1 -0
  741. package/dist/src/utils/editHelper.d.ts +53 -0
  742. package/dist/src/utils/editHelper.js +359 -0
  743. package/dist/src/utils/editHelper.js.map +1 -0
  744. package/dist/src/utils/editHelper.test.d.ts +6 -0
  745. package/dist/src/utils/editHelper.test.js +93 -0
  746. package/dist/src/utils/editHelper.test.js.map +1 -0
  747. package/dist/src/utils/editor.d.ts +28 -0
  748. package/dist/src/utils/editor.js +177 -0
  749. package/dist/src/utils/editor.js.map +1 -0
  750. package/dist/src/utils/editor.test.d.ts +6 -0
  751. package/dist/src/utils/editor.test.js +437 -0
  752. package/dist/src/utils/editor.test.js.map +1 -0
  753. package/dist/src/utils/environmentContext.d.ts +22 -0
  754. package/dist/src/utils/environmentContext.js +108 -0
  755. package/dist/src/utils/environmentContext.js.map +1 -0
  756. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  757. package/dist/src/utils/environmentContext.test.js +219 -0
  758. package/dist/src/utils/environmentContext.test.js.map +1 -0
  759. package/dist/src/utils/errorParsing.d.ts +8 -0
  760. package/dist/src/utils/errorParsing.js +93 -0
  761. package/dist/src/utils/errorParsing.js.map +1 -0
  762. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  763. package/dist/src/utils/errorParsing.test.js +172 -0
  764. package/dist/src/utils/errorParsing.test.js.map +1 -0
  765. package/dist/src/utils/errorReporting.d.ts +14 -0
  766. package/dist/src/utils/errorReporting.js +88 -0
  767. package/dist/src/utils/errorReporting.js.map +1 -0
  768. package/dist/src/utils/errorReporting.test.d.ts +6 -0
  769. package/dist/src/utils/errorReporting.test.js +130 -0
  770. package/dist/src/utils/errorReporting.test.js.map +1 -0
  771. package/dist/src/utils/errors.d.ts +39 -0
  772. package/dist/src/utils/errors.js +96 -0
  773. package/dist/src/utils/errors.js.map +1 -0
  774. package/dist/src/utils/fetch.d.ts +11 -0
  775. package/dist/src/utils/fetch.js +51 -0
  776. package/dist/src/utils/fetch.js.map +1 -0
  777. package/dist/src/utils/fileUtils.d.ts +69 -0
  778. package/dist/src/utils/fileUtils.js +426 -0
  779. package/dist/src/utils/fileUtils.js.map +1 -0
  780. package/dist/src/utils/fileUtils.test.d.ts +6 -0
  781. package/dist/src/utils/fileUtils.test.js +685 -0
  782. package/dist/src/utils/fileUtils.test.js.map +1 -0
  783. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  784. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  785. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  786. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  787. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  788. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  789. package/dist/src/utils/filesearch/crawler.d.ts +15 -0
  790. package/dist/src/utils/filesearch/crawler.js +50 -0
  791. package/dist/src/utils/filesearch/crawler.js.map +1 -0
  792. package/dist/src/utils/filesearch/crawler.test.d.ts +6 -0
  793. package/dist/src/utils/filesearch/crawler.test.js +468 -0
  794. package/dist/src/utils/filesearch/crawler.test.js.map +1 -0
  795. package/dist/src/utils/filesearch/fileSearch.d.ts +38 -0
  796. package/dist/src/utils/filesearch/fileSearch.js +191 -0
  797. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  798. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  799. package/dist/src/utils/filesearch/fileSearch.test.js +642 -0
  800. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  801. package/dist/src/utils/filesearch/ignore.d.ts +42 -0
  802. package/dist/src/utils/filesearch/ignore.js +106 -0
  803. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  804. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  805. package/dist/src/utils/filesearch/ignore.test.js +144 -0
  806. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  807. package/dist/src/utils/filesearch/result-cache.d.ts +33 -0
  808. package/dist/src/utils/filesearch/result-cache.js +59 -0
  809. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  810. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  811. package/dist/src/utils/filesearch/result-cache.test.js +46 -0
  812. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  813. package/dist/src/utils/flashFallback.test.d.ts +6 -0
  814. package/dist/src/utils/flashFallback.test.js +122 -0
  815. package/dist/src/utils/flashFallback.test.js.map +1 -0
  816. package/dist/src/utils/formatters.d.ts +6 -0
  817. package/dist/src/utils/formatters.js +16 -0
  818. package/dist/src/utils/formatters.js.map +1 -0
  819. package/dist/src/utils/generateContentResponseUtilities.d.ts +13 -0
  820. package/dist/src/utils/generateContentResponseUtilities.js +80 -0
  821. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -0
  822. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +6 -0
  823. package/dist/src/utils/generateContentResponseUtilities.test.js +235 -0
  824. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -0
  825. package/dist/src/utils/getFolderStructure.d.ts +31 -0
  826. package/dist/src/utils/getFolderStructure.js +246 -0
  827. package/dist/src/utils/getFolderStructure.js.map +1 -0
  828. package/dist/src/utils/getFolderStructure.test.d.ts +6 -0
  829. package/dist/src/utils/getFolderStructure.test.js +282 -0
  830. package/dist/src/utils/getFolderStructure.test.js.map +1 -0
  831. package/dist/src/utils/getPty.d.ts +19 -0
  832. package/dist/src/utils/getPty.js +23 -0
  833. package/dist/src/utils/getPty.js.map +1 -0
  834. package/dist/src/utils/gitIgnoreParser.d.ts +16 -0
  835. package/dist/src/utils/gitIgnoreParser.js +152 -0
  836. package/dist/src/utils/gitIgnoreParser.js.map +1 -0
  837. package/dist/src/utils/gitIgnoreParser.test.d.ts +6 -0
  838. package/dist/src/utils/gitIgnoreParser.test.js +185 -0
  839. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -0
  840. package/dist/src/utils/gitUtils.d.ts +17 -0
  841. package/dist/src/utils/gitUtils.js +61 -0
  842. package/dist/src/utils/gitUtils.js.map +1 -0
  843. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  844. package/dist/src/utils/ignorePatterns.js +220 -0
  845. package/dist/src/utils/ignorePatterns.js.map +1 -0
  846. package/dist/src/utils/ignorePatterns.test.d.ts +6 -0
  847. package/dist/src/utils/ignorePatterns.test.js +250 -0
  848. package/dist/src/utils/ignorePatterns.test.js.map +1 -0
  849. package/dist/src/utils/installationManager.d.ts +16 -0
  850. package/dist/src/utils/installationManager.js +50 -0
  851. package/dist/src/utils/installationManager.js.map +1 -0
  852. package/dist/src/utils/installationManager.test.d.ts +6 -0
  853. package/dist/src/utils/installationManager.test.js +83 -0
  854. package/dist/src/utils/installationManager.test.js.map +1 -0
  855. package/dist/src/utils/language-detection.d.ts +6 -0
  856. package/dist/src/utils/language-detection.js +101 -0
  857. package/dist/src/utils/language-detection.js.map +1 -0
  858. package/dist/src/utils/llm-edit-fixer.d.ts +26 -0
  859. package/dist/src/utils/llm-edit-fixer.js +131 -0
  860. package/dist/src/utils/llm-edit-fixer.js.map +1 -0
  861. package/dist/src/utils/llm-edit-fixer.test.d.ts +6 -0
  862. package/dist/src/utils/llm-edit-fixer.test.js +186 -0
  863. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -0
  864. package/dist/src/utils/memoryDiscovery.d.ts +16 -0
  865. package/dist/src/utils/memoryDiscovery.js +272 -0
  866. package/dist/src/utils/memoryDiscovery.js.map +1 -0
  867. package/dist/src/utils/memoryDiscovery.test.d.ts +6 -0
  868. package/dist/src/utils/memoryDiscovery.test.js +244 -0
  869. package/dist/src/utils/memoryDiscovery.test.js.map +1 -0
  870. package/dist/src/utils/memoryImportProcessor.d.ts +42 -0
  871. package/dist/src/utils/memoryImportProcessor.js +284 -0
  872. package/dist/src/utils/memoryImportProcessor.js.map +1 -0
  873. package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
  874. package/dist/src/utils/memoryImportProcessor.test.js +587 -0
  875. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
  876. package/dist/src/utils/messageInspectors.d.ts +8 -0
  877. package/dist/src/utils/messageInspectors.js +16 -0
  878. package/dist/src/utils/messageInspectors.js.map +1 -0
  879. package/dist/src/utils/nextSpeakerChecker.d.ts +12 -0
  880. package/dist/src/utils/nextSpeakerChecker.js +97 -0
  881. package/dist/src/utils/nextSpeakerChecker.js.map +1 -0
  882. package/dist/src/utils/nextSpeakerChecker.test.d.ts +6 -0
  883. package/dist/src/utils/nextSpeakerChecker.test.js +181 -0
  884. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -0
  885. package/dist/src/utils/openaiLogger.d.ts +42 -0
  886. package/dist/src/utils/openaiLogger.js +138 -0
  887. package/dist/src/utils/openaiLogger.js.map +1 -0
  888. package/dist/src/utils/openaiLogger.test.d.ts +6 -0
  889. package/dist/src/utils/openaiLogger.test.js +304 -0
  890. package/dist/src/utils/openaiLogger.test.js.map +1 -0
  891. package/dist/src/utils/partUtils.d.ts +35 -0
  892. package/dist/src/utils/partUtils.js +133 -0
  893. package/dist/src/utils/partUtils.js.map +1 -0
  894. package/dist/src/utils/partUtils.test.d.ts +6 -0
  895. package/dist/src/utils/partUtils.test.js +241 -0
  896. package/dist/src/utils/partUtils.test.js.map +1 -0
  897. package/dist/src/utils/pathReader.d.ts +17 -0
  898. package/dist/src/utils/pathReader.js +92 -0
  899. package/dist/src/utils/pathReader.js.map +1 -0
  900. package/dist/src/utils/pathReader.test.d.ts +6 -0
  901. package/dist/src/utils/pathReader.test.js +365 -0
  902. package/dist/src/utils/pathReader.test.js.map +1 -0
  903. package/dist/src/utils/paths.d.ts +93 -0
  904. package/dist/src/utils/paths.js +229 -0
  905. package/dist/src/utils/paths.js.map +1 -0
  906. package/dist/src/utils/paths.test.d.ts +6 -0
  907. package/dist/src/utils/paths.test.js +438 -0
  908. package/dist/src/utils/paths.test.js.map +1 -0
  909. package/dist/src/utils/projectSummary.d.ts +22 -0
  910. package/dist/src/utils/projectSummary.js +86 -0
  911. package/dist/src/utils/projectSummary.js.map +1 -0
  912. package/dist/src/utils/promptIdContext.d.ts +7 -0
  913. package/dist/src/utils/promptIdContext.js +8 -0
  914. package/dist/src/utils/promptIdContext.js.map +1 -0
  915. package/dist/src/utils/quotaErrorDetection.d.ts +20 -0
  916. package/dist/src/utils/quotaErrorDetection.js +114 -0
  917. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  918. package/dist/src/utils/quotaErrorDetection.test.d.ts +6 -0
  919. package/dist/src/utils/quotaErrorDetection.test.js +153 -0
  920. package/dist/src/utils/quotaErrorDetection.test.js.map +1 -0
  921. package/dist/src/utils/qwenIgnoreParser.d.ts +18 -0
  922. package/dist/src/utils/qwenIgnoreParser.js +69 -0
  923. package/dist/src/utils/qwenIgnoreParser.js.map +1 -0
  924. package/dist/src/utils/qwenIgnoreParser.test.d.ts +6 -0
  925. package/dist/src/utils/qwenIgnoreParser.test.js +50 -0
  926. package/dist/src/utils/qwenIgnoreParser.test.js.map +1 -0
  927. package/dist/src/utils/request-tokenizer/imageTokenizer.d.ts +112 -0
  928. package/dist/src/utils/request-tokenizer/imageTokenizer.js +401 -0
  929. package/dist/src/utils/request-tokenizer/imageTokenizer.js.map +1 -0
  930. package/dist/src/utils/request-tokenizer/imageTokenizer.test.d.ts +6 -0
  931. package/dist/src/utils/request-tokenizer/imageTokenizer.test.js +114 -0
  932. package/dist/src/utils/request-tokenizer/imageTokenizer.test.js.map +1 -0
  933. package/dist/src/utils/request-tokenizer/index.d.ts +18 -0
  934. package/dist/src/utils/request-tokenizer/index.js +30 -0
  935. package/dist/src/utils/request-tokenizer/index.js.map +1 -0
  936. package/dist/src/utils/request-tokenizer/requestTokenizer.d.ts +56 -0
  937. package/dist/src/utils/request-tokenizer/requestTokenizer.js +263 -0
  938. package/dist/src/utils/request-tokenizer/requestTokenizer.js.map +1 -0
  939. package/dist/src/utils/request-tokenizer/requestTokenizer.test.d.ts +6 -0
  940. package/dist/src/utils/request-tokenizer/requestTokenizer.test.js +245 -0
  941. package/dist/src/utils/request-tokenizer/requestTokenizer.test.js.map +1 -0
  942. package/dist/src/utils/request-tokenizer/supportedImageFormats.d.ts +30 -0
  943. package/dist/src/utils/request-tokenizer/supportedImageFormats.js +41 -0
  944. package/dist/src/utils/request-tokenizer/supportedImageFormats.js.map +1 -0
  945. package/dist/src/utils/request-tokenizer/textTokenizer.d.ts +29 -0
  946. package/dist/src/utils/request-tokenizer/textTokenizer.js +88 -0
  947. package/dist/src/utils/request-tokenizer/textTokenizer.js.map +1 -0
  948. package/dist/src/utils/request-tokenizer/textTokenizer.test.d.ts +6 -0
  949. package/dist/src/utils/request-tokenizer/textTokenizer.test.js +253 -0
  950. package/dist/src/utils/request-tokenizer/textTokenizer.test.js.map +1 -0
  951. package/dist/src/utils/request-tokenizer/types.d.ts +55 -0
  952. package/dist/src/utils/request-tokenizer/types.js +7 -0
  953. package/dist/src/utils/request-tokenizer/types.js.map +1 -0
  954. package/dist/src/utils/retry.d.ts +32 -0
  955. package/dist/src/utils/retry.js +303 -0
  956. package/dist/src/utils/retry.js.map +1 -0
  957. package/dist/src/utils/retry.test.d.ts +6 -0
  958. package/dist/src/utils/retry.test.js +474 -0
  959. package/dist/src/utils/retry.test.js.map +1 -0
  960. package/dist/src/utils/ripgrepUtils.d.ts +61 -0
  961. package/dist/src/utils/ripgrepUtils.js +230 -0
  962. package/dist/src/utils/ripgrepUtils.js.map +1 -0
  963. package/dist/src/utils/ripgrepUtils.test.d.ts +6 -0
  964. package/dist/src/utils/ripgrepUtils.test.js +101 -0
  965. package/dist/src/utils/ripgrepUtils.test.js.map +1 -0
  966. package/dist/src/utils/safeJsonParse.d.ts +15 -0
  967. package/dist/src/utils/safeJsonParse.js +41 -0
  968. package/dist/src/utils/safeJsonParse.js.map +1 -0
  969. package/dist/src/utils/safeJsonParse.test.d.ts +6 -0
  970. package/dist/src/utils/safeJsonParse.test.js +112 -0
  971. package/dist/src/utils/safeJsonParse.test.js.map +1 -0
  972. package/dist/src/utils/safeJsonStringify.d.ts +13 -0
  973. package/dist/src/utils/safeJsonStringify.js +25 -0
  974. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  975. package/dist/src/utils/safeJsonStringify.test.d.ts +6 -0
  976. package/dist/src/utils/safeJsonStringify.test.js +61 -0
  977. package/dist/src/utils/safeJsonStringify.test.js.map +1 -0
  978. package/dist/src/utils/schemaValidator.d.ts +15 -0
  979. package/dist/src/utils/schemaValidator.js +67 -0
  980. package/dist/src/utils/schemaValidator.js.map +1 -0
  981. package/dist/src/utils/schemaValidator.test.d.ts +6 -0
  982. package/dist/src/utils/schemaValidator.test.js +113 -0
  983. package/dist/src/utils/schemaValidator.test.js.map +1 -0
  984. package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
  985. package/dist/src/utils/secure-browser-launcher.js +165 -0
  986. package/dist/src/utils/secure-browser-launcher.js.map +1 -0
  987. package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
  988. package/dist/src/utils/secure-browser-launcher.test.js +149 -0
  989. package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
  990. package/dist/src/utils/session.d.ts +6 -0
  991. package/dist/src/utils/session.js +8 -0
  992. package/dist/src/utils/session.js.map +1 -0
  993. package/dist/src/utils/shell-utils.d.ts +152 -0
  994. package/dist/src/utils/shell-utils.js +467 -0
  995. package/dist/src/utils/shell-utils.js.map +1 -0
  996. package/dist/src/utils/shell-utils.test.d.ts +6 -0
  997. package/dist/src/utils/shell-utils.test.js +351 -0
  998. package/dist/src/utils/shell-utils.test.js.map +1 -0
  999. package/dist/src/utils/shellReadOnlyChecker.d.ts +6 -0
  1000. package/dist/src/utils/shellReadOnlyChecker.js +247 -0
  1001. package/dist/src/utils/shellReadOnlyChecker.js.map +1 -0
  1002. package/dist/src/utils/shellReadOnlyChecker.test.d.ts +6 -0
  1003. package/dist/src/utils/shellReadOnlyChecker.test.js +47 -0
  1004. package/dist/src/utils/shellReadOnlyChecker.test.js.map +1 -0
  1005. package/dist/src/utils/subagentGenerator.d.ts +20 -0
  1006. package/dist/src/utils/subagentGenerator.js +120 -0
  1007. package/dist/src/utils/subagentGenerator.js.map +1 -0
  1008. package/dist/src/utils/subagentGenerator.test.d.ts +6 -0
  1009. package/dist/src/utils/subagentGenerator.test.js +135 -0
  1010. package/dist/src/utils/subagentGenerator.test.js.map +1 -0
  1011. package/dist/src/utils/summarizer.d.ts +25 -0
  1012. package/dist/src/utils/summarizer.js +51 -0
  1013. package/dist/src/utils/summarizer.js.map +1 -0
  1014. package/dist/src/utils/summarizer.test.d.ts +6 -0
  1015. package/dist/src/utils/summarizer.test.js +131 -0
  1016. package/dist/src/utils/summarizer.test.js.map +1 -0
  1017. package/dist/src/utils/systemEncoding.d.ts +40 -0
  1018. package/dist/src/utils/systemEncoding.js +149 -0
  1019. package/dist/src/utils/systemEncoding.js.map +1 -0
  1020. package/dist/src/utils/systemEncoding.test.d.ts +6 -0
  1021. package/dist/src/utils/systemEncoding.test.js +368 -0
  1022. package/dist/src/utils/systemEncoding.test.js.map +1 -0
  1023. package/dist/src/utils/terminalSerializer.d.ts +25 -0
  1024. package/dist/src/utils/terminalSerializer.js +432 -0
  1025. package/dist/src/utils/terminalSerializer.js.map +1 -0
  1026. package/dist/src/utils/terminalSerializer.test.d.ts +6 -0
  1027. package/dist/src/utils/terminalSerializer.test.js +176 -0
  1028. package/dist/src/utils/terminalSerializer.test.js.map +1 -0
  1029. package/dist/src/utils/testUtils.d.ts +29 -0
  1030. package/dist/src/utils/testUtils.js +70 -0
  1031. package/dist/src/utils/testUtils.js.map +1 -0
  1032. package/dist/src/utils/textUtils.d.ts +18 -0
  1033. package/dist/src/utils/textUtils.js +42 -0
  1034. package/dist/src/utils/textUtils.js.map +1 -0
  1035. package/dist/src/utils/textUtils.test.d.ts +6 -0
  1036. package/dist/src/utils/textUtils.test.js +59 -0
  1037. package/dist/src/utils/textUtils.test.js.map +1 -0
  1038. package/dist/src/utils/thoughtUtils.d.ts +21 -0
  1039. package/dist/src/utils/thoughtUtils.js +39 -0
  1040. package/dist/src/utils/thoughtUtils.js.map +1 -0
  1041. package/dist/src/utils/thoughtUtils.test.d.ts +6 -0
  1042. package/dist/src/utils/thoughtUtils.test.js +78 -0
  1043. package/dist/src/utils/thoughtUtils.test.js.map +1 -0
  1044. package/dist/src/utils/tool-utils.d.ts +22 -0
  1045. package/dist/src/utils/tool-utils.js +121 -0
  1046. package/dist/src/utils/tool-utils.js.map +1 -0
  1047. package/dist/src/utils/tool-utils.test.d.ts +6 -0
  1048. package/dist/src/utils/tool-utils.test.js +100 -0
  1049. package/dist/src/utils/tool-utils.test.js.map +1 -0
  1050. package/dist/src/utils/userAccountManager.d.ts +20 -0
  1051. package/dist/src/utils/userAccountManager.js +114 -0
  1052. package/dist/src/utils/userAccountManager.js.map +1 -0
  1053. package/dist/src/utils/userAccountManager.test.d.ts +6 -0
  1054. package/dist/src/utils/userAccountManager.test.js +223 -0
  1055. package/dist/src/utils/userAccountManager.test.js.map +1 -0
  1056. package/dist/src/utils/workspaceContext.d.ts +66 -0
  1057. package/dist/src/utils/workspaceContext.js +171 -0
  1058. package/dist/src/utils/workspaceContext.js.map +1 -0
  1059. package/dist/src/utils/workspaceContext.test.d.ts +6 -0
  1060. package/dist/src/utils/workspaceContext.test.js +318 -0
  1061. package/dist/src/utils/workspaceContext.test.js.map +1 -0
  1062. package/dist/src/utils/yaml-parser.d.ts +29 -0
  1063. package/dist/src/utils/yaml-parser.js +172 -0
  1064. package/dist/src/utils/yaml-parser.js.map +1 -0
  1065. package/dist/src/utils/yaml-parser.test.d.ts +6 -0
  1066. package/dist/src/utils/yaml-parser.test.js +170 -0
  1067. package/dist/src/utils/yaml-parser.test.js.map +1 -0
  1068. package/dist/tsconfig.tsbuildinfo +1 -0
  1069. package/package.json +106 -0
  1070. package/scripts/postinstall.js +100 -0
  1071. package/vendor/ripgrep/COPYING +3 -0
  1072. package/vendor/ripgrep/arm64-darwin/rg +0 -0
  1073. package/vendor/ripgrep/arm64-linux/rg +0 -0
  1074. package/vendor/ripgrep/x64-darwin/rg +0 -0
  1075. package/vendor/ripgrep/x64-linux/rg +0 -0
  1076. package/vendor/ripgrep/x64-win32/rg.exe +0 -0
@@ -0,0 +1,647 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Qwen
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import path from 'node:path';
7
+ import { promises as fs, unlinkSync } from 'node:fs';
8
+ import * as os from 'os';
9
+ import { randomUUID } from 'node:crypto';
10
+ import { isErrorResponse, CredentialsClearRequiredError, } from './qwenOAuth2.js';
11
+ // File System Configuration
12
+ const QWEN_DIR = '.qwen';
13
+ const QWEN_CREDENTIAL_FILENAME = 'oauth_creds.json';
14
+ const QWEN_LOCK_FILENAME = 'oauth_creds.lock';
15
+ // Token and Cache Configuration
16
+ const TOKEN_REFRESH_BUFFER_MS = 30 * 1000; // 30 seconds
17
+ const LOCK_TIMEOUT_MS = 10000; // 10 seconds lock timeout
18
+ const CACHE_CHECK_INTERVAL_MS = 5000; // 5 seconds cache check interval (increased from 1 second)
19
+ const DEFAULT_LOCK_CONFIG = {
20
+ maxAttempts: 20, // Reduced from 50 to prevent excessive waiting
21
+ attemptInterval: 100, // Reduced from 200ms to check more frequently
22
+ maxInterval: 2000, // Maximum interval for exponential backoff
23
+ };
24
+ /**
25
+ * Token manager error types for better error classification
26
+ */
27
+ export var TokenError;
28
+ (function (TokenError) {
29
+ TokenError["REFRESH_FAILED"] = "REFRESH_FAILED";
30
+ TokenError["NO_REFRESH_TOKEN"] = "NO_REFRESH_TOKEN";
31
+ TokenError["LOCK_TIMEOUT"] = "LOCK_TIMEOUT";
32
+ TokenError["FILE_ACCESS_ERROR"] = "FILE_ACCESS_ERROR";
33
+ TokenError["NETWORK_ERROR"] = "NETWORK_ERROR";
34
+ })(TokenError || (TokenError = {}));
35
+ /**
36
+ * Custom error class for token manager operations
37
+ */
38
+ export class TokenManagerError extends Error {
39
+ type;
40
+ originalError;
41
+ constructor(type, message, originalError) {
42
+ super(message);
43
+ this.type = type;
44
+ this.originalError = originalError;
45
+ this.name = 'TokenManagerError';
46
+ }
47
+ }
48
+ /**
49
+ * Validates that the given data is a valid QwenCredentials object
50
+ *
51
+ * @param data - The data to validate
52
+ * @returns The validated credentials object
53
+ * @throws Error if the data is invalid
54
+ */
55
+ function validateCredentials(data) {
56
+ if (!data || typeof data !== 'object') {
57
+ throw new Error('Invalid credentials format');
58
+ }
59
+ const creds = data;
60
+ const requiredFields = [
61
+ 'access_token',
62
+ 'refresh_token',
63
+ 'token_type',
64
+ ];
65
+ // Check required string fields
66
+ for (const field of requiredFields) {
67
+ if (!creds[field] || typeof creds[field] !== 'string') {
68
+ throw new Error(`Invalid credentials: missing ${field}`);
69
+ }
70
+ }
71
+ // Check expiry_date
72
+ if (!creds.expiry_date || typeof creds.expiry_date !== 'number') {
73
+ throw new Error('Invalid credentials: missing expiry_date');
74
+ }
75
+ return creds;
76
+ }
77
+ /**
78
+ * Manages OAuth tokens across multiple processes using file-based caching and locking
79
+ */
80
+ export class SharedTokenManager {
81
+ static instance = null;
82
+ /**
83
+ * In-memory cache for credentials and file state tracking
84
+ */
85
+ memoryCache = {
86
+ credentials: null,
87
+ fileModTime: 0,
88
+ lastCheck: 0,
89
+ };
90
+ /**
91
+ * Promise tracking any ongoing token refresh operation
92
+ */
93
+ refreshPromise = null;
94
+ /**
95
+ * Promise tracking any ongoing file check operation to prevent concurrent checks
96
+ */
97
+ checkPromise = null;
98
+ /**
99
+ * Whether cleanup handlers have been registered
100
+ */
101
+ cleanupHandlersRegistered = false;
102
+ /**
103
+ * Reference to cleanup functions for proper removal
104
+ */
105
+ cleanupFunction = null;
106
+ /**
107
+ * Lock configuration for testing purposes
108
+ */
109
+ lockConfig = DEFAULT_LOCK_CONFIG;
110
+ /**
111
+ * Private constructor for singleton pattern
112
+ */
113
+ constructor() {
114
+ this.registerCleanupHandlers();
115
+ }
116
+ /**
117
+ * Get the singleton instance
118
+ * @returns The shared token manager instance
119
+ */
120
+ static getInstance() {
121
+ if (!SharedTokenManager.instance) {
122
+ SharedTokenManager.instance = new SharedTokenManager();
123
+ }
124
+ return SharedTokenManager.instance;
125
+ }
126
+ /**
127
+ * Set up handlers to clean up lock files when the process exits
128
+ */
129
+ registerCleanupHandlers() {
130
+ if (this.cleanupHandlersRegistered) {
131
+ return;
132
+ }
133
+ this.cleanupFunction = () => {
134
+ try {
135
+ const lockPath = this.getLockFilePath();
136
+ // Use synchronous unlink for process exit handlers
137
+ unlinkSync(lockPath);
138
+ }
139
+ catch (_error) {
140
+ // Ignore cleanup errors - lock file might not exist or already be cleaned up
141
+ }
142
+ };
143
+ process.on('exit', this.cleanupFunction);
144
+ process.on('SIGINT', this.cleanupFunction);
145
+ process.on('SIGTERM', this.cleanupFunction);
146
+ process.on('uncaughtException', this.cleanupFunction);
147
+ process.on('unhandledRejection', this.cleanupFunction);
148
+ this.cleanupHandlersRegistered = true;
149
+ }
150
+ /**
151
+ * Get valid OAuth credentials, refreshing them if necessary
152
+ *
153
+ * @param qwenClient - The OAuth2 client instance
154
+ * @param forceRefresh - If true, refresh token even if current one is still valid
155
+ * @returns Promise resolving to valid credentials
156
+ * @throws TokenManagerError if unable to obtain valid credentials
157
+ */
158
+ async getValidCredentials(qwenClient, forceRefresh = false) {
159
+ try {
160
+ // Check if credentials file has been updated by other sessions
161
+ await this.checkAndReloadIfNeeded(qwenClient);
162
+ // Return valid cached credentials if available (unless force refresh is requested)
163
+ if (!forceRefresh &&
164
+ this.memoryCache.credentials &&
165
+ this.isTokenValid(this.memoryCache.credentials)) {
166
+ return this.memoryCache.credentials;
167
+ }
168
+ // Use a local promise variable to avoid race conditions
169
+ let currentRefreshPromise = this.refreshPromise;
170
+ if (!currentRefreshPromise) {
171
+ // Start new refresh operation with distributed locking
172
+ currentRefreshPromise = this.performTokenRefresh(qwenClient, forceRefresh);
173
+ this.refreshPromise = currentRefreshPromise;
174
+ }
175
+ try {
176
+ // Wait for the refresh to complete
177
+ const result = await currentRefreshPromise;
178
+ return result;
179
+ }
180
+ finally {
181
+ if (this.refreshPromise === currentRefreshPromise) {
182
+ this.refreshPromise = null;
183
+ }
184
+ }
185
+ }
186
+ catch (error) {
187
+ // Convert generic errors to TokenManagerError for better error handling
188
+ if (error instanceof TokenManagerError) {
189
+ throw error;
190
+ }
191
+ throw new TokenManagerError(TokenError.REFRESH_FAILED, `Failed to get valid credentials: ${error instanceof Error ? error.message : String(error)}`, error);
192
+ }
193
+ }
194
+ /**
195
+ * Check if the credentials file was updated by another process and reload if so
196
+ * Uses promise-based locking to prevent concurrent file checks
197
+ */
198
+ async checkAndReloadIfNeeded(qwenClient) {
199
+ // If there's already an ongoing check, wait for it to complete
200
+ if (this.checkPromise) {
201
+ await this.checkPromise;
202
+ return;
203
+ }
204
+ // If there's an ongoing refresh, skip the file check as refresh will handle it
205
+ if (this.refreshPromise) {
206
+ return;
207
+ }
208
+ const now = Date.now();
209
+ // Limit check frequency to avoid excessive disk I/O
210
+ if (now - this.memoryCache.lastCheck < CACHE_CHECK_INTERVAL_MS) {
211
+ return;
212
+ }
213
+ // Start the check operation and store the promise
214
+ this.checkPromise = this.performFileCheck(qwenClient, now);
215
+ try {
216
+ await this.checkPromise;
217
+ }
218
+ finally {
219
+ this.checkPromise = null;
220
+ }
221
+ }
222
+ /**
223
+ * Utility method to add timeout to any promise operation
224
+ * Properly cleans up the timeout when the promise completes
225
+ */
226
+ withTimeout(promise, timeoutMs, operationType = 'Operation') {
227
+ let timeoutId;
228
+ return Promise.race([
229
+ promise.finally(() => {
230
+ // Clear timeout when main promise completes (success or failure)
231
+ if (timeoutId) {
232
+ clearTimeout(timeoutId);
233
+ }
234
+ }),
235
+ new Promise((_, reject) => {
236
+ timeoutId = setTimeout(() => reject(new Error(`${operationType} timed out after ${timeoutMs}ms`)), timeoutMs);
237
+ }),
238
+ ]);
239
+ }
240
+ /**
241
+ * Perform the actual file check and reload operation
242
+ * This is separated to enable proper promise-based synchronization
243
+ */
244
+ async performFileCheck(qwenClient, checkTime) {
245
+ // Update lastCheck atomically at the start to prevent other calls from proceeding
246
+ this.memoryCache.lastCheck = checkTime;
247
+ try {
248
+ const filePath = this.getCredentialFilePath();
249
+ const stats = await this.withTimeout(fs.stat(filePath), 3000, 'File operation');
250
+ const fileModTime = stats.mtimeMs;
251
+ // Reload credentials if file has been modified since last cache
252
+ if (fileModTime > this.memoryCache.fileModTime) {
253
+ await this.reloadCredentialsFromFile(qwenClient);
254
+ // Update fileModTime only after successful reload
255
+ this.memoryCache.fileModTime = fileModTime;
256
+ }
257
+ }
258
+ catch (error) {
259
+ // Handle file access errors
260
+ if (error instanceof Error &&
261
+ 'code' in error &&
262
+ error.code !== 'ENOENT') {
263
+ // Clear cache atomically for non-missing file errors
264
+ this.updateCacheState(null, 0, checkTime);
265
+ throw new TokenManagerError(TokenError.FILE_ACCESS_ERROR, `Failed to access credentials file: ${error.message}`, error);
266
+ }
267
+ // For missing files (ENOENT), just reset file modification time
268
+ // but keep existing valid credentials in memory if they exist
269
+ this.memoryCache.fileModTime = 0;
270
+ }
271
+ }
272
+ /**
273
+ * Force a file check without time-based throttling (used during refresh operations)
274
+ */
275
+ async forceFileCheck(qwenClient) {
276
+ try {
277
+ const filePath = this.getCredentialFilePath();
278
+ const stats = await fs.stat(filePath);
279
+ const fileModTime = stats.mtimeMs;
280
+ // Reload credentials if file has been modified since last cache
281
+ if (fileModTime > this.memoryCache.fileModTime) {
282
+ await this.reloadCredentialsFromFile(qwenClient);
283
+ // Update cache state atomically
284
+ this.memoryCache.fileModTime = fileModTime;
285
+ this.memoryCache.lastCheck = Date.now();
286
+ }
287
+ }
288
+ catch (error) {
289
+ // Handle file access errors
290
+ if (error instanceof Error &&
291
+ 'code' in error &&
292
+ error.code !== 'ENOENT') {
293
+ // Clear cache atomically for non-missing file errors
294
+ this.updateCacheState(null, 0);
295
+ throw new TokenManagerError(TokenError.FILE_ACCESS_ERROR, `Failed to access credentials file during refresh: ${error.message}`, error);
296
+ }
297
+ // For missing files (ENOENT), just reset file modification time
298
+ this.memoryCache.fileModTime = 0;
299
+ }
300
+ }
301
+ /**
302
+ * Load credentials from the file system into memory cache and sync with qwenClient
303
+ */
304
+ async reloadCredentialsFromFile(qwenClient) {
305
+ try {
306
+ const filePath = this.getCredentialFilePath();
307
+ const content = await fs.readFile(filePath, 'utf-8');
308
+ const parsedData = JSON.parse(content);
309
+ const credentials = validateCredentials(parsedData);
310
+ // Store previous state for rollback
311
+ const previousCredentials = this.memoryCache.credentials;
312
+ // Update memory cache first
313
+ this.memoryCache.credentials = credentials;
314
+ // Sync with qwenClient atomically - rollback on failure
315
+ try {
316
+ if (qwenClient) {
317
+ qwenClient.setCredentials(credentials);
318
+ }
319
+ }
320
+ catch (clientError) {
321
+ // Rollback memory cache on client sync failure
322
+ this.memoryCache.credentials = previousCredentials;
323
+ throw clientError;
324
+ }
325
+ }
326
+ catch (error) {
327
+ // Log validation errors for debugging but don't throw
328
+ if (error instanceof Error &&
329
+ error.message.includes('Invalid credentials')) {
330
+ console.warn(`Failed to validate credentials file: ${error.message}`);
331
+ }
332
+ // Clear credentials but preserve other cache state
333
+ this.memoryCache.credentials = null;
334
+ }
335
+ }
336
+ /**
337
+ * Refresh the OAuth token using file locking to prevent concurrent refreshes
338
+ *
339
+ * @param qwenClient - The OAuth2 client instance
340
+ * @param forceRefresh - If true, skip checking if token is already valid after getting lock
341
+ * @returns Promise resolving to refreshed credentials
342
+ * @throws TokenManagerError if refresh fails or lock cannot be acquired
343
+ */
344
+ async performTokenRefresh(qwenClient, forceRefresh = false) {
345
+ const startTime = Date.now();
346
+ const lockPath = this.getLockFilePath();
347
+ try {
348
+ // Check if we have a refresh token before attempting refresh
349
+ const currentCredentials = qwenClient.getCredentials();
350
+ if (!currentCredentials.refresh_token) {
351
+ // console.debug('create a NO_REFRESH_TOKEN error');
352
+ throw new TokenManagerError(TokenError.NO_REFRESH_TOKEN, 'No refresh token available for token refresh');
353
+ }
354
+ // Acquire distributed file lock
355
+ await this.acquireLock(lockPath);
356
+ // Check if the operation is taking too long
357
+ const lockAcquisitionTime = Date.now() - startTime;
358
+ if (lockAcquisitionTime > 5000) {
359
+ // 5 seconds warning threshold
360
+ console.warn(`Token refresh lock acquisition took ${lockAcquisitionTime}ms`);
361
+ }
362
+ // Double-check if another process already refreshed the token (unless force refresh is requested)
363
+ // Skip the time-based throttling since we're already in a locked refresh operation
364
+ await this.forceFileCheck(qwenClient);
365
+ // Use refreshed credentials if they're now valid (unless force refresh is requested)
366
+ if (!forceRefresh &&
367
+ this.memoryCache.credentials &&
368
+ this.isTokenValid(this.memoryCache.credentials)) {
369
+ // No need to call qwenClient.setCredentials here as checkAndReloadIfNeeded already did it
370
+ return this.memoryCache.credentials;
371
+ }
372
+ // Perform the actual token refresh
373
+ const response = await qwenClient.refreshAccessToken();
374
+ // Check if the token refresh is taking too long
375
+ const totalOperationTime = Date.now() - startTime;
376
+ if (totalOperationTime > 10000) {
377
+ // 10 seconds warning threshold
378
+ console.warn(`Token refresh operation took ${totalOperationTime}ms`);
379
+ }
380
+ if (!response || isErrorResponse(response)) {
381
+ const errorData = response;
382
+ throw new TokenManagerError(TokenError.REFRESH_FAILED, `Token refresh failed: ${errorData?.error || 'Unknown error'} - ${errorData?.error_description || 'No details provided'}`);
383
+ }
384
+ const tokenData = response;
385
+ if (!tokenData.access_token) {
386
+ throw new TokenManagerError(TokenError.REFRESH_FAILED, 'Failed to refresh access token: no token returned');
387
+ }
388
+ // Create updated credentials object
389
+ const credentials = {
390
+ access_token: tokenData.access_token,
391
+ token_type: tokenData.token_type,
392
+ refresh_token: tokenData.refresh_token || currentCredentials.refresh_token,
393
+ resource_url: tokenData.resource_url,
394
+ expiry_date: Date.now() + tokenData.expires_in * 1000,
395
+ };
396
+ // Update memory cache and client credentials atomically
397
+ this.memoryCache.credentials = credentials;
398
+ qwenClient.setCredentials(credentials);
399
+ // Persist to file and update modification time
400
+ await this.saveCredentialsToFile(credentials);
401
+ return credentials;
402
+ }
403
+ catch (error) {
404
+ // Handle credentials clear required error (400 status from refresh)
405
+ if (error instanceof CredentialsClearRequiredError) {
406
+ console.debug('SharedTokenManager: Clearing memory cache due to credentials clear requirement');
407
+ // Clear memory cache when credentials need to be cleared
408
+ this.memoryCache.credentials = null;
409
+ this.memoryCache.fileModTime = 0;
410
+ // Reset any ongoing refresh promise as the credentials are no longer valid
411
+ this.refreshPromise = null;
412
+ throw new TokenManagerError(TokenError.REFRESH_FAILED, error.message, error);
413
+ }
414
+ if (error instanceof TokenManagerError) {
415
+ throw error;
416
+ }
417
+ // Handle network-related errors
418
+ if (error instanceof Error &&
419
+ (error.message.includes('fetch') ||
420
+ error.message.includes('network') ||
421
+ error.message.includes('timeout'))) {
422
+ throw new TokenManagerError(TokenError.NETWORK_ERROR, `Network error during token refresh: ${error.message}`, error);
423
+ }
424
+ throw new TokenManagerError(TokenError.REFRESH_FAILED, `Unexpected error during token refresh: ${error instanceof Error ? error.message : String(error)}`, error);
425
+ }
426
+ finally {
427
+ // Always release the file lock
428
+ await this.releaseLock(lockPath);
429
+ }
430
+ }
431
+ /**
432
+ * Save credentials to file and update the cached file modification time
433
+ *
434
+ * @param credentials - The credentials to save
435
+ */
436
+ async saveCredentialsToFile(credentials) {
437
+ const filePath = this.getCredentialFilePath();
438
+ const dirPath = path.dirname(filePath);
439
+ const tempPath = `${filePath}.tmp.${randomUUID()}`;
440
+ // Create directory with restricted permissions
441
+ try {
442
+ await this.withTimeout(fs.mkdir(dirPath, { recursive: true, mode: 0o700 }), 5000, 'File operation');
443
+ }
444
+ catch (error) {
445
+ throw new TokenManagerError(TokenError.FILE_ACCESS_ERROR, `Failed to create credentials directory: ${error instanceof Error ? error.message : String(error)}`, error);
446
+ }
447
+ const credString = JSON.stringify(credentials, null, 2);
448
+ try {
449
+ // Write to temporary file first with restricted permissions
450
+ await this.withTimeout(fs.writeFile(tempPath, credString, { mode: 0o600 }), 5000, 'File operation');
451
+ // Atomic move to final location
452
+ await this.withTimeout(fs.rename(tempPath, filePath), 5000, 'File operation');
453
+ // Update cached file modification time atomically after successful write
454
+ const stats = await this.withTimeout(fs.stat(filePath), 5000, 'File operation');
455
+ this.memoryCache.fileModTime = stats.mtimeMs;
456
+ }
457
+ catch (error) {
458
+ // Clean up temp file if it exists
459
+ try {
460
+ await this.withTimeout(fs.unlink(tempPath), 1000, 'File operation');
461
+ }
462
+ catch (_cleanupError) {
463
+ // Ignore cleanup errors - temp file might not exist
464
+ }
465
+ throw new TokenManagerError(TokenError.FILE_ACCESS_ERROR, `Failed to write credentials file: ${error instanceof Error ? error.message : String(error)}`, error);
466
+ }
467
+ }
468
+ /**
469
+ * Check if the token is valid and not expired
470
+ *
471
+ * @param credentials - The credentials to validate
472
+ * @returns true if token is valid and not expired, false otherwise
473
+ */
474
+ isTokenValid(credentials) {
475
+ if (!credentials.expiry_date || !credentials.access_token) {
476
+ return false;
477
+ }
478
+ return Date.now() < credentials.expiry_date - TOKEN_REFRESH_BUFFER_MS;
479
+ }
480
+ /**
481
+ * Get the full path to the credentials file
482
+ *
483
+ * @returns The absolute path to the credentials file
484
+ */
485
+ getCredentialFilePath() {
486
+ return path.join(os.homedir(), QWEN_DIR, QWEN_CREDENTIAL_FILENAME);
487
+ }
488
+ /**
489
+ * Get the full path to the lock file
490
+ *
491
+ * @returns The absolute path to the lock file
492
+ */
493
+ getLockFilePath() {
494
+ return path.join(os.homedir(), QWEN_DIR, QWEN_LOCK_FILENAME);
495
+ }
496
+ /**
497
+ * Acquire a file lock to prevent other processes from refreshing tokens simultaneously
498
+ *
499
+ * @param lockPath - Path to the lock file
500
+ * @throws TokenManagerError if lock cannot be acquired within timeout period
501
+ */
502
+ async acquireLock(lockPath) {
503
+ const { maxAttempts, attemptInterval, maxInterval } = this.lockConfig;
504
+ const lockId = randomUUID(); // Use random UUID instead of PID for security
505
+ let currentInterval = attemptInterval;
506
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
507
+ try {
508
+ // Attempt to create lock file atomically (exclusive mode)
509
+ await fs.writeFile(lockPath, lockId, { flag: 'wx' });
510
+ return; // Successfully acquired lock
511
+ }
512
+ catch (error) {
513
+ if (error.code === 'EEXIST') {
514
+ // Lock file already exists, check if it's stale
515
+ try {
516
+ const stats = await fs.stat(lockPath);
517
+ const lockAge = Date.now() - stats.mtimeMs;
518
+ // Remove stale locks that exceed timeout
519
+ if (lockAge > LOCK_TIMEOUT_MS) {
520
+ // Use atomic rename operation to avoid race condition
521
+ const tempPath = `${lockPath}.stale.${randomUUID()}`;
522
+ try {
523
+ // Atomic move to temporary location
524
+ await fs.rename(lockPath, tempPath);
525
+ // Clean up the temporary file
526
+ await fs.unlink(tempPath);
527
+ console.warn(`Removed stale lock file: ${lockPath} (age: ${lockAge}ms)`);
528
+ continue; // Retry lock acquisition immediately
529
+ }
530
+ catch (renameError) {
531
+ // Lock might have been removed by another process, continue trying
532
+ console.warn(`Failed to remove stale lock file ${lockPath}: ${renameError instanceof Error ? renameError.message : String(renameError)}`);
533
+ // Continue - the lock might have been removed by another process
534
+ }
535
+ }
536
+ }
537
+ catch (statError) {
538
+ // Can't stat lock file, it might have been removed, continue trying
539
+ console.warn(`Failed to stat lock file ${lockPath}: ${statError instanceof Error ? statError.message : String(statError)}`);
540
+ }
541
+ // Wait before retrying with exponential backoff
542
+ await new Promise((resolve) => setTimeout(resolve, currentInterval));
543
+ // Increase interval for next attempt (exponential backoff), but cap at maxInterval
544
+ currentInterval = Math.min(currentInterval * 1.5, maxInterval);
545
+ }
546
+ else {
547
+ throw new TokenManagerError(TokenError.FILE_ACCESS_ERROR, `Failed to create lock file: ${error instanceof Error ? error.message : String(error)}`, error);
548
+ }
549
+ }
550
+ }
551
+ throw new TokenManagerError(TokenError.LOCK_TIMEOUT, 'Failed to acquire file lock for token refresh: timeout exceeded');
552
+ }
553
+ /**
554
+ * Release the file lock
555
+ *
556
+ * @param lockPath - Path to the lock file
557
+ */
558
+ async releaseLock(lockPath) {
559
+ try {
560
+ await fs.unlink(lockPath);
561
+ }
562
+ catch (error) {
563
+ // Lock file might already be removed by another process or timeout cleanup
564
+ // This is not an error condition, but log for debugging
565
+ if (error.code !== 'ENOENT') {
566
+ console.warn(`Failed to release lock file ${lockPath}: ${error instanceof Error ? error.message : String(error)}`);
567
+ }
568
+ }
569
+ }
570
+ /**
571
+ * Atomically update cache state to prevent inconsistent intermediate states
572
+ * @param credentials - New credentials to cache
573
+ * @param fileModTime - File modification time
574
+ * @param lastCheck - Last check timestamp (optional, defaults to current time)
575
+ */
576
+ updateCacheState(credentials, fileModTime, lastCheck) {
577
+ this.memoryCache = {
578
+ credentials,
579
+ fileModTime,
580
+ lastCheck: lastCheck ?? Date.now(),
581
+ };
582
+ }
583
+ /**
584
+ * Clear all cached data and reset the manager to initial state
585
+ */
586
+ clearCache() {
587
+ this.updateCacheState(null, 0, 0);
588
+ this.refreshPromise = null;
589
+ this.checkPromise = null;
590
+ }
591
+ /**
592
+ * Get the current cached credentials (may be expired)
593
+ *
594
+ * @returns The currently cached credentials or null
595
+ */
596
+ getCurrentCredentials() {
597
+ return this.memoryCache.credentials;
598
+ }
599
+ /**
600
+ * Check if there's an ongoing refresh operation
601
+ *
602
+ * @returns true if refresh is in progress, false otherwise
603
+ */
604
+ isRefreshInProgress() {
605
+ return this.refreshPromise !== null;
606
+ }
607
+ /**
608
+ * Set lock configuration for testing purposes
609
+ * @param config - Lock configuration
610
+ */
611
+ setLockConfig(config) {
612
+ this.lockConfig = { ...DEFAULT_LOCK_CONFIG, ...config };
613
+ }
614
+ /**
615
+ * Clean up event listeners (primarily for testing)
616
+ */
617
+ cleanup() {
618
+ if (this.cleanupFunction && this.cleanupHandlersRegistered) {
619
+ this.cleanupFunction();
620
+ process.removeListener('exit', this.cleanupFunction);
621
+ process.removeListener('SIGINT', this.cleanupFunction);
622
+ process.removeListener('SIGTERM', this.cleanupFunction);
623
+ process.removeListener('uncaughtException', this.cleanupFunction);
624
+ process.removeListener('unhandledRejection', this.cleanupFunction);
625
+ this.cleanupHandlersRegistered = false;
626
+ this.cleanupFunction = null;
627
+ }
628
+ }
629
+ /**
630
+ * Get a summary of the current state for debugging
631
+ *
632
+ * @returns Object containing current state information
633
+ */
634
+ getDebugInfo() {
635
+ const hasCredentials = !!this.memoryCache.credentials;
636
+ const credentialsExpired = hasCredentials
637
+ ? !this.isTokenValid(this.memoryCache.credentials)
638
+ : false;
639
+ return {
640
+ hasCredentials,
641
+ credentialsExpired,
642
+ isRefreshing: this.isRefreshInProgress(),
643
+ cacheAge: Date.now() - this.memoryCache.lastCheck,
644
+ };
645
+ }
646
+ }
647
+ //# sourceMappingURL=sharedTokenManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharedTokenManager.js","sourceRoot":"","sources":["../../../src/qwen/sharedTokenManager.ts"],"names":[],"mappings":"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"}