@cleanslate/sdk 0.1.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 (581) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +48 -0
  3. package/README.md +103 -0
  4. package/VENDOR.md +60 -0
  5. package/dist/agent/cleanSlateAgentExecutionPhase.d.ts +55 -0
  6. package/dist/agent/cleanSlateAgentExecutionPhase.d.ts.map +1 -0
  7. package/dist/agent/cleanSlateAgentExecutionPhase.js +474 -0
  8. package/dist/agent/cleanSlateAgentExecutionPhase.js.map +1 -0
  9. package/dist/agent/cleanSlateAgentExecutionSupport.d.ts +22 -0
  10. package/dist/agent/cleanSlateAgentExecutionSupport.d.ts.map +1 -0
  11. package/dist/agent/cleanSlateAgentExecutionSupport.js +205 -0
  12. package/dist/agent/cleanSlateAgentExecutionSupport.js.map +1 -0
  13. package/dist/agent/cleanSlateAgentParsing.d.ts +21 -0
  14. package/dist/agent/cleanSlateAgentParsing.d.ts.map +1 -0
  15. package/dist/agent/cleanSlateAgentParsing.js +106 -0
  16. package/dist/agent/cleanSlateAgentParsing.js.map +1 -0
  17. package/dist/agent/cleanSlateAgentSession.d.ts +44 -0
  18. package/dist/agent/cleanSlateAgentSession.d.ts.map +1 -0
  19. package/dist/agent/cleanSlateAgentSession.js +205 -0
  20. package/dist/agent/cleanSlateAgentSession.js.map +1 -0
  21. package/dist/agent/cleanSlateAgentTypes.d.ts +91 -0
  22. package/dist/agent/cleanSlateAgentTypes.d.ts.map +1 -0
  23. package/dist/agent/cleanSlateAgentTypes.js +27 -0
  24. package/dist/agent/cleanSlateAgentTypes.js.map +1 -0
  25. package/dist/agent/cleanSlateCommandPolicy.d.ts +12 -0
  26. package/dist/agent/cleanSlateCommandPolicy.d.ts.map +1 -0
  27. package/dist/agent/cleanSlateCommandPolicy.js +30 -0
  28. package/dist/agent/cleanSlateCommandPolicy.js.map +1 -0
  29. package/dist/agent/cleanSlateContextBudgetManager.d.ts +82 -0
  30. package/dist/agent/cleanSlateContextBudgetManager.d.ts.map +1 -0
  31. package/dist/agent/cleanSlateContextBudgetManager.js +419 -0
  32. package/dist/agent/cleanSlateContextBudgetManager.js.map +1 -0
  33. package/dist/agent/cleanSlateDomainProfile.d.ts +71 -0
  34. package/dist/agent/cleanSlateDomainProfile.d.ts.map +1 -0
  35. package/dist/agent/cleanSlateDomainProfile.js +124 -0
  36. package/dist/agent/cleanSlateDomainProfile.js.map +1 -0
  37. package/dist/agent/cleanSlateExecutionBudget.d.ts +19 -0
  38. package/dist/agent/cleanSlateExecutionBudget.d.ts.map +1 -0
  39. package/dist/agent/cleanSlateExecutionBudget.js +28 -0
  40. package/dist/agent/cleanSlateExecutionBudget.js.map +1 -0
  41. package/dist/agent/cleanSlateExecutionEditPolicy.d.ts +15 -0
  42. package/dist/agent/cleanSlateExecutionEditPolicy.d.ts.map +1 -0
  43. package/dist/agent/cleanSlateExecutionEditPolicy.js +148 -0
  44. package/dist/agent/cleanSlateExecutionEditPolicy.js.map +1 -0
  45. package/dist/agent/cleanSlateExecutionEvidenceLedger.d.ts +23 -0
  46. package/dist/agent/cleanSlateExecutionEvidenceLedger.d.ts.map +1 -0
  47. package/dist/agent/cleanSlateExecutionEvidenceLedger.js +121 -0
  48. package/dist/agent/cleanSlateExecutionEvidenceLedger.js.map +1 -0
  49. package/dist/agent/cleanSlateExecutionLoopPrompts.d.ts +5 -0
  50. package/dist/agent/cleanSlateExecutionLoopPrompts.d.ts.map +1 -0
  51. package/dist/agent/cleanSlateExecutionLoopPrompts.js +41 -0
  52. package/dist/agent/cleanSlateExecutionLoopPrompts.js.map +1 -0
  53. package/dist/agent/cleanSlateExecutionQuery.d.ts +162 -0
  54. package/dist/agent/cleanSlateExecutionQuery.d.ts.map +1 -0
  55. package/dist/agent/cleanSlateExecutionQuery.js +1448 -0
  56. package/dist/agent/cleanSlateExecutionQuery.js.map +1 -0
  57. package/dist/agent/cleanSlateFilesModifiedService.d.ts +96 -0
  58. package/dist/agent/cleanSlateFilesModifiedService.d.ts.map +1 -0
  59. package/dist/agent/cleanSlateFilesModifiedService.js +581 -0
  60. package/dist/agent/cleanSlateFilesModifiedService.js.map +1 -0
  61. package/dist/agent/cleanSlateNativeToolTranscript.d.ts +22 -0
  62. package/dist/agent/cleanSlateNativeToolTranscript.d.ts.map +1 -0
  63. package/dist/agent/cleanSlateNativeToolTranscript.js +77 -0
  64. package/dist/agent/cleanSlateNativeToolTranscript.js.map +1 -0
  65. package/dist/agent/cleanSlatePrompts.d.ts +30 -0
  66. package/dist/agent/cleanSlatePrompts.d.ts.map +1 -0
  67. package/dist/agent/cleanSlatePrompts.js +65 -0
  68. package/dist/agent/cleanSlatePrompts.js.map +1 -0
  69. package/dist/agent/cleanSlateQueryRunner.d.ts +56 -0
  70. package/dist/agent/cleanSlateQueryRunner.d.ts.map +1 -0
  71. package/dist/agent/cleanSlateQueryRunner.js +69 -0
  72. package/dist/agent/cleanSlateQueryRunner.js.map +1 -0
  73. package/dist/agent/cleanSlateRuntimePromptBuilder.d.ts +30 -0
  74. package/dist/agent/cleanSlateRuntimePromptBuilder.d.ts.map +1 -0
  75. package/dist/agent/cleanSlateRuntimePromptBuilder.js +99 -0
  76. package/dist/agent/cleanSlateRuntimePromptBuilder.js.map +1 -0
  77. package/dist/agent/cleanSlateStreamingToolExecutor.d.ts +55 -0
  78. package/dist/agent/cleanSlateStreamingToolExecutor.d.ts.map +1 -0
  79. package/dist/agent/cleanSlateStreamingToolExecutor.js +214 -0
  80. package/dist/agent/cleanSlateStreamingToolExecutor.js.map +1 -0
  81. package/dist/agent/cleanSlateToolCallLedger.d.ts +32 -0
  82. package/dist/agent/cleanSlateToolCallLedger.d.ts.map +1 -0
  83. package/dist/agent/cleanSlateToolCallLedger.js +164 -0
  84. package/dist/agent/cleanSlateToolCallLedger.js.map +1 -0
  85. package/dist/agent/cleanSlateToolResultPromptSerializer.d.ts +9 -0
  86. package/dist/agent/cleanSlateToolResultPromptSerializer.d.ts.map +1 -0
  87. package/dist/agent/cleanSlateToolResultPromptSerializer.js +184 -0
  88. package/dist/agent/cleanSlateToolResultPromptSerializer.js.map +1 -0
  89. package/dist/composer/commands/slashCommands.d.ts +8 -0
  90. package/dist/composer/commands/slashCommands.d.ts.map +1 -0
  91. package/dist/composer/commands/slashCommands.js +46 -0
  92. package/dist/composer/commands/slashCommands.js.map +1 -0
  93. package/dist/composer/instructions/baseInstructions.d.ts +3 -0
  94. package/dist/composer/instructions/baseInstructions.d.ts.map +1 -0
  95. package/dist/composer/instructions/baseInstructions.js +35 -0
  96. package/dist/composer/instructions/baseInstructions.js.map +1 -0
  97. package/dist/composer/instructions/runtimeInstructions.d.ts +11 -0
  98. package/dist/composer/instructions/runtimeInstructions.d.ts.map +1 -0
  99. package/dist/composer/instructions/runtimeInstructions.js +31 -0
  100. package/dist/composer/instructions/runtimeInstructions.js.map +1 -0
  101. package/dist/composer/kernel/coreKernel.d.ts +3 -0
  102. package/dist/composer/kernel/coreKernel.d.ts.map +1 -0
  103. package/dist/composer/kernel/coreKernel.js +11 -0
  104. package/dist/composer/kernel/coreKernel.js.map +1 -0
  105. package/dist/composer/kernel/editingRules.d.ts +3 -0
  106. package/dist/composer/kernel/editingRules.d.ts.map +1 -0
  107. package/dist/composer/kernel/editingRules.js +24 -0
  108. package/dist/composer/kernel/editingRules.js.map +1 -0
  109. package/dist/composer/kernel/toolProtocols.d.ts +2 -0
  110. package/dist/composer/kernel/toolProtocols.d.ts.map +1 -0
  111. package/dist/composer/kernel/toolProtocols.js +32 -0
  112. package/dist/composer/kernel/toolProtocols.js.map +1 -0
  113. package/dist/composer/modes/execution.mode.d.ts +2 -0
  114. package/dist/composer/modes/execution.mode.d.ts.map +1 -0
  115. package/dist/composer/modes/execution.mode.js +21 -0
  116. package/dist/composer/modes/execution.mode.js.map +1 -0
  117. package/dist/composer/modes/planning.mode.d.ts +2 -0
  118. package/dist/composer/modes/planning.mode.d.ts.map +1 -0
  119. package/dist/composer/modes/planning.mode.js +23 -0
  120. package/dist/composer/modes/planning.mode.js.map +1 -0
  121. package/dist/composer/promptComposer.d.ts +22 -0
  122. package/dist/composer/promptComposer.d.ts.map +1 -0
  123. package/dist/composer/promptComposer.js +62 -0
  124. package/dist/composer/promptComposer.js.map +1 -0
  125. package/dist/composer/registry/agentSchema.d.ts +16 -0
  126. package/dist/composer/registry/agentSchema.d.ts.map +1 -0
  127. package/dist/composer/registry/agentSchema.js +6 -0
  128. package/dist/composer/registry/agentSchema.js.map +1 -0
  129. package/dist/core/arrays.d.ts +311 -0
  130. package/dist/core/arrays.d.ts.map +1 -0
  131. package/dist/core/arrays.js +811 -0
  132. package/dist/core/arrays.js.map +1 -0
  133. package/dist/core/arraysFind.d.ts +72 -0
  134. package/dist/core/arraysFind.d.ts.map +1 -0
  135. package/dist/core/arraysFind.js +200 -0
  136. package/dist/core/arraysFind.js.map +1 -0
  137. package/dist/core/assert.d.ts +36 -0
  138. package/dist/core/assert.d.ts.map +1 -0
  139. package/dist/core/assert.js +84 -0
  140. package/dist/core/assert.js.map +1 -0
  141. package/dist/core/async.d.ts +11 -0
  142. package/dist/core/async.d.ts.map +1 -0
  143. package/dist/core/async.js +6 -0
  144. package/dist/core/async.js.map +1 -0
  145. package/dist/core/buffer.d.ts +23 -0
  146. package/dist/core/buffer.d.ts.map +1 -0
  147. package/dist/core/buffer.js +40 -0
  148. package/dist/core/buffer.js.map +1 -0
  149. package/dist/core/cancellation.d.ts +52 -0
  150. package/dist/core/cancellation.d.ts.map +1 -0
  151. package/dist/core/cancellation.js +169 -0
  152. package/dist/core/cancellation.js.map +1 -0
  153. package/dist/core/charCode.d.ts +428 -0
  154. package/dist/core/charCode.d.ts.map +1 -0
  155. package/dist/core/charCode.js +439 -0
  156. package/dist/core/charCode.js.map +1 -0
  157. package/dist/core/collections.d.ts +49 -0
  158. package/dist/core/collections.d.ts.map +1 -0
  159. package/dist/core/collections.js +132 -0
  160. package/dist/core/collections.js.map +1 -0
  161. package/dist/core/diff/diff.d.ts +151 -0
  162. package/dist/core/diff/diff.d.ts.map +1 -0
  163. package/dist/core/diff/diff.js +1076 -0
  164. package/dist/core/diff/diff.js.map +1 -0
  165. package/dist/core/diff/diffChange.d.ts +39 -0
  166. package/dist/core/diff/diffChange.d.ts.map +1 -0
  167. package/dist/core/diff/diffChange.js +37 -0
  168. package/dist/core/diff/diffChange.js.map +1 -0
  169. package/dist/core/errors.d.ts +114 -0
  170. package/dist/core/errors.d.ts.map +1 -0
  171. package/dist/core/errors.js +258 -0
  172. package/dist/core/errors.js.map +1 -0
  173. package/dist/core/event.d.ts +595 -0
  174. package/dist/core/event.d.ts.map +1 -0
  175. package/dist/core/event.js +1479 -0
  176. package/dist/core/event.js.map +1 -0
  177. package/dist/core/functional.d.ts +5 -0
  178. package/dist/core/functional.d.ts.map +1 -0
  179. package/dist/core/functional.js +35 -0
  180. package/dist/core/functional.js.map +1 -0
  181. package/dist/core/hash.d.ts +15 -0
  182. package/dist/core/hash.d.ts.map +1 -0
  183. package/dist/core/hash.js +27 -0
  184. package/dist/core/hash.js.map +1 -0
  185. package/dist/core/iterator.d.ts +33 -0
  186. package/dist/core/iterator.d.ts.map +1 -0
  187. package/dist/core/iterator.js +188 -0
  188. package/dist/core/iterator.js.map +1 -0
  189. package/dist/core/lifecycle.d.ts +313 -0
  190. package/dist/core/lifecycle.d.ts.map +1 -0
  191. package/dist/core/lifecycle.js +789 -0
  192. package/dist/core/lifecycle.js.map +1 -0
  193. package/dist/core/linkedList.d.ts +17 -0
  194. package/dist/core/linkedList.d.ts.map +1 -0
  195. package/dist/core/linkedList.js +138 -0
  196. package/dist/core/linkedList.js.map +1 -0
  197. package/dist/core/map.d.ts +175 -0
  198. package/dist/core/map.d.ts.map +1 -0
  199. package/dist/core/map.js +796 -0
  200. package/dist/core/map.js.map +1 -0
  201. package/dist/core/marshallingIds.d.ts +29 -0
  202. package/dist/core/marshallingIds.d.ts.map +1 -0
  203. package/dist/core/marshallingIds.js +38 -0
  204. package/dist/core/marshallingIds.js.map +1 -0
  205. package/dist/core/observable.d.ts +28 -0
  206. package/dist/core/observable.d.ts.map +1 -0
  207. package/dist/core/observable.js +6 -0
  208. package/dist/core/observable.js.map +1 -0
  209. package/dist/core/platform.d.ts +4 -0
  210. package/dist/core/platform.d.ts.map +1 -0
  211. package/dist/core/platform.js +17 -0
  212. package/dist/core/platform.js.map +1 -0
  213. package/dist/core/position.d.ts +91 -0
  214. package/dist/core/position.d.ts.map +1 -0
  215. package/dist/core/position.js +145 -0
  216. package/dist/core/position.js.map +1 -0
  217. package/dist/core/range.d.ts +198 -0
  218. package/dist/core/range.d.ts.map +1 -0
  219. package/dist/core/range.js +426 -0
  220. package/dist/core/range.js.map +1 -0
  221. package/dist/core/resources.d.ts +10 -0
  222. package/dist/core/resources.d.ts.map +1 -0
  223. package/dist/core/resources.js +126 -0
  224. package/dist/core/resources.js.map +1 -0
  225. package/dist/core/sequence.d.ts +20 -0
  226. package/dist/core/sequence.d.ts.map +1 -0
  227. package/dist/core/sequence.js +21 -0
  228. package/dist/core/sequence.js.map +1 -0
  229. package/dist/core/stopwatch.d.ts +11 -0
  230. package/dist/core/stopwatch.d.ts.map +1 -0
  231. package/dist/core/stopwatch.js +33 -0
  232. package/dist/core/stopwatch.js.map +1 -0
  233. package/dist/core/symbols.d.ts +5 -0
  234. package/dist/core/symbols.d.ts.map +1 -0
  235. package/dist/core/symbols.js +13 -0
  236. package/dist/core/symbols.js.map +1 -0
  237. package/dist/core/types.d.ts +229 -0
  238. package/dist/core/types.d.ts.map +1 -0
  239. package/dist/core/types.js +278 -0
  240. package/dist/core/types.js.map +1 -0
  241. package/dist/core/uint.d.ts +32 -0
  242. package/dist/core/uint.d.ts.map +1 -0
  243. package/dist/core/uint.js +57 -0
  244. package/dist/core/uint.js.map +1 -0
  245. package/dist/core/uri.d.ts +172 -0
  246. package/dist/core/uri.d.ts.map +1 -0
  247. package/dist/core/uri.js +623 -0
  248. package/dist/core/uri.js.map +1 -0
  249. package/dist/host/browserAutomation.d.ts +276 -0
  250. package/dist/host/browserAutomation.d.ts.map +1 -0
  251. package/dist/host/browserAutomation.js +6 -0
  252. package/dist/host/browserAutomation.js.map +1 -0
  253. package/dist/host/diagnostics.d.ts +68 -0
  254. package/dist/host/diagnostics.d.ts.map +1 -0
  255. package/dist/host/diagnostics.js +41 -0
  256. package/dist/host/diagnostics.js.map +1 -0
  257. package/dist/host/files.d.ts +70 -0
  258. package/dist/host/files.d.ts.map +1 -0
  259. package/dist/host/files.js +54 -0
  260. package/dist/host/files.js.map +1 -0
  261. package/dist/host/services.d.ts +106 -0
  262. package/dist/host/services.d.ts.map +1 -0
  263. package/dist/host/services.js +6 -0
  264. package/dist/host/services.js.map +1 -0
  265. package/dist/host/symbols.d.ts +45 -0
  266. package/dist/host/symbols.d.ts.map +1 -0
  267. package/dist/host/symbols.js +43 -0
  268. package/dist/host/symbols.js.map +1 -0
  269. package/dist/host/textModel.d.ts +83 -0
  270. package/dist/host/textModel.d.ts.map +1 -0
  271. package/dist/host/textModel.js +6 -0
  272. package/dist/host/textModel.js.map +1 -0
  273. package/dist/host/workspace.d.ts +123 -0
  274. package/dist/host/workspace.d.ts.map +1 -0
  275. package/dist/host/workspace.js +32 -0
  276. package/dist/host/workspace.js.map +1 -0
  277. package/dist/index.d.ts +40 -0
  278. package/dist/index.d.ts.map +1 -0
  279. package/dist/index.js +26 -0
  280. package/dist/index.js.map +1 -0
  281. package/dist/node/cleanSlateAnthropicMessageAdapter.d.ts +12 -0
  282. package/dist/node/cleanSlateAnthropicMessageAdapter.d.ts.map +1 -0
  283. package/dist/node/cleanSlateAnthropicMessageAdapter.js +130 -0
  284. package/dist/node/cleanSlateAnthropicMessageAdapter.js.map +1 -0
  285. package/dist/node/cleanSlateHeadlessRunner.d.ts +63 -0
  286. package/dist/node/cleanSlateHeadlessRunner.d.ts.map +1 -0
  287. package/dist/node/cleanSlateHeadlessRunner.js +84 -0
  288. package/dist/node/cleanSlateHeadlessRunner.js.map +1 -0
  289. package/dist/node/cleanSlateNodeAgentRuntime.d.ts +94 -0
  290. package/dist/node/cleanSlateNodeAgentRuntime.d.ts.map +1 -0
  291. package/dist/node/cleanSlateNodeAgentRuntime.js +339 -0
  292. package/dist/node/cleanSlateNodeAgentRuntime.js.map +1 -0
  293. package/dist/node/cleanSlateNodeBrowserAutomation.d.ts +279 -0
  294. package/dist/node/cleanSlateNodeBrowserAutomation.d.ts.map +1 -0
  295. package/dist/node/cleanSlateNodeBrowserAutomation.js +470 -0
  296. package/dist/node/cleanSlateNodeBrowserAutomation.js.map +1 -0
  297. package/dist/node/cleanSlateNodeCommandService.d.ts +40 -0
  298. package/dist/node/cleanSlateNodeCommandService.d.ts.map +1 -0
  299. package/dist/node/cleanSlateNodeCommandService.js +435 -0
  300. package/dist/node/cleanSlateNodeCommandService.js.map +1 -0
  301. package/dist/node/cleanSlateNodeFileServices.d.ts +68 -0
  302. package/dist/node/cleanSlateNodeFileServices.d.ts.map +1 -0
  303. package/dist/node/cleanSlateNodeFileServices.js +138 -0
  304. package/dist/node/cleanSlateNodeFileServices.js.map +1 -0
  305. package/dist/node/cleanSlateNodeIndexService.d.ts +17 -0
  306. package/dist/node/cleanSlateNodeIndexService.d.ts.map +1 -0
  307. package/dist/node/cleanSlateNodeIndexService.js +128 -0
  308. package/dist/node/cleanSlateNodeIndexService.js.map +1 -0
  309. package/dist/node/cleanSlateNodeLanguageCommands.d.ts +11 -0
  310. package/dist/node/cleanSlateNodeLanguageCommands.d.ts.map +1 -0
  311. package/dist/node/cleanSlateNodeLanguageCommands.js +146 -0
  312. package/dist/node/cleanSlateNodeLanguageCommands.js.map +1 -0
  313. package/dist/node/cleanSlateNodeMainService.d.ts +87 -0
  314. package/dist/node/cleanSlateNodeMainService.d.ts.map +1 -0
  315. package/dist/node/cleanSlateNodeMainService.js +1304 -0
  316. package/dist/node/cleanSlateNodeMainService.js.map +1 -0
  317. package/dist/node/cleanSlateNodeMcpClient.d.ts +20 -0
  318. package/dist/node/cleanSlateNodeMcpClient.d.ts.map +1 -0
  319. package/dist/node/cleanSlateNodeMcpClient.js +184 -0
  320. package/dist/node/cleanSlateNodeMcpClient.js.map +1 -0
  321. package/dist/node/cleanSlateNodeSearchService.d.ts +14 -0
  322. package/dist/node/cleanSlateNodeSearchService.d.ts.map +1 -0
  323. package/dist/node/cleanSlateNodeSearchService.js +180 -0
  324. package/dist/node/cleanSlateNodeSearchService.js.map +1 -0
  325. package/dist/node/cleanSlateNodeTextModel.d.ts +56 -0
  326. package/dist/node/cleanSlateNodeTextModel.d.ts.map +1 -0
  327. package/dist/node/cleanSlateNodeTextModel.js +127 -0
  328. package/dist/node/cleanSlateNodeTextModel.js.map +1 -0
  329. package/dist/node/cleanSlateNodeToolContext.d.ts +50 -0
  330. package/dist/node/cleanSlateNodeToolContext.d.ts.map +1 -0
  331. package/dist/node/cleanSlateNodeToolContext.js +134 -0
  332. package/dist/node/cleanSlateNodeToolContext.js.map +1 -0
  333. package/dist/node/cleanSlateNodeWebRetrieval.d.ts +20 -0
  334. package/dist/node/cleanSlateNodeWebRetrieval.d.ts.map +1 -0
  335. package/dist/node/cleanSlateNodeWebRetrieval.js +379 -0
  336. package/dist/node/cleanSlateNodeWebRetrieval.js.map +1 -0
  337. package/dist/node/cleanSlateOpenAIMessageAdapter.d.ts +8 -0
  338. package/dist/node/cleanSlateOpenAIMessageAdapter.d.ts.map +1 -0
  339. package/dist/node/cleanSlateOpenAIMessageAdapter.js +111 -0
  340. package/dist/node/cleanSlateOpenAIMessageAdapter.js.map +1 -0
  341. package/dist/node/cleanSlateProviderSchemaNormalizer.d.ts +18 -0
  342. package/dist/node/cleanSlateProviderSchemaNormalizer.d.ts.map +1 -0
  343. package/dist/node/cleanSlateProviderSchemaNormalizer.js +175 -0
  344. package/dist/node/cleanSlateProviderSchemaNormalizer.js.map +1 -0
  345. package/dist/node/index.d.ts +25 -0
  346. package/dist/node/index.d.ts.map +1 -0
  347. package/dist/node/index.js +28 -0
  348. package/dist/node/index.js.map +1 -0
  349. package/dist/protocol/cleanSlateAI.d.ts +964 -0
  350. package/dist/protocol/cleanSlateAI.d.ts.map +1 -0
  351. package/dist/protocol/cleanSlateAI.js +35 -0
  352. package/dist/protocol/cleanSlateAI.js.map +1 -0
  353. package/dist/protocol/cleanSlateModelCapabilities.d.ts +86 -0
  354. package/dist/protocol/cleanSlateModelCapabilities.d.ts.map +1 -0
  355. package/dist/protocol/cleanSlateModelCapabilities.js +1104 -0
  356. package/dist/protocol/cleanSlateModelCapabilities.js.map +1 -0
  357. package/dist/protocol/cleanSlateProviderMessageTransforms.d.ts +11 -0
  358. package/dist/protocol/cleanSlateProviderMessageTransforms.d.ts.map +1 -0
  359. package/dist/protocol/cleanSlateProviderMessageTransforms.js +178 -0
  360. package/dist/protocol/cleanSlateProviderMessageTransforms.js.map +1 -0
  361. package/dist/protocol/cleanSlateService.d.ts +68 -0
  362. package/dist/protocol/cleanSlateService.d.ts.map +1 -0
  363. package/dist/protocol/cleanSlateService.js +1149 -0
  364. package/dist/protocol/cleanSlateService.js.map +1 -0
  365. package/dist/services/cleanSlateCancellation.d.ts +7 -0
  366. package/dist/services/cleanSlateCancellation.d.ts.map +1 -0
  367. package/dist/services/cleanSlateCancellation.js +56 -0
  368. package/dist/services/cleanSlateCancellation.js.map +1 -0
  369. package/dist/services/cleanSlateCommandExecutionService.d.ts +25 -0
  370. package/dist/services/cleanSlateCommandExecutionService.d.ts.map +1 -0
  371. package/dist/services/cleanSlateCommandExecutionService.js +31 -0
  372. package/dist/services/cleanSlateCommandExecutionService.js.map +1 -0
  373. package/dist/services/cleanSlateDiffService.d.ts +62 -0
  374. package/dist/services/cleanSlateDiffService.d.ts.map +1 -0
  375. package/dist/services/cleanSlateDiffService.js +428 -0
  376. package/dist/services/cleanSlateDiffService.js.map +1 -0
  377. package/dist/services/cleanSlateEditMatchValidator.d.ts +63 -0
  378. package/dist/services/cleanSlateEditMatchValidator.d.ts.map +1 -0
  379. package/dist/services/cleanSlateEditMatchValidator.js +341 -0
  380. package/dist/services/cleanSlateEditMatchValidator.js.map +1 -0
  381. package/dist/services/cleanSlateEditService.d.ts +155 -0
  382. package/dist/services/cleanSlateEditService.d.ts.map +1 -0
  383. package/dist/services/cleanSlateEditService.js +848 -0
  384. package/dist/services/cleanSlateEditService.js.map +1 -0
  385. package/dist/services/cleanSlateFileHistory.d.ts +56 -0
  386. package/dist/services/cleanSlateFileHistory.d.ts.map +1 -0
  387. package/dist/services/cleanSlateFileHistory.js +157 -0
  388. package/dist/services/cleanSlateFileHistory.js.map +1 -0
  389. package/dist/services/cleanSlateTaskEvidenceCodec.d.ts +15 -0
  390. package/dist/services/cleanSlateTaskEvidenceCodec.d.ts.map +1 -0
  391. package/dist/services/cleanSlateTaskEvidenceCodec.js +151 -0
  392. package/dist/services/cleanSlateTaskEvidenceCodec.js.map +1 -0
  393. package/dist/services/cleanSlateTaskSessionService.d.ts +258 -0
  394. package/dist/services/cleanSlateTaskSessionService.d.ts.map +1 -0
  395. package/dist/services/cleanSlateTaskSessionService.js +1079 -0
  396. package/dist/services/cleanSlateTaskSessionService.js.map +1 -0
  397. package/dist/services/cleanSlateTaskState.d.ts +32 -0
  398. package/dist/services/cleanSlateTaskState.d.ts.map +1 -0
  399. package/dist/services/cleanSlateTaskState.js +40 -0
  400. package/dist/services/cleanSlateTaskState.js.map +1 -0
  401. package/dist/services/cleanSlateThreadService.d.ts +64 -0
  402. package/dist/services/cleanSlateThreadService.d.ts.map +1 -0
  403. package/dist/services/cleanSlateThreadService.js +188 -0
  404. package/dist/services/cleanSlateThreadService.js.map +1 -0
  405. package/dist/services/cleanSlateTools.d.ts +29 -0
  406. package/dist/services/cleanSlateTools.d.ts.map +1 -0
  407. package/dist/services/cleanSlateTools.js +38 -0
  408. package/dist/services/cleanSlateTools.js.map +1 -0
  409. package/dist/services/cleanSlateVerificationTargetTracker.d.ts +23 -0
  410. package/dist/services/cleanSlateVerificationTargetTracker.d.ts.map +1 -0
  411. package/dist/services/cleanSlateVerificationTargetTracker.js +214 -0
  412. package/dist/services/cleanSlateVerificationTargetTracker.js.map +1 -0
  413. package/dist/skills/cleanSlateSkillCatalog.d.ts +29 -0
  414. package/dist/skills/cleanSlateSkillCatalog.d.ts.map +1 -0
  415. package/dist/skills/cleanSlateSkillCatalog.js +225 -0
  416. package/dist/skills/cleanSlateSkillCatalog.js.map +1 -0
  417. package/dist/tools/ApplyEditTool.d.ts +73 -0
  418. package/dist/tools/ApplyEditTool.d.ts.map +1 -0
  419. package/dist/tools/ApplyEditTool.js +741 -0
  420. package/dist/tools/ApplyEditTool.js.map +1 -0
  421. package/dist/tools/AskQuestionTool.d.ts +3 -0
  422. package/dist/tools/AskQuestionTool.d.ts.map +1 -0
  423. package/dist/tools/AskQuestionTool.js +113 -0
  424. package/dist/tools/AskQuestionTool.js.map +1 -0
  425. package/dist/tools/BrowserAutomationTools.d.ts +28 -0
  426. package/dist/tools/BrowserAutomationTools.d.ts.map +1 -0
  427. package/dist/tools/BrowserAutomationTools.js +639 -0
  428. package/dist/tools/BrowserAutomationTools.js.map +1 -0
  429. package/dist/tools/CreateMultipleFilesTool.d.ts +6 -0
  430. package/dist/tools/CreateMultipleFilesTool.d.ts.map +1 -0
  431. package/dist/tools/CreateMultipleFilesTool.js +115 -0
  432. package/dist/tools/CreateMultipleFilesTool.js.map +1 -0
  433. package/dist/tools/ExecuteCommandTool.d.ts +12 -0
  434. package/dist/tools/ExecuteCommandTool.d.ts.map +1 -0
  435. package/dist/tools/ExecuteCommandTool.js +378 -0
  436. package/dist/tools/ExecuteCommandTool.js.map +1 -0
  437. package/dist/tools/FileHistoryRewindTool.d.ts +3 -0
  438. package/dist/tools/FileHistoryRewindTool.d.ts.map +1 -0
  439. package/dist/tools/FileHistoryRewindTool.js +45 -0
  440. package/dist/tools/FileHistoryRewindTool.js.map +1 -0
  441. package/dist/tools/FindByNameTool.d.ts +6 -0
  442. package/dist/tools/FindByNameTool.d.ts.map +1 -0
  443. package/dist/tools/FindByNameTool.js +80 -0
  444. package/dist/tools/FindByNameTool.js.map +1 -0
  445. package/dist/tools/FindReferencesTool.d.ts +3 -0
  446. package/dist/tools/FindReferencesTool.d.ts.map +1 -0
  447. package/dist/tools/FindReferencesTool.js +128 -0
  448. package/dist/tools/FindReferencesTool.js.map +1 -0
  449. package/dist/tools/GetDefinitionsTool.d.ts +3 -0
  450. package/dist/tools/GetDefinitionsTool.d.ts.map +1 -0
  451. package/dist/tools/GetDefinitionsTool.js +136 -0
  452. package/dist/tools/GetDefinitionsTool.js.map +1 -0
  453. package/dist/tools/GetOpenFilesTool.d.ts +6 -0
  454. package/dist/tools/GetOpenFilesTool.d.ts.map +1 -0
  455. package/dist/tools/GetOpenFilesTool.js +21 -0
  456. package/dist/tools/GetOpenFilesTool.js.map +1 -0
  457. package/dist/tools/GrepSearchTool.d.ts +7 -0
  458. package/dist/tools/GrepSearchTool.d.ts.map +1 -0
  459. package/dist/tools/GrepSearchTool.js +95 -0
  460. package/dist/tools/GrepSearchTool.js.map +1 -0
  461. package/dist/tools/ListDirTool.d.ts +6 -0
  462. package/dist/tools/ListDirTool.d.ts.map +1 -0
  463. package/dist/tools/ListDirTool.js +39 -0
  464. package/dist/tools/ListDirTool.js.map +1 -0
  465. package/dist/tools/MCPTools.d.ts +6 -0
  466. package/dist/tools/MCPTools.d.ts.map +1 -0
  467. package/dist/tools/MCPTools.js +103 -0
  468. package/dist/tools/MCPTools.js.map +1 -0
  469. package/dist/tools/MultiFileReplaceTool.d.ts +6 -0
  470. package/dist/tools/MultiFileReplaceTool.d.ts.map +1 -0
  471. package/dist/tools/MultiFileReplaceTool.js +345 -0
  472. package/dist/tools/MultiFileReplaceTool.js.map +1 -0
  473. package/dist/tools/ReadFileRangeTool.d.ts +6 -0
  474. package/dist/tools/ReadFileRangeTool.d.ts.map +1 -0
  475. package/dist/tools/ReadFileRangeTool.js +150 -0
  476. package/dist/tools/ReadFileRangeTool.js.map +1 -0
  477. package/dist/tools/ReadFileTool.d.ts +6 -0
  478. package/dist/tools/ReadFileTool.d.ts.map +1 -0
  479. package/dist/tools/ReadFileTool.js +183 -0
  480. package/dist/tools/ReadFileTool.js.map +1 -0
  481. package/dist/tools/ReadLintsTool.d.ts +6 -0
  482. package/dist/tools/ReadLintsTool.d.ts.map +1 -0
  483. package/dist/tools/ReadLintsTool.js +83 -0
  484. package/dist/tools/ReadLintsTool.js.map +1 -0
  485. package/dist/tools/ReadReferenceTool.d.ts +6 -0
  486. package/dist/tools/ReadReferenceTool.d.ts.map +1 -0
  487. package/dist/tools/ReadReferenceTool.js +24 -0
  488. package/dist/tools/ReadReferenceTool.js.map +1 -0
  489. package/dist/tools/ReadSymbolsTool.d.ts +3 -0
  490. package/dist/tools/ReadSymbolsTool.d.ts.map +1 -0
  491. package/dist/tools/ReadSymbolsTool.js +100 -0
  492. package/dist/tools/ReadSymbolsTool.js.map +1 -0
  493. package/dist/tools/SearchCodebaseTool.d.ts +6 -0
  494. package/dist/tools/SearchCodebaseTool.d.ts.map +1 -0
  495. package/dist/tools/SearchCodebaseTool.js +30 -0
  496. package/dist/tools/SearchCodebaseTool.js.map +1 -0
  497. package/dist/tools/SearchWorkspaceTool.d.ts +7 -0
  498. package/dist/tools/SearchWorkspaceTool.d.ts.map +1 -0
  499. package/dist/tools/SearchWorkspaceTool.js +21 -0
  500. package/dist/tools/SearchWorkspaceTool.js.map +1 -0
  501. package/dist/tools/SemanticSearchTool.d.ts +12 -0
  502. package/dist/tools/SemanticSearchTool.d.ts.map +1 -0
  503. package/dist/tools/SemanticSearchTool.js +46 -0
  504. package/dist/tools/SemanticSearchTool.js.map +1 -0
  505. package/dist/tools/SkillTools.d.ts +3 -0
  506. package/dist/tools/SkillTools.d.ts.map +1 -0
  507. package/dist/tools/SkillTools.js +108 -0
  508. package/dist/tools/SkillTools.js.map +1 -0
  509. package/dist/tools/SpawnWorkerTool.d.ts +6 -0
  510. package/dist/tools/SpawnWorkerTool.d.ts.map +1 -0
  511. package/dist/tools/SpawnWorkerTool.js +28 -0
  512. package/dist/tools/SpawnWorkerTool.js.map +1 -0
  513. package/dist/tools/SubmitArtifactTool.d.ts +3 -0
  514. package/dist/tools/SubmitArtifactTool.d.ts.map +1 -0
  515. package/dist/tools/SubmitArtifactTool.js +121 -0
  516. package/dist/tools/SubmitArtifactTool.js.map +1 -0
  517. package/dist/tools/UndoEditTool.d.ts +3 -0
  518. package/dist/tools/UndoEditTool.d.ts.map +1 -0
  519. package/dist/tools/UndoEditTool.js +66 -0
  520. package/dist/tools/UndoEditTool.js.map +1 -0
  521. package/dist/tools/UpdateTodoTool.d.ts +6 -0
  522. package/dist/tools/UpdateTodoTool.d.ts.map +1 -0
  523. package/dist/tools/UpdateTodoTool.js +116 -0
  524. package/dist/tools/UpdateTodoTool.js.map +1 -0
  525. package/dist/tools/WebRetrievalTools.d.ts +4 -0
  526. package/dist/tools/WebRetrievalTools.d.ts.map +1 -0
  527. package/dist/tools/WebRetrievalTools.js +169 -0
  528. package/dist/tools/WebRetrievalTools.js.map +1 -0
  529. package/dist/tools/WriteFileTool.d.ts +6 -0
  530. package/dist/tools/WriteFileTool.d.ts.map +1 -0
  531. package/dist/tools/WriteFileTool.js +145 -0
  532. package/dist/tools/WriteFileTool.js.map +1 -0
  533. package/dist/tools/cleanSlateFileReadPolicy.d.ts +33 -0
  534. package/dist/tools/cleanSlateFileReadPolicy.d.ts.map +1 -0
  535. package/dist/tools/cleanSlateFileReadPolicy.js +84 -0
  536. package/dist/tools/cleanSlateFileReadPolicy.js.map +1 -0
  537. package/dist/tools/cleanSlateHostTypes.d.ts +100 -0
  538. package/dist/tools/cleanSlateHostTypes.d.ts.map +1 -0
  539. package/dist/tools/cleanSlateHostTypes.js +6 -0
  540. package/dist/tools/cleanSlateHostTypes.js.map +1 -0
  541. package/dist/tools/cleanSlatePlanArtifactPolicy.d.ts +47 -0
  542. package/dist/tools/cleanSlatePlanArtifactPolicy.d.ts.map +1 -0
  543. package/dist/tools/cleanSlatePlanArtifactPolicy.js +126 -0
  544. package/dist/tools/cleanSlatePlanArtifactPolicy.js.map +1 -0
  545. package/dist/tools/cleanSlateStaleDiagnosticPolicy.d.ts +3 -0
  546. package/dist/tools/cleanSlateStaleDiagnosticPolicy.d.ts.map +1 -0
  547. package/dist/tools/cleanSlateStaleDiagnosticPolicy.js +13 -0
  548. package/dist/tools/cleanSlateStaleDiagnosticPolicy.js.map +1 -0
  549. package/dist/tools/languageFeatureActivation.d.ts +13 -0
  550. package/dist/tools/languageFeatureActivation.d.ts.map +1 -0
  551. package/dist/tools/languageFeatureActivation.js +95 -0
  552. package/dist/tools/languageFeatureActivation.js.map +1 -0
  553. package/dist/tools/registry.d.ts +5 -0
  554. package/dist/tools/registry.d.ts.map +1 -0
  555. package/dist/tools/registry.js +104 -0
  556. package/dist/tools/registry.js.map +1 -0
  557. package/dist/tools/structuredEditCanonicalizer.d.ts +11 -0
  558. package/dist/tools/structuredEditCanonicalizer.d.ts.map +1 -0
  559. package/dist/tools/structuredEditCanonicalizer.js +44 -0
  560. package/dist/tools/structuredEditCanonicalizer.js.map +1 -0
  561. package/dist/tools/symbolContext.d.ts +36 -0
  562. package/dist/tools/symbolContext.d.ts.map +1 -0
  563. package/dist/tools/symbolContext.js +146 -0
  564. package/dist/tools/symbolContext.js.map +1 -0
  565. package/dist/tools/symbolEditResolver.d.ts +11 -0
  566. package/dist/tools/symbolEditResolver.d.ts.map +1 -0
  567. package/dist/tools/symbolEditResolver.js +259 -0
  568. package/dist/tools/symbolEditResolver.js.map +1 -0
  569. package/dist/tools/symbolIndex.d.ts +18 -0
  570. package/dist/tools/symbolIndex.d.ts.map +1 -0
  571. package/dist/tools/symbolIndex.js +235 -0
  572. package/dist/tools/symbolIndex.js.map +1 -0
  573. package/dist/tools/types.d.ts +108 -0
  574. package/dist/tools/types.d.ts.map +1 -0
  575. package/dist/tools/types.js +6 -0
  576. package/dist/tools/types.js.map +1 -0
  577. package/dist/tools/utils.d.ts +56 -0
  578. package/dist/tools/utils.d.ts.map +1 -0
  579. package/dist/tools/utils.js +205 -0
  580. package/dist/tools/utils.js.map +1 -0
  581. package/package.json +71 -0
