@trenchwork/coder 1.3.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 (560) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +173 -0
  3. package/agents/trenchwork-code.rules.json +199 -0
  4. package/dist/bin/deepseek.d.ts +3 -0
  5. package/dist/bin/deepseek.d.ts.map +1 -0
  6. package/dist/bin/deepseek.js +23 -0
  7. package/dist/bin/deepseek.js.map +1 -0
  8. package/dist/capabilities/baseCapability.d.ts +72 -0
  9. package/dist/capabilities/baseCapability.d.ts.map +1 -0
  10. package/dist/capabilities/baseCapability.js +183 -0
  11. package/dist/capabilities/baseCapability.js.map +1 -0
  12. package/dist/capabilities/bashCapability.d.ts +13 -0
  13. package/dist/capabilities/bashCapability.d.ts.map +1 -0
  14. package/dist/capabilities/bashCapability.js +24 -0
  15. package/dist/capabilities/bashCapability.js.map +1 -0
  16. package/dist/capabilities/editCapability.d.ts +17 -0
  17. package/dist/capabilities/editCapability.d.ts.map +1 -0
  18. package/dist/capabilities/editCapability.js +27 -0
  19. package/dist/capabilities/editCapability.js.map +1 -0
  20. package/dist/capabilities/enhancedGitCapability.d.ts +7 -0
  21. package/dist/capabilities/enhancedGitCapability.d.ts.map +1 -0
  22. package/dist/capabilities/enhancedGitCapability.js +220 -0
  23. package/dist/capabilities/enhancedGitCapability.js.map +1 -0
  24. package/dist/capabilities/filesystemCapability.d.ts +13 -0
  25. package/dist/capabilities/filesystemCapability.d.ts.map +1 -0
  26. package/dist/capabilities/filesystemCapability.js +24 -0
  27. package/dist/capabilities/filesystemCapability.js.map +1 -0
  28. package/dist/capabilities/gitHistoryCapability.d.ts +6 -0
  29. package/dist/capabilities/gitHistoryCapability.d.ts.map +1 -0
  30. package/dist/capabilities/gitHistoryCapability.js +184 -0
  31. package/dist/capabilities/gitHistoryCapability.js.map +1 -0
  32. package/dist/capabilities/hitlCapability.d.ts +18 -0
  33. package/dist/capabilities/hitlCapability.d.ts.map +1 -0
  34. package/dist/capabilities/hitlCapability.js +29 -0
  35. package/dist/capabilities/hitlCapability.js.map +1 -0
  36. package/dist/capabilities/index.d.ts +11 -0
  37. package/dist/capabilities/index.d.ts.map +1 -0
  38. package/dist/capabilities/index.js +16 -0
  39. package/dist/capabilities/index.js.map +1 -0
  40. package/dist/capabilities/memoryCapability.d.ts +10 -0
  41. package/dist/capabilities/memoryCapability.d.ts.map +1 -0
  42. package/dist/capabilities/memoryCapability.js +22 -0
  43. package/dist/capabilities/memoryCapability.js.map +1 -0
  44. package/dist/capabilities/notebookCapability.d.ts +6 -0
  45. package/dist/capabilities/notebookCapability.d.ts.map +1 -0
  46. package/dist/capabilities/notebookCapability.js +17 -0
  47. package/dist/capabilities/notebookCapability.js.map +1 -0
  48. package/dist/capabilities/searchCapability.d.ts +19 -0
  49. package/dist/capabilities/searchCapability.d.ts.map +1 -0
  50. package/dist/capabilities/searchCapability.js +29 -0
  51. package/dist/capabilities/searchCapability.js.map +1 -0
  52. package/dist/capabilities/skillCapability.d.ts +6 -0
  53. package/dist/capabilities/skillCapability.d.ts.map +1 -0
  54. package/dist/capabilities/skillCapability.js +17 -0
  55. package/dist/capabilities/skillCapability.js.map +1 -0
  56. package/dist/capabilities/todoCapability.d.ts +11 -0
  57. package/dist/capabilities/todoCapability.d.ts.map +1 -0
  58. package/dist/capabilities/todoCapability.js +22 -0
  59. package/dist/capabilities/todoCapability.js.map +1 -0
  60. package/dist/capabilities/toolManifest.d.ts +3 -0
  61. package/dist/capabilities/toolManifest.d.ts.map +1 -0
  62. package/dist/capabilities/toolManifest.js +163 -0
  63. package/dist/capabilities/toolManifest.js.map +1 -0
  64. package/dist/capabilities/toolRegistry.d.ts +25 -0
  65. package/dist/capabilities/toolRegistry.d.ts.map +1 -0
  66. package/dist/capabilities/toolRegistry.js +150 -0
  67. package/dist/capabilities/toolRegistry.js.map +1 -0
  68. package/dist/capabilities/unifiedCodingCapability.d.ts +62 -0
  69. package/dist/capabilities/unifiedCodingCapability.d.ts.map +1 -0
  70. package/dist/capabilities/unifiedCodingCapability.js +790 -0
  71. package/dist/capabilities/unifiedCodingCapability.js.map +1 -0
  72. package/dist/capabilities/webCapability.d.ts +23 -0
  73. package/dist/capabilities/webCapability.d.ts.map +1 -0
  74. package/dist/capabilities/webCapability.js +33 -0
  75. package/dist/capabilities/webCapability.js.map +1 -0
  76. package/dist/config.d.ts +25 -0
  77. package/dist/config.d.ts.map +1 -0
  78. package/dist/config.js +181 -0
  79. package/dist/config.js.map +1 -0
  80. package/dist/contracts/agent-profiles.schema.json +25 -0
  81. package/dist/contracts/agent-schemas.json +158 -0
  82. package/dist/contracts/models.schema.json +9 -0
  83. package/dist/contracts/module-schema.json +367 -0
  84. package/dist/contracts/schemas/agent-profile.schema.json +157 -0
  85. package/dist/contracts/schemas/agent-rules.schema.json +238 -0
  86. package/dist/contracts/schemas/agent-schemas.schema.json +528 -0
  87. package/dist/contracts/schemas/agent.schema.json +90 -0
  88. package/dist/contracts/schemas/tool-selection.schema.json +174 -0
  89. package/dist/contracts/tools.schema.json +42 -0
  90. package/dist/contracts/unified-schema.json +40 -0
  91. package/dist/contracts/v1/agent.d.ts +225 -0
  92. package/dist/contracts/v1/agent.d.ts.map +1 -0
  93. package/dist/contracts/v1/agent.js +8 -0
  94. package/dist/contracts/v1/agent.js.map +1 -0
  95. package/dist/contracts/v1/agentProfileManifest.d.ts +60 -0
  96. package/dist/contracts/v1/agentProfileManifest.d.ts.map +1 -0
  97. package/dist/contracts/v1/agentProfileManifest.js +9 -0
  98. package/dist/contracts/v1/agentProfileManifest.js.map +1 -0
  99. package/dist/contracts/v1/agentRules.d.ts +60 -0
  100. package/dist/contracts/v1/agentRules.d.ts.map +1 -0
  101. package/dist/contracts/v1/agentRules.js +10 -0
  102. package/dist/contracts/v1/agentRules.js.map +1 -0
  103. package/dist/contracts/v1/provider.d.ts +149 -0
  104. package/dist/contracts/v1/provider.d.ts.map +1 -0
  105. package/dist/contracts/v1/provider.js +7 -0
  106. package/dist/contracts/v1/provider.js.map +1 -0
  107. package/dist/contracts/v1/tool.d.ts +136 -0
  108. package/dist/contracts/v1/tool.d.ts.map +1 -0
  109. package/dist/contracts/v1/tool.js +7 -0
  110. package/dist/contracts/v1/tool.js.map +1 -0
  111. package/dist/contracts/v1/toolAccess.d.ts +43 -0
  112. package/dist/contracts/v1/toolAccess.d.ts.map +1 -0
  113. package/dist/contracts/v1/toolAccess.js +9 -0
  114. package/dist/contracts/v1/toolAccess.js.map +1 -0
  115. package/dist/core/adversarial.d.ts +38 -0
  116. package/dist/core/adversarial.d.ts.map +1 -0
  117. package/dist/core/adversarial.js +106 -0
  118. package/dist/core/adversarial.js.map +1 -0
  119. package/dist/core/adversarialCorrection.d.ts +22 -0
  120. package/dist/core/adversarialCorrection.d.ts.map +1 -0
  121. package/dist/core/adversarialCorrection.js +25 -0
  122. package/dist/core/adversarialCorrection.js.map +1 -0
  123. package/dist/core/agent.d.ts +331 -0
  124. package/dist/core/agent.d.ts.map +1 -0
  125. package/dist/core/agent.js +1637 -0
  126. package/dist/core/agent.js.map +1 -0
  127. package/dist/core/agentProfileManifest.d.ts +3 -0
  128. package/dist/core/agentProfileManifest.d.ts.map +1 -0
  129. package/dist/core/agentProfileManifest.js +188 -0
  130. package/dist/core/agentProfileManifest.js.map +1 -0
  131. package/dist/core/agentProfiles.d.ts +22 -0
  132. package/dist/core/agentProfiles.d.ts.map +1 -0
  133. package/dist/core/agentProfiles.js +35 -0
  134. package/dist/core/agentProfiles.js.map +1 -0
  135. package/dist/core/agentRegistry.d.ts +111 -0
  136. package/dist/core/agentRegistry.d.ts.map +1 -0
  137. package/dist/core/agentRegistry.js +229 -0
  138. package/dist/core/agentRegistry.js.map +1 -0
  139. package/dist/core/agentRulebook.d.ts +11 -0
  140. package/dist/core/agentRulebook.d.ts.map +1 -0
  141. package/dist/core/agentRulebook.js +136 -0
  142. package/dist/core/agentRulebook.js.map +1 -0
  143. package/dist/core/agentSchemaLoader.d.ts +131 -0
  144. package/dist/core/agentSchemaLoader.d.ts.map +1 -0
  145. package/dist/core/agentSchemaLoader.js +235 -0
  146. package/dist/core/agentSchemaLoader.js.map +1 -0
  147. package/dist/core/aiErrorFixer.d.ts +57 -0
  148. package/dist/core/aiErrorFixer.d.ts.map +1 -0
  149. package/dist/core/aiErrorFixer.js +214 -0
  150. package/dist/core/aiErrorFixer.js.map +1 -0
  151. package/dist/core/bashCommandGuidance.d.ts +16 -0
  152. package/dist/core/bashCommandGuidance.d.ts.map +1 -0
  153. package/dist/core/bashCommandGuidance.js +40 -0
  154. package/dist/core/bashCommandGuidance.js.map +1 -0
  155. package/dist/core/compactionNote.d.ts +13 -0
  156. package/dist/core/compactionNote.d.ts.map +1 -0
  157. package/dist/core/compactionNote.js +13 -0
  158. package/dist/core/compactionNote.js.map +1 -0
  159. package/dist/core/constants.d.ts +31 -0
  160. package/dist/core/constants.d.ts.map +1 -0
  161. package/dist/core/constants.js +62 -0
  162. package/dist/core/constants.js.map +1 -0
  163. package/dist/core/contextManager.d.ts +271 -0
  164. package/dist/core/contextManager.d.ts.map +1 -0
  165. package/dist/core/contextManager.js +1076 -0
  166. package/dist/core/contextManager.js.map +1 -0
  167. package/dist/core/contextUsage.d.ts +28 -0
  168. package/dist/core/contextUsage.d.ts.map +1 -0
  169. package/dist/core/contextUsage.js +62 -0
  170. package/dist/core/contextUsage.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 +127 -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/diffPanel.d.ts +30 -0
  180. package/dist/core/diffPanel.d.ts.map +1 -0
  181. package/dist/core/diffPanel.js +48 -0
  182. package/dist/core/diffPanel.js.map +1 -0
  183. package/dist/core/errorClassification.d.ts +44 -0
  184. package/dist/core/errorClassification.d.ts.map +1 -0
  185. package/dist/core/errorClassification.js +333 -0
  186. package/dist/core/errorClassification.js.map +1 -0
  187. package/dist/core/errors/apiKeyErrors.d.ts +11 -0
  188. package/dist/core/errors/apiKeyErrors.d.ts.map +1 -0
  189. package/dist/core/errors/apiKeyErrors.js +159 -0
  190. package/dist/core/errors/apiKeyErrors.js.map +1 -0
  191. package/dist/core/errors/errorTypes.d.ts +111 -0
  192. package/dist/core/errors/errorTypes.d.ts.map +1 -0
  193. package/dist/core/errors/errorTypes.js +345 -0
  194. package/dist/core/errors/errorTypes.js.map +1 -0
  195. package/dist/core/errors/index.d.ts +50 -0
  196. package/dist/core/errors/index.d.ts.map +1 -0
  197. package/dist/core/errors/index.js +156 -0
  198. package/dist/core/errors/index.js.map +1 -0
  199. package/dist/core/errors/networkErrors.d.ts +14 -0
  200. package/dist/core/errors/networkErrors.d.ts.map +1 -0
  201. package/dist/core/errors/networkErrors.js +53 -0
  202. package/dist/core/errors/networkErrors.js.map +1 -0
  203. package/dist/core/errors/safetyValidator.d.ts +109 -0
  204. package/dist/core/errors/safetyValidator.d.ts.map +1 -0
  205. package/dist/core/errors/safetyValidator.js +272 -0
  206. package/dist/core/errors/safetyValidator.js.map +1 -0
  207. package/dist/core/errors.d.ts +4 -0
  208. package/dist/core/errors.d.ts.map +1 -0
  209. package/dist/core/errors.js +33 -0
  210. package/dist/core/errors.js.map +1 -0
  211. package/dist/core/failureRegistry.d.ts +30 -0
  212. package/dist/core/failureRegistry.d.ts.map +1 -0
  213. package/dist/core/failureRegistry.js +74 -0
  214. package/dist/core/failureRegistry.js.map +1 -0
  215. package/dist/core/fileMentions.d.ts +40 -0
  216. package/dist/core/fileMentions.d.ts.map +1 -0
  217. package/dist/core/fileMentions.js +136 -0
  218. package/dist/core/fileMentions.js.map +1 -0
  219. package/dist/core/finalResponseFormatter.d.ts +10 -0
  220. package/dist/core/finalResponseFormatter.d.ts.map +1 -0
  221. package/dist/core/finalResponseFormatter.js +14 -0
  222. package/dist/core/finalResponseFormatter.js.map +1 -0
  223. package/dist/core/guardrails.d.ts +146 -0
  224. package/dist/core/guardrails.d.ts.map +1 -0
  225. package/dist/core/guardrails.js +361 -0
  226. package/dist/core/guardrails.js.map +1 -0
  227. package/dist/core/hitl.d.ts +119 -0
  228. package/dist/core/hitl.d.ts.map +1 -0
  229. package/dist/core/hitl.js +396 -0
  230. package/dist/core/hitl.js.map +1 -0
  231. package/dist/core/hooks.d.ts +95 -0
  232. package/dist/core/hooks.d.ts.map +1 -0
  233. package/dist/core/hooks.js +236 -0
  234. package/dist/core/hooks.js.map +1 -0
  235. package/dist/core/hostedAuth.d.ts +88 -0
  236. package/dist/core/hostedAuth.d.ts.map +1 -0
  237. package/dist/core/hostedAuth.js +219 -0
  238. package/dist/core/hostedAuth.js.map +1 -0
  239. package/dist/core/inputProtection.d.ts +122 -0
  240. package/dist/core/inputProtection.d.ts.map +1 -0
  241. package/dist/core/inputProtection.js +422 -0
  242. package/dist/core/inputProtection.js.map +1 -0
  243. package/dist/core/modelDiscovery.d.ts +102 -0
  244. package/dist/core/modelDiscovery.d.ts.map +1 -0
  245. package/dist/core/modelDiscovery.js +416 -0
  246. package/dist/core/modelDiscovery.js.map +1 -0
  247. package/dist/core/multilinePasteHandler.d.ts +35 -0
  248. package/dist/core/multilinePasteHandler.d.ts.map +1 -0
  249. package/dist/core/multilinePasteHandler.js +81 -0
  250. package/dist/core/multilinePasteHandler.js.map +1 -0
  251. package/dist/core/permissionMode.d.ts +40 -0
  252. package/dist/core/permissionMode.d.ts.map +1 -0
  253. package/dist/core/permissionMode.js +86 -0
  254. package/dist/core/permissionMode.js.map +1 -0
  255. package/dist/core/postWriteDiagnostics.d.ts +32 -0
  256. package/dist/core/postWriteDiagnostics.d.ts.map +1 -0
  257. package/dist/core/postWriteDiagnostics.js +127 -0
  258. package/dist/core/postWriteDiagnostics.js.map +1 -0
  259. package/dist/core/preferences.d.ts +66 -0
  260. package/dist/core/preferences.d.ts.map +1 -0
  261. package/dist/core/preferences.js +310 -0
  262. package/dist/core/preferences.js.map +1 -0
  263. package/dist/core/quota.d.ts +61 -0
  264. package/dist/core/quota.d.ts.map +1 -0
  265. package/dist/core/quota.js +104 -0
  266. package/dist/core/quota.js.map +1 -0
  267. package/dist/core/quotaErrors.d.ts +42 -0
  268. package/dist/core/quotaErrors.d.ts.map +1 -0
  269. package/dist/core/quotaErrors.js +86 -0
  270. package/dist/core/quotaErrors.js.map +1 -0
  271. package/dist/core/refusalDetection.d.ts +2 -0
  272. package/dist/core/refusalDetection.d.ts.map +1 -0
  273. package/dist/core/refusalDetection.js +51 -0
  274. package/dist/core/refusalDetection.js.map +1 -0
  275. package/dist/core/relativeTime.d.ts +8 -0
  276. package/dist/core/relativeTime.d.ts.map +1 -0
  277. package/dist/core/relativeTime.js +29 -0
  278. package/dist/core/relativeTime.js.map +1 -0
  279. package/dist/core/resultVerification.d.ts +48 -0
  280. package/dist/core/resultVerification.d.ts.map +1 -0
  281. package/dist/core/resultVerification.js +127 -0
  282. package/dist/core/resultVerification.js.map +1 -0
  283. package/dist/core/rewind.d.ts +14 -0
  284. package/dist/core/rewind.d.ts.map +1 -0
  285. package/dist/core/rewind.js +25 -0
  286. package/dist/core/rewind.js.map +1 -0
  287. package/dist/core/schemaValidator.d.ts +49 -0
  288. package/dist/core/schemaValidator.d.ts.map +1 -0
  289. package/dist/core/schemaValidator.js +234 -0
  290. package/dist/core/schemaValidator.js.map +1 -0
  291. package/dist/core/secretStore.d.ts +59 -0
  292. package/dist/core/secretStore.d.ts.map +1 -0
  293. package/dist/core/secretStore.js +278 -0
  294. package/dist/core/secretStore.js.map +1 -0
  295. package/dist/core/sessionStorage.d.ts +10 -0
  296. package/dist/core/sessionStorage.d.ts.map +1 -0
  297. package/dist/core/sessionStorage.js +46 -0
  298. package/dist/core/sessionStorage.js.map +1 -0
  299. package/dist/core/sessionStore.d.ts +35 -0
  300. package/dist/core/sessionStore.d.ts.map +1 -0
  301. package/dist/core/sessionStore.js +190 -0
  302. package/dist/core/sessionStore.js.map +1 -0
  303. package/dist/core/shutdown.d.ts +34 -0
  304. package/dist/core/shutdown.d.ts.map +1 -0
  305. package/dist/core/shutdown.js +186 -0
  306. package/dist/core/shutdown.js.map +1 -0
  307. package/dist/core/slashCommands.d.ts +38 -0
  308. package/dist/core/slashCommands.d.ts.map +1 -0
  309. package/dist/core/slashCommands.js +72 -0
  310. package/dist/core/slashCommands.js.map +1 -0
  311. package/dist/core/subAgentNote.d.ts +15 -0
  312. package/dist/core/subAgentNote.d.ts.map +1 -0
  313. package/dist/core/subAgentNote.js +16 -0
  314. package/dist/core/subAgentNote.js.map +1 -0
  315. package/dist/core/sudoPasswordManager.d.ts +52 -0
  316. package/dist/core/sudoPasswordManager.d.ts.map +1 -0
  317. package/dist/core/sudoPasswordManager.js +115 -0
  318. package/dist/core/sudoPasswordManager.js.map +1 -0
  319. package/dist/core/taskCompletionDetector.d.ts +117 -0
  320. package/dist/core/taskCompletionDetector.d.ts.map +1 -0
  321. package/dist/core/taskCompletionDetector.js +532 -0
  322. package/dist/core/taskCompletionDetector.js.map +1 -0
  323. package/dist/core/testFailureMonitor.d.ts +67 -0
  324. package/dist/core/testFailureMonitor.d.ts.map +1 -0
  325. package/dist/core/testFailureMonitor.js +262 -0
  326. package/dist/core/testFailureMonitor.js.map +1 -0
  327. package/dist/core/thinkingVerbs.d.ts +31 -0
  328. package/dist/core/thinkingVerbs.d.ts.map +1 -0
  329. package/dist/core/thinkingVerbs.js +58 -0
  330. package/dist/core/thinkingVerbs.js.map +1 -0
  331. package/dist/core/toolPreconditions.d.ts +34 -0
  332. package/dist/core/toolPreconditions.d.ts.map +1 -0
  333. package/dist/core/toolPreconditions.js +242 -0
  334. package/dist/core/toolPreconditions.js.map +1 -0
  335. package/dist/core/toolRuntime.d.ts +193 -0
  336. package/dist/core/toolRuntime.d.ts.map +1 -0
  337. package/dist/core/toolRuntime.js +526 -0
  338. package/dist/core/toolRuntime.js.map +1 -0
  339. package/dist/core/turnGovernor.d.ts +63 -0
  340. package/dist/core/turnGovernor.d.ts.map +1 -0
  341. package/dist/core/turnGovernor.js +94 -0
  342. package/dist/core/turnGovernor.js.map +1 -0
  343. package/dist/core/types/utilityTypes.d.ts +183 -0
  344. package/dist/core/types/utilityTypes.d.ts.map +1 -0
  345. package/dist/core/types/utilityTypes.js +273 -0
  346. package/dist/core/types/utilityTypes.js.map +1 -0
  347. package/dist/core/types.d.ts +334 -0
  348. package/dist/core/types.d.ts.map +1 -0
  349. package/dist/core/types.js +76 -0
  350. package/dist/core/types.js.map +1 -0
  351. package/dist/core/updateChecker.d.ts +148 -0
  352. package/dist/core/updateChecker.d.ts.map +1 -0
  353. package/dist/core/updateChecker.js +605 -0
  354. package/dist/core/updateChecker.js.map +1 -0
  355. package/dist/core/usage.d.ts +28 -0
  356. package/dist/core/usage.d.ts.map +1 -0
  357. package/dist/core/usage.js +77 -0
  358. package/dist/core/usage.js.map +1 -0
  359. package/dist/headless/interactiveShell.d.ts +47 -0
  360. package/dist/headless/interactiveShell.d.ts.map +1 -0
  361. package/dist/headless/interactiveShell.js +2495 -0
  362. package/dist/headless/interactiveShell.js.map +1 -0
  363. package/dist/leanAgent.d.ts +73 -0
  364. package/dist/leanAgent.d.ts.map +1 -0
  365. package/dist/leanAgent.js +177 -0
  366. package/dist/leanAgent.js.map +1 -0
  367. package/dist/plugins/providers/deepseek/index.d.ts +12 -0
  368. package/dist/plugins/providers/deepseek/index.d.ts.map +1 -0
  369. package/dist/plugins/providers/deepseek/index.js +123 -0
  370. package/dist/plugins/providers/deepseek/index.js.map +1 -0
  371. package/dist/plugins/providers/index.d.ts +2 -0
  372. package/dist/plugins/providers/index.d.ts.map +1 -0
  373. package/dist/plugins/providers/index.js +10 -0
  374. package/dist/plugins/providers/index.js.map +1 -0
  375. package/dist/providers/baseProvider.d.ts +140 -0
  376. package/dist/providers/baseProvider.d.ts.map +1 -0
  377. package/dist/providers/baseProvider.js +230 -0
  378. package/dist/providers/baseProvider.js.map +1 -0
  379. package/dist/providers/openaiChatCompletionsProvider.d.ts +70 -0
  380. package/dist/providers/openaiChatCompletionsProvider.d.ts.map +1 -0
  381. package/dist/providers/openaiChatCompletionsProvider.js +971 -0
  382. package/dist/providers/openaiChatCompletionsProvider.js.map +1 -0
  383. package/dist/providers/providerFactory.d.ts +22 -0
  384. package/dist/providers/providerFactory.d.ts.map +1 -0
  385. package/dist/providers/providerFactory.js +25 -0
  386. package/dist/providers/providerFactory.js.map +1 -0
  387. package/dist/providers/resilientProvider.d.ts +96 -0
  388. package/dist/providers/resilientProvider.d.ts.map +1 -0
  389. package/dist/providers/resilientProvider.js +251 -0
  390. package/dist/providers/resilientProvider.js.map +1 -0
  391. package/dist/runtime/agentController.d.ts +137 -0
  392. package/dist/runtime/agentController.d.ts.map +1 -0
  393. package/dist/runtime/agentController.js +784 -0
  394. package/dist/runtime/agentController.js.map +1 -0
  395. package/dist/runtime/agentHost.d.ts +61 -0
  396. package/dist/runtime/agentHost.d.ts.map +1 -0
  397. package/dist/runtime/agentHost.js +158 -0
  398. package/dist/runtime/agentHost.js.map +1 -0
  399. package/dist/runtime/agentSession.d.ts +49 -0
  400. package/dist/runtime/agentSession.d.ts.map +1 -0
  401. package/dist/runtime/agentSession.js +218 -0
  402. package/dist/runtime/agentSession.js.map +1 -0
  403. package/dist/runtime/agentSpawningWiring.d.ts +32 -0
  404. package/dist/runtime/agentSpawningWiring.d.ts.map +1 -0
  405. package/dist/runtime/agentSpawningWiring.js +114 -0
  406. package/dist/runtime/agentSpawningWiring.js.map +1 -0
  407. package/dist/runtime/node.d.ts +7 -0
  408. package/dist/runtime/node.d.ts.map +1 -0
  409. package/dist/runtime/node.js +50 -0
  410. package/dist/runtime/node.js.map +1 -0
  411. package/dist/runtime/universal.d.ts +18 -0
  412. package/dist/runtime/universal.d.ts.map +1 -0
  413. package/dist/runtime/universal.js +21 -0
  414. package/dist/runtime/universal.js.map +1 -0
  415. package/dist/shell/liveStatus.d.ts +27 -0
  416. package/dist/shell/liveStatus.d.ts.map +1 -0
  417. package/dist/shell/liveStatus.js +53 -0
  418. package/dist/shell/liveStatus.js.map +1 -0
  419. package/dist/shell/systemPrompt.d.ts +12 -0
  420. package/dist/shell/systemPrompt.d.ts.map +1 -0
  421. package/dist/shell/systemPrompt.js +16 -0
  422. package/dist/shell/systemPrompt.js.map +1 -0
  423. package/dist/shell/toolPresentation.d.ts +54 -0
  424. package/dist/shell/toolPresentation.d.ts.map +1 -0
  425. package/dist/shell/toolPresentation.js +334 -0
  426. package/dist/shell/toolPresentation.js.map +1 -0
  427. package/dist/tools/bashTools.d.ts +11 -0
  428. package/dist/tools/bashTools.d.ts.map +1 -0
  429. package/dist/tools/bashTools.js +785 -0
  430. package/dist/tools/bashTools.js.map +1 -0
  431. package/dist/tools/diffUtils.d.ts +43 -0
  432. package/dist/tools/diffUtils.d.ts.map +1 -0
  433. package/dist/tools/diffUtils.js +607 -0
  434. package/dist/tools/diffUtils.js.map +1 -0
  435. package/dist/tools/editTools.d.ts +29 -0
  436. package/dist/tools/editTools.d.ts.map +1 -0
  437. package/dist/tools/editTools.js +792 -0
  438. package/dist/tools/editTools.js.map +1 -0
  439. package/dist/tools/fileChangeTracker.d.ts +47 -0
  440. package/dist/tools/fileChangeTracker.d.ts.map +1 -0
  441. package/dist/tools/fileChangeTracker.js +154 -0
  442. package/dist/tools/fileChangeTracker.js.map +1 -0
  443. package/dist/tools/fileReadTracker.d.ts +69 -0
  444. package/dist/tools/fileReadTracker.d.ts.map +1 -0
  445. package/dist/tools/fileReadTracker.js +213 -0
  446. package/dist/tools/fileReadTracker.js.map +1 -0
  447. package/dist/tools/fileTools.d.ts +3 -0
  448. package/dist/tools/fileTools.d.ts.map +1 -0
  449. package/dist/tools/fileTools.js +389 -0
  450. package/dist/tools/fileTools.js.map +1 -0
  451. package/dist/tools/grepTools.d.ts +3 -0
  452. package/dist/tools/grepTools.d.ts.map +1 -0
  453. package/dist/tools/grepTools.js +137 -0
  454. package/dist/tools/grepTools.js.map +1 -0
  455. package/dist/tools/hitlTools.d.ts +7 -0
  456. package/dist/tools/hitlTools.d.ts.map +1 -0
  457. package/dist/tools/hitlTools.js +185 -0
  458. package/dist/tools/hitlTools.js.map +1 -0
  459. package/dist/tools/memoryTools.d.ts +27 -0
  460. package/dist/tools/memoryTools.d.ts.map +1 -0
  461. package/dist/tools/memoryTools.js +197 -0
  462. package/dist/tools/memoryTools.js.map +1 -0
  463. package/dist/tools/notebookTools.d.ts +20 -0
  464. package/dist/tools/notebookTools.d.ts.map +1 -0
  465. package/dist/tools/notebookTools.js +140 -0
  466. package/dist/tools/notebookTools.js.map +1 -0
  467. package/dist/tools/searchTools.d.ts +12 -0
  468. package/dist/tools/searchTools.d.ts.map +1 -0
  469. package/dist/tools/searchTools.js +414 -0
  470. package/dist/tools/searchTools.js.map +1 -0
  471. package/dist/tools/skillTools.d.ts +24 -0
  472. package/dist/tools/skillTools.d.ts.map +1 -0
  473. package/dist/tools/skillTools.js +140 -0
  474. package/dist/tools/skillTools.js.map +1 -0
  475. package/dist/tools/todoTools.d.ts +23 -0
  476. package/dist/tools/todoTools.d.ts.map +1 -0
  477. package/dist/tools/todoTools.js +120 -0
  478. package/dist/tools/todoTools.js.map +1 -0
  479. package/dist/tools/webTools.d.ts +26 -0
  480. package/dist/tools/webTools.d.ts.map +1 -0
  481. package/dist/tools/webTools.js +467 -0
  482. package/dist/tools/webTools.js.map +1 -0
  483. package/dist/ui/ink/App.d.ts +53 -0
  484. package/dist/ui/ink/App.d.ts.map +1 -0
  485. package/dist/ui/ink/App.js +13 -0
  486. package/dist/ui/ink/App.js.map +1 -0
  487. package/dist/ui/ink/ChatStatic.d.ts +30 -0
  488. package/dist/ui/ink/ChatStatic.d.ts.map +1 -0
  489. package/dist/ui/ink/ChatStatic.js +83 -0
  490. package/dist/ui/ink/ChatStatic.js.map +1 -0
  491. package/dist/ui/ink/InkPromptController.d.ts +321 -0
  492. package/dist/ui/ink/InkPromptController.d.ts.map +1 -0
  493. package/dist/ui/ink/InkPromptController.js +667 -0
  494. package/dist/ui/ink/InkPromptController.js.map +1 -0
  495. package/dist/ui/ink/Menu.d.ts +21 -0
  496. package/dist/ui/ink/Menu.d.ts.map +1 -0
  497. package/dist/ui/ink/Menu.js +61 -0
  498. package/dist/ui/ink/Menu.js.map +1 -0
  499. package/dist/ui/ink/Prompt.d.ts +47 -0
  500. package/dist/ui/ink/Prompt.d.ts.map +1 -0
  501. package/dist/ui/ink/Prompt.js +571 -0
  502. package/dist/ui/ink/Prompt.js.map +1 -0
  503. package/dist/ui/ink/StatusLine.d.ts +35 -0
  504. package/dist/ui/ink/StatusLine.d.ts.map +1 -0
  505. package/dist/ui/ink/StatusLine.js +66 -0
  506. package/dist/ui/ink/StatusLine.js.map +1 -0
  507. package/dist/ui/ink/pasteBuffer.d.ts +44 -0
  508. package/dist/ui/ink/pasteBuffer.d.ts.map +1 -0
  509. package/dist/ui/ink/pasteBuffer.js +73 -0
  510. package/dist/ui/ink/pasteBuffer.js.map +1 -0
  511. package/dist/ui/theme.d.ts +351 -0
  512. package/dist/ui/theme.d.ts.map +1 -0
  513. package/dist/ui/theme.js +435 -0
  514. package/dist/ui/theme.js.map +1 -0
  515. package/dist/utils/analytics.d.ts +2 -0
  516. package/dist/utils/analytics.d.ts.map +1 -0
  517. package/dist/utils/analytics.js +51 -0
  518. package/dist/utils/analytics.js.map +1 -0
  519. package/dist/utils/asyncUtils.d.ts +95 -0
  520. package/dist/utils/asyncUtils.d.ts.map +1 -0
  521. package/dist/utils/asyncUtils.js +286 -0
  522. package/dist/utils/asyncUtils.js.map +1 -0
  523. package/dist/utils/debugLogger.d.ts +6 -0
  524. package/dist/utils/debugLogger.d.ts.map +1 -0
  525. package/dist/utils/debugLogger.js +39 -0
  526. package/dist/utils/debugLogger.js.map +1 -0
  527. package/dist/utils/errorUtils.d.ts +12 -0
  528. package/dist/utils/errorUtils.d.ts.map +1 -0
  529. package/dist/utils/errorUtils.js +83 -0
  530. package/dist/utils/errorUtils.js.map +1 -0
  531. package/dist/utils/frontmatter.d.ts +10 -0
  532. package/dist/utils/frontmatter.d.ts.map +1 -0
  533. package/dist/utils/frontmatter.js +78 -0
  534. package/dist/utils/frontmatter.js.map +1 -0
  535. package/dist/utils/packageInfo.d.ts +14 -0
  536. package/dist/utils/packageInfo.d.ts.map +1 -0
  537. package/dist/utils/packageInfo.js +45 -0
  538. package/dist/utils/packageInfo.js.map +1 -0
  539. package/dist/utils/planFormatter.d.ts +34 -0
  540. package/dist/utils/planFormatter.d.ts.map +1 -0
  541. package/dist/utils/planFormatter.js +141 -0
  542. package/dist/utils/planFormatter.js.map +1 -0
  543. package/dist/utils/securityUtils.d.ts +132 -0
  544. package/dist/utils/securityUtils.d.ts.map +1 -0
  545. package/dist/utils/securityUtils.js +324 -0
  546. package/dist/utils/securityUtils.js.map +1 -0
  547. package/dist/utils/statusReporter.d.ts +6 -0
  548. package/dist/utils/statusReporter.d.ts.map +1 -0
  549. package/dist/utils/statusReporter.js +26 -0
  550. package/dist/utils/statusReporter.js.map +1 -0
  551. package/dist/workspace.d.ts +8 -0
  552. package/dist/workspace.d.ts.map +1 -0
  553. package/dist/workspace.js +135 -0
  554. package/dist/workspace.js.map +1 -0
  555. package/dist/workspace.validator.d.ts +49 -0
  556. package/dist/workspace.validator.d.ts.map +1 -0
  557. package/dist/workspace.validator.js +215 -0
  558. package/dist/workspace.validator.js.map +1 -0
  559. package/package.json +116 -0
  560. package/scripts/postinstall.cjs +56 -0
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Provider Contract v1.0
3
+ *
4
+ * Stable interface for LLM provider integration.
5
+ */
6
+ export declare const PROVIDER_CONTRACT_VERSION = "1.0.0";
7
+ /**
8
+ * Provider configuration
9
+ */
10
+ export interface ProviderConfig {
11
+ provider: string;
12
+ model: string;
13
+ apiKey?: string;
14
+ baseURL?: string;
15
+ temperature?: number;
16
+ maxTokens?: number;
17
+ metadata?: Record<string, unknown>;
18
+ }
19
+ /**
20
+ * Conversation message structure
21
+ */
22
+ export type MessageRole = 'system' | 'user' | 'assistant' | 'tool';
23
+ export interface BaseMessage {
24
+ role: MessageRole;
25
+ content: string;
26
+ }
27
+ export interface SystemMessage extends BaseMessage {
28
+ role: 'system';
29
+ }
30
+ export interface UserMessage extends BaseMessage {
31
+ role: 'user';
32
+ }
33
+ export interface ToolCall {
34
+ id: string;
35
+ name: string;
36
+ arguments: Record<string, unknown>;
37
+ }
38
+ export interface AssistantMessage extends BaseMessage {
39
+ role: 'assistant';
40
+ toolCalls?: ToolCall[];
41
+ }
42
+ export interface ToolMessage extends BaseMessage {
43
+ role: 'tool';
44
+ name: string;
45
+ toolCallId: string;
46
+ }
47
+ export type Message = SystemMessage | UserMessage | AssistantMessage | ToolMessage;
48
+ /**
49
+ * Tool definition for providers
50
+ */
51
+ export interface ProviderToolDefinition {
52
+ name: string;
53
+ description: string;
54
+ parameters?: {
55
+ type: 'object';
56
+ properties?: Record<string, unknown>;
57
+ required?: string[];
58
+ [key: string]: unknown;
59
+ };
60
+ }
61
+ /**
62
+ * Provider response types
63
+ */
64
+ export interface ProviderUsage {
65
+ inputTokens?: number;
66
+ outputTokens?: number;
67
+ totalTokens?: number;
68
+ }
69
+ export interface ProviderMessageResponse {
70
+ type: 'message';
71
+ content: string;
72
+ usage?: ProviderUsage | null;
73
+ }
74
+ export interface ProviderToolCallsResponse {
75
+ type: 'tool_calls';
76
+ toolCalls: ToolCall[];
77
+ content?: string;
78
+ usage?: ProviderUsage | null;
79
+ }
80
+ export type ProviderResponse = ProviderMessageResponse | ProviderToolCallsResponse;
81
+ /**
82
+ * Streaming response
83
+ */
84
+ export interface StreamChunk {
85
+ type: 'content' | 'reasoning' | 'tool_call' | 'usage' | 'done';
86
+ content?: string;
87
+ toolCall?: Partial<ToolCall>;
88
+ usage?: ProviderUsage;
89
+ }
90
+ /**
91
+ * Provider interface
92
+ */
93
+ export interface ILLMProvider {
94
+ readonly id: string;
95
+ readonly model: string;
96
+ /**
97
+ * Generate a completion (non-streaming)
98
+ */
99
+ generate(messages: Message[], tools: ProviderToolDefinition[]): Promise<ProviderResponse>;
100
+ /**
101
+ * Generate a streaming completion
102
+ */
103
+ generateStream?(messages: Message[], tools: ProviderToolDefinition[]): AsyncIterableIterator<StreamChunk>;
104
+ /**
105
+ * Get provider capabilities
106
+ */
107
+ getCapabilities(): ProviderCapabilities;
108
+ }
109
+ /**
110
+ * Provider capabilities
111
+ */
112
+ export interface ProviderCapabilities {
113
+ streaming: boolean;
114
+ toolCalling: boolean;
115
+ vision: boolean;
116
+ functionCalling: boolean;
117
+ maxTokens: number;
118
+ supportedModalities: ('text' | 'image' | 'audio')[];
119
+ }
120
+ /**
121
+ * Provider factory
122
+ */
123
+ export type ProviderFactory = (config: ProviderConfig) => ILLMProvider;
124
+ /**
125
+ * Provider registry interface
126
+ */
127
+ export interface IProviderRegistry {
128
+ /**
129
+ * Register a provider factory
130
+ */
131
+ register(providerId: string, factory: ProviderFactory): void;
132
+ /**
133
+ * Unregister a provider
134
+ */
135
+ unregister(providerId: string): void;
136
+ /**
137
+ * Create a provider instance
138
+ */
139
+ create(config: ProviderConfig): ILLMProvider;
140
+ /**
141
+ * Check if provider is registered
142
+ */
143
+ has(providerId: string): boolean;
144
+ /**
145
+ * List all registered providers
146
+ */
147
+ list(): string[];
148
+ }
149
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/contracts/v1/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Provider Contract v1.0
3
+ *
4
+ * Stable interface for LLM provider integration.
5
+ */
6
+ export const PROVIDER_CONTRACT_VERSION = '1.0.0';
7
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/contracts/v1/provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Tool Contract v1.0
3
+ *
4
+ * Stable interface for tool registration and execution.
5
+ */
6
+ export declare const TOOL_CONTRACT_VERSION = "1.0.0";
7
+ /**
8
+ * JSON Schema type definitions
9
+ */
10
+ export interface JSONSchemaProperty {
11
+ type: 'string' | 'number' | 'boolean' | 'array' | 'object';
12
+ description?: string;
13
+ enum?: string[];
14
+ items?: JSONSchemaProperty;
15
+ properties?: Record<string, JSONSchemaProperty>;
16
+ }
17
+ export interface JSONSchemaObject {
18
+ type: 'object';
19
+ description?: string;
20
+ properties?: Record<string, JSONSchemaProperty>;
21
+ required?: string[];
22
+ additionalProperties?: boolean;
23
+ }
24
+ /**
25
+ * Tool definition
26
+ */
27
+ export interface IToolDefinition {
28
+ name: string;
29
+ description: string;
30
+ parameters?: JSONSchemaObject;
31
+ category?: string;
32
+ metadata?: Record<string, unknown>;
33
+ }
34
+ /**
35
+ * Tool execution request
36
+ */
37
+ export interface ToolExecutionRequest {
38
+ toolName: string;
39
+ executionId: string;
40
+ parameters: Record<string, unknown>;
41
+ context?: ToolExecutionContext;
42
+ }
43
+ /**
44
+ * Tool execution response
45
+ */
46
+ export interface ToolExecutionResponse {
47
+ executionId: string;
48
+ success: boolean;
49
+ result?: string;
50
+ error?: {
51
+ message: string;
52
+ code?: string;
53
+ details?: unknown;
54
+ };
55
+ metadata?: {
56
+ elapsedMs?: number;
57
+ cached?: boolean;
58
+ };
59
+ }
60
+ /**
61
+ * Tool execution context
62
+ */
63
+ export interface ToolExecutionContext {
64
+ workingDirectory?: string;
65
+ environment?: Record<string, string>;
66
+ user?: {
67
+ id: string;
68
+ permissions?: string[];
69
+ };
70
+ }
71
+ /**
72
+ * Tool suite definition
73
+ */
74
+ export interface IToolSuite {
75
+ id: string;
76
+ name: string;
77
+ description?: string;
78
+ version?: string;
79
+ tools: IToolDefinition[];
80
+ metadata?: Record<string, unknown>;
81
+ }
82
+ /**
83
+ * Tool handler function
84
+ */
85
+ export type ToolHandler = (parameters: Record<string, unknown>, context?: ToolExecutionContext) => Promise<string> | string;
86
+ /**
87
+ * Tool executor interface
88
+ */
89
+ export interface IToolExecutor {
90
+ /**
91
+ * Execute a tool
92
+ */
93
+ execute(request: ToolExecutionRequest): Promise<ToolExecutionResponse>;
94
+ /**
95
+ * Check if a tool is available
96
+ */
97
+ hasToolAvailable(toolName: string): boolean;
98
+ /**
99
+ * List all available tools
100
+ */
101
+ listTools(): IToolDefinition[];
102
+ /**
103
+ * Get tool definition
104
+ */
105
+ getToolDefinition(toolName: string): IToolDefinition | null;
106
+ }
107
+ /**
108
+ * Tool registry interface
109
+ */
110
+ export interface IToolRegistry {
111
+ /**
112
+ * Register a tool suite
113
+ */
114
+ registerSuite(suite: IToolSuite): void;
115
+ /**
116
+ * Unregister a tool suite
117
+ */
118
+ unregisterSuite(suiteId: string): void;
119
+ /**
120
+ * Register a single tool
121
+ */
122
+ registerTool(suiteId: string, definition: IToolDefinition, handler: ToolHandler): void;
123
+ /**
124
+ * Unregister a single tool
125
+ */
126
+ unregisterTool(toolName: string): void;
127
+ /**
128
+ * Get all registered suites
129
+ */
130
+ getSuites(): IToolSuite[];
131
+ /**
132
+ * Get a specific suite
133
+ */
134
+ getSuite(suiteId: string): IToolSuite | null;
135
+ }
136
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/contracts/v1/tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tool Contract v1.0
3
+ *
4
+ * Stable interface for tool registration and execution.
5
+ */
6
+ export const TOOL_CONTRACT_VERSION = '1.0.0';
7
+ //# sourceMappingURL=tool.js.map
@@ -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 : 'trenchwork-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,22 @@
1
+ /**
2
+ * Adversarial auto-correction.
3
+ *
4
+ * The always-on adversarial reviewer (agent.ts maybeAdversarialReview) was
5
+ * advisory-only: it refuted a draft, appended a "⚠ Adversarial review:" caveat,
6
+ * and returned — the critic spoke and was ignored. This closes the loop: a
7
+ * FAILED review is signalled to the shell, whose auto-continue loop re-runs the
8
+ * FULL tool-executing agent with a correction prompt (so it edits + re-verifies,
9
+ * not just re-describes), bounded by the turn governor + a per-request cap so it
10
+ * can't loop forever.
11
+ *
12
+ * Pure → unit-testable.
13
+ */
14
+ export declare const MAX_ADVERSARIAL_CORRECTIONS = 2;
15
+ /**
16
+ * Build the correction prompt from reviewer findings. Prefixed IMPORTANT: so the
17
+ * auto-continue loop treats it as a continuation (not a fresh user request that
18
+ * would reset the governor), and it instructs the agent to FIX + re-verify
19
+ * rather than restate the problem.
20
+ */
21
+ export declare function buildAdversarialCorrectionPrompt(findings: string): string;
22
+ //# sourceMappingURL=adversarialCorrection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarialCorrection.d.ts","sourceRoot":"","sources":["../../src/core/adversarialCorrection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Adversarial auto-correction.
3
+ *
4
+ * The always-on adversarial reviewer (agent.ts maybeAdversarialReview) was
5
+ * advisory-only: it refuted a draft, appended a "⚠ Adversarial review:" caveat,
6
+ * and returned — the critic spoke and was ignored. This closes the loop: a
7
+ * FAILED review is signalled to the shell, whose auto-continue loop re-runs the
8
+ * FULL tool-executing agent with a correction prompt (so it edits + re-verifies,
9
+ * not just re-describes), bounded by the turn governor + a per-request cap so it
10
+ * can't loop forever.
11
+ *
12
+ * Pure → unit-testable.
13
+ */
14
+ export const MAX_ADVERSARIAL_CORRECTIONS = 2;
15
+ /**
16
+ * Build the correction prompt from reviewer findings. Prefixed IMPORTANT: so the
17
+ * auto-continue loop treats it as a continuation (not a fresh user request that
18
+ * would reset the governor), and it instructs the agent to FIX + re-verify
19
+ * rather than restate the problem.
20
+ */
21
+ export function buildAdversarialCorrectionPrompt(findings) {
22
+ const f = (findings ?? '').trim();
23
+ return `IMPORTANT: Do NOT create docs/markdown. An adversarial review of your last answer found problems:\n${f}\n\nFix them now — edit the actual file(s), then re-run the relevant test/build/command to confirm. Do not just describe the fix or restate the issue; make the change and verify it.`;
24
+ }
25
+ //# sourceMappingURL=adversarialCorrection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adversarialCorrection.js","sourceRoot":"","sources":["../../src/core/adversarialCorrection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,UAAU,gCAAgC,CAAC,QAAgB;IAC/D,MAAM,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,OAAO,sGAAsG,CAAC,uLAAuL,CAAC;AACxS,CAAC"}