deepseek-coder-agent-cli 1.0.0

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 (501) hide show
  1. package/README.md +58 -0
  2. package/dist/bin/cliMode.d.ts +8 -0
  3. package/dist/bin/cliMode.d.ts.map +1 -0
  4. package/dist/bin/cliMode.js +20 -0
  5. package/dist/bin/cliMode.js.map +1 -0
  6. package/dist/bin/deepseek.d.ts +6 -0
  7. package/dist/bin/deepseek.d.ts.map +1 -0
  8. package/dist/bin/deepseek.js +136 -0
  9. package/dist/bin/deepseek.js.map +1 -0
  10. package/dist/config.d.ts +25 -0
  11. package/dist/config.d.ts.map +1 -0
  12. package/dist/config.js +155 -0
  13. package/dist/config.js.map +1 -0
  14. package/dist/contracts/agent-profiles.schema.json +43 -0
  15. package/dist/contracts/agent-schemas.json +460 -0
  16. package/dist/contracts/models.schema.json +9 -0
  17. package/dist/contracts/module-schema.json +419 -0
  18. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  19. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  20. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  21. package/dist/contracts/schemas/agent.schema.json +90 -0
  22. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  23. package/dist/contracts/tools.schema.json +82 -0
  24. package/dist/contracts/unified-schema.json +750 -0
  25. package/dist/contracts/v1/agent.d.ts +179 -0
  26. package/dist/contracts/v1/agent.d.ts.map +1 -0
  27. package/dist/contracts/v1/agent.js +8 -0
  28. package/dist/contracts/v1/agent.js.map +1 -0
  29. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  30. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  31. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  32. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  33. package/dist/contracts/v1/agentRules.d.ts +60 -0
  34. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  35. package/dist/contracts/v1/agentRules.js +10 -0
  36. package/dist/contracts/v1/agentRules.js.map +1 -0
  37. package/dist/contracts/v1/provider.d.ts +149 -0
  38. package/dist/contracts/v1/provider.d.ts.map +1 -0
  39. package/dist/contracts/v1/provider.js +7 -0
  40. package/dist/contracts/v1/provider.js.map +1 -0
  41. package/dist/contracts/v1/tool.d.ts +136 -0
  42. package/dist/contracts/v1/tool.d.ts.map +1 -0
  43. package/dist/contracts/v1/tool.js +7 -0
  44. package/dist/contracts/v1/tool.js.map +1 -0
  45. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  46. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  47. package/dist/contracts/v1/toolAccess.js +9 -0
  48. package/dist/contracts/v1/toolAccess.js.map +1 -0
  49. package/dist/core/agent.d.ts +287 -0
  50. package/dist/core/agent.d.ts.map +1 -0
  51. package/dist/core/agent.js +1563 -0
  52. package/dist/core/agent.js.map +1 -0
  53. package/dist/core/agentProfileManifest.d.ts +3 -0
  54. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  55. package/dist/core/agentProfileManifest.js +188 -0
  56. package/dist/core/agentProfileManifest.js.map +1 -0
  57. package/dist/core/agentProfiles.d.ts +22 -0
  58. package/dist/core/agentProfiles.d.ts.map +1 -0
  59. package/dist/core/agentProfiles.js +35 -0
  60. package/dist/core/agentProfiles.js.map +1 -0
  61. package/dist/core/agentRulebook.d.ts +11 -0
  62. package/dist/core/agentRulebook.d.ts.map +1 -0
  63. package/dist/core/agentRulebook.js +136 -0
  64. package/dist/core/agentRulebook.js.map +1 -0
  65. package/dist/core/agentSchemaLoader.d.ts +131 -0
  66. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  67. package/dist/core/agentSchemaLoader.js +235 -0
  68. package/dist/core/agentSchemaLoader.js.map +1 -0
  69. package/dist/core/agiCore.d.ts +290 -0
  70. package/dist/core/agiCore.d.ts.map +1 -0
  71. package/dist/core/agiCore.js +1348 -0
  72. package/dist/core/agiCore.js.map +1 -0
  73. package/dist/core/aiErrorFixer.d.ts +57 -0
  74. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  75. package/dist/core/aiErrorFixer.js +214 -0
  76. package/dist/core/aiErrorFixer.js.map +1 -0
  77. package/dist/core/antiTermination.d.ts +226 -0
  78. package/dist/core/antiTermination.d.ts.map +1 -0
  79. package/dist/core/antiTermination.js +713 -0
  80. package/dist/core/antiTermination.js.map +1 -0
  81. package/dist/core/bashCommandGuidance.d.ts +16 -0
  82. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  83. package/dist/core/bashCommandGuidance.js +40 -0
  84. package/dist/core/bashCommandGuidance.js.map +1 -0
  85. package/dist/core/constants.d.ts +31 -0
  86. package/dist/core/constants.d.ts.map +1 -0
  87. package/dist/core/constants.js +62 -0
  88. package/dist/core/constants.js.map +1 -0
  89. package/dist/core/contextManager.d.ts +271 -0
  90. package/dist/core/contextManager.d.ts.map +1 -0
  91. package/dist/core/contextManager.js +1073 -0
  92. package/dist/core/contextManager.js.map +1 -0
  93. package/dist/core/contextWindow.d.ts +42 -0
  94. package/dist/core/contextWindow.d.ts.map +1 -0
  95. package/dist/core/contextWindow.js +123 -0
  96. package/dist/core/contextWindow.js.map +1 -0
  97. package/dist/core/customCommands.d.ts +19 -0
  98. package/dist/core/customCommands.d.ts.map +1 -0
  99. package/dist/core/customCommands.js +85 -0
  100. package/dist/core/customCommands.js.map +1 -0
  101. package/dist/core/deepBugAnalyzer.d.ts +25 -0
  102. package/dist/core/deepBugAnalyzer.d.ts.map +1 -0
  103. package/dist/core/deepBugAnalyzer.js +44 -0
  104. package/dist/core/deepBugAnalyzer.js.map +1 -0
  105. package/dist/core/dualTournament.d.ts +110 -0
  106. package/dist/core/dualTournament.d.ts.map +1 -0
  107. package/dist/core/dualTournament.js +270 -0
  108. package/dist/core/dualTournament.js.map +1 -0
  109. package/dist/core/dynamicGuardrails.d.ts +207 -0
  110. package/dist/core/dynamicGuardrails.d.ts.map +1 -0
  111. package/dist/core/dynamicGuardrails.js +516 -0
  112. package/dist/core/dynamicGuardrails.js.map +1 -0
  113. package/dist/core/embeddingProviders.d.ts +80 -0
  114. package/dist/core/embeddingProviders.d.ts.map +1 -0
  115. package/dist/core/embeddingProviders.js +241 -0
  116. package/dist/core/embeddingProviders.js.map +1 -0
  117. package/dist/core/episodicMemory.d.ts +259 -0
  118. package/dist/core/episodicMemory.d.ts.map +1 -0
  119. package/dist/core/episodicMemory.js +833 -0
  120. package/dist/core/episodicMemory.js.map +1 -0
  121. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  122. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  123. package/dist/core/errors/apiKeyErrors.js +159 -0
  124. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  125. package/dist/core/errors/errorTypes.d.ts +111 -0
  126. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  127. package/dist/core/errors/errorTypes.js +345 -0
  128. package/dist/core/errors/errorTypes.js.map +1 -0
  129. package/dist/core/errors/index.d.ts +50 -0
  130. package/dist/core/errors/index.d.ts.map +1 -0
  131. package/dist/core/errors/index.js +156 -0
  132. package/dist/core/errors/index.js.map +1 -0
  133. package/dist/core/errors/networkErrors.d.ts +14 -0
  134. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  135. package/dist/core/errors/networkErrors.js +53 -0
  136. package/dist/core/errors/networkErrors.js.map +1 -0
  137. package/dist/core/errors/safetyValidator.d.ts +115 -0
  138. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  139. package/dist/core/errors/safetyValidator.js +302 -0
  140. package/dist/core/errors/safetyValidator.js.map +1 -0
  141. package/dist/core/errors.d.ts +4 -0
  142. package/dist/core/errors.d.ts.map +1 -0
  143. package/dist/core/errors.js +33 -0
  144. package/dist/core/errors.js.map +1 -0
  145. package/dist/core/finalResponseFormatter.d.ts +10 -0
  146. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  147. package/dist/core/finalResponseFormatter.js +14 -0
  148. package/dist/core/finalResponseFormatter.js.map +1 -0
  149. package/dist/core/flowProtection.d.ts +154 -0
  150. package/dist/core/flowProtection.d.ts.map +1 -0
  151. package/dist/core/flowProtection.js +436 -0
  152. package/dist/core/flowProtection.js.map +1 -0
  153. package/dist/core/gitWorktreeManager.d.ts +126 -0
  154. package/dist/core/gitWorktreeManager.d.ts.map +1 -0
  155. package/dist/core/gitWorktreeManager.js +403 -0
  156. package/dist/core/gitWorktreeManager.js.map +1 -0
  157. package/dist/core/guardrails.d.ts +150 -0
  158. package/dist/core/guardrails.d.ts.map +1 -0
  159. package/dist/core/guardrails.js +360 -0
  160. package/dist/core/guardrails.js.map +1 -0
  161. package/dist/core/hallucinationGuard.d.ts +57 -0
  162. package/dist/core/hallucinationGuard.d.ts.map +1 -0
  163. package/dist/core/hallucinationGuard.js +237 -0
  164. package/dist/core/hallucinationGuard.js.map +1 -0
  165. package/dist/core/hitlEnforcement.d.ts +143 -0
  166. package/dist/core/hitlEnforcement.d.ts.map +1 -0
  167. package/dist/core/hitlEnforcement.js +583 -0
  168. package/dist/core/hitlEnforcement.js.map +1 -0
  169. package/dist/core/hooks.d.ts +113 -0
  170. package/dist/core/hooks.d.ts.map +1 -0
  171. package/dist/core/hooks.js +364 -0
  172. package/dist/core/hooks.js.map +1 -0
  173. package/dist/core/hotReload.d.ts +154 -0
  174. package/dist/core/hotReload.d.ts.map +1 -0
  175. package/dist/core/hotReload.js +451 -0
  176. package/dist/core/hotReload.js.map +1 -0
  177. package/dist/core/hypothesisEngine.d.ts +27 -0
  178. package/dist/core/hypothesisEngine.d.ts.map +1 -0
  179. package/dist/core/hypothesisEngine.js +58 -0
  180. package/dist/core/hypothesisEngine.js.map +1 -0
  181. package/dist/core/index.d.ts +26 -0
  182. package/dist/core/index.d.ts.map +1 -0
  183. package/dist/core/index.js +54 -0
  184. package/dist/core/index.js.map +1 -0
  185. package/dist/core/inputProtection.d.ts +122 -0
  186. package/dist/core/inputProtection.d.ts.map +1 -0
  187. package/dist/core/inputProtection.js +421 -0
  188. package/dist/core/inputProtection.js.map +1 -0
  189. package/dist/core/liveGCPVerification.d.ts +41 -0
  190. package/dist/core/liveGCPVerification.d.ts.map +1 -0
  191. package/dist/core/liveGCPVerification.js +745 -0
  192. package/dist/core/liveGCPVerification.js.map +1 -0
  193. package/dist/core/modelDiscovery.d.ts +105 -0
  194. package/dist/core/modelDiscovery.d.ts.map +1 -0
  195. package/dist/core/modelDiscovery.js +740 -0
  196. package/dist/core/modelDiscovery.js.map +1 -0
  197. package/dist/core/multilinePasteHandler.d.ts +35 -0
  198. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  199. package/dist/core/multilinePasteHandler.js +80 -0
  200. package/dist/core/multilinePasteHandler.js.map +1 -0
  201. package/dist/core/parallel.d.ts +85 -0
  202. package/dist/core/parallel.d.ts.map +1 -0
  203. package/dist/core/parallel.js +150 -0
  204. package/dist/core/parallel.js.map +1 -0
  205. package/dist/core/parallelCoordinator.d.ts +21 -0
  206. package/dist/core/parallelCoordinator.d.ts.map +1 -0
  207. package/dist/core/parallelCoordinator.js +42 -0
  208. package/dist/core/parallelCoordinator.js.map +1 -0
  209. package/dist/core/parallelExecutor.d.ts +215 -0
  210. package/dist/core/parallelExecutor.d.ts.map +1 -0
  211. package/dist/core/parallelExecutor.js +584 -0
  212. package/dist/core/parallelExecutor.js.map +1 -0
  213. package/dist/core/platformSecurityIntegration.d.ts +133 -0
  214. package/dist/core/platformSecurityIntegration.d.ts.map +1 -0
  215. package/dist/core/platformSecurityIntegration.js +419 -0
  216. package/dist/core/platformSecurityIntegration.js.map +1 -0
  217. package/dist/core/preferences.d.ts +71 -0
  218. package/dist/core/preferences.d.ts.map +1 -0
  219. package/dist/core/preferences.js +341 -0
  220. package/dist/core/preferences.js.map +1 -0
  221. package/dist/core/productTestHarness.d.ts +46 -0
  222. package/dist/core/productTestHarness.d.ts.map +1 -0
  223. package/dist/core/productTestHarness.js +128 -0
  224. package/dist/core/productTestHarness.js.map +1 -0
  225. package/dist/core/providerKeys.d.ts +20 -0
  226. package/dist/core/providerKeys.d.ts.map +1 -0
  227. package/dist/core/providerKeys.js +40 -0
  228. package/dist/core/providerKeys.js.map +1 -0
  229. package/dist/core/realityScore.d.ts +159 -0
  230. package/dist/core/realityScore.d.ts.map +1 -0
  231. package/dist/core/realityScore.js +734 -0
  232. package/dist/core/realityScore.js.map +1 -0
  233. package/dist/core/repoUpgradeOrchestrator.d.ts +223 -0
  234. package/dist/core/repoUpgradeOrchestrator.d.ts.map +1 -0
  235. package/dist/core/repoUpgradeOrchestrator.js +1003 -0
  236. package/dist/core/repoUpgradeOrchestrator.js.map +1 -0
  237. package/dist/core/resultVerification.d.ts +47 -0
  238. package/dist/core/resultVerification.d.ts.map +1 -0
  239. package/dist/core/resultVerification.js +126 -0
  240. package/dist/core/resultVerification.js.map +1 -0
  241. package/dist/core/revenueEnvValidator.d.ts +30 -0
  242. package/dist/core/revenueEnvValidator.d.ts.map +1 -0
  243. package/dist/core/revenueEnvValidator.js +241 -0
  244. package/dist/core/revenueEnvValidator.js.map +1 -0
  245. package/dist/core/schemaValidator.d.ts +49 -0
  246. package/dist/core/schemaValidator.d.ts.map +1 -0
  247. package/dist/core/schemaValidator.js +234 -0
  248. package/dist/core/schemaValidator.js.map +1 -0
  249. package/dist/core/secretStore.d.ts +48 -0
  250. package/dist/core/secretStore.d.ts.map +1 -0
  251. package/dist/core/secretStore.js +295 -0
  252. package/dist/core/secretStore.js.map +1 -0
  253. package/dist/core/securityTournament.d.ts +83 -0
  254. package/dist/core/securityTournament.d.ts.map +1 -0
  255. package/dist/core/securityTournament.js +357 -0
  256. package/dist/core/securityTournament.js.map +1 -0
  257. package/dist/core/selfUpgrade.d.ts +253 -0
  258. package/dist/core/selfUpgrade.d.ts.map +1 -0
  259. package/dist/core/selfUpgrade.js +669 -0
  260. package/dist/core/selfUpgrade.js.map +1 -0
  261. package/dist/core/sessionStorage.d.ts +10 -0
  262. package/dist/core/sessionStorage.d.ts.map +1 -0
  263. package/dist/core/sessionStorage.js +46 -0
  264. package/dist/core/sessionStorage.js.map +1 -0
  265. package/dist/core/sessionStore.d.ts +35 -0
  266. package/dist/core/sessionStore.d.ts.map +1 -0
  267. package/dist/core/sessionStore.js +191 -0
  268. package/dist/core/sessionStore.js.map +1 -0
  269. package/dist/core/taskCompletionDetector.d.ts +112 -0
  270. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  271. package/dist/core/taskCompletionDetector.js +469 -0
  272. package/dist/core/taskCompletionDetector.js.map +1 -0
  273. package/dist/core/toolPreconditions.d.ts +34 -0
  274. package/dist/core/toolPreconditions.d.ts.map +1 -0
  275. package/dist/core/toolPreconditions.js +242 -0
  276. package/dist/core/toolPreconditions.js.map +1 -0
  277. package/dist/core/toolRuntime.d.ts +185 -0
  278. package/dist/core/toolRuntime.d.ts.map +1 -0
  279. package/dist/core/toolRuntime.js +412 -0
  280. package/dist/core/toolRuntime.js.map +1 -0
  281. package/dist/core/tournamentStrategy.d.ts +12 -0
  282. package/dist/core/tournamentStrategy.d.ts.map +1 -0
  283. package/dist/core/tournamentStrategy.js +41 -0
  284. package/dist/core/tournamentStrategy.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 +334 -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/core/unifiedOrchestrator.d.ts +47 -0
  294. package/dist/core/unifiedOrchestrator.d.ts.map +1 -0
  295. package/dist/core/unifiedOrchestrator.js +103 -0
  296. package/dist/core/unifiedOrchestrator.js.map +1 -0
  297. package/dist/core/universalSecurityAudit.d.ts +104 -0
  298. package/dist/core/universalSecurityAudit.d.ts.map +1 -0
  299. package/dist/core/universalSecurityAudit.js +2190 -0
  300. package/dist/core/universalSecurityAudit.js.map +1 -0
  301. package/dist/core/updateChecker.d.ts +148 -0
  302. package/dist/core/updateChecker.d.ts.map +1 -0
  303. package/dist/core/updateChecker.js +593 -0
  304. package/dist/core/updateChecker.js.map +1 -0
  305. package/dist/core/variantExecution.d.ts +23 -0
  306. package/dist/core/variantExecution.d.ts.map +1 -0
  307. package/dist/core/variantExecution.js +58 -0
  308. package/dist/core/variantExecution.js.map +1 -0
  309. package/dist/core/verificationFirst.d.ts +110 -0
  310. package/dist/core/verificationFirst.d.ts.map +1 -0
  311. package/dist/core/verificationFirst.js +312 -0
  312. package/dist/core/verificationFirst.js.map +1 -0
  313. package/dist/core/winnerStrategy.d.ts +15 -0
  314. package/dist/core/winnerStrategy.d.ts.map +1 -0
  315. package/dist/core/winnerStrategy.js +18 -0
  316. package/dist/core/winnerStrategy.js.map +1 -0
  317. package/dist/core/zeroDayDiscovery.d.ts +96 -0
  318. package/dist/core/zeroDayDiscovery.d.ts.map +1 -0
  319. package/dist/core/zeroDayDiscovery.js +358 -0
  320. package/dist/core/zeroDayDiscovery.js.map +1 -0
  321. package/dist/headless/interactiveShell.d.ts +22 -0
  322. package/dist/headless/interactiveShell.d.ts.map +1 -0
  323. package/dist/headless/interactiveShell.js +3832 -0
  324. package/dist/headless/interactiveShell.js.map +1 -0
  325. package/dist/headless/quickMode.d.ts +26 -0
  326. package/dist/headless/quickMode.d.ts.map +1 -0
  327. package/dist/headless/quickMode.js +226 -0
  328. package/dist/headless/quickMode.js.map +1 -0
  329. package/dist/providers/baseProvider.d.ts +148 -0
  330. package/dist/providers/baseProvider.d.ts.map +1 -0
  331. package/dist/providers/baseProvider.js +284 -0
  332. package/dist/providers/baseProvider.js.map +1 -0
  333. package/dist/providers/deepseekReasonerProvider.d.ts +57 -0
  334. package/dist/providers/deepseekReasonerProvider.d.ts.map +1 -0
  335. package/dist/providers/deepseekReasonerProvider.js +87 -0
  336. package/dist/providers/deepseekReasonerProvider.js.map +1 -0
  337. package/dist/providers/openaiChatCompletionsProvider.d.ts +64 -0
  338. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  339. package/dist/providers/openaiChatCompletionsProvider.js +1000 -0
  340. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  341. package/dist/providers/providerFactory.d.ts +24 -0
  342. package/dist/providers/providerFactory.d.ts.map +1 -0
  343. package/dist/providers/providerFactory.js +27 -0
  344. package/dist/providers/providerFactory.js.map +1 -0
  345. package/dist/providers/resilientProvider.d.ts +103 -0
  346. package/dist/providers/resilientProvider.d.ts.map +1 -0
  347. package/dist/providers/resilientProvider.js +462 -0
  348. package/dist/providers/resilientProvider.js.map +1 -0
  349. package/dist/runtime/agentController.d.ts +114 -0
  350. package/dist/runtime/agentController.d.ts.map +1 -0
  351. package/dist/runtime/agentController.js +693 -0
  352. package/dist/runtime/agentController.js.map +1 -0
  353. package/dist/runtime/agentHost.d.ts +61 -0
  354. package/dist/runtime/agentHost.d.ts.map +1 -0
  355. package/dist/runtime/agentHost.js +157 -0
  356. package/dist/runtime/agentHost.js.map +1 -0
  357. package/dist/runtime/agentSession.d.ts +45 -0
  358. package/dist/runtime/agentSession.d.ts.map +1 -0
  359. package/dist/runtime/agentSession.js +214 -0
  360. package/dist/runtime/agentSession.js.map +1 -0
  361. package/dist/runtime/agentWorkerPool.d.ts +167 -0
  362. package/dist/runtime/agentWorkerPool.d.ts.map +1 -0
  363. package/dist/runtime/agentWorkerPool.js +435 -0
  364. package/dist/runtime/agentWorkerPool.js.map +1 -0
  365. package/dist/runtime/node.d.ts +7 -0
  366. package/dist/runtime/node.d.ts.map +1 -0
  367. package/dist/runtime/node.js +18 -0
  368. package/dist/runtime/node.js.map +1 -0
  369. package/dist/runtime/universal.d.ts +18 -0
  370. package/dist/runtime/universal.d.ts.map +1 -0
  371. package/dist/runtime/universal.js +21 -0
  372. package/dist/runtime/universal.js.map +1 -0
  373. package/dist/ui/PromptController.d.ts +174 -0
  374. package/dist/ui/PromptController.d.ts.map +1 -0
  375. package/dist/ui/PromptController.js +351 -0
  376. package/dist/ui/PromptController.js.map +1 -0
  377. package/dist/ui/UnifiedUIRenderer.d.ts +779 -0
  378. package/dist/ui/UnifiedUIRenderer.d.ts.map +1 -0
  379. package/dist/ui/UnifiedUIRenderer.js +5458 -0
  380. package/dist/ui/UnifiedUIRenderer.js.map +1 -0
  381. package/dist/ui/animatedStatus.d.ts +140 -0
  382. package/dist/ui/animatedStatus.d.ts.map +1 -0
  383. package/dist/ui/animatedStatus.js +480 -0
  384. package/dist/ui/animatedStatus.js.map +1 -0
  385. package/dist/ui/animation/AnimationScheduler.d.ts +197 -0
  386. package/dist/ui/animation/AnimationScheduler.d.ts.map +1 -0
  387. package/dist/ui/animation/AnimationScheduler.js +440 -0
  388. package/dist/ui/animation/AnimationScheduler.js.map +1 -0
  389. package/dist/ui/codeHighlighter.d.ts +6 -0
  390. package/dist/ui/codeHighlighter.d.ts.map +1 -0
  391. package/dist/ui/codeHighlighter.js +855 -0
  392. package/dist/ui/codeHighlighter.js.map +1 -0
  393. package/dist/ui/designSystem.d.ts +26 -0
  394. package/dist/ui/designSystem.d.ts.map +1 -0
  395. package/dist/ui/designSystem.js +114 -0
  396. package/dist/ui/designSystem.js.map +1 -0
  397. package/dist/ui/errorFormatter.d.ts +64 -0
  398. package/dist/ui/errorFormatter.d.ts.map +1 -0
  399. package/dist/ui/errorFormatter.js +316 -0
  400. package/dist/ui/errorFormatter.js.map +1 -0
  401. package/dist/ui/globalWriteLock.d.ts +63 -0
  402. package/dist/ui/globalWriteLock.d.ts.map +1 -0
  403. package/dist/ui/globalWriteLock.js +173 -0
  404. package/dist/ui/globalWriteLock.js.map +1 -0
  405. package/dist/ui/index.d.ts +32 -0
  406. package/dist/ui/index.d.ts.map +1 -0
  407. package/dist/ui/index.js +54 -0
  408. package/dist/ui/index.js.map +1 -0
  409. package/dist/ui/interrupts/InterruptManager.d.ts +157 -0
  410. package/dist/ui/interrupts/InterruptManager.d.ts.map +1 -0
  411. package/dist/ui/interrupts/InterruptManager.js +501 -0
  412. package/dist/ui/interrupts/InterruptManager.js.map +1 -0
  413. package/dist/ui/layout.d.ts +27 -0
  414. package/dist/ui/layout.d.ts.map +1 -0
  415. package/dist/ui/layout.js +184 -0
  416. package/dist/ui/layout.js.map +1 -0
  417. package/dist/ui/maxOffensiveUkraineUI.d.ts +94 -0
  418. package/dist/ui/maxOffensiveUkraineUI.d.ts.map +1 -0
  419. package/dist/ui/maxOffensiveUkraineUI.js +316 -0
  420. package/dist/ui/maxOffensiveUkraineUI.js.map +1 -0
  421. package/dist/ui/outputMode.d.ts +44 -0
  422. package/dist/ui/outputMode.d.ts.map +1 -0
  423. package/dist/ui/outputMode.js +123 -0
  424. package/dist/ui/outputMode.js.map +1 -0
  425. package/dist/ui/overlay/OverlayManager.d.ts +105 -0
  426. package/dist/ui/overlay/OverlayManager.d.ts.map +1 -0
  427. package/dist/ui/overlay/OverlayManager.js +291 -0
  428. package/dist/ui/overlay/OverlayManager.js.map +1 -0
  429. package/dist/ui/premiumComponents.d.ts +54 -0
  430. package/dist/ui/premiumComponents.d.ts.map +1 -0
  431. package/dist/ui/premiumComponents.js +241 -0
  432. package/dist/ui/premiumComponents.js.map +1 -0
  433. package/dist/ui/richText.d.ts +13 -0
  434. package/dist/ui/richText.d.ts.map +1 -0
  435. package/dist/ui/richText.js +444 -0
  436. package/dist/ui/richText.js.map +1 -0
  437. package/dist/ui/telemetry/ResponseTracker.d.ts +22 -0
  438. package/dist/ui/telemetry/ResponseTracker.d.ts.map +1 -0
  439. package/dist/ui/telemetry/ResponseTracker.js +60 -0
  440. package/dist/ui/telemetry/ResponseTracker.js.map +1 -0
  441. package/dist/ui/telemetry/UITelemetry.d.ts +181 -0
  442. package/dist/ui/telemetry/UITelemetry.d.ts.map +1 -0
  443. package/dist/ui/telemetry/UITelemetry.js +446 -0
  444. package/dist/ui/telemetry/UITelemetry.js.map +1 -0
  445. package/dist/ui/textHighlighter.d.ts +83 -0
  446. package/dist/ui/textHighlighter.d.ts.map +1 -0
  447. package/dist/ui/textHighlighter.js +267 -0
  448. package/dist/ui/textHighlighter.js.map +1 -0
  449. package/dist/ui/theme.d.ts +364 -0
  450. package/dist/ui/theme.d.ts.map +1 -0
  451. package/dist/ui/theme.js +471 -0
  452. package/dist/ui/theme.js.map +1 -0
  453. package/dist/ui/toolDisplay.d.ts +221 -0
  454. package/dist/ui/toolDisplay.d.ts.map +1 -0
  455. package/dist/ui/toolDisplay.js +1654 -0
  456. package/dist/ui/toolDisplay.js.map +1 -0
  457. package/dist/ui/uiConstants.d.ts +288 -0
  458. package/dist/ui/uiConstants.d.ts.map +1 -0
  459. package/dist/ui/uiConstants.js +472 -0
  460. package/dist/ui/uiConstants.js.map +1 -0
  461. package/dist/utils/askUserPrompt.d.ts +21 -0
  462. package/dist/utils/askUserPrompt.d.ts.map +1 -0
  463. package/dist/utils/askUserPrompt.js +87 -0
  464. package/dist/utils/askUserPrompt.js.map +1 -0
  465. package/dist/utils/asyncUtils.d.ts +95 -0
  466. package/dist/utils/asyncUtils.d.ts.map +1 -0
  467. package/dist/utils/asyncUtils.js +286 -0
  468. package/dist/utils/asyncUtils.js.map +1 -0
  469. package/dist/utils/debugLogger.d.ts +6 -0
  470. package/dist/utils/debugLogger.d.ts.map +1 -0
  471. package/dist/utils/debugLogger.js +39 -0
  472. package/dist/utils/debugLogger.js.map +1 -0
  473. package/dist/utils/errorUtils.d.ts +12 -0
  474. package/dist/utils/errorUtils.d.ts.map +1 -0
  475. package/dist/utils/errorUtils.js +83 -0
  476. package/dist/utils/errorUtils.js.map +1 -0
  477. package/dist/utils/frontmatter.d.ts +10 -0
  478. package/dist/utils/frontmatter.d.ts.map +1 -0
  479. package/dist/utils/frontmatter.js +78 -0
  480. package/dist/utils/frontmatter.js.map +1 -0
  481. package/dist/utils/packageInfo.d.ts +14 -0
  482. package/dist/utils/packageInfo.d.ts.map +1 -0
  483. package/dist/utils/packageInfo.js +45 -0
  484. package/dist/utils/packageInfo.js.map +1 -0
  485. package/dist/utils/planFormatter.d.ts +34 -0
  486. package/dist/utils/planFormatter.d.ts.map +1 -0
  487. package/dist/utils/planFormatter.js +141 -0
  488. package/dist/utils/planFormatter.js.map +1 -0
  489. package/dist/utils/securityUtils.d.ts +132 -0
  490. package/dist/utils/securityUtils.d.ts.map +1 -0
  491. package/dist/utils/securityUtils.js +324 -0
  492. package/dist/utils/securityUtils.js.map +1 -0
  493. package/dist/workspace.d.ts +8 -0
  494. package/dist/workspace.d.ts.map +1 -0
  495. package/dist/workspace.js +134 -0
  496. package/dist/workspace.js.map +1 -0
  497. package/dist/workspace.validator.d.ts +49 -0
  498. package/dist/workspace.validator.d.ts.map +1 -0
  499. package/dist/workspace.validator.js +215 -0
  500. package/dist/workspace.validator.js.map +1 -0
  501. package/package.json +60 -0
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Base Provider - Abstract LLM Provider Implementation
3
+ *
4
+ * Provides common functionality for LLM providers:
5
+ * - Retry logic with exponential backoff
6
+ * - Rate limit handling
7
+ * - Transient error recovery
8
+ * - Message conversion utilities
9
+ * - Usage tracking
10
+ *
11
+ * Usage:
12
+ * ```typescript
13
+ * class MyProvider extends BaseProvider {
14
+ * readonly id = 'my-provider';
15
+ *
16
+ * protected async doGenerate(messages, tools): Promise<ProviderResponse> {
17
+ * // Provider-specific implementation
18
+ * }
19
+ *
20
+ * protected async doGenerateStream(messages, tools): AsyncIterable<StreamChunk> {
21
+ * // Provider-specific implementation
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ import type { ConversationMessage, LLMProvider, ProviderResponse, ProviderToolDefinition, ProviderUsage, StreamChunk, ProviderModelInfo } from '../core/types.js';
27
+ /** Patterns that indicate transient/retryable errors */
28
+ export declare const TRANSIENT_ERROR_PATTERNS: readonly ["premature close", "premature end", "unexpected end", "aborted", "fetcherror", "invalid response body", "gunzip", "decompress", "econnreset", "econnrefused", "epipe", "socket hang up", "network", "timeout", "500", "502", "503", "504", "overloaded"];
29
+ /** Default retry configuration */
30
+ export declare const DEFAULT_RETRY_CONFIG: {
31
+ readonly maxRetries: 3;
32
+ readonly initialDelayMs: 1000;
33
+ readonly maxDelayMs: 30000;
34
+ readonly backoffMultiplier: 2;
35
+ };
36
+ /** Default rate limit configuration */
37
+ export declare const DEFAULT_RATE_LIMIT_CONFIG: {
38
+ readonly maxRetries: 4;
39
+ readonly initialDelayMs: 1500;
40
+ readonly minDelayMs: 750;
41
+ readonly maxDelayMs: 40000;
42
+ };
43
+ export interface RetryConfig {
44
+ maxRetries: number;
45
+ initialDelayMs: number;
46
+ maxDelayMs: number;
47
+ backoffMultiplier: number;
48
+ }
49
+ export interface RateLimitConfig {
50
+ maxRetries: number;
51
+ initialDelayMs: number;
52
+ minDelayMs: number;
53
+ maxDelayMs: number;
54
+ }
55
+ export interface BaseProviderOptions {
56
+ model: string;
57
+ maxTokens?: number;
58
+ temperature?: number;
59
+ retryConfig?: Partial<RetryConfig>;
60
+ rateLimitConfig?: Partial<RateLimitConfig>;
61
+ }
62
+ /**
63
+ * Check if an error is transient and can be retried
64
+ */
65
+ export declare function isTransientError(error: unknown): boolean;
66
+ /**
67
+ * Check if an error is a rate limit error
68
+ */
69
+ export declare function isRateLimitError(error: unknown): boolean;
70
+ /**
71
+ * Check if an error is an authentication error
72
+ */
73
+ export declare function isAuthError(error: unknown): boolean;
74
+ /**
75
+ * Sleep for a given duration
76
+ */
77
+ export declare function sleep(ms: number): Promise<void>;
78
+ /**
79
+ * Calculate exponential backoff delay
80
+ */
81
+ export declare function calculateBackoffDelay(attempt: number, config: RetryConfig): number;
82
+ /**
83
+ * Execute an operation with retry logic
84
+ */
85
+ export declare function withRetry<T>(operation: () => Promise<T>, options?: {
86
+ config?: Partial<RetryConfig>;
87
+ shouldRetry?: (error: unknown) => boolean;
88
+ onRetry?: (error: unknown, attempt: number, delay: number) => void;
89
+ }): Promise<T>;
90
+ /**
91
+ * Extract system message from conversation
92
+ */
93
+ export declare function extractSystemMessage(messages: ConversationMessage[]): {
94
+ system: string | null;
95
+ rest: ConversationMessage[];
96
+ };
97
+ /**
98
+ * Merge consecutive messages from the same role
99
+ */
100
+ export declare function mergeConsecutiveMessages(messages: ConversationMessage[]): ConversationMessage[];
101
+ /**
102
+ * Create an empty usage object
103
+ */
104
+ export declare function emptyUsage(): ProviderUsage;
105
+ /**
106
+ * Merge usage objects
107
+ */
108
+ export declare function mergeUsage(a: ProviderUsage, b: ProviderUsage): ProviderUsage;
109
+ /**
110
+ * Abstract base class for LLM providers
111
+ *
112
+ * Implements common functionality like retry logic and error handling.
113
+ * Subclasses must implement the abstract methods for provider-specific behavior.
114
+ */
115
+ export declare abstract class BaseProvider implements LLMProvider {
116
+ abstract readonly id: string;
117
+ readonly model: string;
118
+ protected readonly maxTokens: number;
119
+ protected readonly temperature: number;
120
+ protected readonly retryConfig: RetryConfig;
121
+ protected readonly rateLimitConfig: RateLimitConfig;
122
+ constructor(options: BaseProviderOptions);
123
+ /**
124
+ * Generate a response (implemented by subclass)
125
+ */
126
+ generate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
127
+ /**
128
+ * Generate a streaming response (implemented by subclass)
129
+ */
130
+ generateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
131
+ /**
132
+ * Get available models (optional, implemented by subclass)
133
+ */
134
+ getModels(): Promise<ProviderModelInfo[]>;
135
+ /**
136
+ * Provider-specific generate implementation
137
+ */
138
+ protected abstract doGenerate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
139
+ /**
140
+ * Provider-specific stream implementation
141
+ */
142
+ protected abstract doGenerateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterable<StreamChunk>;
143
+ /**
144
+ * Called when a retry is about to happen
145
+ */
146
+ protected onRetry(_error: unknown, _attempt: number, _delay: number): void;
147
+ }
148
+ //# sourceMappingURL=baseProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseProvider.d.ts","sourceRoot":"","sources":["../../src/providers/baseProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Base Provider - Abstract LLM Provider Implementation
3
+ *
4
+ * Provides common functionality for LLM providers:
5
+ * - Retry logic with exponential backoff
6
+ * - Rate limit handling
7
+ * - Transient error recovery
8
+ * - Message conversion utilities
9
+ * - Usage tracking
10
+ *
11
+ * Usage:
12
+ * ```typescript
13
+ * class MyProvider extends BaseProvider {
14
+ * readonly id = 'my-provider';
15
+ *
16
+ * protected async doGenerate(messages, tools): Promise<ProviderResponse> {
17
+ * // Provider-specific implementation
18
+ * }
19
+ *
20
+ * protected async doGenerateStream(messages, tools): AsyncIterable<StreamChunk> {
21
+ * // Provider-specific implementation
22
+ * }
23
+ * }
24
+ * ```
25
+ */
26
+ // ═══════════════════════════════════════════════════════════════════════════════
27
+ // Constants
28
+ // ═══════════════════════════════════════════════════════════════════════════════
29
+ /** Patterns that indicate transient/retryable errors */
30
+ export const TRANSIENT_ERROR_PATTERNS = [
31
+ 'premature close',
32
+ 'premature end',
33
+ 'unexpected end',
34
+ 'aborted',
35
+ 'fetcherror',
36
+ 'invalid response body',
37
+ 'gunzip',
38
+ 'decompress',
39
+ 'econnreset',
40
+ 'econnrefused',
41
+ 'epipe',
42
+ 'socket hang up',
43
+ 'network',
44
+ 'timeout',
45
+ '500',
46
+ '502',
47
+ '503',
48
+ '504',
49
+ 'overloaded',
50
+ ];
51
+ /** Default retry configuration */
52
+ export const DEFAULT_RETRY_CONFIG = {
53
+ maxRetries: 3,
54
+ initialDelayMs: 1000,
55
+ maxDelayMs: 30000,
56
+ backoffMultiplier: 2,
57
+ };
58
+ /** Default rate limit configuration */
59
+ export const DEFAULT_RATE_LIMIT_CONFIG = {
60
+ maxRetries: 4,
61
+ initialDelayMs: 1500,
62
+ minDelayMs: 750,
63
+ maxDelayMs: 40000,
64
+ };
65
+ // ═══════════════════════════════════════════════════════════════════════════════
66
+ // Error Detection Utilities
67
+ // ═══════════════════════════════════════════════════════════════════════════════
68
+ /**
69
+ * Check if an error is transient and can be retried
70
+ */
71
+ export function isTransientError(error) {
72
+ if (!(error instanceof Error))
73
+ return false;
74
+ const message = error.message.toLowerCase();
75
+ const errorName = error.name?.toLowerCase() ?? '';
76
+ const errorCode = error.code?.toLowerCase() ?? '';
77
+ const allText = `${message} ${errorName} ${errorCode}`;
78
+ return TRANSIENT_ERROR_PATTERNS.some((pattern) => allText.includes(pattern));
79
+ }
80
+ /**
81
+ * Check if an error is a rate limit error
82
+ */
83
+ export function isRateLimitError(error) {
84
+ if (!(error instanceof Error))
85
+ return false;
86
+ const message = error.message.toLowerCase();
87
+ // Check for common rate limit indicators
88
+ if (message.includes('rate limit') ||
89
+ message.includes('rate_limit') ||
90
+ message.includes('too many requests') ||
91
+ message.includes('429')) {
92
+ return true;
93
+ }
94
+ // Check for status code
95
+ const status = error.status;
96
+ return status === 429;
97
+ }
98
+ /**
99
+ * Check if an error is an authentication error
100
+ */
101
+ export function isAuthError(error) {
102
+ if (!(error instanceof Error))
103
+ return false;
104
+ const message = error.message.toLowerCase();
105
+ const status = error.status;
106
+ return (status === 401 ||
107
+ status === 403 ||
108
+ message.includes('unauthorized') ||
109
+ message.includes('invalid api key') ||
110
+ message.includes('authentication'));
111
+ }
112
+ // ═══════════════════════════════════════════════════════════════════════════════
113
+ // Retry Utilities
114
+ // ═══════════════════════════════════════════════════════════════════════════════
115
+ /**
116
+ * Sleep for a given duration
117
+ */
118
+ export function sleep(ms) {
119
+ return new Promise((resolve) => setTimeout(resolve, ms));
120
+ }
121
+ /**
122
+ * Calculate exponential backoff delay
123
+ */
124
+ export function calculateBackoffDelay(attempt, config) {
125
+ const delay = config.initialDelayMs * Math.pow(config.backoffMultiplier, attempt);
126
+ // Add jitter (±10%)
127
+ const jitter = delay * 0.1 * (Math.random() * 2 - 1);
128
+ return Math.min(delay + jitter, config.maxDelayMs);
129
+ }
130
+ /**
131
+ * Execute an operation with retry logic
132
+ */
133
+ export async function withRetry(operation, options = {}) {
134
+ const config = {
135
+ ...DEFAULT_RETRY_CONFIG,
136
+ ...options.config,
137
+ };
138
+ const shouldRetry = options.shouldRetry ?? isTransientError;
139
+ let lastError;
140
+ for (let attempt = 0; attempt <= config.maxRetries; attempt++) {
141
+ try {
142
+ return await operation();
143
+ }
144
+ catch (error) {
145
+ lastError = error;
146
+ // Don't retry auth errors
147
+ if (isAuthError(error)) {
148
+ throw error;
149
+ }
150
+ // Check if we should retry
151
+ if (attempt === config.maxRetries || !shouldRetry(error)) {
152
+ throw error;
153
+ }
154
+ // Calculate delay and wait
155
+ const delay = calculateBackoffDelay(attempt, config);
156
+ options.onRetry?.(error, attempt, delay);
157
+ await sleep(delay);
158
+ }
159
+ }
160
+ throw lastError;
161
+ }
162
+ // ═══════════════════════════════════════════════════════════════════════════════
163
+ // Message Utilities
164
+ // ═══════════════════════════════════════════════════════════════════════════════
165
+ /**
166
+ * Extract system message from conversation
167
+ */
168
+ export function extractSystemMessage(messages) {
169
+ const systemMessages = messages.filter((m) => m.role === 'system');
170
+ const rest = messages.filter((m) => m.role !== 'system');
171
+ if (systemMessages.length === 0) {
172
+ return { system: null, rest };
173
+ }
174
+ // Combine all system messages
175
+ const system = systemMessages
176
+ .map((m) => (typeof m.content === 'string' ? m.content : JSON.stringify(m.content)))
177
+ .join('\n\n');
178
+ return { system, rest };
179
+ }
180
+ /**
181
+ * Merge consecutive messages from the same role
182
+ */
183
+ export function mergeConsecutiveMessages(messages) {
184
+ if (messages.length === 0)
185
+ return [];
186
+ const merged = [];
187
+ let current = null;
188
+ for (const message of messages) {
189
+ if (!current) {
190
+ current = { ...message };
191
+ continue;
192
+ }
193
+ if (current.role === message.role && typeof current.content === 'string' && typeof message.content === 'string') {
194
+ // Merge text content
195
+ current.content = `${current.content}\n\n${message.content}`;
196
+ }
197
+ else {
198
+ merged.push(current);
199
+ current = { ...message };
200
+ }
201
+ }
202
+ if (current) {
203
+ merged.push(current);
204
+ }
205
+ return merged;
206
+ }
207
+ // ═══════════════════════════════════════════════════════════════════════════════
208
+ // Usage Tracking
209
+ // ═══════════════════════════════════════════════════════════════════════════════
210
+ /**
211
+ * Create an empty usage object
212
+ */
213
+ export function emptyUsage() {
214
+ return {
215
+ inputTokens: 0,
216
+ outputTokens: 0,
217
+ totalTokens: 0,
218
+ };
219
+ }
220
+ /**
221
+ * Merge usage objects
222
+ */
223
+ export function mergeUsage(a, b) {
224
+ return {
225
+ inputTokens: (a.inputTokens ?? 0) + (b.inputTokens ?? 0),
226
+ outputTokens: (a.outputTokens ?? 0) + (b.outputTokens ?? 0),
227
+ totalTokens: (a.totalTokens ?? 0) + (b.totalTokens ?? 0),
228
+ };
229
+ }
230
+ // ═══════════════════════════════════════════════════════════════════════════════
231
+ // Abstract Base Provider
232
+ // ═══════════════════════════════════════════════════════════════════════════════
233
+ /**
234
+ * Abstract base class for LLM providers
235
+ *
236
+ * Implements common functionality like retry logic and error handling.
237
+ * Subclasses must implement the abstract methods for provider-specific behavior.
238
+ */
239
+ export class BaseProvider {
240
+ model;
241
+ maxTokens;
242
+ temperature;
243
+ retryConfig;
244
+ rateLimitConfig;
245
+ constructor(options) {
246
+ this.model = options.model;
247
+ this.maxTokens = options.maxTokens ?? 4096;
248
+ this.temperature = options.temperature ?? 0;
249
+ this.retryConfig = { ...DEFAULT_RETRY_CONFIG, ...options.retryConfig };
250
+ this.rateLimitConfig = { ...DEFAULT_RATE_LIMIT_CONFIG, ...options.rateLimitConfig };
251
+ }
252
+ /**
253
+ * Generate a response (implemented by subclass)
254
+ */
255
+ async generate(messages, tools) {
256
+ return withRetry(() => this.doGenerate(messages, tools), {
257
+ config: this.retryConfig,
258
+ shouldRetry: (error) => isTransientError(error) || isRateLimitError(error),
259
+ onRetry: (error, attempt, delay) => {
260
+ this.onRetry(error, attempt, delay);
261
+ },
262
+ });
263
+ }
264
+ /**
265
+ * Generate a streaming response (implemented by subclass)
266
+ */
267
+ async *generateStream(messages, tools) {
268
+ // Stream operations are harder to retry, so we do best-effort
269
+ yield* this.doGenerateStream(messages, tools);
270
+ }
271
+ /**
272
+ * Get available models (optional, implemented by subclass)
273
+ */
274
+ async getModels() {
275
+ return [];
276
+ }
277
+ /**
278
+ * Called when a retry is about to happen
279
+ */
280
+ onRetry(_error, _attempt, _delay) {
281
+ // Subclasses can override for logging
282
+ }
283
+ }
284
+ //# sourceMappingURL=baseProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baseProvider.js","sourceRoot":"","sources":["../../src/providers/baseProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * DeepSeek-Reasoner Provider
3
+ *
4
+ * Dedicated provider for Apple Silicon zero-day research.
5
+ * Uses DeepSeek-Reasoner model optimized for security analysis.
6
+ *
7
+ * Features:
8
+ * - Extended reasoning with chain-of-thought
9
+ * - Low temperature for precise security analysis
10
+ * - Optimized for vulnerability discovery tasks
11
+ */
12
+ import type { ConversationMessage, LLMProvider, ProviderResponse, ProviderToolDefinition, StreamChunk, ProviderModelInfo } from '../core/types.js';
13
+ export interface DeepSeekReasonerConfig {
14
+ /** DeepSeek API key (or use DEEPSEEK_API_KEY env var) */
15
+ apiKey?: string;
16
+ /** Model to use (default: deepseek-reasoner) */
17
+ model?: string;
18
+ /** Maximum tokens for response (default: 8192) */
19
+ maxTokens?: number;
20
+ /** Temperature for generation (default: 0.1 for precise security analysis) */
21
+ temperature?: number;
22
+ /** Request timeout in milliseconds (default: 180000 for reasoning tasks) */
23
+ timeout?: number;
24
+ /** Maximum retries for transient errors (default: 3) */
25
+ maxRetries?: number;
26
+ }
27
+ /**
28
+ * DeepSeek-Reasoner provider for Apple Silicon zero-day research.
29
+ *
30
+ * Wraps the OpenAI-compatible provider with DeepSeek-specific configuration.
31
+ */
32
+ export declare class DeepSeekReasonerProvider implements LLMProvider {
33
+ readonly id = "deepseek-reasoner";
34
+ readonly model: string;
35
+ private readonly innerProvider;
36
+ constructor(config?: DeepSeekReasonerConfig);
37
+ /**
38
+ * Generate a response from DeepSeek-Reasoner
39
+ */
40
+ generate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
41
+ /**
42
+ * Generate a streaming response from DeepSeek-Reasoner
43
+ */
44
+ generateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
45
+ /**
46
+ * Get model information
47
+ */
48
+ getModelInfo(): Promise<ProviderModelInfo | null>;
49
+ }
50
+ /**
51
+ * Create a DeepSeek-Reasoner provider instance.
52
+ *
53
+ * This is the only supported provider for Apple Silicon zero-day research.
54
+ */
55
+ export declare function createDeepSeekReasonerProvider(config?: DeepSeekReasonerConfig): DeepSeekReasonerProvider;
56
+ export default DeepSeekReasonerProvider;
57
+ //# sourceMappingURL=deepseekReasonerProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseekReasonerProvider.d.ts","sourceRoot":"","sources":["../../src/providers/deepseekReasonerProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAM1B,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiBD;;;;GAIG;AACH,qBAAa,wBAAyB,YAAW,WAAW;IAC1D,QAAQ,CAAC,EAAE,uBAAuB;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;gBAElD,MAAM,GAAE,sBAA2B;IAyB/C;;OAEG;IACG,QAAQ,CACZ,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,sBAAsB,EAAE,GAC9B,OAAO,CAAC,gBAAgB,CAAC;IAI5B;;OAEG;IACI,cAAc,CACnB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,KAAK,EAAE,sBAAsB,EAAE,GAC9B,qBAAqB,CAAC,WAAW,CAAC;IAIrC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAGxD;AAMD;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,sBAA2B,GAClC,wBAAwB,CAE1B;AAMD,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * DeepSeek-Reasoner Provider
3
+ *
4
+ * Dedicated provider for Apple Silicon zero-day research.
5
+ * Uses DeepSeek-Reasoner model optimized for security analysis.
6
+ *
7
+ * Features:
8
+ * - Extended reasoning with chain-of-thought
9
+ * - Low temperature for precise security analysis
10
+ * - Optimized for vulnerability discovery tasks
11
+ */
12
+ import { OpenAIChatCompletionsProvider } from './openaiChatCompletionsProvider.js';
13
+ // ═══════════════════════════════════════════════════════════════════════════════
14
+ // Default Configuration
15
+ // ═══════════════════════════════════════════════════════════════════════════════
16
+ const DEEPSEEK_API_BASE = 'https://api.deepseek.com';
17
+ const DEFAULT_MODEL = 'deepseek-reasoner';
18
+ const DEFAULT_MAX_TOKENS = 8192;
19
+ const DEFAULT_TEMPERATURE = 0.1; // Low for precise security research
20
+ const DEFAULT_TIMEOUT = 180000; // 3 minutes for complex reasoning
21
+ const DEFAULT_MAX_RETRIES = 3;
22
+ // ═══════════════════════════════════════════════════════════════════════════════
23
+ // Provider Implementation
24
+ // ═══════════════════════════════════════════════════════════════════════════════
25
+ /**
26
+ * DeepSeek-Reasoner provider for Apple Silicon zero-day research.
27
+ *
28
+ * Wraps the OpenAI-compatible provider with DeepSeek-specific configuration.
29
+ */
30
+ export class DeepSeekReasonerProvider {
31
+ id = 'deepseek-reasoner';
32
+ model;
33
+ innerProvider;
34
+ constructor(config = {}) {
35
+ const apiKey = config.apiKey ?? process.env['DEEPSEEK_API_KEY'];
36
+ if (!apiKey) {
37
+ throw new Error('DeepSeek API key required. Set DEEPSEEK_API_KEY environment variable ' +
38
+ 'or pass apiKey in config.');
39
+ }
40
+ this.model = config.model ?? DEFAULT_MODEL;
41
+ // Create the underlying OpenAI-compatible provider
42
+ this.innerProvider = new OpenAIChatCompletionsProvider({
43
+ apiKey,
44
+ model: this.model,
45
+ providerId: 'deepseek-reasoner',
46
+ baseURL: DEEPSEEK_API_BASE,
47
+ timeout: config.timeout ?? DEFAULT_TIMEOUT,
48
+ maxRetries: config.maxRetries ?? DEFAULT_MAX_RETRIES,
49
+ temperature: config.temperature ?? DEFAULT_TEMPERATURE,
50
+ maxTokens: config.maxTokens ?? DEFAULT_MAX_TOKENS,
51
+ });
52
+ }
53
+ /**
54
+ * Generate a response from DeepSeek-Reasoner
55
+ */
56
+ async generate(messages, tools) {
57
+ return this.innerProvider.generate(messages, tools);
58
+ }
59
+ /**
60
+ * Generate a streaming response from DeepSeek-Reasoner
61
+ */
62
+ async *generateStream(messages, tools) {
63
+ yield* this.innerProvider.generateStream(messages, tools);
64
+ }
65
+ /**
66
+ * Get model information
67
+ */
68
+ async getModelInfo() {
69
+ return this.innerProvider.getModelInfo();
70
+ }
71
+ }
72
+ // ═══════════════════════════════════════════════════════════════════════════════
73
+ // Factory Function
74
+ // ═══════════════════════════════════════════════════════════════════════════════
75
+ /**
76
+ * Create a DeepSeek-Reasoner provider instance.
77
+ *
78
+ * This is the only supported provider for Apple Silicon zero-day research.
79
+ */
80
+ export function createDeepSeekReasonerProvider(config = {}) {
81
+ return new DeepSeekReasonerProvider(config);
82
+ }
83
+ // ═══════════════════════════════════════════════════════════════════════════════
84
+ // Exports
85
+ // ═══════════════════════════════════════════════════════════════════════════════
86
+ export default DeepSeekReasonerProvider;
87
+ //# sourceMappingURL=deepseekReasonerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deepseekReasonerProvider.js","sourceRoot":"","sources":["../../src/providers/deepseekReasonerProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AA6BnF,kFAAkF;AAClF,wBAAwB;AACxB,kFAAkF;AAElF,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AACrD,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAC1C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,mBAAmB,GAAG,GAAG,CAAC,CAAC,oCAAoC;AACrE,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,kCAAkC;AAClE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,kFAAkF;AAClF,0BAA0B;AAC1B,kFAAkF;AAElF;;;;GAIG;AACH,MAAM,OAAO,wBAAwB;IAC1B,EAAE,GAAG,mBAAmB,CAAC;IACzB,KAAK,CAAS;IAEN,aAAa,CAAgC;IAE9D,YAAY,SAAiC,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAEhE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CACb,uEAAuE;gBACvE,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,aAAa,CAAC;QAE3C,mDAAmD;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,6BAA6B,CAAC;YACrD,MAAM;YACN,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,mBAAmB;YAC/B,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;YAC1C,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,mBAAmB;YACpD,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,mBAAmB;YACtD,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,kBAAkB;SAClD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CACZ,QAA+B,EAC/B,KAA+B;QAE/B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,cAAc,CACnB,QAA+B,EAC/B,KAA+B;QAE/B,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;CACF;AAED,kFAAkF;AAClF,mBAAmB;AACnB,kFAAkF;AAElF;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAC5C,SAAiC,EAAE;IAEnC,OAAO,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC;AAED,kFAAkF;AAClF,UAAU;AACV,kFAAkF;AAElF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,64 @@
1
+ import type { ConversationMessage, LLMProvider, ProviderId, ProviderModelInfo, ProviderResponse, ProviderToolDefinition, StreamChunk } from '../core/types.js';
2
+ /**
3
+ * Security utility for safe JSON parsing with protection against prototype pollution
4
+ */
5
+ export declare function safeJSONParse<T = unknown>(json: string, options?: {
6
+ maxDepth?: number;
7
+ maxProperties?: number;
8
+ }): T;
9
+ /**
10
+ * Custom error class for provider-specific failures
11
+ */
12
+ export declare class ProviderStreamError extends Error {
13
+ readonly isRetryable: boolean;
14
+ readonly originalError?: Error;
15
+ readonly providerId: string;
16
+ constructor(message: string, providerId: string, originalError?: Error, isRetryable?: boolean);
17
+ }
18
+ interface OpenAIChatCompletionsOptions {
19
+ apiKey: string;
20
+ model: string;
21
+ providerId?: ProviderId;
22
+ baseURL?: string;
23
+ /** Request timeout in milliseconds (default: 120000) */
24
+ timeout?: number;
25
+ /** Maximum retries for transient errors (default: 3) */
26
+ maxRetries?: number;
27
+ /** Optional temperature override */
28
+ temperature?: number;
29
+ /** Maximum completion tokens to request (default: 4096 to avoid runaway outputs) */
30
+ maxTokens?: number;
31
+ }
32
+ export declare class OpenAIChatCompletionsProvider implements LLMProvider {
33
+ readonly id: ProviderId;
34
+ readonly model: string;
35
+ private readonly client;
36
+ private readonly maxRetries;
37
+ private readonly temperature?;
38
+ private readonly maxTokens;
39
+ private readonly requestCount;
40
+ private readonly lastRequestTime;
41
+ constructor(options: OpenAIChatCompletionsOptions);
42
+ /**
43
+ * Sleep for a given number of milliseconds
44
+ */
45
+ private sleep;
46
+ /**
47
+ * Calculate exponential backoff delay
48
+ */
49
+ private getBackoffDelay;
50
+ /**
51
+ * Execute request with retry logic for transient errors
52
+ */
53
+ private executeWithRetry;
54
+ generate(messages: ConversationMessage[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
55
+ generateStream(messages: ConversationMessage[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
56
+ private cachedModelInfo;
57
+ /**
58
+ * Fetch model info from OpenAI API
59
+ * Returns context window and token limits from the real API
60
+ */
61
+ getModelInfo(): Promise<ProviderModelInfo | null>;
62
+ }
63
+ export {};
64
+ //# sourceMappingURL=openaiChatCompletionsProvider.d.ts.map