@@ -0,0 +1,19 @@
1
+ export type CleanSlateExecutionBudgetStopReason = 'turn_limit';
2
+ export interface ICleanSlateExecutionBudgetDecision {
3
+ readonly allowed: boolean;
4
+ readonly reason?: CleanSlateExecutionBudgetStopReason;
5
+ readonly message?: string;
6
+ }
7
+ export interface ICleanSlateExecutionBudget {
8
+ configure(configuredMaxTurns?: number): void;
9
+ consumeModelTurn(phase: string): ICleanSlateExecutionBudgetDecision;
10
+ }
11
+ /** An optional user-configured turn budget shared by every phase in one agent run. */
12
+ export declare class CleanSlateExecutionBudget implements ICleanSlateExecutionBudget {
13
+ private maxModelTurns;
14
+ private modelTurns;
15
+ constructor(configuredMaxTurns?: number);
16
+ configure(configuredMaxTurns?: number): void;
17
+ consumeModelTurn(phase: string): ICleanSlateExecutionBudgetDecision;
18
+ }
19
+ //# sourceMappingURL=cleanSlateExecutionBudget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionBudget.d.ts","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionBudget.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,mCAAmC,GAAG,YAAY,CAAC;AAE/D,MAAM,WAAW,kCAAkC;IAClD,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,mCAAmC,CAAC;IACtD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IAC1C,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,kCAAkC,CAAC;CACpE;AAED,sFAAsF;AACtF,qBAAa,yBAA0B,YAAW,0BAA0B;IAC3E,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAK;gBAEX,kBAAkB,CAAC,EAAE,MAAM;IAIvC,SAAS,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI;IAM5C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,kCAAkC;CAYnE"}
@@ -0,0 +1,28 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** An optional user-configured turn budget shared by every phase in one agent run. */
6
+ export class CleanSlateExecutionBudget {
7
+ constructor(configuredMaxTurns) {
8
+ this.modelTurns = 0;
9
+ this.configure(configuredMaxTurns);
10
+ }
11
+ configure(configuredMaxTurns) {
12
+ this.maxModelTurns = Number.isFinite(configuredMaxTurns) && configuredMaxTurns > 0
13
+ ? Math.floor(configuredMaxTurns)
14
+ : undefined;
15
+ }
16
+ consumeModelTurn(phase) {
17
+ if (this.maxModelTurns !== undefined && this.modelTurns >= this.maxModelTurns) {
18
+ return {
19
+ allowed: false,
20
+ reason: 'turn_limit',
21
+ message: `Paused ${phase} after reaching the ${this.maxModelTurns}-turn agent safety limit. The task was not marked complete.`
22
+ };
23
+ }
24
+ this.modelTurns++;
25
+ return { allowed: true };
26
+ }
27
+ }
28
+ //# sourceMappingURL=cleanSlateExecutionBudget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionBudget.js","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionBudget.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAehG,sFAAsF;AACtF,MAAM,OAAO,yBAAyB;IAIrC,YAAY,kBAA2B;QAF/B,eAAU,GAAG,CAAC,CAAC;QAGtB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CAAC,kBAA2B;QACpC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,kBAAmB,GAAG,CAAC;YAClF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAmB,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC;IACd,CAAC;IAED,gBAAgB,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YAC/E,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,YAAY;gBACpB,OAAO,EAAE,UAAU,KAAK,uBAAuB,IAAI,CAAC,aAAa,6DAA6D;aAC9H,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;CACD"}
@@ -0,0 +1,15 @@
1
+ import { ParsedToolCall } from './cleanSlateAgentTypes.js';
2
+ export interface ICleanSlateExecutionPathState {
3
+ touchedPaths: Set<string>;
4
+ mutatedPaths: Set<string>;
5
+ }
6
+ /** Owns source-edit preconditions, recovery guidance, and affected-path extraction. */
7
+ export declare class CleanSlateExecutionEditPolicy {
8
+ countStructuredEdits(toolCall: ParsedToolCall): number;
9
+ withScopedReadLintsInput(toolCall: ParsedToolCall, guardState: ICleanSlateExecutionPathState): ParsedToolCall;
10
+ buildFailedEditRecoveryPrompt(toolCall: ParsedToolCall, result: any): string | undefined;
11
+ isUserCancelledCommandResult(toolCall: ParsedToolCall, result: any): boolean;
12
+ isSettledEditNoOp(toolCall: ParsedToolCall, result: any): boolean;
13
+ collectMutationPaths(toolCall: ParsedToolCall, result: any): string[];
14
+ }
15
+ //# sourceMappingURL=cleanSlateExecutionEditPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionEditPolicy.d.ts","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionEditPolicy.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,MAAM,WAAW,6BAA6B;IAC1C,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC7B;AACD,uFAAuF;AACvF,qBAAa,6BAA6B;IAC/B,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM;IAWtD,wBAAwB,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,6BAA6B,GAAG,cAAc;IAyB7G,6BAA6B,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS;IAgExF,4BAA4B,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IAO5E,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO;IAgBjE,oBAAoB,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE;CAqC/E"}
@@ -0,0 +1,148 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /** Owns source-edit preconditions, recovery guidance, and affected-path extraction. */
6
+ export class CleanSlateExecutionEditPolicy {
7
+ countStructuredEdits(toolCall) {
8
+ if (toolCall.toolName === 'apply_edit') {
9
+ return typeof toolCall.input?.old_string === 'string' && typeof toolCall.input?.new_string === 'string' ? 1 : 0;
10
+ }
11
+ if (toolCall.toolName === 'multi_file_replace' && Array.isArray(toolCall.input?.edits)) {
12
+ return toolCall.input.edits.filter((entry) => typeof entry?.old_string === 'string' && typeof entry?.new_string === 'string').length;
13
+ }
14
+ return 0;
15
+ }
16
+ withScopedReadLintsInput(toolCall, guardState) {
17
+ const scopedPaths = guardState.mutatedPaths.size > 0
18
+ ? guardState.mutatedPaths
19
+ : guardState.touchedPaths;
20
+ if (toolCall.toolName !== 'read_lints' || scopedPaths.size === 0) {
21
+ return toolCall;
22
+ }
23
+ const input = toolCall.input && typeof toolCall.input === 'object' ? toolCall.input : {};
24
+ const hasExplicitPath = typeof input.path === 'string' && input.path.trim().length > 0;
25
+ const hasExplicitPaths = Array.isArray(input.paths) && input.paths.some((path) => typeof path === 'string' && path.trim().length > 0);
26
+ if (hasExplicitPath || hasExplicitPaths) {
27
+ return toolCall;
28
+ }
29
+ return {
30
+ toolName: toolCall.toolName,
31
+ input: {
32
+ ...input,
33
+ paths: Array.from(scopedPaths)
34
+ }
35
+ };
36
+ }
37
+ buildFailedEditRecoveryPrompt(toolCall, result) {
38
+ if (result?.success !== false || (toolCall.toolName !== 'apply_edit' && toolCall.toolName !== 'multi_file_replace')) {
39
+ return undefined;
40
+ }
41
+ const topLevelFailures = Array.isArray(result.failures) ? result.failures : [];
42
+ const detailedFailures = topLevelFailures.flatMap((failure) => Array.isArray(failure?.failures)
43
+ ? failure.failures.map((nestedFailure) => ({ ...nestedFailure, path: nestedFailure?.path ?? failure?.path }))
44
+ : typeof failure?.editIndex === 'number' || typeof failure?.currentContent === 'string'
45
+ ? [failure]
46
+ : []);
47
+ const primaryFailure = detailedFailures[0] ?? topLevelFailures[0] ?? result;
48
+ const code = String(primaryFailure?.code ?? result.code ?? 'edit_failed');
49
+ const path = String(primaryFailure?.path ?? result.path ?? toolCall.input?.file_path ?? toolCall.input?.path ?? 'unknown path');
50
+ const rawDiagnostics = Array.isArray(result?.diagnostics)
51
+ ? result.diagnostics
52
+ : Array.isArray(topLevelFailures[0]?.diagnostics)
53
+ ? topLevelFailures[0].diagnostics
54
+ : Array.isArray(primaryFailure?.diagnostics)
55
+ ? primaryFailure.diagnostics
56
+ : [];
57
+ const diagnostics = rawDiagnostics.length > 0
58
+ ? `\nDiagnostics:\n${rawDiagnostics.slice(0, 8).map((diagnostic) => `- ${JSON.stringify(diagnostic)}`).join('\n')}`
59
+ : '';
60
+ const failedEditDetails = detailedFailures.length > 0
61
+ ? `\nFailed edits:\n${detailedFailures.slice(0, 8).map((failure) => {
62
+ const editNumber = typeof failure?.editIndex === 'number' ? failure.editIndex + 1 : '?';
63
+ const range = failure?.requestedRange
64
+ ? ` lines ${failure.requestedRange.startLine}-${failure.requestedRange.endLine}`
65
+ : '';
66
+ const currentContent = typeof failure?.currentContent === 'string'
67
+ ? `\n Current requested range:\n${failure.currentContent}`
68
+ : '';
69
+ const candidates = Array.isArray(failure?.candidates) && failure.candidates.length > 0
70
+ ? `\n Candidate matches:\n${failure.candidates.slice(0, 8).map((candidate) => ` - lines ${candidate.startLine}-${candidate.endLine}:\n${candidate.content}`).join('\n')}`
71
+ : '';
72
+ return `- Edit ${editNumber} [${String(failure?.code ?? 'edit_failed')}]${range}: ${String(failure?.message ?? '')}${currentContent}${candidates}`;
73
+ }).join('\n')}`
74
+ : '';
75
+ const recoveryHint = String(primaryFailure?.recoveryHint ?? result.recoveryHint ?? '');
76
+ const action = code === 'ambiguous_match'
77
+ ? 'Retry with a larger current old_string that uniquely identifies the intended occurrence, or set replace_all only when every occurrence should change.'
78
+ : code === 'file_changed'
79
+ ? 'Re-read the file, then retry with its current old_string and the intended new_string.'
80
+ : 'Retry apply_edit with file_path, the exact current old_string, and new_string. Inspect the affected current region first when the returned message shows the old string no longer matches.';
81
+ return [
82
+ `EDIT RECOVERY REQUIRED for ${path}.`,
83
+ `Failed tool: ${toolCall.toolName}`,
84
+ `Failure code: ${code}`,
85
+ primaryFailure?.message ? `Message: ${primaryFailure.message}` : undefined,
86
+ recoveryHint ? `Tool recovery hint: ${recoveryHint}` : undefined,
87
+ diagnostics || undefined,
88
+ failedEditDetails || undefined,
89
+ `Required next action: ${action}`,
90
+ detailedFailures.length > 0 ? 'Retry exactly one failed edit at a time. Do not resubmit the rejected batch.' : undefined,
91
+ 'Do not treat this failed edit as completion; return the corrective tool call.'
92
+ ].filter(Boolean).join('\n');
93
+ }
94
+ isUserCancelledCommandResult(toolCall, result) {
95
+ const commandToolNames = new Set(['execute_command', 'start_background_command']);
96
+ return commandToolNames.has(toolCall.toolName)
97
+ && result?.success === false
98
+ && (result?.userCancelled === true || result?.code === 'user_cancelled' || result?.status === 'cancelled');
99
+ }
100
+ isSettledEditNoOp(toolCall, result) {
101
+ if (toolCall.toolName !== 'apply_edit' && toolCall.toolName !== 'multi_file_replace') {
102
+ return false;
103
+ }
104
+ if (result?.success !== true) {
105
+ return false;
106
+ }
107
+ if (String(result?.code ?? '').toLowerCase() === 'no_op') {
108
+ return this.collectMutationPaths(toolCall, result).length > 0;
109
+ }
110
+ const message = typeof result?.message === 'string' ? result.message.toLowerCase() : '';
111
+ return this.collectMutationPaths(toolCall, result).length > 0
112
+ && (message.includes('already matches') || message.includes('no changes were necessary'));
113
+ }
114
+ collectMutationPaths(toolCall, result) {
115
+ const paths = [];
116
+ const addPath = (candidate) => {
117
+ if (typeof candidate !== 'string') {
118
+ return;
119
+ }
120
+ const path = candidate.trim();
121
+ if (path.length === 0 || paths.includes(path)) {
122
+ return;
123
+ }
124
+ paths.push(path);
125
+ };
126
+ addPath(result?.path);
127
+ addPath(toolCall.input?.file_path);
128
+ addPath(toolCall.input?.path);
129
+ for (const path of Array.isArray(result?.affectedFiles) ? result.affectedFiles : []) {
130
+ addPath(path);
131
+ }
132
+ for (const path of Array.isArray(result?.created) ? result.created : []) {
133
+ addPath(path);
134
+ }
135
+ for (const file of Array.isArray(result?.results) ? result.results : []) {
136
+ addPath(file?.path);
137
+ }
138
+ for (const file of Array.isArray(toolCall.input?.files) ? toolCall.input.files : []) {
139
+ addPath(file?.path);
140
+ }
141
+ for (const editGroup of Array.isArray(toolCall.input?.edits) ? toolCall.input.edits : []) {
142
+ addPath(editGroup?.file_path);
143
+ addPath(editGroup?.path);
144
+ }
145
+ return paths;
146
+ }
147
+ }
148
+ //# sourceMappingURL=cleanSlateExecutionEditPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionEditPolicy.js","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionEditPolicy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface IExecutionEvidenceStatus {
2
+ hasLocateEvidence: boolean;
3
+ hasReadEvidence: boolean;
4
+ isReadFresh: boolean;
5
+ currentVersionId?: number;
6
+ readVersionId?: number;
7
+ }
8
+ export declare class CleanSlateExecutionEvidenceLedger {
9
+ private readonly pathEvidence;
10
+ private readonly scopeEvidence;
11
+ clone(): CleanSlateExecutionEvidenceLedger;
12
+ recordLocatedPath(pathKey: string, locateVersionId?: number): void;
13
+ recordLocatedScope(scopeKey: string): void;
14
+ recordReadPath(pathKey: string, readVersionId?: number, symbols?: string[]): void;
15
+ invalidateReadPath(pathKey: string): void;
16
+ getStatusForPath(pathKey: string, currentVersionId?: number): IExecutionEvidenceStatus;
17
+ private hasScopeLocateEvidence;
18
+ private ensurePathEntry;
19
+ private normalizePathKey;
20
+ private normalizeScopeKey;
21
+ private withTrailingSlash;
22
+ }
23
+ //# sourceMappingURL=cleanSlateExecutionEvidenceLedger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionEvidenceLedger.d.ts","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionEvidenceLedger.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,qBAAa,iCAAiC;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,KAAK,IAAI,iCAAiC;IAiB1C,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI;IASlE,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK1C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,EAAO,GAAG,IAAI;IAmBrF,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAWzC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,wBAAwB;IA0BtF,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;CAG5B"}
@@ -0,0 +1,121 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ export class CleanSlateExecutionEvidenceLedger {
6
+ constructor() {
7
+ this.pathEvidence = new Map();
8
+ this.scopeEvidence = new Set();
9
+ }
10
+ clone() {
11
+ const copy = new CleanSlateExecutionEvidenceLedger();
12
+ for (const [pathKey, entry] of this.pathEvidence.entries()) {
13
+ copy.pathEvidence.set(pathKey, {
14
+ lastLocatedAt: entry.lastLocatedAt,
15
+ locateVersionId: entry.locateVersionId,
16
+ lastReadAt: entry.lastReadAt,
17
+ readVersionId: entry.readVersionId,
18
+ symbols: new Set(entry.symbols)
19
+ });
20
+ }
21
+ for (const scopeKey of this.scopeEvidence.values()) {
22
+ copy.scopeEvidence.add(scopeKey);
23
+ }
24
+ return copy;
25
+ }
26
+ recordLocatedPath(pathKey, locateVersionId) {
27
+ const normalizedPathKey = this.normalizePathKey(pathKey);
28
+ const entry = this.ensurePathEntry(normalizedPathKey);
29
+ entry.lastLocatedAt = Date.now();
30
+ if (typeof locateVersionId === 'number') {
31
+ entry.locateVersionId = locateVersionId;
32
+ }
33
+ }
34
+ recordLocatedScope(scopeKey) {
35
+ const normalizedScopeKey = this.normalizeScopeKey(scopeKey);
36
+ this.scopeEvidence.add(normalizedScopeKey);
37
+ }
38
+ recordReadPath(pathKey, readVersionId, symbols = []) {
39
+ const normalizedPathKey = this.normalizePathKey(pathKey);
40
+ const entry = this.ensurePathEntry(normalizedPathKey);
41
+ entry.lastReadAt = Date.now();
42
+ if (typeof readVersionId === 'number') {
43
+ entry.readVersionId = readVersionId;
44
+ }
45
+ if (typeof readVersionId === 'number') {
46
+ entry.locateVersionId = readVersionId;
47
+ }
48
+ entry.lastLocatedAt = entry.lastLocatedAt ?? entry.lastReadAt;
49
+ for (const symbol of symbols) {
50
+ const trimmed = symbol.trim();
51
+ if (trimmed.length > 0) {
52
+ entry.symbols.add(trimmed);
53
+ }
54
+ }
55
+ }
56
+ invalidateReadPath(pathKey) {
57
+ const normalizedPathKey = this.normalizePathKey(pathKey);
58
+ const existing = this.pathEvidence.get(normalizedPathKey);
59
+ if (!existing) {
60
+ return;
61
+ }
62
+ existing.lastReadAt = undefined;
63
+ existing.readVersionId = undefined;
64
+ existing.symbols.clear();
65
+ }
66
+ getStatusForPath(pathKey, currentVersionId) {
67
+ const normalizedPathKey = this.normalizePathKey(pathKey);
68
+ const entry = this.pathEvidence.get(normalizedPathKey);
69
+ const hasExactLocate = !!entry?.lastLocatedAt;
70
+ const hasScopeLocate = this.hasScopeLocateEvidence(normalizedPathKey);
71
+ const hasLocateEvidence = hasExactLocate || hasScopeLocate;
72
+ const hasReadEvidence = !!entry?.lastReadAt;
73
+ const readVersionId = entry?.readVersionId;
74
+ const isReadFresh = hasReadEvidence
75
+ && (typeof currentVersionId !== 'number'
76
+ || typeof readVersionId !== 'number'
77
+ || readVersionId === currentVersionId);
78
+ return {
79
+ hasLocateEvidence,
80
+ hasReadEvidence,
81
+ isReadFresh,
82
+ currentVersionId,
83
+ readVersionId
84
+ };
85
+ }
86
+ hasScopeLocateEvidence(pathKey) {
87
+ const normalizedPathKey = this.normalizePathKey(pathKey);
88
+ for (const scopeKey of this.scopeEvidence.values()) {
89
+ if (normalizedPathKey === scopeKey || normalizedPathKey.startsWith(this.withTrailingSlash(scopeKey))) {
90
+ return true;
91
+ }
92
+ }
93
+ return false;
94
+ }
95
+ ensurePathEntry(pathKey) {
96
+ const existing = this.pathEvidence.get(pathKey);
97
+ if (existing) {
98
+ return existing;
99
+ }
100
+ const created = { symbols: new Set() };
101
+ this.pathEvidence.set(pathKey, created);
102
+ return created;
103
+ }
104
+ normalizePathKey(pathKey) {
105
+ return pathKey.trim();
106
+ }
107
+ normalizeScopeKey(scopeKey) {
108
+ const normalized = scopeKey.trim();
109
+ if (!normalized) {
110
+ return normalized;
111
+ }
112
+ if (normalized.endsWith('/')) {
113
+ return normalized.slice(0, -1);
114
+ }
115
+ return normalized;
116
+ }
117
+ withTrailingSlash(pathKey) {
118
+ return pathKey.endsWith('/') ? pathKey : `${pathKey}/`;
119
+ }
120
+ }
121
+ //# sourceMappingURL=cleanSlateExecutionEvidenceLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionEvidenceLedger.js","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionEvidenceLedger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare function buildExecutionNoToolRecoveryPrompt(hasTechnicalProgress: boolean): string;
2
+ export declare function detectSerializedToolCallSyntax(text: string): boolean;
3
+ export declare function buildSerializedToolCallRecoveryPrompt(): string;
4
+ export declare function buildExecutionNoProgressStopMessage(attempts: number, reason: string): string;
5
+ //# sourceMappingURL=cleanSlateExecutionLoopPrompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionLoopPrompts.d.ts","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionLoopPrompts.ts"],"names":[],"mappings":"AAKA,wBAAgB,kCAAkC,CAAC,oBAAoB,EAAE,OAAO,GAAG,MAAM,CAYxF;AAYD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED,wBAAgB,qCAAqC,IAAI,MAAM,CAK9D;AAED,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK5F"}
@@ -0,0 +1,41 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) CleanSlate. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ export function buildExecutionNoToolRecoveryPrompt(hasTechnicalProgress) {
6
+ if (hasTechnicalProgress) {
7
+ return [
8
+ 'EXECUTION GUARDRAIL: do not end with narration.',
9
+ 'If the requested work is complete and verified, write the visible final answer as normal assistant text and stop. Otherwise return the next concrete tool call; verify diagnostics or apply the next small edit. Re-read only after external staleness or a failed match.'
10
+ ].join('\n');
11
+ }
12
+ return [
13
+ 'EXECUTION GUARDRAIL: no technical tool action has completed yet.',
14
+ 'Return concrete tool_calls only. Start with read/list/search tools to inspect the current workspace, then apply localized changes with apply_edit or complete-file writes with write_file. Do not narrate progress as a substitute for tool calls.'
15
+ ].join('\n');
16
+ }
17
+ /**
18
+ * Detects a tool call the model serialized into its TEXT channel instead of
19
+ * emitting a provider-native tool call. GPT-5.x under pressure emits patterns
20
+ * like "to=functions.read_file", the hallucinated "multi_tool_use.parallel"
21
+ * wrapper (its way of asking for parallel calls), or raw tool-call JSON. Text
22
+ * is never executed, so without targeted feedback the model waits on results
23
+ * that will never arrive.
24
+ */
25
+ const SERIALIZED_TOOL_CALL_PATTERN = /\bto=(?:functions|multi_tool_use|tools?)[.\w-]*|multi_tool_use\.parallel|<\|tool_calls?\|>|"tool_calls"\s*:\s*\[|\bfunctions\.[\w-]+\s*\(/;
26
+ export function detectSerializedToolCallSyntax(text) {
27
+ return SERIALIZED_TOOL_CALL_PATTERN.test(text);
28
+ }
29
+ export function buildSerializedToolCallRecoveryPrompt() {
30
+ return [
31
+ 'TOOL CALL NOT EXECUTED: the previous turn serialized a tool call into plain text (for example "to=functions.read_file" or a "multi_tool_use.parallel" wrapper). Text is never executed and produced no result.',
32
+ 'Re-issue the action as provider-native tool calls. To run several independent read-only actions at once, return multiple entries in one native tool_calls array — do not invent wrapper tools and do not print tool syntax as text.'
33
+ ].join('\n');
34
+ }
35
+ export function buildExecutionNoProgressStopMessage(attempts, reason) {
36
+ return [
37
+ `Paused execution after ${attempts} consecutive no-progress model attempt(s): ${reason}.`,
38
+ 'The workspace was not declared complete because the model did not return the required tools.'
39
+ ].join(' ');
40
+ }
41
+ //# sourceMappingURL=cleanSlateExecutionLoopPrompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionLoopPrompts.js","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionLoopPrompts.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,MAAM,UAAU,kCAAkC,CAAC,oBAA6B;IAC/E,IAAI,oBAAoB,EAAE,CAAC;QAC1B,OAAO;YACN,iDAAiD;YACjD,2QAA2Q;SAC3Q,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAED,OAAO;QACN,kEAAkE;QAClE,oPAAoP;KACpP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,4BAA4B,GAAG,2IAA2I,CAAC;AAEjL,MAAM,UAAU,8BAA8B,CAAC,IAAY;IAC1D,OAAO,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,qCAAqC;IACpD,OAAO;QACN,gNAAgN;QAChN,qOAAqO;KACrO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,QAAgB,EAAE,MAAc;IACnF,OAAO;QACN,0BAA0B,QAAQ,8CAA8C,MAAM,GAAG;QACzF,8FAA8F;KAC9F,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACb,CAAC"}
@@ -0,0 +1,162 @@
1
+ import { CleanSlateExecutionFlow, IChatMessage } from '../protocol/cleanSlateAI.js';
2
+ import { AgentPhase } from './cleanSlatePrompts.js';
3
+ import { CleanSlateThreadService } from '../services/cleanSlateThreadService.js';
4
+ import { CleanSlateTaskSessionService } from '../services/cleanSlateTaskSessionService.js';
5
+ import { CleanSlateStreamPart, IExecutionLoopSettings } from './cleanSlateAgentTypes.js';
6
+ import type { IExecutionRunnerOptions, IExecutionRunOptions } from './cleanSlateQueryRunner.js';
7
+ import { type ICleanSlateFileChange } from './cleanSlateFilesModifiedService.js';
8
+ interface IExecutionMutationSummary {
9
+ toolName: string;
10
+ turnIndex?: number;
11
+ paths: string[];
12
+ fileChanges?: ICleanSlateFileChange[];
13
+ appliedBlocks?: number;
14
+ added?: number;
15
+ deleted?: number;
16
+ totalLinesChanged?: number;
17
+ diagnosticsCount?: number;
18
+ strategies?: string[];
19
+ message?: string;
20
+ }
21
+ export interface IExecutionTerminalSummary {
22
+ toolName?: string;
23
+ turnIndex?: number;
24
+ command?: string;
25
+ sessionId?: string;
26
+ intent?: string;
27
+ writesToWorkspace?: boolean;
28
+ success?: boolean;
29
+ status?: string;
30
+ exitCode?: number;
31
+ output?: string;
32
+ error?: string;
33
+ }
34
+ export interface ICleanSlateExecutionQueryCompletionState {
35
+ touchedPaths: string[];
36
+ mutatedPaths: string[];
37
+ mutationSummaries: IExecutionMutationSummary[];
38
+ terminalSummaries: IExecutionTerminalSummary[];
39
+ proofSummaries: string[];
40
+ completionSource: 'host_finalized';
41
+ verificationIssueCount: number;
42
+ successfulMutationsInPhase: number;
43
+ summary?: string;
44
+ /** File targets named by the approved implementation plan, when one exists. */
45
+ plannedFileTargets?: string[];
46
+ /** Planned files with no mutation this run — the auditor requires each to be explicitly accounted for. */
47
+ unmutatedPlannedFiles?: string[];
48
+ }
49
+ export interface IExecutionQueryRunOptions extends IExecutionRunOptions {
50
+ logLabel?: string;
51
+ executionFlow?: CleanSlateExecutionFlow;
52
+ /** AgentPhase.PLANNING runs the loop in plan mode (read-only tools, submit_artifact concludes). Defaults to EXECUTION. */
53
+ phase?: AgentPhase;
54
+ }
55
+ export declare class CleanSlateExecutionQueryEngine {
56
+ private readonly options;
57
+ /**
58
+ * Describes what the tools in play do to the workspace, so the loop can
59
+ * reason about mutation, verification and concurrency without knowing any
60
+ * individual tool by name.
61
+ */
62
+ private readonly profile;
63
+ /** The check the loop runs itself after mutations. */
64
+ private get verificationToolName();
65
+ private static readonly DEFAULT_MODEL_TURN_INTERVAL_MS;
66
+ private static readonly NORMAL_MODEL_TURN_INTERVAL_MS;
67
+ private static readonly PLANNING_MODEL_TURN_INTERVAL_MS;
68
+ /** Summaries are brief continuation state, not another agent turn. */
69
+ private static readonly COMPACTION_MAX_OUTPUT_TOKENS;
70
+ /** Stop retrying a failed automatic compaction instead of burning quota repeatedly. */
71
+ private static readonly MAX_CONSECUTIVE_COMPACTION_FAILURES;
72
+ /** A summary must earn back meaningful context before another automatic summary is useful. */
73
+ private static readonly AUTO_COMPACTION_REGROWTH_RATIO;
74
+ private lastModelTurnStartedAt;
75
+ private readonly executionPhase;
76
+ private readonly filesModifiedService;
77
+ private readonly nativeToolTranscript;
78
+ private readonly contextBudgetManager;
79
+ private readonly editPolicy;
80
+ private consecutiveCompactionFailures;
81
+ private lastSuccessfulCompactionChars;
82
+ constructor(options: IExecutionRunnerOptions);
83
+ getExecutionLoopSettings(): IExecutionLoopSettings;
84
+ run(messages: IChatMessage[], originalUserMessage: string, uiMode: string, initialContext: any, mentionedFiles: string, activeThreadService: CleanSlateThreadService, activeTaskSessionService: CleanSlateTaskSessionService, signal?: AbortSignal, runOptions?: IExecutionQueryRunOptions): AsyncIterable<CleanSlateStreamPart>;
85
+ private shouldPauseForQuestionResult;
86
+ private pauseForQuestion;
87
+ private waitForNextModelTurn;
88
+ private recordModelTurnCompleted;
89
+ private compactMessagesBeforeProviderCall;
90
+ private shouldAttemptConversationCompaction;
91
+ private getConversationMessageThresholdChars;
92
+ private isCompactionSummaryMessage;
93
+ private messageContentToText;
94
+ private getCompactionKeepStart;
95
+ private buildMessagesForProvider;
96
+ private getEstimatedContextUsage;
97
+ private getToolDefinitionChars;
98
+ private shouldRefreshContextForTurn;
99
+ private prepareContext;
100
+ private buildPlanModeDirective;
101
+ private buildSystemDirective;
102
+ private parseAssistantTurn;
103
+ /**
104
+ * Detects arguments that must not execute: the transport's JSON parse
105
+ * failure marker, or serialized tool-call debris that a degenerate model
106
+ * merged into locator argument values. Content-bearing fields (file
107
+ * content, edit text, commands) are deliberately NOT scanned — they can
108
+ * legitimately contain these tokens when the user's code mentions them.
109
+ */
110
+ private getMalformedToolArgumentsError;
111
+ private parseStreamedToolCall;
112
+ private mergeToolCalls;
113
+ private executeToolWithTracking;
114
+ private getNoProgressTurnLimit;
115
+ private refreshContextMessage;
116
+ private getNativeToolDefinitions;
117
+ private refreshFileReadBudget;
118
+ private getNativeToolDefinitionsForTurn;
119
+ private isParallelToolCall;
120
+ private streamToolExecutionParts;
121
+ /**
122
+ * Plan-mode ExitPlanMode analog: a successful submit_artifact concludes
123
+ * the plan-mode run. An implementation plan pauses the task for user
124
+ * approval; an explicitly requested analysis artifact finishes it.
125
+ */
126
+ private resolvePlanModeConclusion;
127
+ private streamPostMutationVerificationParts;
128
+ private buildPostMutationVerificationPrompt;
129
+ private buildVerifiedFinishPrompt;
130
+ private canHostFinalizeProseStop;
131
+ private hasFailedUserRequestedOrVerificationCommand;
132
+ private isToolCallLoopResult;
133
+ private buildCompletionState;
134
+ /**
135
+ * File targets named by the approved implementation plan handed off to this
136
+ * run. Used as audit evidence so plan-to-execution fidelity is judged (and
137
+ * deviations must be disclosed) instead of silently forgotten.
138
+ */
139
+ private extractPlannedFileTargets;
140
+ private getUnmutatedPlannedFiles;
141
+ private buildHostProofSummaries;
142
+ private normalizeCompletionSummary;
143
+ private getToolCallKey;
144
+ private shouldVerifyAfterToolResult;
145
+ private buildMutationSummary;
146
+ private firstNumericValue;
147
+ private sumResultField;
148
+ private countEditDiagnostics;
149
+ private countLintIssues;
150
+ private collectStrategies;
151
+ private appendPendingRecoveryPrompt;
152
+ private recordToolResultForGuardrails;
153
+ private recordTerminalSummary;
154
+ private getUnresolvedFailedGoalCommand;
155
+ private isFailedGoalCommand;
156
+ private hasSuccessfulRecoveryAfterCommandFailure;
157
+ private buildNoToolRecoveryPrompt;
158
+ private buildNoProgressStopMessage;
159
+ private delay;
160
+ }
161
+ export {};
162
+ //# sourceMappingURL=cleanSlateExecutionQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateExecutionQuery.d.ts","sourceRoot":"","sources":["../../src/agent/cleanSlateExecutionQuery.ts"],"names":[],"mappings":"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"}