@blackbox_ai/blackbox-cli-core 0.0.4

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 (897) hide show
  1. package/LICENSE +203 -0
  2. package/README.md +420 -0
  3. package/dist/.last_build +0 -0
  4. package/dist/index.d.ts +13 -0
  5. package/dist/index.js +14 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/__mocks__/fs/promises.d.ts +11 -0
  8. package/dist/src/__mocks__/fs/promises.js +17 -0
  9. package/dist/src/__mocks__/fs/promises.js.map +1 -0
  10. package/dist/src/blackbox/blackboxContentGenerator.d.ts +70 -0
  11. package/dist/src/blackbox/blackboxContentGenerator.js +180 -0
  12. package/dist/src/blackbox/blackboxContentGenerator.js.map +1 -0
  13. package/dist/src/blackbox/blackboxContentGenerator.test.d.ts +6 -0
  14. package/dist/src/blackbox/blackboxContentGenerator.test.js +1178 -0
  15. package/dist/src/blackbox/blackboxContentGenerator.test.js.map +1 -0
  16. package/dist/src/blackbox/blackboxOAuth2.d.ts +191 -0
  17. package/dist/src/blackbox/blackboxOAuth2.js +566 -0
  18. package/dist/src/blackbox/blackboxOAuth2.js.map +1 -0
  19. package/dist/src/blackbox/blackboxOAuth2.test.d.ts +6 -0
  20. package/dist/src/blackbox/blackboxOAuth2.test.js +1718 -0
  21. package/dist/src/blackbox/blackboxOAuth2.test.js.map +1 -0
  22. package/dist/src/blackbox/sharedTokenManager.d.ts +196 -0
  23. package/dist/src/blackbox/sharedTokenManager.js +647 -0
  24. package/dist/src/blackbox/sharedTokenManager.js.map +1 -0
  25. package/dist/src/blackbox/sharedTokenManager.test.d.ts +7 -0
  26. package/dist/src/blackbox/sharedTokenManager.test.js +662 -0
  27. package/dist/src/blackbox/sharedTokenManager.test.js.map +1 -0
  28. package/dist/src/code_assist/codeAssist.d.ts +10 -0
  29. package/dist/src/code_assist/codeAssist.js +19 -0
  30. package/dist/src/code_assist/codeAssist.js.map +1 -0
  31. package/dist/src/code_assist/converter.d.ts +72 -0
  32. package/dist/src/code_assist/converter.js +159 -0
  33. package/dist/src/code_assist/converter.js.map +1 -0
  34. package/dist/src/code_assist/converter.test.d.ts +6 -0
  35. package/dist/src/code_assist/converter.test.js +362 -0
  36. package/dist/src/code_assist/converter.test.js.map +1 -0
  37. package/dist/src/code_assist/oauth2.d.ts +22 -0
  38. package/dist/src/code_assist/oauth2.js +368 -0
  39. package/dist/src/code_assist/oauth2.js.map +1 -0
  40. package/dist/src/code_assist/oauth2.test.d.ts +6 -0
  41. package/dist/src/code_assist/oauth2.test.js +436 -0
  42. package/dist/src/code_assist/oauth2.test.js.map +1 -0
  43. package/dist/src/code_assist/server.d.ts +37 -0
  44. package/dist/src/code_assist/server.js +125 -0
  45. package/dist/src/code_assist/server.js.map +1 -0
  46. package/dist/src/code_assist/server.test.d.ts +6 -0
  47. package/dist/src/code_assist/server.test.js +134 -0
  48. package/dist/src/code_assist/server.test.js.map +1 -0
  49. package/dist/src/code_assist/setup.d.ts +20 -0
  50. package/dist/src/code_assist/setup.js +101 -0
  51. package/dist/src/code_assist/setup.js.map +1 -0
  52. package/dist/src/code_assist/setup.test.d.ts +6 -0
  53. package/dist/src/code_assist/setup.test.js +171 -0
  54. package/dist/src/code_assist/setup.test.js.map +1 -0
  55. package/dist/src/code_assist/types.d.ts +148 -0
  56. package/dist/src/code_assist/types.js +46 -0
  57. package/dist/src/code_assist/types.js.map +1 -0
  58. package/dist/src/config/blackboxModels.d.ts +28 -0
  59. package/dist/src/config/blackboxModels.js +148 -0
  60. package/dist/src/config/blackboxModels.js.map +1 -0
  61. package/dist/src/config/config.d.ts +381 -0
  62. package/dist/src/config/config.js +753 -0
  63. package/dist/src/config/config.js.map +1 -0
  64. package/dist/src/config/config.test.d.ts +6 -0
  65. package/dist/src/config/config.test.js +674 -0
  66. package/dist/src/config/config.test.js.map +1 -0
  67. package/dist/src/config/flashFallback.test.d.ts +6 -0
  68. package/dist/src/config/flashFallback.test.js +87 -0
  69. package/dist/src/config/flashFallback.test.js.map +1 -0
  70. package/dist/src/config/models.d.ts +12 -0
  71. package/dist/src/config/models.js +13 -0
  72. package/dist/src/config/models.js.map +1 -0
  73. package/dist/src/config/storage.d.ts +32 -0
  74. package/dist/src/config/storage.js +90 -0
  75. package/dist/src/config/storage.js.map +1 -0
  76. package/dist/src/config/storage.test.d.ts +6 -0
  77. package/dist/src/config/storage.test.js +43 -0
  78. package/dist/src/config/storage.test.js.map +1 -0
  79. package/dist/src/core/__tests__/openaiTimeoutHandling.test.d.ts +6 -0
  80. package/dist/src/core/__tests__/openaiTimeoutHandling.test.js +292 -0
  81. package/dist/src/core/__tests__/openaiTimeoutHandling.test.js.map +1 -0
  82. package/dist/src/core/__tests__/orphanedToolCallsTest.d.ts +64 -0
  83. package/dist/src/core/__tests__/orphanedToolCallsTest.js +122 -0
  84. package/dist/src/core/__tests__/orphanedToolCallsTest.js.map +1 -0
  85. package/dist/src/core/client.d.ts +75 -0
  86. package/dist/src/core/client.js +826 -0
  87. package/dist/src/core/client.js.map +1 -0
  88. package/dist/src/core/client.test.d.ts +6 -0
  89. package/dist/src/core/client.test.js +2059 -0
  90. package/dist/src/core/client.test.js.map +1 -0
  91. package/dist/src/core/contentGenerator.d.ts +51 -0
  92. package/dist/src/core/contentGenerator.js +149 -0
  93. package/dist/src/core/contentGenerator.js.map +1 -0
  94. package/dist/src/core/contentGenerator.test.d.ts +6 -0
  95. package/dist/src/core/contentGenerator.test.js +133 -0
  96. package/dist/src/core/contentGenerator.test.js.map +1 -0
  97. package/dist/src/core/coreToolScheduler.d.ts +126 -0
  98. package/dist/src/core/coreToolScheduler.js +630 -0
  99. package/dist/src/core/coreToolScheduler.js.map +1 -0
  100. package/dist/src/core/coreToolScheduler.test.d.ts +6 -0
  101. package/dist/src/core/coreToolScheduler.test.js +1228 -0
  102. package/dist/src/core/coreToolScheduler.test.js.map +1 -0
  103. package/dist/src/core/geminiChat.d.ts +139 -0
  104. package/dist/src/core/geminiChat.js +636 -0
  105. package/dist/src/core/geminiChat.js.map +1 -0
  106. package/dist/src/core/geminiChat.test.d.ts +6 -0
  107. package/dist/src/core/geminiChat.test.js +1178 -0
  108. package/dist/src/core/geminiChat.test.js.map +1 -0
  109. package/dist/src/core/geminiRequest.d.ts +13 -0
  110. package/dist/src/core/geminiRequest.js +11 -0
  111. package/dist/src/core/geminiRequest.js.map +1 -0
  112. package/dist/src/core/geminiRequest.test.d.ts +6 -0
  113. package/dist/src/core/geminiRequest.test.js +73 -0
  114. package/dist/src/core/geminiRequest.test.js.map +1 -0
  115. package/dist/src/core/logger.d.ts +68 -0
  116. package/dist/src/core/logger.js +370 -0
  117. package/dist/src/core/logger.js.map +1 -0
  118. package/dist/src/core/logger.test.d.ts +6 -0
  119. package/dist/src/core/logger.test.js +591 -0
  120. package/dist/src/core/logger.test.js.map +1 -0
  121. package/dist/src/core/loggingContentGenerator.d.ts +25 -0
  122. package/dist/src/core/loggingContentGenerator.js +97 -0
  123. package/dist/src/core/loggingContentGenerator.js.map +1 -0
  124. package/dist/src/core/nonInteractiveToolExecutor.d.ts +10 -0
  125. package/dist/src/core/nonInteractiveToolExecutor.js +24 -0
  126. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -0
  127. package/dist/src/core/nonInteractiveToolExecutor.test.d.ts +6 -0
  128. package/dist/src/core/nonInteractiveToolExecutor.test.js +236 -0
  129. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -0
  130. package/dist/src/core/openaiContentGenerator/constants.d.ts +2 -0
  131. package/dist/src/core/openaiContentGenerator/constants.js +3 -0
  132. package/dist/src/core/openaiContentGenerator/constants.js.map +1 -0
  133. package/dist/src/core/openaiContentGenerator/converter.d.ts +107 -0
  134. package/dist/src/core/openaiContentGenerator/converter.js +802 -0
  135. package/dist/src/core/openaiContentGenerator/converter.js.map +1 -0
  136. package/dist/src/core/openaiContentGenerator/converter.test.d.ts +6 -0
  137. package/dist/src/core/openaiContentGenerator/converter.test.js +47 -0
  138. package/dist/src/core/openaiContentGenerator/converter.test.js.map +1 -0
  139. package/dist/src/core/openaiContentGenerator/errorHandler.d.ts +20 -0
  140. package/dist/src/core/openaiContentGenerator/errorHandler.js +82 -0
  141. package/dist/src/core/openaiContentGenerator/errorHandler.js.map +1 -0
  142. package/dist/src/core/openaiContentGenerator/errorHandler.test.d.ts +6 -0
  143. package/dist/src/core/openaiContentGenerator/errorHandler.test.js +287 -0
  144. package/dist/src/core/openaiContentGenerator/errorHandler.test.js.map +1 -0
  145. package/dist/src/core/openaiContentGenerator/index.d.ts +22 -0
  146. package/dist/src/core/openaiContentGenerator/index.js +41 -0
  147. package/dist/src/core/openaiContentGenerator/index.js.map +1 -0
  148. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.d.ts +21 -0
  149. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.js +105 -0
  150. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.js.map +1 -0
  151. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.test.d.ts +6 -0
  152. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.test.js +230 -0
  153. package/dist/src/core/openaiContentGenerator/openaiContentGenerator.test.js.map +1 -0
  154. package/dist/src/core/openaiContentGenerator/pipeline.d.ts +66 -0
  155. package/dist/src/core/openaiContentGenerator/pipeline.js +256 -0
  156. package/dist/src/core/openaiContentGenerator/pipeline.js.map +1 -0
  157. package/dist/src/core/openaiContentGenerator/pipeline.test.d.ts +6 -0
  158. package/dist/src/core/openaiContentGenerator/pipeline.test.js +977 -0
  159. package/dist/src/core/openaiContentGenerator/pipeline.test.js.map +1 -0
  160. package/dist/src/core/openaiContentGenerator/provider/README.md +61 -0
  161. package/dist/src/core/openaiContentGenerator/provider/dashscope.d.ts +63 -0
  162. package/dist/src/core/openaiContentGenerator/provider/dashscope.js +241 -0
  163. package/dist/src/core/openaiContentGenerator/provider/dashscope.js.map +1 -0
  164. package/dist/src/core/openaiContentGenerator/provider/dashscope.test.d.ts +6 -0
  165. package/dist/src/core/openaiContentGenerator/provider/dashscope.test.js +707 -0
  166. package/dist/src/core/openaiContentGenerator/provider/dashscope.test.js.map +1 -0
  167. package/dist/src/core/openaiContentGenerator/provider/deepseek.d.ts +14 -0
  168. package/dist/src/core/openaiContentGenerator/provider/deepseek.js +52 -0
  169. package/dist/src/core/openaiContentGenerator/provider/deepseek.js.map +1 -0
  170. package/dist/src/core/openaiContentGenerator/provider/deepseek.test.d.ts +6 -0
  171. package/dist/src/core/openaiContentGenerator/provider/deepseek.test.js +103 -0
  172. package/dist/src/core/openaiContentGenerator/provider/deepseek.test.js.map +1 -0
  173. package/dist/src/core/openaiContentGenerator/provider/default.d.ts +15 -0
  174. package/dist/src/core/openaiContentGenerator/provider/default.js +38 -0
  175. package/dist/src/core/openaiContentGenerator/provider/default.js.map +1 -0
  176. package/dist/src/core/openaiContentGenerator/provider/default.test.d.ts +6 -0
  177. package/dist/src/core/openaiContentGenerator/provider/default.test.js +176 -0
  178. package/dist/src/core/openaiContentGenerator/provider/default.test.js.map +1 -0
  179. package/dist/src/core/openaiContentGenerator/provider/index.d.ts +5 -0
  180. package/dist/src/core/openaiContentGenerator/provider/index.js +5 -0
  181. package/dist/src/core/openaiContentGenerator/provider/index.js.map +1 -0
  182. package/dist/src/core/openaiContentGenerator/provider/openrouter.d.ts +8 -0
  183. package/dist/src/core/openaiContentGenerator/provider/openrouter.js +21 -0
  184. package/dist/src/core/openaiContentGenerator/provider/openrouter.js.map +1 -0
  185. package/dist/src/core/openaiContentGenerator/provider/openrouter.test.d.ts +6 -0
  186. package/dist/src/core/openaiContentGenerator/provider/openrouter.test.js +152 -0
  187. package/dist/src/core/openaiContentGenerator/provider/openrouter.test.js.map +1 -0
  188. package/dist/src/core/openaiContentGenerator/provider/types.d.ts +23 -0
  189. package/dist/src/core/openaiContentGenerator/provider/types.js +2 -0
  190. package/dist/src/core/openaiContentGenerator/provider/types.js.map +1 -0
  191. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.d.ts +142 -0
  192. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.js +363 -0
  193. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.js.map +1 -0
  194. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.test.d.ts +6 -0
  195. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.test.js +537 -0
  196. package/dist/src/core/openaiContentGenerator/streamingToolCallParser.test.js.map +1 -0
  197. package/dist/src/core/openaiContentGenerator/telemetryService.d.ts +35 -0
  198. package/dist/src/core/openaiContentGenerator/telemetryService.js +146 -0
  199. package/dist/src/core/openaiContentGenerator/telemetryService.js.map +1 -0
  200. package/dist/src/core/openaiContentGenerator/telemetryService.test.d.ts +6 -0
  201. package/dist/src/core/openaiContentGenerator/telemetryService.test.js +978 -0
  202. package/dist/src/core/openaiContentGenerator/telemetryService.test.js.map +1 -0
  203. package/dist/src/core/prompts.d.ts +76 -0
  204. package/dist/src/core/prompts.js +860 -0
  205. package/dist/src/core/prompts.js.map +1 -0
  206. package/dist/src/core/prompts.test.d.ts +6 -0
  207. package/dist/src/core/prompts.test.js +436 -0
  208. package/dist/src/core/prompts.test.js.map +1 -0
  209. package/dist/src/core/tokenLimits.d.ts +25 -0
  210. package/dist/src/core/tokenLimits.js +175 -0
  211. package/dist/src/core/tokenLimits.js.map +1 -0
  212. package/dist/src/core/tokenLimits.test.d.ts +1 -0
  213. package/dist/src/core/tokenLimits.test.js +261 -0
  214. package/dist/src/core/tokenLimits.test.js.map +1 -0
  215. package/dist/src/core/turn.d.ts +140 -0
  216. package/dist/src/core/turn.js +168 -0
  217. package/dist/src/core/turn.js.map +1 -0
  218. package/dist/src/core/turn.test.d.ts +6 -0
  219. package/dist/src/core/turn.test.js +450 -0
  220. package/dist/src/core/turn.test.js.map +1 -0
  221. package/dist/src/generated/git-commit.d.ts +7 -0
  222. package/dist/src/generated/git-commit.js +10 -0
  223. package/dist/src/generated/git-commit.js.map +1 -0
  224. package/dist/src/ide/constants.d.ts +6 -0
  225. package/dist/src/ide/constants.js +7 -0
  226. package/dist/src/ide/constants.js.map +1 -0
  227. package/dist/src/ide/detect-ide.d.ts +25 -0
  228. package/dist/src/ide/detect-ide.js +104 -0
  229. package/dist/src/ide/detect-ide.js.map +1 -0
  230. package/dist/src/ide/detect-ide.test.d.ts +6 -0
  231. package/dist/src/ide/detect-ide.test.js +120 -0
  232. package/dist/src/ide/detect-ide.test.js.map +1 -0
  233. package/dist/src/ide/ide-client.d.ts +67 -0
  234. package/dist/src/ide/ide-client.js +424 -0
  235. package/dist/src/ide/ide-client.js.map +1 -0
  236. package/dist/src/ide/ide-client.test.d.ts +6 -0
  237. package/dist/src/ide/ide-client.test.js +165 -0
  238. package/dist/src/ide/ide-client.test.js.map +1 -0
  239. package/dist/src/ide/ide-installer.d.ts +14 -0
  240. package/dist/src/ide/ide-installer.js +107 -0
  241. package/dist/src/ide/ide-installer.js.map +1 -0
  242. package/dist/src/ide/ide-installer.test.d.ts +6 -0
  243. package/dist/src/ide/ide-installer.test.js +113 -0
  244. package/dist/src/ide/ide-installer.test.js.map +1 -0
  245. package/dist/src/ide/ideContext.d.ts +374 -0
  246. package/dist/src/ide/ideContext.js +147 -0
  247. package/dist/src/ide/ideContext.js.map +1 -0
  248. package/dist/src/ide/ideContext.test.d.ts +6 -0
  249. package/dist/src/ide/ideContext.test.js +265 -0
  250. package/dist/src/ide/ideContext.test.js.map +1 -0
  251. package/dist/src/ide/process-utils.d.ts +21 -0
  252. package/dist/src/ide/process-utils.js +164 -0
  253. package/dist/src/ide/process-utils.js.map +1 -0
  254. package/dist/src/ide/process-utils.test.d.ts +6 -0
  255. package/dist/src/ide/process-utils.test.js +158 -0
  256. package/dist/src/ide/process-utils.test.js.map +1 -0
  257. package/dist/src/index.d.ts +86 -0
  258. package/dist/src/index.js +97 -0
  259. package/dist/src/index.js.map +1 -0
  260. package/dist/src/index.test.d.ts +6 -0
  261. package/dist/src/index.test.js +12 -0
  262. package/dist/src/index.test.js.map +1 -0
  263. package/dist/src/mcp/google-auth-provider.d.ts +23 -0
  264. package/dist/src/mcp/google-auth-provider.js +72 -0
  265. package/dist/src/mcp/google-auth-provider.js.map +1 -0
  266. package/dist/src/mcp/google-auth-provider.test.d.ts +6 -0
  267. package/dist/src/mcp/google-auth-provider.test.js +89 -0
  268. package/dist/src/mcp/google-auth-provider.test.js.map +1 -0
  269. package/dist/src/mcp/oauth-provider.d.ts +146 -0
  270. package/dist/src/mcp/oauth-provider.js +601 -0
  271. package/dist/src/mcp/oauth-provider.js.map +1 -0
  272. package/dist/src/mcp/oauth-provider.test.d.ts +6 -0
  273. package/dist/src/mcp/oauth-provider.test.js +672 -0
  274. package/dist/src/mcp/oauth-provider.test.js.map +1 -0
  275. package/dist/src/mcp/oauth-token-storage.d.ts +61 -0
  276. package/dist/src/mcp/oauth-token-storage.js +148 -0
  277. package/dist/src/mcp/oauth-token-storage.js.map +1 -0
  278. package/dist/src/mcp/oauth-token-storage.test.d.ts +6 -0
  279. package/dist/src/mcp/oauth-token-storage.test.js +208 -0
  280. package/dist/src/mcp/oauth-token-storage.test.js.map +1 -0
  281. package/dist/src/mcp/oauth-utils.d.ts +119 -0
  282. package/dist/src/mcp/oauth-utils.js +235 -0
  283. package/dist/src/mcp/oauth-utils.js.map +1 -0
  284. package/dist/src/mcp/oauth-utils.test.d.ts +6 -0
  285. package/dist/src/mcp/oauth-utils.test.js +199 -0
  286. package/dist/src/mcp/oauth-utils.test.js.map +1 -0
  287. package/dist/src/mcp/token-storage/base-token-storage.d.ts +19 -0
  288. package/dist/src/mcp/token-storage/base-token-storage.js +36 -0
  289. package/dist/src/mcp/token-storage/base-token-storage.js.map +1 -0
  290. package/dist/src/mcp/token-storage/base-token-storage.test.d.ts +6 -0
  291. package/dist/src/mcp/token-storage/base-token-storage.test.js +160 -0
  292. package/dist/src/mcp/token-storage/base-token-storage.test.js.map +1 -0
  293. package/dist/src/mcp/token-storage/types.d.ts +34 -0
  294. package/dist/src/mcp/token-storage/types.js +7 -0
  295. package/dist/src/mcp/token-storage/types.js.map +1 -0
  296. package/dist/src/mocks/msw.d.ts +6 -0
  297. package/dist/src/mocks/msw.js +8 -0
  298. package/dist/src/mocks/msw.js.map +1 -0
  299. package/dist/src/prompts/mcp-prompts.d.ts +8 -0
  300. package/dist/src/prompts/mcp-prompts.js +13 -0
  301. package/dist/src/prompts/mcp-prompts.js.map +1 -0
  302. package/dist/src/prompts/prompt-registry.d.ts +34 -0
  303. package/dist/src/prompts/prompt-registry.js +63 -0
  304. package/dist/src/prompts/prompt-registry.js.map +1 -0
  305. package/dist/src/services/chatRecordingService.d.ts +150 -0
  306. package/dist/src/services/chatRecordingService.js +321 -0
  307. package/dist/src/services/chatRecordingService.js.map +1 -0
  308. package/dist/src/services/chatRecordingService.test.d.ts +6 -0
  309. package/dist/src/services/chatRecordingService.test.js +290 -0
  310. package/dist/src/services/chatRecordingService.test.js.map +1 -0
  311. package/dist/src/services/fileDiscoveryService.d.ts +35 -0
  312. package/dist/src/services/fileDiscoveryService.js +91 -0
  313. package/dist/src/services/fileDiscoveryService.js.map +1 -0
  314. package/dist/src/services/fileDiscoveryService.test.d.ts +6 -0
  315. package/dist/src/services/fileDiscoveryService.test.js +143 -0
  316. package/dist/src/services/fileDiscoveryService.test.js.map +1 -0
  317. package/dist/src/services/fileSystemService.d.ts +31 -0
  318. package/dist/src/services/fileSystemService.js +18 -0
  319. package/dist/src/services/fileSystemService.js.map +1 -0
  320. package/dist/src/services/fileSystemService.test.d.ts +6 -0
  321. package/dist/src/services/fileSystemService.test.js +41 -0
  322. package/dist/src/services/fileSystemService.test.js.map +1 -0
  323. package/dist/src/services/gitService.d.ts +23 -0
  324. package/dist/src/services/gitService.js +110 -0
  325. package/dist/src/services/gitService.js.map +1 -0
  326. package/dist/src/services/gitService.test.d.ts +6 -0
  327. package/dist/src/services/gitService.test.js +212 -0
  328. package/dist/src/services/gitService.test.js.map +1 -0
  329. package/dist/src/services/loopDetectionService.d.ts +98 -0
  330. package/dist/src/services/loopDetectionService.js +363 -0
  331. package/dist/src/services/loopDetectionService.js.map +1 -0
  332. package/dist/src/services/loopDetectionService.test.d.ts +6 -0
  333. package/dist/src/services/loopDetectionService.test.js +560 -0
  334. package/dist/src/services/loopDetectionService.test.js.map +1 -0
  335. package/dist/src/services/shellExecutionService.d.ts +68 -0
  336. package/dist/src/services/shellExecutionService.js +332 -0
  337. package/dist/src/services/shellExecutionService.js.map +1 -0
  338. package/dist/src/services/shellExecutionService.test.d.ts +6 -0
  339. package/dist/src/services/shellExecutionService.test.js +517 -0
  340. package/dist/src/services/shellExecutionService.test.js.map +1 -0
  341. package/dist/src/subagents/builtin-agents.d.ts +35 -0
  342. package/dist/src/subagents/builtin-agents.js +85 -0
  343. package/dist/src/subagents/builtin-agents.js.map +1 -0
  344. package/dist/src/subagents/builtin-agents.test.d.ts +6 -0
  345. package/dist/src/subagents/builtin-agents.test.js +78 -0
  346. package/dist/src/subagents/builtin-agents.test.js.map +1 -0
  347. package/dist/src/subagents/index.d.ts +29 -0
  348. package/dist/src/subagents/index.js +15 -0
  349. package/dist/src/subagents/index.js.map +1 -0
  350. package/dist/src/subagents/subagent-events.d.ts +93 -0
  351. package/dist/src/subagents/subagent-events.js +31 -0
  352. package/dist/src/subagents/subagent-events.js.map +1 -0
  353. package/dist/src/subagents/subagent-hooks.d.ts +29 -0
  354. package/dist/src/subagents/subagent-hooks.js +7 -0
  355. package/dist/src/subagents/subagent-hooks.js.map +1 -0
  356. package/dist/src/subagents/subagent-manager.d.ts +170 -0
  357. package/dist/src/subagents/subagent-manager.js +593 -0
  358. package/dist/src/subagents/subagent-manager.js.map +1 -0
  359. package/dist/src/subagents/subagent-manager.test.d.ts +6 -0
  360. package/dist/src/subagents/subagent-manager.test.js +822 -0
  361. package/dist/src/subagents/subagent-manager.test.js.map +1 -0
  362. package/dist/src/subagents/subagent-statistics.d.ts +46 -0
  363. package/dist/src/subagents/subagent-statistics.js +193 -0
  364. package/dist/src/subagents/subagent-statistics.js.map +1 -0
  365. package/dist/src/subagents/subagent-statistics.test.d.ts +6 -0
  366. package/dist/src/subagents/subagent-statistics.test.js +231 -0
  367. package/dist/src/subagents/subagent-statistics.test.js.map +1 -0
  368. package/dist/src/subagents/subagent.d.ts +161 -0
  369. package/dist/src/subagents/subagent.js +667 -0
  370. package/dist/src/subagents/subagent.js.map +1 -0
  371. package/dist/src/subagents/subagent.test.d.ts +6 -0
  372. package/dist/src/subagents/subagent.test.js +487 -0
  373. package/dist/src/subagents/subagent.test.js.map +1 -0
  374. package/dist/src/subagents/types.d.ts +218 -0
  375. package/dist/src/subagents/types.js +58 -0
  376. package/dist/src/subagents/types.js.map +1 -0
  377. package/dist/src/subagents/types.test.d.ts +6 -0
  378. package/dist/src/subagents/types.test.js +31 -0
  379. package/dist/src/subagents/types.test.js.map +1 -0
  380. package/dist/src/subagents/validation.d.ts +63 -0
  381. package/dist/src/subagents/validation.js +293 -0
  382. package/dist/src/subagents/validation.js.map +1 -0
  383. package/dist/src/subagents/validation.test.d.ts +6 -0
  384. package/dist/src/subagents/validation.test.js +330 -0
  385. package/dist/src/subagents/validation.test.js.map +1 -0
  386. package/dist/src/telemetry/blackbox-logger/blackbox-logger.d.ts +80 -0
  387. package/dist/src/telemetry/blackbox-logger/blackbox-logger.js +583 -0
  388. package/dist/src/telemetry/blackbox-logger/blackbox-logger.js.map +1 -0
  389. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.d.ts +6 -0
  390. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js +301 -0
  391. package/dist/src/telemetry/blackbox-logger/blackbox-logger.test.js.map +1 -0
  392. package/dist/src/telemetry/blackbox-logger/event-types.d.ts +73 -0
  393. package/dist/src/telemetry/blackbox-logger/event-types.js +2 -0
  394. package/dist/src/telemetry/blackbox-logger/event-types.js.map +1 -0
  395. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +121 -0
  396. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +773 -0
  397. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -0
  398. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.d.ts +17 -0
  399. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +420 -0
  400. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -0
  401. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +90 -0
  402. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +229 -0
  403. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -0
  404. package/dist/src/telemetry/constants.d.ts +34 -0
  405. package/dist/src/telemetry/constants.js +35 -0
  406. package/dist/src/telemetry/constants.js.map +1 -0
  407. package/dist/src/telemetry/file-exporters.d.ts +29 -0
  408. package/dist/src/telemetry/file-exporters.js +62 -0
  409. package/dist/src/telemetry/file-exporters.js.map +1 -0
  410. package/dist/src/telemetry/index.d.ts +20 -0
  411. package/dist/src/telemetry/index.js +21 -0
  412. package/dist/src/telemetry/index.js.map +1 -0
  413. package/dist/src/telemetry/integration.test.circular.d.ts +6 -0
  414. package/dist/src/telemetry/integration.test.circular.js +95 -0
  415. package/dist/src/telemetry/integration.test.circular.js.map +1 -0
  416. package/dist/src/telemetry/loggers.d.ts +26 -0
  417. package/dist/src/telemetry/loggers.js +406 -0
  418. package/dist/src/telemetry/loggers.js.map +1 -0
  419. package/dist/src/telemetry/loggers.test.circular.d.ts +6 -0
  420. package/dist/src/telemetry/loggers.test.circular.js +107 -0
  421. package/dist/src/telemetry/loggers.test.circular.js.map +1 -0
  422. package/dist/src/telemetry/loggers.test.d.ts +6 -0
  423. package/dist/src/telemetry/loggers.test.js +638 -0
  424. package/dist/src/telemetry/loggers.test.js.map +1 -0
  425. package/dist/src/telemetry/metrics.d.ts +40 -0
  426. package/dist/src/telemetry/metrics.js +229 -0
  427. package/dist/src/telemetry/metrics.js.map +1 -0
  428. package/dist/src/telemetry/metrics.test.d.ts +6 -0
  429. package/dist/src/telemetry/metrics.test.js +242 -0
  430. package/dist/src/telemetry/metrics.test.js.map +1 -0
  431. package/dist/src/telemetry/sdk.d.ts +9 -0
  432. package/dist/src/telemetry/sdk.js +161 -0
  433. package/dist/src/telemetry/sdk.js.map +1 -0
  434. package/dist/src/telemetry/sdk.test.d.ts +6 -0
  435. package/dist/src/telemetry/sdk.test.js +82 -0
  436. package/dist/src/telemetry/sdk.test.js.map +1 -0
  437. package/dist/src/telemetry/telemetry-utils.d.ts +6 -0
  438. package/dist/src/telemetry/telemetry-utils.js +14 -0
  439. package/dist/src/telemetry/telemetry-utils.js.map +1 -0
  440. package/dist/src/telemetry/telemetry-utils.test.d.ts +6 -0
  441. package/dist/src/telemetry/telemetry-utils.test.js +40 -0
  442. package/dist/src/telemetry/telemetry-utils.test.js.map +1 -0
  443. package/dist/src/telemetry/telemetry.test.d.ts +6 -0
  444. package/dist/src/telemetry/telemetry.test.js +50 -0
  445. package/dist/src/telemetry/telemetry.test.js.map +1 -0
  446. package/dist/src/telemetry/tool-call-decision.d.ts +13 -0
  447. package/dist/src/telemetry/tool-call-decision.js +29 -0
  448. package/dist/src/telemetry/tool-call-decision.js.map +1 -0
  449. package/dist/src/telemetry/types.d.ts +236 -0
  450. package/dist/src/telemetry/types.js +405 -0
  451. package/dist/src/telemetry/types.js.map +1 -0
  452. package/dist/src/telemetry/uiTelemetry.d.ts +75 -0
  453. package/dist/src/telemetry/uiTelemetry.js +153 -0
  454. package/dist/src/telemetry/uiTelemetry.js.map +1 -0
  455. package/dist/src/telemetry/uiTelemetry.test.d.ts +6 -0
  456. package/dist/src/telemetry/uiTelemetry.test.js +558 -0
  457. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -0
  458. package/dist/src/test-utils/config.d.ts +17 -0
  459. package/dist/src/test-utils/config.js +32 -0
  460. package/dist/src/test-utils/config.js.map +1 -0
  461. package/dist/src/test-utils/mockWorkspaceContext.d.ts +13 -0
  462. package/dist/src/test-utils/mockWorkspaceContext.js +24 -0
  463. package/dist/src/test-utils/mockWorkspaceContext.js.map +1 -0
  464. package/dist/src/test-utils/tools.d.ts +45 -0
  465. package/dist/src/test-utils/tools.js +105 -0
  466. package/dist/src/test-utils/tools.js.map +1 -0
  467. package/dist/src/tools/diffOptions.d.ts +9 -0
  468. package/dist/src/tools/diffOptions.js +38 -0
  469. package/dist/src/tools/diffOptions.js.map +1 -0
  470. package/dist/src/tools/diffOptions.test.d.ts +6 -0
  471. package/dist/src/tools/diffOptions.test.js +119 -0
  472. package/dist/src/tools/diffOptions.test.js.map +1 -0
  473. package/dist/src/tools/edit.d.ts +56 -0
  474. package/dist/src/tools/edit.js +434 -0
  475. package/dist/src/tools/edit.js.map +1 -0
  476. package/dist/src/tools/edit.test.d.ts +6 -0
  477. package/dist/src/tools/edit.test.js +569 -0
  478. package/dist/src/tools/edit.test.js.map +1 -0
  479. package/dist/src/tools/exitPlanMode.d.ts +28 -0
  480. package/dist/src/tools/exitPlanMode.js +137 -0
  481. package/dist/src/tools/exitPlanMode.js.map +1 -0
  482. package/dist/src/tools/exitPlanMode.test.d.ts +6 -0
  483. package/dist/src/tools/exitPlanMode.test.js +219 -0
  484. package/dist/src/tools/exitPlanMode.test.js.map +1 -0
  485. package/dist/src/tools/glob.d.ts +52 -0
  486. package/dist/src/tools/glob.js +237 -0
  487. package/dist/src/tools/glob.js.map +1 -0
  488. package/dist/src/tools/glob.test.d.ts +6 -0
  489. package/dist/src/tools/glob.test.js +375 -0
  490. package/dist/src/tools/glob.test.js.map +1 -0
  491. package/dist/src/tools/grep.d.ts +51 -0
  492. package/dist/src/tools/grep.js +566 -0
  493. package/dist/src/tools/grep.js.map +1 -0
  494. package/dist/src/tools/grep.test.d.ts +6 -0
  495. package/dist/src/tools/grep.test.js +356 -0
  496. package/dist/src/tools/grep.test.js.map +1 -0
  497. package/dist/src/tools/ls.d.ts +68 -0
  498. package/dist/src/tools/ls.js +227 -0
  499. package/dist/src/tools/ls.js.map +1 -0
  500. package/dist/src/tools/ls.test.d.ts +6 -0
  501. package/dist/src/tools/ls.test.js +389 -0
  502. package/dist/src/tools/ls.test.js.map +1 -0
  503. package/dist/src/tools/mcp-client-manager.d.ts +38 -0
  504. package/dist/src/tools/mcp-client-manager.js +74 -0
  505. package/dist/src/tools/mcp-client-manager.js.map +1 -0
  506. package/dist/src/tools/mcp-client-manager.test.d.ts +6 -0
  507. package/dist/src/tools/mcp-client-manager.test.js +39 -0
  508. package/dist/src/tools/mcp-client-manager.test.js.map +1 -0
  509. package/dist/src/tools/mcp-client.d.ts +199 -0
  510. package/dist/src/tools/mcp-client.js +995 -0
  511. package/dist/src/tools/mcp-client.js.map +1 -0
  512. package/dist/src/tools/mcp-client.test.d.ts +6 -0
  513. package/dist/src/tools/mcp-client.test.js +454 -0
  514. package/dist/src/tools/mcp-client.test.js.map +1 -0
  515. package/dist/src/tools/mcp-tool.d.ts +23 -0
  516. package/dist/src/tools/mcp-tool.js +240 -0
  517. package/dist/src/tools/mcp-tool.js.map +1 -0
  518. package/dist/src/tools/mcp-tool.test.d.ts +6 -0
  519. package/dist/src/tools/mcp-tool.test.js +576 -0
  520. package/dist/src/tools/mcp-tool.test.js.map +1 -0
  521. package/dist/src/tools/memoryTool.d.ts +41 -0
  522. package/dist/src/tools/memoryTool.js +435 -0
  523. package/dist/src/tools/memoryTool.js.map +1 -0
  524. package/dist/src/tools/memoryTool.test.d.ts +6 -0
  525. package/dist/src/tools/memoryTool.test.js +420 -0
  526. package/dist/src/tools/memoryTool.test.js.map +1 -0
  527. package/dist/src/tools/modifiable-tool.d.ts +32 -0
  528. package/dist/src/tools/modifiable-tool.js +88 -0
  529. package/dist/src/tools/modifiable-tool.js.map +1 -0
  530. package/dist/src/tools/modifiable-tool.test.d.ts +6 -0
  531. package/dist/src/tools/modifiable-tool.test.js +193 -0
  532. package/dist/src/tools/modifiable-tool.test.js.map +1 -0
  533. package/dist/src/tools/read-file.d.ts +35 -0
  534. package/dist/src/tools/read-file.js +128 -0
  535. package/dist/src/tools/read-file.js.map +1 -0
  536. package/dist/src/tools/read-file.test.d.ts +6 -0
  537. package/dist/src/tools/read-file.test.js +311 -0
  538. package/dist/src/tools/read-file.test.js.map +1 -0
  539. package/dist/src/tools/read-many-files.d.ts +60 -0
  540. package/dist/src/tools/read-many-files.js +416 -0
  541. package/dist/src/tools/read-many-files.js.map +1 -0
  542. package/dist/src/tools/read-many-files.test.d.ts +6 -0
  543. package/dist/src/tools/read-many-files.test.js +565 -0
  544. package/dist/src/tools/read-many-files.test.js.map +1 -0
  545. package/dist/src/tools/ripGrep.d.ts +47 -0
  546. package/dist/src/tools/ripGrep.js +375 -0
  547. package/dist/src/tools/ripGrep.js.map +1 -0
  548. package/dist/src/tools/ripGrep.test.d.ts +6 -0
  549. package/dist/src/tools/ripGrep.test.js +874 -0
  550. package/dist/src/tools/ripGrep.test.js.map +1 -0
  551. package/dist/src/tools/shell.d.ts +23 -0
  552. package/dist/src/tools/shell.js +387 -0
  553. package/dist/src/tools/shell.js.map +1 -0
  554. package/dist/src/tools/shell.test.d.ts +6 -0
  555. package/dist/src/tools/shell.test.js +632 -0
  556. package/dist/src/tools/shell.test.js.map +1 -0
  557. package/dist/src/tools/task.d.ts +59 -0
  558. package/dist/src/tools/task.js +412 -0
  559. package/dist/src/tools/task.js.map +1 -0
  560. package/dist/src/tools/task.test.d.ts +6 -0
  561. package/dist/src/tools/task.test.js +369 -0
  562. package/dist/src/tools/task.test.js.map +1 -0
  563. package/dist/src/tools/todoWrite.d.ts +42 -0
  564. package/dist/src/tools/todoWrite.js +385 -0
  565. package/dist/src/tools/todoWrite.js.map +1 -0
  566. package/dist/src/tools/todoWrite.test.d.ts +6 -0
  567. package/dist/src/tools/todoWrite.test.js +222 -0
  568. package/dist/src/tools/todoWrite.test.js.map +1 -0
  569. package/dist/src/tools/tool-error.d.ts +43 -0
  570. package/dist/src/tools/tool-error.js +58 -0
  571. package/dist/src/tools/tool-error.js.map +1 -0
  572. package/dist/src/tools/tool-names.d.ts +23 -0
  573. package/dist/src/tools/tool-names.js +24 -0
  574. package/dist/src/tools/tool-names.js.map +1 -0
  575. package/dist/src/tools/tool-registry.d.ts +86 -0
  576. package/dist/src/tools/tool-registry.js +369 -0
  577. package/dist/src/tools/tool-registry.js.map +1 -0
  578. package/dist/src/tools/tool-registry.test.d.ts +6 -0
  579. package/dist/src/tools/tool-registry.test.js +332 -0
  580. package/dist/src/tools/tool-registry.test.js.map +1 -0
  581. package/dist/src/tools/tools.d.ts +316 -0
  582. package/dist/src/tools/tools.js +251 -0
  583. package/dist/src/tools/tools.js.map +1 -0
  584. package/dist/src/tools/tools.test.d.ts +6 -0
  585. package/dist/src/tools/tools.test.js +205 -0
  586. package/dist/src/tools/tools.test.js.map +1 -0
  587. package/dist/src/tools/web-fetch.d.ts +31 -0
  588. package/dist/src/tools/web-fetch.js +161 -0
  589. package/dist/src/tools/web-fetch.js.map +1 -0
  590. package/dist/src/tools/web-fetch.test.d.ts +6 -0
  591. package/dist/src/tools/web-fetch.test.js +133 -0
  592. package/dist/src/tools/web-fetch.test.js.map +1 -0
  593. package/dist/src/tools/web-search.d.ts +40 -0
  594. package/dist/src/tools/web-search.js +134 -0
  595. package/dist/src/tools/web-search.js.map +1 -0
  596. package/dist/src/tools/web-search.test.d.ts +6 -0
  597. package/dist/src/tools/web-search.test.js +125 -0
  598. package/dist/src/tools/web-search.test.js.map +1 -0
  599. package/dist/src/tools/write-file.d.ts +52 -0
  600. package/dist/src/tools/write-file.js +298 -0
  601. package/dist/src/tools/write-file.js.map +1 -0
  602. package/dist/src/tools/write-file.test.d.ts +6 -0
  603. package/dist/src/tools/write-file.test.js +436 -0
  604. package/dist/src/tools/write-file.test.js.map +1 -0
  605. package/dist/src/utils/LruCache.d.ts +13 -0
  606. package/dist/src/utils/LruCache.js +38 -0
  607. package/dist/src/utils/LruCache.js.map +1 -0
  608. package/dist/src/utils/bfsFileSearch.d.ts +24 -0
  609. package/dist/src/utils/bfsFileSearch.js +89 -0
  610. package/dist/src/utils/bfsFileSearch.js.map +1 -0
  611. package/dist/src/utils/bfsFileSearch.test.d.ts +6 -0
  612. package/dist/src/utils/bfsFileSearch.test.js +163 -0
  613. package/dist/src/utils/bfsFileSearch.test.js.map +1 -0
  614. package/dist/src/utils/browser.d.ts +13 -0
  615. package/dist/src/utils/browser.js +50 -0
  616. package/dist/src/utils/browser.js.map +1 -0
  617. package/dist/src/utils/editor.d.ts +28 -0
  618. package/dist/src/utils/editor.js +186 -0
  619. package/dist/src/utils/editor.js.map +1 -0
  620. package/dist/src/utils/editor.test.d.ts +6 -0
  621. package/dist/src/utils/editor.test.js +445 -0
  622. package/dist/src/utils/editor.test.js.map +1 -0
  623. package/dist/src/utils/environmentContext.d.ts +21 -0
  624. package/dist/src/utils/environmentContext.js +90 -0
  625. package/dist/src/utils/environmentContext.js.map +1 -0
  626. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  627. package/dist/src/utils/environmentContext.test.js +148 -0
  628. package/dist/src/utils/environmentContext.test.js.map +1 -0
  629. package/dist/src/utils/errorParsing.d.ts +8 -0
  630. package/dist/src/utils/errorParsing.js +93 -0
  631. package/dist/src/utils/errorParsing.js.map +1 -0
  632. package/dist/src/utils/errorParsing.test.d.ts +6 -0
  633. package/dist/src/utils/errorParsing.test.js +172 -0
  634. package/dist/src/utils/errorParsing.test.js.map +1 -0
  635. package/dist/src/utils/errorReporting.d.ts +14 -0
  636. package/dist/src/utils/errorReporting.js +88 -0
  637. package/dist/src/utils/errorReporting.js.map +1 -0
  638. package/dist/src/utils/errorReporting.test.d.ts +6 -0
  639. package/dist/src/utils/errorReporting.test.js +130 -0
  640. package/dist/src/utils/errorReporting.test.js.map +1 -0
  641. package/dist/src/utils/errors.d.ts +33 -0
  642. package/dist/src/utils/errors.js +86 -0
  643. package/dist/src/utils/errors.js.map +1 -0
  644. package/dist/src/utils/fetch.d.ts +11 -0
  645. package/dist/src/utils/fetch.js +51 -0
  646. package/dist/src/utils/fetch.js.map +1 -0
  647. package/dist/src/utils/fileUtils.d.ts +53 -0
  648. package/dist/src/utils/fileUtils.js +283 -0
  649. package/dist/src/utils/fileUtils.js.map +1 -0
  650. package/dist/src/utils/fileUtils.test.d.ts +6 -0
  651. package/dist/src/utils/fileUtils.test.js +364 -0
  652. package/dist/src/utils/fileUtils.test.js.map +1 -0
  653. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  654. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  655. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  656. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  657. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  658. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  659. package/dist/src/utils/filesearch/crawler.d.ts +15 -0
  660. package/dist/src/utils/filesearch/crawler.js +50 -0
  661. package/dist/src/utils/filesearch/crawler.js.map +1 -0
  662. package/dist/src/utils/filesearch/crawler.test.d.ts +6 -0
  663. package/dist/src/utils/filesearch/crawler.test.js +468 -0
  664. package/dist/src/utils/filesearch/crawler.test.js.map +1 -0
  665. package/dist/src/utils/filesearch/fileSearch.d.ts +38 -0
  666. package/dist/src/utils/filesearch/fileSearch.js +191 -0
  667. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  668. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  669. package/dist/src/utils/filesearch/fileSearch.test.js +642 -0
  670. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  671. package/dist/src/utils/filesearch/ignore.d.ts +42 -0
  672. package/dist/src/utils/filesearch/ignore.js +106 -0
  673. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  674. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  675. package/dist/src/utils/filesearch/ignore.test.js +144 -0
  676. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  677. package/dist/src/utils/filesearch/result-cache.d.ts +33 -0
  678. package/dist/src/utils/filesearch/result-cache.js +59 -0
  679. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  680. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  681. package/dist/src/utils/filesearch/result-cache.test.js +46 -0
  682. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  683. package/dist/src/utils/flashFallback.integration.test.d.ts +6 -0
  684. package/dist/src/utils/flashFallback.integration.test.js +119 -0
  685. package/dist/src/utils/flashFallback.integration.test.js.map +1 -0
  686. package/dist/src/utils/formatters.d.ts +6 -0
  687. package/dist/src/utils/formatters.js +16 -0
  688. package/dist/src/utils/formatters.js.map +1 -0
  689. package/dist/src/utils/generateContentResponseUtilities.d.ts +13 -0
  690. package/dist/src/utils/generateContentResponseUtilities.js +80 -0
  691. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -0
  692. package/dist/src/utils/generateContentResponseUtilities.test.d.ts +6 -0
  693. package/dist/src/utils/generateContentResponseUtilities.test.js +235 -0
  694. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -0
  695. package/dist/src/utils/getFolderStructure.d.ts +31 -0
  696. package/dist/src/utils/getFolderStructure.js +246 -0
  697. package/dist/src/utils/getFolderStructure.js.map +1 -0
  698. package/dist/src/utils/getFolderStructure.test.d.ts +6 -0
  699. package/dist/src/utils/getFolderStructure.test.js +282 -0
  700. package/dist/src/utils/getFolderStructure.test.js.map +1 -0
  701. package/dist/src/utils/getPty.d.ts +19 -0
  702. package/dist/src/utils/getPty.js +23 -0
  703. package/dist/src/utils/getPty.js.map +1 -0
  704. package/dist/src/utils/gitIgnoreParser.d.ts +20 -0
  705. package/dist/src/utils/gitIgnoreParser.js +61 -0
  706. package/dist/src/utils/gitIgnoreParser.js.map +1 -0
  707. package/dist/src/utils/gitIgnoreParser.test.d.ts +6 -0
  708. package/dist/src/utils/gitIgnoreParser.test.js +154 -0
  709. package/dist/src/utils/gitIgnoreParser.test.js.map +1 -0
  710. package/dist/src/utils/gitUtils.d.ts +17 -0
  711. package/dist/src/utils/gitUtils.js +61 -0
  712. package/dist/src/utils/gitUtils.js.map +1 -0
  713. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  714. package/dist/src/utils/ignorePatterns.js +220 -0
  715. package/dist/src/utils/ignorePatterns.js.map +1 -0
  716. package/dist/src/utils/ignorePatterns.test.d.ts +6 -0
  717. package/dist/src/utils/ignorePatterns.test.js +250 -0
  718. package/dist/src/utils/ignorePatterns.test.js.map +1 -0
  719. package/dist/src/utils/installationManager.d.ts +16 -0
  720. package/dist/src/utils/installationManager.js +50 -0
  721. package/dist/src/utils/installationManager.js.map +1 -0
  722. package/dist/src/utils/installationManager.test.d.ts +6 -0
  723. package/dist/src/utils/installationManager.test.js +83 -0
  724. package/dist/src/utils/installationManager.test.js.map +1 -0
  725. package/dist/src/utils/language-detection.d.ts +6 -0
  726. package/dist/src/utils/language-detection.js +101 -0
  727. package/dist/src/utils/language-detection.js.map +1 -0
  728. package/dist/src/utils/memoryDiscovery.d.ts +15 -0
  729. package/dist/src/utils/memoryDiscovery.js +271 -0
  730. package/dist/src/utils/memoryDiscovery.js.map +1 -0
  731. package/dist/src/utils/memoryDiscovery.test.d.ts +6 -0
  732. package/dist/src/utils/memoryDiscovery.test.js +219 -0
  733. package/dist/src/utils/memoryDiscovery.test.js.map +1 -0
  734. package/dist/src/utils/memoryImportProcessor.d.ts +42 -0
  735. package/dist/src/utils/memoryImportProcessor.js +296 -0
  736. package/dist/src/utils/memoryImportProcessor.js.map +1 -0
  737. package/dist/src/utils/memoryImportProcessor.test.d.ts +6 -0
  738. package/dist/src/utils/memoryImportProcessor.test.js +573 -0
  739. package/dist/src/utils/memoryImportProcessor.test.js.map +1 -0
  740. package/dist/src/utils/messageInspectors.d.ts +8 -0
  741. package/dist/src/utils/messageInspectors.js +16 -0
  742. package/dist/src/utils/messageInspectors.js.map +1 -0
  743. package/dist/src/utils/nextSpeakerChecker.d.ts +12 -0
  744. package/dist/src/utils/nextSpeakerChecker.js +91 -0
  745. package/dist/src/utils/nextSpeakerChecker.js.map +1 -0
  746. package/dist/src/utils/nextSpeakerChecker.test.d.ts +6 -0
  747. package/dist/src/utils/nextSpeakerChecker.test.js +168 -0
  748. package/dist/src/utils/nextSpeakerChecker.test.js.map +1 -0
  749. package/dist/src/utils/openaiLogger.d.ts +42 -0
  750. package/dist/src/utils/openaiLogger.js +123 -0
  751. package/dist/src/utils/openaiLogger.js.map +1 -0
  752. package/dist/src/utils/partUtils.d.ts +35 -0
  753. package/dist/src/utils/partUtils.js +133 -0
  754. package/dist/src/utils/partUtils.js.map +1 -0
  755. package/dist/src/utils/partUtils.test.d.ts +6 -0
  756. package/dist/src/utils/partUtils.test.js +241 -0
  757. package/dist/src/utils/partUtils.test.js.map +1 -0
  758. package/dist/src/utils/pathReader.d.ts +17 -0
  759. package/dist/src/utils/pathReader.js +92 -0
  760. package/dist/src/utils/pathReader.js.map +1 -0
  761. package/dist/src/utils/pathReader.test.d.ts +6 -0
  762. package/dist/src/utils/pathReader.test.js +363 -0
  763. package/dist/src/utils/pathReader.test.js.map +1 -0
  764. package/dist/src/utils/paths.d.ts +58 -0
  765. package/dist/src/utils/paths.js +159 -0
  766. package/dist/src/utils/paths.js.map +1 -0
  767. package/dist/src/utils/paths.test.d.ts +6 -0
  768. package/dist/src/utils/paths.test.js +225 -0
  769. package/dist/src/utils/paths.test.js.map +1 -0
  770. package/dist/src/utils/projectSummary.d.ts +22 -0
  771. package/dist/src/utils/projectSummary.js +86 -0
  772. package/dist/src/utils/projectSummary.js.map +1 -0
  773. package/dist/src/utils/quotaErrorDetection.d.ts +20 -0
  774. package/dist/src/utils/quotaErrorDetection.js +114 -0
  775. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  776. package/dist/src/utils/quotaErrorDetection.test.d.ts +6 -0
  777. package/dist/src/utils/quotaErrorDetection.test.js +153 -0
  778. package/dist/src/utils/quotaErrorDetection.test.js.map +1 -0
  779. package/dist/src/utils/request-tokenizer/imageTokenizer.d.ts +112 -0
  780. package/dist/src/utils/request-tokenizer/imageTokenizer.js +401 -0
  781. package/dist/src/utils/request-tokenizer/imageTokenizer.js.map +1 -0
  782. package/dist/src/utils/request-tokenizer/imageTokenizer.test.d.ts +6 -0
  783. package/dist/src/utils/request-tokenizer/imageTokenizer.test.js +114 -0
  784. package/dist/src/utils/request-tokenizer/imageTokenizer.test.js.map +1 -0
  785. package/dist/src/utils/request-tokenizer/index.d.ts +18 -0
  786. package/dist/src/utils/request-tokenizer/index.js +30 -0
  787. package/dist/src/utils/request-tokenizer/index.js.map +1 -0
  788. package/dist/src/utils/request-tokenizer/requestTokenizer.d.ts +56 -0
  789. package/dist/src/utils/request-tokenizer/requestTokenizer.js +263 -0
  790. package/dist/src/utils/request-tokenizer/requestTokenizer.js.map +1 -0
  791. package/dist/src/utils/request-tokenizer/requestTokenizer.test.d.ts +6 -0
  792. package/dist/src/utils/request-tokenizer/requestTokenizer.test.js +245 -0
  793. package/dist/src/utils/request-tokenizer/requestTokenizer.test.js.map +1 -0
  794. package/dist/src/utils/request-tokenizer/supportedImageFormats.d.ts +30 -0
  795. package/dist/src/utils/request-tokenizer/supportedImageFormats.js +41 -0
  796. package/dist/src/utils/request-tokenizer/supportedImageFormats.js.map +1 -0
  797. package/dist/src/utils/request-tokenizer/textTokenizer.d.ts +29 -0
  798. package/dist/src/utils/request-tokenizer/textTokenizer.js +88 -0
  799. package/dist/src/utils/request-tokenizer/textTokenizer.js.map +1 -0
  800. package/dist/src/utils/request-tokenizer/textTokenizer.test.d.ts +6 -0
  801. package/dist/src/utils/request-tokenizer/textTokenizer.test.js +253 -0
  802. package/dist/src/utils/request-tokenizer/textTokenizer.test.js.map +1 -0
  803. package/dist/src/utils/request-tokenizer/types.d.ts +55 -0
  804. package/dist/src/utils/request-tokenizer/types.js +7 -0
  805. package/dist/src/utils/request-tokenizer/types.js.map +1 -0
  806. package/dist/src/utils/retry.d.ts +30 -0
  807. package/dist/src/utils/retry.js +288 -0
  808. package/dist/src/utils/retry.js.map +1 -0
  809. package/dist/src/utils/retry.test.d.ts +6 -0
  810. package/dist/src/utils/retry.test.js +452 -0
  811. package/dist/src/utils/retry.test.js.map +1 -0
  812. package/dist/src/utils/safeJsonParse.d.ts +15 -0
  813. package/dist/src/utils/safeJsonParse.js +41 -0
  814. package/dist/src/utils/safeJsonParse.js.map +1 -0
  815. package/dist/src/utils/safeJsonParse.test.d.ts +6 -0
  816. package/dist/src/utils/safeJsonParse.test.js +112 -0
  817. package/dist/src/utils/safeJsonParse.test.js.map +1 -0
  818. package/dist/src/utils/safeJsonStringify.d.ts +13 -0
  819. package/dist/src/utils/safeJsonStringify.js +25 -0
  820. package/dist/src/utils/safeJsonStringify.js.map +1 -0
  821. package/dist/src/utils/safeJsonStringify.test.d.ts +6 -0
  822. package/dist/src/utils/safeJsonStringify.test.js +61 -0
  823. package/dist/src/utils/safeJsonStringify.test.js.map +1 -0
  824. package/dist/src/utils/schemaValidator.d.ts +15 -0
  825. package/dist/src/utils/schemaValidator.js +57 -0
  826. package/dist/src/utils/schemaValidator.js.map +1 -0
  827. package/dist/src/utils/secure-browser-launcher.d.ts +23 -0
  828. package/dist/src/utils/secure-browser-launcher.js +165 -0
  829. package/dist/src/utils/secure-browser-launcher.js.map +1 -0
  830. package/dist/src/utils/secure-browser-launcher.test.d.ts +6 -0
  831. package/dist/src/utils/secure-browser-launcher.test.js +149 -0
  832. package/dist/src/utils/secure-browser-launcher.test.js.map +1 -0
  833. package/dist/src/utils/session.d.ts +6 -0
  834. package/dist/src/utils/session.js +8 -0
  835. package/dist/src/utils/session.js.map +1 -0
  836. package/dist/src/utils/shell-utils.d.ts +121 -0
  837. package/dist/src/utils/shell-utils.js +381 -0
  838. package/dist/src/utils/shell-utils.js.map +1 -0
  839. package/dist/src/utils/shell-utils.test.d.ts +6 -0
  840. package/dist/src/utils/shell-utils.test.js +346 -0
  841. package/dist/src/utils/shell-utils.test.js.map +1 -0
  842. package/dist/src/utils/shellReadOnlyChecker.d.ts +6 -0
  843. package/dist/src/utils/shellReadOnlyChecker.js +247 -0
  844. package/dist/src/utils/shellReadOnlyChecker.js.map +1 -0
  845. package/dist/src/utils/shellReadOnlyChecker.test.d.ts +6 -0
  846. package/dist/src/utils/shellReadOnlyChecker.test.js +47 -0
  847. package/dist/src/utils/shellReadOnlyChecker.test.js.map +1 -0
  848. package/dist/src/utils/subagentGenerator.d.ts +20 -0
  849. package/dist/src/utils/subagentGenerator.js +116 -0
  850. package/dist/src/utils/subagentGenerator.js.map +1 -0
  851. package/dist/src/utils/subagentGenerator.test.d.ts +6 -0
  852. package/dist/src/utils/subagentGenerator.test.js +158 -0
  853. package/dist/src/utils/subagentGenerator.test.js.map +1 -0
  854. package/dist/src/utils/summarizer.d.ts +25 -0
  855. package/dist/src/utils/summarizer.js +51 -0
  856. package/dist/src/utils/summarizer.js.map +1 -0
  857. package/dist/src/utils/summarizer.test.d.ts +6 -0
  858. package/dist/src/utils/summarizer.test.js +131 -0
  859. package/dist/src/utils/summarizer.test.js.map +1 -0
  860. package/dist/src/utils/systemEncoding.d.ts +40 -0
  861. package/dist/src/utils/systemEncoding.js +149 -0
  862. package/dist/src/utils/systemEncoding.js.map +1 -0
  863. package/dist/src/utils/systemEncoding.test.d.ts +6 -0
  864. package/dist/src/utils/systemEncoding.test.js +368 -0
  865. package/dist/src/utils/systemEncoding.test.js.map +1 -0
  866. package/dist/src/utils/testUtils.d.ts +29 -0
  867. package/dist/src/utils/testUtils.js +70 -0
  868. package/dist/src/utils/testUtils.js.map +1 -0
  869. package/dist/src/utils/textUtils.d.ts +13 -0
  870. package/dist/src/utils/textUtils.js +28 -0
  871. package/dist/src/utils/textUtils.js.map +1 -0
  872. package/dist/src/utils/tool-utils.d.ts +19 -0
  873. package/dist/src/utils/tool-utils.js +58 -0
  874. package/dist/src/utils/tool-utils.js.map +1 -0
  875. package/dist/src/utils/tool-utils.test.d.ts +6 -0
  876. package/dist/src/utils/tool-utils.test.js +61 -0
  877. package/dist/src/utils/tool-utils.test.js.map +1 -0
  878. package/dist/src/utils/userAccountManager.d.ts +20 -0
  879. package/dist/src/utils/userAccountManager.js +114 -0
  880. package/dist/src/utils/userAccountManager.js.map +1 -0
  881. package/dist/src/utils/userAccountManager.test.d.ts +6 -0
  882. package/dist/src/utils/userAccountManager.test.js +223 -0
  883. package/dist/src/utils/userAccountManager.test.js.map +1 -0
  884. package/dist/src/utils/workspaceContext.d.ts +66 -0
  885. package/dist/src/utils/workspaceContext.js +171 -0
  886. package/dist/src/utils/workspaceContext.js.map +1 -0
  887. package/dist/src/utils/workspaceContext.test.d.ts +6 -0
  888. package/dist/src/utils/workspaceContext.test.js +318 -0
  889. package/dist/src/utils/workspaceContext.test.js.map +1 -0
  890. package/dist/src/utils/yaml-parser.d.ts +29 -0
  891. package/dist/src/utils/yaml-parser.js +172 -0
  892. package/dist/src/utils/yaml-parser.js.map +1 -0
  893. package/dist/src/utils/yaml-parser.test.d.ts +6 -0
  894. package/dist/src/utils/yaml-parser.test.js +170 -0
  895. package/dist/src/utils/yaml-parser.test.js.map +1 -0
  896. package/dist/tsconfig.tsbuildinfo +1 -0
  897. package/package.json +89 -0
