@smthrs/std 0.0.0-stage → 1.0.0-rc.12

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 (582) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/LICENSE +21 -0
  3. package/README.md +156 -2
  4. package/dist/cjs/ApplyPatch.d.ts +174 -0
  5. package/dist/cjs/ApplyPatch.d.ts.map +1 -0
  6. package/dist/cjs/ApplyPatch.js +309 -0
  7. package/dist/cjs/ApplyPatch.js.map +7 -0
  8. package/dist/cjs/Bash.d.ts +390 -0
  9. package/dist/cjs/Bash.d.ts.map +1 -0
  10. package/dist/cjs/Bash.js +333 -0
  11. package/dist/cjs/Bash.js.map +7 -0
  12. package/dist/cjs/Checkpoints.d.ts +322 -0
  13. package/dist/cjs/Checkpoints.d.ts.map +1 -0
  14. package/dist/cjs/Checkpoints.js +233 -0
  15. package/dist/cjs/Checkpoints.js.map +7 -0
  16. package/dist/cjs/Container.d.ts +132 -0
  17. package/dist/cjs/Container.d.ts.map +1 -0
  18. package/dist/cjs/Container.js +113 -0
  19. package/dist/cjs/Container.js.map +7 -0
  20. package/dist/cjs/Edit.d.ts +203 -0
  21. package/dist/cjs/Edit.d.ts.map +1 -0
  22. package/dist/cjs/Edit.js +258 -0
  23. package/dist/cjs/Edit.js.map +7 -0
  24. package/dist/cjs/ExaWebSearch.d.ts +22 -0
  25. package/dist/cjs/ExaWebSearch.d.ts.map +1 -0
  26. package/dist/cjs/ExaWebSearch.js +138 -0
  27. package/dist/cjs/ExaWebSearch.js.map +7 -0
  28. package/dist/cjs/Explore.d.ts +328 -0
  29. package/dist/cjs/Explore.d.ts.map +1 -0
  30. package/dist/cjs/Explore.js +90 -0
  31. package/dist/cjs/Explore.js.map +7 -0
  32. package/dist/cjs/Fetch.d.ts +130 -0
  33. package/dist/cjs/Fetch.d.ts.map +1 -0
  34. package/dist/cjs/Fetch.js +64 -0
  35. package/dist/cjs/Fetch.js.map +7 -0
  36. package/dist/cjs/Glob.d.ts +204 -0
  37. package/dist/cjs/Glob.d.ts.map +1 -0
  38. package/dist/cjs/Glob.js +94 -0
  39. package/dist/cjs/Glob.js.map +7 -0
  40. package/dist/cjs/Grep.d.ts +347 -0
  41. package/dist/cjs/Grep.d.ts.map +1 -0
  42. package/dist/cjs/Grep.js +181 -0
  43. package/dist/cjs/Grep.js.map +7 -0
  44. package/dist/cjs/HttpPost.d.ts +130 -0
  45. package/dist/cjs/HttpPost.d.ts.map +1 -0
  46. package/dist/cjs/HttpPost.js +72 -0
  47. package/dist/cjs/HttpPost.js.map +7 -0
  48. package/dist/cjs/LanguageServer.d.ts +90 -0
  49. package/dist/cjs/LanguageServer.d.ts.map +1 -0
  50. package/dist/cjs/LanguageServer.js +60 -0
  51. package/dist/cjs/LanguageServer.js.map +7 -0
  52. package/dist/cjs/Ls.d.ts +164 -0
  53. package/dist/cjs/Ls.d.ts.map +1 -0
  54. package/dist/cjs/Ls.js +136 -0
  55. package/dist/cjs/Ls.js.map +7 -0
  56. package/dist/cjs/Lsp.d.ts +125 -0
  57. package/dist/cjs/Lsp.d.ts.map +1 -0
  58. package/dist/cjs/Lsp.js +137 -0
  59. package/dist/cjs/Lsp.js.map +7 -0
  60. package/dist/cjs/Manifest.d.ts +918 -0
  61. package/dist/cjs/Manifest.d.ts.map +1 -0
  62. package/dist/cjs/Manifest.js +144 -0
  63. package/dist/cjs/Manifest.js.map +7 -0
  64. package/dist/cjs/NativeSearch.d.ts +38 -0
  65. package/dist/cjs/NativeSearch.d.ts.map +1 -0
  66. package/dist/cjs/NativeSearch.js +326 -0
  67. package/dist/cjs/NativeSearch.js.map +7 -0
  68. package/dist/cjs/NodeLanguageServer.d.ts +128 -0
  69. package/dist/cjs/NodeLanguageServer.d.ts.map +1 -0
  70. package/dist/cjs/NodeLanguageServer.js +796 -0
  71. package/dist/cjs/NodeLanguageServer.js.map +7 -0
  72. package/dist/cjs/PortableSearch.d.ts +36 -0
  73. package/dist/cjs/PortableSearch.d.ts.map +1 -0
  74. package/dist/cjs/PortableSearch.js +240 -0
  75. package/dist/cjs/PortableSearch.js.map +7 -0
  76. package/dist/cjs/Probe.d.ts +193 -0
  77. package/dist/cjs/Probe.d.ts.map +1 -0
  78. package/dist/cjs/Probe.js +134 -0
  79. package/dist/cjs/Probe.js.map +7 -0
  80. package/dist/cjs/Read.d.ts +189 -0
  81. package/dist/cjs/Read.d.ts.map +1 -0
  82. package/dist/cjs/Read.js +223 -0
  83. package/dist/cjs/Read.js.map +7 -0
  84. package/dist/cjs/Relocate.d.ts +73 -0
  85. package/dist/cjs/Relocate.d.ts.map +1 -0
  86. package/dist/cjs/Relocate.js +72 -0
  87. package/dist/cjs/Relocate.js.map +7 -0
  88. package/dist/cjs/RemoteSearch.d.ts +54 -0
  89. package/dist/cjs/RemoteSearch.d.ts.map +1 -0
  90. package/dist/cjs/RemoteSearch.js +134 -0
  91. package/dist/cjs/RemoteSearch.js.map +7 -0
  92. package/dist/cjs/Search.d.ts +163 -0
  93. package/dist/cjs/Search.d.ts.map +1 -0
  94. package/dist/cjs/Search.js +51 -0
  95. package/dist/cjs/Search.js.map +7 -0
  96. package/dist/cjs/SearchConformance.d.ts +115 -0
  97. package/dist/cjs/SearchConformance.d.ts.map +1 -0
  98. package/dist/cjs/SearchConformance.js +172 -0
  99. package/dist/cjs/SearchConformance.js.map +7 -0
  100. package/dist/cjs/SearchContract.d.ts +114 -0
  101. package/dist/cjs/SearchContract.d.ts.map +1 -0
  102. package/dist/cjs/SearchContract.js +339 -0
  103. package/dist/cjs/SearchContract.js.map +7 -0
  104. package/dist/cjs/ShellCommand.d.ts +164 -0
  105. package/dist/cjs/ShellCommand.d.ts.map +1 -0
  106. package/dist/cjs/ShellCommand.js +102 -0
  107. package/dist/cjs/ShellCommand.js.map +7 -0
  108. package/dist/cjs/StdError.d.ts +55 -0
  109. package/dist/cjs/StdError.d.ts.map +1 -0
  110. package/dist/cjs/StdError.js +74 -0
  111. package/dist/cjs/StdError.js.map +7 -0
  112. package/dist/cjs/TestRun.d.ts +311 -0
  113. package/dist/cjs/TestRun.d.ts.map +1 -0
  114. package/dist/cjs/TestRun.js +228 -0
  115. package/dist/cjs/TestRun.js.map +7 -0
  116. package/dist/cjs/TestRunner.d.ts +102 -0
  117. package/dist/cjs/TestRunner.d.ts.map +1 -0
  118. package/dist/cjs/TestRunner.js +54 -0
  119. package/dist/cjs/TestRunner.js.map +7 -0
  120. package/dist/cjs/TreeFingerprint.d.ts +140 -0
  121. package/dist/cjs/TreeFingerprint.d.ts.map +1 -0
  122. package/dist/cjs/TreeFingerprint.js +87 -0
  123. package/dist/cjs/TreeFingerprint.js.map +7 -0
  124. package/dist/cjs/UpdatePlan.d.ts +152 -0
  125. package/dist/cjs/UpdatePlan.d.ts.map +1 -0
  126. package/dist/cjs/UpdatePlan.js +87 -0
  127. package/dist/cjs/UpdatePlan.js.map +7 -0
  128. package/dist/cjs/WebFetch.d.ts +134 -0
  129. package/dist/cjs/WebFetch.d.ts.map +1 -0
  130. package/dist/cjs/WebFetch.js +140 -0
  131. package/dist/cjs/WebFetch.js.map +7 -0
  132. package/dist/cjs/WebSearch.d.ts +181 -0
  133. package/dist/cjs/WebSearch.d.ts.map +1 -0
  134. package/dist/cjs/WebSearch.js +86 -0
  135. package/dist/cjs/WebSearch.js.map +7 -0
  136. package/dist/cjs/Write.d.ts +147 -0
  137. package/dist/cjs/Write.d.ts.map +1 -0
  138. package/dist/cjs/Write.js +122 -0
  139. package/dist/cjs/Write.js.map +7 -0
  140. package/dist/cjs/index.d.ts +129 -0
  141. package/dist/cjs/index.d.ts.map +1 -0
  142. package/dist/cjs/index.js +101 -0
  143. package/dist/cjs/index.js.map +7 -0
  144. package/dist/cjs/internal/ApplyPatch.d.ts +145 -0
  145. package/dist/cjs/internal/ApplyPatch.d.ts.map +1 -0
  146. package/dist/cjs/internal/ApplyPatch.js +462 -0
  147. package/dist/cjs/internal/ApplyPatch.js.map +7 -0
  148. package/dist/cjs/internal/CodexText.d.ts +73 -0
  149. package/dist/cjs/internal/CodexText.d.ts.map +1 -0
  150. package/dist/cjs/internal/CodexText.js +108 -0
  151. package/dist/cjs/internal/CodexText.js.map +7 -0
  152. package/dist/cjs/internal/Declaration.d.ts +49 -0
  153. package/dist/cjs/internal/Declaration.d.ts.map +1 -0
  154. package/dist/cjs/internal/Declaration.js +46 -0
  155. package/dist/cjs/internal/Declaration.js.map +7 -0
  156. package/dist/cjs/internal/Diagnostics.d.ts +77 -0
  157. package/dist/cjs/internal/Diagnostics.d.ts.map +1 -0
  158. package/dist/cjs/internal/Diagnostics.js +89 -0
  159. package/dist/cjs/internal/Diagnostics.js.map +7 -0
  160. package/dist/cjs/internal/EnvelopePrecheck.d.ts +69 -0
  161. package/dist/cjs/internal/EnvelopePrecheck.d.ts.map +1 -0
  162. package/dist/cjs/internal/EnvelopePrecheck.js +323 -0
  163. package/dist/cjs/internal/EnvelopePrecheck.js.map +7 -0
  164. package/dist/cjs/internal/Exec.d.ts +151 -0
  165. package/dist/cjs/internal/Exec.d.ts.map +1 -0
  166. package/dist/cjs/internal/Exec.js +207 -0
  167. package/dist/cjs/internal/Exec.js.map +7 -0
  168. package/dist/cjs/internal/FileMutation.d.ts +109 -0
  169. package/dist/cjs/internal/FileMutation.d.ts.map +1 -0
  170. package/dist/cjs/internal/FileMutation.js +116 -0
  171. package/dist/cjs/internal/FileMutation.js.map +7 -0
  172. package/dist/cjs/internal/FsFailure.d.ts +38 -0
  173. package/dist/cjs/internal/FsFailure.d.ts.map +1 -0
  174. package/dist/cjs/internal/FsFailure.js +40 -0
  175. package/dist/cjs/internal/FsFailure.js.map +7 -0
  176. package/dist/cjs/internal/GitWorktree.d.ts +108 -0
  177. package/dist/cjs/internal/GitWorktree.d.ts.map +1 -0
  178. package/dist/cjs/internal/GitWorktree.js +276 -0
  179. package/dist/cjs/internal/GitWorktree.js.map +7 -0
  180. package/dist/cjs/internal/Grouping.d.ts +51 -0
  181. package/dist/cjs/internal/Grouping.d.ts.map +1 -0
  182. package/dist/cjs/internal/Grouping.js +83 -0
  183. package/dist/cjs/internal/Grouping.js.map +7 -0
  184. package/dist/cjs/internal/Html.d.ts +20 -0
  185. package/dist/cjs/internal/Html.d.ts.map +1 -0
  186. package/dist/cjs/internal/Html.js +81 -0
  187. package/dist/cjs/internal/Html.js.map +7 -0
  188. package/dist/cjs/internal/Http.d.ts +95 -0
  189. package/dist/cjs/internal/Http.d.ts.map +1 -0
  190. package/dist/cjs/internal/Http.js +153 -0
  191. package/dist/cjs/internal/Http.js.map +7 -0
  192. package/dist/cjs/internal/HttpNetwork.d.ts +27 -0
  193. package/dist/cjs/internal/HttpNetwork.d.ts.map +1 -0
  194. package/dist/cjs/internal/HttpNetwork.js +146 -0
  195. package/dist/cjs/internal/HttpNetwork.js.map +7 -0
  196. package/dist/cjs/internal/Ignore.d.ts +37 -0
  197. package/dist/cjs/internal/Ignore.d.ts.map +1 -0
  198. package/dist/cjs/internal/Ignore.js +100 -0
  199. package/dist/cjs/internal/Ignore.js.map +7 -0
  200. package/dist/cjs/internal/LinearRegex.d.ts +19 -0
  201. package/dist/cjs/internal/LinearRegex.d.ts.map +1 -0
  202. package/dist/cjs/internal/LinearRegex.js +166 -0
  203. package/dist/cjs/internal/LinearRegex.js.map +7 -0
  204. package/dist/cjs/internal/Match.d.ts +85 -0
  205. package/dist/cjs/internal/Match.d.ts.map +1 -0
  206. package/dist/cjs/internal/Match.js +99 -0
  207. package/dist/cjs/internal/Match.js.map +7 -0
  208. package/dist/cjs/internal/Paths.d.ts +23 -0
  209. package/dist/cjs/internal/Paths.d.ts.map +1 -0
  210. package/dist/cjs/internal/Paths.js +52 -0
  211. package/dist/cjs/internal/Paths.js.map +7 -0
  212. package/dist/cjs/internal/Preserve.d.ts +25 -0
  213. package/dist/cjs/internal/Preserve.d.ts.map +1 -0
  214. package/dist/cjs/internal/Preserve.js +88 -0
  215. package/dist/cjs/internal/Preserve.js.map +7 -0
  216. package/dist/cjs/internal/Prune.d.ts +35 -0
  217. package/dist/cjs/internal/Prune.d.ts.map +1 -0
  218. package/dist/cjs/internal/Prune.js +54 -0
  219. package/dist/cjs/internal/Prune.js.map +7 -0
  220. package/dist/cjs/internal/RemoteTree.d.ts +60 -0
  221. package/dist/cjs/internal/RemoteTree.d.ts.map +1 -0
  222. package/dist/cjs/internal/RemoteTree.js +123 -0
  223. package/dist/cjs/internal/RemoteTree.js.map +7 -0
  224. package/dist/cjs/internal/SearchContract.d.ts +63 -0
  225. package/dist/cjs/internal/SearchContract.d.ts.map +1 -0
  226. package/dist/cjs/internal/SearchContract.js +46 -0
  227. package/dist/cjs/internal/SearchContract.js.map +7 -0
  228. package/dist/cjs/internal/Symbols.d.ts +39 -0
  229. package/dist/cjs/internal/Symbols.d.ts.map +1 -0
  230. package/dist/cjs/internal/Symbols.js +59 -0
  231. package/dist/cjs/internal/Symbols.js.map +7 -0
  232. package/dist/cjs/internal/Tar.d.ts +23 -0
  233. package/dist/cjs/internal/Tar.d.ts.map +1 -0
  234. package/dist/cjs/internal/Tar.js +86 -0
  235. package/dist/cjs/internal/Tar.js.map +7 -0
  236. package/dist/cjs/internal/TestReport.d.ts +52 -0
  237. package/dist/cjs/internal/TestReport.d.ts.map +1 -0
  238. package/dist/cjs/internal/TestReport.js +131 -0
  239. package/dist/cjs/internal/TestReport.js.map +7 -0
  240. package/dist/cjs/internal/Text.d.ts +125 -0
  241. package/dist/cjs/internal/Text.d.ts.map +1 -0
  242. package/dist/cjs/internal/Text.js +85 -0
  243. package/dist/cjs/internal/Text.js.map +7 -0
  244. package/dist/cjs/internal/Url.d.ts +13 -0
  245. package/dist/cjs/internal/Url.d.ts.map +1 -0
  246. package/dist/cjs/internal/Url.js +35 -0
  247. package/dist/cjs/internal/Url.js.map +7 -0
  248. package/dist/cjs/internal/Walk.d.ts +72 -0
  249. package/dist/cjs/internal/Walk.d.ts.map +1 -0
  250. package/dist/cjs/internal/Walk.js +108 -0
  251. package/dist/cjs/internal/Walk.js.map +7 -0
  252. package/dist/cjs/package.json +1 -0
  253. package/dist/esm/ApplyPatch.d.ts +174 -0
  254. package/dist/esm/ApplyPatch.d.ts.map +1 -0
  255. package/dist/esm/ApplyPatch.js +346 -0
  256. package/dist/esm/ApplyPatch.js.map +1 -0
  257. package/dist/esm/Bash.d.ts +390 -0
  258. package/dist/esm/Bash.d.ts.map +1 -0
  259. package/dist/esm/Bash.js +514 -0
  260. package/dist/esm/Bash.js.map +1 -0
  261. package/dist/esm/Checkpoints.d.ts +322 -0
  262. package/dist/esm/Checkpoints.d.ts.map +1 -0
  263. package/dist/esm/Checkpoints.js +396 -0
  264. package/dist/esm/Checkpoints.js.map +1 -0
  265. package/dist/esm/Container.d.ts +132 -0
  266. package/dist/esm/Container.d.ts.map +1 -0
  267. package/dist/esm/Container.js +151 -0
  268. package/dist/esm/Container.js.map +1 -0
  269. package/dist/esm/Edit.d.ts +203 -0
  270. package/dist/esm/Edit.d.ts.map +1 -0
  271. package/dist/esm/Edit.js +296 -0
  272. package/dist/esm/Edit.js.map +1 -0
  273. package/dist/esm/ExaWebSearch.d.ts +22 -0
  274. package/dist/esm/ExaWebSearch.d.ts.map +1 -0
  275. package/dist/esm/ExaWebSearch.js +107 -0
  276. package/dist/esm/ExaWebSearch.js.map +1 -0
  277. package/dist/esm/Explore.d.ts +328 -0
  278. package/dist/esm/Explore.d.ts.map +1 -0
  279. package/dist/esm/Explore.js +106 -0
  280. package/dist/esm/Explore.js.map +1 -0
  281. package/dist/esm/Fetch.d.ts +130 -0
  282. package/dist/esm/Fetch.d.ts.map +1 -0
  283. package/dist/esm/Fetch.js +91 -0
  284. package/dist/esm/Fetch.js.map +1 -0
  285. package/dist/esm/Glob.d.ts +204 -0
  286. package/dist/esm/Glob.d.ts.map +1 -0
  287. package/dist/esm/Glob.js +177 -0
  288. package/dist/esm/Glob.js.map +1 -0
  289. package/dist/esm/Grep.d.ts +347 -0
  290. package/dist/esm/Grep.d.ts.map +1 -0
  291. package/dist/esm/Grep.js +289 -0
  292. package/dist/esm/Grep.js.map +1 -0
  293. package/dist/esm/HttpPost.d.ts +130 -0
  294. package/dist/esm/HttpPost.d.ts.map +1 -0
  295. package/dist/esm/HttpPost.js +89 -0
  296. package/dist/esm/HttpPost.js.map +1 -0
  297. package/dist/esm/LanguageServer.d.ts +90 -0
  298. package/dist/esm/LanguageServer.d.ts.map +1 -0
  299. package/dist/esm/LanguageServer.js +57 -0
  300. package/dist/esm/LanguageServer.js.map +1 -0
  301. package/dist/esm/Ls.d.ts +164 -0
  302. package/dist/esm/Ls.d.ts.map +1 -0
  303. package/dist/esm/Ls.js +178 -0
  304. package/dist/esm/Ls.js.map +1 -0
  305. package/dist/esm/Lsp.d.ts +125 -0
  306. package/dist/esm/Lsp.d.ts.map +1 -0
  307. package/dist/esm/Lsp.js +165 -0
  308. package/dist/esm/Lsp.js.map +1 -0
  309. package/dist/esm/Manifest.d.ts +918 -0
  310. package/dist/esm/Manifest.d.ts.map +1 -0
  311. package/dist/esm/Manifest.js +153 -0
  312. package/dist/esm/Manifest.js.map +1 -0
  313. package/dist/esm/NativeSearch.d.ts +38 -0
  314. package/dist/esm/NativeSearch.d.ts.map +1 -0
  315. package/dist/esm/NativeSearch.js +378 -0
  316. package/dist/esm/NativeSearch.js.map +1 -0
  317. package/dist/esm/NodeLanguageServer.d.ts +128 -0
  318. package/dist/esm/NodeLanguageServer.d.ts.map +1 -0
  319. package/dist/esm/NodeLanguageServer.js +843 -0
  320. package/dist/esm/NodeLanguageServer.js.map +1 -0
  321. package/dist/esm/PortableSearch.d.ts +36 -0
  322. package/dist/esm/PortableSearch.d.ts.map +1 -0
  323. package/dist/esm/PortableSearch.js +256 -0
  324. package/dist/esm/PortableSearch.js.map +1 -0
  325. package/dist/esm/Probe.d.ts +193 -0
  326. package/dist/esm/Probe.d.ts.map +1 -0
  327. package/dist/esm/Probe.js +225 -0
  328. package/dist/esm/Probe.js.map +1 -0
  329. package/dist/esm/Read.d.ts +189 -0
  330. package/dist/esm/Read.d.ts.map +1 -0
  331. package/dist/esm/Read.js +300 -0
  332. package/dist/esm/Read.js.map +1 -0
  333. package/dist/esm/Relocate.d.ts +73 -0
  334. package/dist/esm/Relocate.d.ts.map +1 -0
  335. package/dist/esm/Relocate.js +153 -0
  336. package/dist/esm/Relocate.js.map +1 -0
  337. package/dist/esm/RemoteSearch.d.ts +54 -0
  338. package/dist/esm/RemoteSearch.d.ts.map +1 -0
  339. package/dist/esm/RemoteSearch.js +162 -0
  340. package/dist/esm/RemoteSearch.js.map +1 -0
  341. package/dist/esm/Search.d.ts +163 -0
  342. package/dist/esm/Search.d.ts.map +1 -0
  343. package/dist/esm/Search.js +47 -0
  344. package/dist/esm/Search.js.map +1 -0
  345. package/dist/esm/SearchConformance.d.ts +115 -0
  346. package/dist/esm/SearchConformance.d.ts.map +1 -0
  347. package/dist/esm/SearchConformance.js +193 -0
  348. package/dist/esm/SearchConformance.js.map +1 -0
  349. package/dist/esm/SearchContract.d.ts +114 -0
  350. package/dist/esm/SearchContract.d.ts.map +1 -0
  351. package/dist/esm/SearchContract.js +461 -0
  352. package/dist/esm/SearchContract.js.map +1 -0
  353. package/dist/esm/ShellCommand.d.ts +164 -0
  354. package/dist/esm/ShellCommand.d.ts.map +1 -0
  355. package/dist/esm/ShellCommand.js +159 -0
  356. package/dist/esm/ShellCommand.js.map +1 -0
  357. package/dist/esm/StdError.d.ts +55 -0
  358. package/dist/esm/StdError.d.ts.map +1 -0
  359. package/dist/esm/StdError.js +71 -0
  360. package/dist/esm/StdError.js.map +1 -0
  361. package/dist/esm/TestRun.d.ts +311 -0
  362. package/dist/esm/TestRun.d.ts.map +1 -0
  363. package/dist/esm/TestRun.js +316 -0
  364. package/dist/esm/TestRun.js.map +1 -0
  365. package/dist/esm/TestRunner.d.ts +102 -0
  366. package/dist/esm/TestRunner.d.ts.map +1 -0
  367. package/dist/esm/TestRunner.js +68 -0
  368. package/dist/esm/TestRunner.js.map +1 -0
  369. package/dist/esm/TreeFingerprint.d.ts +140 -0
  370. package/dist/esm/TreeFingerprint.d.ts.map +1 -0
  371. package/dist/esm/TreeFingerprint.js +170 -0
  372. package/dist/esm/TreeFingerprint.js.map +1 -0
  373. package/dist/esm/UpdatePlan.d.ts +152 -0
  374. package/dist/esm/UpdatePlan.d.ts.map +1 -0
  375. package/dist/esm/UpdatePlan.js +129 -0
  376. package/dist/esm/UpdatePlan.js.map +1 -0
  377. package/dist/esm/WebFetch.d.ts +134 -0
  378. package/dist/esm/WebFetch.d.ts.map +1 -0
  379. package/dist/esm/WebFetch.js +151 -0
  380. package/dist/esm/WebFetch.js.map +1 -0
  381. package/dist/esm/WebSearch.d.ts +181 -0
  382. package/dist/esm/WebSearch.d.ts.map +1 -0
  383. package/dist/esm/WebSearch.js +134 -0
  384. package/dist/esm/WebSearch.js.map +1 -0
  385. package/dist/esm/Write.d.ts +147 -0
  386. package/dist/esm/Write.d.ts.map +1 -0
  387. package/dist/esm/Write.js +144 -0
  388. package/dist/esm/Write.js.map +1 -0
  389. package/dist/esm/index.d.ts +129 -0
  390. package/dist/esm/index.d.ts.map +1 -0
  391. package/dist/esm/index.js +129 -0
  392. package/dist/esm/index.js.map +1 -0
  393. package/dist/esm/internal/ApplyPatch.d.ts +145 -0
  394. package/dist/esm/internal/ApplyPatch.d.ts.map +1 -0
  395. package/dist/esm/internal/ApplyPatch.js +489 -0
  396. package/dist/esm/internal/ApplyPatch.js.map +1 -0
  397. package/dist/esm/internal/CodexText.d.ts +73 -0
  398. package/dist/esm/internal/CodexText.d.ts.map +1 -0
  399. package/dist/esm/internal/CodexText.js +156 -0
  400. package/dist/esm/internal/CodexText.js.map +1 -0
  401. package/dist/esm/internal/Declaration.d.ts +49 -0
  402. package/dist/esm/internal/Declaration.d.ts.map +1 -0
  403. package/dist/esm/internal/Declaration.js +42 -0
  404. package/dist/esm/internal/Declaration.js.map +1 -0
  405. package/dist/esm/internal/Diagnostics.d.ts +77 -0
  406. package/dist/esm/internal/Diagnostics.d.ts.map +1 -0
  407. package/dist/esm/internal/Diagnostics.js +99 -0
  408. package/dist/esm/internal/Diagnostics.js.map +1 -0
  409. package/dist/esm/internal/EnvelopePrecheck.d.ts +69 -0
  410. package/dist/esm/internal/EnvelopePrecheck.d.ts.map +1 -0
  411. package/dist/esm/internal/EnvelopePrecheck.js +426 -0
  412. package/dist/esm/internal/EnvelopePrecheck.js.map +1 -0
  413. package/dist/esm/internal/Exec.d.ts +151 -0
  414. package/dist/esm/internal/Exec.d.ts.map +1 -0
  415. package/dist/esm/internal/Exec.js +285 -0
  416. package/dist/esm/internal/Exec.js.map +1 -0
  417. package/dist/esm/internal/FileMutation.d.ts +109 -0
  418. package/dist/esm/internal/FileMutation.d.ts.map +1 -0
  419. package/dist/esm/internal/FileMutation.js +123 -0
  420. package/dist/esm/internal/FileMutation.js.map +1 -0
  421. package/dist/esm/internal/FsFailure.d.ts +38 -0
  422. package/dist/esm/internal/FsFailure.d.ts.map +1 -0
  423. package/dist/esm/internal/FsFailure.js +39 -0
  424. package/dist/esm/internal/FsFailure.js.map +1 -0
  425. package/dist/esm/internal/GitWorktree.d.ts +108 -0
  426. package/dist/esm/internal/GitWorktree.d.ts.map +1 -0
  427. package/dist/esm/internal/GitWorktree.js +352 -0
  428. package/dist/esm/internal/GitWorktree.js.map +1 -0
  429. package/dist/esm/internal/Grouping.d.ts +51 -0
  430. package/dist/esm/internal/Grouping.d.ts.map +1 -0
  431. package/dist/esm/internal/Grouping.js +99 -0
  432. package/dist/esm/internal/Grouping.js.map +1 -0
  433. package/dist/esm/internal/Html.d.ts +20 -0
  434. package/dist/esm/internal/Html.d.ts.map +1 -0
  435. package/dist/esm/internal/Html.js +70 -0
  436. package/dist/esm/internal/Html.js.map +1 -0
  437. package/dist/esm/internal/Http.d.ts +95 -0
  438. package/dist/esm/internal/Http.d.ts.map +1 -0
  439. package/dist/esm/internal/Http.js +154 -0
  440. package/dist/esm/internal/Http.js.map +1 -0
  441. package/dist/esm/internal/HttpNetwork.d.ts +27 -0
  442. package/dist/esm/internal/HttpNetwork.d.ts.map +1 -0
  443. package/dist/esm/internal/HttpNetwork.js +114 -0
  444. package/dist/esm/internal/HttpNetwork.js.map +1 -0
  445. package/dist/esm/internal/Ignore.d.ts +37 -0
  446. package/dist/esm/internal/Ignore.d.ts.map +1 -0
  447. package/dist/esm/internal/Ignore.js +128 -0
  448. package/dist/esm/internal/Ignore.js.map +1 -0
  449. package/dist/esm/internal/LinearRegex.d.ts +19 -0
  450. package/dist/esm/internal/LinearRegex.d.ts.map +1 -0
  451. package/dist/esm/internal/LinearRegex.js +176 -0
  452. package/dist/esm/internal/LinearRegex.js.map +1 -0
  453. package/dist/esm/internal/Match.d.ts +85 -0
  454. package/dist/esm/internal/Match.d.ts.map +1 -0
  455. package/dist/esm/internal/Match.js +142 -0
  456. package/dist/esm/internal/Match.js.map +1 -0
  457. package/dist/esm/internal/Paths.d.ts +23 -0
  458. package/dist/esm/internal/Paths.d.ts.map +1 -0
  459. package/dist/esm/internal/Paths.js +40 -0
  460. package/dist/esm/internal/Paths.js.map +1 -0
  461. package/dist/esm/internal/Preserve.d.ts +25 -0
  462. package/dist/esm/internal/Preserve.d.ts.map +1 -0
  463. package/dist/esm/internal/Preserve.js +70 -0
  464. package/dist/esm/internal/Preserve.js.map +1 -0
  465. package/dist/esm/internal/Prune.d.ts +35 -0
  466. package/dist/esm/internal/Prune.d.ts.map +1 -0
  467. package/dist/esm/internal/Prune.js +60 -0
  468. package/dist/esm/internal/Prune.js.map +1 -0
  469. package/dist/esm/internal/RemoteTree.d.ts +60 -0
  470. package/dist/esm/internal/RemoteTree.d.ts.map +1 -0
  471. package/dist/esm/internal/RemoteTree.js +132 -0
  472. package/dist/esm/internal/RemoteTree.js.map +1 -0
  473. package/dist/esm/internal/SearchContract.d.ts +63 -0
  474. package/dist/esm/internal/SearchContract.d.ts.map +1 -0
  475. package/dist/esm/internal/SearchContract.js +66 -0
  476. package/dist/esm/internal/SearchContract.js.map +1 -0
  477. package/dist/esm/internal/Symbols.d.ts +39 -0
  478. package/dist/esm/internal/Symbols.d.ts.map +1 -0
  479. package/dist/esm/internal/Symbols.js +79 -0
  480. package/dist/esm/internal/Symbols.js.map +1 -0
  481. package/dist/esm/internal/Tar.d.ts +23 -0
  482. package/dist/esm/internal/Tar.d.ts.map +1 -0
  483. package/dist/esm/internal/Tar.js +97 -0
  484. package/dist/esm/internal/Tar.js.map +1 -0
  485. package/dist/esm/internal/TestReport.d.ts +52 -0
  486. package/dist/esm/internal/TestReport.d.ts.map +1 -0
  487. package/dist/esm/internal/TestReport.js +172 -0
  488. package/dist/esm/internal/TestReport.js.map +1 -0
  489. package/dist/esm/internal/Text.d.ts +125 -0
  490. package/dist/esm/internal/Text.d.ts.map +1 -0
  491. package/dist/esm/internal/Text.js +141 -0
  492. package/dist/esm/internal/Text.js.map +1 -0
  493. package/dist/esm/internal/Url.d.ts +13 -0
  494. package/dist/esm/internal/Url.d.ts.map +1 -0
  495. package/dist/esm/internal/Url.js +27 -0
  496. package/dist/esm/internal/Url.js.map +1 -0
  497. package/dist/esm/internal/Walk.d.ts +72 -0
  498. package/dist/esm/internal/Walk.d.ts.map +1 -0
  499. package/dist/esm/internal/Walk.js +126 -0
  500. package/dist/esm/internal/Walk.js.map +1 -0
  501. package/docs/README.md +119 -0
  502. package/docs/api.md +499 -0
  503. package/docs/concepts/effects-and-capabilities.md +138 -0
  504. package/docs/concepts/flows-and-handlers.md +115 -0
  505. package/docs/concepts/limits-and-disclosure.md +105 -0
  506. package/docs/concepts/search-contract.md +182 -0
  507. package/docs/guides/bind-the-standard-flows.md +116 -0
  508. package/docs/guides/implement-a-search-peer.md +133 -0
  509. package/docs/guides/pin-a-checkpoint.md +161 -0
  510. package/docs/guides/query-a-language-server.md +257 -0
  511. package/docs/guides/reach-the-network.md +141 -0
  512. package/docs/guides/read-and-edit-a-file.md +240 -0
  513. package/docs/guides/run-a-shell-command.md +236 -0
  514. package/docs/guides/run-the-test-suite.md +154 -0
  515. package/docs/guides/search-a-workspace.md +148 -0
  516. package/docs/installation.md +115 -0
  517. package/docs/quickstart.md +125 -0
  518. package/docs/reference/flows.md +556 -0
  519. package/docs/troubleshooting.md +347 -0
  520. package/package.json +449 -3
  521. package/src/ApplyPatch.ts +458 -0
  522. package/src/Bash.ts +619 -0
  523. package/src/Checkpoints.ts +589 -0
  524. package/src/Container.ts +212 -0
  525. package/src/Edit.ts +366 -0
  526. package/src/ExaWebSearch.ts +145 -0
  527. package/src/Explore.ts +139 -0
  528. package/src/Fetch.ts +117 -0
  529. package/src/Glob.ts +200 -0
  530. package/src/Grep.ts +320 -0
  531. package/src/HttpPost.ts +120 -0
  532. package/src/LanguageServer.ts +110 -0
  533. package/src/Ls.ts +228 -0
  534. package/src/Lsp.ts +184 -0
  535. package/src/Manifest.ts +162 -0
  536. package/src/NativeSearch.ts +457 -0
  537. package/src/NodeLanguageServer.ts +1148 -0
  538. package/src/PortableSearch.ts +284 -0
  539. package/src/Probe.ts +284 -0
  540. package/src/Read.ts +359 -0
  541. package/src/Relocate.ts +166 -0
  542. package/src/RemoteSearch.ts +199 -0
  543. package/src/Search.ts +185 -0
  544. package/src/SearchConformance.ts +288 -0
  545. package/src/SearchContract.ts +489 -0
  546. package/src/ShellCommand.ts +201 -0
  547. package/src/StdError.ts +80 -0
  548. package/src/TestRun.ts +401 -0
  549. package/src/TestRunner.ts +119 -0
  550. package/src/TreeFingerprint.ts +200 -0
  551. package/src/UpdatePlan.ts +171 -0
  552. package/src/WebFetch.ts +194 -0
  553. package/src/WebSearch.ts +165 -0
  554. package/src/Write.ts +195 -0
  555. package/src/index.ts +157 -0
  556. package/src/internal/ApplyPatch.ts +601 -0
  557. package/src/internal/CodexText.ts +182 -0
  558. package/src/internal/Declaration.ts +60 -0
  559. package/src/internal/Diagnostics.ts +134 -0
  560. package/src/internal/EnvelopePrecheck.ts +489 -0
  561. package/src/internal/Exec.ts +427 -0
  562. package/src/internal/FileMutation.ts +231 -0
  563. package/src/internal/FsFailure.ts +51 -0
  564. package/src/internal/GitWorktree.ts +491 -0
  565. package/src/internal/Grouping.ts +106 -0
  566. package/src/internal/Html.ts +87 -0
  567. package/src/internal/Http.ts +209 -0
  568. package/src/internal/HttpNetwork.ts +153 -0
  569. package/src/internal/Ignore.ts +135 -0
  570. package/src/internal/LinearRegex.ts +173 -0
  571. package/src/internal/Match.ts +172 -0
  572. package/src/internal/Paths.ts +42 -0
  573. package/src/internal/Preserve.ts +108 -0
  574. package/src/internal/Prune.ts +62 -0
  575. package/src/internal/RemoteTree.ts +159 -0
  576. package/src/internal/SearchContract.ts +77 -0
  577. package/src/internal/Symbols.ts +88 -0
  578. package/src/internal/Tar.ts +95 -0
  579. package/src/internal/TestReport.ts +194 -0
  580. package/src/internal/Text.ts +185 -0
  581. package/src/internal/Url.ts +23 -0
  582. package/src/internal/Walk.ts +176 -0
