erosolar-cli 1.7.392 → 1.7.393

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 (757) hide show
  1. package/dist/StringUtils.d.ts +8 -0
  2. package/dist/StringUtils.d.ts.map +1 -0
  3. package/dist/StringUtils.js +11 -0
  4. package/dist/StringUtils.js.map +1 -0
  5. package/dist/adapters/browser/index.d.ts +12 -0
  6. package/dist/adapters/browser/index.d.ts.map +1 -0
  7. package/dist/adapters/browser/index.js +11 -0
  8. package/dist/adapters/browser/index.js.map +1 -0
  9. package/dist/adapters/node/index.d.ts +17 -0
  10. package/dist/adapters/node/index.d.ts.map +1 -0
  11. package/dist/adapters/node/index.js +35 -0
  12. package/dist/adapters/node/index.js.map +1 -0
  13. package/dist/adapters/remote/index.d.ts +13 -0
  14. package/dist/adapters/remote/index.d.ts.map +1 -0
  15. package/dist/adapters/remote/index.js +20 -0
  16. package/dist/adapters/remote/index.js.map +1 -0
  17. package/dist/adapters/types.d.ts +14 -0
  18. package/dist/adapters/types.d.ts.map +1 -0
  19. package/dist/adapters/types.js +2 -0
  20. package/dist/adapters/types.js.map +1 -0
  21. package/dist/bin/selfTest.d.ts +14 -0
  22. package/dist/bin/selfTest.d.ts.map +1 -0
  23. package/dist/bin/selfTest.js +304 -0
  24. package/dist/bin/selfTest.js.map +1 -0
  25. package/dist/browser/BrowserSessionManager.d.ts +307 -0
  26. package/dist/browser/BrowserSessionManager.d.ts.map +1 -0
  27. package/dist/browser/BrowserSessionManager.js +713 -0
  28. package/dist/browser/BrowserSessionManager.js.map +1 -0
  29. package/dist/capabilities/advancedTestGenerationCapability.d.ts +17 -0
  30. package/dist/capabilities/advancedTestGenerationCapability.d.ts.map +1 -0
  31. package/dist/capabilities/advancedTestGenerationCapability.js +28 -0
  32. package/dist/capabilities/advancedTestGenerationCapability.js.map +1 -0
  33. package/dist/capabilities/askUserCapability.d.ts +21 -0
  34. package/dist/capabilities/askUserCapability.d.ts.map +1 -0
  35. package/dist/capabilities/askUserCapability.js +155 -0
  36. package/dist/capabilities/askUserCapability.js.map +1 -0
  37. package/dist/capabilities/bashCapability.d.ts +13 -0
  38. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  39. package/dist/capabilities/bashCapability.js +24 -0
  40. package/dist/capabilities/bashCapability.js.map +1 -0
  41. package/dist/capabilities/browserAutomationCapability.d.ts +37 -0
  42. package/dist/capabilities/browserAutomationCapability.d.ts.map +1 -0
  43. package/dist/capabilities/browserAutomationCapability.js +49 -0
  44. package/dist/capabilities/browserAutomationCapability.js.map +1 -0
  45. package/dist/capabilities/buildCapability.d.ts +24 -0
  46. package/dist/capabilities/buildCapability.d.ts.map +1 -0
  47. package/dist/capabilities/buildCapability.js +25 -0
  48. package/dist/capabilities/buildCapability.js.map +1 -0
  49. package/dist/capabilities/cloudCapability.d.ts +13 -0
  50. package/dist/capabilities/cloudCapability.d.ts.map +1 -0
  51. package/dist/capabilities/cloudCapability.js +38 -0
  52. package/dist/capabilities/cloudCapability.js.map +1 -0
  53. package/dist/capabilities/codeAnalysisCapability.d.ts +13 -0
  54. package/dist/capabilities/codeAnalysisCapability.d.ts.map +1 -0
  55. package/dist/capabilities/codeAnalysisCapability.js +24 -0
  56. package/dist/capabilities/codeAnalysisCapability.js.map +1 -0
  57. package/dist/capabilities/codeGenerationCapability.d.ts +13 -0
  58. package/dist/capabilities/codeGenerationCapability.d.ts.map +1 -0
  59. package/dist/capabilities/codeGenerationCapability.js +25 -0
  60. package/dist/capabilities/codeGenerationCapability.js.map +1 -0
  61. package/dist/capabilities/codeQualityCapability.d.ts +13 -0
  62. package/dist/capabilities/codeQualityCapability.d.ts.map +1 -0
  63. package/dist/capabilities/codeQualityCapability.js +25 -0
  64. package/dist/capabilities/codeQualityCapability.js.map +1 -0
  65. package/dist/capabilities/dependencySecurityCapability.d.ts +13 -0
  66. package/dist/capabilities/dependencySecurityCapability.d.ts.map +1 -0
  67. package/dist/capabilities/dependencySecurityCapability.js +24 -0
  68. package/dist/capabilities/dependencySecurityCapability.js.map +1 -0
  69. package/dist/capabilities/devCapability.d.ts +13 -0
  70. package/dist/capabilities/devCapability.d.ts.map +1 -0
  71. package/dist/capabilities/devCapability.js +24 -0
  72. package/dist/capabilities/devCapability.js.map +1 -0
  73. package/dist/capabilities/editCapability.d.ts +17 -0
  74. package/dist/capabilities/editCapability.d.ts.map +1 -0
  75. package/dist/capabilities/editCapability.js +27 -0
  76. package/dist/capabilities/editCapability.js.map +1 -0
  77. package/dist/capabilities/emailCapability.d.ts +12 -0
  78. package/dist/capabilities/emailCapability.d.ts.map +1 -0
  79. package/dist/capabilities/emailCapability.js +22 -0
  80. package/dist/capabilities/emailCapability.js.map +1 -0
  81. package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts +17 -0
  82. package/dist/capabilities/enhancedCodeIntelligenceCapability.d.ts.map +1 -0
  83. package/dist/capabilities/enhancedCodeIntelligenceCapability.js +28 -0
  84. package/dist/capabilities/enhancedCodeIntelligenceCapability.js.map +1 -0
  85. package/dist/capabilities/enhancedDevWorkflowCapability.d.ts +17 -0
  86. package/dist/capabilities/enhancedDevWorkflowCapability.d.ts.map +1 -0
  87. package/dist/capabilities/enhancedDevWorkflowCapability.js +28 -0
  88. package/dist/capabilities/enhancedDevWorkflowCapability.js.map +1 -0
  89. package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
  90. package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
  91. package/dist/capabilities/enhancedGitCapability.js +220 -0
  92. package/dist/capabilities/enhancedGitCapability.js.map +1 -0
  93. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  94. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  95. package/dist/capabilities/filesystemCapability.js +24 -0
  96. package/dist/capabilities/filesystemCapability.js.map +1 -0
  97. package/dist/capabilities/frontendTestingCapability.d.ts +13 -0
  98. package/dist/capabilities/frontendTestingCapability.d.ts.map +1 -0
  99. package/dist/capabilities/frontendTestingCapability.js +28 -0
  100. package/dist/capabilities/frontendTestingCapability.js.map +1 -0
  101. package/dist/capabilities/globCapability.d.ts +17 -0
  102. package/dist/capabilities/globCapability.d.ts.map +1 -0
  103. package/dist/capabilities/globCapability.js +27 -0
  104. package/dist/capabilities/globCapability.js.map +1 -0
  105. package/dist/capabilities/index.d.ts +26 -0
  106. package/dist/capabilities/index.d.ts.map +1 -0
  107. package/dist/capabilities/index.js +26 -0
  108. package/dist/capabilities/index.js.map +1 -0
  109. package/dist/capabilities/interactionCapability.d.ts +12 -0
  110. package/dist/capabilities/interactionCapability.d.ts.map +1 -0
  111. package/dist/capabilities/interactionCapability.js +22 -0
  112. package/dist/capabilities/interactionCapability.js.map +1 -0
  113. package/dist/capabilities/mcpCapability.d.ts +6 -0
  114. package/dist/capabilities/mcpCapability.d.ts.map +1 -0
  115. package/dist/capabilities/mcpCapability.js +19 -0
  116. package/dist/capabilities/mcpCapability.js.map +1 -0
  117. package/dist/capabilities/notebookCapability.d.ts +17 -0
  118. package/dist/capabilities/notebookCapability.d.ts.map +1 -0
  119. package/dist/capabilities/notebookCapability.js +27 -0
  120. package/dist/capabilities/notebookCapability.js.map +1 -0
  121. package/dist/capabilities/performanceMonitoringCapability.d.ts +108 -0
  122. package/dist/capabilities/performanceMonitoringCapability.d.ts.map +1 -0
  123. package/dist/capabilities/performanceMonitoringCapability.js +176 -0
  124. package/dist/capabilities/performanceMonitoringCapability.js.map +1 -0
  125. package/dist/capabilities/planningCapability.d.ts +16 -0
  126. package/dist/capabilities/planningCapability.d.ts.map +1 -0
  127. package/dist/capabilities/planningCapability.js +26 -0
  128. package/dist/capabilities/planningCapability.js.map +1 -0
  129. package/dist/capabilities/refactoringCapability.d.ts +13 -0
  130. package/dist/capabilities/refactoringCapability.d.ts.map +1 -0
  131. package/dist/capabilities/refactoringCapability.js +25 -0
  132. package/dist/capabilities/refactoringCapability.js.map +1 -0
  133. package/dist/capabilities/repoChecksCapability.d.ts +10 -0
  134. package/dist/capabilities/repoChecksCapability.d.ts.map +1 -0
  135. package/dist/capabilities/repoChecksCapability.js +24 -0
  136. package/dist/capabilities/repoChecksCapability.js.map +1 -0
  137. package/dist/capabilities/searchCapability.d.ts +13 -0
  138. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  139. package/dist/capabilities/searchCapability.js +24 -0
  140. package/dist/capabilities/searchCapability.js.map +1 -0
  141. package/dist/capabilities/skillCapability.d.ts +3 -0
  142. package/dist/capabilities/skillCapability.d.ts.map +1 -0
  143. package/dist/capabilities/skillCapability.js +77 -0
  144. package/dist/capabilities/skillCapability.js.map +1 -0
  145. package/dist/capabilities/taskManagementCapability.d.ts +12 -0
  146. package/dist/capabilities/taskManagementCapability.d.ts.map +1 -0
  147. package/dist/capabilities/taskManagementCapability.js +22 -0
  148. package/dist/capabilities/taskManagementCapability.js.map +1 -0
  149. package/dist/capabilities/testingCapability.d.ts +13 -0
  150. package/dist/capabilities/testingCapability.d.ts.map +1 -0
  151. package/dist/capabilities/testingCapability.js +25 -0
  152. package/dist/capabilities/testingCapability.js.map +1 -0
  153. package/dist/capabilities/todoCapability.d.ts +19 -0
  154. package/dist/capabilities/todoCapability.d.ts.map +1 -0
  155. package/dist/capabilities/todoCapability.js +169 -0
  156. package/dist/capabilities/todoCapability.js.map +1 -0
  157. package/dist/capabilities/toolManifest.d.ts +3 -0
  158. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  159. package/dist/capabilities/toolManifest.js +160 -0
  160. package/dist/capabilities/toolManifest.js.map +1 -0
  161. package/dist/capabilities/toolRegistry.d.ts +22 -0
  162. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  163. package/dist/capabilities/toolRegistry.js +115 -0
  164. package/dist/capabilities/toolRegistry.js.map +1 -0
  165. package/dist/capabilities/validationCapability.d.ts +13 -0
  166. package/dist/capabilities/validationCapability.d.ts.map +1 -0
  167. package/dist/capabilities/validationCapability.js +24 -0
  168. package/dist/capabilities/validationCapability.js.map +1 -0
  169. package/dist/capabilities/webCapability.d.ts +12 -0
  170. package/dist/capabilities/webCapability.d.ts.map +1 -0
  171. package/dist/capabilities/webCapability.js +22 -0
  172. package/dist/capabilities/webCapability.js.map +1 -0
  173. package/dist/config.d.ts +25 -0
  174. package/dist/config.d.ts.map +1 -0
  175. package/dist/config.js +140 -0
  176. package/dist/config.js.map +1 -0
  177. package/dist/contracts/v1/agent.d.ts +147 -0
  178. package/dist/contracts/v1/agent.d.ts.map +1 -0
  179. package/dist/contracts/v1/agent.js +8 -0
  180. package/dist/contracts/v1/agent.js.map +1 -0
  181. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  182. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  183. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  184. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  185. package/dist/contracts/v1/agentRules.d.ts +60 -0
  186. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  187. package/dist/contracts/v1/agentRules.js +10 -0
  188. package/dist/contracts/v1/agentRules.js.map +1 -0
  189. package/dist/contracts/v1/provider.d.ts +149 -0
  190. package/dist/contracts/v1/provider.d.ts.map +1 -0
  191. package/dist/contracts/v1/provider.js +7 -0
  192. package/dist/contracts/v1/provider.js.map +1 -0
  193. package/dist/contracts/v1/tool.d.ts +136 -0
  194. package/dist/contracts/v1/tool.d.ts.map +1 -0
  195. package/dist/contracts/v1/tool.js +7 -0
  196. package/dist/contracts/v1/tool.js.map +1 -0
  197. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  198. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  199. package/dist/contracts/v1/toolAccess.js +9 -0
  200. package/dist/contracts/v1/toolAccess.js.map +1 -0
  201. package/dist/core/LazyLoader.d.ts +129 -0
  202. package/dist/core/LazyLoader.d.ts.map +1 -0
  203. package/dist/core/LazyLoader.js +240 -0
  204. package/dist/core/LazyLoader.js.map +1 -0
  205. package/dist/core/agentProfileManifest.d.ts +3 -0
  206. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  207. package/dist/core/agentProfileManifest.js +188 -0
  208. package/dist/core/agentProfileManifest.js.map +1 -0
  209. package/dist/core/agentProfiles.d.ts +22 -0
  210. package/dist/core/agentProfiles.d.ts.map +1 -0
  211. package/dist/core/agentProfiles.js +35 -0
  212. package/dist/core/agentProfiles.js.map +1 -0
  213. package/dist/core/agentRulebook.d.ts +11 -0
  214. package/dist/core/agentRulebook.d.ts.map +1 -0
  215. package/dist/core/agentRulebook.js +136 -0
  216. package/dist/core/agentRulebook.js.map +1 -0
  217. package/dist/core/agentSchemaLoader.d.ts +131 -0
  218. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  219. package/dist/core/agentSchemaLoader.js +234 -0
  220. package/dist/core/agentSchemaLoader.js.map +1 -0
  221. package/dist/core/aiErrorFixer.d.ts +70 -0
  222. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  223. package/dist/core/aiErrorFixer.js +402 -0
  224. package/dist/core/aiErrorFixer.js.map +1 -0
  225. package/dist/core/cliTestHarness.d.ts +200 -0
  226. package/dist/core/cliTestHarness.d.ts.map +1 -0
  227. package/dist/core/cliTestHarness.js +549 -0
  228. package/dist/core/cliTestHarness.js.map +1 -0
  229. package/dist/core/contextWindow.d.ts +42 -0
  230. package/dist/core/contextWindow.d.ts.map +1 -0
  231. package/dist/core/contextWindow.js +123 -0
  232. package/dist/core/contextWindow.js.map +1 -0
  233. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  234. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  235. package/dist/core/errors/apiKeyErrors.js +159 -0
  236. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  237. package/dist/core/errors/errorTypes.d.ts +111 -0
  238. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  239. package/dist/core/errors/errorTypes.js +348 -0
  240. package/dist/core/errors/errorTypes.js.map +1 -0
  241. package/dist/core/errors/errorUtils.d.ts +87 -0
  242. package/dist/core/errors/errorUtils.d.ts.map +1 -0
  243. package/dist/core/errors/errorUtils.js +158 -0
  244. package/dist/core/errors/errorUtils.js.map +1 -0
  245. package/dist/core/errors/safetyValidator.d.ts +71 -0
  246. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  247. package/dist/core/errors/safetyValidator.js +302 -0
  248. package/dist/core/errors/safetyValidator.js.map +1 -0
  249. package/dist/core/errors.d.ts +4 -0
  250. package/dist/core/errors.d.ts.map +1 -0
  251. package/dist/core/errors.js +33 -0
  252. package/dist/core/errors.js.map +1 -0
  253. package/dist/core/isolatedVerifier.d.ts +40 -0
  254. package/dist/core/isolatedVerifier.d.ts.map +1 -0
  255. package/dist/core/isolatedVerifier.js +129 -0
  256. package/dist/core/isolatedVerifier.js.map +1 -0
  257. package/dist/core/modelDiscovery.d.ts +101 -0
  258. package/dist/core/modelDiscovery.d.ts.map +1 -0
  259. package/dist/core/modelDiscovery.js +780 -0
  260. package/dist/core/modelDiscovery.js.map +1 -0
  261. package/dist/core/multilinePasteHandler.d.ts +35 -0
  262. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  263. package/dist/core/multilinePasteHandler.js +80 -0
  264. package/dist/core/multilinePasteHandler.js.map +1 -0
  265. package/dist/core/performanceMonitor.d.ts +124 -0
  266. package/dist/core/performanceMonitor.d.ts.map +1 -0
  267. package/dist/core/performanceMonitor.js +192 -0
  268. package/dist/core/performanceMonitor.js.map +1 -0
  269. package/dist/core/responseVerifier.d.ts +98 -0
  270. package/dist/core/responseVerifier.d.ts.map +1 -0
  271. package/dist/core/responseVerifier.js +509 -0
  272. package/dist/core/responseVerifier.js.map +1 -0
  273. package/dist/core/resultVerification.d.ts +141 -0
  274. package/dist/core/resultVerification.d.ts.map +1 -0
  275. package/dist/core/resultVerification.js +482 -0
  276. package/dist/core/resultVerification.js.map +1 -0
  277. package/dist/core/schemaValidator.d.ts +44 -0
  278. package/dist/core/schemaValidator.d.ts.map +1 -0
  279. package/dist/core/schemaValidator.js +155 -0
  280. package/dist/core/schemaValidator.js.map +1 -0
  281. package/dist/core/testUtils.d.ts +121 -0
  282. package/dist/core/testUtils.d.ts.map +1 -0
  283. package/dist/core/testUtils.js +235 -0
  284. package/dist/core/testUtils.js.map +1 -0
  285. package/dist/core/types/utilityTypes.d.ts +192 -0
  286. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  287. package/dist/core/types/utilityTypes.js +272 -0
  288. package/dist/core/types/utilityTypes.js.map +1 -0
  289. package/dist/core/types.d.ts +306 -0
  290. package/dist/core/types.d.ts.map +1 -0
  291. package/dist/core/types.js +76 -0
  292. package/dist/core/types.js.map +1 -0
  293. package/dist/intelligence/codeIntelligence.d.ts +118 -0
  294. package/dist/intelligence/codeIntelligence.d.ts.map +1 -0
  295. package/dist/intelligence/codeIntelligence.js +552 -0
  296. package/dist/intelligence/codeIntelligence.js.map +1 -0
  297. package/dist/intelligence/docGenerator.d.ts +86 -0
  298. package/dist/intelligence/docGenerator.d.ts.map +1 -0
  299. package/dist/intelligence/docGenerator.js +564 -0
  300. package/dist/intelligence/docGenerator.js.map +1 -0
  301. package/dist/intelligence/index.d.ts +51 -0
  302. package/dist/intelligence/index.d.ts.map +1 -0
  303. package/dist/intelligence/index.js +253 -0
  304. package/dist/intelligence/index.js.map +1 -0
  305. package/dist/intelligence/refactoring.d.ts +50 -0
  306. package/dist/intelligence/refactoring.d.ts.map +1 -0
  307. package/dist/intelligence/refactoring.js +354 -0
  308. package/dist/intelligence/refactoring.js.map +1 -0
  309. package/dist/intelligence/testGenerator.d.ts +74 -0
  310. package/dist/intelligence/testGenerator.d.ts.map +1 -0
  311. package/dist/intelligence/testGenerator.js +483 -0
  312. package/dist/intelligence/testGenerator.js.map +1 -0
  313. package/dist/mcp/config.d.ts +8 -0
  314. package/dist/mcp/config.d.ts.map +1 -0
  315. package/dist/mcp/config.js +252 -0
  316. package/dist/mcp/config.js.map +1 -0
  317. package/dist/mcp/sseClient.d.ts +34 -0
  318. package/dist/mcp/sseClient.d.ts.map +1 -0
  319. package/dist/mcp/sseClient.js +327 -0
  320. package/dist/mcp/sseClient.js.map +1 -0
  321. package/dist/mcp/stdioClient.d.ts +24 -0
  322. package/dist/mcp/stdioClient.d.ts.map +1 -0
  323. package/dist/mcp/stdioClient.js +179 -0
  324. package/dist/mcp/stdioClient.js.map +1 -0
  325. package/dist/mcp/toolBridge.d.ts +12 -0
  326. package/dist/mcp/toolBridge.d.ts.map +1 -0
  327. package/dist/mcp/toolBridge.js +117 -0
  328. package/dist/mcp/toolBridge.js.map +1 -0
  329. package/dist/mcp/types.d.ts +60 -0
  330. package/dist/mcp/types.d.ts.map +1 -0
  331. package/dist/mcp/types.js +2 -0
  332. package/dist/mcp/types.js.map +1 -0
  333. package/dist/plugins/index.d.ts +49 -0
  334. package/dist/plugins/index.d.ts.map +1 -0
  335. package/dist/plugins/index.js +114 -0
  336. package/dist/plugins/index.js.map +1 -0
  337. package/dist/plugins/providers/anthropic/index.d.ts +11 -0
  338. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
  339. package/dist/plugins/providers/anthropic/index.js +38 -0
  340. package/dist/plugins/providers/anthropic/index.js.map +1 -0
  341. package/dist/plugins/providers/deepseek/index.d.ts +11 -0
  342. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  343. package/dist/plugins/providers/deepseek/index.js +52 -0
  344. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  345. package/dist/plugins/providers/google/index.d.ts +11 -0
  346. package/dist/plugins/providers/google/index.d.ts.map +1 -0
  347. package/dist/plugins/providers/google/index.js +40 -0
  348. package/dist/plugins/providers/google/index.js.map +1 -0
  349. package/dist/plugins/providers/index.d.ts +2 -0
  350. package/dist/plugins/providers/index.d.ts.map +1 -0
  351. package/dist/plugins/providers/index.js +20 -0
  352. package/dist/plugins/providers/index.js.map +1 -0
  353. package/dist/plugins/providers/ollama/index.d.ts +21 -0
  354. package/dist/plugins/providers/ollama/index.d.ts.map +1 -0
  355. package/dist/plugins/providers/ollama/index.js +69 -0
  356. package/dist/plugins/providers/ollama/index.js.map +1 -0
  357. package/dist/plugins/providers/openai/index.d.ts +12 -0
  358. package/dist/plugins/providers/openai/index.d.ts.map +1 -0
  359. package/dist/plugins/providers/openai/index.js +39 -0
  360. package/dist/plugins/providers/openai/index.js.map +1 -0
  361. package/dist/plugins/providers/xai/index.d.ts +11 -0
  362. package/dist/plugins/providers/xai/index.d.ts.map +1 -0
  363. package/dist/plugins/providers/xai/index.js +39 -0
  364. package/dist/plugins/providers/xai/index.js.map +1 -0
  365. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +3 -0
  366. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +1 -0
  367. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +9 -0
  368. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +1 -0
  369. package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
  370. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
  371. package/dist/plugins/tools/bash/localBashPlugin.js +14 -0
  372. package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
  373. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts +14 -0
  374. package/dist/plugins/tools/browser/browserAutomationPlugin.d.ts.map +1 -0
  375. package/dist/plugins/tools/browser/browserAutomationPlugin.js +26 -0
  376. package/dist/plugins/tools/browser/browserAutomationPlugin.js.map +1 -0
  377. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts +3 -0
  378. package/dist/plugins/tools/checks/localRepoChecksPlugin.d.ts.map +1 -0
  379. package/dist/plugins/tools/checks/localRepoChecksPlugin.js +14 -0
  380. package/dist/plugins/tools/checks/localRepoChecksPlugin.js.map +1 -0
  381. package/dist/plugins/tools/cloud/cloudPlugin.d.ts +3 -0
  382. package/dist/plugins/tools/cloud/cloudPlugin.d.ts.map +1 -0
  383. package/dist/plugins/tools/cloud/cloudPlugin.js +14 -0
  384. package/dist/plugins/tools/cloud/cloudPlugin.js.map +1 -0
  385. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts +3 -0
  386. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.d.ts.map +1 -0
  387. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js +14 -0
  388. package/dist/plugins/tools/codeAnalysis/codeAnalysisPlugin.js.map +1 -0
  389. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts +3 -0
  390. package/dist/plugins/tools/codeQuality/codeQualityPlugin.d.ts.map +1 -0
  391. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js +14 -0
  392. package/dist/plugins/tools/codeQuality/codeQualityPlugin.js.map +1 -0
  393. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts +3 -0
  394. package/dist/plugins/tools/dependency/dependencyPlugin.d.ts.map +1 -0
  395. package/dist/plugins/tools/dependency/dependencyPlugin.js +12 -0
  396. package/dist/plugins/tools/dependency/dependencyPlugin.js.map +1 -0
  397. package/dist/plugins/tools/development/devPlugin.d.ts +3 -0
  398. package/dist/plugins/tools/development/devPlugin.d.ts.map +1 -0
  399. package/dist/plugins/tools/development/devPlugin.js +14 -0
  400. package/dist/plugins/tools/development/devPlugin.js.map +1 -0
  401. package/dist/plugins/tools/edit/editPlugin.d.ts +9 -0
  402. package/dist/plugins/tools/edit/editPlugin.d.ts.map +1 -0
  403. package/dist/plugins/tools/edit/editPlugin.js +15 -0
  404. package/dist/plugins/tools/edit/editPlugin.js.map +1 -0
  405. package/dist/plugins/tools/email/emailPlugin.d.ts +3 -0
  406. package/dist/plugins/tools/email/emailPlugin.d.ts.map +1 -0
  407. package/dist/plugins/tools/email/emailPlugin.js +12 -0
  408. package/dist/plugins/tools/email/emailPlugin.js.map +1 -0
  409. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +3 -0
  410. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +1 -0
  411. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +9 -0
  412. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +1 -0
  413. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
  414. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
  415. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +14 -0
  416. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
  417. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts +3 -0
  418. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.d.ts.map +1 -0
  419. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js +14 -0
  420. package/dist/plugins/tools/frontendTesting/frontendTestingPlugin.js.map +1 -0
  421. package/dist/plugins/tools/glob/globPlugin.d.ts +9 -0
  422. package/dist/plugins/tools/glob/globPlugin.d.ts.map +1 -0
  423. package/dist/plugins/tools/glob/globPlugin.js +15 -0
  424. package/dist/plugins/tools/glob/globPlugin.js.map +1 -0
  425. package/dist/plugins/tools/index.d.ts +3 -0
  426. package/dist/plugins/tools/index.d.ts.map +1 -0
  427. package/dist/plugins/tools/index.js +3 -0
  428. package/dist/plugins/tools/index.js.map +1 -0
  429. package/dist/plugins/tools/interaction/interactionPlugin.d.ts +3 -0
  430. package/dist/plugins/tools/interaction/interactionPlugin.d.ts.map +1 -0
  431. package/dist/plugins/tools/interaction/interactionPlugin.js +12 -0
  432. package/dist/plugins/tools/interaction/interactionPlugin.js.map +1 -0
  433. package/dist/plugins/tools/learn/learnPlugin.d.ts +3 -0
  434. package/dist/plugins/tools/learn/learnPlugin.d.ts.map +1 -0
  435. package/dist/plugins/tools/learn/learnPlugin.js +14 -0
  436. package/dist/plugins/tools/learn/learnPlugin.js.map +1 -0
  437. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +3 -0
  438. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +1 -0
  439. package/dist/plugins/tools/mcp/mcpPlugin.js +9 -0
  440. package/dist/plugins/tools/mcp/mcpPlugin.js.map +1 -0
  441. package/dist/plugins/tools/notebook/notebookPlugin.d.ts +9 -0
  442. package/dist/plugins/tools/notebook/notebookPlugin.d.ts.map +1 -0
  443. package/dist/plugins/tools/notebook/notebookPlugin.js +15 -0
  444. package/dist/plugins/tools/notebook/notebookPlugin.js.map +1 -0
  445. package/dist/plugins/tools/planning/planningPlugin.d.ts +9 -0
  446. package/dist/plugins/tools/planning/planningPlugin.d.ts.map +1 -0
  447. package/dist/plugins/tools/planning/planningPlugin.js +15 -0
  448. package/dist/plugins/tools/planning/planningPlugin.js.map +1 -0
  449. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts +3 -0
  450. package/dist/plugins/tools/refactoring/refactoringPlugin.d.ts.map +1 -0
  451. package/dist/plugins/tools/refactoring/refactoringPlugin.js +12 -0
  452. package/dist/plugins/tools/refactoring/refactoringPlugin.js.map +1 -0
  453. package/dist/plugins/tools/registry.d.ts +22 -0
  454. package/dist/plugins/tools/registry.d.ts.map +1 -0
  455. package/dist/plugins/tools/registry.js +58 -0
  456. package/dist/plugins/tools/registry.js.map +1 -0
  457. package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
  458. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
  459. package/dist/plugins/tools/search/localSearchPlugin.js +14 -0
  460. package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
  461. package/dist/plugins/tools/skills/skillPlugin.d.ts +3 -0
  462. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +1 -0
  463. package/dist/plugins/tools/skills/skillPlugin.js +9 -0
  464. package/dist/plugins/tools/skills/skillPlugin.js.map +1 -0
  465. package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts +3 -0
  466. package/dist/plugins/tools/taskManagement/taskManagementPlugin.d.ts.map +1 -0
  467. package/dist/plugins/tools/taskManagement/taskManagementPlugin.js +12 -0
  468. package/dist/plugins/tools/taskManagement/taskManagementPlugin.js.map +1 -0
  469. package/dist/plugins/tools/testing/testingPlugin.d.ts +3 -0
  470. package/dist/plugins/tools/testing/testingPlugin.d.ts.map +1 -0
  471. package/dist/plugins/tools/testing/testingPlugin.js +12 -0
  472. package/dist/plugins/tools/testing/testingPlugin.js.map +1 -0
  473. package/dist/plugins/tools/validation/validationPlugin.d.ts +3 -0
  474. package/dist/plugins/tools/validation/validationPlugin.d.ts.map +1 -0
  475. package/dist/plugins/tools/validation/validationPlugin.js +14 -0
  476. package/dist/plugins/tools/validation/validationPlugin.js.map +1 -0
  477. package/dist/plugins/tools/web/webPlugin.d.ts +3 -0
  478. package/dist/plugins/tools/web/webPlugin.d.ts.map +1 -0
  479. package/dist/plugins/tools/web/webPlugin.js +12 -0
  480. package/dist/plugins/tools/web/webPlugin.js.map +1 -0
  481. package/dist/providers/anthropicProvider.d.ts +41 -0
  482. package/dist/providers/anthropicProvider.d.ts.map +1 -0
  483. package/dist/providers/anthropicProvider.js +446 -0
  484. package/dist/providers/anthropicProvider.js.map +1 -0
  485. package/dist/providers/googleProvider.d.ts +36 -0
  486. package/dist/providers/googleProvider.d.ts.map +1 -0
  487. package/dist/providers/googleProvider.js +312 -0
  488. package/dist/providers/googleProvider.js.map +1 -0
  489. package/dist/providers/openaiChatCompletionsProvider.d.ts +43 -0
  490. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  491. package/dist/providers/openaiChatCompletionsProvider.js +475 -0
  492. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  493. package/dist/providers/openaiResponsesProvider.d.ts +38 -0
  494. package/dist/providers/openaiResponsesProvider.d.ts.map +1 -0
  495. package/dist/providers/openaiResponsesProvider.js +364 -0
  496. package/dist/providers/openaiResponsesProvider.js.map +1 -0
  497. package/dist/providers/providerFactory.d.ts +18 -0
  498. package/dist/providers/providerFactory.d.ts.map +1 -0
  499. package/dist/providers/providerFactory.js +25 -0
  500. package/dist/providers/providerFactory.js.map +1 -0
  501. package/dist/providers/resilientProvider.d.ts +94 -0
  502. package/dist/providers/resilientProvider.d.ts.map +1 -0
  503. package/dist/providers/resilientProvider.js +370 -0
  504. package/dist/providers/resilientProvider.js.map +1 -0
  505. package/dist/runtime/agentController.d.ts +65 -0
  506. package/dist/runtime/agentController.d.ts.map +1 -0
  507. package/dist/runtime/agentController.js +353 -0
  508. package/dist/runtime/agentController.js.map +1 -0
  509. package/dist/runtime/agentHost.d.ts +61 -0
  510. package/dist/runtime/agentHost.d.ts.map +1 -0
  511. package/dist/runtime/agentHost.js +156 -0
  512. package/dist/runtime/agentHost.js.map +1 -0
  513. package/dist/runtime/browser.d.ts +7 -0
  514. package/dist/runtime/browser.d.ts.map +1 -0
  515. package/dist/runtime/browser.js +10 -0
  516. package/dist/runtime/browser.js.map +1 -0
  517. package/dist/runtime/cloud.d.ts +7 -0
  518. package/dist/runtime/cloud.d.ts.map +1 -0
  519. package/dist/runtime/cloud.js +10 -0
  520. package/dist/runtime/cloud.js.map +1 -0
  521. package/dist/runtime/node.d.ts +8 -0
  522. package/dist/runtime/node.d.ts.map +1 -0
  523. package/dist/runtime/node.js +11 -0
  524. package/dist/runtime/node.js.map +1 -0
  525. package/dist/runtime/universal.d.ts +21 -0
  526. package/dist/runtime/universal.d.ts.map +1 -0
  527. package/dist/runtime/universal.js +29 -0
  528. package/dist/runtime/universal.js.map +1 -0
  529. package/dist/shell/autoExecutor.d.ts +70 -0
  530. package/dist/shell/autoExecutor.d.ts.map +1 -0
  531. package/dist/shell/autoExecutor.js +288 -0
  532. package/dist/shell/autoExecutor.js.map +1 -0
  533. package/dist/shell/composableMessage.d.ts +183 -0
  534. package/dist/shell/composableMessage.d.ts.map +1 -0
  535. package/dist/shell/composableMessage.js +420 -0
  536. package/dist/shell/composableMessage.js.map +1 -0
  537. package/dist/shell/fileChangeTracker.d.ts +39 -0
  538. package/dist/shell/fileChangeTracker.d.ts.map +1 -0
  539. package/dist/shell/fileChangeTracker.js +64 -0
  540. package/dist/shell/fileChangeTracker.js.map +1 -0
  541. package/dist/shell/liveStatus.d.ts +29 -0
  542. package/dist/shell/liveStatus.d.ts.map +1 -0
  543. package/dist/shell/liveStatus.js +77 -0
  544. package/dist/shell/liveStatus.js.map +1 -0
  545. package/dist/shell/taskCompletionDetector.d.ts +106 -0
  546. package/dist/shell/taskCompletionDetector.d.ts.map +1 -0
  547. package/dist/shell/taskCompletionDetector.js +402 -0
  548. package/dist/shell/taskCompletionDetector.js.map +1 -0
  549. package/dist/shell/updateManager.d.ts +3 -0
  550. package/dist/shell/updateManager.d.ts.map +1 -0
  551. package/dist/shell/updateManager.js +120 -0
  552. package/dist/shell/updateManager.js.map +1 -0
  553. package/dist/skills/skillRepository.d.ts +103 -0
  554. package/dist/skills/skillRepository.d.ts.map +1 -0
  555. package/dist/skills/skillRepository.js +237 -0
  556. package/dist/skills/skillRepository.js.map +1 -0
  557. package/dist/skills/types.d.ts +37 -0
  558. package/dist/skills/types.d.ts.map +1 -0
  559. package/dist/skills/types.js +2 -0
  560. package/dist/skills/types.js.map +1 -0
  561. package/dist/tools/advancedTestGenerationTools.d.ts +21 -0
  562. package/dist/tools/advancedTestGenerationTools.d.ts.map +1 -0
  563. package/dist/tools/advancedTestGenerationTools.js +301 -0
  564. package/dist/tools/advancedTestGenerationTools.js.map +1 -0
  565. package/dist/tools/backgroundBashTools.d.ts +21 -0
  566. package/dist/tools/backgroundBashTools.d.ts.map +1 -0
  567. package/dist/tools/backgroundBashTools.js +215 -0
  568. package/dist/tools/backgroundBashTools.js.map +1 -0
  569. package/dist/tools/bashTools.d.ts +8 -0
  570. package/dist/tools/bashTools.d.ts.map +1 -0
  571. package/dist/tools/bashTools.js +251 -0
  572. package/dist/tools/bashTools.js.map +1 -0
  573. package/dist/tools/browserAutomationTools.d.ts +23 -0
  574. package/dist/tools/browserAutomationTools.d.ts.map +1 -0
  575. package/dist/tools/browserAutomationTools.js +916 -0
  576. package/dist/tools/browserAutomationTools.js.map +1 -0
  577. package/dist/tools/buildTools.d.ts +9 -0
  578. package/dist/tools/buildTools.d.ts.map +1 -0
  579. package/dist/tools/buildTools.js +344 -0
  580. package/dist/tools/buildTools.js.map +1 -0
  581. package/dist/tools/cloudTools.d.ts +49 -0
  582. package/dist/tools/cloudTools.d.ts.map +1 -0
  583. package/dist/tools/cloudTools.js +1258 -0
  584. package/dist/tools/cloudTools.js.map +1 -0
  585. package/dist/tools/code-quality-dashboard.d.ts +57 -0
  586. package/dist/tools/code-quality-dashboard.d.ts.map +1 -0
  587. package/dist/tools/code-quality-dashboard.js +218 -0
  588. package/dist/tools/code-quality-dashboard.js.map +1 -0
  589. package/dist/tools/codeAnalysisTools.d.ts +74 -0
  590. package/dist/tools/codeAnalysisTools.d.ts.map +1 -0
  591. package/dist/tools/codeAnalysisTools.js +664 -0
  592. package/dist/tools/codeAnalysisTools.js.map +1 -0
  593. package/dist/tools/codeGenerationTools.d.ts +3 -0
  594. package/dist/tools/codeGenerationTools.d.ts.map +1 -0
  595. package/dist/tools/codeGenerationTools.js +439 -0
  596. package/dist/tools/codeGenerationTools.js.map +1 -0
  597. package/dist/tools/codeQualityTools.d.ts +3 -0
  598. package/dist/tools/codeQualityTools.d.ts.map +1 -0
  599. package/dist/tools/codeQualityTools.js +296 -0
  600. package/dist/tools/codeQualityTools.js.map +1 -0
  601. package/dist/tools/dependencyTools.d.ts +3 -0
  602. package/dist/tools/dependencyTools.d.ts.map +1 -0
  603. package/dist/tools/dependencyTools.js +283 -0
  604. package/dist/tools/dependencyTools.js.map +1 -0
  605. package/dist/tools/devTools.d.ts +10 -0
  606. package/dist/tools/devTools.d.ts.map +1 -0
  607. package/dist/tools/devTools.js +2125 -0
  608. package/dist/tools/devTools.js.map +1 -0
  609. package/dist/tools/diffUtils.d.ts +36 -0
  610. package/dist/tools/diffUtils.d.ts.map +1 -0
  611. package/dist/tools/diffUtils.js +528 -0
  612. package/dist/tools/diffUtils.js.map +1 -0
  613. package/dist/tools/editTools.d.ts +29 -0
  614. package/dist/tools/editTools.d.ts.map +1 -0
  615. package/dist/tools/editTools.js +419 -0
  616. package/dist/tools/editTools.js.map +1 -0
  617. package/dist/tools/emailTools.d.ts +21 -0
  618. package/dist/tools/emailTools.d.ts.map +1 -0
  619. package/dist/tools/emailTools.js +449 -0
  620. package/dist/tools/emailTools.js.map +1 -0
  621. package/dist/tools/enhancedCodeIntelligenceTools.d.ts +27 -0
  622. package/dist/tools/enhancedCodeIntelligenceTools.d.ts.map +1 -0
  623. package/dist/tools/enhancedCodeIntelligenceTools.js +418 -0
  624. package/dist/tools/enhancedCodeIntelligenceTools.js.map +1 -0
  625. package/dist/tools/enhancedDevWorkflowTools.d.ts +15 -0
  626. package/dist/tools/enhancedDevWorkflowTools.d.ts.map +1 -0
  627. package/dist/tools/enhancedDevWorkflowTools.js +303 -0
  628. package/dist/tools/enhancedDevWorkflowTools.js.map +1 -0
  629. package/dist/tools/frontendTestingTools.d.ts +35 -0
  630. package/dist/tools/frontendTestingTools.d.ts.map +1 -0
  631. package/dist/tools/frontendTestingTools.js +1254 -0
  632. package/dist/tools/frontendTestingTools.js.map +1 -0
  633. package/dist/tools/globTools.d.ts +15 -0
  634. package/dist/tools/globTools.d.ts.map +1 -0
  635. package/dist/tools/globTools.js +174 -0
  636. package/dist/tools/globTools.js.map +1 -0
  637. package/dist/tools/interactionTools.d.ts +13 -0
  638. package/dist/tools/interactionTools.d.ts.map +1 -0
  639. package/dist/tools/interactionTools.js +171 -0
  640. package/dist/tools/interactionTools.js.map +1 -0
  641. package/dist/tools/notebookEditTools.d.ts +15 -0
  642. package/dist/tools/notebookEditTools.d.ts.map +1 -0
  643. package/dist/tools/notebookEditTools.js +197 -0
  644. package/dist/tools/notebookEditTools.js.map +1 -0
  645. package/dist/tools/refactoringTools.d.ts +3 -0
  646. package/dist/tools/refactoringTools.d.ts.map +1 -0
  647. package/dist/tools/refactoringTools.js +294 -0
  648. package/dist/tools/refactoringTools.js.map +1 -0
  649. package/dist/tools/repoChecksTools.d.ts +3 -0
  650. package/dist/tools/repoChecksTools.d.ts.map +1 -0
  651. package/dist/tools/repoChecksTools.js +161 -0
  652. package/dist/tools/repoChecksTools.js.map +1 -0
  653. package/dist/tools/searchTools.d.ts +3 -0
  654. package/dist/tools/searchTools.d.ts.map +1 -0
  655. package/dist/tools/searchTools.js +207 -0
  656. package/dist/tools/searchTools.js.map +1 -0
  657. package/dist/tools/skillTools.d.ts +8 -0
  658. package/dist/tools/skillTools.d.ts.map +1 -0
  659. package/dist/tools/skillTools.js +178 -0
  660. package/dist/tools/skillTools.js.map +1 -0
  661. package/dist/tools/softwareEngineeringTools.d.ts +7 -0
  662. package/dist/tools/softwareEngineeringTools.d.ts.map +1 -0
  663. package/dist/tools/softwareEngineeringTools.js +338 -0
  664. package/dist/tools/softwareEngineeringTools.js.map +1 -0
  665. package/dist/tools/taskManagementTools.d.ts +10 -0
  666. package/dist/tools/taskManagementTools.d.ts.map +1 -0
  667. package/dist/tools/taskManagementTools.js +157 -0
  668. package/dist/tools/taskManagementTools.js.map +1 -0
  669. package/dist/tools/testingTools.d.ts +3 -0
  670. package/dist/tools/testingTools.d.ts.map +1 -0
  671. package/dist/tools/testingTools.js +233 -0
  672. package/dist/tools/testingTools.js.map +1 -0
  673. package/dist/tools/validationTools.d.ts +7 -0
  674. package/dist/tools/validationTools.d.ts.map +1 -0
  675. package/dist/tools/validationTools.js +344 -0
  676. package/dist/tools/validationTools.js.map +1 -0
  677. package/dist/ui/UnifiedUIController.d.ts +70 -0
  678. package/dist/ui/UnifiedUIController.d.ts.map +1 -0
  679. package/dist/ui/UnifiedUIController.js +190 -0
  680. package/dist/ui/UnifiedUIController.js.map +1 -0
  681. package/dist/ui/animation/AnimationScheduler.d.ts +192 -0
  682. package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
  683. package/dist/ui/animation/AnimationScheduler.js +432 -0
  684. package/dist/ui/animation/AnimationScheduler.js.map +1 -0
  685. package/dist/ui/codeHighlighter.d.ts +6 -0
  686. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  687. package/dist/ui/codeHighlighter.js +855 -0
  688. package/dist/ui/codeHighlighter.js.map +1 -0
  689. package/dist/ui/designSystem.d.ts +26 -0
  690. package/dist/ui/designSystem.d.ts.map +1 -0
  691. package/dist/ui/designSystem.js +122 -0
  692. package/dist/ui/designSystem.js.map +1 -0
  693. package/dist/ui/errorFormatter.d.ts +54 -0
  694. package/dist/ui/errorFormatter.d.ts.map +1 -0
  695. package/dist/ui/errorFormatter.js +251 -0
  696. package/dist/ui/errorFormatter.js.map +1 -0
  697. package/dist/ui/globalWriteLock.d.ts +38 -0
  698. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  699. package/dist/ui/globalWriteLock.js +54 -0
  700. package/dist/ui/globalWriteLock.js.map +1 -0
  701. package/dist/ui/interrupts/InterruptManager.d.ts +142 -0
  702. package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
  703. package/dist/ui/interrupts/InterruptManager.js +439 -0
  704. package/dist/ui/interrupts/InterruptManager.js.map +1 -0
  705. package/dist/ui/layout.d.ts +17 -0
  706. package/dist/ui/layout.d.ts.map +1 -0
  707. package/dist/ui/layout.js +140 -0
  708. package/dist/ui/layout.js.map +1 -0
  709. package/dist/ui/orchestration/StatusOrchestrator.d.ts +156 -0
  710. package/dist/ui/orchestration/StatusOrchestrator.d.ts.map +1 -0
  711. package/dist/ui/orchestration/StatusOrchestrator.js +406 -0
  712. package/dist/ui/orchestration/StatusOrchestrator.js.map +1 -0
  713. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts +77 -0
  714. package/dist/ui/orchestration/UIUpdateCoordinator.d.ts.map +1 -0
  715. package/dist/ui/orchestration/UIUpdateCoordinator.js +265 -0
  716. package/dist/ui/orchestration/UIUpdateCoordinator.js.map +1 -0
  717. package/dist/ui/outputMode.d.ts +22 -0
  718. package/dist/ui/outputMode.d.ts.map +1 -0
  719. package/dist/ui/outputMode.js +40 -0
  720. package/dist/ui/outputMode.js.map +1 -0
  721. package/dist/ui/richText.d.ts +6 -0
  722. package/dist/ui/richText.d.ts.map +1 -0
  723. package/dist/ui/richText.js +391 -0
  724. package/dist/ui/richText.js.map +1 -0
  725. package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
  726. package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
  727. package/dist/ui/telemetry/UITelemetry.js +446 -0
  728. package/dist/ui/telemetry/UITelemetry.js.map +1 -0
  729. package/dist/ui/textHighlighter.d.ts +83 -0
  730. package/dist/ui/textHighlighter.d.ts.map +1 -0
  731. package/dist/ui/textHighlighter.js +267 -0
  732. package/dist/ui/textHighlighter.js.map +1 -0
  733. package/dist/ui/writeLock.d.ts +65 -0
  734. package/dist/ui/writeLock.d.ts.map +1 -0
  735. package/dist/ui/writeLock.js +114 -0
  736. package/dist/ui/writeLock.js.map +1 -0
  737. package/dist/utils/asyncUtils.d.ts +95 -0
  738. package/dist/utils/asyncUtils.d.ts.map +1 -0
  739. package/dist/utils/asyncUtils.js +286 -0
  740. package/dist/utils/asyncUtils.js.map +1 -0
  741. package/dist/utils/errorUtils.d.ts +16 -0
  742. package/dist/utils/errorUtils.d.ts.map +1 -0
  743. package/dist/utils/errorUtils.js +66 -0
  744. package/dist/utils/errorUtils.js.map +1 -0
  745. package/dist/utils/planFormatter.d.ts +34 -0
  746. package/dist/utils/planFormatter.d.ts.map +1 -0
  747. package/dist/utils/planFormatter.js +140 -0
  748. package/dist/utils/planFormatter.js.map +1 -0
  749. package/dist/workspace.d.ts +8 -0
  750. package/dist/workspace.d.ts.map +1 -0
  751. package/dist/workspace.js +107 -0
  752. package/dist/workspace.js.map +1 -0
  753. package/dist/workspace.validator.d.ts +49 -0
  754. package/dist/workspace.validator.d.ts.map +1 -0
  755. package/dist/workspace.validator.js +214 -0
  756. package/dist/workspace.validator.js.map +1 -0
  757. package/package.json +1 -1
