@trenchwork/erosolar 1.1.40

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 (600) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +225 -0
  3. package/agents/erosolar-code.rules.json +199 -0
  4. package/dist/bin/cliMode.d.ts +8 -0
  5. package/dist/bin/cliMode.d.ts.map +1 -0
  6. package/dist/bin/cliMode.js +20 -0
  7. package/dist/bin/cliMode.js.map +1 -0
  8. package/dist/bin/deepseek.d.ts +3 -0
  9. package/dist/bin/deepseek.d.ts.map +1 -0
  10. package/dist/bin/deepseek.js +203 -0
  11. package/dist/bin/deepseek.js.map +1 -0
  12. package/dist/bin/erosolar.d.ts +7 -0
  13. package/dist/bin/erosolar.d.ts.map +1 -0
  14. package/dist/bin/erosolar.js +7 -0
  15. package/dist/bin/erosolar.js.map +1 -0
  16. package/dist/bin/selfTest.d.ts +14 -0
  17. package/dist/bin/selfTest.d.ts.map +1 -0
  18. package/dist/bin/selfTest.js +298 -0
  19. package/dist/bin/selfTest.js.map +1 -0
  20. package/dist/capabilities/baseCapability.d.ts +72 -0
  21. package/dist/capabilities/baseCapability.d.ts.map +1 -0
  22. package/dist/capabilities/baseCapability.js +183 -0
  23. package/dist/capabilities/baseCapability.js.map +1 -0
  24. package/dist/capabilities/bashCapability.d.ts +13 -0
  25. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  26. package/dist/capabilities/bashCapability.js +24 -0
  27. package/dist/capabilities/bashCapability.js.map +1 -0
  28. package/dist/capabilities/editCapability.d.ts +17 -0
  29. package/dist/capabilities/editCapability.d.ts.map +1 -0
  30. package/dist/capabilities/editCapability.js +27 -0
  31. package/dist/capabilities/editCapability.js.map +1 -0
  32. package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
  33. package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
  34. package/dist/capabilities/enhancedGitCapability.js +220 -0
  35. package/dist/capabilities/enhancedGitCapability.js.map +1 -0
  36. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  37. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  38. package/dist/capabilities/filesystemCapability.js +24 -0
  39. package/dist/capabilities/filesystemCapability.js.map +1 -0
  40. package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
  41. package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
  42. package/dist/capabilities/gitHistoryCapability.js +184 -0
  43. package/dist/capabilities/gitHistoryCapability.js.map +1 -0
  44. package/dist/capabilities/hitlCapability.d.ts +18 -0
  45. package/dist/capabilities/hitlCapability.d.ts.map +1 -0
  46. package/dist/capabilities/hitlCapability.js +29 -0
  47. package/dist/capabilities/hitlCapability.js.map +1 -0
  48. package/dist/capabilities/index.d.ts +11 -0
  49. package/dist/capabilities/index.d.ts.map +1 -0
  50. package/dist/capabilities/index.js +16 -0
  51. package/dist/capabilities/index.js.map +1 -0
  52. package/dist/capabilities/memoryCapability.d.ts +10 -0
  53. package/dist/capabilities/memoryCapability.d.ts.map +1 -0
  54. package/dist/capabilities/memoryCapability.js +22 -0
  55. package/dist/capabilities/memoryCapability.js.map +1 -0
  56. package/dist/capabilities/notebookCapability.d.ts +6 -0
  57. package/dist/capabilities/notebookCapability.d.ts.map +1 -0
  58. package/dist/capabilities/notebookCapability.js +17 -0
  59. package/dist/capabilities/notebookCapability.js.map +1 -0
  60. package/dist/capabilities/searchCapability.d.ts +19 -0
  61. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  62. package/dist/capabilities/searchCapability.js +29 -0
  63. package/dist/capabilities/searchCapability.js.map +1 -0
  64. package/dist/capabilities/skillCapability.d.ts +6 -0
  65. package/dist/capabilities/skillCapability.d.ts.map +1 -0
  66. package/dist/capabilities/skillCapability.js +17 -0
  67. package/dist/capabilities/skillCapability.js.map +1 -0
  68. package/dist/capabilities/todoCapability.d.ts +11 -0
  69. package/dist/capabilities/todoCapability.d.ts.map +1 -0
  70. package/dist/capabilities/todoCapability.js +22 -0
  71. package/dist/capabilities/todoCapability.js.map +1 -0
  72. package/dist/capabilities/toolManifest.d.ts +3 -0
  73. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  74. package/dist/capabilities/toolManifest.js +163 -0
  75. package/dist/capabilities/toolManifest.js.map +1 -0
  76. package/dist/capabilities/toolRegistry.d.ts +25 -0
  77. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  78. package/dist/capabilities/toolRegistry.js +150 -0
  79. package/dist/capabilities/toolRegistry.js.map +1 -0
  80. package/dist/capabilities/unifiedCodingCapability.d.ts +62 -0
  81. package/dist/capabilities/unifiedCodingCapability.d.ts.map +1 -0
  82. package/dist/capabilities/unifiedCodingCapability.js +790 -0
  83. package/dist/capabilities/unifiedCodingCapability.js.map +1 -0
  84. package/dist/capabilities/webCapability.d.ts +23 -0
  85. package/dist/capabilities/webCapability.d.ts.map +1 -0
  86. package/dist/capabilities/webCapability.js +33 -0
  87. package/dist/capabilities/webCapability.js.map +1 -0
  88. package/dist/config.d.ts +25 -0
  89. package/dist/config.d.ts.map +1 -0
  90. package/dist/config.js +184 -0
  91. package/dist/config.js.map +1 -0
  92. package/dist/contracts/agent-profiles.schema.json +43 -0
  93. package/dist/contracts/agent-schemas.json +470 -0
  94. package/dist/contracts/models.schema.json +9 -0
  95. package/dist/contracts/module-schema.json +367 -0
  96. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  97. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  98. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  99. package/dist/contracts/schemas/agent.schema.json +90 -0
  100. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  101. package/dist/contracts/tools.schema.json +42 -0
  102. package/dist/contracts/unified-schema.json +660 -0
  103. package/dist/contracts/v1/agent.d.ts +179 -0
  104. package/dist/contracts/v1/agent.d.ts.map +1 -0
  105. package/dist/contracts/v1/agent.js +8 -0
  106. package/dist/contracts/v1/agent.js.map +1 -0
  107. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  108. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  109. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  110. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  111. package/dist/contracts/v1/agentRules.d.ts +60 -0
  112. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  113. package/dist/contracts/v1/agentRules.js +10 -0
  114. package/dist/contracts/v1/agentRules.js.map +1 -0
  115. package/dist/contracts/v1/provider.d.ts +149 -0
  116. package/dist/contracts/v1/provider.d.ts.map +1 -0
  117. package/dist/contracts/v1/provider.js +7 -0
  118. package/dist/contracts/v1/provider.js.map +1 -0
  119. package/dist/contracts/v1/tool.d.ts +136 -0
  120. package/dist/contracts/v1/tool.d.ts.map +1 -0
  121. package/dist/contracts/v1/tool.js +7 -0
  122. package/dist/contracts/v1/tool.js.map +1 -0
  123. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  124. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  125. package/dist/contracts/v1/toolAccess.js +9 -0
  126. package/dist/contracts/v1/toolAccess.js.map +1 -0
  127. package/dist/core/adversarial.d.ts +38 -0
  128. package/dist/core/adversarial.d.ts.map +1 -0
  129. package/dist/core/adversarial.js +106 -0
  130. package/dist/core/adversarial.js.map +1 -0
  131. package/dist/core/agent.d.ts +329 -0
  132. package/dist/core/agent.d.ts.map +1 -0
  133. package/dist/core/agent.js +1668 -0
  134. package/dist/core/agent.js.map +1 -0
  135. package/dist/core/agentProfileManifest.d.ts +3 -0
  136. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  137. package/dist/core/agentProfileManifest.js +188 -0
  138. package/dist/core/agentProfileManifest.js.map +1 -0
  139. package/dist/core/agentProfiles.d.ts +22 -0
  140. package/dist/core/agentProfiles.d.ts.map +1 -0
  141. package/dist/core/agentProfiles.js +35 -0
  142. package/dist/core/agentProfiles.js.map +1 -0
  143. package/dist/core/agentRegistry.d.ts +111 -0
  144. package/dist/core/agentRegistry.d.ts.map +1 -0
  145. package/dist/core/agentRegistry.js +229 -0
  146. package/dist/core/agentRegistry.js.map +1 -0
  147. package/dist/core/agentRulebook.d.ts +11 -0
  148. package/dist/core/agentRulebook.d.ts.map +1 -0
  149. package/dist/core/agentRulebook.js +136 -0
  150. package/dist/core/agentRulebook.js.map +1 -0
  151. package/dist/core/agentSchemaLoader.d.ts +131 -0
  152. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  153. package/dist/core/agentSchemaLoader.js +235 -0
  154. package/dist/core/agentSchemaLoader.js.map +1 -0
  155. package/dist/core/aiErrorFixer.d.ts +57 -0
  156. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  157. package/dist/core/aiErrorFixer.js +214 -0
  158. package/dist/core/aiErrorFixer.js.map +1 -0
  159. package/dist/core/bashCommandGuidance.d.ts +16 -0
  160. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  161. package/dist/core/bashCommandGuidance.js +40 -0
  162. package/dist/core/bashCommandGuidance.js.map +1 -0
  163. package/dist/core/constants.d.ts +31 -0
  164. package/dist/core/constants.d.ts.map +1 -0
  165. package/dist/core/constants.js +62 -0
  166. package/dist/core/constants.js.map +1 -0
  167. package/dist/core/contextManager.d.ts +271 -0
  168. package/dist/core/contextManager.d.ts.map +1 -0
  169. package/dist/core/contextManager.js +1073 -0
  170. package/dist/core/contextManager.js.map +1 -0
  171. package/dist/core/contextWindow.d.ts +42 -0
  172. package/dist/core/contextWindow.d.ts.map +1 -0
  173. package/dist/core/contextWindow.js +123 -0
  174. package/dist/core/contextWindow.js.map +1 -0
  175. package/dist/core/customCommands.d.ts +19 -0
  176. package/dist/core/customCommands.d.ts.map +1 -0
  177. package/dist/core/customCommands.js +85 -0
  178. package/dist/core/customCommands.js.map +1 -0
  179. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  180. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  181. package/dist/core/errors/apiKeyErrors.js +159 -0
  182. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  183. package/dist/core/errors/errorTypes.d.ts +111 -0
  184. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  185. package/dist/core/errors/errorTypes.js +345 -0
  186. package/dist/core/errors/errorTypes.js.map +1 -0
  187. package/dist/core/errors/index.d.ts +50 -0
  188. package/dist/core/errors/index.d.ts.map +1 -0
  189. package/dist/core/errors/index.js +156 -0
  190. package/dist/core/errors/index.js.map +1 -0
  191. package/dist/core/errors/networkErrors.d.ts +14 -0
  192. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  193. package/dist/core/errors/networkErrors.js +53 -0
  194. package/dist/core/errors/networkErrors.js.map +1 -0
  195. package/dist/core/errors/safetyValidator.d.ts +109 -0
  196. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  197. package/dist/core/errors/safetyValidator.js +272 -0
  198. package/dist/core/errors/safetyValidator.js.map +1 -0
  199. package/dist/core/errors.d.ts +4 -0
  200. package/dist/core/errors.d.ts.map +1 -0
  201. package/dist/core/errors.js +33 -0
  202. package/dist/core/errors.js.map +1 -0
  203. package/dist/core/finalResponseFormatter.d.ts +10 -0
  204. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  205. package/dist/core/finalResponseFormatter.js +14 -0
  206. package/dist/core/finalResponseFormatter.js.map +1 -0
  207. package/dist/core/guardrails.d.ts +146 -0
  208. package/dist/core/guardrails.d.ts.map +1 -0
  209. package/dist/core/guardrails.js +361 -0
  210. package/dist/core/guardrails.js.map +1 -0
  211. package/dist/core/hitl.d.ts +119 -0
  212. package/dist/core/hitl.d.ts.map +1 -0
  213. package/dist/core/hitl.js +387 -0
  214. package/dist/core/hitl.js.map +1 -0
  215. package/dist/core/hooks.d.ts +95 -0
  216. package/dist/core/hooks.d.ts.map +1 -0
  217. package/dist/core/hooks.js +236 -0
  218. package/dist/core/hooks.js.map +1 -0
  219. package/dist/core/index.d.ts +7 -0
  220. package/dist/core/index.d.ts.map +1 -0
  221. package/dist/core/index.js +7 -0
  222. package/dist/core/index.js.map +1 -0
  223. package/dist/core/inputProtection.d.ts +122 -0
  224. package/dist/core/inputProtection.d.ts.map +1 -0
  225. package/dist/core/inputProtection.js +422 -0
  226. package/dist/core/inputProtection.js.map +1 -0
  227. package/dist/core/modelDiscovery.d.ts +105 -0
  228. package/dist/core/modelDiscovery.d.ts.map +1 -0
  229. package/dist/core/modelDiscovery.js +768 -0
  230. package/dist/core/modelDiscovery.js.map +1 -0
  231. package/dist/core/multilinePasteHandler.d.ts +35 -0
  232. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  233. package/dist/core/multilinePasteHandler.js +81 -0
  234. package/dist/core/multilinePasteHandler.js.map +1 -0
  235. package/dist/core/preferences.d.ts +67 -0
  236. package/dist/core/preferences.d.ts.map +1 -0
  237. package/dist/core/preferences.js +315 -0
  238. package/dist/core/preferences.js.map +1 -0
  239. package/dist/core/providerKeys.d.ts +20 -0
  240. package/dist/core/providerKeys.d.ts.map +1 -0
  241. package/dist/core/providerKeys.js +40 -0
  242. package/dist/core/providerKeys.js.map +1 -0
  243. package/dist/core/refusalDetection.d.ts +2 -0
  244. package/dist/core/refusalDetection.d.ts.map +1 -0
  245. package/dist/core/refusalDetection.js +51 -0
  246. package/dist/core/refusalDetection.js.map +1 -0
  247. package/dist/core/resultVerification.d.ts +47 -0
  248. package/dist/core/resultVerification.d.ts.map +1 -0
  249. package/dist/core/resultVerification.js +126 -0
  250. package/dist/core/resultVerification.js.map +1 -0
  251. package/dist/core/schemaValidator.d.ts +49 -0
  252. package/dist/core/schemaValidator.d.ts.map +1 -0
  253. package/dist/core/schemaValidator.js +234 -0
  254. package/dist/core/schemaValidator.js.map +1 -0
  255. package/dist/core/secretStore.d.ts +48 -0
  256. package/dist/core/secretStore.d.ts.map +1 -0
  257. package/dist/core/secretStore.js +266 -0
  258. package/dist/core/secretStore.js.map +1 -0
  259. package/dist/core/sessionStorage.d.ts +10 -0
  260. package/dist/core/sessionStorage.d.ts.map +1 -0
  261. package/dist/core/sessionStorage.js +46 -0
  262. package/dist/core/sessionStorage.js.map +1 -0
  263. package/dist/core/sessionStore.d.ts +35 -0
  264. package/dist/core/sessionStore.d.ts.map +1 -0
  265. package/dist/core/sessionStore.js +191 -0
  266. package/dist/core/sessionStore.js.map +1 -0
  267. package/dist/core/shutdown.d.ts +34 -0
  268. package/dist/core/shutdown.d.ts.map +1 -0
  269. package/dist/core/shutdown.js +186 -0
  270. package/dist/core/shutdown.js.map +1 -0
  271. package/dist/core/sudoPasswordManager.d.ts +52 -0
  272. package/dist/core/sudoPasswordManager.d.ts.map +1 -0
  273. package/dist/core/sudoPasswordManager.js +115 -0
  274. package/dist/core/sudoPasswordManager.js.map +1 -0
  275. package/dist/core/taskCompletionDetector.d.ts +117 -0
  276. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  277. package/dist/core/taskCompletionDetector.js +532 -0
  278. package/dist/core/taskCompletionDetector.js.map +1 -0
  279. package/dist/core/testFailureMonitor.d.ts +67 -0
  280. package/dist/core/testFailureMonitor.d.ts.map +1 -0
  281. package/dist/core/testFailureMonitor.js +262 -0
  282. package/dist/core/testFailureMonitor.js.map +1 -0
  283. package/dist/core/toolPreconditions.d.ts +34 -0
  284. package/dist/core/toolPreconditions.d.ts.map +1 -0
  285. package/dist/core/toolPreconditions.js +242 -0
  286. package/dist/core/toolPreconditions.js.map +1 -0
  287. package/dist/core/toolRuntime.d.ts +192 -0
  288. package/dist/core/toolRuntime.d.ts.map +1 -0
  289. package/dist/core/toolRuntime.js +477 -0
  290. package/dist/core/toolRuntime.js.map +1 -0
  291. package/dist/core/types/utilityTypes.d.ts +183 -0
  292. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  293. package/dist/core/types/utilityTypes.js +273 -0
  294. package/dist/core/types/utilityTypes.js.map +1 -0
  295. package/dist/core/types.d.ts +334 -0
  296. package/dist/core/types.d.ts.map +1 -0
  297. package/dist/core/types.js +76 -0
  298. package/dist/core/types.js.map +1 -0
  299. package/dist/core/updateChecker.d.ts +148 -0
  300. package/dist/core/updateChecker.d.ts.map +1 -0
  301. package/dist/core/updateChecker.js +599 -0
  302. package/dist/core/updateChecker.js.map +1 -0
  303. package/dist/headless/interactiveShell.d.ts +39 -0
  304. package/dist/headless/interactiveShell.d.ts.map +1 -0
  305. package/dist/headless/interactiveShell.js +2052 -0
  306. package/dist/headless/interactiveShell.js.map +1 -0
  307. package/dist/headless/printMode.d.ts +17 -0
  308. package/dist/headless/printMode.d.ts.map +1 -0
  309. package/dist/headless/printMode.js +40 -0
  310. package/dist/headless/printMode.js.map +1 -0
  311. package/dist/leanAgent.d.ts +73 -0
  312. package/dist/leanAgent.d.ts.map +1 -0
  313. package/dist/leanAgent.js +177 -0
  314. package/dist/leanAgent.js.map +1 -0
  315. package/dist/plugins/index.d.ts +49 -0
  316. package/dist/plugins/index.d.ts.map +1 -0
  317. package/dist/plugins/index.js +104 -0
  318. package/dist/plugins/index.js.map +1 -0
  319. package/dist/plugins/providers/anthropic/index.d.ts +9 -0
  320. package/dist/plugins/providers/anthropic/index.d.ts.map +1 -0
  321. package/dist/plugins/providers/anthropic/index.js +48 -0
  322. package/dist/plugins/providers/anthropic/index.js.map +1 -0
  323. package/dist/plugins/providers/deepseek/index.d.ts +11 -0
  324. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  325. package/dist/plugins/providers/deepseek/index.js +59 -0
  326. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  327. package/dist/plugins/providers/index.d.ts +2 -0
  328. package/dist/plugins/providers/index.d.ts.map +1 -0
  329. package/dist/plugins/providers/index.js +17 -0
  330. package/dist/plugins/providers/index.js.map +1 -0
  331. package/dist/plugins/providers/openai/index.d.ts +10 -0
  332. package/dist/plugins/providers/openai/index.d.ts.map +1 -0
  333. package/dist/plugins/providers/openai/index.js +47 -0
  334. package/dist/plugins/providers/openai/index.js.map +1 -0
  335. package/dist/plugins/providers/xai/index.d.ts +10 -0
  336. package/dist/plugins/providers/xai/index.d.ts.map +1 -0
  337. package/dist/plugins/providers/xai/index.js +47 -0
  338. package/dist/plugins/providers/xai/index.js.map +1 -0
  339. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts +10 -0
  340. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.d.ts.map +1 -0
  341. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js +110 -0
  342. package/dist/plugins/tools/agentSpawning/agentSpawningPlugin.js.map +1 -0
  343. package/dist/plugins/tools/bash/localBashPlugin.d.ts +3 -0
  344. package/dist/plugins/tools/bash/localBashPlugin.d.ts.map +1 -0
  345. package/dist/plugins/tools/bash/localBashPlugin.js +14 -0
  346. package/dist/plugins/tools/bash/localBashPlugin.js.map +1 -0
  347. package/dist/plugins/tools/edit/editPlugin.d.ts +9 -0
  348. package/dist/plugins/tools/edit/editPlugin.d.ts.map +1 -0
  349. package/dist/plugins/tools/edit/editPlugin.js +15 -0
  350. package/dist/plugins/tools/edit/editPlugin.js.map +1 -0
  351. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts +3 -0
  352. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.d.ts.map +1 -0
  353. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js +9 -0
  354. package/dist/plugins/tools/enhancedGit/enhancedGitPlugin.js.map +1 -0
  355. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts +3 -0
  356. package/dist/plugins/tools/filesystem/localFilesystemPlugin.d.ts.map +1 -0
  357. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js +14 -0
  358. package/dist/plugins/tools/filesystem/localFilesystemPlugin.js.map +1 -0
  359. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts +3 -0
  360. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.d.ts.map +1 -0
  361. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js +9 -0
  362. package/dist/plugins/tools/gitHistory/gitHistoryPlugin.js.map +1 -0
  363. package/dist/plugins/tools/index.d.ts +3 -0
  364. package/dist/plugins/tools/index.d.ts.map +1 -0
  365. package/dist/plugins/tools/index.js +3 -0
  366. package/dist/plugins/tools/index.js.map +1 -0
  367. package/dist/plugins/tools/integrity/integrityPlugin.d.ts +3 -0
  368. package/dist/plugins/tools/integrity/integrityPlugin.d.ts.map +1 -0
  369. package/dist/plugins/tools/integrity/integrityPlugin.js +31 -0
  370. package/dist/plugins/tools/integrity/integrityPlugin.js.map +1 -0
  371. package/dist/plugins/tools/mcp/mcpPlugin.d.ts +3 -0
  372. package/dist/plugins/tools/mcp/mcpPlugin.d.ts.map +1 -0
  373. package/dist/plugins/tools/mcp/mcpPlugin.js +27 -0
  374. package/dist/plugins/tools/mcp/mcpPlugin.js.map +1 -0
  375. package/dist/plugins/tools/nodeDefaults.d.ts +13 -0
  376. package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -0
  377. package/dist/plugins/tools/nodeDefaults.js +33 -0
  378. package/dist/plugins/tools/nodeDefaults.js.map +1 -0
  379. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts +3 -0
  380. package/dist/plugins/tools/orchestration/orchestrationPlugin.d.ts.map +1 -0
  381. package/dist/plugins/tools/orchestration/orchestrationPlugin.js +340 -0
  382. package/dist/plugins/tools/orchestration/orchestrationPlugin.js.map +1 -0
  383. package/dist/plugins/tools/registry.d.ts +22 -0
  384. package/dist/plugins/tools/registry.d.ts.map +1 -0
  385. package/dist/plugins/tools/registry.js +58 -0
  386. package/dist/plugins/tools/registry.js.map +1 -0
  387. package/dist/plugins/tools/search/localSearchPlugin.d.ts +3 -0
  388. package/dist/plugins/tools/search/localSearchPlugin.d.ts.map +1 -0
  389. package/dist/plugins/tools/search/localSearchPlugin.js +14 -0
  390. package/dist/plugins/tools/search/localSearchPlugin.js.map +1 -0
  391. package/dist/plugins/tools/skills/skillPlugin.d.ts +3 -0
  392. package/dist/plugins/tools/skills/skillPlugin.d.ts.map +1 -0
  393. package/dist/plugins/tools/skills/skillPlugin.js +27 -0
  394. package/dist/plugins/tools/skills/skillPlugin.js.map +1 -0
  395. package/dist/plugins/tools/todo/todoPlugin.d.ts +3 -0
  396. package/dist/plugins/tools/todo/todoPlugin.d.ts.map +1 -0
  397. package/dist/plugins/tools/todo/todoPlugin.js +10 -0
  398. package/dist/plugins/tools/todo/todoPlugin.js.map +1 -0
  399. package/dist/providers/baseProvider.d.ts +148 -0
  400. package/dist/providers/baseProvider.d.ts.map +1 -0
  401. package/dist/providers/baseProvider.js +284 -0
  402. package/dist/providers/baseProvider.js.map +1 -0
  403. package/dist/providers/openaiChatCompletionsProvider.d.ts +70 -0
  404. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  405. package/dist/providers/openaiChatCompletionsProvider.js +1043 -0
  406. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  407. package/dist/providers/providerFactory.d.ts +22 -0
  408. package/dist/providers/providerFactory.d.ts.map +1 -0
  409. package/dist/providers/providerFactory.js +25 -0
  410. package/dist/providers/providerFactory.js.map +1 -0
  411. package/dist/providers/resilientProvider.d.ts +103 -0
  412. package/dist/providers/resilientProvider.d.ts.map +1 -0
  413. package/dist/providers/resilientProvider.js +468 -0
  414. package/dist/providers/resilientProvider.js.map +1 -0
  415. package/dist/runtime/agentController.d.ts +121 -0
  416. package/dist/runtime/agentController.d.ts.map +1 -0
  417. package/dist/runtime/agentController.js +739 -0
  418. package/dist/runtime/agentController.js.map +1 -0
  419. package/dist/runtime/agentHost.d.ts +61 -0
  420. package/dist/runtime/agentHost.d.ts.map +1 -0
  421. package/dist/runtime/agentHost.js +158 -0
  422. package/dist/runtime/agentHost.js.map +1 -0
  423. package/dist/runtime/agentSession.d.ts +49 -0
  424. package/dist/runtime/agentSession.d.ts.map +1 -0
  425. package/dist/runtime/agentSession.js +218 -0
  426. package/dist/runtime/agentSession.js.map +1 -0
  427. package/dist/runtime/agentSpawningWiring.d.ts +23 -0
  428. package/dist/runtime/agentSpawningWiring.d.ts.map +1 -0
  429. package/dist/runtime/agentSpawningWiring.js +119 -0
  430. package/dist/runtime/agentSpawningWiring.js.map +1 -0
  431. package/dist/runtime/agentWorkerPool.d.ts +167 -0
  432. package/dist/runtime/agentWorkerPool.d.ts.map +1 -0
  433. package/dist/runtime/agentWorkerPool.js +435 -0
  434. package/dist/runtime/agentWorkerPool.js.map +1 -0
  435. package/dist/runtime/node.d.ts +7 -0
  436. package/dist/runtime/node.d.ts.map +1 -0
  437. package/dist/runtime/node.js +50 -0
  438. package/dist/runtime/node.js.map +1 -0
  439. package/dist/runtime/universal.d.ts +18 -0
  440. package/dist/runtime/universal.d.ts.map +1 -0
  441. package/dist/runtime/universal.js +21 -0
  442. package/dist/runtime/universal.js.map +1 -0
  443. package/dist/shell/autoExecutor.d.ts +70 -0
  444. package/dist/shell/autoExecutor.d.ts.map +1 -0
  445. package/dist/shell/autoExecutor.js +320 -0
  446. package/dist/shell/autoExecutor.js.map +1 -0
  447. package/dist/shell/commandRegistry.d.ts +122 -0
  448. package/dist/shell/commandRegistry.d.ts.map +1 -0
  449. package/dist/shell/commandRegistry.js +355 -0
  450. package/dist/shell/commandRegistry.js.map +1 -0
  451. package/dist/shell/composableMessage.d.ts +178 -0
  452. package/dist/shell/composableMessage.d.ts.map +1 -0
  453. package/dist/shell/composableMessage.js +384 -0
  454. package/dist/shell/composableMessage.js.map +1 -0
  455. package/dist/shell/liveStatus.d.ts +27 -0
  456. package/dist/shell/liveStatus.d.ts.map +1 -0
  457. package/dist/shell/liveStatus.js +53 -0
  458. package/dist/shell/liveStatus.js.map +1 -0
  459. package/dist/shell/systemPrompt.d.ts +12 -0
  460. package/dist/shell/systemPrompt.d.ts.map +1 -0
  461. package/dist/shell/systemPrompt.js +16 -0
  462. package/dist/shell/systemPrompt.js.map +1 -0
  463. package/dist/shell/vimMode.d.ts +66 -0
  464. package/dist/shell/vimMode.d.ts.map +1 -0
  465. package/dist/shell/vimMode.js +435 -0
  466. package/dist/shell/vimMode.js.map +1 -0
  467. package/dist/tools/bashTools.d.ts +11 -0
  468. package/dist/tools/bashTools.d.ts.map +1 -0
  469. package/dist/tools/bashTools.js +779 -0
  470. package/dist/tools/bashTools.js.map +1 -0
  471. package/dist/tools/diffUtils.d.ts +43 -0
  472. package/dist/tools/diffUtils.d.ts.map +1 -0
  473. package/dist/tools/diffUtils.js +607 -0
  474. package/dist/tools/diffUtils.js.map +1 -0
  475. package/dist/tools/editTools.d.ts +29 -0
  476. package/dist/tools/editTools.d.ts.map +1 -0
  477. package/dist/tools/editTools.js +792 -0
  478. package/dist/tools/editTools.js.map +1 -0
  479. package/dist/tools/fileChangeTracker.d.ts +47 -0
  480. package/dist/tools/fileChangeTracker.d.ts.map +1 -0
  481. package/dist/tools/fileChangeTracker.js +154 -0
  482. package/dist/tools/fileChangeTracker.js.map +1 -0
  483. package/dist/tools/fileReadTracker.d.ts +69 -0
  484. package/dist/tools/fileReadTracker.d.ts.map +1 -0
  485. package/dist/tools/fileReadTracker.js +213 -0
  486. package/dist/tools/fileReadTracker.js.map +1 -0
  487. package/dist/tools/fileTools.d.ts +3 -0
  488. package/dist/tools/fileTools.d.ts.map +1 -0
  489. package/dist/tools/fileTools.js +389 -0
  490. package/dist/tools/fileTools.js.map +1 -0
  491. package/dist/tools/grepTools.d.ts +3 -0
  492. package/dist/tools/grepTools.d.ts.map +1 -0
  493. package/dist/tools/grepTools.js +128 -0
  494. package/dist/tools/grepTools.js.map +1 -0
  495. package/dist/tools/hitlTools.d.ts +7 -0
  496. package/dist/tools/hitlTools.d.ts.map +1 -0
  497. package/dist/tools/hitlTools.js +185 -0
  498. package/dist/tools/hitlTools.js.map +1 -0
  499. package/dist/tools/localExplore.d.ts +38 -0
  500. package/dist/tools/localExplore.d.ts.map +1 -0
  501. package/dist/tools/localExplore.js +30 -0
  502. package/dist/tools/localExplore.js.map +1 -0
  503. package/dist/tools/memoryTools.d.ts +20 -0
  504. package/dist/tools/memoryTools.d.ts.map +1 -0
  505. package/dist/tools/memoryTools.js +180 -0
  506. package/dist/tools/memoryTools.js.map +1 -0
  507. package/dist/tools/notebookTools.d.ts +20 -0
  508. package/dist/tools/notebookTools.d.ts.map +1 -0
  509. package/dist/tools/notebookTools.js +140 -0
  510. package/dist/tools/notebookTools.js.map +1 -0
  511. package/dist/tools/searchTools.d.ts +12 -0
  512. package/dist/tools/searchTools.d.ts.map +1 -0
  513. package/dist/tools/searchTools.js +413 -0
  514. package/dist/tools/searchTools.js.map +1 -0
  515. package/dist/tools/skillTools.d.ts +24 -0
  516. package/dist/tools/skillTools.d.ts.map +1 -0
  517. package/dist/tools/skillTools.js +140 -0
  518. package/dist/tools/skillTools.js.map +1 -0
  519. package/dist/tools/todoTools.d.ts +24 -0
  520. package/dist/tools/todoTools.d.ts.map +1 -0
  521. package/dist/tools/todoTools.js +101 -0
  522. package/dist/tools/todoTools.js.map +1 -0
  523. package/dist/tools/webTools.d.ts +26 -0
  524. package/dist/tools/webTools.d.ts.map +1 -0
  525. package/dist/tools/webTools.js +383 -0
  526. package/dist/tools/webTools.js.map +1 -0
  527. package/dist/ui/ink/App.d.ts +42 -0
  528. package/dist/ui/ink/App.d.ts.map +1 -0
  529. package/dist/ui/ink/App.js +10 -0
  530. package/dist/ui/ink/App.js.map +1 -0
  531. package/dist/ui/ink/ChatStatic.d.ts +29 -0
  532. package/dist/ui/ink/ChatStatic.d.ts.map +1 -0
  533. package/dist/ui/ink/ChatStatic.js +14 -0
  534. package/dist/ui/ink/ChatStatic.js.map +1 -0
  535. package/dist/ui/ink/InkPromptController.d.ts +289 -0
  536. package/dist/ui/ink/InkPromptController.d.ts.map +1 -0
  537. package/dist/ui/ink/InkPromptController.js +552 -0
  538. package/dist/ui/ink/InkPromptController.js.map +1 -0
  539. package/dist/ui/ink/Menu.d.ts +21 -0
  540. package/dist/ui/ink/Menu.d.ts.map +1 -0
  541. package/dist/ui/ink/Menu.js +61 -0
  542. package/dist/ui/ink/Menu.js.map +1 -0
  543. package/dist/ui/ink/Prompt.d.ts +31 -0
  544. package/dist/ui/ink/Prompt.d.ts.map +1 -0
  545. package/dist/ui/ink/Prompt.js +197 -0
  546. package/dist/ui/ink/Prompt.js.map +1 -0
  547. package/dist/ui/ink/StatusLine.d.ts +21 -0
  548. package/dist/ui/ink/StatusLine.d.ts.map +1 -0
  549. package/dist/ui/ink/StatusLine.js +11 -0
  550. package/dist/ui/ink/StatusLine.js.map +1 -0
  551. package/dist/ui/theme.d.ts +351 -0
  552. package/dist/ui/theme.d.ts.map +1 -0
  553. package/dist/ui/theme.js +437 -0
  554. package/dist/ui/theme.js.map +1 -0
  555. package/dist/utils/analytics.d.ts +2 -0
  556. package/dist/utils/analytics.d.ts.map +1 -0
  557. package/dist/utils/analytics.js +51 -0
  558. package/dist/utils/analytics.js.map +1 -0
  559. package/dist/utils/asyncUtils.d.ts +95 -0
  560. package/dist/utils/asyncUtils.d.ts.map +1 -0
  561. package/dist/utils/asyncUtils.js +286 -0
  562. package/dist/utils/asyncUtils.js.map +1 -0
  563. package/dist/utils/debugLogger.d.ts +6 -0
  564. package/dist/utils/debugLogger.d.ts.map +1 -0
  565. package/dist/utils/debugLogger.js +39 -0
  566. package/dist/utils/debugLogger.js.map +1 -0
  567. package/dist/utils/errorUtils.d.ts +12 -0
  568. package/dist/utils/errorUtils.d.ts.map +1 -0
  569. package/dist/utils/errorUtils.js +83 -0
  570. package/dist/utils/errorUtils.js.map +1 -0
  571. package/dist/utils/frontmatter.d.ts +10 -0
  572. package/dist/utils/frontmatter.d.ts.map +1 -0
  573. package/dist/utils/frontmatter.js +78 -0
  574. package/dist/utils/frontmatter.js.map +1 -0
  575. package/dist/utils/packageInfo.d.ts +14 -0
  576. package/dist/utils/packageInfo.d.ts.map +1 -0
  577. package/dist/utils/packageInfo.js +45 -0
  578. package/dist/utils/packageInfo.js.map +1 -0
  579. package/dist/utils/planFormatter.d.ts +34 -0
  580. package/dist/utils/planFormatter.d.ts.map +1 -0
  581. package/dist/utils/planFormatter.js +141 -0
  582. package/dist/utils/planFormatter.js.map +1 -0
  583. package/dist/utils/securityUtils.d.ts +132 -0
  584. package/dist/utils/securityUtils.d.ts.map +1 -0
  585. package/dist/utils/securityUtils.js +324 -0
  586. package/dist/utils/securityUtils.js.map +1 -0
  587. package/dist/utils/statusReporter.d.ts +6 -0
  588. package/dist/utils/statusReporter.d.ts.map +1 -0
  589. package/dist/utils/statusReporter.js +26 -0
  590. package/dist/utils/statusReporter.js.map +1 -0
  591. package/dist/workspace.d.ts +8 -0
  592. package/dist/workspace.d.ts.map +1 -0
  593. package/dist/workspace.js +135 -0
  594. package/dist/workspace.js.map +1 -0
  595. package/dist/workspace.validator.d.ts +49 -0
  596. package/dist/workspace.validator.d.ts.map +1 -0
  597. package/dist/workspace.validator.js +215 -0
  598. package/dist/workspace.validator.js.map +1 -0
  599. package/package.json +123 -0
  600. package/scripts/postinstall.cjs +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/contracts/v1/tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,OAAO,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Tool Selection Contract v1.0