@@ -0,0 +1,145 @@
1
+ /**
2
+ * Faithful port of the Codex CLI apply_patch engine.
3
+ *
4
+ * Mirrors `codex-rs/apply-patch/src/{parser,streaming_parser,seek_sequence}.rs`
5
+ * and the applier in `lib.rs`: the V4A patch grammar, the lenient heredoc
6
+ * boundary handling, the fuzzy context-matching ladder, and every error
7
+ * string, so ChatGPT-family models see exactly the behavior they were
8
+ * posttrained on. Pure module: no host access.
9
+ *
10
+ * @since 1.0.0
11
+ */
12
+ import * as Schema from "effect/Schema";
13
+ declare const ParseError_base: Schema.Class<ParseError, Schema.TaggedStruct<"@smthrs/std/ParseError", {
14
+ readonly kind: Schema.Literals<readonly ["invalid_patch", "invalid_hunk"]>;
15
+ readonly detail: Schema.String;
16
+ readonly lineNumber: Schema.UndefinedOr<Schema.Number>;
17
+ }>, import("effect/Cause").YieldableError>;
18
+ /**
19
+ * Parse failure with Codex-identical message text.
20
+ *
21
+ * `invalid patch: {message}` for patch-level failures and
22
+ * `invalid hunk at line {line}, {message}` for hunk-level failures.
23
+ *
24
+ * @since 1.0.0
25
+ * @private
26
+ */
27
+ export declare class ParseError extends ParseError_base {
28
+ get message(): string;
29
+ }
30
+ /**
31
+ * One replaced region of an update hunk.
32
+ *
33
+ * @since 1.0.0
34
+ * @private
35
+ */
36
+ export interface UpdateFileChunk {
37
+ changeContext: string | undefined;
38
+ oldLines: Array<string>;
39
+ newLines: Array<string>;
40
+ isEndOfFile: boolean;
41
+ }
42
+ /**
43
+ * A parsed patch hunk.
44
+ *
45
+ * @since 1.0.0
46
+ * @private
47
+ */
48
+ export type Hunk = {
49
+ readonly kind: "add";
50
+ readonly path: string;
51
+ contents: string;
52
+ } | {
53
+ readonly kind: "delete";
54
+ readonly path: string;
55
+ } | {
56
+ readonly kind: "update";
57
+ readonly path: string;
58
+ movePath: string | undefined;
59
+ readonly chunks: Array<UpdateFileChunk>;
60
+ };
61
+ /**
62
+ * Parsed patch: hunks plus the optional environment id preamble.
63
+ *
64
+ * @since 1.0.0
65
+ * @private
66
+ */
67
+ export interface ParsedPatch {
68
+ readonly hunks: ReadonlyArray<Hunk>;
69
+ readonly environmentId: string | undefined;
70
+ }
71
+ /**
72
+ * Streaming line state machine for the V4A patch grammar; a faithful port of
73
+ * `StreamingPatchParser`.
74
+ *
75
+ * @since 1.0.0
76
+ * @private
77
+ */
78
+ export declare class StreamingPatchParser {
79
+ private lineBuffer;
80
+ private mode;
81
+ private hunks;
82
+ private lineNumber;
83
+ private _environmentId;
84
+ environmentId(): string | undefined;
85
+ private ensureUpdateHunkIsNotEmpty;
86
+ private handleHunkHeadersAndEndPatch;
87
+ pushDelta(delta: string): ReadonlyArray<Hunk>;
88
+ finish(): ReadonlyArray<Hunk>;
89
+ private processLine;
90
+ }
91
+ /**
92
+ * Parse a complete patch text; lenient mode (heredoc unwrapping) is always
93
+ * on, matching Codex.
94
+ *
95
+ * @since 1.0.0
96
+ * @private
97
+ */
98
+ export declare const parsePatch: (patch: string) => ParsedPatch;
99
+ /**
100
+ * Fuzzy sequence search with the Codex leniency ladder: exact, rstrip, trim,
101
+ * then unicode-normalised comparison; end-of-file patterns anchor at the end
102
+ * first.
103
+ *
104
+ * @since 1.0.0
105
+ * @private
106
+ */
107
+ export declare const seekSequence: (lines: ReadonlyArray<string>, pattern: ReadonlyArray<string>, start: number, eof: boolean) => number | undefined;
108
+ declare const ComputeReplacementsError_base: Schema.Class<ComputeReplacementsError, Schema.TaggedStruct<"@smthrs/std/ComputeReplacementsError", {
109
+ readonly reason: Schema.Literals<readonly ["context_not_found", "lines_not_found"]>;
110
+ readonly path: Schema.String;
111
+ readonly message: Schema.String;
112
+ }>, import("effect/Cause").YieldableError>;
113
+ /**
114
+ * Applier failure carrying the Codex message text verbatim.
115
+ *
116
+ * `context_not_found` is an `@@` context line absent from the file;
117
+ * `lines_not_found` is a chunk whose expected lines are absent.
118
+ *
119
+ * @since 1.0.0
120
+ * @private
121
+ */
122
+ export declare class ComputeReplacementsError extends ComputeReplacementsError_base {
123
+ }
124
+ /**
125
+ * Derive the new file contents for an update hunk from the original
126
+ * contents, matching Codex `derive_new_contents_from_chunks`.
127
+ *
128
+ * @since 1.0.0
129
+ * @private
130
+ */
131
+ export declare const deriveNewContents: (originalContents: string, path: string, chunks: ReadonlyArray<UpdateFileChunk>) => string;
132
+ /**
133
+ * Render the Codex success summary: `Success. Updated the following files:`
134
+ * with `A`/`M`/`D` lines for adds, updates, and deletes in that order.
135
+ *
136
+ * @since 1.0.0
137
+ * @private
138
+ */
139
+ export declare const printSummary: (affected: {
140
+ readonly added: ReadonlyArray<string>;
141
+ readonly modified: ReadonlyArray<string>;
142
+ readonly deleted: ReadonlyArray<string>;
143
+ }) => string;
144
+ export {};
145
+ //# sourceMappingURL=ApplyPatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApplyPatch.d.ts","sourceRoot":"","sources":["../../../src/internal/ApplyPatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;;;;;;AAcvC;;;;;;;;GAQG;AACH,qBAAa,UAAW,SAAQ,eAI9B;IACA,IAAa,OAAO,IAAI,MAAM,CAI7B;CACF;AAKD;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACvB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,IAAI,GACZ;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClD;IACA,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,eAAe,CAAC,CAAA;CACxC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3C;AAwBD;;;;;;GAMG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,IAAI,CAA+B;IAC3C,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,cAAc,CAAoB;IAE1C,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,4BAA4B;IA4CpC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC;IAe7C,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC;IAkB7B,OAAO,CAAC,WAAW;CA0HpB;AAqCD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,WAQ1C,CAAA;AA0CD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,aAAa,CAAC,MAAM,CAAC,EAC5B,SAAS,aAAa,CAAC,MAAM,CAAC,EAC9B,OAAO,MAAM,EACb,KAAK,OAAO,KACX,MAAM,GAAG,SAwBX,CAAA;;;;;;AAED;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,SAAQ,6BAO7C;CAAG;AAmEJ;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,kBAAkB,MAAM,EACxB,MAAM,MAAM,EACZ,QAAQ,aAAa,CAAC,eAAe,CAAC,KACrC,MAMF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU;IACrC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACxC,KAAG,MAMH,CAAA"}
@@ -0,0 +1,462 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var ApplyPatch_exports = {};
30
+ __export(ApplyPatch_exports, {
31
+ ComputeReplacementsError: () => ComputeReplacementsError,
32
+ ParseError: () => ParseError,
33
+ StreamingPatchParser: () => StreamingPatchParser,
34
+ deriveNewContents: () => deriveNewContents,
35
+ parsePatch: () => parsePatch,
36
+ printSummary: () => printSummary,
37
+ seekSequence: () => seekSequence
38
+ });
39
+ module.exports = __toCommonJS(ApplyPatch_exports);
40
+ var Schema = __toESM(require("effect/Schema"), 1);
41
+ var import_Text = require("./Text.js");
42
+ const BEGIN_PATCH_MARKER = "*** Begin Patch";
43
+ const END_PATCH_MARKER = "*** End Patch";
44
+ const ADD_FILE_MARKER = "*** Add File: ";
45
+ const DELETE_FILE_MARKER = "*** Delete File: ";
46
+ const UPDATE_FILE_MARKER = "*** Update File: ";
47
+ const MOVE_TO_MARKER = "*** Move to: ";
48
+ const EOF_MARKER = "*** End of File";
49
+ const CHANGE_CONTEXT_MARKER = "@@ ";
50
+ const EMPTY_CHANGE_CONTEXT_MARKER = "@@";
51
+ const ENVIRONMENT_ID_MARKER = "*** Environment ID:";
52
+ class ParseError extends Schema.TaggedError()("@smthrs/std/ParseError", {
53
+ kind: Schema.Literals(["invalid_patch", "invalid_hunk"]),
54
+ detail: Schema.String,
55
+ lineNumber: Schema.UndefinedOr(Schema.Number)
56
+ }) {
57
+ get message() {
58
+ return this.kind === "invalid_patch" ? `invalid patch: ${this.detail}` : `invalid hunk at line ${this.lineNumber}, ${this.detail}`;
59
+ }
60
+ }
61
+ const parseError = (kind, detail, lineNumber) => new ParseError({ kind, detail, lineNumber });
62
+ const invalidHunkHeader = (trimmed, lineNumber) => parseError(
63
+ "invalid_hunk",
64
+ `'${trimmed}' is not a valid hunk header. Valid hunk headers: '*** Add File: {path}', '*** Delete File: {path}', '*** Update File: {path}'`,
65
+ lineNumber
66
+ );
67
+ const unexpectedUpdateLine = (line, lineNumber) => parseError(
68
+ "invalid_hunk",
69
+ `Unexpected line found in update hunk: '${line}'. Every line should start with ' ' (context line), '+' (added line), or '-' (removed line)`,
70
+ lineNumber
71
+ );
72
+ class StreamingPatchParser {
73
+ lineBuffer = "";
74
+ mode = { _tag: "NotStarted" };
75
+ hunks = [];
76
+ lineNumber = 0;
77
+ _environmentId;
78
+ environmentId() {
79
+ return this._environmentId;
80
+ }
81
+ ensureUpdateHunkIsNotEmpty(line) {
82
+ const last = this.hunks[this.hunks.length - 1];
83
+ if (last === void 0 || last.kind !== "update") return;
84
+ if (last.chunks.length === 0 && this.mode._tag === "UpdateFile") {
85
+ throw parseError(
86
+ "invalid_hunk",
87
+ `Update file hunk for path '${last.path}' is empty`,
88
+ this.mode.hunkLineNumber
89
+ );
90
+ }
91
+ const chunk = last.chunks[last.chunks.length - 1];
92
+ if (chunk !== void 0 && chunk.oldLines.length === 0 && chunk.newLines.length === 0) {
93
+ if (line === END_PATCH_MARKER) {
94
+ throw parseError("invalid_hunk", "Update hunk does not contain any lines", this.lineNumber);
95
+ }
96
+ throw unexpectedUpdateLine(line, this.lineNumber);
97
+ }
98
+ }
99
+ handleHunkHeadersAndEndPatch(trimmed) {
100
+ if (this.mode._tag === "StartedPatch" && trimmed.startsWith(ENVIRONMENT_ID_MARKER)) {
101
+ if (this._environmentId !== void 0) {
102
+ throw parseError("invalid_patch", "apply_patch environment_id cannot be specified more than once");
103
+ }
104
+ const environmentId = trimmed.slice(ENVIRONMENT_ID_MARKER.length).trim();
105
+ if (environmentId === "") {
106
+ throw parseError("invalid_patch", "apply_patch environment_id cannot be empty");
107
+ }
108
+ this._environmentId = environmentId;
109
+ return true;
110
+ }
111
+ if (trimmed === END_PATCH_MARKER) {
112
+ this.ensureUpdateHunkIsNotEmpty(trimmed);
113
+ this.mode = { _tag: "EndedPatch" };
114
+ return true;
115
+ }
116
+ if (trimmed.startsWith(ADD_FILE_MARKER)) {
117
+ this.ensureUpdateHunkIsNotEmpty(trimmed);
118
+ this.hunks.push({ kind: "add", path: trimmed.slice(ADD_FILE_MARKER.length), contents: "" });
119
+ this.mode = { _tag: "AddFile" };
120
+ return true;
121
+ }
122
+ if (trimmed.startsWith(DELETE_FILE_MARKER)) {
123
+ this.ensureUpdateHunkIsNotEmpty(trimmed);
124
+ this.hunks.push({ kind: "delete", path: trimmed.slice(DELETE_FILE_MARKER.length) });
125
+ this.mode = { _tag: "DeleteFile" };
126
+ return true;
127
+ }
128
+ if (trimmed.startsWith(UPDATE_FILE_MARKER)) {
129
+ this.ensureUpdateHunkIsNotEmpty(trimmed);
130
+ const hunk = {
131
+ kind: "update",
132
+ path: trimmed.slice(UPDATE_FILE_MARKER.length),
133
+ movePath: void 0,
134
+ chunks: []
135
+ };
136
+ this.hunks.push(hunk);
137
+ this.mode = { _tag: "UpdateFile", hunkLineNumber: this.lineNumber, hunk };
138
+ return true;
139
+ }
140
+ return false;
141
+ }
142
+ pushDelta(delta) {
143
+ for (const ch of delta) {
144
+ if (ch === "\n") {
145
+ let line = this.lineBuffer;
146
+ this.lineBuffer = "";
147
+ if (line.endsWith("\r")) line = line.slice(0, -1);
148
+ this.lineNumber += 1;
149
+ this.processLine(line);
150
+ } else {
151
+ this.lineBuffer += ch;
152
+ }
153
+ }
154
+ return this.hunks;
155
+ }
156
+ finish() {
157
+ if (this.lineBuffer !== "") {
158
+ const line = this.lineBuffer;
159
+ this.lineBuffer = "";
160
+ this.lineNumber += 1;
161
+ if (line.trim() === END_PATCH_MARKER) {
162
+ this.ensureUpdateHunkIsNotEmpty(line.trim());
163
+ this.mode = { _tag: "EndedPatch" };
164
+ } else {
165
+ this.processLine(line);
166
+ }
167
+ }
168
+ if (this.mode._tag !== "EndedPatch") {
169
+ throw parseError("invalid_patch", "The last line of the patch must be '*** End Patch'");
170
+ }
171
+ return this.hunks;
172
+ }
173
+ processLine(line) {
174
+ const trimmed = line.trim();
175
+ switch (this.mode._tag) {
176
+ case "NotStarted": {
177
+ if (trimmed === BEGIN_PATCH_MARKER) {
178
+ this.mode = { _tag: "StartedPatch" };
179
+ return;
180
+ }
181
+ throw parseError("invalid_patch", "The first line of the patch must be '*** Begin Patch'");
182
+ }
183
+ case "StartedPatch": {
184
+ if (this.handleHunkHeadersAndEndPatch(trimmed)) return;
185
+ throw invalidHunkHeader(trimmed, this.lineNumber);
186
+ }
187
+ case "AddFile": {
188
+ if (this.handleHunkHeadersAndEndPatch(trimmed)) return;
189
+ const last = this.hunks[this.hunks.length - 1];
190
+ if (line.startsWith("+") && last !== void 0 && last.kind === "add") {
191
+ last.contents += `${line.slice(1)}
192
+ `;
193
+ return;
194
+ }
195
+ throw invalidHunkHeader(trimmed, this.lineNumber);
196
+ }
197
+ case "DeleteFile": {
198
+ if (this.handleHunkHeadersAndEndPatch(trimmed)) return;
199
+ throw invalidHunkHeader(trimmed, this.lineNumber);
200
+ }
201
+ case "UpdateFile": {
202
+ const updateLine = line.replace(/\s+$/, "");
203
+ if (this.handleHunkHeadersAndEndPatch(updateLine)) return;
204
+ const hunk = this.mode.hunk;
205
+ const chunks = hunk.chunks;
206
+ const lastChunk = chunks[chunks.length - 1];
207
+ if (lastChunk !== void 0 && lastChunk.isEndOfFile) {
208
+ if (updateLine === "") return;
209
+ if (updateLine !== EMPTY_CHANGE_CONTEXT_MARKER && !updateLine.startsWith(CHANGE_CONTEXT_MARKER)) {
210
+ throw parseError(
211
+ "invalid_hunk",
212
+ `Expected update hunk to start with a @@ context marker, got: '${line}'`,
213
+ this.lineNumber
214
+ );
215
+ }
216
+ }
217
+ if (chunks.length === 0 && hunk.movePath === void 0 && updateLine.startsWith(MOVE_TO_MARKER)) {
218
+ hunk.movePath = updateLine.slice(MOVE_TO_MARKER.length);
219
+ return;
220
+ }
221
+ if ((updateLine === EMPTY_CHANGE_CONTEXT_MARKER || updateLine.startsWith(CHANGE_CONTEXT_MARKER)) && lastChunk !== void 0 && lastChunk.oldLines.length === 0 && lastChunk.newLines.length === 0) {
222
+ throw unexpectedUpdateLine(line, this.lineNumber);
223
+ }
224
+ if (updateLine === EMPTY_CHANGE_CONTEXT_MARKER) {
225
+ chunks.push({ changeContext: void 0, oldLines: [], newLines: [], isEndOfFile: false });
226
+ return;
227
+ }
228
+ if (updateLine.startsWith(CHANGE_CONTEXT_MARKER)) {
229
+ chunks.push({
230
+ changeContext: updateLine.slice(CHANGE_CONTEXT_MARKER.length),
231
+ oldLines: [],
232
+ newLines: [],
233
+ isEndOfFile: false
234
+ });
235
+ return;
236
+ }
237
+ if (updateLine === EOF_MARKER) {
238
+ if (lastChunk !== void 0 && lastChunk.oldLines.length === 0 && lastChunk.newLines.length === 0) {
239
+ throw parseError("invalid_hunk", "Update hunk does not contain any lines", this.lineNumber);
240
+ }
241
+ if (lastChunk !== void 0) lastChunk.isEndOfFile = true;
242
+ return;
243
+ }
244
+ const ensureChunk = () => {
245
+ if (chunks.length === 0) {
246
+ chunks.push({ changeContext: void 0, oldLines: [], newLines: [], isEndOfFile: false });
247
+ }
248
+ return chunks[chunks.length - 1];
249
+ };
250
+ if (line === "") {
251
+ const chunk = ensureChunk();
252
+ chunk.oldLines.push("");
253
+ chunk.newLines.push("");
254
+ return;
255
+ }
256
+ if (line.startsWith(" ")) {
257
+ const chunk = ensureChunk();
258
+ chunk.oldLines.push(line.slice(1));
259
+ chunk.newLines.push(line.slice(1));
260
+ return;
261
+ }
262
+ if (line.startsWith("+")) {
263
+ ensureChunk().newLines.push(line.slice(1));
264
+ return;
265
+ }
266
+ if (line.startsWith("-")) {
267
+ ensureChunk().oldLines.push(line.slice(1));
268
+ return;
269
+ }
270
+ if (lastChunk !== void 0 && (lastChunk.oldLines.length > 0 || lastChunk.newLines.length > 0)) {
271
+ throw parseError(
272
+ "invalid_hunk",
273
+ `Expected update hunk to start with a @@ context marker, got: '${line}'`,
274
+ this.lineNumber
275
+ );
276
+ }
277
+ throw unexpectedUpdateLine(line, this.lineNumber);
278
+ }
279
+ case "EndedPatch": {
280
+ if (trimmed === "") return;
281
+ throw parseError("invalid_patch", "The last line of the patch must be '*** End Patch'");
282
+ }
283
+ }
284
+ }
285
+ }
286
+ const checkStartAndEndLinesStrict = (firstLine, lastLine) => {
287
+ const first = firstLine?.trim();
288
+ const last = lastLine?.trim();
289
+ if (first === BEGIN_PATCH_MARKER && last === END_PATCH_MARKER) return;
290
+ if (first !== void 0 && first !== BEGIN_PATCH_MARKER) {
291
+ throw parseError("invalid_patch", "The first line of the patch must be '*** Begin Patch'");
292
+ }
293
+ throw parseError("invalid_patch", "The last line of the patch must be '*** End Patch'");
294
+ };
295
+ const checkPatchBoundariesStrict = (lines) => {
296
+ checkStartAndEndLinesStrict(lines[0], lines.length === 0 ? void 0 : lines[lines.length - 1]);
297
+ return lines;
298
+ };
299
+ const checkPatchBoundariesLenient = (originalLines) => {
300
+ let originalError;
301
+ try {
302
+ return checkPatchBoundariesStrict(originalLines);
303
+ } catch (error) {
304
+ originalError = error;
305
+ }
306
+ if (originalLines.length >= 2) {
307
+ const first = originalLines[0];
308
+ const last = originalLines[originalLines.length - 1];
309
+ if ((first === "<<EOF" || first === "<<'EOF'" || first === '<<"EOF"') && last.endsWith("EOF") && originalLines.length >= 4) {
310
+ return checkPatchBoundariesStrict(originalLines.slice(1, -1));
311
+ }
312
+ }
313
+ throw originalError;
314
+ };
315
+ const parsePatch = (patch) => {
316
+ const trimmed = patch.trim();
317
+ const lines = trimmed === "" ? [] : trimmed.split("\n");
318
+ const patchLines = checkPatchBoundariesLenient(lines);
319
+ const parser = new StreamingPatchParser();
320
+ parser.pushDelta(`${patchLines.join("\n")}
321
+ `);
322
+ const hunks = parser.finish();
323
+ return { hunks, environmentId: parser.environmentId() };
324
+ };
325
+ const normalise = (s) => [...s.trim()].map((c) => {
326
+ switch (c) {
327
+ case "\u2010":
328
+ case "\u2011":
329
+ case "\u2012":
330
+ case "\u2013":
331
+ case "\u2014":
332
+ case "\u2015":
333
+ case "\u2212":
334
+ return "-";
335
+ case "\u2018":
336
+ case "\u2019":
337
+ case "\u201A":
338
+ case "\u201B":
339
+ return "'";
340
+ case "\u201C":
341
+ case "\u201D":
342
+ case "\u201E":
343
+ case "\u201F":
344
+ return '"';
345
+ case "\xA0":
346
+ case "\u2002":
347
+ case "\u2003":
348
+ case "\u2004":
349
+ case "\u2005":
350
+ case "\u2006":
351
+ case "\u2007":
352
+ case "\u2008":
353
+ case "\u2009":
354
+ case "\u200A":
355
+ case "\u202F":
356
+ case "\u205F":
357
+ case "\u3000":
358
+ return " ";
359
+ default:
360
+ return c;
361
+ }
362
+ }).join("");
363
+ const seekSequence = (lines, pattern, start, eof) => {
364
+ if (pattern.length === 0) return start;
365
+ if (pattern.length > lines.length) return void 0;
366
+ const searchStart = eof && lines.length >= pattern.length ? lines.length - pattern.length : start;
367
+ const upper = lines.length - pattern.length;
368
+ const passes = [
369
+ (a, b) => a === b,
370
+ (a, b) => a.replace(/\s+$/, "") === b.replace(/\s+$/, ""),
371
+ (a, b) => a.trim() === b.trim(),
372
+ (a, b) => normalise(a) === normalise(b)
373
+ ];
374
+ for (const equals of passes) {
375
+ for (let i = searchStart; i <= upper; i++) {
376
+ let ok = true;
377
+ for (let p = 0; p < pattern.length; p++) {
378
+ if (!equals(lines[i + p], pattern[p])) {
379
+ ok = false;
380
+ break;
381
+ }
382
+ }
383
+ if (ok) return i;
384
+ }
385
+ }
386
+ return void 0;
387
+ };
388
+ class ComputeReplacementsError extends Schema.TaggedError()(
389
+ "@smthrs/std/ComputeReplacementsError",
390
+ {
391
+ reason: Schema.Literals(["context_not_found", "lines_not_found"]),
392
+ path: Schema.String,
393
+ message: Schema.String
394
+ }
395
+ ) {
396
+ }
397
+ const computeReplacements = (originalLines, path, chunks) => {
398
+ const replacements = [];
399
+ let lineIndex = 0;
400
+ for (const chunk of chunks) {
401
+ if (chunk.changeContext !== void 0) {
402
+ const idx = seekSequence(originalLines, [chunk.changeContext], lineIndex, false);
403
+ if (idx === void 0) {
404
+ throw new ComputeReplacementsError({
405
+ reason: "context_not_found",
406
+ path,
407
+ message: `Failed to find context '${chunk.changeContext}' in ${path}`
408
+ });
409
+ }
410
+ lineIndex = idx + 1;
411
+ }
412
+ if (chunk.oldLines.length === 0) {
413
+ const insertionIdx = originalLines.length > 0 && originalLines[originalLines.length - 1] === "" ? originalLines.length - 1 : originalLines.length;
414
+ replacements.push([insertionIdx, 0, [...chunk.newLines]]);
415
+ continue;
416
+ }
417
+ let pattern = chunk.oldLines;
418
+ let newSlice = chunk.newLines;
419
+ let found = seekSequence(originalLines, pattern, lineIndex, chunk.isEndOfFile);
420
+ if (found === void 0 && pattern[pattern.length - 1] === "") {
421
+ pattern = pattern.slice(0, -1);
422
+ if (newSlice[newSlice.length - 1] === "") newSlice = newSlice.slice(0, -1);
423
+ found = seekSequence(originalLines, pattern, lineIndex, chunk.isEndOfFile);
424
+ }
425
+ if (found !== void 0) {
426
+ replacements.push([found, pattern.length, [...newSlice]]);
427
+ lineIndex = found + pattern.length;
428
+ } else {
429
+ throw new ComputeReplacementsError({
430
+ reason: "lines_not_found",
431
+ path,
432
+ message: `Failed to find expected lines in ${path}:
433
+ ${chunk.oldLines.join("\n")}`
434
+ });
435
+ }
436
+ }
437
+ replacements.sort((a, b) => a[0] - b[0]);
438
+ return replacements;
439
+ };
440
+ const applyReplacements = (lines, replacements) => {
441
+ for (let r = replacements.length - 1; r >= 0; r--) {
442
+ const [startIdx, oldLength, newSegment] = replacements[r];
443
+ lines.splice(startIdx, Math.min(oldLength, Math.max(lines.length - startIdx, 0)), ...newSegment);
444
+ }
445
+ return lines;
446
+ };
447
+ const deriveNewContents = (originalContents, path, chunks) => {
448
+ const originalLines = (0, import_Text.sourceLines)(originalContents);
449
+ const replacements = computeReplacements(originalLines, path, chunks);
450
+ const newLines = applyReplacements([...originalLines], replacements);
451
+ if (newLines[newLines.length - 1] !== "") newLines.push("");
452
+ return newLines.join("\n");
453
+ };
454
+ const printSummary = (affected) => {
455
+ const lines = ["Success. Updated the following files:"];
456
+ for (const path of affected.added) lines.push(`A ${path}`);
457
+ for (const path of affected.modified) lines.push(`M ${path}`);
458
+ for (const path of affected.deleted) lines.push(`D ${path}`);
459
+ return `${lines.join("\n")}
460
+ `;
461
+ };
462
+ //# sourceMappingURL=ApplyPatch.js.map