@@ -0,0 +1,566 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Blackbox
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import crypto from 'crypto';
7
+ import path from 'node:path';
8
+ import { promises as fs } from 'node:fs';
9
+ import * as os from 'os';
10
+ import open from 'open';
11
+ import { EventEmitter } from 'events';
12
+ import { randomUUID } from 'node:crypto';
13
+ import { SharedTokenManager, TokenManagerError, TokenError, } from './sharedTokenManager.js';
14
+ // OAuth Endpoints
15
+ const BLACKBOX_OAUTH_BASE_URL = 'https://chat.blackboxcli.ai';
16
+ const BLACKBOX_OAUTH_DEVICE_CODE_ENDPOINT = `${BLACKBOX_OAUTH_BASE_URL}/api/v1/oauth2/device/code`;
17
+ const BLACKBOX_OAUTH_TOKEN_ENDPOINT = `${BLACKBOX_OAUTH_BASE_URL}/api/v1/oauth2/token`;
18
+ // OAuth Client Configuration
19
+ const BLACKBOX_OAUTH_CLIENT_ID = 'f0304373b74a44d2b584a3fb70ca9e56';
20
+ const BLACKBOX_OAUTH_SCOPE = 'openid profile email model.completion';
21
+ const BLACKBOX_OAUTH_GRANT_TYPE = 'urn:ietf:params:oauth:grant-type:device_code';
22
+ // File System Configuration
23
+ const BLACKBOX_DIR = '.blackboxcli';
24
+ const BLACKBOX_CREDENTIAL_FILENAME = 'oauth_creds.json';
25
+ /**
26
+ * PKCE (Proof Key for Code Exchange) utilities
27
+ * Implements RFC 7636 - Proof Key for Code Exchange by OAuth Public Clients
28
+ */
29
+ /**
30
+ * Generate a random code verifier for PKCE
31
+ * @returns A random string of 43-128 characters
32
+ */
33
+ export function generateCodeVerifier() {
34
+ return crypto.randomBytes(32).toString('base64url');
35
+ }
36
+ /**
37
+ * Generate a code challenge from a code verifier using SHA-256
38
+ * @param codeVerifier The code verifier string
39
+ * @returns The code challenge string
40
+ */
41
+ export function generateCodeChallenge(codeVerifier) {
42
+ const hash = crypto.createHash('sha256');
43
+ hash.update(codeVerifier);
44
+ return hash.digest('base64url');
45
+ }
46
+ /**
47
+ * Generate PKCE code verifier and challenge pair
48
+ * @returns Object containing code_verifier and code_challenge
49
+ */
50
+ export function generatePKCEPair() {
51
+ const codeVerifier = generateCodeVerifier();
52
+ const codeChallenge = generateCodeChallenge(codeVerifier);
53
+ return { code_verifier: codeVerifier, code_challenge: codeChallenge };
54
+ }
55
+ /**
56
+ * Convert object to URL-encoded form data
57
+ * @param data The object to convert
58
+ * @returns URL-encoded string
59
+ */
60
+ function objectToUrlEncoded(data) {
61
+ return Object.keys(data)
62
+ .map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`)
63
+ .join('&');
64
+ }
65
+ /**
66
+ * Custom error class to indicate that credentials should be cleared
67
+ * This is thrown when a 400 error occurs during token refresh, indicating
68
+ * that the refresh token is expired or invalid
69
+ */
70
+ export class CredentialsClearRequiredError extends Error {
71
+ originalError;
72
+ constructor(message, originalError) {
73
+ super(message);
74
+ this.originalError = originalError;
75
+ this.name = 'CredentialsClearRequiredError';
76
+ }
77
+ }
78
+ /**
79
+ * Type guard to check if device authorization was successful
80
+ */
81
+ export function isDeviceAuthorizationSuccess(response) {
82
+ return 'device_code' in response;
83
+ }
84
+ /**
85
+ * Type guard to check if device token response was successful
86
+ */
87
+ export function isDeviceTokenSuccess(response) {
88
+ return ('access_token' in response &&
89
+ response.access_token !== null &&
90
+ response.access_token !== undefined &&
91
+ typeof response.access_token === 'string' &&
92
+ response.access_token.length > 0);
93
+ }
94
+ /**
95
+ * Type guard to check if device token response is pending
96
+ */
97
+ export function isDeviceTokenPending(response) {
98
+ return ('status' in response &&
99
+ response.status === 'pending');
100
+ }
101
+ /**
102
+ * Type guard to check if response is an error
103
+ */
104
+ export function isErrorResponse(response) {
105
+ return 'error' in response;
106
+ }
107
+ /**
108
+ * Blackbox OAuth2 client implementation
109
+ */
110
+ export class BlackboxOAuth2Client {
111
+ credentials = {};
112
+ sharedManager;
113
+ constructor() {
114
+ this.sharedManager = SharedTokenManager.getInstance();
115
+ }
116
+ setCredentials(credentials) {
117
+ this.credentials = credentials;
118
+ }
119
+ getCredentials() {
120
+ return this.credentials;
121
+ }
122
+ async getAccessToken() {
123
+ try {
124
+ // Always use shared manager for consistency - this prevents race conditions
125
+ // between local credential state and shared state
126
+ const credentials = await this.sharedManager.getValidCredentials(this);
127
+ return { token: credentials.access_token };
128
+ }
129
+ catch (error) {
130
+ console.warn('Failed to get access token from shared manager:', error);
131
+ // Don't use fallback to local credentials to prevent race conditions
132
+ // All token management should go through SharedTokenManager for consistency
133
+ // This ensures single source of truth and prevents cross-session issues
134
+ return { token: undefined };
135
+ }
136
+ }
137
+ async requestDeviceAuthorization(options) {
138
+ const bodyData = {
139
+ client_id: BLACKBOX_OAUTH_CLIENT_ID,
140
+ scope: options.scope,
141
+ code_challenge: options.code_challenge,
142
+ code_challenge_method: options.code_challenge_method,
143
+ };
144
+ const response = await fetch(BLACKBOX_OAUTH_DEVICE_CODE_ENDPOINT, {
145
+ method: 'POST',
146
+ headers: {
147
+ 'Content-Type': 'application/x-www-form-urlencoded',
148
+ Accept: 'application/json',
149
+ 'x-request-id': randomUUID(),
150
+ },
151
+ body: objectToUrlEncoded(bodyData),
152
+ });
153
+ if (!response.ok) {
154
+ const errorData = await response.text();
155
+ throw new Error(`Device authorization failed: ${response.status} ${response.statusText}. Response: ${errorData}`);
156
+ }
157
+ const result = (await response.json());
158
+ console.debug('Device authorization result:', result);
159
+ // Check if the response indicates success
160
+ if (!isDeviceAuthorizationSuccess(result)) {
161
+ const errorData = result;
162
+ throw new Error(`Device authorization failed: ${errorData?.error || 'Unknown error'} - ${errorData?.error_description || 'No details provided'}`);
163
+ }
164
+ return result;
165
+ }
166
+ async pollDeviceToken(options) {
167
+ const bodyData = {
168
+ grant_type: BLACKBOX_OAUTH_GRANT_TYPE,
169
+ client_id: BLACKBOX_OAUTH_CLIENT_ID,
170
+ device_code: options.device_code,
171
+ code_verifier: options.code_verifier,
172
+ };
173
+ const response = await fetch(BLACKBOX_OAUTH_TOKEN_ENDPOINT, {
174
+ method: 'POST',
175
+ headers: {
176
+ 'Content-Type': 'application/x-www-form-urlencoded',
177
+ Accept: 'application/json',
178
+ },
179
+ body: objectToUrlEncoded(bodyData),
180
+ });
181
+ if (!response.ok) {
182
+ // Parse the response as JSON to check for OAuth RFC 8628 standard errors
183
+ try {
184
+ const errorData = (await response.json());
185
+ // According to OAuth RFC 8628, handle standard polling responses
186
+ if (response.status === 400 &&
187
+ errorData.error === 'authorization_pending') {
188
+ // User has not yet approved the authorization request. Continue polling.
189
+ return { status: 'pending' };
190
+ }
191
+ if (response.status === 429 && errorData.error === 'slow_down') {
192
+ // Client is polling too frequently. Return pending with slowDown flag.
193
+ return {
194
+ status: 'pending',
195
+ slowDown: true,
196
+ };
197
+ }
198
+ // Handle other 400 errors (access_denied, expired_token, etc.) as real errors
199
+ // For other errors, throw with proper error information
200
+ const error = new Error(`Device token poll failed: ${errorData.error || 'Unknown error'} - ${errorData.error_description || 'No details provided'}`);
201
+ error.status = response.status;
202
+ throw error;
203
+ }
204
+ catch (_parseError) {
205
+ // If JSON parsing fails, fall back to text response
206
+ const errorData = await response.text();
207
+ const error = new Error(`Device token poll failed: ${response.status} ${response.statusText}. Response: ${errorData}`);
208
+ error.status = response.status;
209
+ throw error;
210
+ }
211
+ }
212
+ return (await response.json());
213
+ }
214
+ async refreshAccessToken() {
215
+ if (!this.credentials.refresh_token) {
216
+ throw new Error('No refresh token available');
217
+ }
218
+ const bodyData = {
219
+ grant_type: 'refresh_token',
220
+ refresh_token: this.credentials.refresh_token,
221
+ client_id: BLACKBOX_OAUTH_CLIENT_ID,
222
+ };
223
+ const response = await fetch(BLACKBOX_OAUTH_TOKEN_ENDPOINT, {
224
+ method: 'POST',
225
+ headers: {
226
+ 'Content-Type': 'application/x-www-form-urlencoded',
227
+ Accept: 'application/json',
228
+ },
229
+ body: objectToUrlEncoded(bodyData),
230
+ });
231
+ if (!response.ok) {
232
+ const errorData = await response.text();
233
+ // Handle 400 errors which might indicate refresh token expiry
234
+ if (response.status === 400) {
235
+ await clearBlackboxCredentials();
236
+ throw new CredentialsClearRequiredError("Refresh token expired or invalid. Please use '/auth' to re-authenticate.", { status: response.status, response: errorData });
237
+ }
238
+ throw new Error(`Token refresh failed: ${response.status} ${response.statusText}. Response: ${errorData}`);
239
+ }
240
+ const responseData = (await response.json());
241
+ // Check if the response indicates success
242
+ if (isErrorResponse(responseData)) {
243
+ const errorData = responseData;
244
+ throw new Error(`Token refresh failed: ${errorData?.error || 'Unknown error'} - ${errorData?.error_description || 'No details provided'}`);
245
+ }
246
+ // Handle successful response
247
+ const tokenData = responseData;
248
+ const tokens = {
249
+ access_token: tokenData.access_token,
250
+ token_type: tokenData.token_type,
251
+ // Use new refresh token if provided, otherwise preserve existing one
252
+ refresh_token: tokenData.refresh_token || this.credentials.refresh_token,
253
+ resource_url: tokenData.resource_url, // Include resource_url if provided
254
+ expiry_date: Date.now() + tokenData.expires_in * 1000,
255
+ };
256
+ this.setCredentials(tokens);
257
+ // Note: File caching is now handled by SharedTokenManager
258
+ // to prevent cross-session token invalidation issues
259
+ return responseData;
260
+ }
261
+ }
262
+ export var BlackboxOAuth2Event;
263
+ (function (BlackboxOAuth2Event) {
264
+ BlackboxOAuth2Event["AuthUri"] = "auth-uri";
265
+ BlackboxOAuth2Event["AuthProgress"] = "auth-progress";
266
+ BlackboxOAuth2Event["AuthCancel"] = "auth-cancel";
267
+ })(BlackboxOAuth2Event || (BlackboxOAuth2Event = {}));
268
+ /**
269
+ * Global event emitter instance for BlackboxOAuth2 authentication events
270
+ */
271
+ export const blackboxOAuth2Events = new EventEmitter();
272
+ export async function getBlackboxOAuthClient(config) {
273
+ const client = new BlackboxOAuth2Client();
274
+ // Use shared token manager to get valid credentials with cross-session synchronization
275
+ const sharedManager = SharedTokenManager.getInstance();
276
+ try {
277
+ // Try to get valid credentials from shared cache first
278
+ const credentials = await sharedManager.getValidCredentials(client);
279
+ client.setCredentials(credentials);
280
+ return client;
281
+ }
282
+ catch (error) {
283
+ console.debug('Shared token manager failed, attempting device flow:', error);
284
+ // Handle specific token manager errors
285
+ if (error instanceof TokenManagerError) {
286
+ switch (error.type) {
287
+ case TokenError.NO_REFRESH_TOKEN:
288
+ console.debug('No refresh token available, proceeding with device flow');
289
+ break;
290
+ case TokenError.REFRESH_FAILED:
291
+ console.debug('Token refresh failed, proceeding with device flow');
292
+ break;
293
+ case TokenError.NETWORK_ERROR:
294
+ console.warn('Network error during token refresh, trying device flow');
295
+ break;
296
+ default:
297
+ console.warn('Token manager error:', error.message);
298
+ }
299
+ }
300
+ // If shared manager fails, check if we have cached credentials for device flow
301
+ if (await loadCachedBlackboxCredentials(client)) {
302
+ // We have cached credentials but they might be expired
303
+ // Try device flow instead of forcing refresh
304
+ const result = await authWithBlackboxDeviceFlow(client, config);
305
+ if (!result.success) {
306
+ throw new Error('Blackbox OAuth authentication failed');
307
+ }
308
+ return client;
309
+ }
310
+ // No cached credentials, use device authorization flow for authentication
311
+ const result = await authWithBlackboxDeviceFlow(client, config);
312
+ if (!result.success) {
313
+ // Only emit timeout event if the failure reason is actually timeout
314
+ // Other error types (401, 429, etc.) have already emitted their specific events
315
+ if (result.reason === 'timeout') {
316
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'timeout', 'Authentication timed out. Please try again or select a different authentication method.');
317
+ }
318
+ // Throw error with appropriate message based on failure reason
319
+ switch (result.reason) {
320
+ case 'timeout':
321
+ throw new Error('Blackbox OAuth authentication timed out');
322
+ case 'cancelled':
323
+ throw new Error('Blackbox OAuth authentication was cancelled by user');
324
+ case 'rate_limit':
325
+ throw new Error('Too many request for Blackbox OAuth authentication, please try again later.');
326
+ case 'error':
327
+ default:
328
+ throw new Error('Blackbox OAuth authentication failed');
329
+ }
330
+ }
331
+ return client;
332
+ }
333
+ }
334
+ async function authWithBlackboxDeviceFlow(client, config) {
335
+ let isCancelled = false;
336
+ // Set up cancellation listener
337
+ const cancelHandler = () => {
338
+ isCancelled = true;
339
+ };
340
+ blackboxOAuth2Events.once(BlackboxOAuth2Event.AuthCancel, cancelHandler);
341
+ try {
342
+ // Generate PKCE code verifier and challenge
343
+ const { code_verifier, code_challenge } = generatePKCEPair();
344
+ // Request device authorization
345
+ const deviceAuth = await client.requestDeviceAuthorization({
346
+ scope: BLACKBOX_OAUTH_SCOPE,
347
+ code_challenge,
348
+ code_challenge_method: 'S256',
349
+ });
350
+ // Ensure we have a successful authorization response
351
+ if (!isDeviceAuthorizationSuccess(deviceAuth)) {
352
+ const errorData = deviceAuth;
353
+ throw new Error(`Device authorization failed: ${errorData?.error || 'Unknown error'} - ${errorData?.error_description || 'No details provided'}`);
354
+ }
355
+ // Emit device authorization event for UI integration immediately
356
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthUri, deviceAuth);
357
+ const showFallbackMessage = () => {
358
+ console.log('\n=== Blackbox OAuth Device Authorization ===');
359
+ console.log('Please visit the following URL in your browser to authorize:');
360
+ console.log(`\n${deviceAuth.verification_uri_complete}\n`);
361
+ console.log('Waiting for authorization to complete...\n');
362
+ };
363
+ // If browser launch is not suppressed, try to open the URL
364
+ if (!config.isBrowserLaunchSuppressed()) {
365
+ try {
366
+ const childProcess = await open(deviceAuth.verification_uri_complete);
367
+ // IMPORTANT: Attach an error handler to the returned child process.
368
+ // Without this, if `open` fails to spawn a process (e.g., `xdg-open` is not found
369
+ // in a minimal Docker container), it will emit an unhandled 'error' event,
370
+ // causing the entire Node.js process to crash.
371
+ if (childProcess) {
372
+ childProcess.on('error', () => {
373
+ console.debug('Failed to open browser. Visit this URL to authorize:');
374
+ showFallbackMessage();
375
+ });
376
+ }
377
+ }
378
+ catch (_err) {
379
+ showFallbackMessage();
380
+ }
381
+ }
382
+ else {
383
+ // Browser launch is suppressed, show fallback message
384
+ showFallbackMessage();
385
+ }
386
+ // Emit auth progress event
387
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'polling', 'Waiting for authorization...');
388
+ console.debug('Waiting for authorization...\n');
389
+ // Poll for the token
390
+ let pollInterval = 2000; // 2 seconds, can be increased if slow_down is received
391
+ const maxAttempts = Math.ceil(deviceAuth.expires_in / (pollInterval / 1000));
392
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
393
+ // Check if authentication was cancelled
394
+ if (isCancelled) {
395
+ console.debug('\nAuthentication cancelled by user.');
396
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'error', 'Authentication cancelled by user.');
397
+ return { success: false, reason: 'cancelled' };
398
+ }
399
+ try {
400
+ console.debug('polling for token...');
401
+ const tokenResponse = await client.pollDeviceToken({
402
+ device_code: deviceAuth.device_code,
403
+ code_verifier,
404
+ });
405
+ // Check if the response is successful and contains token data
406
+ if (isDeviceTokenSuccess(tokenResponse)) {
407
+ const tokenData = tokenResponse;
408
+ // Convert to BlackboxCredentials format
409
+ const credentials = {
410
+ access_token: tokenData.access_token, // Safe to assert as non-null due to isDeviceTokenSuccess check
411
+ refresh_token: tokenData.refresh_token || undefined,
412
+ token_type: tokenData.token_type,
413
+ resource_url: tokenData.resource_url,
414
+ expiry_date: tokenData.expires_in
415
+ ? Date.now() + tokenData.expires_in * 1000
416
+ : undefined,
417
+ };
418
+ client.setCredentials(credentials);
419
+ // Cache the new tokens
420
+ await cacheBlackboxCredentials(credentials);
421
+ // Emit auth progress success event
422
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'success', 'Authentication successful! Access token obtained.');
423
+ console.debug('Authentication successful! Access token obtained.');
424
+ return { success: true };
425
+ }
426
+ // Check if the response is pending
427
+ if (isDeviceTokenPending(tokenResponse)) {
428
+ const pendingData = tokenResponse;
429
+ // Handle slow_down error by increasing poll interval
430
+ if (pendingData.slowDown) {
431
+ pollInterval = Math.min(pollInterval * 1.5, 10000); // Increase by 50%, max 10 seconds
432
+ console.debug(`\nServer requested to slow down, increasing poll interval to ${pollInterval}ms'`);
433
+ }
434
+ else {
435
+ pollInterval = 2000; // Reset to default interval
436
+ }
437
+ // Emit polling progress event
438
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'polling', `Polling... (attempt ${attempt + 1}/${maxAttempts})`);
439
+ // Wait with cancellation check every 100ms
440
+ await new Promise((resolve) => {
441
+ const checkInterval = 100; // Check every 100ms
442
+ let elapsedTime = 0;
443
+ const intervalId = setInterval(() => {
444
+ elapsedTime += checkInterval;
445
+ // Check for cancellation during wait
446
+ if (isCancelled) {
447
+ clearInterval(intervalId);
448
+ resolve();
449
+ return;
450
+ }
451
+ // Complete wait when interval is reached
452
+ if (elapsedTime >= pollInterval) {
453
+ clearInterval(intervalId);
454
+ resolve();
455
+ return;
456
+ }
457
+ }, checkInterval);
458
+ });
459
+ // Check for cancellation after waiting
460
+ if (isCancelled) {
461
+ console.debug('\nAuthentication cancelled by user.');
462
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'error', 'Authentication cancelled by user.');
463
+ return { success: false, reason: 'cancelled' };
464
+ }
465
+ continue;
466
+ }
467
+ // Handle error response
468
+ if (isErrorResponse(tokenResponse)) {
469
+ const errorData = tokenResponse;
470
+ throw new Error(`Token polling failed: ${errorData?.error || 'Unknown error'} - ${errorData?.error_description || 'No details provided'}`);
471
+ }
472
+ }
473
+ catch (error) {
474
+ // Handle specific error cases
475
+ const errorMessage = error instanceof Error ? error.message : String(error);
476
+ const statusCode = error instanceof Error
477
+ ? error.status
478
+ : null;
479
+ if (errorMessage.includes('401') || statusCode === 401) {
480
+ const message = 'Device code expired or invalid, please restart the authorization process.';
481
+ // Emit error event
482
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'error', message);
483
+ return { success: false, reason: 'error' };
484
+ }
485
+ // Handle 429 Too Many Requests error
486
+ if (errorMessage.includes('429') || statusCode === 429) {
487
+ const message = 'Too many requests. The server is rate limiting our requests. Please select a different authentication method or try again later.';
488
+ // Emit rate limit event to notify user
489
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'rate_limit', message);
490
+ console.log('\n' + message);
491
+ // Return false to stop polling and go back to auth selection
492
+ return { success: false, reason: 'rate_limit' };
493
+ }
494
+ const message = `Error polling for token: ${errorMessage}`;
495
+ // Emit error event
496
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'error', message);
497
+ // Check for cancellation before waiting
498
+ if (isCancelled) {
499
+ return { success: false, reason: 'cancelled' };
500
+ }
501
+ await new Promise((resolve) => setTimeout(resolve, pollInterval));
502
+ }
503
+ }
504
+ const timeoutMessage = 'Authorization timeout, please restart the process.';
505
+ // Emit timeout error event
506
+ blackboxOAuth2Events.emit(BlackboxOAuth2Event.AuthProgress, 'timeout', timeoutMessage);
507
+ console.error('\n' + timeoutMessage);
508
+ return { success: false, reason: 'timeout' };
509
+ }
510
+ catch (error) {
511
+ const errorMessage = error instanceof Error ? error.message : String(error);
512
+ console.error('Device authorization flow failed:', errorMessage);
513
+ return { success: false, reason: 'error' };
514
+ }
515
+ finally {
516
+ // Clean up event listener
517
+ blackboxOAuth2Events.off(BlackboxOAuth2Event.AuthCancel, cancelHandler);
518
+ }
519
+ }
520
+ async function loadCachedBlackboxCredentials(client) {
521
+ try {
522
+ const keyFile = getBlackboxCachedCredentialPath();
523
+ const creds = await fs.readFile(keyFile, 'utf-8');
524
+ const credentials = JSON.parse(creds);
525
+ client.setCredentials(credentials);
526
+ // Verify that the credentials are still valid
527
+ const { token } = await client.getAccessToken();
528
+ if (!token) {
529
+ return false;
530
+ }
531
+ return true;
532
+ }
533
+ catch (_) {
534
+ return false;
535
+ }
536
+ }
537
+ async function cacheBlackboxCredentials(credentials) {
538
+ const filePath = getBlackboxCachedCredentialPath();
539
+ await fs.mkdir(path.dirname(filePath), { recursive: true });
540
+ const credString = JSON.stringify(credentials, null, 2);
541
+ await fs.writeFile(filePath, credString);
542
+ }
543
+ /**
544
+ * Clear cached Blackbox credentials from disk
545
+ * This is useful when credentials have expired or need to be reset
546
+ */
547
+ export async function clearBlackboxCredentials() {
548
+ try {
549
+ const filePath = getBlackboxCachedCredentialPath();
550
+ await fs.unlink(filePath);
551
+ console.debug('Cached Blackbox credentials cleared successfully.');
552
+ }
553
+ catch (error) {
554
+ // If file doesn't exist or can't be deleted, we consider it cleared
555
+ if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
556
+ // File doesn't exist, already cleared
557
+ return;
558
+ }
559
+ // Log other errors but don't throw - clearing credentials should be non-critical
560
+ console.warn('Warning: Failed to clear cached Blackbox credentials:', error);
561
+ }
562
+ }
563
+ function getBlackboxCachedCredentialPath() {
564
+ return path.join(os.homedir(), BLACKBOX_DIR, BLACKBOX_CREDENTIAL_FILENAME);
565
+ }
566
+ //# sourceMappingURL=blackboxOAuth2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blackboxOAuth2.js","sourceRoot":"","sources":["../../../src/blackbox/blackboxOAuth2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};