3
+ *
4
+ * Enumerates the toggleable tool suites that can be surfaced to the agent at
5
+ * runtime plus optional presets that frontends can expose as one-click
6
+ * configurations.
7
+ */
8
+ export declare const TOOL_SELECTION_CONTRACT_VERSION = "1.0.0";
9
+ export type ToolPermissionScope = 'filesystem:read' | 'filesystem:write' | 'process:exec' | 'network:web' | 'network:api' | 'web:fetch' | 'web:search' | 'analysis:code' | 'analysis:quality' | 'analysis:dependency' | 'analysis:testing' | 'analysis:security' | 'analysis:notebook' | 'planning:refactor' | 'integrations:mcp' | 'external:web-search';
10
+ export type ToolSelectionTarget = 'cli' | 'browser' | 'http' | 'worker' | 'service';
11
+ export interface ToolAvailabilityOption {
12
+ id: string;
13
+ label: string;
14
+ description: string;
15
+ category?: string;
16
+ defaultEnabled: boolean;
17
+ pluginIds: string[];
18
+ requiresSecret?: string;
19
+ scopes?: ToolPermissionScope[];
20
+ metadata?: Record<string, unknown>;
21
+ }
22
+ export interface ToolSelectionPreset {
23
+ id: string;
24
+ label: string;
25
+ description?: string;
26
+ enabled?: string[];
27
+ disabled?: string[];
28
+ locked?: string[];
29
+ appliesTo?: ToolSelectionTarget[];
30
+ metadata?: Record<string, unknown>;
31
+ notes?: string;
32
+ }
33
+ export interface ToolSelectionManifest {
34
+ contractVersion: string;
35
+ profile: string;
36
+ version: string;
37
+ label?: string;
38
+ description?: string;
39
+ options: ToolAvailabilityOption[];
40
+ presets?: ToolSelectionPreset[];
41
+ metadata?: Record<string, unknown>;
42
+ }
43
+ //# sourceMappingURL=toolAccess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolAccess.d.ts","sourceRoot":"","sources":["../../../src/contracts/v1/toolAccess.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,+BAA+B,UAAU,CAAC;AAEvD,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,aAAa,GACb,aAAa,GACb,WAAW,GACX,YAAY,GACZ,eAAe,GACf,kBAAkB,GAClB,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,GACnB,kBAAkB,GAClB,qBAAqB,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpF,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Tool Selection Contract v1.0
3
+ *
4
+ * Enumerates the toggleable tool suites that can be surfaced to the agent at
5
+ * runtime plus optional presets that frontends can expose as one-click
6
+ * configurations.
7
+ */
8
+ export const TOOL_SELECTION_CONTRACT_VERSION = '1.0.0';
9
+ //# sourceMappingURL=toolAccess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolAccess.js","sourceRoot":"","sources":["../../../src/contracts/v1/toolAccess.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,+BAA+B,GAAG,OAAO,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Adversarial verifier — the shared critic used across the agent. One
3
+ * model-backed "try to refute this" pass, reused by:
4
+ * (a) the agent loop's always-on review of a finished answer
5
+ * (reviewDraft), and
6
+ * (b) the pre-flight critique of high-impact tool calls
7
+ * (isHighImpactTool + critiqueToolCall).
8
+ *
9
+ * Gated by the `adversarial` feature flag (default on; /adversarial
10
+ * toggles it). Fail-open everywhere: a critic error or unparseable reply
11
+ * never blocks real work — it just lets the action through unannotated.
12
+ */
13
+ import type { LLMProvider } from './types.js';
14
+ /**
15
+ * Whether the adversarial verifier is enabled (feature flag, default on).
16
+ * Forced off under NODE_ENV=test so it never adds a critic model call to a
17
+ * deterministic agent/tool test turn; on by default everywhere else.
18
+ */
19
+ export declare function isAdversarialEnabled(): boolean;
20
+ export declare function getDefaultCriticProvider(): Promise<LLMProvider>;
21
+ export interface DraftReview {
22
+ ok: boolean;
23
+ findings: string;
24
+ }
25
+ export declare function reviewDraft(provider: LLMProvider, input: {
26
+ request: string;
27
+ actions: string;
28
+ draft: string;
29
+ }): Promise<DraftReview>;
30
+ /** High-impact = mutates the filesystem or runs a shell command. Read-only tools skip the critic. */
31
+ export declare function isHighImpactTool(name: string): boolean;
32
+ export interface ToolVerdict {
33
+ decision: 'allow' | 'block';
34
+ reason: string;
35
+ riskLevel: 'low' | 'medium' | 'high';
36
+ }
37
+ export declare function critiqueToolCall(provider: LLMProvider, toolName: string, args: unknown): Promise<ToolVerdict>;
38
+ //# sourceMappingURL=adversarial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../../src/core/adversarial.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAuB,WAAW,EAAE,MAAM,YAAY,CAAC;AAGnE;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAO9C;AAmBD,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CAarE;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,WAAW,CAAC,CAYtB;AASD,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACtC;AAKD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,WAAW,CAAC,CAkBtB"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Adversarial verifier — the shared critic used across the agent. One
3
+ * model-backed "try to refute this" pass, reused by:
4
+ * (a) the agent loop's always-on review of a finished answer
5
+ * (reviewDraft), and
6
+ * (b) the pre-flight critique of high-impact tool calls
7
+ * (isHighImpactTool + critiqueToolCall).
8
+ *
9
+ * Gated by the `adversarial` feature flag (default on; /adversarial
10
+ * toggles it). Fail-open everywhere: a critic error or unparseable reply
11
+ * never blocks real work — it just lets the action through unannotated.
12
+ */
13
+ import { loadFeatureFlags } from './preferences.js';
14
+ /**
15
+ * Whether the adversarial verifier is enabled (feature flag, default on).
16
+ * Forced off under NODE_ENV=test so it never adds a critic model call to a
17
+ * deterministic agent/tool test turn; on by default everywhere else.
18
+ */
19
+ export function isAdversarialEnabled() {
20
+ if (process.env['NODE_ENV'] === 'test')
21
+ return false;
22
+ try {
23
+ return loadFeatureFlags().adversarial !== false;
24
+ }
25
+ catch {
26
+ return false;
27
+ }
28
+ }
29
+ /** One non-streaming, tool-less completion. Returns trimmed text ('' on a non-message reply). */
30
+ async function ask(provider, system, user) {
31
+ const messages = [
32
+ { role: 'system', content: system },
33
+ { role: 'user', content: user },
34
+ ];
35
+ const res = await provider.generate(messages, []);
36
+ if (res.type !== 'message')
37
+ return '';
38
+ return (res.content || '').trim();
39
+ }
40
+ // Standalone provider for callers that don't already hold one (the tool
41
+ // pre-flight). Built once and reused; deterministic (temperature 0). The
42
+ // provider/profile/config modules are imported lazily so this file's static
43
+ // graph stays free of `import.meta` (config.ts) — that keeps it loadable
44
+ // under the jest/babel CJS transform for unit tests.
45
+ let cachedProvider = null;
46
+ export async function getDefaultCriticProvider() {
47
+ if (cachedProvider)
48
+ return cachedProvider;
49
+ const [factory, plugins, config, profiles] = await Promise.all([
50
+ import('../providers/providerFactory.js'),
51
+ import('../plugins/providers/index.js'),
52
+ import('../config.js'),
53
+ import('./agentProfiles.js'),
54
+ ]);
55
+ plugins.registerDefaultProviderPlugins();
56
+ const profile = profiles.listAgentProfiles()[0];
57
+ const cfg = config.resolveProfileConfig(profile ? profile.name : 'erosolar-code', null);
58
+ cachedProvider = factory.createProvider({ provider: cfg.provider, model: cfg.model, temperature: 0, maxTokens: 600 });
59
+ return cachedProvider;
60
+ }
61
+ const REVIEW_SYSTEM = 'You are a terse adversarial reviewer of an AI coding agent. Given the user request, the actions the agent took, and its draft final answer, find concrete defects: claims the answer makes that the actions do not support, work it says it did but did not, untested or risky changes, and direct mismatches between the actions and the answer. If the answer is sound and fully supported, reply with exactly "LGTM" and nothing else. Otherwise reply with a short bullet list of the concrete defects only — no preamble.';
62
+ export async function reviewDraft(provider, input) {
63
+ try {
64
+ const user = `# User request\n${input.request}\n\n` +
65
+ `# Actions the agent took\n${input.actions || '(none)'}\n\n` +
66
+ `# Draft final answer\n${input.draft}`;
67
+ const out = await ask(provider, REVIEW_SYSTEM, user);
68
+ const ok = out.length === 0 || /^lgtm\b/i.test(out);
69
+ return { ok, findings: ok ? '' : out };
70
+ }
71
+ catch {
72
+ return { ok: true, findings: '' };
73
+ }
74
+ }
75
+ // ── (b) pre-flight critique of a high-impact tool call ────────────────
76
+ const HIGH_IMPACT = new Set([
77
+ 'write', 'write_file', 'edit', 'edit_file', 'multiedit', 'multi_edit',
78
+ 'bash', 'execute_bash', 'run_command', 'shell',
79
+ ]);
80
+ /** High-impact = mutates the filesystem or runs a shell command. Read-only tools skip the critic. */
81
+ export function isHighImpactTool(name) {
82
+ return HIGH_IMPACT.has((name || '').toLowerCase());
83
+ }
84
+ const TOOL_SYSTEM = 'You are an adversarial safety/correctness reviewer for a coding agent about to run a high-impact action (a file write/edit or a shell command). Block ONLY clearly destructive, dangerous, or obviously wrong actions — e.g. rm -rf of unrelated paths, truncating a file to garbage, leaking secrets, irreversible data loss outside the working set. Respond with ONLY a compact JSON object: {"decision":"allow"|"block","reason":string,"riskLevel":"low"|"medium"|"high"}. Default to allow; do not block ordinary edits or normal commands.';
85
+ export async function critiqueToolCall(provider, toolName, args) {
86
+ try {
87
+ const user = `Tool: ${toolName}\nArguments:\n${JSON.stringify(args, null, 2).slice(0, 4000)}`;
88
+ const out = await ask(provider, TOOL_SYSTEM, user);
89
+ const match = out.match(/\{[\s\S]*\}/);
90
+ if (!match)
91
+ return { decision: 'allow', reason: '', riskLevel: 'low' };
92
+ const parsed = JSON.parse(match[0]);
93
+ if (parsed.decision === 'block') {
94
+ return {
95
+ decision: 'block',
96
+ reason: parsed.reason || 'flagged by adversarial pre-flight',
97
+ riskLevel: parsed.riskLevel || 'high',
98
+ };
99
+ }
100
+ return { decision: 'allow', reason: parsed.reason || '', riskLevel: parsed.riskLevel || 'low' };
101
+ }
102
+ catch {
103
+ return { decision: 'allow', reason: '', riskLevel: 'low' };
104
+ }
105
+ }
106
+ //# sourceMappingURL=adversarial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../../src/core/adversarial.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,329 @@
1
+ import type { IToolRuntime } from './toolRuntime.js';
2
+ import { type ConversationMessage, type LLMProvider, type ProviderModelInfo, type ProviderUsage } from './types.js';
3
+ import { ContextManager } from './contextManager.js';
4
+ import { type PasteSummary } from './multilinePasteHandler.js';
5
+ /**
6
+ * Intent analysis result passed to callbacks for verification
7
+ */
8
+ export interface IntentAnalysis {
9
+ /** Restatement of what the agent understood */
10
+ intentRestatement: string;
11
+ /** Specific files/components/scope identified */
12
+ identifiedScope: string[];
13
+ /** Potential risks or concerns about the interpretation */
14
+ interpretationRisks: string[];
15
+ /** Confidence score (0-1) */
16
+ confidence: number;
17
+ /** Questions that need clarification before proceeding */
18
+ clarificationNeeded: string[];
19
+ }
20
+ export interface AgentCallbacks {
21
+ onAssistantMessage?(content: string, metadata: AssistantMessageMetadata): void;
22
+ onStreamChunk?(chunk: string, type?: 'content' | 'reasoning'): void;
23
+ /** Called when real token usage is received from the provider during streaming */
24
+ onUsage?(usage: ProviderUsage): void;
25
+ onContextPruned?(removedCount: number, stats: Record<string, unknown>): void;
26
+ /** Called when auto context squishing occurs in background */
27
+ onContextSquishing?(message: string): void;
28
+ /** Called when context recovery from overflow is attempted */
29
+ onContextRecovery?(attempt: number, maxAttempts: number, message: string): void;
30
+ /** Called when agent continues after context recovery - useful for updating UI */
31
+ onContinueAfterRecovery?(): void;
32
+ /** Called when multi-line paste is detected - displays the actual pasted content */
33
+ onMultilinePaste?(content: string, metadata: PasteSummary): void;
34
+ /** Called when verification should be triggered for a final response */
35
+ onVerificationNeeded?(response: string, context: VerificationCallbackContext): void;
36
+ /** Called when the operation is cancelled by the user */
37
+ onCancelled?(): void;
38
+ /** Called when tool execution starts - useful for updating activity status */
39
+ onToolExecution?(toolName: string, isStart: boolean, args?: Record<string, unknown>): void;
40
+ /** Called when the agent generates an explanation for a completed edit */
41
+ onEditExplanation?(payload: EditExplanationPayload): void;
42
+ /**
43
+ * Called IMMEDIATELY when a user request is received, BEFORE any provider call.
44
+ * Useful for updating UI activity without showing filler messages.
45
+ */
46
+ onRequestReceived?(requestPreview: string): void;
47
+ /**
48
+ * Called BEFORE the first tool call in a turn, allowing UI to update activity state.
49
+ * @param toolNames - Names of tools about to be called
50
+ * @param hasModelNarration - Whether the model provided narration/thinking before tools
51
+ * @returns Optional acknowledgement text to display (if model didn't provide narration)
52
+ */
53
+ onBeforeFirstToolCall?(toolNames: string[], hasModelNarration: boolean): string | undefined;
54
+ /**
55
+ * Called when the agent encounters a transient error and will retry.
56
+ * @param attempt - Current retry attempt number
57
+ * @param maxAttempts - Maximum retry attempts
58
+ * @param error - The error that triggered the retry
59
+ */
60
+ onRetrying?(attempt: number, maxAttempts: number, error: Error): void;
61
+ /**
62
+ * Called when intent analysis is complete, BEFORE processing begins.
63
+ * Allows UI to display understanding verification and get user confirmation if needed.
64
+ * @param analysis - The intent analysis with restatement, scope, and risks
65
+ * @returns true to proceed, false to abort (user can provide clarification)
66
+ */
67
+ onIntentAnalyzed?(analysis: IntentAnalysis): boolean | Promise<boolean>;
68
+ }
69
+ export interface ToolExecutionRecord {
70
+ name: string;
71
+ success: boolean;
72
+ hasOutput: boolean;
73
+ }
74
+ export interface VerificationCallbackContext {
75
+ /** Working directory for verification */
76
+ workingDirectory: string;
77
+ /** Recent conversation history for context */
78
+ conversationHistory: string[];
79
+ /** Provider ID */
80
+ provider: string;
81
+ /** Model ID */
82
+ model: string;
83
+ }
84
+ export interface AssistantMessageMetadata {
85
+ isFinal: boolean;
86
+ elapsedMs?: number;
87
+ usage?: ProviderUsage | null;
88
+ contextStats?: Record<string, unknown> | null;
89
+ /** True if content was already displayed via streaming chunks */
90
+ wasStreamed?: boolean;
91
+ /** Hint to UI to suppress rendering of internal/system filler messages */
92
+ suppressDisplay?: boolean;
93
+ }
94
+ export interface EditExplanationPayload {
95
+ explanation: string;
96
+ files: string[];
97
+ toolName: string;
98
+ toolCallId?: string;
99
+ }
100
+ interface AgentOptions {
101
+ provider: LLMProvider;
102
+ toolRuntime: IToolRuntime;
103
+ systemPrompt: string;
104
+ callbacks?: AgentCallbacks;
105
+ contextManager?: ContextManager;
106
+ /** Provider ID for verification context */
107
+ providerId?: string;
108
+ /** Model ID for verification context */
109
+ modelId?: string;
110
+ /** Working directory for verification */
111
+ workingDirectory?: string;
112
+ /** Whether to generate and surface explanations after edit tools complete */
113
+ explainEdits?: boolean;
114
+ }
115
+ export declare class AgentRuntime {
116
+ private readonly messages;
117
+ private readonly provider;
118
+ private readonly toolRuntime;
119
+ private readonly callbacks;
120
+ private readonly contextManager;
121
+ private activeRun;
122
+ private readonly baseSystemPrompt;
123
+ private readonly providerId;
124
+ private readonly modelId;
125
+ private readonly workingDirectory;
126
+ private readonly explainEdits;
127
+ private cancellationRequested;
128
+ private lastToolCallSignature;
129
+ private repeatedToolCallCount;
130
+ private static readonly MAX_REPEATED_TOOL_CALLS;
131
+ private totalContextRecoveries;
132
+ private static readonly MAX_TOTAL_RECOVERIES;
133
+ private recentToolCalls;
134
+ private static readonly TOOL_HISTORY_SIZE;
135
+ private static readonly BEHAVIORAL_LOOP_THRESHOLD;
136
+ private consecutiveFailures;
137
+ private static readonly MAX_CONSECUTIVE_FAILURES;
138
+ private static readonly EDIT_CONTEXT_CHAR_LIMIT;
139
+ private static readonly NON_CACHEABLE_TOOL_NAMES;
140
+ private static readonly LOOP_EXEMPT_TOOL_NAMES;
141
+ private toolResultCache;
142
+ private static readonly TOOL_CACHE_MAX_SIZE;
143
+ private toolHistoryCursor;
144
+ private modelInfo;
145
+ private modelInfoFetched;
146
+ constructor(options: AgentOptions);
147
+ /**
148
+ * Request cancellation of the current operation.
149
+ * The agent will stop at the next safe point (after current tool completes).
150
+ */
151
+ requestCancellation(): void;
152
+ /**
153
+ * Check if cancellation has been requested.
154
+ */
155
+ isCancellationRequested(): boolean;
156
+ /**
157
+ * Check if the agent is currently processing a request.
158
+ */
159
+ isRunning(): boolean;
160
+ /**
161
+ * Check if any of the tool calls are edit operations (Edit, Write)
162
+ */
163
+ private isEditToolCall;
164
+ /**
165
+ * Extract a display-friendly file path from a tool call (prefers workspace-relative path)
166
+ */
167
+ private getEditedFilePath;
168
+ /**
169
+ * Get the file paths from edit tool calls for the explanation prompt
170
+ */
171
+ private getEditedFiles;
172
+ send(text: string, useStreaming?: boolean): Promise<string>;
173
+ private processConversation;
174
+ private processConversationStreaming;
175
+ /**
176
+ * Execute tool calls with optimized concurrency
177
+ *
178
+ * PERF: Uses Promise.all for parallel execution with early result handling.
179
+ * Results are collected in order but execution happens concurrently.
180
+ * For very large batches (>10 tools), uses chunked execution to prevent
181
+ * overwhelming system resources.
182
+ */
183
+ private resolveToolCalls;
184
+ private truncateEditOutput;
185
+ private buildEditExplanationPrompt;
186
+ /**
187
+ * Extract clean explanation from model output that may contain reasoning.
188
+ * Reasoning models like deepseek-v4-pro output chain-of-thought which we need to filter.
189
+ */
190
+ private extractCleanExplanation;
191
+ private maybeExplainEdits;
192
+ private get providerTools();
193
+ /**
194
+ * Whether to suppress tool narration in the content field.
195
+ * Previously suppressed for OpenAI but now we show all thinking/narration.
196
+ */
197
+ private shouldSuppressToolNarration;
198
+ private emitAssistantMessage;
199
+ /**
200
+ * Trigger verification for a final response if callback is registered
201
+ * and response contains verifiable claims (implementation, build success, etc.)
202
+ */
203
+ /**
204
+ * Always-on adversarial review of a finished answer (annotate-only). When
205
+ * the adversarial flag is on and real work happened this turn, a critic
206
+ * pass tries to refute the draft; findings are appended as a visible
207
+ * caveat. Non-destructive (peeks tool history without draining the cursor
208
+ * drainToolExecutions relies on) and fail-open — a critic error returns
209
+ * the answer unchanged.
210
+ */
211
+ private maybeAdversarialReview;
212
+ private triggerVerificationIfNeeded;
213
+ /**
214
+ * Extract a "command hash" from tool arguments for behavioral loop detection.
215
+ * For execute_bash, this is the actual command. For other tools, key identifying args.
216
+ */
217
+ private extractCmdHash;
218
+ /**
219
+ * Check for behavioral loops - model calling the same tool with similar args repeatedly.
220
+ * Returns an error message if a loop is detected, null otherwise.
221
+ *
222
+ * FUNDAMENTAL PREVENTION: Cached calls are excluded from loop detection since they
223
+ * don't actually execute (the cache provides the result). This means:
224
+ * - First call: executes and caches result
225
+ * - Second identical call: returns cached result, NOT counted toward loop
226
+ * - Only genuinely NEW (non-cached) repetitive calls trigger loop detection
227
+ *
228
+ * Direct execution tools (bash/edit) are also exempt to avoid short-circuiting
229
+ * legitimate repeated user commands.
230
+ *
231
+ * This catches patterns like:
232
+ * - "git status -sb" called 3 times with DIFFERENT outputs (cache miss each time)
233
+ * - Repeated file reads where file content changed
234
+ * - Repeated searches with same pattern but new results
235
+ */
236
+ private checkBehavioralLoop;
237
+ /**
238
+ * Provide an acknowledgement before the first tool call when the model
239
+ * hasn't narrated its plan. This keeps the UI responsive and lets the
240
+ * user know work is happening even before tool output arrives.
241
+ */
242
+ private maybeAckToolCalls;
243
+ /**
244
+ * Reset behavioral loop tracking (called when user provides new input or task completes)
245
+ */
246
+ private resetBehavioralLoopTracking;
247
+ /**
248
+ * Create a stable cache key for a tool call based on name and arguments
249
+ */
250
+ private getToolCacheKey;
251
+ /**
252
+ * Only cache tools that are safe to reuse; stateful commands must always execute.
253
+ */
254
+ private isCacheableTool;
255
+ /**
256
+ * Direct execution tools should not trigger behavioral loop short-circuiting.
257
+ */
258
+ private shouldSkipLoopDetection;
259
+ /**
260
+ * Check if a tool output indicates failure
261
+ */
262
+ private isToolOutputFailure;
263
+ /**
264
+ * Track tool execution result and check for consecutive failures.
265
+ * Returns error message if too many consecutive failures, null otherwise.
266
+ */
267
+ private trackToolResult;
268
+ /**
269
+ * Get cached result for a tool call, or null if not cached
270
+ */
271
+ private getCachedToolResult;
272
+ /**
273
+ * Cache a tool result for future identical calls
274
+ */
275
+ private cacheToolResult;
276
+ /**
277
+ * Drain the list of tools executed during the most recent send() call.
278
+ * Used by higher-level orchestrators to reason about progress.
279
+ */
280
+ drainToolExecutions(): ToolExecutionRecord[];
281
+ getHistory(): ConversationMessage[];
282
+ loadHistory(history: ConversationMessage[]): void;
283
+ clearHistory(): void;
284
+ /**
285
+ * Prune messages if approaching context limit
286
+ *
287
+ * This runs BEFORE each generation to ensure we stay within budget.
288
+ * If LLM summarization is available, it will create intelligent summaries
289
+ * instead of just removing old messages.
290
+ */
291
+ private pruneMessagesIfNeeded;
292
+ /**
293
+ * Get current context statistics
294
+ */
295
+ private getContextStats;
296
+ /**
297
+ * Get context manager instance
298
+ */
299
+ getContextManager(): ContextManager | null;
300
+ /**
301
+ * Fetch model info from the provider API.
302
+ * Returns context window and token limits from the real API.
303
+ * Results are cached for the lifetime of this agent instance.
304
+ */
305
+ fetchModelInfo(): Promise<ProviderModelInfo | null>;
306
+ /**
307
+ * Get cached model info (must call fetchModelInfo first)
308
+ */
309
+ getModelInfo(): ProviderModelInfo | null;
310
+ /**
311
+ * Get the context window size from the provider API.
312
+ * Returns null if the provider doesn't support this or the API call fails.
313
+ */
314
+ getContextWindowFromProvider(): Promise<number | null>;
315
+ /**
316
+ * Auto-recover from context overflow errors by aggressively pruning messages.
317
+ *
318
+ * This is called when an API call fails due to context length exceeding limits.
319
+ * It performs increasingly aggressive pruning on each attempt:
320
+ * - Attempt 1: Remove 30% of oldest messages + truncate tool outputs to 5k
321
+ * - Attempt 2: Remove 50% of oldest messages + truncate tool outputs to 2k
322
+ * - Attempt 3: Remove 70% of oldest messages + truncate tool outputs to 500 chars
323
+ *
324
+ * @returns true if recovery was successful (context was reduced)
325
+ */
326
+ private recoverFromContextOverflow;
327
+ }
328
+ export {};
329
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}