@trenchwork/erosolar 1.1.29 → 1.1.30

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.

Potentially problematic release.


This version of @trenchwork/erosolar might be problematic. Click here for more details.

Files changed (786) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/dist/bin/cliMode.d.ts +0 -8
  4. package/dist/bin/cliMode.d.ts.map +0 -1
  5. package/dist/bin/cliMode.js +0 -20
  6. package/dist/bin/cliMode.js.map +0 -1
  7. package/dist/bin/deepseek.d.ts +0 -3
  8. package/dist/bin/deepseek.d.ts.map +0 -1
  9. package/dist/bin/deepseek.js +0 -313
  10. package/dist/bin/deepseek.js.map +0 -1
  11. package/dist/bin/erosolar.d.ts +0 -7
  12. package/dist/bin/erosolar.d.ts.map +0 -1
  13. package/dist/bin/erosolar.js +0 -7
  14. package/dist/bin/erosolar.js.map +0 -1
  15. package/dist/bin/selfTest.d.ts +0 -14
  16. package/dist/bin/selfTest.d.ts.map +0 -1
  17. package/dist/bin/selfTest.js +0 -298
  18. package/dist/bin/selfTest.js.map +0 -1
  19. package/dist/capabilities/_processRunner.d.ts +0 -17
  20. package/dist/capabilities/_processRunner.d.ts.map +0 -1
  21. package/dist/capabilities/_processRunner.js +0 -74
  22. package/dist/capabilities/_processRunner.js.map +0 -1
  23. package/dist/capabilities/aflppCapability.d.ts +0 -7
  24. package/dist/capabilities/aflppCapability.d.ts.map +0 -1
  25. package/dist/capabilities/aflppCapability.js +0 -301
  26. package/dist/capabilities/aflppCapability.js.map +0 -1
  27. package/dist/capabilities/baseCapability.d.ts +0 -72
  28. package/dist/capabilities/baseCapability.d.ts.map +0 -1
  29. package/dist/capabilities/baseCapability.js +0 -183
  30. package/dist/capabilities/baseCapability.js.map +0 -1
  31. package/dist/capabilities/bashCapability.d.ts +0 -13
  32. package/dist/capabilities/bashCapability.d.ts.map +0 -1
  33. package/dist/capabilities/bashCapability.js +0 -24
  34. package/dist/capabilities/bashCapability.js.map +0 -1
  35. package/dist/capabilities/binaryAnalysisCapability.d.ts +0 -7
  36. package/dist/capabilities/binaryAnalysisCapability.d.ts.map +0 -1
  37. package/dist/capabilities/binaryAnalysisCapability.js +0 -201
  38. package/dist/capabilities/binaryAnalysisCapability.js.map +0 -1
  39. package/dist/capabilities/editCapability.d.ts +0 -17
  40. package/dist/capabilities/editCapability.d.ts.map +0 -1
  41. package/dist/capabilities/editCapability.js +0 -27
  42. package/dist/capabilities/editCapability.js.map +0 -1
  43. package/dist/capabilities/enhancedGitCapability.d.ts +0 -7
  44. package/dist/capabilities/enhancedGitCapability.d.ts.map +0 -1
  45. package/dist/capabilities/enhancedGitCapability.js +0 -220
  46. package/dist/capabilities/enhancedGitCapability.js.map +0 -1
  47. package/dist/capabilities/filesystemCapability.d.ts +0 -13
  48. package/dist/capabilities/filesystemCapability.d.ts.map +0 -1
  49. package/dist/capabilities/filesystemCapability.js +0 -24
  50. package/dist/capabilities/filesystemCapability.js.map +0 -1
  51. package/dist/capabilities/gdbCapability.d.ts +0 -7
  52. package/dist/capabilities/gdbCapability.d.ts.map +0 -1
  53. package/dist/capabilities/gdbCapability.js +0 -125
  54. package/dist/capabilities/gdbCapability.js.map +0 -1
  55. package/dist/capabilities/ghidraHeadlessCapability.d.ts +0 -25
  56. package/dist/capabilities/ghidraHeadlessCapability.d.ts.map +0 -1
  57. package/dist/capabilities/ghidraHeadlessCapability.js +0 -593
  58. package/dist/capabilities/ghidraHeadlessCapability.js.map +0 -1
  59. package/dist/capabilities/gitHistoryCapability.d.ts +0 -6
  60. package/dist/capabilities/gitHistoryCapability.d.ts.map +0 -1
  61. package/dist/capabilities/gitHistoryCapability.js +0 -184
  62. package/dist/capabilities/gitHistoryCapability.js.map +0 -1
  63. package/dist/capabilities/hitlCapability.d.ts +0 -18
  64. package/dist/capabilities/hitlCapability.d.ts.map +0 -1
  65. package/dist/capabilities/hitlCapability.js +0 -29
  66. package/dist/capabilities/hitlCapability.js.map +0 -1
  67. package/dist/capabilities/index.d.ts +0 -24
  68. package/dist/capabilities/index.d.ts.map +0 -1
  69. package/dist/capabilities/index.js +0 -29
  70. package/dist/capabilities/index.js.map +0 -1
  71. package/dist/capabilities/interactionCapability.d.ts +0 -6
  72. package/dist/capabilities/interactionCapability.d.ts.map +0 -1
  73. package/dist/capabilities/interactionCapability.js +0 -17
  74. package/dist/capabilities/interactionCapability.js.map +0 -1
  75. package/dist/capabilities/kaliCapability.d.ts +0 -14
  76. package/dist/capabilities/kaliCapability.d.ts.map +0 -1
  77. package/dist/capabilities/kaliCapability.js +0 -478
  78. package/dist/capabilities/kaliCapability.js.map +0 -1
  79. package/dist/capabilities/mcpCapability.d.ts +0 -7
  80. package/dist/capabilities/mcpCapability.d.ts.map +0 -1
  81. package/dist/capabilities/mcpCapability.js +0 -82
  82. package/dist/capabilities/mcpCapability.js.map +0 -1
  83. package/dist/capabilities/memoryCapability.d.ts +0 -10
  84. package/dist/capabilities/memoryCapability.d.ts.map +0 -1
  85. package/dist/capabilities/memoryCapability.js +0 -22
  86. package/dist/capabilities/memoryCapability.js.map +0 -1
  87. package/dist/capabilities/monitorCapability.d.ts +0 -6
  88. package/dist/capabilities/monitorCapability.d.ts.map +0 -1
  89. package/dist/capabilities/monitorCapability.js +0 -19
  90. package/dist/capabilities/monitorCapability.js.map +0 -1
  91. package/dist/capabilities/notebookCapability.d.ts +0 -6
  92. package/dist/capabilities/notebookCapability.d.ts.map +0 -1
  93. package/dist/capabilities/notebookCapability.js +0 -17
  94. package/dist/capabilities/notebookCapability.js.map +0 -1
  95. package/dist/capabilities/planModeCapability.d.ts +0 -6
  96. package/dist/capabilities/planModeCapability.d.ts.map +0 -1
  97. package/dist/capabilities/planModeCapability.js +0 -16
  98. package/dist/capabilities/planModeCapability.js.map +0 -1
  99. package/dist/capabilities/pwntoolsCapability.d.ts +0 -7
  100. package/dist/capabilities/pwntoolsCapability.d.ts.map +0 -1
  101. package/dist/capabilities/pwntoolsCapability.js +0 -109
  102. package/dist/capabilities/pwntoolsCapability.js.map +0 -1
  103. package/dist/capabilities/scheduleCapability.d.ts +0 -6
  104. package/dist/capabilities/scheduleCapability.d.ts.map +0 -1
  105. package/dist/capabilities/scheduleCapability.js +0 -16
  106. package/dist/capabilities/scheduleCapability.js.map +0 -1
  107. package/dist/capabilities/searchCapability.d.ts +0 -19
  108. package/dist/capabilities/searchCapability.d.ts.map +0 -1
  109. package/dist/capabilities/searchCapability.js +0 -29
  110. package/dist/capabilities/searchCapability.js.map +0 -1
  111. package/dist/capabilities/skillCapability.d.ts +0 -6
  112. package/dist/capabilities/skillCapability.d.ts.map +0 -1
  113. package/dist/capabilities/skillCapability.js +0 -17
  114. package/dist/capabilities/skillCapability.js.map +0 -1
  115. package/dist/capabilities/todoCapability.d.ts +0 -11
  116. package/dist/capabilities/todoCapability.d.ts.map +0 -1
  117. package/dist/capabilities/todoCapability.js +0 -22
  118. package/dist/capabilities/todoCapability.js.map +0 -1
  119. package/dist/capabilities/toolManifest.d.ts +0 -3
  120. package/dist/capabilities/toolManifest.d.ts.map +0 -1
  121. package/dist/capabilities/toolManifest.js +0 -163
  122. package/dist/capabilities/toolManifest.js.map +0 -1
  123. package/dist/capabilities/toolRegistry.d.ts +0 -25
  124. package/dist/capabilities/toolRegistry.d.ts.map +0 -1
  125. package/dist/capabilities/toolRegistry.js +0 -150
  126. package/dist/capabilities/toolRegistry.js.map +0 -1
  127. package/dist/capabilities/triggerCapability.d.ts +0 -6
  128. package/dist/capabilities/triggerCapability.d.ts.map +0 -1
  129. package/dist/capabilities/triggerCapability.js +0 -16
  130. package/dist/capabilities/triggerCapability.js.map +0 -1
  131. package/dist/capabilities/unifiedCodingCapability.d.ts +0 -62
  132. package/dist/capabilities/unifiedCodingCapability.d.ts.map +0 -1
  133. package/dist/capabilities/unifiedCodingCapability.js +0 -788
  134. package/dist/capabilities/unifiedCodingCapability.js.map +0 -1
  135. package/dist/capabilities/webCapability.d.ts +0 -23
  136. package/dist/capabilities/webCapability.d.ts.map +0 -1
  137. package/dist/capabilities/webCapability.js +0 -33
  138. package/dist/capabilities/webCapability.js.map +0 -1
  139. package/dist/capabilities/worktreeCapability.d.ts +0 -6
  140. package/dist/capabilities/worktreeCapability.d.ts.map +0 -1
  141. package/dist/capabilities/worktreeCapability.js +0 -16
  142. package/dist/capabilities/worktreeCapability.js.map +0 -1
  143. package/dist/config.d.ts +0 -25
  144. package/dist/config.d.ts.map +0 -1
  145. package/dist/config.js +0 -155
  146. package/dist/config.js.map +0 -1
  147. package/dist/contracts/v1/agent.d.ts +0 -179
  148. package/dist/contracts/v1/agent.d.ts.map +0 -1
  149. package/dist/contracts/v1/agent.js +0 -8
  150. package/dist/contracts/v1/agent.js.map +0 -1
  151. package/dist/contracts/v1/agentProfileManifest.d.ts +0 -60
  152. package/dist/contracts/v1/agentProfileManifest.d.ts.map +0 -1
  153. package/dist/contracts/v1/agentProfileManifest.js +0 -9
  154. package/dist/contracts/v1/agentProfileManifest.js.map +0 -1
  155. package/dist/contracts/v1/agentRules.d.ts +0 -60
  156. package/dist/contracts/v1/agentRules.d.ts.map +0 -1
  157. package/dist/contracts/v1/agentRules.js +0 -10
  158. package/dist/contracts/v1/agentRules.js.map +0 -1
  159. package/dist/contracts/v1/provider.d.ts +0 -149
  160. package/dist/contracts/v1/provider.d.ts.map +0 -1
  161. package/dist/contracts/v1/provider.js +0 -7
  162. package/dist/contracts/v1/provider.js.map +0 -1
  163. package/dist/contracts/v1/tool.d.ts +0 -136
  164. package/dist/contracts/v1/tool.d.ts.map +0 -1
  165. package/dist/contracts/v1/tool.js +0 -7
  166. package/dist/contracts/v1/tool.js.map +0 -1
  167. package/dist/contracts/v1/toolAccess.d.ts +0 -43
  168. package/dist/contracts/v1/toolAccess.d.ts.map +0 -1
  169. package/dist/contracts/v1/toolAccess.js +0 -9
  170. package/dist/contracts/v1/toolAccess.js.map +0 -1
  171. package/dist/core/agent.d.ts +0 -320
  172. package/dist/core/agent.d.ts.map +0 -1
  173. package/dist/core/agent.js +0 -1627
  174. package/dist/core/agent.js.map +0 -1
  175. package/dist/core/agentProfileManifest.d.ts +0 -3
  176. package/dist/core/agentProfileManifest.d.ts.map +0 -1
  177. package/dist/core/agentProfileManifest.js +0 -188
  178. package/dist/core/agentProfileManifest.js.map +0 -1
  179. package/dist/core/agentProfiles.d.ts +0 -22
  180. package/dist/core/agentProfiles.d.ts.map +0 -1
  181. package/dist/core/agentProfiles.js +0 -35
  182. package/dist/core/agentProfiles.js.map +0 -1
  183. package/dist/core/agentRegistry.d.ts +0 -111
  184. package/dist/core/agentRegistry.d.ts.map +0 -1
  185. package/dist/core/agentRegistry.js +0 -229
  186. package/dist/core/agentRegistry.js.map +0 -1
  187. package/dist/core/agentRulebook.d.ts +0 -11
  188. package/dist/core/agentRulebook.d.ts.map +0 -1
  189. package/dist/core/agentRulebook.js +0 -136
  190. package/dist/core/agentRulebook.js.map +0 -1
  191. package/dist/core/agentSchemaLoader.d.ts +0 -131
  192. package/dist/core/agentSchemaLoader.d.ts.map +0 -1
  193. package/dist/core/agentSchemaLoader.js +0 -235
  194. package/dist/core/agentSchemaLoader.js.map +0 -1
  195. package/dist/core/aiErrorFixer.d.ts +0 -57
  196. package/dist/core/aiErrorFixer.d.ts.map +0 -1
  197. package/dist/core/aiErrorFixer.js +0 -214
  198. package/dist/core/aiErrorFixer.js.map +0 -1
  199. package/dist/core/artifactStore.d.ts +0 -35
  200. package/dist/core/artifactStore.d.ts.map +0 -1
  201. package/dist/core/artifactStore.js +0 -105
  202. package/dist/core/artifactStore.js.map +0 -1
  203. package/dist/core/auth.d.ts +0 -15
  204. package/dist/core/auth.d.ts.map +0 -1
  205. package/dist/core/auth.js +0 -291
  206. package/dist/core/auth.js.map +0 -1
  207. package/dist/core/bashCommandGuidance.d.ts +0 -16
  208. package/dist/core/bashCommandGuidance.d.ts.map +0 -1
  209. package/dist/core/bashCommandGuidance.js +0 -40
  210. package/dist/core/bashCommandGuidance.js.map +0 -1
  211. package/dist/core/constants.d.ts +0 -31
  212. package/dist/core/constants.d.ts.map +0 -1
  213. package/dist/core/constants.js +0 -62
  214. package/dist/core/constants.js.map +0 -1
  215. package/dist/core/contextManager.d.ts +0 -271
  216. package/dist/core/contextManager.d.ts.map +0 -1
  217. package/dist/core/contextManager.js +0 -1073
  218. package/dist/core/contextManager.js.map +0 -1
  219. package/dist/core/contextWindow.d.ts +0 -42
  220. package/dist/core/contextWindow.d.ts.map +0 -1
  221. package/dist/core/contextWindow.js +0 -123
  222. package/dist/core/contextWindow.js.map +0 -1
  223. package/dist/core/customCommands.d.ts +0 -19
  224. package/dist/core/customCommands.d.ts.map +0 -1
  225. package/dist/core/customCommands.js +0 -85
  226. package/dist/core/customCommands.js.map +0 -1
  227. package/dist/core/errors/apiKeyErrors.d.ts +0 -11
  228. package/dist/core/errors/apiKeyErrors.d.ts.map +0 -1
  229. package/dist/core/errors/apiKeyErrors.js +0 -159
  230. package/dist/core/errors/apiKeyErrors.js.map +0 -1
  231. package/dist/core/errors/errorTypes.d.ts +0 -111
  232. package/dist/core/errors/errorTypes.d.ts.map +0 -1
  233. package/dist/core/errors/errorTypes.js +0 -345
  234. package/dist/core/errors/errorTypes.js.map +0 -1
  235. package/dist/core/errors/index.d.ts +0 -50
  236. package/dist/core/errors/index.d.ts.map +0 -1
  237. package/dist/core/errors/index.js +0 -156
  238. package/dist/core/errors/index.js.map +0 -1
  239. package/dist/core/errors/networkErrors.d.ts +0 -14
  240. package/dist/core/errors/networkErrors.d.ts.map +0 -1
  241. package/dist/core/errors/networkErrors.js +0 -53
  242. package/dist/core/errors/networkErrors.js.map +0 -1
  243. package/dist/core/errors/safetyValidator.d.ts +0 -109
  244. package/dist/core/errors/safetyValidator.d.ts.map +0 -1
  245. package/dist/core/errors/safetyValidator.js +0 -271
  246. package/dist/core/errors/safetyValidator.js.map +0 -1
  247. package/dist/core/errors.d.ts +0 -4
  248. package/dist/core/errors.d.ts.map +0 -1
  249. package/dist/core/errors.js +0 -33
  250. package/dist/core/errors.js.map +0 -1
  251. package/dist/core/finalResponseFormatter.d.ts +0 -10
  252. package/dist/core/finalResponseFormatter.d.ts.map +0 -1
  253. package/dist/core/finalResponseFormatter.js +0 -14
  254. package/dist/core/finalResponseFormatter.js.map +0 -1
  255. package/dist/core/guardrails.d.ts +0 -146
  256. package/dist/core/guardrails.d.ts.map +0 -1
  257. package/dist/core/guardrails.js +0 -361
  258. package/dist/core/guardrails.js.map +0 -1
  259. package/dist/core/hitl.d.ts +0 -119
  260. package/dist/core/hitl.d.ts.map +0 -1
  261. package/dist/core/hitl.js +0 -387
  262. package/dist/core/hitl.js.map +0 -1
  263. package/dist/core/hooks.d.ts +0 -95
  264. package/dist/core/hooks.d.ts.map +0 -1
  265. package/dist/core/hooks.js +0 -239
  266. package/dist/core/hooks.js.map +0 -1
  267. package/dist/core/index.d.ts +0 -7
  268. package/dist/core/index.d.ts.map +0 -1
  269. package/dist/core/index.js +0 -7
  270. package/dist/core/index.js.map +0 -1
  271. package/dist/core/inputProtection.d.ts +0 -122
  272. package/dist/core/inputProtection.d.ts.map +0 -1
  273. package/dist/core/inputProtection.js +0 -422
  274. package/dist/core/inputProtection.js.map +0 -1
  275. package/dist/core/modelDiscovery.d.ts +0 -105
  276. package/dist/core/modelDiscovery.d.ts.map +0 -1
  277. package/dist/core/modelDiscovery.js +0 -768
  278. package/dist/core/modelDiscovery.js.map +0 -1
  279. package/dist/core/multilinePasteHandler.d.ts +0 -35
  280. package/dist/core/multilinePasteHandler.d.ts.map +0 -1
  281. package/dist/core/multilinePasteHandler.js +0 -81
  282. package/dist/core/multilinePasteHandler.js.map +0 -1
  283. package/dist/core/preferences.d.ts +0 -65
  284. package/dist/core/preferences.d.ts.map +0 -1
  285. package/dist/core/preferences.js +0 -305
  286. package/dist/core/preferences.js.map +0 -1
  287. package/dist/core/projectTracker.d.ts +0 -96
  288. package/dist/core/projectTracker.d.ts.map +0 -1
  289. package/dist/core/projectTracker.js +0 -275
  290. package/dist/core/projectTracker.js.map +0 -1
  291. package/dist/core/providerKeys.d.ts +0 -20
  292. package/dist/core/providerKeys.d.ts.map +0 -1
  293. package/dist/core/providerKeys.js +0 -40
  294. package/dist/core/providerKeys.js.map +0 -1
  295. package/dist/core/refusalDetection.d.ts +0 -2
  296. package/dist/core/refusalDetection.d.ts.map +0 -1
  297. package/dist/core/refusalDetection.js +0 -51
  298. package/dist/core/refusalDetection.js.map +0 -1
  299. package/dist/core/resultVerification.d.ts +0 -47
  300. package/dist/core/resultVerification.d.ts.map +0 -1
  301. package/dist/core/resultVerification.js +0 -126
  302. package/dist/core/resultVerification.js.map +0 -1
  303. package/dist/core/reviewerGuard.d.ts +0 -37
  304. package/dist/core/reviewerGuard.d.ts.map +0 -1
  305. package/dist/core/reviewerGuard.js +0 -188
  306. package/dist/core/reviewerGuard.js.map +0 -1
  307. package/dist/core/schemaValidator.d.ts +0 -49
  308. package/dist/core/schemaValidator.d.ts.map +0 -1
  309. package/dist/core/schemaValidator.js +0 -234
  310. package/dist/core/schemaValidator.js.map +0 -1
  311. package/dist/core/secretStore.d.ts +0 -48
  312. package/dist/core/secretStore.d.ts.map +0 -1
  313. package/dist/core/secretStore.js +0 -259
  314. package/dist/core/secretStore.js.map +0 -1
  315. package/dist/core/sessionStorage.d.ts +0 -10
  316. package/dist/core/sessionStorage.d.ts.map +0 -1
  317. package/dist/core/sessionStorage.js +0 -46
  318. package/dist/core/sessionStorage.js.map +0 -1
  319. package/dist/core/sessionStore.d.ts +0 -35
  320. package/dist/core/sessionStore.d.ts.map +0 -1
  321. package/dist/core/sessionStore.js +0 -191
  322. package/dist/core/sessionStore.js.map +0 -1
  323. package/dist/core/sharedSecrets.d.ts +0 -60
  324. package/dist/core/sharedSecrets.d.ts.map +0 -1
  325. package/dist/core/sharedSecrets.js +0 -111
  326. package/dist/core/sharedSecrets.js.map +0 -1
  327. package/dist/core/shutdown.d.ts +0 -34
  328. package/dist/core/shutdown.d.ts.map +0 -1
  329. package/dist/core/shutdown.js +0 -186
  330. package/dist/core/shutdown.js.map +0 -1
  331. package/dist/core/sudoPasswordManager.d.ts +0 -52
  332. package/dist/core/sudoPasswordManager.d.ts.map +0 -1
  333. package/dist/core/sudoPasswordManager.js +0 -115
  334. package/dist/core/sudoPasswordManager.js.map +0 -1
  335. package/dist/core/taskCompletionDetector.d.ts +0 -117
  336. package/dist/core/taskCompletionDetector.d.ts.map +0 -1
  337. package/dist/core/taskCompletionDetector.js +0 -532
  338. package/dist/core/taskCompletionDetector.js.map +0 -1
  339. package/dist/core/testFailureMonitor.d.ts +0 -67
  340. package/dist/core/testFailureMonitor.d.ts.map +0 -1
  341. package/dist/core/testFailureMonitor.js +0 -262
  342. package/dist/core/testFailureMonitor.js.map +0 -1
  343. package/dist/core/toolPreconditions.d.ts +0 -34
  344. package/dist/core/toolPreconditions.d.ts.map +0 -1
  345. package/dist/core/toolPreconditions.js +0 -242
  346. package/dist/core/toolPreconditions.js.map +0 -1
  347. package/dist/core/toolRuntime.d.ts +0 -192
  348. package/dist/core/toolRuntime.d.ts.map +0 -1
  349. package/dist/core/toolRuntime.js +0 -511
  350. package/dist/core/toolRuntime.js.map +0 -1
  351. package/dist/core/types/utilityTypes.d.ts +0 -183
  352. package/dist/core/types/utilityTypes.d.ts.map +0 -1
  353. package/dist/core/types/utilityTypes.js +0 -273
  354. package/dist/core/types/utilityTypes.js.map +0 -1
  355. package/dist/core/types.d.ts +0 -334
  356. package/dist/core/types.d.ts.map +0 -1
  357. package/dist/core/types.js +0 -76
  358. package/dist/core/types.js.map +0 -1
  359. package/dist/core/updateChecker.d.ts +0 -148
  360. package/dist/core/updateChecker.d.ts.map +0 -1
  361. package/dist/core/updateChecker.js +0 -599
  362. package/dist/core/updateChecker.js.map +0 -1
  363. package/dist/core/usageTracker.d.ts +0 -11
  364. package/dist/core/usageTracker.d.ts.map +0 -1
  365. package/dist/core/usageTracker.js +0 -128
  366. package/dist/core/usageTracker.js.map +0 -1
  367. package/dist/core/userApproval.d.ts +0 -95
  368. package/dist/core/userApproval.d.ts.map +0 -1
  369. package/dist/core/userApproval.js +0 -239
  370. package/dist/core/userApproval.js.map +0 -1
  371. package/dist/headless/interactiveShell.d.ts +0 -22
  372. package/dist/headless/interactiveShell.d.ts.map +0 -1
  373. package/dist/headless/interactiveShell.js +0 -2156
  374. package/dist/headless/interactiveShell.js.map +0 -1
  375. package/dist/leanAgent.d.ts +0 -73
  376. package/dist/leanAgent.d.ts.map +0 -1
  377. package/dist/leanAgent.js +0 -177
  378. package/dist/leanAgent.js.map +0 -1
  379. package/dist/plugins/index.d.ts +0 -49
  380. package/dist/plugins/index.d.ts.map +0 -1
  381. package/dist/plugins/index.js +0 -104
  382. package/dist/plugins/index.js.map +0 -1
  383. package/dist/plugins/providers/anthropic/index.d.ts +0 -9
  384. package/dist/plugins/providers/anthropic/index.d.ts.map +0 -1
  385. package/dist/plugins/providers/anthropic/index.js +0 -48
  386. package/dist/plugins/providers/anthropic/index.js.map +0 -1
  387. package/dist/plugins/providers/deepseek/index.d.ts +0 -11
  388. package/dist/plugins/providers/deepseek/index.d.ts.map +0 -1
  389. package/dist/plugins/providers/deepseek/index.js +0 -54
  390. package/dist/plugins/providers/deepseek/index.js.map +0 -1
  391. package/dist/plugins/providers/index.d.ts +0 -2
  392. package/dist/plugins/providers/index.d.ts.map +0 -1
  393. package/dist/plugins/providers/index.js +0 -17
  394. package/dist/plugins/providers/index.js.map +0 -1
  395. package/dist/plugins/providers/openai/index.d.ts +0 -10
  396. package/dist/plugins/providers/openai/index.d.ts.map +0 -1
  397. package/dist/plugins/providers/openai/index.js +0 -47
  398. package/dist/plugins/providers/openai/index.js.map +0 -1
  399. package/dist/plugins/providers/xai/index.d.ts +0 -10
  400. package/dist/plugins/providers/xai/index.d.ts.map +0 -1
  401. package/dist/plugins/providers/xai/index.js +0 -47
  402. package/dist/plugins/providers/xai/index.js.map +0 -1
  403. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +0 -10
  404. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +0 -1
  405. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +0 -110
  406. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +0 -1
  407. package/dist/plugins/tools/bash/localBashPlugin.d.ts +0 -3
  408. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +0 -1
  409. package/dist/plugins/tools/bash/localBashPlugin.js +0 -14
  410. package/dist/plugins/tools/bash/localBashPlugin.js.map +0 -1
  411. package/dist/plugins/tools/edit/editPlugin.d.ts +0 -9
  412. package/dist/plugins/tools/edit/editPlugin.d.ts.map +0 -1
  413. package/dist/plugins/tools/edit/editPlugin.js +0 -15
  414. package/dist/plugins/tools/edit/editPlugin.js.map +0 -1
  415. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +0 -3
  416. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +0 -1
  417. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +0 -9
  418. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +0 -1
  419. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +0 -3
  420. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +0 -1
  421. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +0 -14
  422. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +0 -1
  423. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +0 -3
  424. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +0 -1
  425. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +0 -9
  426. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +0 -1
  427. package/dist/plugins/tools/index.d.ts +0 -3
  428. package/dist/plugins/tools/index.d.ts.map +0 -1
  429. package/dist/plugins/tools/index.js +0 -3
  430. package/dist/plugins/tools/index.js.map +0 -1
  431. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +0 -3
  432. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +0 -1
  433. package/dist/plugins/tools/integrity/integrityPlugin.js +0 -31
  434. package/dist/plugins/tools/integrity/integrityPlugin.js.map +0 -1
  435. package/dist/plugins/tools/kali/kaliPlugin.d.ts +0 -3
  436. package/dist/plugins/tools/kali/kaliPlugin.d.ts.map +0 -1
  437. package/dist/plugins/tools/kali/kaliPlugin.js +0 -10
  438. package/dist/plugins/tools/kali/kaliPlugin.js.map +0 -1
  439. package/dist/plugins/tools/mcp/mcpClient.d.ts +0 -59
  440. package/dist/plugins/tools/mcp/mcpClient.d.ts.map +0 -1
  441. package/dist/plugins/tools/mcp/mcpClient.js +0 -118
  442. package/dist/plugins/tools/mcp/mcpClient.js.map +0 -1
  443. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +0 -3
  444. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +0 -1
  445. package/dist/plugins/tools/mcp/mcpPlugin.js +0 -10
  446. package/dist/plugins/tools/mcp/mcpPlugin.js.map +0 -1
  447. package/dist/plugins/tools/nodeDefaults.d.ts +0 -13
  448. package/dist/plugins/tools/nodeDefaults.d.ts.map +0 -1
  449. package/dist/plugins/tools/nodeDefaults.js +0 -37
  450. package/dist/plugins/tools/nodeDefaults.js.map +0 -1
  451. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +0 -3
  452. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +0 -1
  453. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +0 -340
  454. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +0 -1
  455. package/dist/plugins/tools/registry.d.ts +0 -22
  456. package/dist/plugins/tools/registry.d.ts.map +0 -1
  457. package/dist/plugins/tools/registry.js +0 -58
  458. package/dist/plugins/tools/registry.js.map +0 -1
  459. package/dist/plugins/tools/search/localSearchPlugin.d.ts +0 -3
  460. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +0 -1
  461. package/dist/plugins/tools/search/localSearchPlugin.js +0 -14
  462. package/dist/plugins/tools/search/localSearchPlugin.js.map +0 -1
  463. package/dist/plugins/tools/skills/skillPlugin.d.ts +0 -3
  464. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +0 -1
  465. package/dist/plugins/tools/skills/skillPlugin.js +0 -27
  466. package/dist/plugins/tools/skills/skillPlugin.js.map +0 -1
  467. package/dist/plugins/tools/todo/todoPlugin.d.ts +0 -3
  468. package/dist/plugins/tools/todo/todoPlugin.d.ts.map +0 -1
  469. package/dist/plugins/tools/todo/todoPlugin.js +0 -10
  470. package/dist/plugins/tools/todo/todoPlugin.js.map +0 -1
  471. package/dist/providers/baseProvider.d.ts +0 -148
  472. package/dist/providers/baseProvider.d.ts.map +0 -1
  473. package/dist/providers/baseProvider.js +0 -284
  474. package/dist/providers/baseProvider.js.map +0 -1
  475. package/dist/providers/openaiChatCompletionsProvider.d.ts +0 -64
  476. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +0 -1
  477. package/dist/providers/openaiChatCompletionsProvider.js +0 -1018
  478. package/dist/providers/openaiChatCompletionsProvider.js.map +0 -1
  479. package/dist/providers/providerFactory.d.ts +0 -22
  480. package/dist/providers/providerFactory.d.ts.map +0 -1
  481. package/dist/providers/providerFactory.js +0 -25
  482. package/dist/providers/providerFactory.js.map +0 -1
  483. package/dist/providers/resilientProvider.d.ts +0 -103
  484. package/dist/providers/resilientProvider.d.ts.map +0 -1
  485. package/dist/providers/resilientProvider.js +0 -468
  486. package/dist/providers/resilientProvider.js.map +0 -1
  487. package/dist/runtime/agentController.d.ts +0 -121
  488. package/dist/runtime/agentController.d.ts.map +0 -1
  489. package/dist/runtime/agentController.js +0 -739
  490. package/dist/runtime/agentController.js.map +0 -1
  491. package/dist/runtime/agentHost.d.ts +0 -61
  492. package/dist/runtime/agentHost.d.ts.map +0 -1
  493. package/dist/runtime/agentHost.js +0 -158
  494. package/dist/runtime/agentHost.js.map +0 -1
  495. package/dist/runtime/agentSession.d.ts +0 -49
  496. package/dist/runtime/agentSession.d.ts.map +0 -1
  497. package/dist/runtime/agentSession.js +0 -218
  498. package/dist/runtime/agentSession.js.map +0 -1
  499. package/dist/runtime/agentSpawningWiring.d.ts +0 -23
  500. package/dist/runtime/agentSpawningWiring.d.ts.map +0 -1
  501. package/dist/runtime/agentSpawningWiring.js +0 -119
  502. package/dist/runtime/agentSpawningWiring.js.map +0 -1
  503. package/dist/runtime/agentWorkerPool.d.ts +0 -167
  504. package/dist/runtime/agentWorkerPool.d.ts.map +0 -1
  505. package/dist/runtime/agentWorkerPool.js +0 -435
  506. package/dist/runtime/agentWorkerPool.js.map +0 -1
  507. package/dist/runtime/node.d.ts +0 -9
  508. package/dist/runtime/node.d.ts.map +0 -1
  509. package/dist/runtime/node.js +0 -56
  510. package/dist/runtime/node.js.map +0 -1
  511. package/dist/runtime/profileGates.d.ts +0 -19
  512. package/dist/runtime/profileGates.d.ts.map +0 -1
  513. package/dist/runtime/profileGates.js +0 -23
  514. package/dist/runtime/profileGates.js.map +0 -1
  515. package/dist/runtime/universal.d.ts +0 -18
  516. package/dist/runtime/universal.d.ts.map +0 -1
  517. package/dist/runtime/universal.js +0 -21
  518. package/dist/runtime/universal.js.map +0 -1
  519. package/dist/shell/autoExecutor.d.ts +0 -70
  520. package/dist/shell/autoExecutor.d.ts.map +0 -1
  521. package/dist/shell/autoExecutor.js +0 -320
  522. package/dist/shell/autoExecutor.js.map +0 -1
  523. package/dist/shell/commandRegistry.d.ts +0 -122
  524. package/dist/shell/commandRegistry.d.ts.map +0 -1
  525. package/dist/shell/commandRegistry.js +0 -355
  526. package/dist/shell/commandRegistry.js.map +0 -1
  527. package/dist/shell/composableMessage.d.ts +0 -178
  528. package/dist/shell/composableMessage.d.ts.map +0 -1
  529. package/dist/shell/composableMessage.js +0 -384
  530. package/dist/shell/composableMessage.js.map +0 -1
  531. package/dist/shell/liveStatus.d.ts +0 -27
  532. package/dist/shell/liveStatus.d.ts.map +0 -1
  533. package/dist/shell/liveStatus.js +0 -53
  534. package/dist/shell/liveStatus.js.map +0 -1
  535. package/dist/shell/systemPrompt.d.ts +0 -12
  536. package/dist/shell/systemPrompt.d.ts.map +0 -1
  537. package/dist/shell/systemPrompt.js +0 -16
  538. package/dist/shell/systemPrompt.js.map +0 -1
  539. package/dist/shell/vimMode.d.ts +0 -66
  540. package/dist/shell/vimMode.d.ts.map +0 -1
  541. package/dist/shell/vimMode.js +0 -435
  542. package/dist/shell/vimMode.js.map +0 -1
  543. package/dist/tools/bashTools.d.ts +0 -11
  544. package/dist/tools/bashTools.d.ts.map +0 -1
  545. package/dist/tools/bashTools.js +0 -779
  546. package/dist/tools/bashTools.js.map +0 -1
  547. package/dist/tools/diffUtils.d.ts +0 -43
  548. package/dist/tools/diffUtils.d.ts.map +0 -1
  549. package/dist/tools/diffUtils.js +0 -607
  550. package/dist/tools/diffUtils.js.map +0 -1
  551. package/dist/tools/editTools.d.ts +0 -29
  552. package/dist/tools/editTools.d.ts.map +0 -1
  553. package/dist/tools/editTools.js +0 -792
  554. package/dist/tools/editTools.js.map +0 -1
  555. package/dist/tools/fileChangeTracker.d.ts +0 -47
  556. package/dist/tools/fileChangeTracker.d.ts.map +0 -1
  557. package/dist/tools/fileChangeTracker.js +0 -154
  558. package/dist/tools/fileChangeTracker.js.map +0 -1
  559. package/dist/tools/fileReadTracker.d.ts +0 -69
  560. package/dist/tools/fileReadTracker.d.ts.map +0 -1
  561. package/dist/tools/fileReadTracker.js +0 -213
  562. package/dist/tools/fileReadTracker.js.map +0 -1
  563. package/dist/tools/fileTools.d.ts +0 -3
  564. package/dist/tools/fileTools.d.ts.map +0 -1
  565. package/dist/tools/fileTools.js +0 -389
  566. package/dist/tools/fileTools.js.map +0 -1
  567. package/dist/tools/grepTools.d.ts +0 -3
  568. package/dist/tools/grepTools.d.ts.map +0 -1
  569. package/dist/tools/grepTools.js +0 -128
  570. package/dist/tools/grepTools.js.map +0 -1
  571. package/dist/tools/heliaControl.d.ts +0 -51
  572. package/dist/tools/heliaControl.d.ts.map +0 -1
  573. package/dist/tools/heliaControl.js +0 -93
  574. package/dist/tools/heliaControl.js.map +0 -1
  575. package/dist/tools/hitlTools.d.ts +0 -7
  576. package/dist/tools/hitlTools.d.ts.map +0 -1
  577. package/dist/tools/hitlTools.js +0 -185
  578. package/dist/tools/hitlTools.js.map +0 -1
  579. package/dist/tools/interactionTools.d.ts +0 -16
  580. package/dist/tools/interactionTools.d.ts.map +0 -1
  581. package/dist/tools/interactionTools.js +0 -207
  582. package/dist/tools/interactionTools.js.map +0 -1
  583. package/dist/tools/localExplore.d.ts +0 -38
  584. package/dist/tools/localExplore.d.ts.map +0 -1
  585. package/dist/tools/localExplore.js +0 -30
  586. package/dist/tools/localExplore.js.map +0 -1
  587. package/dist/tools/memoryTools.d.ts +0 -20
  588. package/dist/tools/memoryTools.d.ts.map +0 -1
  589. package/dist/tools/memoryTools.js +0 -180
  590. package/dist/tools/memoryTools.js.map +0 -1
  591. package/dist/tools/monitorTools.d.ts +0 -16
  592. package/dist/tools/monitorTools.d.ts.map +0 -1
  593. package/dist/tools/monitorTools.js +0 -159
  594. package/dist/tools/monitorTools.js.map +0 -1
  595. package/dist/tools/notebookTools.d.ts +0 -20
  596. package/dist/tools/notebookTools.d.ts.map +0 -1
  597. package/dist/tools/notebookTools.js +0 -140
  598. package/dist/tools/notebookTools.js.map +0 -1
  599. package/dist/tools/planModeTools.d.ts +0 -32
  600. package/dist/tools/planModeTools.d.ts.map +0 -1
  601. package/dist/tools/planModeTools.js +0 -200
  602. package/dist/tools/planModeTools.js.map +0 -1
  603. package/dist/tools/scheduleTools.d.ts +0 -39
  604. package/dist/tools/scheduleTools.d.ts.map +0 -1
  605. package/dist/tools/scheduleTools.js +0 -182
  606. package/dist/tools/scheduleTools.js.map +0 -1
  607. package/dist/tools/searchTools.d.ts +0 -12
  608. package/dist/tools/searchTools.d.ts.map +0 -1
  609. package/dist/tools/searchTools.js +0 -413
  610. package/dist/tools/searchTools.js.map +0 -1
  611. package/dist/tools/skillTools.d.ts +0 -24
  612. package/dist/tools/skillTools.d.ts.map +0 -1
  613. package/dist/tools/skillTools.js +0 -140
  614. package/dist/tools/skillTools.js.map +0 -1
  615. package/dist/tools/todoTools.d.ts +0 -24
  616. package/dist/tools/todoTools.d.ts.map +0 -1
  617. package/dist/tools/todoTools.js +0 -101
  618. package/dist/tools/todoTools.js.map +0 -1
  619. package/dist/tools/triggerTools.d.ts +0 -28
  620. package/dist/tools/triggerTools.d.ts.map +0 -1
  621. package/dist/tools/triggerTools.js +0 -210
  622. package/dist/tools/triggerTools.js.map +0 -1
  623. package/dist/tools/webTools.d.ts +0 -26
  624. package/dist/tools/webTools.d.ts.map +0 -1
  625. package/dist/tools/webTools.js +0 -332
  626. package/dist/tools/webTools.js.map +0 -1
  627. package/dist/tools/worktreeTools.d.ts +0 -21
  628. package/dist/tools/worktreeTools.d.ts.map +0 -1
  629. package/dist/tools/worktreeTools.js +0 -158
  630. package/dist/tools/worktreeTools.js.map +0 -1
  631. package/dist/ui/RenderGate.d.ts +0 -83
  632. package/dist/ui/RenderGate.d.ts.map +0 -1
  633. package/dist/ui/RenderGate.js +0 -138
  634. package/dist/ui/RenderGate.js.map +0 -1
  635. package/dist/ui/animatedStatus.d.ts +0 -140
  636. package/dist/ui/animatedStatus.d.ts.map +0 -1
  637. package/dist/ui/animatedStatus.js +0 -480
  638. package/dist/ui/animatedStatus.js.map +0 -1
  639. package/dist/ui/animation/AnimationScheduler.d.ts +0 -197
  640. package/dist/ui/animation/AnimationScheduler.d.ts.map +0 -1
  641. package/dist/ui/animation/AnimationScheduler.js +0 -440
  642. package/dist/ui/animation/AnimationScheduler.js.map +0 -1
  643. package/dist/ui/codeHighlighter.d.ts +0 -6
  644. package/dist/ui/codeHighlighter.d.ts.map +0 -1
  645. package/dist/ui/codeHighlighter.js +0 -855
  646. package/dist/ui/codeHighlighter.js.map +0 -1
  647. package/dist/ui/designSystem.d.ts +0 -26
  648. package/dist/ui/designSystem.d.ts.map +0 -1
  649. package/dist/ui/designSystem.js +0 -114
  650. package/dist/ui/designSystem.js.map +0 -1
  651. package/dist/ui/errorFormatter.d.ts +0 -64
  652. package/dist/ui/errorFormatter.d.ts.map +0 -1
  653. package/dist/ui/errorFormatter.js +0 -316
  654. package/dist/ui/errorFormatter.js.map +0 -1
  655. package/dist/ui/globalWriteLock.d.ts +0 -63
  656. package/dist/ui/globalWriteLock.d.ts.map +0 -1
  657. package/dist/ui/globalWriteLock.js +0 -173
  658. package/dist/ui/globalWriteLock.js.map +0 -1
  659. package/dist/ui/index.d.ts +0 -31
  660. package/dist/ui/index.d.ts.map +0 -1
  661. package/dist/ui/index.js +0 -49
  662. package/dist/ui/index.js.map +0 -1
  663. package/dist/ui/ink/App.d.ts +0 -39
  664. package/dist/ui/ink/App.d.ts.map +0 -1
  665. package/dist/ui/ink/App.js +0 -19
  666. package/dist/ui/ink/App.js.map +0 -1
  667. package/dist/ui/ink/ChatStatic.d.ts +0 -29
  668. package/dist/ui/ink/ChatStatic.d.ts.map +0 -1
  669. package/dist/ui/ink/ChatStatic.js +0 -31
  670. package/dist/ui/ink/ChatStatic.js.map +0 -1
  671. package/dist/ui/ink/InkPromptController.d.ts +0 -286
  672. package/dist/ui/ink/InkPromptController.d.ts.map +0 -1
  673. package/dist/ui/ink/InkPromptController.js +0 -558
  674. package/dist/ui/ink/InkPromptController.js.map +0 -1
  675. package/dist/ui/ink/Prompt.d.ts +0 -36
  676. package/dist/ui/ink/Prompt.d.ts.map +0 -1
  677. package/dist/ui/ink/Prompt.js +0 -296
  678. package/dist/ui/ink/Prompt.js.map +0 -1
  679. package/dist/ui/ink/StatusLine.d.ts +0 -25
  680. package/dist/ui/ink/StatusLine.d.ts.map +0 -1
  681. package/dist/ui/ink/StatusLine.js +0 -12
  682. package/dist/ui/ink/StatusLine.js.map +0 -1
  683. package/dist/ui/ink/adapter.d.ts +0 -58
  684. package/dist/ui/ink/adapter.d.ts.map +0 -1
  685. package/dist/ui/ink/adapter.js +0 -113
  686. package/dist/ui/ink/adapter.js.map +0 -1
  687. package/dist/ui/interrupts/InterruptManager.d.ts +0 -157
  688. package/dist/ui/interrupts/InterruptManager.d.ts.map +0 -1
  689. package/dist/ui/interrupts/InterruptManager.js +0 -501
  690. package/dist/ui/interrupts/InterruptManager.js.map +0 -1
  691. package/dist/ui/layout.d.ts +0 -27
  692. package/dist/ui/layout.d.ts.map +0 -1
  693. package/dist/ui/layout.js +0 -184
  694. package/dist/ui/layout.js.map +0 -1
  695. package/dist/ui/outputMode.d.ts +0 -58
  696. package/dist/ui/outputMode.d.ts.map +0 -1
  697. package/dist/ui/outputMode.js +0 -179
  698. package/dist/ui/outputMode.js.map +0 -1
  699. package/dist/ui/overlay/OverlayManager.d.ts +0 -105
  700. package/dist/ui/overlay/OverlayManager.d.ts.map +0 -1
  701. package/dist/ui/overlay/OverlayManager.js +0 -304
  702. package/dist/ui/overlay/OverlayManager.js.map +0 -1
  703. package/dist/ui/premiumComponents.d.ts +0 -54
  704. package/dist/ui/premiumComponents.d.ts.map +0 -1
  705. package/dist/ui/premiumComponents.js +0 -241
  706. package/dist/ui/premiumComponents.js.map +0 -1
  707. package/dist/ui/richText.d.ts +0 -13
  708. package/dist/ui/richText.d.ts.map +0 -1
  709. package/dist/ui/richText.js +0 -444
  710. package/dist/ui/richText.js.map +0 -1
  711. package/dist/ui/telemetry/ResponseTracker.d.ts +0 -22
  712. package/dist/ui/telemetry/ResponseTracker.d.ts.map +0 -1
  713. package/dist/ui/telemetry/ResponseTracker.js +0 -60
  714. package/dist/ui/telemetry/ResponseTracker.js.map +0 -1
  715. package/dist/ui/telemetry/UITelemetry.d.ts +0 -181
  716. package/dist/ui/telemetry/UITelemetry.d.ts.map +0 -1
  717. package/dist/ui/telemetry/UITelemetry.js +0 -446
  718. package/dist/ui/telemetry/UITelemetry.js.map +0 -1
  719. package/dist/ui/textHighlighter.d.ts +0 -83
  720. package/dist/ui/textHighlighter.d.ts.map +0 -1
  721. package/dist/ui/textHighlighter.js +0 -267
  722. package/dist/ui/textHighlighter.js.map +0 -1
  723. package/dist/ui/theme.d.ts +0 -351
  724. package/dist/ui/theme.d.ts.map +0 -1
  725. package/dist/ui/theme.js +0 -436
  726. package/dist/ui/theme.js.map +0 -1
  727. package/dist/ui/toolDisplay.d.ts +0 -221
  728. package/dist/ui/toolDisplay.d.ts.map +0 -1
  729. package/dist/ui/toolDisplay.js +0 -1654
  730. package/dist/ui/toolDisplay.js.map +0 -1
  731. package/dist/ui/uiConstants.d.ts +0 -253
  732. package/dist/ui/uiConstants.d.ts.map +0 -1
  733. package/dist/ui/uiConstants.js +0 -437
  734. package/dist/ui/uiConstants.js.map +0 -1
  735. package/dist/utils/analytics.d.ts +0 -2
  736. package/dist/utils/analytics.d.ts.map +0 -1
  737. package/dist/utils/analytics.js +0 -51
  738. package/dist/utils/analytics.js.map +0 -1
  739. package/dist/utils/askUserPrompt.d.ts +0 -21
  740. package/dist/utils/askUserPrompt.d.ts.map +0 -1
  741. package/dist/utils/askUserPrompt.js +0 -87
  742. package/dist/utils/askUserPrompt.js.map +0 -1
  743. package/dist/utils/asyncUtils.d.ts +0 -95
  744. package/dist/utils/asyncUtils.d.ts.map +0 -1
  745. package/dist/utils/asyncUtils.js +0 -286
  746. package/dist/utils/asyncUtils.js.map +0 -1
  747. package/dist/utils/debugLogger.d.ts +0 -6
  748. package/dist/utils/debugLogger.d.ts.map +0 -1
  749. package/dist/utils/debugLogger.js +0 -39
  750. package/dist/utils/debugLogger.js.map +0 -1
  751. package/dist/utils/errorUtils.d.ts +0 -12
  752. package/dist/utils/errorUtils.d.ts.map +0 -1
  753. package/dist/utils/errorUtils.js +0 -83
  754. package/dist/utils/errorUtils.js.map +0 -1
  755. package/dist/utils/frontmatter.d.ts +0 -10
  756. package/dist/utils/frontmatter.d.ts.map +0 -1
  757. package/dist/utils/frontmatter.js +0 -78
  758. package/dist/utils/frontmatter.js.map +0 -1
  759. package/dist/utils/lambdaClient.d.ts +0 -35
  760. package/dist/utils/lambdaClient.d.ts.map +0 -1
  761. package/dist/utils/lambdaClient.js +0 -81
  762. package/dist/utils/lambdaClient.js.map +0 -1
  763. package/dist/utils/packageInfo.d.ts +0 -14
  764. package/dist/utils/packageInfo.d.ts.map +0 -1
  765. package/dist/utils/packageInfo.js +0 -45
  766. package/dist/utils/packageInfo.js.map +0 -1
  767. package/dist/utils/planFormatter.d.ts +0 -34
  768. package/dist/utils/planFormatter.d.ts.map +0 -1
  769. package/dist/utils/planFormatter.js +0 -141
  770. package/dist/utils/planFormatter.js.map +0 -1
  771. package/dist/utils/securityUtils.d.ts +0 -145
  772. package/dist/utils/securityUtils.d.ts.map +0 -1
  773. package/dist/utils/securityUtils.js +0 -507
  774. package/dist/utils/securityUtils.js.map +0 -1
  775. package/dist/utils/statusReporter.d.ts +0 -6
  776. package/dist/utils/statusReporter.d.ts.map +0 -1
  777. package/dist/utils/statusReporter.js +0 -26
  778. package/dist/utils/statusReporter.js.map +0 -1
  779. package/dist/workspace.d.ts +0 -8
  780. package/dist/workspace.d.ts.map +0 -1
  781. package/dist/workspace.js +0 -135
  782. package/dist/workspace.js.map +0 -1
  783. package/dist/workspace.validator.d.ts +0 -49
  784. package/dist/workspace.validator.d.ts.map +0 -1
  785. package/dist/workspace.validator.js +0 -215
  786. package/dist/workspace.validator.js.map +0 -1
