@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,100 @@
1
+ import { URI } from '../core/uri.js';
2
+ /**
3
+ * Three capabilities the tools need from whatever is hosting them: apply a set
4
+ * of edits, run a terminal, and bring a file into view.
5
+ *
6
+ * They are declared here, structurally, rather than imported from the editor —
7
+ * those imports are `browser`-layer and would pin the tools to VS Code. The
8
+ * real services satisfy these shapes as they are, so the editor host needs no
9
+ * adapter; a headless host implements them over the filesystem and a child
10
+ * process, and leaves the reveal a no-op.
11
+ */
12
+ /** A text model as the tools use it: somewhere a URI points. */
13
+ export interface ICleanSlateHostTextModel {
14
+ uri: URI;
15
+ }
16
+ /** An open editor, reduced to the one question the tools ask of it. */
17
+ export interface ICleanSlateHostCodeEditor {
18
+ getModel(): ICleanSlateHostTextModel | null;
19
+ }
20
+ /**
21
+ * Bringing a file into view. Purely presentational — a headless host
22
+ * implements this as a no-op and nothing downstream changes.
23
+ */
24
+ export interface ICleanSlateEditorRevealHost {
25
+ getActiveCodeEditor(): ICleanSlateHostCodeEditor | null;
26
+ openCodeEditor(input: {
27
+ resource: URI;
28
+ options?: any;
29
+ }, source: ICleanSlateHostCodeEditor | null, sideBySide?: boolean): Promise<ICleanSlateHostCodeEditor | null>;
30
+ }
31
+ /** One edit as the decoration host renders it, before it was applied. */
32
+ export interface ICleanSlateOriginalEditForDisplay {
33
+ range: {
34
+ startLineNumber: number;
35
+ startColumn: number;
36
+ endLineNumber: number;
37
+ endColumn: number;
38
+ };
39
+ text: string;
40
+ originalStartLine: number;
41
+ }
42
+ /**
43
+ * Inline accept/reject decorations over an applied edit. Entirely
44
+ * presentational: a headless host omits it and the edit still lands, which is
45
+ * why every member is safe to skip.
46
+ */
47
+ export interface ICleanSlateEditorDecorationHost {
48
+ /**
49
+ * Show the post-apply diff for a file that is currently on screen. Does
50
+ * nothing when the file is not open.
51
+ */
52
+ showPostApply(uri: URI, edits: readonly any[], originalEdits: readonly ICleanSlateOriginalEditForDisplay[], beforeContent: string): void;
53
+ /** Track an applied edit so it can be reviewed or undone later. */
54
+ registerPostApplySession(uri: URI, edits: readonly any[], originalEdits: readonly ICleanSlateOriginalEditForDisplay[], beforeContent: string, initialInstruction?: string): void;
55
+ /** Reverse the last tracked edit. Returns false when there is nothing to undo. */
56
+ undoLastTrackedEdit(uri: URI): boolean;
57
+ }
58
+ /** Result of applying a batch of edits. */
59
+ export interface ICleanSlateBulkEditResult {
60
+ isApplied: boolean;
61
+ }
62
+ /** A range as the edit descriptors carry it. */
63
+ export interface ICleanSlateEditRange {
64
+ startLineNumber: number;
65
+ startColumn: number;
66
+ endLineNumber: number;
67
+ endColumn: number;
68
+ }
69
+ /**
70
+ * One text replacement, described rather than constructed.
71
+ *
72
+ * This is deliberately plain data. The editor's bulk-edit service dispatches on
73
+ * `instanceof ResourceTextEdit` (see `editor/browser/services/bulkEditService`
74
+ * and `contrib/bulkEdit/browser/bulkEditService`), so a copy of that class
75
+ * built outside the editor would be a *different* class: every `instanceof`
76
+ * would return false and the edits would be dropped with no error and no failed
77
+ * result. Constructing it is therefore the host's job, not the tool's.
78
+ */
79
+ export interface ICleanSlateResourceTextEditDescriptor {
80
+ resource: URI;
81
+ range: ICleanSlateEditRange;
82
+ text: string;
83
+ /** Guards against applying to a model that moved on. */
84
+ versionId?: number;
85
+ }
86
+ /** Options a caller may pass alongside a batch. */
87
+ export interface ICleanSlateBulkEditOptions {
88
+ label?: string;
89
+ respectAutoSaveConfig?: boolean;
90
+ }
91
+ /**
92
+ * Applying edits across files as one unit.
93
+ *
94
+ * Takes descriptors, not editor objects: the editor host turns them into real
95
+ * `ResourceTextEdit`s, and a headless host writes them straight to the models.
96
+ */
97
+ export interface ICleanSlateBulkEditHost {
98
+ applyTextEdits(edits: readonly ICleanSlateResourceTextEditDescriptor[], options?: ICleanSlateBulkEditOptions): Promise<ICleanSlateBulkEditResult>;
99
+ }
100
+ //# sourceMappingURL=cleanSlateHostTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateHostTypes.d.ts","sourceRoot":"","sources":["../../src/tools/cleanSlateHostTypes.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC;;;;;;;;;GASG;AAEH,gEAAgE;AAChE,MAAM,WAAW,wBAAwB;IACxC,GAAG,EAAE,GAAG,CAAC;CACT;AAED,uEAAuE;AACvE,MAAM,WAAW,yBAAyB;IACzC,QAAQ,IAAI,wBAAwB,GAAG,IAAI,CAAC;CAC5C;AAED;;;GAGG;AACH,MAAM,WAAW,2BAA2B;IAC3C,mBAAmB,IAAI,yBAAyB,GAAG,IAAI,CAAC;IACxD,cAAc,CACb,KAAK,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EACvC,MAAM,EAAE,yBAAyB,GAAG,IAAI,EACxC,UAAU,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CAC7C;AAED,yEAAyE;AACzE,MAAM,WAAW,iCAAiC;IACjD,KAAK,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClG,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC/C;;;OAGG;IACH,aAAa,CACZ,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,GAAG,EAAE,EACrB,aAAa,EAAE,SAAS,iCAAiC,EAAE,EAC3D,aAAa,EAAE,MAAM,GACnB,IAAI,CAAC;IAER,mEAAmE;IACnE,wBAAwB,CACvB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,GAAG,EAAE,EACrB,aAAa,EAAE,SAAS,iCAAiC,EAAE,EAC3D,aAAa,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,GACzB,IAAI,CAAC;IAER,kFAAkF;IAClF,mBAAmB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC;CACvC;AAED,2CAA2C;AAC3C,MAAM,WAAW,yBAAyB;IACzC,SAAS,EAAE,OAAO,CAAC;CACnB;AAED,gDAAgD;AAChD,MAAM,WAAW,oBAAoB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,qCAAqC;IACrD,QAAQ,EAAE,GAAG,CAAC;IACd,KAAK,EAAE,oBAAoB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,WAAW,0BAA0B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACvC,cAAc,CACb,KAAK,EAAE,SAAS,qCAAqC,EAAE,EACvD,OAAO,CAAC,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACtC"}
@@ -0,0 +1,6 @@
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 {};
6
+ //# sourceMappingURL=cleanSlateHostTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateHostTypes.js","sourceRoot":"","sources":["../../src/tools/cleanSlateHostTypes.ts"],"names":[],"mappings":"AAAA;;;gGAGgG"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Structural validation for submitted implementation plans.
3
+ *
4
+ * Planning is the discovery phase; execution implements. A plan whose entries
5
+ * defer discovery ("[MODIFY] screens subtree — identify the primary screens,
6
+ * then improve") pushes research into execution, which is exactly the failure
7
+ * the planning prompt forbids. The prompt alone proved insufficient — models
8
+ * submit vague plans when nothing checks them — so submit_artifact enforces
9
+ * the plan template structurally:
10
+ *
11
+ * - hard failures (plan rejected, corrective message returned): no
12
+ * [MODIFY]/[NEW] file entries at all, entries without a concrete file link,
13
+ * or [MODIFY] targets that are directories or do not exist.
14
+ * - soft warnings (plan accepted, warnings returned for self-correction):
15
+ * deferred-discovery phrasing, [NEW] targets that already exist.
16
+ */
17
+ export type CleanSlatePlanEntryKind = 'modify' | 'new';
18
+ export interface ICleanSlatePlanFileEntry {
19
+ readonly kind: CleanSlatePlanEntryKind;
20
+ readonly label: string;
21
+ /** Link target as written (file:/// URI or plain path); undefined when the entry has no link. */
22
+ readonly target: string | undefined;
23
+ /** Body lines under the entry heading, used for phrasing checks. */
24
+ readonly body: string;
25
+ }
26
+ export interface ICleanSlatePlanValidationIssue {
27
+ readonly code: 'plan_missing_file_entries' | 'plan_entry_missing_file_link' | 'plan_modify_target_missing' | 'plan_modify_target_directory' | 'plan_deferred_discovery' | 'plan_new_target_exists';
28
+ readonly message: string;
29
+ }
30
+ export interface ICleanSlatePlanValidationResult {
31
+ readonly errors: ICleanSlatePlanValidationIssue[];
32
+ readonly warnings: ICleanSlatePlanValidationIssue[];
33
+ }
34
+ export declare function extractPlanFileEntries(content: string): ICleanSlatePlanFileEntry[];
35
+ /** Converts a plan link target to a filesystem-ish path (decodes file:/// URIs). */
36
+ export declare function planEntryTargetToPath(target: string): string;
37
+ export interface ICleanSlatePlanTargetStat {
38
+ readonly exists: boolean;
39
+ readonly isDirectory: boolean;
40
+ }
41
+ /**
42
+ * Validates plan structure. `statTarget` resolves a link target to existence
43
+ * metadata; targets that cannot be resolved at all are treated as missing.
44
+ */
45
+ export declare function validateImplementationPlanStructure(content: string, statTarget: (path: string) => Promise<ICleanSlatePlanTargetStat | undefined>): Promise<ICleanSlatePlanValidationResult>;
46
+ export declare function formatPlanValidationRejection(result: ICleanSlatePlanValidationResult): string;
47
+ //# sourceMappingURL=cleanSlatePlanArtifactPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlatePlanArtifactPolicy.d.ts","sourceRoot":"","sources":["../../src/tools/cleanSlatePlanArtifactPolicy.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oEAAoE;IACpE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,IAAI,EACX,2BAA2B,GAC3B,8BAA8B,GAC9B,4BAA4B,GAC5B,8BAA8B,GAC9B,yBAAyB,GACzB,wBAAwB,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,EAAE,CAAC;CACpD;AAUD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,wBAAwB,EAAE,CAiClF;AAED,oFAAoF;AACpF,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAS5D;AAED,MAAM,WAAW,yBAAyB;IACzC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC9B;AAED;;;GAGG;AACH,wBAAsB,mCAAmC,CACxD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,GAC1E,OAAO,CAAC,+BAA+B,CAAC,CA6D1C;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,+BAA+B,GAAG,MAAM,CAU7F"}
@@ -0,0 +1,126 @@
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
+ const PLAN_ENTRY_WITH_LINK = /\[(MODIFY|NEW)\]\s*\[([^\]]*)\]\(([^)\s]+)\)/;
6
+ const PLAN_ENTRY_ANY = /\[(MODIFY|NEW)\]/;
7
+ const PLAN_HEADING = /^#{2,6}\s/;
8
+ // Matches the observed failure mode: entry bodies that schedule discovery for
9
+ // execution instead of naming the outcome of discovery already performed.
10
+ const DEFERRED_DISCOVERY_PATTERN = /\b(?:identify|determine|locate|figure out|audit|investigate|explore)\b[^.\n]{0,60}\b(?:which|the\s+(?:relevant|primary|appropriate|right|correct)|files?|screens?|components?|modules?|targets?)\b/i;
11
+ export function extractPlanFileEntries(content) {
12
+ const lines = content.split(/\r?\n/);
13
+ const entries = [];
14
+ let current;
15
+ for (const line of lines) {
16
+ const anyMatch = PLAN_ENTRY_ANY.exec(line);
17
+ if (anyMatch) {
18
+ const linked = PLAN_ENTRY_WITH_LINK.exec(line);
19
+ current = {
20
+ kind: (linked?.[1] ?? anyMatch[1]).toLowerCase() === 'new' ? 'new' : 'modify',
21
+ label: linked?.[2]?.trim() || line.replace(PLAN_ENTRY_ANY, '').trim().slice(0, 120),
22
+ target: linked?.[3],
23
+ bodyLines: []
24
+ };
25
+ entries.push(current);
26
+ continue;
27
+ }
28
+ if (current) {
29
+ if (PLAN_HEADING.test(line) && !PLAN_ENTRY_ANY.test(line)) {
30
+ current = undefined;
31
+ continue;
32
+ }
33
+ current.bodyLines.push(line);
34
+ }
35
+ }
36
+ return entries.map(entry => ({
37
+ kind: entry.kind,
38
+ label: entry.label,
39
+ target: entry.target,
40
+ body: entry.bodyLines.join('\n')
41
+ }));
42
+ }
43
+ /** Converts a plan link target to a filesystem-ish path (decodes file:/// URIs). */
44
+ export function planEntryTargetToPath(target) {
45
+ if (/^file:\/\//i.test(target)) {
46
+ try {
47
+ return decodeURIComponent(target.replace(/^file:\/\/(?:localhost)?/i, ''));
48
+ }
49
+ catch {
50
+ return target.replace(/^file:\/\/(?:localhost)?/i, '');
51
+ }
52
+ }
53
+ return target;
54
+ }
55
+ /**
56
+ * Validates plan structure. `statTarget` resolves a link target to existence
57
+ * metadata; targets that cannot be resolved at all are treated as missing.
58
+ */
59
+ export async function validateImplementationPlanStructure(content, statTarget) {
60
+ const errors = [];
61
+ const warnings = [];
62
+ const entries = extractPlanFileEntries(content);
63
+ if (entries.length === 0) {
64
+ errors.push({
65
+ code: 'plan_missing_file_entries',
66
+ message: 'The plan names no concrete files. Every proposed change needs a "#### [MODIFY] [basename](file:///absolute/path)" or "#### [NEW] ..." entry for an exact file.'
67
+ });
68
+ return { errors, warnings };
69
+ }
70
+ const MAX_STATTED_ENTRIES = 20;
71
+ let statted = 0;
72
+ for (const entry of entries) {
73
+ const entryName = entry.label || entry.target || '(unnamed entry)';
74
+ if (!entry.target) {
75
+ errors.push({
76
+ code: 'plan_entry_missing_file_link',
77
+ message: `Entry "${entryName}" has no file link. Use "[${entry.kind.toUpperCase()}] [basename](file:///absolute/path/to/file)" with the exact file discovered during planning.`
78
+ });
79
+ continue;
80
+ }
81
+ if (DEFERRED_DISCOVERY_PATTERN.test(entry.body)) {
82
+ warnings.push({
83
+ code: 'plan_deferred_discovery',
84
+ message: `Entry "${entryName}" defers discovery to execution ("identify/determine/locate..."). Do that discovery now, during planning, and state the concrete outcome instead.`
85
+ });
86
+ }
87
+ if (statted >= MAX_STATTED_ENTRIES) {
88
+ continue;
89
+ }
90
+ statted++;
91
+ const stat = await statTarget(planEntryTargetToPath(entry.target));
92
+ if (entry.kind === 'modify') {
93
+ if (!stat?.exists) {
94
+ errors.push({
95
+ code: 'plan_modify_target_missing',
96
+ message: `[MODIFY] target "${entryName}" does not exist in the workspace. Verify the path with discovery tools and link the real file, or use [NEW] if it is being created.`
97
+ });
98
+ }
99
+ else if (stat.isDirectory) {
100
+ errors.push({
101
+ code: 'plan_modify_target_directory',
102
+ message: `[MODIFY] target "${entryName}" is a directory, not a file. Plans must name the exact files to change — one entry per file, discovered during planning.`
103
+ });
104
+ }
105
+ }
106
+ else if (stat?.exists && !stat.isDirectory) {
107
+ warnings.push({
108
+ code: 'plan_new_target_exists',
109
+ message: `[NEW] target "${entryName}" already exists. Use [MODIFY] for existing files.`
110
+ });
111
+ }
112
+ }
113
+ return { errors, warnings };
114
+ }
115
+ export function formatPlanValidationRejection(result) {
116
+ const lines = [
117
+ 'The implementation plan is not implementation-ready:',
118
+ ...result.errors.slice(0, 6).map(issue => `- ${issue.message}`)
119
+ ];
120
+ if (result.warnings.length > 0) {
121
+ lines.push(...result.warnings.slice(0, 4).map(issue => `- (warning) ${issue.message}`));
122
+ }
123
+ lines.push('Planning is the discovery phase: name exact existing files (verified with reads/searches) and the specific change per file, then resubmit.');
124
+ return lines.join('\n');
125
+ }
126
+ //# sourceMappingURL=cleanSlatePlanArtifactPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlatePlanArtifactPolicy.js","sourceRoot":"","sources":["../../src/tools/cleanSlatePlanArtifactPolicy.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AA8ChG,MAAM,oBAAoB,GAAG,8CAA8C,CAAC;AAC5E,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAC1C,MAAM,YAAY,GAAG,WAAW,CAAC;AAEjC,8EAA8E;AAC9E,0EAA0E;AAC1E,MAAM,0BAA0B,GAAG,qMAAqM,CAAC;AAEzO,MAAM,UAAU,sBAAsB,CAAC,OAAe;IACrD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,OAAO,GAA6G,EAAE,CAAC;IAC7H,IAAI,OAA6C,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACd,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,GAAG;gBACT,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ;gBAC7E,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACnF,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACnB,SAAS,EAAE,EAAE;aACb,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,SAAS;QACV,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3D,OAAO,GAAG,SAAS,CAAC;gBACpB,SAAS;YACV,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KAChC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,qBAAqB,CAAC,MAAc;IACnD,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACJ,OAAO,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,MAAM,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QACxD,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAOD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACxD,OAAe,EACf,UAA4E;IAE5E,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAqC,EAAE,CAAC;IACtD,MAAM,OAAO,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAEhD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,2BAA2B;YACjC,OAAO,EAAE,gKAAgK;SACzK,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,iBAAiB,CAAC;QAEnE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,UAAU,SAAS,6BAA6B,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,8FAA8F;aAC/K,CAAC,CAAC;YACH,SAAS;QACV,CAAC;QAED,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,QAAQ,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,UAAU,SAAS,mJAAmJ;aAC/K,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,IAAI,mBAAmB,EAAE,CAAC;YACpC,SAAS;QACV,CAAC;QACD,OAAO,EAAE,CAAC;QAEV,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,4BAA4B;oBAClC,OAAO,EAAE,oBAAoB,SAAS,sIAAsI;iBAC5K,CAAC,CAAC;YACJ,CAAC;iBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,8BAA8B;oBACpC,OAAO,EAAE,oBAAoB,SAAS,2HAA2H;iBACjK,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;aAAM,IAAI,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACb,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,iBAAiB,SAAS,oDAAoD;aACvF,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAuC;IACpF,MAAM,KAAK,GAAG;QACb,sDAAsD;QACtD,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;KAC/D,CAAC;IACF,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACzF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,4IAA4I,CAAC,CAAC;IACzJ,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function isStaleGeneratedDiagnosticPath(pathCandidate: string | undefined): boolean;
2
+ export declare const STALE_GENERATED_DIAGNOSTIC_WARNING = "This file looks like a stale generated compiler log, not live workspace truth. Prefer read_lints or a fresh scoped compile command before editing code to satisfy errors listed here.";
3
+ //# sourceMappingURL=cleanSlateStaleDiagnosticPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateStaleDiagnosticPolicy.d.ts","sourceRoot":"","sources":["../../src/tools/cleanSlateStaleDiagnosticPolicy.ts"],"names":[],"mappings":"AAOA,wBAAgB,8BAA8B,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAKzF;AAED,eAAO,MAAM,kCAAkC,0LACyI,CAAC"}
@@ -0,0 +1,13 @@
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
+ const STALE_DIAGNOSTIC_FILE_PATTERN = /(?:^|\/)ts_errors(?:_v\d+)?\.txt$/i;
6
+ export function isStaleGeneratedDiagnosticPath(pathCandidate) {
7
+ if (!pathCandidate) {
8
+ return false;
9
+ }
10
+ return STALE_DIAGNOSTIC_FILE_PATTERN.test(pathCandidate.replace(/\\/g, '/'));
11
+ }
12
+ export const STALE_GENERATED_DIAGNOSTIC_WARNING = 'This file looks like a stale generated compiler log, not live workspace truth. Prefer read_lints or a fresh scoped compile command before editing code to satisfy errors listed here.';
13
+ //# sourceMappingURL=cleanSlateStaleDiagnosticPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanSlateStaleDiagnosticPolicy.js","sourceRoot":"","sources":["../../src/tools/cleanSlateStaleDiagnosticPolicy.ts"],"names":[],"mappings":"AAAA;;;gGAGgG;AAEhG,MAAM,6BAA6B,GAAG,oCAAoC,CAAC;AAE3E,MAAM,UAAU,8BAA8B,CAAC,aAAiC;IAC/E,IAAI,CAAC,aAAa,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,6BAA6B,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,MAAM,kCAAkC,GAC9C,uLAAuL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { URI } from '../core/uri.js';
2
+ import { Position } from '../core/position.js';
3
+ import { ISlateTextModel } from '../host/textModel.js';
4
+ import { CleanSlateToolContext } from './types.js';
5
+ export declare function resolveBackgroundLanguageFeatureModel(uri: URI, context: CleanSlateToolContext): Promise<ISlateTextModel | undefined>;
6
+ export declare function fireLanguageServerForUri(uri: URI, context: CleanSlateToolContext, command?: {
7
+ id: string;
8
+ args: unknown[];
9
+ }): Promise<unknown[] | undefined>;
10
+ export declare function fireDocumentSymbolProvider(uri: URI, context: CleanSlateToolContext): Promise<unknown[] | undefined>;
11
+ export declare function fireDefinitionProvider(uri: URI, position: Position, context: CleanSlateToolContext): Promise<unknown[] | undefined>;
12
+ export declare function fireReferenceProvider(uri: URI, position: Position, context: CleanSlateToolContext): Promise<unknown[] | undefined>;
13
+ //# sourceMappingURL=languageFeatureActivation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageFeatureActivation.d.ts","sourceRoot":"","sources":["../../src/tools/languageFeatureActivation.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,wBAAsB,qCAAqC,CACvD,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CA0CtC;AAED,wBAAsB,wBAAwB,CAC1C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,EAAE,CAAA;CAAE,GAC1C,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAsBhC;AAED,wBAAsB,0BAA0B,CAC5C,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAKhC;AAED,wBAAsB,sBAAsB,CACxC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAKhC;AAED,wBAAsB,qBAAqB,CACvC,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,qBAAqB,GAC/B,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAKhC"}
@@ -0,0 +1,95 @@
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
+ import { isUriInIdeWorkspace } from './utils.js';
6
+ export async function resolveBackgroundLanguageFeatureModel(uri, context) {
7
+ let model = context.modelService.getModel(uri);
8
+ if (model) {
9
+ return model;
10
+ }
11
+ try {
12
+ await context.textFileService.files.resolve(uri);
13
+ }
14
+ catch (error) {
15
+ console.info(`[CleanSlateEdit] lsp_fire: file resolve failed for ${uri.fsPath}: ${String(error)}`);
16
+ }
17
+ model = context.modelService.getModel(uri);
18
+ if (model) {
19
+ return model;
20
+ }
21
+ // Only fall back to opening a real editor when the file belongs to the
22
+ // workspace the IDE currently has open. `editorService`/`codeEditorService`
23
+ // are the global workbench singletons, so for a cross-project Agent Manager
24
+ // session an openEditor here would surface the session's file as a tab in a
25
+ // DIFFERENT project's window (the file "leak"). Keep LSP warm-up headless in
26
+ // that case; the file resolve above already loaded the model if it could.
27
+ if (!isUriInIdeWorkspace(context, uri)) {
28
+ return context.modelService.getModel(uri) ?? undefined;
29
+ }
30
+ try {
31
+ await context.editorService.openEditor({
32
+ resource: uri,
33
+ options: {
34
+ preserveFocus: true,
35
+ pinned: false,
36
+ inactive: true,
37
+ revealIfVisible: false,
38
+ revealIfOpened: false
39
+ }
40
+ });
41
+ }
42
+ catch (error) {
43
+ console.info(`[CleanSlateEdit] lsp_fire: background open failed for ${uri.fsPath}: ${String(error)}`);
44
+ }
45
+ return context.modelService.getModel(uri) ?? undefined;
46
+ }
47
+ export async function fireLanguageServerForUri(uri, context, command) {
48
+ const model = await resolveBackgroundLanguageFeatureModel(uri, context);
49
+ if (!context.commandService || !command) {
50
+ return undefined;
51
+ }
52
+ // ── Synchronization Buffer for Large Files ────────────────────────────────
53
+ // In large files (> 500 lines), the Language Server (LSP) re-indexes in the background
54
+ // after a mutation. If we fire a command immediately, we get stale coordinates.
55
+ if (model && model.getLineCount() > 500) {
56
+ console.info(`[CleanSlateSync] Large file detected (${model.getLineCount()} lines). Waiting for LSP to stabilize...`);
57
+ await new Promise(resolve => setTimeout(resolve, 500));
58
+ }
59
+ try {
60
+ const result = await context.commandService.executeCommand(command.id, ...command.args);
61
+ return normalizeLanguageFeatureCommandResult(result);
62
+ }
63
+ catch (error) {
64
+ console.info(`[CleanSlateEdit] lsp_fire: ${command.id} failed for ${uri.fsPath}: ${String(error)}`);
65
+ return undefined;
66
+ }
67
+ }
68
+ export async function fireDocumentSymbolProvider(uri, context) {
69
+ return fireLanguageServerForUri(uri, context, {
70
+ id: '_executeDocumentSymbolProvider',
71
+ args: [uri]
72
+ });
73
+ }
74
+ export async function fireDefinitionProvider(uri, position, context) {
75
+ return fireLanguageServerForUri(uri, context, {
76
+ id: '_executeDefinitionProvider',
77
+ args: [uri, position]
78
+ });
79
+ }
80
+ export async function fireReferenceProvider(uri, position, context) {
81
+ return fireLanguageServerForUri(uri, context, {
82
+ id: '_executeReferenceProvider',
83
+ args: [uri, position]
84
+ });
85
+ }
86
+ function normalizeLanguageFeatureCommandResult(result) {
87
+ if (Array.isArray(result)) {
88
+ return result;
89
+ }
90
+ if (result) {
91
+ return [result];
92
+ }
93
+ return undefined;
94
+ }
95
+ //# sourceMappingURL=languageFeatureActivation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageFeatureActivation.js","sourceRoot":"","sources":["../../src/tools/languageFeatureActivation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { CleanSlateTool, CleanSlateToolContext } from './types.js';
2
+ export declare const ALL_TOOLS: CleanSlateTool[];
3
+ export declare function getToolByName(name: string): CleanSlateTool | undefined;
4
+ export declare function executeTool(toolName: string, input: any, context: CleanSlateToolContext): Promise<any>;
5
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AA0DnE,eAAO,MAAM,SAAS,EAAE,cAAc,EA4DrC,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,GAAG,CAAC,CAI5G"}
@@ -0,0 +1,104 @@
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
+ import { readFileTool } from './ReadFileTool.js';
6
+ import { readFileRangeTool } from './ReadFileRangeTool.js';
7
+ import { semanticSearchTool } from './SemanticSearchTool.js';
8
+ import { searchCodebaseTool } from './SearchCodebaseTool.js';
9
+ import { findByNameTool } from './FindByNameTool.js';
10
+ import { grepSearchTool } from './GrepSearchTool.js';
11
+ import { searchWorkspaceTool } from './SearchWorkspaceTool.js';
12
+ import { executeCommandTool, readBackgroundCommandTool, startBackgroundCommandTool, stopBackgroundCommandTool } from './ExecuteCommandTool.js';
13
+ import { applyEditTool } from './ApplyEditTool.js';
14
+ import { listDirTool } from './ListDirTool.js';
15
+ import { getOpenFilesTool } from './GetOpenFilesTool.js';
16
+ import { writeFileTool } from './WriteFileTool.js';
17
+ import { createMultipleFilesTool } from './CreateMultipleFilesTool.js';
18
+ import { multiFileReplaceTool } from './MultiFileReplaceTool.js';
19
+ import { updateTodoTool } from './UpdateTodoTool.js';
20
+ import { submitArtifactTool } from './SubmitArtifactTool.js';
21
+ import { askQuestionTool } from './AskQuestionTool.js';
22
+ import { spawnWorkerTool } from './SpawnWorkerTool.js';
23
+ import { readReferenceTool } from './ReadReferenceTool.js';
24
+ import { readLintsTool } from './ReadLintsTool.js';
25
+ import { readSymbolsTool } from './ReadSymbolsTool.js';
26
+ import { getDefinitionsTool } from './GetDefinitionsTool.js';
27
+ import { findReferencesTool } from './FindReferencesTool.js';
28
+ import { undoEditTool } from './UndoEditTool.js';
29
+ import { fileHistoryRewindTool } from './FileHistoryRewindTool.js';
30
+ import { mcpCallTool, mcpListToolsTool } from './MCPTools.js';
31
+ import { listSkillsTool } from './SkillTools.js';
32
+ import { webFetchTool, webSearchTool } from './WebRetrievalTools.js';
33
+ import { browserClickTool, browserCheckTool, browserClipboardTool, browserCloseTabTool, browserClearAnnotationsTool, browserDeleteAnnotationTool, browserDiagnosticsTool, browserDialogTool, browserFillTool, browserGetUrlTool, browserHoverTool, browserKeyTool, browserListAnnotationsTool, browserNewTabTool, browserOpenTool, browserScreenshotTool, browserScrollTool, browserSelectTool, browserSelectTabTool, browserSnapshotTool, browserStartAnnotationTool, browserStopAnnotationTool, browserTabsTool, browserTypeTool, browserUploadTool, browserWaitTool } from './BrowserAutomationTools.js';
34
+ export const ALL_TOOLS = [
35
+ readFileTool,
36
+ readFileRangeTool,
37
+ semanticSearchTool,
38
+ searchWorkspaceTool,
39
+ searchCodebaseTool,
40
+ applyEditTool,
41
+ multiFileReplaceTool,
42
+ getOpenFilesTool,
43
+ writeFileTool,
44
+ createMultipleFilesTool,
45
+ findByNameTool,
46
+ grepSearchTool,
47
+ executeCommandTool,
48
+ startBackgroundCommandTool,
49
+ readBackgroundCommandTool,
50
+ stopBackgroundCommandTool,
51
+ webSearchTool,
52
+ webFetchTool,
53
+ browserOpenTool,
54
+ browserGetUrlTool,
55
+ browserTabsTool,
56
+ browserNewTabTool,
57
+ browserSelectTabTool,
58
+ browserCloseTabTool,
59
+ browserWaitTool,
60
+ browserSnapshotTool,
61
+ browserClickTool,
62
+ browserClipboardTool,
63
+ browserHoverTool,
64
+ browserFillTool,
65
+ browserCheckTool,
66
+ browserSelectTool,
67
+ browserUploadTool,
68
+ browserTypeTool,
69
+ browserKeyTool,
70
+ browserScrollTool,
71
+ browserScreenshotTool,
72
+ browserDiagnosticsTool,
73
+ browserDialogTool,
74
+ browserStartAnnotationTool,
75
+ browserStopAnnotationTool,
76
+ browserListAnnotationsTool,
77
+ browserDeleteAnnotationTool,
78
+ browserClearAnnotationsTool,
79
+ listDirTool,
80
+ spawnWorkerTool,
81
+ listSkillsTool,
82
+ mcpListToolsTool,
83
+ mcpCallTool,
84
+ readReferenceTool,
85
+ updateTodoTool,
86
+ askQuestionTool,
87
+ submitArtifactTool,
88
+ readLintsTool,
89
+ readSymbolsTool,
90
+ getDefinitionsTool,
91
+ findReferencesTool,
92
+ undoEditTool,
93
+ fileHistoryRewindTool
94
+ ];
95
+ export function getToolByName(name) {
96
+ return ALL_TOOLS.find(tool => tool.name === name);
97
+ }
98
+ export async function executeTool(toolName, input, context) {
99
+ const tool = getToolByName(toolName);
100
+ if (!tool)
101
+ throw new Error(`Tool "${toolName}" not found.`);
102
+ return await tool.run(input, context);
103
+ }
104
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ISlateTextModel } from '../host/textModel.js';
2
+ import { CleanSlateStructuredEdit } from '../services/cleanSlateEditService.js';
3
+ import { CleanSlateToolContext } from './types.js';
4
+ export declare function canonicalizeStructuredEdits(path: string, model: ISlateTextModel, edits: CleanSlateStructuredEdit[], context: CleanSlateToolContext): Promise<{
5
+ ok: true;
6
+ edits: CleanSlateStructuredEdit[];
7
+ } | {
8
+ ok: false;
9
+ failure: any;
10
+ }>;
11
+ //# sourceMappingURL=structuredEditCanonicalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredEditCanonicalizer.d.ts","sourceRoot":"","sources":["../../src/tools/structuredEditCanonicalizer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,wBAAsB,2BAA2B,CAChD,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,wBAAwB,EAAE,EACjC,OAAO,EAAE,qBAAqB,GAC5B,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,wBAAwB,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAaxF"}
@@ -0,0 +1,44 @@
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
+ import { Range } from '../core/range.js';
6
+ import { resolveSymbolStructuredEdits } from './symbolEditResolver.js';
7
+ export async function canonicalizeStructuredEdits(path, model, edits, context) {
8
+ console.info('[CleanSlateEdit] exact-string edit contract; structured symbol/range inputs are legacy compatibility only.');
9
+ const symbolResolution = await resolveSymbolStructuredEdits(path, model, edits, context);
10
+ if (!symbolResolution.ok) {
11
+ return symbolResolution;
12
+ }
13
+ const normalizedRangeEdits = await normalizeRangeEditsWithStructure(model, symbolResolution.edits, context);
14
+ console.info(`[CleanSlateEdit] canonicalized ${edits.length} edit(s) into ${normalizedRangeEdits.length} deterministic edit request(s).`);
15
+ return {
16
+ ok: true,
17
+ edits: normalizedRangeEdits
18
+ };
19
+ }
20
+ async function normalizeRangeEditsWithStructure(model, edits, context) {
21
+ void context;
22
+ return edits.map(edit => {
23
+ if (edit.mode !== 'replace_range' || edit.startLine === undefined || edit.endLine === undefined) {
24
+ return edit;
25
+ }
26
+ const normalizedEdit = {
27
+ ...edit,
28
+ startColumn: edit.startColumn ?? 1,
29
+ endColumn: edit.endColumn ?? model.getLineMaxColumn(edit.endLine)
30
+ };
31
+ const normalizedRange = new Range(normalizedEdit.startLine, normalizedEdit.startColumn, normalizedEdit.endLine, normalizedEdit.endColumn);
32
+ if (shouldAutoAttachOriginalText(model, normalizedRange) && typeof normalizedEdit.originalText !== 'string') {
33
+ normalizedEdit.originalText = model.getValueInRange(normalizedRange);
34
+ }
35
+ return normalizedEdit;
36
+ });
37
+ }
38
+ function shouldAutoAttachOriginalText(model, range) {
39
+ if (model.getLineCount() >= 500) {
40
+ return true;
41
+ }
42
+ return range.endLineNumber > range.startLineNumber;
43
+ }
44
+ //# sourceMappingURL=structuredEditCanonicalizer.js.map