@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,623 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Microsoft Corporation. All rights reserved.
3
+ * Licensed under the MIT License. See License.txt in the project root for license information.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ /*
6
+ * Vendored from microsoft/vscode (vs/base/common/uri.ts) for @cleanslate/sdk.
7
+ * Changes: see packages/cleanslate-sdk/VENDOR.md.
8
+ */
9
+ import { CharCode } from './charCode.js';
10
+ import { MarshalledId } from './marshallingIds.js';
11
+ import * as paths from 'node:path';
12
+ import { isWindows } from './platform.js';
13
+ const _schemePattern = /^\w[\w\d+.-]*$/;
14
+ const _singleSlashStart = /^\//;
15
+ const _doubleSlashStart = /^\/\//;
16
+ function _validateUri(ret, _strict) {
17
+ // scheme, must be set
18
+ if (!ret.scheme && _strict) {
19
+ throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${ret.authority}", path: "${ret.path}", query: "${ret.query}", fragment: "${ret.fragment}"}`);
20
+ }
21
+ // scheme, https://tools.ietf.org/html/rfc3986#section-3.1
22
+ // ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
23
+ if (ret.scheme && !_schemePattern.test(ret.scheme)) {
24
+ throw new Error('[UriError]: Scheme contains illegal characters.');
25
+ }
26
+ // path, http://tools.ietf.org/html/rfc3986#section-3.3
27
+ // If a URI contains an authority component, then the path component
28
+ // must either be empty or begin with a slash ("/") character. If a URI
29
+ // does not contain an authority component, then the path cannot begin
30
+ // with two slash characters ("//").
31
+ if (ret.path) {
32
+ if (ret.authority) {
33
+ if (!_singleSlashStart.test(ret.path)) {
34
+ throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character');
35
+ }
36
+ }
37
+ else {
38
+ if (_doubleSlashStart.test(ret.path)) {
39
+ throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")');
40
+ }
41
+ }
42
+ }
43
+ }
44
+ // for a while we allowed uris *without* schemes and this is the migration
45
+ // for them, e.g. an uri without scheme and without strict-mode warns and falls
46
+ // back to the file-scheme. that should cause the least carnage and still be a
47
+ // clear warning
48
+ function _schemeFix(scheme, _strict) {
49
+ if (!scheme && !_strict) {
50
+ return 'file';
51
+ }
52
+ return scheme;
53
+ }
54
+ // implements a bit of https://tools.ietf.org/html/rfc3986#section-5
55
+ function _referenceResolution(scheme, path) {
56
+ // the slash-character is our 'default base' as we don't
57
+ // support constructing URIs relative to other URIs. This
58
+ // also means that we alter and potentially break paths.
59
+ // see https://tools.ietf.org/html/rfc3986#section-5.1.4
60
+ switch (scheme) {
61
+ case 'https':
62
+ case 'http':
63
+ case 'file':
64
+ if (!path) {
65
+ path = _slash;
66
+ }
67
+ else if (path[0] !== _slash) {
68
+ path = _slash + path;
69
+ }
70
+ break;
71
+ }
72
+ return path;
73
+ }
74
+ const _empty = '';
75
+ const _slash = '/';
76
+ const _regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
77
+ /**
78
+ * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.
79
+ * This class is a simple parser which creates the basic component parts
80
+ * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation
81
+ * and encoding.
82
+ *
83
+ * ```txt
84
+ * foo://example.com:8042/over/there?name=ferret#nose
85
+ * \_/ \______________/\_________/ \_________/ \__/
86
+ * | | | | |
87
+ * scheme authority path query fragment
88
+ * | _____________________|__
89
+ * / \ / \
90
+ * urn:example:animal:ferret:nose
91
+ * ```
92
+ */
93
+ export class URI {
94
+ static isUri(thing) {
95
+ if (thing instanceof URI) {
96
+ return true;
97
+ }
98
+ if (!thing || typeof thing !== 'object') {
99
+ return false;
100
+ }
101
+ return typeof thing.authority === 'string'
102
+ && typeof thing.fragment === 'string'
103
+ && typeof thing.path === 'string'
104
+ && typeof thing.query === 'string'
105
+ && typeof thing.scheme === 'string'
106
+ && typeof thing.fsPath === 'string'
107
+ && typeof thing.with === 'function'
108
+ && typeof thing.toString === 'function';
109
+ }
110
+ /**
111
+ * @internal
112
+ */
113
+ constructor(schemeOrData, authority, path, query, fragment, _strict = false) {
114
+ if (typeof schemeOrData === 'object') {
115
+ this.scheme = schemeOrData.scheme || _empty;
116
+ this.authority = schemeOrData.authority || _empty;
117
+ this.path = schemeOrData.path || _empty;
118
+ this.query = schemeOrData.query || _empty;
119
+ this.fragment = schemeOrData.fragment || _empty;
120
+ // no validation because it's this URI
121
+ // that creates uri components.
122
+ // _validateUri(this);
123
+ }
124
+ else {
125
+ this.scheme = _schemeFix(schemeOrData, _strict);
126
+ this.authority = authority || _empty;
127
+ this.path = _referenceResolution(this.scheme, path || _empty);
128
+ this.query = query || _empty;
129
+ this.fragment = fragment || _empty;
130
+ _validateUri(this, _strict);
131
+ }
132
+ }
133
+ // ---- filesystem path -----------------------
134
+ /**
135
+ * Returns a string representing the corresponding file system path of this URI.
136
+ * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the
137
+ * platform specific path separator.
138
+ *
139
+ * * Will *not* validate the path for invalid characters and semantics.
140
+ * * Will *not* look at the scheme of this URI.
141
+ * * The result shall *not* be used for display purposes but for accessing a file on disk.
142
+ *
143
+ *
144
+ * The *difference* to `URI#path` is the use of the platform specific separator and the handling
145
+ * of UNC paths. See the below sample of a file-uri with an authority (UNC path).
146
+ *
147
+ * ```ts
148
+ const u = URI.parse('file://server/c$/folder/file.txt')
149
+ u.authority === 'server'
150
+ u.path === '/shares/c$/file.txt'
151
+ u.fsPath === '\\server\c$\folder\file.txt'
152
+ ```
153
+ *
154
+ * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,
155
+ * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working
156
+ * with URIs that represent files on disk (`file` scheme).
157
+ */
158
+ get fsPath() {
159
+ // if (this.scheme !== 'file') {
160
+ // console.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);
161
+ // }
162
+ return uriToFsPath(this, false);
163
+ }
164
+ // ---- modify to new -------------------------
165
+ with(change) {
166
+ if (!change) {
167
+ return this;
168
+ }
169
+ let { scheme, authority, path, query, fragment } = change;
170
+ if (scheme === undefined) {
171
+ scheme = this.scheme;
172
+ }
173
+ else if (scheme === null) {
174
+ scheme = _empty;
175
+ }
176
+ if (authority === undefined) {
177
+ authority = this.authority;
178
+ }
179
+ else if (authority === null) {
180
+ authority = _empty;
181
+ }
182
+ if (path === undefined) {
183
+ path = this.path;
184
+ }
185
+ else if (path === null) {
186
+ path = _empty;
187
+ }
188
+ if (query === undefined) {
189
+ query = this.query;
190
+ }
191
+ else if (query === null) {
192
+ query = _empty;
193
+ }
194
+ if (fragment === undefined) {
195
+ fragment = this.fragment;
196
+ }
197
+ else if (fragment === null) {
198
+ fragment = _empty;
199
+ }
200
+ if (scheme === this.scheme
201
+ && authority === this.authority
202
+ && path === this.path
203
+ && query === this.query
204
+ && fragment === this.fragment) {
205
+ return this;
206
+ }
207
+ return new Uri(scheme, authority, path, query, fragment);
208
+ }
209
+ // ---- parse & validate ------------------------
210
+ /**
211
+ * Creates a new URI from a string, e.g. `http://www.example.com/some/path`,
212
+ * `file:///usr/home`, or `scheme:with/path`.
213
+ *
214
+ * @param value A string which represents an URI (see `URI#toString`).
215
+ */
216
+ static parse(value, _strict = false) {
217
+ const match = _regexp.exec(value);
218
+ if (!match) {
219
+ return new Uri(_empty, _empty, _empty, _empty, _empty);
220
+ }
221
+ return new Uri(match[2] || _empty, percentDecode(match[4] || _empty), percentDecode(match[5] || _empty), percentDecode(match[7] || _empty), percentDecode(match[9] || _empty), _strict);
222
+ }
223
+ /**
224
+ * Creates a new URI from a file system path, e.g. `c:\my\files`,
225
+ * `/usr/home`, or `\\server\share\some\path`.
226
+ *
227
+ * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument
228
+ * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**
229
+ * `URI.parse('file://' + path)` because the path might contain characters that are
230
+ * interpreted (# and ?). See the following sample:
231
+ * ```ts
232
+ const good = URI.file('/coding/c#/project1');
233
+ good.scheme === 'file';
234
+ good.path === '/coding/c#/project1';
235
+ good.fragment === '';
236
+ const bad = URI.parse('file://' + '/coding/c#/project1');
237
+ bad.scheme === 'file';
238
+ bad.path === '/coding/c'; // path is now broken
239
+ bad.fragment === '/project1';
240
+ ```
241
+ *
242
+ * @param path A file system path (see `URI#fsPath`)
243
+ */
244
+ static file(path) {
245
+ let authority = _empty;
246
+ // normalize to fwd-slashes on windows,
247
+ // on other systems bwd-slashes are valid
248
+ // filename character, eg /f\oo/ba\r.txt
249
+ if (isWindows) {
250
+ path = path.replace(/\\/g, _slash);
251
+ }
252
+ // check for authority as used in UNC shares
253
+ // or use the path as given
254
+ if (path[0] === _slash && path[1] === _slash) {
255
+ const idx = path.indexOf(_slash, 2);
256
+ if (idx === -1) {
257
+ authority = path.substring(2);
258
+ path = _slash;
259
+ }
260
+ else {
261
+ authority = path.substring(2, idx);
262
+ path = path.substring(idx) || _slash;
263
+ }
264
+ }
265
+ return new Uri('file', authority, path, _empty, _empty);
266
+ }
267
+ /**
268
+ * Creates new URI from uri components.
269
+ *
270
+ * Unless `strict` is `true` the scheme is defaults to be `file`. This function performs
271
+ * validation and should be used for untrusted uri components retrieved from storage,
272
+ * user input, command arguments etc
273
+ */
274
+ static from(components, strict) {
275
+ const result = new Uri(components.scheme, components.authority, components.path, components.query, components.fragment, strict);
276
+ return result;
277
+ }
278
+ /**
279
+ * Join a URI path with path fragments and normalizes the resulting path.
280
+ *
281
+ * @param uri The input URI.
282
+ * @param pathFragment The path fragment to add to the URI path.
283
+ * @returns The resulting URI.
284
+ */
285
+ static joinPath(uri, ...pathFragment) {
286
+ if (!uri.path) {
287
+ throw new Error(`[UriError]: cannot call joinPath on URI without path`);
288
+ }
289
+ let newPath;
290
+ if (isWindows && uri.scheme === 'file') {
291
+ newPath = URI.file(paths.win32.join(uriToFsPath(uri, true), ...pathFragment)).path;
292
+ }
293
+ else {
294
+ newPath = paths.posix.join(uri.path, ...pathFragment);
295
+ }
296
+ return uri.with({ path: newPath });
297
+ }
298
+ // ---- printing/externalize ---------------------------
299
+ /**
300
+ * Creates a string representation for this URI. It's guaranteed that calling
301
+ * `URI.parse` with the result of this function creates an URI which is equal
302
+ * to this URI.
303
+ *
304
+ * * The result shall *not* be used for display purposes but for externalization or transport.
305
+ * * The result will be encoded using the percentage encoding and encoding happens mostly
306
+ * ignore the scheme-specific encoding rules.
307
+ *
308
+ * @param skipEncoding Do not encode the result, default is `false`
309
+ */
310
+ toString(skipEncoding = false) {
311
+ return _asFormatted(this, skipEncoding);
312
+ }
313
+ toJSON() {
314
+ return this;
315
+ }
316
+ static revive(data) {
317
+ if (!data) {
318
+ return data;
319
+ }
320
+ else if (data instanceof URI) {
321
+ return data;
322
+ }
323
+ else {
324
+ const result = new Uri(data);
325
+ result._formatted = data.external ?? null;
326
+ result._fsPath = data._sep === _pathSepMarker ? data.fsPath ?? null : null;
327
+ return result;
328
+ }
329
+ }
330
+ [Symbol.for('debug.description')]() {
331
+ return `URI(${this.toString()})`;
332
+ }
333
+ }
334
+ export function isUriComponents(thing) {
335
+ if (!thing || typeof thing !== 'object') {
336
+ return false;
337
+ }
338
+ return typeof thing.scheme === 'string'
339
+ && (typeof thing.authority === 'string' || typeof thing.authority === 'undefined')
340
+ && (typeof thing.path === 'string' || typeof thing.path === 'undefined')
341
+ && (typeof thing.query === 'string' || typeof thing.query === 'undefined')
342
+ && (typeof thing.fragment === 'string' || typeof thing.fragment === 'undefined');
343
+ }
344
+ const _pathSepMarker = isWindows ? 1 : undefined;
345
+ // This class exists so that URI is compatible with vscode.Uri (API).
346
+ class Uri extends URI {
347
+ constructor() {
348
+ super(...arguments);
349
+ this._formatted = null;
350
+ this._fsPath = null;
351
+ }
352
+ get fsPath() {
353
+ if (!this._fsPath) {
354
+ this._fsPath = uriToFsPath(this, false);
355
+ }
356
+ return this._fsPath;
357
+ }
358
+ toString(skipEncoding = false) {
359
+ if (!skipEncoding) {
360
+ if (!this._formatted) {
361
+ this._formatted = _asFormatted(this, false);
362
+ }
363
+ return this._formatted;
364
+ }
365
+ else {
366
+ // we don't cache that
367
+ return _asFormatted(this, true);
368
+ }
369
+ }
370
+ toJSON() {
371
+ // eslint-disable-next-line local/code-no-dangerous-type-assertions
372
+ const res = {
373
+ $mid: MarshalledId.Uri
374
+ };
375
+ // cached state
376
+ if (this._fsPath) {
377
+ res.fsPath = this._fsPath;
378
+ res._sep = _pathSepMarker;
379
+ }
380
+ if (this._formatted) {
381
+ res.external = this._formatted;
382
+ }
383
+ //--- uri components
384
+ if (this.path) {
385
+ res.path = this.path;
386
+ }
387
+ // TODO
388
+ // this isn't correct and can violate the UriComponents contract but
389
+ // this is part of the vscode.Uri API and we shouldn't change how that
390
+ // works anymore
391
+ if (this.scheme) {
392
+ res.scheme = this.scheme;
393
+ }
394
+ if (this.authority) {
395
+ res.authority = this.authority;
396
+ }
397
+ if (this.query) {
398
+ res.query = this.query;
399
+ }
400
+ if (this.fragment) {
401
+ res.fragment = this.fragment;
402
+ }
403
+ return res;
404
+ }
405
+ }
406
+ // reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2
407
+ const encodeTable = {
408
+ [CharCode.Colon]: '%3A', // gen-delims
409
+ [CharCode.Slash]: '%2F',
410
+ [CharCode.QuestionMark]: '%3F',
411
+ [CharCode.Hash]: '%23',
412
+ [CharCode.OpenSquareBracket]: '%5B',
413
+ [CharCode.CloseSquareBracket]: '%5D',
414
+ [CharCode.AtSign]: '%40',
415
+ [CharCode.ExclamationMark]: '%21', // sub-delims
416
+ [CharCode.DollarSign]: '%24',
417
+ [CharCode.Ampersand]: '%26',
418
+ [CharCode.SingleQuote]: '%27',
419
+ [CharCode.OpenParen]: '%28',
420
+ [CharCode.CloseParen]: '%29',
421
+ [CharCode.Asterisk]: '%2A',
422
+ [CharCode.Plus]: '%2B',
423
+ [CharCode.Comma]: '%2C',
424
+ [CharCode.Semicolon]: '%3B',
425
+ [CharCode.Equals]: '%3D',
426
+ [CharCode.Space]: '%20',
427
+ };
428
+ function encodeURIComponentFast(uriComponent, isPath, isAuthority) {
429
+ let res = undefined;
430
+ let nativeEncodePos = -1;
431
+ for (let pos = 0; pos < uriComponent.length; pos++) {
432
+ const code = uriComponent.charCodeAt(pos);
433
+ // unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3
434
+ if ((code >= CharCode.a && code <= CharCode.z)
435
+ || (code >= CharCode.A && code <= CharCode.Z)
436
+ || (code >= CharCode.Digit0 && code <= CharCode.Digit9)
437
+ || code === CharCode.Dash
438
+ || code === CharCode.Period
439
+ || code === CharCode.Underline
440
+ || code === CharCode.Tilde
441
+ || (isPath && code === CharCode.Slash)
442
+ || (isAuthority && code === CharCode.OpenSquareBracket)
443
+ || (isAuthority && code === CharCode.CloseSquareBracket)
444
+ || (isAuthority && code === CharCode.Colon)) {
445
+ // check if we are delaying native encode
446
+ if (nativeEncodePos !== -1) {
447
+ res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));
448
+ nativeEncodePos = -1;
449
+ }
450
+ // check if we write into a new string (by default we try to return the param)
451
+ if (res !== undefined) {
452
+ res += uriComponent.charAt(pos);
453
+ }
454
+ }
455
+ else {
456
+ // encoding needed, we need to allocate a new string
457
+ if (res === undefined) {
458
+ res = uriComponent.substr(0, pos);
459
+ }
460
+ // check with default table first
461
+ const escaped = encodeTable[code];
462
+ if (escaped !== undefined) {
463
+ // check if we are delaying native encode
464
+ if (nativeEncodePos !== -1) {
465
+ res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));
466
+ nativeEncodePos = -1;
467
+ }
468
+ // append escaped variant to result
469
+ res += escaped;
470
+ }
471
+ else if (nativeEncodePos === -1) {
472
+ // use native encode only when needed
473
+ nativeEncodePos = pos;
474
+ }
475
+ }
476
+ }
477
+ if (nativeEncodePos !== -1) {
478
+ res += encodeURIComponent(uriComponent.substring(nativeEncodePos));
479
+ }
480
+ return res !== undefined ? res : uriComponent;
481
+ }
482
+ function encodeURIComponentMinimal(path) {
483
+ let res = undefined;
484
+ for (let pos = 0; pos < path.length; pos++) {
485
+ const code = path.charCodeAt(pos);
486
+ if (code === CharCode.Hash || code === CharCode.QuestionMark) {
487
+ if (res === undefined) {
488
+ res = path.substr(0, pos);
489
+ }
490
+ res += encodeTable[code];
491
+ }
492
+ else {
493
+ if (res !== undefined) {
494
+ res += path[pos];
495
+ }
496
+ }
497
+ }
498
+ return res !== undefined ? res : path;
499
+ }
500
+ /**
501
+ * Compute `fsPath` for the given uri
502
+ */
503
+ export function uriToFsPath(uri, keepDriveLetterCasing) {
504
+ let value;
505
+ if (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {
506
+ // unc path: file://shares/c$/far/boo
507
+ value = `//${uri.authority}${uri.path}`;
508
+ }
509
+ else if (uri.path.charCodeAt(0) === CharCode.Slash
510
+ && (uri.path.charCodeAt(1) >= CharCode.A && uri.path.charCodeAt(1) <= CharCode.Z || uri.path.charCodeAt(1) >= CharCode.a && uri.path.charCodeAt(1) <= CharCode.z)
511
+ && uri.path.charCodeAt(2) === CharCode.Colon) {
512
+ if (!keepDriveLetterCasing) {
513
+ // windows drive letter: file:///c:/far/boo
514
+ value = uri.path[1].toLowerCase() + uri.path.substr(2);
515
+ }
516
+ else {
517
+ value = uri.path.substr(1);
518
+ }
519
+ }
520
+ else {
521
+ // other path
522
+ value = uri.path;
523
+ }
524
+ if (isWindows) {
525
+ value = value.replace(/\//g, '\\');
526
+ }
527
+ return value;
528
+ }
529
+ /**
530
+ * Create the external version of a uri
531
+ */
532
+ function _asFormatted(uri, skipEncoding) {
533
+ const encoder = !skipEncoding
534
+ ? encodeURIComponentFast
535
+ : encodeURIComponentMinimal;
536
+ let res = '';
537
+ let { scheme, authority, path, query, fragment } = uri;
538
+ if (scheme) {
539
+ res += scheme;
540
+ res += ':';
541
+ }
542
+ if (authority || scheme === 'file') {
543
+ res += _slash;
544
+ res += _slash;
545
+ }
546
+ if (authority) {
547
+ let idx = authority.indexOf('@');
548
+ if (idx !== -1) {
549
+ // <user>@<auth>
550
+ const userinfo = authority.substr(0, idx);
551
+ authority = authority.substr(idx + 1);
552
+ idx = userinfo.lastIndexOf(':');
553
+ if (idx === -1) {
554
+ res += encoder(userinfo, false, false);
555
+ }
556
+ else {
557
+ // <user>:<pass>@<auth>
558
+ res += encoder(userinfo.substr(0, idx), false, false);
559
+ res += ':';
560
+ res += encoder(userinfo.substr(idx + 1), false, true);
561
+ }
562
+ res += '@';
563
+ }
564
+ authority = authority.toLowerCase();
565
+ idx = authority.lastIndexOf(':');
566
+ if (idx === -1) {
567
+ res += encoder(authority, false, true);
568
+ }
569
+ else {
570
+ // <auth>:<port>
571
+ res += encoder(authority.substr(0, idx), false, true);
572
+ res += authority.substr(idx);
573
+ }
574
+ }
575
+ if (path) {
576
+ // lower-case windows drive letters in /C:/fff or C:/fff
577
+ if (path.length >= 3 && path.charCodeAt(0) === CharCode.Slash && path.charCodeAt(2) === CharCode.Colon) {
578
+ const code = path.charCodeAt(1);
579
+ if (code >= CharCode.A && code <= CharCode.Z) {
580
+ path = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // "/c:".length === 3
581
+ }
582
+ }
583
+ else if (path.length >= 2 && path.charCodeAt(1) === CharCode.Colon) {
584
+ const code = path.charCodeAt(0);
585
+ if (code >= CharCode.A && code <= CharCode.Z) {
586
+ path = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // "/c:".length === 3
587
+ }
588
+ }
589
+ // encode the rest of the path
590
+ res += encoder(path, true, false);
591
+ }
592
+ if (query) {
593
+ res += '?';
594
+ res += encoder(query, false, false);
595
+ }
596
+ if (fragment) {
597
+ res += '#';
598
+ res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;
599
+ }
600
+ return res;
601
+ }
602
+ // --- decode
603
+ function decodeURIComponentGraceful(str) {
604
+ try {
605
+ return decodeURIComponent(str);
606
+ }
607
+ catch {
608
+ if (str.length > 3) {
609
+ return str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));
610
+ }
611
+ else {
612
+ return str;
613
+ }
614
+ }
615
+ }
616
+ const _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;
617
+ function percentDecode(str) {
618
+ if (!str.match(_rEncodedAsHex)) {
619
+ return str;
620
+ }
621
+ return str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match));
622
+ }
623
+ //# sourceMappingURL=uri.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uri.js","sourceRoot":"","sources":["../../src/core/uri.ts"],"names":[],"mappings":"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"}