@@ -0,0 +1,780 @@
1
+ /**
2
+ * Model discovery system for auto-detecting new models from providers.
3
+ *
4
+ * This module queries provider APIs to discover available models and caches
5
+ * them for use alongside the static model schema. It never modifies the
6
+ * static schema - discoveries are stored separately and merged at runtime.
7
+ */
8
+ import { readFileSync, writeFileSync, existsSync } from 'node:fs';
9
+ import { mkdir } from 'node:fs/promises';
10
+ import { join } from 'node:path';
11
+ import { homedir } from 'node:os';
12
+ import { safeErrorMessage } from './secretStore.js';
13
+ /**
14
+ * Discovered model cache file location
15
+ */
16
+ const CACHE_DIR = join(homedir(), '.erosolar');
17
+ const CACHE_FILE = join(CACHE_DIR, 'discovered-models.json');
18
+ /**
19
+ * Cache expiration time (24 hours)
20
+ */
21
+ const CACHE_EXPIRATION_MS = 24 * 60 * 60 * 1000;
22
+ /**
23
+ * Get cached discovered models
24
+ */
25
+ export function getCachedDiscoveredModels() {
26
+ try {
27
+ if (!existsSync(CACHE_FILE)) {
28
+ return [];
29
+ }
30
+ const raw = readFileSync(CACHE_FILE, 'utf-8');
31
+ const cache = JSON.parse(raw);
32
+ // Check if cache is expired
33
+ const lastUpdated = new Date(cache.lastUpdated).getTime();
34
+ const now = Date.now();
35
+ if (now - lastUpdated > CACHE_EXPIRATION_MS) {
36
+ return [];
37
+ }
38
+ return cache.models;
39
+ }
40
+ catch (error) {
41
+ console.warn('Failed to read discovered models cache:', safeErrorMessage(error));
42
+ return [];
43
+ }
44
+ }
45
+ /**
46
+ * Save discovered models to cache
47
+ */
48
+ async function saveDiscoveredModels(models) {
49
+ try {
50
+ await mkdir(CACHE_DIR, { recursive: true });
51
+ const cache = {
52
+ version: '1.0.0',
53
+ lastUpdated: new Date().toISOString(),
54
+ models,
55
+ };
56
+ writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2), 'utf-8');
57
+ }
58
+ catch (error) {
59
+ console.warn('Failed to save discovered models cache:', safeErrorMessage(error));
60
+ }
61
+ }
62
+ /**
63
+ * Discover models from OpenAI
64
+ */
65
+ async function discoverOpenAIModels(apiKey) {
66
+ const provider = 'openai';
67
+ try {
68
+ const response = await fetch('https://api.openai.com/v1/models', {
69
+ headers: {
70
+ 'Authorization': `Bearer ${apiKey}`,
71
+ },
72
+ });
73
+ if (!response.ok) {
74
+ throw new Error(`API returned ${response.status}: ${response.statusText}`);
75
+ }
76
+ const data = await response.json();
77
+ // Filter for GPT models only and create ModelConfig objects
78
+ const models = data.data
79
+ .filter(model => model.id.startsWith('gpt-') ||
80
+ model.id.startsWith('o1-') ||
81
+ model.id.startsWith('o3-'))
82
+ .map(model => ({
83
+ id: model.id,
84
+ label: model.id,
85
+ provider,
86
+ description: `OpenAI ${model.id} (auto-discovered)`,
87
+ capabilities: ['chat', 'tools', 'streaming'],
88
+ }));
89
+ return {
90
+ provider,
91
+ success: true,
92
+ models,
93
+ };
94
+ }
95
+ catch (error) {
96
+ return {
97
+ provider,
98
+ success: false,
99
+ models: [],
100
+ error: error instanceof Error ? error.message : String(error),
101
+ };
102
+ }
103
+ }
104
+ /**
105
+ * Discover models from Anthropic
106
+ */
107
+ async function discoverAnthropicModels(apiKey) {
108
+ const provider = 'anthropic';
109
+ try {
110
+ const response = await fetch('https://api.anthropic.com/v1/models', {
111
+ headers: {
112
+ 'x-api-key': apiKey,
113
+ 'anthropic-version': '2023-06-01',
114
+ },
115
+ });
116
+ if (!response.ok) {
117
+ throw new Error(`API returned ${response.status}: ${response.statusText}`);
118
+ }
119
+ const data = await response.json();
120
+ const models = data.data
121
+ .filter(model => model.type === 'model')
122
+ .map(model => ({
123
+ id: model.id,
124
+ label: model.display_name || model.id,
125
+ provider,
126
+ description: `Anthropic ${model.display_name || model.id} (auto-discovered)`,
127
+ capabilities: ['chat', 'reasoning', 'tools', 'streaming'],
128
+ }));
129
+ return {
130
+ provider,
131
+ success: true,
132
+ models,
133
+ };
134
+ }
135
+ catch (error) {
136
+ return {
137
+ provider,
138
+ success: false,
139
+ models: [],
140
+ error: error instanceof Error ? error.message : String(error),
141
+ };
142
+ }
143
+ }
144
+ /**
145
+ * Discover models from Google Gemini
146
+ * Note: Google's models API often requires special permissions.
147
+ * Falls back to known models if API access fails.
148
+ */
149
+ async function discoverGoogleModels(apiKey) {
150
+ const provider = 'google';
151
+ // Known Google Gemini models (fallback if API doesn't work) - Updated Nov 2025
152
+ const knownModels = [
153
+ { id: 'gemini-2.5-pro', label: 'Gemini 2.5 Pro', provider, description: 'Most capable Gemini model with advanced reasoning', capabilities: ['chat', 'reasoning', 'tools', 'streaming', 'multimodal'] },
154
+ { id: 'gemini-2.5-flash', label: 'Gemini 2.5 Flash', provider, description: 'Fast Gemini 2.5 with reasoning', capabilities: ['chat', 'reasoning', 'tools', 'streaming', 'multimodal'] },
155
+ { id: 'gemini-2.5-flash-lite', label: 'Gemini 2.5 Flash Lite', provider, description: 'Fast, low-cost Gemini 2.5', capabilities: ['chat', 'tools', 'streaming', 'multimodal'] },
156
+ { id: 'gemini-2.0-flash', label: 'Gemini 2.0 Flash', provider, description: 'Gemini 2.0 with native tool use', capabilities: ['chat', 'tools', 'streaming', 'multimodal'] },
157
+ ];
158
+ try {
159
+ // SECURITY: Use x-goog-api-key header instead of URL query parameter
160
+ // to prevent API key leakage in logs, error messages, and browser history
161
+ const response = await fetch('https://generativelanguage.googleapis.com/v1beta/models', {
162
+ headers: {
163
+ 'x-goog-api-key': apiKey,
164
+ },
165
+ signal: AbortSignal.timeout(5000),
166
+ });
167
+ if (!response.ok) {
168
+ // API access restricted - return known models with warning
169
+ return {
170
+ provider,
171
+ success: true, // Consider it success with fallback
172
+ models: knownModels,
173
+ };
174
+ }
175
+ const data = await response.json();
176
+ const models = data.models
177
+ .filter(model => model.name.includes('gemini') &&
178
+ model.supportedGenerationMethods?.includes('generateContent'))
179
+ .map(model => {
180
+ const id = model.name.replace('models/', '');
181
+ return {
182
+ id,
183
+ label: id,
184
+ provider,
185
+ description: `${model.displayName} (auto-discovered)`,
186
+ capabilities: ['chat', 'reasoning', 'tools', 'streaming', 'multimodal'],
187
+ };
188
+ });
189
+ return {
190
+ provider,
191
+ success: true,
192
+ models: models.length > 0 ? models : knownModels,
193
+ };
194
+ }
195
+ catch {
196
+ // Network error or timeout - return known models
197
+ return {
198
+ provider,
199
+ success: true,
200
+ models: knownModels,
201
+ };
202
+ }
203
+ }
204
+ /**
205
+ * Discover models from DeepSeek (OpenAI-compatible)
206
+ */
207
+ async function discoverDeepSeekModels(apiKey) {
208
+ const provider = 'deepseek';
209
+ try {
210
+ const response = await fetch('https://api.deepseek.com/v1/models', {
211
+ headers: {
212
+ 'Authorization': `Bearer ${apiKey}`,
213
+ },
214
+ });
215
+ if (!response.ok) {
216
+ throw new Error(`API returned ${response.status}: ${response.statusText}`);
217
+ }
218
+ const data = await response.json();
219
+ const models = data.data.map(model => ({
220
+ id: model.id,
221
+ label: model.id,
222
+ provider,
223
+ description: `DeepSeek ${model.id} (auto-discovered)`,
224
+ capabilities: ['chat', 'reasoning', 'tools', 'streaming'],
225
+ }));
226
+ return {
227
+ provider,
228
+ success: true,
229
+ models,
230
+ };
231
+ }
232
+ catch (error) {
233
+ return {
234
+ provider,
235
+ success: false,
236
+ models: [],
237
+ error: error instanceof Error ? error.message : String(error),
238
+ };
239
+ }
240
+ }
241
+ /**
242
+ * Discover models from xAI (OpenAI-compatible)
243
+ */
244
+ async function discoverXAIModels(apiKey) {
245
+ const provider = 'xai';
246
+ try {
247
+ const response = await fetch('https://api.x.ai/v1/models', {
248
+ headers: {
249
+ 'Authorization': `Bearer ${apiKey}`,
250
+ },
251
+ });
252
+ if (!response.ok) {
253
+ throw new Error(`API returned ${response.status}: ${response.statusText}`);
254
+ }
255
+ const data = await response.json();
256
+ const models = data.data.map(model => ({
257
+ id: model.id,
258
+ label: model.id,
259
+ provider,
260
+ description: `xAI ${model.id} (auto-discovered)`,
261
+ capabilities: ['chat', 'reasoning', 'tools', 'streaming'],
262
+ }));
263
+ return {
264
+ provider,
265
+ success: true,
266
+ models,
267
+ };
268
+ }
269
+ catch (error) {
270
+ return {
271
+ provider,
272
+ success: false,
273
+ models: [],
274
+ error: error instanceof Error ? error.message : String(error),
275
+ };
276
+ }
277
+ }
278
+ /**
279
+ * Discover models from Ollama (local)
280
+ */
281
+ async function discoverOllamaModels() {
282
+ const provider = 'ollama';
283
+ const baseURL = process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434';
284
+ try {
285
+ const response = await fetch(`${baseURL}/api/tags`, {
286
+ signal: AbortSignal.timeout(2000), // 2 second timeout
287
+ });
288
+ if (!response.ok) {
289
+ throw new Error(`API returned ${response.status}: ${response.statusText}`);
290
+ }
291
+ const data = await response.json();
292
+ const models = (data.models || []).map(model => ({
293
+ id: model.name,
294
+ label: model.name,
295
+ provider,
296
+ description: `Local Ollama model: ${model.name} (auto-discovered)`,
297
+ capabilities: ['chat', 'tools', 'streaming'],
298
+ }));
299
+ return {
300
+ provider,
301
+ success: true,
302
+ models,
303
+ };
304
+ }
305
+ catch (error) {
306
+ return {
307
+ provider,
308
+ success: false,
309
+ models: [],
310
+ error: error instanceof Error ? error.message : String(error),
311
+ };
312
+ }
313
+ }
314
+ /**
315
+ * Discover models from all configured providers
316
+ *
317
+ * PERF: Uses Promise.allSettled for parallel discovery - all providers queried
318
+ * simultaneously. No single slow/failed provider blocks the others.
319
+ */
320
+ export async function discoverAllModels() {
321
+ const errors = [];
322
+ let totalModelsDiscovered = 0;
323
+ // Discover from each provider if API key is available
324
+ const providers = [
325
+ { id: 'openai', envVar: 'OPENAI_API_KEY', discover: discoverOpenAIModels },
326
+ { id: 'anthropic', envVar: 'ANTHROPIC_API_KEY', discover: discoverAnthropicModels },
327
+ { id: 'google', envVar: 'GEMINI_API_KEY', discover: discoverGoogleModels },
328
+ { id: 'deepseek', envVar: 'DEEPSEEK_API_KEY', discover: discoverDeepSeekModels },
329
+ { id: 'xai', envVar: 'XAI_API_KEY', discover: discoverXAIModels },
330
+ ];
331
+ // PERF: Build discovery promises in parallel
332
+ const discoveryPromises = providers.map(async (provider) => {
333
+ const apiKey = process.env[provider.envVar];
334
+ if (!apiKey) {
335
+ return {
336
+ provider: provider.id,
337
+ success: false,
338
+ models: [],
339
+ error: `API key not configured (${provider.envVar})`,
340
+ };
341
+ }
342
+ try {
343
+ return await provider.discover(apiKey);
344
+ }
345
+ catch (error) {
346
+ const errorMessage = error instanceof Error ? error.message : String(error);
347
+ return {
348
+ provider: provider.id,
349
+ success: false,
350
+ models: [],
351
+ error: errorMessage,
352
+ };
353
+ }
354
+ });
355
+ // Add Ollama discovery (no API key required)
356
+ discoveryPromises.push(discoverOllamaModels().catch(() => ({
357
+ provider: 'ollama',
358
+ success: false,
359
+ models: [],
360
+ error: 'Connection failed',
361
+ })));
362
+ // PERF: Execute ALL provider discoveries in parallel using Promise.allSettled
363
+ // This ensures one slow/failed provider doesn't block others
364
+ const settledResults = await Promise.allSettled(discoveryPromises);
365
+ // Process results
366
+ const results = settledResults.map((settled, index) => {
367
+ if (settled.status === 'fulfilled') {
368
+ return settled.value;
369
+ }
370
+ // Promise rejected (shouldn't happen with our error handling, but be safe)
371
+ const providerId = index < providers.length
372
+ ? providers[index].id
373
+ : 'ollama';
374
+ return {
375
+ provider: providerId,
376
+ success: false,
377
+ models: [],
378
+ error: settled.reason instanceof Error ? settled.reason.message : String(settled.reason),
379
+ };
380
+ });
381
+ // Collect errors and count models
382
+ for (const result of results) {
383
+ if (result.success) {
384
+ totalModelsDiscovered += result.models.length;
385
+ }
386
+ else if (result.error) {
387
+ // Don't add Ollama connection errors (it's often not running)
388
+ if (result.provider === 'ollama' &&
389
+ (result.error.includes('ECONNREFUSED') ||
390
+ result.error.includes('fetch failed') ||
391
+ result.error.includes('Connection failed'))) {
392
+ continue;
393
+ }
394
+ errors.push(`${result.provider}: ${result.error}`);
395
+ }
396
+ }
397
+ // Collect all discovered models
398
+ const allModels = results
399
+ .filter(r => r.success)
400
+ .flatMap(r => r.models);
401
+ // Save to cache
402
+ if (allModels.length > 0) {
403
+ await saveDiscoveredModels(allModels);
404
+ }
405
+ return {
406
+ success: errors.length === 0,
407
+ timestamp: new Date().toISOString(),
408
+ results,
409
+ totalModelsDiscovered,
410
+ errors,
411
+ };
412
+ }
413
+ /**
414
+ * Clear the discovered models cache
415
+ */
416
+ export function clearDiscoveredModelsCache() {
417
+ try {
418
+ if (existsSync(CACHE_FILE)) {
419
+ writeFileSync(CACHE_FILE, JSON.stringify({ version: '1.0.0', lastUpdated: new Date().toISOString(), models: [] }, null, 2), 'utf-8');
420
+ }
421
+ }
422
+ catch (error) {
423
+ console.warn('Failed to clear discovered models cache:', safeErrorMessage(error));
424
+ }
425
+ }
426
+ /**
427
+ * Supported providers with their environment variable requirements
428
+ */
429
+ const PROVIDER_CONFIGS = [
430
+ { id: 'anthropic', name: 'Anthropic', envVar: 'ANTHROPIC_API_KEY', defaultLatestModel: 'claude-opus-4-5-20251101' },
431
+ { id: 'openai', name: 'OpenAI', envVar: 'OPENAI_API_KEY', defaultLatestModel: 'gpt-5.1-codex' },
432
+ { id: 'google', name: 'Google', envVar: 'GEMINI_API_KEY', altEnvVars: ['GOOGLE_API_KEY'], defaultLatestModel: 'gemini-2.5-pro' },
433
+ { id: 'deepseek', name: 'DeepSeek', envVar: 'DEEPSEEK_API_KEY', defaultLatestModel: 'deepseek-reasoner' },
434
+ { id: 'xai', name: 'xAI', envVar: 'XAI_API_KEY', defaultLatestModel: 'grok-4-1-fast-reasoning' },
435
+ { id: 'ollama', name: 'Ollama', envVar: 'OLLAMA_BASE_URL', defaultLatestModel: 'llama3.3:70b' },
436
+ ];
437
+ /**
438
+ * Model priority rankings for selecting the "best" model
439
+ */
440
+ const MODEL_PRIORITIES = {
441
+ openai: {
442
+ 'gpt-5.1-codex': 100,
443
+ 'gpt-5.1-codex-mini': 98,
444
+ 'gpt-5.1': 96,
445
+ 'gpt-5-pro': 94,
446
+ 'gpt-5-mini': 92,
447
+ 'gpt-5-nano': 90,
448
+ },
449
+ anthropic: {
450
+ 'claude-opus-4-5': 100,
451
+ 'claude-opus-4-5-20251101': 100,
452
+ 'claude-sonnet-4-5': 98,
453
+ 'claude-sonnet-4-5-20250929': 98,
454
+ 'claude-opus-4-20250514': 95,
455
+ 'claude-opus-4': 95,
456
+ 'claude-sonnet-4': 92,
457
+ 'claude-3-5-sonnet-20241022': 88,
458
+ 'claude-3-5-haiku-20241022': 85,
459
+ 'claude-3-opus-20240229': 80,
460
+ 'claude-3-sonnet-20240229': 75,
461
+ 'claude-3-haiku-20240307': 70,
462
+ },
463
+ google: {
464
+ 'gemini-3.0-pro': 100,
465
+ 'gemini-3.0-flash': 98,
466
+ 'gemini-2.5-pro': 95,
467
+ 'gemini-2.5-flash': 93,
468
+ 'gemini-2.0-flash': 90,
469
+ 'gemini-2.0': 88,
470
+ 'gemini-1.5-pro': 80,
471
+ 'gemini-1.5-flash': 75,
472
+ 'gemini-1.0': 50,
473
+ },
474
+ deepseek: {
475
+ 'deepseek-reasoner': 100,
476
+ 'deepseek-chat': 90,
477
+ 'deepseek-coder': 85,
478
+ },
479
+ xai: {
480
+ 'grok-4-1-fast-reasoning': 100,
481
+ 'grok-4-1-fast-non-reasoning': 98,
482
+ 'grok-4-fast-reasoning': 95,
483
+ 'grok-4-fast-non-reasoning': 93,
484
+ 'grok-4': 90,
485
+ 'grok-code-fast-1': 88,
486
+ 'grok-3': 85,
487
+ 'grok-3-mini': 80,
488
+ 'grok-2-vision-1212': 75,
489
+ 'grok-2-1212': 70,
490
+ 'grok-beta': 60,
491
+ },
492
+ };
493
+ /**
494
+ * Get model priority for sorting
495
+ */
496
+ function getModelPriority(provider, modelId) {
497
+ const priorities = MODEL_PRIORITIES[provider];
498
+ if (!priorities)
499
+ return 0;
500
+ // Check for exact match first
501
+ if (priorities[modelId] !== undefined) {
502
+ return priorities[modelId];
503
+ }
504
+ // Check for prefix match
505
+ for (const [prefix, priority] of Object.entries(priorities)) {
506
+ if (modelId.startsWith(prefix)) {
507
+ return priority;
508
+ }
509
+ }
510
+ return 0;
511
+ }
512
+ /**
513
+ * Sort models by priority (best first)
514
+ */
515
+ export function sortModelsByPriority(provider, models) {
516
+ return [...models].sort((a, b) => {
517
+ const priorityA = getModelPriority(provider, a);
518
+ const priorityB = getModelPriority(provider, b);
519
+ return priorityB - priorityA;
520
+ });
521
+ }
522
+ /**
523
+ * Get the best/latest model for a provider
524
+ */
525
+ export function getBestModel(provider, models) {
526
+ if (models.length === 0) {
527
+ const config = PROVIDER_CONFIGS.find(p => p.id === provider);
528
+ return config?.defaultLatestModel || '';
529
+ }
530
+ const sorted = sortModelsByPriority(provider, models);
531
+ return sorted[0] ?? models[0] ?? '';
532
+ }
533
+ /**
534
+ * Check if a provider is configured (has API key or is accessible)
535
+ */
536
+ export function isProviderConfigured(providerId) {
537
+ const config = PROVIDER_CONFIGS.find(p => p.id === providerId);
538
+ if (!config)
539
+ return false;
540
+ // Ollama is special - it's available if the server is running (no API key needed)
541
+ if (providerId === 'ollama') {
542
+ // We'll check this via actual connection, return true for now
543
+ // The actual check happens in getConfiguredProviders
544
+ return true;
545
+ }
546
+ // Check main env var
547
+ if (process.env[config.envVar]) {
548
+ return true;
549
+ }
550
+ // Check alternative env vars
551
+ if (config.altEnvVars) {
552
+ for (const altVar of config.altEnvVars) {
553
+ if (process.env[altVar]) {
554
+ return true;
555
+ }
556
+ }
557
+ }
558
+ return false;
559
+ }
560
+ /**
561
+ * Get all providers with their configuration status
562
+ */
563
+ export function getProvidersStatus() {
564
+ return PROVIDER_CONFIGS.map(config => {
565
+ let configured = false;
566
+ if (config.id === 'ollama') {
567
+ // For Ollama, we can't check synchronously if it's running
568
+ // Mark as potentially available
569
+ configured = !!process.env['OLLAMA_BASE_URL'] || true; // Always show Ollama as option
570
+ }
571
+ else {
572
+ configured = !!process.env[config.envVar];
573
+ if (!configured && config.altEnvVars) {
574
+ configured = config.altEnvVars.some(v => !!process.env[v]);
575
+ }
576
+ }
577
+ return {
578
+ id: config.id,
579
+ name: config.name,
580
+ envVar: config.envVar,
581
+ configured,
582
+ latestModel: config.defaultLatestModel,
583
+ };
584
+ });
585
+ }
586
+ /**
587
+ * Get list of configured providers (with valid API keys)
588
+ */
589
+ export function getConfiguredProviders() {
590
+ return getProvidersStatus().filter(p => p.configured);
591
+ }
592
+ /**
593
+ * Get list of unconfigured providers
594
+ */
595
+ export function getUnconfiguredProviders() {
596
+ return getProvidersStatus().filter(p => !p.configured);
597
+ }
598
+ /**
599
+ * Get the first available provider (for auto-selection)
600
+ */
601
+ export function getFirstAvailableProvider() {
602
+ const configured = getConfiguredProviders();
603
+ // Prefer in this order: anthropic, openai, google, deepseek, xai, ollama
604
+ const preferenceOrder = ['anthropic', 'openai', 'google', 'deepseek', 'xai', 'ollama'];
605
+ for (const providerId of preferenceOrder) {
606
+ const provider = configured.find(p => p.id === providerId);
607
+ if (provider && provider.id !== 'ollama') {
608
+ return provider;
609
+ }
610
+ }
611
+ // Fall back to Ollama if nothing else is configured
612
+ return configured.find(p => p.id === 'ollama') || null;
613
+ }
614
+ /**
615
+ * Get latest model for a provider from cache or defaults
616
+ */
617
+ export function getLatestModelForProvider(providerId) {
618
+ // Check cache first
619
+ const cached = getCachedDiscoveredModels();
620
+ const providerModels = cached.filter(m => m.provider === providerId);
621
+ if (providerModels.length > 0) {
622
+ const modelIds = providerModels.map(m => m.id);
623
+ return getBestModel(providerId, modelIds);
624
+ }
625
+ // Fall back to default
626
+ const config = PROVIDER_CONFIGS.find(p => p.id === providerId);
627
+ return config?.defaultLatestModel || '';
628
+ }
629
+ /**
630
+ * Quick API check for a single provider - returns best model or null
631
+ */
632
+ async function quickFetchProviderModels(providerId, apiKey, timeoutMs = 3000) {
633
+ try {
634
+ switch (providerId) {
635
+ case 'openai': {
636
+ const response = await fetch('https://api.openai.com/v1/models', {
637
+ headers: { 'Authorization': `Bearer ${apiKey}` },
638
+ signal: AbortSignal.timeout(timeoutMs),
639
+ });
640
+ if (!response.ok)
641
+ return [];
642
+ const data = await response.json();
643
+ return data.data
644
+ .filter(m => m.id.startsWith('gpt-') || m.id.startsWith('o1-') || m.id.startsWith('o3-'))
645
+ .map(m => m.id);
646
+ }
647
+ case 'anthropic': {
648
+ const response = await fetch('https://api.anthropic.com/v1/models', {
649
+ headers: {
650
+ 'x-api-key': apiKey,
651
+ 'anthropic-version': '2023-06-01',
652
+ },
653
+ signal: AbortSignal.timeout(timeoutMs),
654
+ });
655
+ if (!response.ok)
656
+ return [];
657
+ const data = await response.json();
658
+ return data.data.filter(m => m.type === 'model').map(m => m.id);
659
+ }
660
+ case 'google': {
661
+ // SECURITY: Use x-goog-api-key header instead of URL query parameter
662
+ const response = await fetch('https://generativelanguage.googleapis.com/v1beta/models', {
663
+ headers: {
664
+ 'x-goog-api-key': apiKey,
665
+ },
666
+ signal: AbortSignal.timeout(timeoutMs),
667
+ });
668
+ if (!response.ok)
669
+ return [];
670
+ const data = await response.json();
671
+ return data.models
672
+ .filter(m => m.name.includes('gemini') && m.supportedGenerationMethods?.includes('generateContent'))
673
+ .map(m => m.name.replace('models/', ''));
674
+ }
675
+ case 'deepseek': {
676
+ const response = await fetch('https://api.deepseek.com/v1/models', {
677
+ headers: { 'Authorization': `Bearer ${apiKey}` },
678
+ signal: AbortSignal.timeout(timeoutMs),
679
+ });
680
+ if (!response.ok)
681
+ return [];
682
+ const data = await response.json();
683
+ return data.data.map(m => m.id);
684
+ }
685
+ case 'xai': {
686
+ const response = await fetch('https://api.x.ai/v1/models', {
687
+ headers: { 'Authorization': `Bearer ${apiKey}` },
688
+ signal: AbortSignal.timeout(timeoutMs),
689
+ });
690
+ if (!response.ok)
691
+ return [];
692
+ const data = await response.json();
693
+ return data.data.map(m => m.id);
694
+ }
695
+ default:
696
+ return [];
697
+ }
698
+ }
699
+ catch {
700
+ return [];
701
+ }
702
+ }
703
+ /**
704
+ * Quickly check if providers are available by querying their APIs
705
+ * Returns actual latest models from each provider
706
+ */
707
+ export async function quickCheckProviders() {
708
+ const checks = [];
709
+ for (const config of PROVIDER_CONFIGS) {
710
+ // Handle Ollama separately (no API key needed)
711
+ if (config.id === 'ollama') {
712
+ checks.push((async () => {
713
+ try {
714
+ const baseURL = process.env['OLLAMA_BASE_URL'] || 'http://localhost:11434';
715
+ const response = await fetch(`${baseURL}/api/tags`, {
716
+ signal: AbortSignal.timeout(1500),
717
+ });
718
+ if (response.ok) {
719
+ const data = await response.json();
720
+ const models = data.models?.map(m => m.name) || [];
721
+ return {
722
+ provider: 'ollama',
723
+ available: models.length > 0,
724
+ latestModel: models[0] || config.defaultLatestModel,
725
+ };
726
+ }
727
+ }
728
+ catch { /* ignore */ }
729
+ return {
730
+ provider: 'ollama',
731
+ available: false,
732
+ latestModel: config.defaultLatestModel,
733
+ error: 'Not running',
734
+ };
735
+ })());
736
+ continue;
737
+ }
738
+ // Check for API key
739
+ let apiKey = process.env[config.envVar];
740
+ if (!apiKey && config.altEnvVars) {
741
+ for (const altVar of config.altEnvVars) {
742
+ if (process.env[altVar]) {
743
+ apiKey = process.env[altVar];
744
+ break;
745
+ }
746
+ }
747
+ }
748
+ if (!apiKey) {
749
+ checks.push(Promise.resolve({
750
+ provider: config.id,
751
+ available: false,
752
+ latestModel: config.defaultLatestModel,
753
+ error: `${config.envVar} not set`,
754
+ }));
755
+ continue;
756
+ }
757
+ // Query the API for actual models
758
+ checks.push((async () => {
759
+ const models = await quickFetchProviderModels(config.id, apiKey, 3000);
760
+ if (models.length > 0) {
761
+ const bestModel = getBestModel(config.id, models);
762
+ return {
763
+ provider: config.id,
764
+ available: true,
765
+ latestModel: bestModel,
766
+ };
767
+ }
768
+ // API call failed or returned no models - still mark available if key exists
769
+ return {
770
+ provider: config.id,
771
+ available: true,
772
+ latestModel: config.defaultLatestModel,
773
+ error: 'Could not fetch models',
774
+ };
775
+ })());
776
+ }
777
+ // Run all checks in parallel for speed
778
+ return Promise.all(checks);
779
+ }
780
+ //# sourceMappingURL=modelDiscovery.js.map