@@ -1,1018 +0,0 @@
1
- import OpenAI from 'openai';
2
- import { sanitizeErrorMessage, safeErrorMessage } from '../core/secretStore.js';
3
- import { logDebug } from '../utils/debugLogger.js';
4
- import { securityLogger, globalRateLimiter } from '../utils/securityUtils.js';
5
- /**
6
- * Security utility for safe JSON parsing with protection against prototype pollution
7
- */
8
- export function safeJSONParse(json, options) {
9
- const maxDepth = options?.maxDepth ?? 20;
10
- const maxProperties = options?.maxProperties ?? 1000;
11
- if (!json || typeof json !== 'string') {
12
- throw new Error('JSON must be a non-empty string');
13
- }
14
- // Check for prototype pollution patterns
15
- if (json.includes('__proto__') || json.includes('constructor') || json.includes('prototype')) {
16
- logDebug('[SECURITY] Prototype pollution attempt detected in JSON');
17
- // Clean the JSON by removing dangerous patterns
18
- json = json.replace(/["']?__proto__["']?\s*:/g, '"__safe_proto__":')
19
- .replace(/["']?constructor["']?\s*:/g, '"__safe_constructor__":')
20
- .replace(/["']?prototype["']?\s*:/g, '"__safe_prototype__":');
21
- }
22
- // Parse with depth and property limits
23
- const parsed = JSON.parse(json, (key, value) => {
24
- // Depth tracking - prevent circular references and deep nesting
25
- const depth = this?.__depth ?? 0;
26
- if (depth > maxDepth) {
27
- throw new Error(`JSON depth ${depth} exceeds maximum allowed depth ${maxDepth}`);
28
- }
29
- // Property count tracking
30
- const propertyCount = this?.__propertyCount ?? 0;
31
- if (propertyCount > maxProperties) {
32
- throw new Error(`JSON property count ${propertyCount} exceeds maximum ${maxProperties}`);
33
- }
34
- return value;
35
- });
36
- return parsed;
37
- }
38
- /**
39
- * Validate and sanitize URL for OpenAI baseURL
40
- */
41
- function validateOpenAIBaseURL(url) {
42
- if (!url || typeof url !== 'string') {
43
- throw new Error('Base URL must be a non-empty string');
44
- }
45
- url = url.trim();
46
- // Must start with http:// or https://
47
- if (!url.startsWith('http://') && !url.startsWith('https://')) {
48
- throw new Error(`Invalid baseURL format: ${url}. Must start with http:// or https://`);
49
- }
50
- // Parse URL to validate format
51
- let parsedUrl;
52
- try {
53
- parsedUrl = new URL(url);
54
- }
55
- catch (error) {
56
- throw new Error(`Invalid URL format: ${url}`);
57
- }
58
- // Security: Restrict to OpenAI domains and known safe proxies
59
- const allowedDomains = [
60
- 'api.openai.com',
61
- 'api.deepseek.com',
62
- 'api.anthropic.com',
63
- 'api.x.ai',
64
- 'openrouter.ai',
65
- 'api.groq.com',
66
- 'dashscope.aliyuncs.com',
67
- // Add other allowed domains as needed
68
- ];
69
- const hostname = parsedUrl.hostname;
70
- const isAllowed = allowedDomains.some(domain => hostname === domain || hostname.endsWith(`.${domain}`));
71
- if (!isAllowed) {
72
- console.warn(`SECURITY: Using non-standard OpenAI baseURL: ${hostname}. This could be a security risk.`);
73
- // Allow but log warning for custom deployments, Azure, etc.
74
- }
75
- // Enforce HTTPS for production-like domains
76
- if (hostname.includes('openai.com') && parsedUrl.protocol !== 'https:') {
77
- throw new Error(`OpenAI API requires HTTPS for domain ${hostname}`);
78
- }
79
- return url;
80
- }
81
- const REQUEST_CHAR_LIMIT = 800_000; // Hard cap to avoid provider 413 errors
82
- // ============================================================================
83
- // Stream/Fetch Error Types for Detection
84
- // ============================================================================
85
- /**
86
- * Error types that indicate stream or network failures that should be retried
87
- */
88
- const RECOVERABLE_ERROR_PATTERNS = [
89
- 'premature close',
90
- 'premature end',
91
- 'unexpected end',
92
- 'aborted',
93
- 'fetcherror',
94
- 'invalid response body',
95
- 'gunzip',
96
- 'decompress',
97
- 'econnreset',
98
- 'econnrefused',
99
- 'epipe',
100
- 'socket hang up',
101
- 'network',
102
- 'timeout',
103
- ];
104
- /**
105
- * Custom error class for provider-specific failures
106
- */
107
- export class ProviderStreamError extends Error {
108
- isRetryable;
109
- originalError;
110
- providerId;
111
- constructor(message, providerId, originalError, isRetryable = true) {
112
- // SECURITY: Sanitize the error message to prevent token leakage
113
- super(sanitizeErrorMessage(message));
114
- this.name = 'ProviderStreamError';
115
- this.providerId = providerId;
116
- this.originalError = originalError;
117
- this.isRetryable = isRetryable;
118
- // SECURITY: Sanitize stack trace to prevent token leakage
119
- if (originalError?.stack) {
120
- this.stack = `${this.stack}\nCaused by: ${sanitizeErrorMessage(originalError.stack)}`;
121
- }
122
- }
123
- }
124
- /**
125
- * Basic API key validation for non-OpenAI providers (DeepSeek, xAI, etc.)
126
- * Only checks that a key exists and has reasonable format - no OpenAI-specific validation
127
- */
128
- function validateGenericApiKey(apiKey) {
129
- if (!apiKey || typeof apiKey !== 'string') {
130
- throw new Error('API key is required and must be a string');
131
- }
132
- const trimmed = apiKey.trim();
133
- if (trimmed.length < 10) {
134
- throw new Error('API key is too short');
135
- }
136
- // Just log that we're using a custom provider key
137
- const redactedKey = trimmed.length > 8 ? `${trimmed.substring(0, 4)}...${trimmed.substring(trimmed.length - 4)}` : '[REDACTED]';
138
- logDebug(`[SECURITY] Using custom provider API key (redacted: ${redactedKey})`);
139
- return trimmed;
140
- }
141
- /**
142
- * Security audit: OpenAI API key validation and protection
143
- * Enhanced with comprehensive validation and security controls
144
- */
145
- function validateAndProtectApiKey(apiKey) {
146
- if (!apiKey || typeof apiKey !== 'string') {
147
- throw new Error('OpenAI API key is required and must be a string');
148
- }
149
- // Remove whitespace
150
- apiKey = apiKey.trim();
151
- // Comprehensive format validation
152
- const validation = validateOpenAIKeyFormat(apiKey);
153
- if (!validation.isValid) {
154
- throw new Error(`Invalid OpenAI API key: ${validation.reason}`);
155
- }
156
- // Security logging (redacted)
157
- const redactedKey = apiKey.length > 8 ? `${apiKey.substring(0, 8)}...${apiKey.substring(apiKey.length - 4)}` : '[REDACTED]';
158
- logDebug(`[SECURITY] Using OpenAI API key (type: ${validation.keyType}, redacted: ${redactedKey})`);
159
- // Check for known revoked/compromised key patterns
160
- if (isPotentiallyCompromisedKey(apiKey)) {
161
- console.warn('SECURITY WARNING: API key matches patterns associated with compromised keys. Rotate immediately.');
162
- }
163
- return apiKey;
164
- }
165
- /**
166
- * Comprehensive OpenAI key format validation
167
- */
168
- function validateOpenAIKeyFormat(apiKey) {
169
- // Length validation
170
- if (apiKey.length < 40 || apiKey.length > 200) {
171
- return { isValid: false, reason: `Invalid key length: ${apiKey.length} chars (expected 40-200)`, keyType: 'unknown' };
172
- }
173
- // Character validation (alphanumeric, dashes, underscores only)
174
- const validChars = /^[a-zA-Z0-9\-_]+$/;
175
- if (!validChars.test(apiKey)) {
176
- return { isValid: false, reason: 'Key contains invalid characters', keyType: 'unknown' };
177
- }
178
- // OpenAI key format patterns
179
- if (apiKey.startsWith('sk-proj-')) {
180
- // Project key format: sk-proj-xxxxxxxxxxxxxxxxxxxxxxxx
181
- if (apiKey.length !== 51) {
182
- return { isValid: false, reason: `Project key should be 51 chars, got ${apiKey.length}`, keyType: 'project' };
183
- }
184
- return { isValid: true, keyType: 'project' };
185
- }
186
- if (apiKey.startsWith('sk-')) {
187
- // Standard key format: sk-xxxxxxxxxxxxxxxxxxxxxxxx
188
- if (apiKey.length !== 51) {
189
- return { isValid: false, reason: `Standard key should be 51 chars, got ${apiKey.length}`, keyType: 'standard' };
190
- }
191
- return { isValid: true, keyType: 'standard' };
192
- }
193
- if (apiKey.startsWith('org-')) {
194
- // Organization key format: org-xxxxxxxxxxxxxxxxxxxxxxxx
195
- if (apiKey.length < 40 || apiKey.length > 100) {
196
- return { isValid: false, reason: `Organization key length ${apiKey.length} outside expected range`, keyType: 'organization' };
197
- }
198
- return { isValid: true, keyType: 'organization' };
199
- }
200
- // Unknown format but might be valid (custom deployments, Azure, etc.)
201
- console.warn(`Unrecognized OpenAI API key format: ${apiKey.substring(0, 12)}...`);
202
- return { isValid: true, keyType: 'unknown' };
203
- }
204
- /**
205
- * Check for patterns associated with compromised keys
206
- * This checks for known patterns from public leaks and security advisories
207
- */
208
- function isPotentiallyCompromisedKey(apiKey) {
209
- // Check for patterns from known public leaks
210
- // These are example patterns - in production, these should come from a threat intelligence feed
211
- // Example: Keys starting with certain compromised prefixes
212
- const compromisedPrefixes = [
213
- 'sk-live-', // Example compromised pattern
214
- 'sk-test-', // Test keys that shouldn't be in production
215
- ];
216
- for (const prefix of compromisedPrefixes) {
217
- if (apiKey.startsWith(prefix)) {
218
- return true;
219
- }
220
- }
221
- // Check for sequential or repeating patterns that might indicate generated/test keys
222
- const sequentialPattern = /(\d{3,})/;
223
- const match = sequentialPattern.exec(apiKey);
224
- if (match) {
225
- const sequence = match[1];
226
- // Check if digits are sequential (like 123, 456, etc.)
227
- if (isSequentialDigits(sequence)) {
228
- return true;
229
- }
230
- }
231
- return false;
232
- }
233
- /**
234
- * Check if a string of digits is sequential (ascending or descending)
235
- */
236
- function isSequentialDigits(str) {
237
- if (str.length < 3)
238
- return false;
239
- // Check ascending
240
- let ascending = true;
241
- for (let i = 1; i < str.length; i++) {
242
- if (parseInt(str[i]) !== parseInt(str[i - 1]) + 1) {
243
- ascending = false;
244
- break;
245
- }
246
- }
247
- if (ascending)
248
- return true;
249
- // Check descending
250
- let descending = true;
251
- for (let i = 1; i < str.length; i++) {
252
- if (parseInt(str[i]) !== parseInt(str[i - 1]) - 1) {
253
- descending = false;
254
- break;
255
- }
256
- }
257
- return descending;
258
- }
259
- /**
260
- * Check if an error is recoverable (should be retried)
261
- */
262
- function isRecoverableError(error) {
263
- if (!(error instanceof Error))
264
- return false;
265
- const message = error.message.toLowerCase();
266
- const errorName = error.name?.toLowerCase() ?? '';
267
- const errorCode = error.code?.toLowerCase() ?? '';
268
- // Check all sources for recoverable patterns
269
- const allText = `${message} ${errorName} ${errorCode}`;
270
- return RECOVERABLE_ERROR_PATTERNS.some(pattern => allText.includes(pattern));
271
- }
272
- export class OpenAIChatCompletionsProvider {
273
- id;
274
- model;
275
- client;
276
- maxRetries;
277
- temperature;
278
- maxTokens;
279
- requestCount = 0;
280
- lastRequestTime = Date.now();
281
- constructor(options) {
282
- // SECURITY: Validate API key - skip OpenAI-specific format checks for custom providers
283
- const isCustomProvider = !!options.baseURL;
284
- const validatedApiKey = isCustomProvider
285
- ? validateGenericApiKey(options.apiKey)
286
- : validateAndProtectApiKey(options.apiKey);
287
- // SECURITY: Rate limiting check
288
- if (!globalRateLimiter.isAllowed('openai-provider')) {
289
- throw new Error('Rate limit exceeded for OpenAI provider. Please wait before making more requests.');
290
- }
291
- // SECURITY: Log security event
292
- securityLogger.logSecurityEvent({
293
- type: 'openai_provider_initialized',
294
- command: 'constructor',
295
- success: true,
296
- timestamp: new Date(),
297
- details: {
298
- model: options.model,
299
- providerId: options.providerId,
300
- hasBaseURL: !!options.baseURL
301
- }
302
- });
303
- const clientConfig = {
304
- apiKey: validatedApiKey,
305
- timeout: options.timeout ?? 120000,
306
- maxRetries: 0, // We handle retries ourselves for better control
307
- };
308
- if (options.baseURL) {
309
- // SECURITY: Enhanced URL validation with domain restrictions
310
- try {
311
- clientConfig.baseURL = validateOpenAIBaseURL(options.baseURL);
312
- logDebug(`[SECURITY] Using validated baseURL: ${clientConfig.baseURL}`);
313
- }
314
- catch (error) {
315
- securityLogger.logSecurityEvent({
316
- type: 'invalid_baseurl',
317
- command: 'constructor',
318
- success: false,
319
- timestamp: new Date(),
320
- details: { error: error instanceof Error ? error.message : String(error) }
321
- });
322
- throw new Error(`Invalid baseURL: ${error instanceof Error ? error.message : String(error)}`);
323
- }
324
- }
325
- this.client = new OpenAI(clientConfig);
326
- this.id = options.providerId ?? 'openai';
327
- this.model = options.model;
328
- this.maxRetries = options.maxRetries ?? 3;
329
- this.temperature = typeof options.temperature === 'number' ? options.temperature : undefined;
330
- this.maxTokens = Math.max(1, options.maxTokens ?? 4096);
331
- }
332
- /**
333
- * Sleep for a given number of milliseconds
334
- */
335
- sleep(ms) {
336
- return new Promise(resolve => setTimeout(resolve, ms));
337
- }
338
- /**
339
- * Calculate exponential backoff delay
340
- */
341
- getBackoffDelay(attempt, baseDelay = 1000, maxDelay = 30000) {
342
- const delay = Math.min(baseDelay * Math.pow(2, attempt), maxDelay);
343
- // Add jitter to prevent thundering herd
344
- return delay + Math.random() * delay * 0.1;
345
- }
346
- /**
347
- * Execute request with retry logic for transient errors
348
- */
349
- async executeWithRetry(operation, operationName) {
350
- let lastError;
351
- for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
352
- try {
353
- return await operation();
354
- }
355
- catch (error) {
356
- lastError = error instanceof Error ? error : new Error(String(error));
357
- // Check if this is a recoverable error
358
- if (isRecoverableError(error) && attempt < this.maxRetries) {
359
- const delay = this.getBackoffDelay(attempt);
360
- // SECURITY: Sanitize error message to prevent token leakage
361
- logDebug(`[${this.id}] ${operationName} failed (attempt ${attempt + 1}/${this.maxRetries + 1}): ` +
362
- `${safeErrorMessage(lastError)}. Retrying in ${Math.round(delay)}ms...`);
363
- await this.sleep(delay);
364
- continue;
365
- }
366
- // Non-recoverable error or out of retries
367
- throw new ProviderStreamError(`${operationName} failed after ${attempt + 1} attempts: ${lastError.message}`, this.id, lastError, isRecoverableError(error));
368
- }
369
- }
370
- // Should not reach here, but TypeScript needs this
371
- throw lastError;
372
- }
373
- async generate(messages, tools) {
374
- const { messages: boundedMessages } = enforceRequestSizeLimit(messages);
375
- return this.executeWithRetry(async () => {
376
- const extraBody = deepseekExtraBody(this.model);
377
- const request = {
378
- model: this.model,
379
- messages: mapMessages(boundedMessages, this.model),
380
- tools: tools.length ? tools.map(mapTool) : undefined,
381
- // Force tool usage when tools are available - prevents text-only rambling
382
- tool_choice: tools.length ? 'auto' : undefined,
383
- // Enable multiple tool calls in a single response
384
- parallel_tool_calls: tools.length ? true : undefined,
385
- stream: false,
386
- // Guardrails: enforce temperature and output cap to prevent runaway responses
387
- temperature: this.temperature,
388
- max_tokens: this.maxTokens,
389
- ...(extraBody ?? {}),
390
- };
391
- let completion;
392
- try {
393
- const result = await this.client.chat.completions.create(request);
394
- assertHasChoices(result);
395
- completion = result;
396
- }
397
- catch (error) {
398
- // Wrap and rethrow with more context
399
- if (error instanceof Error) {
400
- // Check for specific API error types
401
- const apiError = error;
402
- if (apiError.status === 401) {
403
- throw new ProviderStreamError(`Authentication failed for ${this.id}. Check your API key.`, this.id, error, false // Not retryable
404
- );
405
- }
406
- if (apiError.status === 403) {
407
- throw new ProviderStreamError(`Access forbidden for ${this.id}. Check your permissions.`, this.id, error, false // Not retryable
408
- );
409
- }
410
- // Let recoverable errors propagate for retry
411
- if (isRecoverableError(error)) {
412
- throw error;
413
- }
414
- // Wrap other errors
415
- throw new ProviderStreamError(`API request failed: ${error.message}`, this.id, error, false);
416
- }
417
- throw error;
418
- }
419
- const choice = completion.choices[0];
420
- const usage = mapUsage(completion.usage);
421
- if (!choice) {
422
- return {
423
- type: 'message',
424
- content: '',
425
- usage,
426
- };
427
- }
428
- // Safely extract tool calls with error recovery
429
- let toolCalls = [];
430
- try {
431
- toolCalls = (choice.message.tool_calls ?? []).map(mapToolCall);
432
- }
433
- catch (parseError) {
434
- // SECURITY: Sanitize error message to prevent token leakage
435
- logDebug(`[${this.id}] Failed to parse tool calls, recovering: ` +
436
- `${safeErrorMessage(parseError)}`);
437
- // Continue with empty tool calls rather than failing
438
- }
439
- const content = extractMessageContent(choice);
440
- if (toolCalls.length > 0) {
441
- return {
442
- type: 'tool_calls',
443
- toolCalls,
444
- content,
445
- usage,
446
- };
447
- }
448
- return {
449
- type: 'message',
450
- content,
451
- usage,
452
- };
453
- }, 'generate');
454
- }
455
- async *generateStream(messages, tools) {
456
- const { messages: boundedMessages } = enforceRequestSizeLimit(messages);
457
- const extraBody = deepseekExtraBody(this.model);
458
- const request = {
459
- model: this.model,
460
- messages: mapMessages(boundedMessages, this.model),
461
- tools: tools.length ? tools.map(mapTool) : undefined,
462
- // Force tool usage when tools are available - prevents text-only rambling
463
- tool_choice: tools.length ? 'auto' : undefined,
464
- // Enable multiple tool calls in a single response
465
- parallel_tool_calls: tools.length ? true : undefined,
466
- stream: true,
467
- // Guardrails: enforce temperature and output cap to prevent runaway responses
468
- temperature: this.temperature,
469
- max_tokens: this.maxTokens,
470
- ...(extraBody ?? {}),
471
- };
472
- const response = await this.client.chat.completions.create(request);
473
- // TypeScript needs help knowing this is a stream when stream: true
474
- if (!Symbol.asyncIterator || !(response[Symbol.asyncIterator])) {
475
- throw new Error('Expected streaming response but got non-streaming');
476
- }
477
- const stream = response;
478
- // Track tool calls being built (by index)
479
- const pendingToolCalls = new Map();
480
- for await (const chunk of stream) {
481
- const choice = chunk.choices[0];
482
- if (!choice)
483
- continue;
484
- const delta = choice.delta;
485
- // Stream reasoning_content for models like deepseek-v4-pro so users see progress
486
- const reasoning = extractTextContent(delta['reasoning_content']);
487
- if (reasoning) {
488
- yield { type: 'reasoning', content: reasoning };
489
- }
490
- // Handle content chunks (support both string and array formats)
491
- const content = extractTextContent(delta['content']);
492
- if (content) {
493
- yield { type: 'content', content };
494
- }
495
- // Handle tool call deltas
496
- const toolCalls = delta['tool_calls'];
497
- if (toolCalls) {
498
- for (const toolCallDelta of toolCalls) {
499
- const idx = toolCallDelta.index;
500
- if (!pendingToolCalls.has(idx)) {
501
- pendingToolCalls.set(idx, {
502
- id: toolCallDelta.id ?? `call_${idx}`,
503
- name: toolCallDelta.function?.name ?? '',
504
- arguments: '',
505
- });
506
- }
507
- const pending = pendingToolCalls.get(idx);
508
- // Accumulate function name if provided
509
- if (toolCallDelta.function?.name) {
510
- pending.name = toolCallDelta.function.name;
511
- }
512
- // Accumulate arguments with size limit
513
- if (toolCallDelta.function?.arguments) {
514
- // SECURITY: Limit accumulated arguments size to prevent memory DoS
515
- if (pending.arguments.length + toolCallDelta.function.arguments.length > 100000) {
516
- throw new Error(`Tool call arguments too large (${pending.arguments.length + toolCallDelta.function.arguments.length} bytes), maximum is 100KB`);
517
- }
518
- pending.arguments += toolCallDelta.function.arguments;
519
- }
520
- }
521
- }
522
- // Check if stream is done
523
- if (choice.finish_reason) {
524
- // Emit all accumulated tool calls
525
- for (const [, toolCall] of pendingToolCalls) {
526
- let parsed = {};
527
- try {
528
- // SECURITY: Use safe JSON parsing with prototype pollution protection
529
- parsed = safeJSONParse(toolCall.arguments || '{}', {
530
- maxDepth: 10,
531
- maxProperties: 100
532
- });
533
- }
534
- catch (parseError) {
535
- // Try recovery for malformed JSON
536
- const recovered = tryRecoverMalformedJson(toolCall.arguments);
537
- if (recovered) {
538
- parsed = recovered;
539
- }
540
- else {
541
- logDebug(`[SECURITY] Failed to parse tool call arguments: ${safeErrorMessage(parseError)}`);
542
- }
543
- }
544
- yield {
545
- type: 'tool_call',
546
- toolCall: {
547
- id: toolCall.id,
548
- name: toolCall.name,
549
- arguments: parsed,
550
- },
551
- };
552
- }
553
- // Emit usage if available
554
- if ('usage' in chunk && chunk.usage) {
555
- const usage = chunk.usage;
556
- yield {
557
- type: 'usage',
558
- usage: {
559
- inputTokens: usage.prompt_tokens,
560
- outputTokens: usage.completion_tokens,
561
- totalTokens: usage.total_tokens,
562
- },
563
- };
564
- }
565
- yield { type: 'done' };
566
- }
567
- }
568
- }
569
- cachedModelInfo = null;
570
- /**
571
- * Fetch model info from OpenAI API
572
- * Returns context window and token limits from the real API
573
- */
574
- async getModelInfo() {
575
- if (this.cachedModelInfo) {
576
- return this.cachedModelInfo;
577
- }
578
- try {
579
- // Use the OpenAI models API to get real model info
580
- const modelInfo = await this.client.models.retrieve(this.model);
581
- if (modelInfo) {
582
- // OpenAI models API returns context_length or similar field
583
- // The exact field name may vary by model
584
- const rawInfo = modelInfo;
585
- const contextWindow = rawInfo['context_length'] ??
586
- rawInfo['context_window'] ??
587
- rawInfo['max_context_length'];
588
- const maxOutputTokens = rawInfo['max_output_tokens'] ??
589
- rawInfo['output_token_limit'];
590
- if (contextWindow) {
591
- this.cachedModelInfo = {
592
- id: this.model,
593
- contextWindow,
594
- maxOutputTokens,
595
- inputTokenLimit: contextWindow,
596
- outputTokenLimit: maxOutputTokens,
597
- };
598
- return this.cachedModelInfo;
599
- }
600
- }
601
- }
602
- catch (error) {
603
- // Models API may not be available for all models
604
- // Fall through to return null
605
- const message = error instanceof Error ? error.message : String(error);
606
- if (!message.includes('404') && !message.includes('not found')) {
607
- // Log unexpected errors but don't fail
608
- logDebug(`Failed to fetch model info for ${this.model}:`, message);
609
- }
610
- }
611
- return null;
612
- }
613
- }
614
- function isDeepSeekModel(model) {
615
- if (!model)
616
- return false;
617
- const normalized = model.toLowerCase();
618
- return normalized.includes('deepseek');
619
- }
620
- /**
621
- * DeepSeek V4 (deepseek-v4-pro / deepseek-v4-flash and legacy aliases that
622
- * forward to V4) accepts a per-request `thinking` toggle. We always force
623
- * thinking on — the API has no useful non-thinking mode for an agent loop.
624
- * Sent via extra_body so the OpenAI SDK passes it through unchanged.
625
- */
626
- function deepseekExtraBody(model) {
627
- if (!isDeepSeekModel(model))
628
- return undefined;
629
- return { thinking: { type: 'enabled' } };
630
- }
631
- /**
632
- * Check if a model is a Grok model that may output reasoning content
633
- * Grok 3+, Grok 4, and variants with "think" or "reasoning" support chain-of-thought
634
- */
635
- function isGrokModel(model) {
636
- if (!model)
637
- return false;
638
- const normalized = model.toLowerCase();
639
- return (normalized.includes('grok') &&
640
- (normalized.includes('think') ||
641
- normalized.includes('reason') ||
642
- normalized.includes('grok-3') ||
643
- normalized.includes('grok-4')));
644
- }
645
- /**
646
- * Check if a model is a local reasoning model (via Ollama)
647
- * QwQ, Qwen reasoning, Llama reasoning variants, etc.
648
- */
649
- function isLocalReasoningModel(model) {
650
- if (!model)
651
- return false;
652
- const normalized = model.toLowerCase();
653
- return (
654
- // QwQ is Alibaba's reasoning model
655
- normalized.includes('qwq') ||
656
- // Qwen with reasoning
657
- (normalized.includes('qwen') && normalized.includes('reason')) ||
658
- // Llama reasoning variants
659
- (normalized.includes('llama') && normalized.includes('reason')) ||
660
- // Mistral reasoning
661
- (normalized.includes('mistral') && normalized.includes('reason')) ||
662
- // Generic reasoning model indicators
663
- normalized.includes('-r1') ||
664
- normalized.includes('think') ||
665
- normalized.includes('cot'));
666
- }
667
- /**
668
- * Check if a model supports reasoning/thinking content in responses
669
- */
670
- function supportsReasoningContent(model) {
671
- return isDeepSeekModel(model) || isGrokModel(model) || isLocalReasoningModel(model);
672
- }
673
- /**
674
- * Validate and sanitize message sequence to ensure tool messages have preceding tool_calls.
675
- * OpenAI/DeepSeek APIs require: "Messages with role 'tool' must be a response to a preceding message with 'tool_calls'"
676
- */
677
- function sanitizeMessageSequence(messages) {
678
- const sanitized = [];
679
- const pendingToolCallIds = new Set();
680
- for (const message of messages) {
681
- if (message.role === 'assistant' && message.toolCalls?.length) {
682
- // Track tool call IDs that need responses
683
- for (const tc of message.toolCalls) {
684
- if (tc.id)
685
- pendingToolCallIds.add(tc.id);
686
- }
687
- sanitized.push(message);
688
- }
689
- else if (message.role === 'tool') {
690
- // Only include tool messages if we have a pending tool call for them
691
- const toolCallId = message.toolCallId;
692
- if (toolCallId && pendingToolCallIds.has(toolCallId)) {
693
- pendingToolCallIds.delete(toolCallId);
694
- sanitized.push(message);
695
- }
696
- else {
697
- // ORPHANED TOOL MESSAGE - skip it to prevent API error
698
- // This can happen after context compaction or message pruning
699
- logDebug(`[mapMessages] Skipping orphaned tool message (no preceding tool_call): ${toolCallId?.slice(0, 20) || 'no-id'}`);
700
- }
701
- }
702
- else {
703
- // system, user, assistant without tool_calls - pass through
704
- // Clear pending tool calls when we hit a user message (new turn)
705
- if (message.role === 'user') {
706
- pendingToolCallIds.clear();
707
- }
708
- sanitized.push(message);
709
- }
710
- }
711
- return sanitized;
712
- }
713
- function mapMessages(messages, model) {
714
- // CRITICAL: Sanitize message sequence to prevent "tool must follow tool_calls" errors
715
- const sanitizedMessages = sanitizeMessageSequence(messages);
716
- const params = [];
717
- const includeReasoningContent = supportsReasoningContent(model);
718
- for (const message of sanitizedMessages) {
719
- switch (message.role) {
720
- case 'system':
721
- case 'user': {
722
- params.push({
723
- role: message.role,
724
- content: message.content,
725
- });
726
- break;
727
- }
728
- case 'assistant': {
729
- const assistantMessage = {
730
- role: 'assistant',
731
- content: message.content,
732
- tool_calls: message.toolCalls?.map((call, index) => ({
733
- id: call.id || `call_${index}`,
734
- type: 'function',
735
- function: {
736
- name: call.name,
737
- arguments: JSON.stringify(call.arguments ?? {}),
738
- },
739
- })),
740
- };
741
- if (includeReasoningContent) {
742
- assistantMessage.reasoning_content = message.content ?? '';
743
- }
744
- params.push(assistantMessage);
745
- break;
746
- }
747
- case 'tool': {
748
- params.push({
749
- role: 'tool',
750
- content: message.content,
751
- tool_call_id: message.toolCallId,
752
- });
753
- break;
754
- }
755
- default:
756
- break;
757
- }
758
- }
759
- return params;
760
- }
761
- function mapTool(definition) {
762
- const parameters = (definition.parameters ?? {
763
- type: 'object',
764
- properties: {},
765
- });
766
- return {
767
- type: 'function',
768
- function: {
769
- name: definition.name,
770
- description: definition.description,
771
- parameters,
772
- // Enable strict schema validation for more reliable tool calls
773
- strict: false, // Set to false to allow flexible schemas; true requires additionalProperties: false
774
- },
775
- };
776
- }
777
- /**
778
- * Enforce a hard request size limit to prevent provider 413 errors.
779
- * Drops the oldest non-system messages until the serialized size is under limit.
780
- */
781
- function enforceRequestSizeLimit(messages) {
782
- let truncated = false;
783
- const trimmed = [...messages];
784
- let size = estimateMessageChars(trimmed);
785
- while (size > REQUEST_CHAR_LIMIT && trimmed.length > 1) {
786
- // Remove the oldest non-system message; if only systems remain, drop the second message
787
- const removeIdx = trimmed.findIndex(msg => msg.role !== 'system');
788
- const idx = removeIdx === -1 ? 1 : removeIdx;
789
- trimmed.splice(idx, 1);
790
- truncated = true;
791
- size = estimateMessageChars(trimmed);
792
- }
793
- if (truncated) {
794
- trimmed.unshift({
795
- role: 'system',
796
- content: '[Context trimmed to fit request size limit. Earlier turns were dropped to avoid provider rejection.]',
797
- });
798
- }
799
- return { messages: trimmed, truncated };
800
- }
801
- function estimateMessageChars(messages) {
802
- let total = 0;
803
- for (const msg of messages) {
804
- if (typeof msg.content === 'string') {
805
- total += msg.content.length;
806
- }
807
- else if (Array.isArray(msg.content)) {
808
- for (const part of msg.content) {
809
- if (typeof part === 'string') {
810
- total += part.length;
811
- }
812
- else if (part && typeof part === 'object' && 'text' in part) {
813
- const text = part.text ?? '';
814
- total += typeof text === 'string' ? text.length : String(text).length;
815
- }
816
- else {
817
- total += JSON.stringify(part ?? '').length;
818
- }
819
- }
820
- }
821
- else if (msg.content != null) {
822
- total += JSON.stringify(msg.content).length;
823
- }
824
- const toolCalls = msg.toolCalls;
825
- if (Array.isArray(toolCalls)) {
826
- for (const call of toolCalls) {
827
- total += (call.name?.length ?? 0);
828
- try {
829
- total += JSON.stringify(call.arguments ?? {}).length;
830
- }
831
- catch {
832
- total += 100; // Fallback small cost
833
- }
834
- }
835
- }
836
- }
837
- return total;
838
- }
839
- function extractMessageContent(choice) {
840
- const message = choice.message;
841
- const content = extractTextContent(message?.content);
842
- if (content.trim()) {
843
- return content.trim();
844
- }
845
- const reasoning = extractTextContent(message?.reasoning_content);
846
- if (reasoning.trim()) {
847
- return reasoning.trim();
848
- }
849
- const refusal = message?.refusal;
850
- if (typeof refusal === 'string' && refusal.trim()) {
851
- return refusal.trim();
852
- }
853
- return '';
854
- }
855
- function isFunctionToolCall(call) {
856
- return call.type === 'function';
857
- }
858
- function isCustomToolCall(call) {
859
- return call.type === 'custom';
860
- }
861
- function mapToolCall(call) {
862
- let parsed = {};
863
- let rawArgs;
864
- let funcName;
865
- // Handle both standard function calls and custom tool calls
866
- if (isFunctionToolCall(call)) {
867
- rawArgs = call.function.arguments ?? '{}';
868
- funcName = call.function.name ?? call.id ?? 'unknown';
869
- }
870
- else if (isCustomToolCall(call)) {
871
- rawArgs = call.custom.input ?? '{}';
872
- funcName = call.custom.name ?? call.id ?? 'unknown';
873
- }
874
- else {
875
- // Fallback for any future tool call types
876
- rawArgs = '{}';
877
- funcName = call.id ?? 'unknown';
878
- }
879
- try {
880
- // SECURITY: Validate JSON size before parsing to prevent DoS anomalys
881
- if (rawArgs.length > 100000) {
882
- throw new Error(`JSON too large (${rawArgs.length} bytes), maximum is 100KB`);
883
- }
884
- // SECURITY: Check for potential malicious patterns before parsing
885
- if (rawArgs.includes('__proto__') || rawArgs.includes('constructor') || rawArgs.includes('prototype')) {
886
- logDebug(`[security] Suspicious pattern detected in tool call arguments for ${funcName}`);
887
- }
888
- // SECURITY: Use safe JSON parsing instead of plain JSON.parse
889
- parsed = safeJSONParse(rawArgs, {
890
- maxDepth: 15,
891
- maxProperties: 500
892
- });
893
- }
894
- catch (error) {
895
- // Try to recover malformed JSON (common with some models)
896
- const recovered = tryRecoverMalformedJson(rawArgs);
897
- if (recovered) {
898
- parsed = recovered;
899
- }
900
- else {
901
- // SECURITY: Sanitize raw args to prevent token leakage (they could contain API keys in malformed requests)
902
- const sanitizedArgs = sanitizeErrorMessage(rawArgs.slice(0, 100));
903
- logDebug(`[tool-call] Failed to parse arguments for ${funcName}: ${sanitizedArgs}...`);
904
- }
905
- }
906
- return {
907
- id: call.id ?? funcName,
908
- name: funcName,
909
- arguments: parsed,
910
- };
911
- }
912
- /**
913
- * Try to recover malformed JSON from tool call arguments.
914
- * Some models return truncated or malformed JSON that can be fixed.
915
- */
916
- function tryRecoverMalformedJson(raw) {
917
- if (!raw || !raw.trim()) {
918
- return null;
919
- }
920
- const attempts = [
921
- // Try adding missing closing braces/quotes
922
- `${raw}"}`,
923
- `${raw}}`,
924
- `${raw}"` + `}`,
925
- `${raw}"}}`,
926
- `${raw}}}`,
927
- ];
928
- for (const attempt of attempts) {
929
- try {
930
- const parsed = JSON.parse(attempt);
931
- if (typeof parsed === 'object' && parsed !== null) {
932
- return parsed;
933
- }
934
- }
935
- catch {
936
- // Continue to next attempt
937
- }
938
- }
939
- // Try regex extraction as last resort
940
- try {
941
- const pairs = raw.matchAll(/"([^"]+)":\s*(?:"([^"]*)"?|(\d+(?:\.\d+)?)|(\btrue\b|\bfalse\b|\bnull\b))/g);
942
- const result = {};
943
- for (const match of pairs) {
944
- const [, key, strVal, numVal, boolVal] = match;
945
- if (key) {
946
- if (strVal !== undefined) {
947
- result[key] = strVal;
948
- }
949
- else if (numVal) {
950
- result[key] = numVal.includes('.') ? parseFloat(numVal) : parseInt(numVal, 10);
951
- }
952
- else if (boolVal) {
953
- result[key] = boolVal === 'true' ? true : boolVal === 'false' ? false : null;
954
- }
955
- }
956
- }
957
- if (Object.keys(result).length > 0) {
958
- return result;
959
- }
960
- }
961
- catch {
962
- // Regex extraction failed
963
- }
964
- return null;
965
- }
966
- /**
967
- * Normalize OpenAI content parts into plain text.
968
- * Supports both legacy string content and the newer array-of-parts format.
969
- */
970
- function extractTextContent(content) {
971
- if (!content) {
972
- return '';
973
- }
974
- if (typeof content === 'string') {
975
- return content;
976
- }
977
- if (Array.isArray(content)) {
978
- return content
979
- .map((part) => {
980
- if (typeof part === 'string') {
981
- return part;
982
- }
983
- if (part && typeof part === 'object') {
984
- const { text, content: nestedContent } = part;
985
- if (typeof text === 'string')
986
- return text;
987
- if (typeof nestedContent === 'string')
988
- return nestedContent;
989
- }
990
- return '';
991
- })
992
- .join('');
993
- }
994
- if (content && typeof content === 'object') {
995
- const { text, content: nestedContent } = content;
996
- if (typeof text === 'string')
997
- return text;
998
- if (typeof nestedContent === 'string')
999
- return nestedContent;
1000
- }
1001
- return '';
1002
- }
1003
- function mapUsage(usage) {
1004
- if (!usage) {
1005
- return null;
1006
- }
1007
- return {
1008
- inputTokens: usage.prompt_tokens,
1009
- outputTokens: usage.completion_tokens,
1010
- totalTokens: usage.total_tokens,
1011
- };
1012
- }
1013
- function assertHasChoices(result) {
1014
- if (!('choices' in result)) {
1015
- throw new Error('Streaming responses are not supported in this runtime.');
1016
- }
1017
- }
1018
- //# sourceMappingURL=openaiChatCompletionsProvider.js.map