@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.
- package/CHANGELOG.md +148 -0
- package/LICENSE +21 -0
- package/README.md +156 -2
- package/dist/cjs/ApplyPatch.d.ts +174 -0
- package/dist/cjs/ApplyPatch.d.ts.map +1 -0
- package/dist/cjs/ApplyPatch.js +309 -0
- package/dist/cjs/ApplyPatch.js.map +7 -0
- package/dist/cjs/Bash.d.ts +390 -0
- package/dist/cjs/Bash.d.ts.map +1 -0
- package/dist/cjs/Bash.js +333 -0
- package/dist/cjs/Bash.js.map +7 -0
- package/dist/cjs/Checkpoints.d.ts +322 -0
- package/dist/cjs/Checkpoints.d.ts.map +1 -0
- package/dist/cjs/Checkpoints.js +233 -0
- package/dist/cjs/Checkpoints.js.map +7 -0
- package/dist/cjs/Container.d.ts +132 -0
- package/dist/cjs/Container.d.ts.map +1 -0
- package/dist/cjs/Container.js +113 -0
- package/dist/cjs/Container.js.map +7 -0
- package/dist/cjs/Edit.d.ts +203 -0
- package/dist/cjs/Edit.d.ts.map +1 -0
- package/dist/cjs/Edit.js +258 -0
- package/dist/cjs/Edit.js.map +7 -0
- package/dist/cjs/ExaWebSearch.d.ts +22 -0
- package/dist/cjs/ExaWebSearch.d.ts.map +1 -0
- package/dist/cjs/ExaWebSearch.js +138 -0
- package/dist/cjs/ExaWebSearch.js.map +7 -0
- package/dist/cjs/Explore.d.ts +328 -0
- package/dist/cjs/Explore.d.ts.map +1 -0
- package/dist/cjs/Explore.js +90 -0
- package/dist/cjs/Explore.js.map +7 -0
- package/dist/cjs/Fetch.d.ts +130 -0
- package/dist/cjs/Fetch.d.ts.map +1 -0
- package/dist/cjs/Fetch.js +64 -0
- package/dist/cjs/Fetch.js.map +7 -0
- package/dist/cjs/Glob.d.ts +204 -0
- package/dist/cjs/Glob.d.ts.map +1 -0
- package/dist/cjs/Glob.js +94 -0
- package/dist/cjs/Glob.js.map +7 -0
- package/dist/cjs/Grep.d.ts +347 -0
- package/dist/cjs/Grep.d.ts.map +1 -0
- package/dist/cjs/Grep.js +181 -0
- package/dist/cjs/Grep.js.map +7 -0
- package/dist/cjs/HttpPost.d.ts +130 -0
- package/dist/cjs/HttpPost.d.ts.map +1 -0
- package/dist/cjs/HttpPost.js +72 -0
- package/dist/cjs/HttpPost.js.map +7 -0
- package/dist/cjs/LanguageServer.d.ts +90 -0
- package/dist/cjs/LanguageServer.d.ts.map +1 -0
- package/dist/cjs/LanguageServer.js +60 -0
- package/dist/cjs/LanguageServer.js.map +7 -0
- package/dist/cjs/Ls.d.ts +164 -0
- package/dist/cjs/Ls.d.ts.map +1 -0
- package/dist/cjs/Ls.js +136 -0
- package/dist/cjs/Ls.js.map +7 -0
- package/dist/cjs/Lsp.d.ts +125 -0
- package/dist/cjs/Lsp.d.ts.map +1 -0
- package/dist/cjs/Lsp.js +137 -0
- package/dist/cjs/Lsp.js.map +7 -0
- package/dist/cjs/Manifest.d.ts +918 -0
- package/dist/cjs/Manifest.d.ts.map +1 -0
- package/dist/cjs/Manifest.js +144 -0
- package/dist/cjs/Manifest.js.map +7 -0
- package/dist/cjs/NativeSearch.d.ts +38 -0
- package/dist/cjs/NativeSearch.d.ts.map +1 -0
- package/dist/cjs/NativeSearch.js +326 -0
- package/dist/cjs/NativeSearch.js.map +7 -0
- package/dist/cjs/NodeLanguageServer.d.ts +128 -0
- package/dist/cjs/NodeLanguageServer.d.ts.map +1 -0
- package/dist/cjs/NodeLanguageServer.js +796 -0
- package/dist/cjs/NodeLanguageServer.js.map +7 -0
- package/dist/cjs/PortableSearch.d.ts +36 -0
- package/dist/cjs/PortableSearch.d.ts.map +1 -0
- package/dist/cjs/PortableSearch.js +240 -0
- package/dist/cjs/PortableSearch.js.map +7 -0
- package/dist/cjs/Probe.d.ts +193 -0
- package/dist/cjs/Probe.d.ts.map +1 -0
- package/dist/cjs/Probe.js +134 -0
- package/dist/cjs/Probe.js.map +7 -0
- package/dist/cjs/Read.d.ts +189 -0
- package/dist/cjs/Read.d.ts.map +1 -0
- package/dist/cjs/Read.js +223 -0
- package/dist/cjs/Read.js.map +7 -0
- package/dist/cjs/Relocate.d.ts +73 -0
- package/dist/cjs/Relocate.d.ts.map +1 -0
- package/dist/cjs/Relocate.js +72 -0
- package/dist/cjs/Relocate.js.map +7 -0
- package/dist/cjs/RemoteSearch.d.ts +54 -0
- package/dist/cjs/RemoteSearch.d.ts.map +1 -0
- package/dist/cjs/RemoteSearch.js +134 -0
- package/dist/cjs/RemoteSearch.js.map +7 -0
- package/dist/cjs/Search.d.ts +163 -0
- package/dist/cjs/Search.d.ts.map +1 -0
- package/dist/cjs/Search.js +51 -0
- package/dist/cjs/Search.js.map +7 -0
- package/dist/cjs/SearchConformance.d.ts +115 -0
- package/dist/cjs/SearchConformance.d.ts.map +1 -0
- package/dist/cjs/SearchConformance.js +172 -0
- package/dist/cjs/SearchConformance.js.map +7 -0
- package/dist/cjs/SearchContract.d.ts +114 -0
- package/dist/cjs/SearchContract.d.ts.map +1 -0
- package/dist/cjs/SearchContract.js +339 -0
- package/dist/cjs/SearchContract.js.map +7 -0
- package/dist/cjs/ShellCommand.d.ts +164 -0
- package/dist/cjs/ShellCommand.d.ts.map +1 -0
- package/dist/cjs/ShellCommand.js +102 -0
- package/dist/cjs/ShellCommand.js.map +7 -0
- package/dist/cjs/StdError.d.ts +55 -0
- package/dist/cjs/StdError.d.ts.map +1 -0
- package/dist/cjs/StdError.js +74 -0
- package/dist/cjs/StdError.js.map +7 -0
- package/dist/cjs/TestRun.d.ts +311 -0
- package/dist/cjs/TestRun.d.ts.map +1 -0
- package/dist/cjs/TestRun.js +228 -0
- package/dist/cjs/TestRun.js.map +7 -0
- package/dist/cjs/TestRunner.d.ts +102 -0
- package/dist/cjs/TestRunner.d.ts.map +1 -0
- package/dist/cjs/TestRunner.js +54 -0
- package/dist/cjs/TestRunner.js.map +7 -0
- package/dist/cjs/TreeFingerprint.d.ts +140 -0
- package/dist/cjs/TreeFingerprint.d.ts.map +1 -0
- package/dist/cjs/TreeFingerprint.js +87 -0
- package/dist/cjs/TreeFingerprint.js.map +7 -0
- package/dist/cjs/UpdatePlan.d.ts +152 -0
- package/dist/cjs/UpdatePlan.d.ts.map +1 -0
- package/dist/cjs/UpdatePlan.js +87 -0
- package/dist/cjs/UpdatePlan.js.map +7 -0
- package/dist/cjs/WebFetch.d.ts +134 -0
- package/dist/cjs/WebFetch.d.ts.map +1 -0
- package/dist/cjs/WebFetch.js +140 -0
- package/dist/cjs/WebFetch.js.map +7 -0
- package/dist/cjs/WebSearch.d.ts +181 -0
- package/dist/cjs/WebSearch.d.ts.map +1 -0
- package/dist/cjs/WebSearch.js +86 -0
- package/dist/cjs/WebSearch.js.map +7 -0
- package/dist/cjs/Write.d.ts +147 -0
- package/dist/cjs/Write.d.ts.map +1 -0
- package/dist/cjs/Write.js +122 -0
- package/dist/cjs/Write.js.map +7 -0
- package/dist/cjs/index.d.ts +129 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +101 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/internal/ApplyPatch.d.ts +145 -0
- package/dist/cjs/internal/ApplyPatch.d.ts.map +1 -0
- package/dist/cjs/internal/ApplyPatch.js +462 -0
- package/dist/cjs/internal/ApplyPatch.js.map +7 -0
- package/dist/cjs/internal/CodexText.d.ts +73 -0
- package/dist/cjs/internal/CodexText.d.ts.map +1 -0
- package/dist/cjs/internal/CodexText.js +108 -0
- package/dist/cjs/internal/CodexText.js.map +7 -0
- package/dist/cjs/internal/Declaration.d.ts +49 -0
- package/dist/cjs/internal/Declaration.d.ts.map +1 -0
- package/dist/cjs/internal/Declaration.js +46 -0
- package/dist/cjs/internal/Declaration.js.map +7 -0
- package/dist/cjs/internal/Diagnostics.d.ts +77 -0
- package/dist/cjs/internal/Diagnostics.d.ts.map +1 -0
- package/dist/cjs/internal/Diagnostics.js +89 -0
- package/dist/cjs/internal/Diagnostics.js.map +7 -0
- package/dist/cjs/internal/EnvelopePrecheck.d.ts +69 -0
- package/dist/cjs/internal/EnvelopePrecheck.d.ts.map +1 -0
- package/dist/cjs/internal/EnvelopePrecheck.js +323 -0
- package/dist/cjs/internal/EnvelopePrecheck.js.map +7 -0
- package/dist/cjs/internal/Exec.d.ts +151 -0
- package/dist/cjs/internal/Exec.d.ts.map +1 -0
- package/dist/cjs/internal/Exec.js +207 -0
- package/dist/cjs/internal/Exec.js.map +7 -0
- package/dist/cjs/internal/FileMutation.d.ts +109 -0
- package/dist/cjs/internal/FileMutation.d.ts.map +1 -0
- package/dist/cjs/internal/FileMutation.js +116 -0
- package/dist/cjs/internal/FileMutation.js.map +7 -0
- package/dist/cjs/internal/FsFailure.d.ts +38 -0
- package/dist/cjs/internal/FsFailure.d.ts.map +1 -0
- package/dist/cjs/internal/FsFailure.js +40 -0
- package/dist/cjs/internal/FsFailure.js.map +7 -0
- package/dist/cjs/internal/GitWorktree.d.ts +108 -0
- package/dist/cjs/internal/GitWorktree.d.ts.map +1 -0
- package/dist/cjs/internal/GitWorktree.js +276 -0
- package/dist/cjs/internal/GitWorktree.js.map +7 -0
- package/dist/cjs/internal/Grouping.d.ts +51 -0
- package/dist/cjs/internal/Grouping.d.ts.map +1 -0
- package/dist/cjs/internal/Grouping.js +83 -0
- package/dist/cjs/internal/Grouping.js.map +7 -0
- package/dist/cjs/internal/Html.d.ts +20 -0
- package/dist/cjs/internal/Html.d.ts.map +1 -0
- package/dist/cjs/internal/Html.js +81 -0
- package/dist/cjs/internal/Html.js.map +7 -0
- package/dist/cjs/internal/Http.d.ts +95 -0
- package/dist/cjs/internal/Http.d.ts.map +1 -0
- package/dist/cjs/internal/Http.js +153 -0
- package/dist/cjs/internal/Http.js.map +7 -0
- package/dist/cjs/internal/HttpNetwork.d.ts +27 -0
- package/dist/cjs/internal/HttpNetwork.d.ts.map +1 -0
- package/dist/cjs/internal/HttpNetwork.js +146 -0
- package/dist/cjs/internal/HttpNetwork.js.map +7 -0
- package/dist/cjs/internal/Ignore.d.ts +37 -0
- package/dist/cjs/internal/Ignore.d.ts.map +1 -0
- package/dist/cjs/internal/Ignore.js +100 -0
- package/dist/cjs/internal/Ignore.js.map +7 -0
- package/dist/cjs/internal/LinearRegex.d.ts +19 -0
- package/dist/cjs/internal/LinearRegex.d.ts.map +1 -0
- package/dist/cjs/internal/LinearRegex.js +166 -0
- package/dist/cjs/internal/LinearRegex.js.map +7 -0
- package/dist/cjs/internal/Match.d.ts +85 -0
- package/dist/cjs/internal/Match.d.ts.map +1 -0
- package/dist/cjs/internal/Match.js +99 -0
- package/dist/cjs/internal/Match.js.map +7 -0
- package/dist/cjs/internal/Paths.d.ts +23 -0
- package/dist/cjs/internal/Paths.d.ts.map +1 -0
- package/dist/cjs/internal/Paths.js +52 -0
- package/dist/cjs/internal/Paths.js.map +7 -0
- package/dist/cjs/internal/Preserve.d.ts +25 -0
- package/dist/cjs/internal/Preserve.d.ts.map +1 -0
- package/dist/cjs/internal/Preserve.js +88 -0
- package/dist/cjs/internal/Preserve.js.map +7 -0
- package/dist/cjs/internal/Prune.d.ts +35 -0
- package/dist/cjs/internal/Prune.d.ts.map +1 -0
- package/dist/cjs/internal/Prune.js +54 -0
- package/dist/cjs/internal/Prune.js.map +7 -0
- package/dist/cjs/internal/RemoteTree.d.ts +60 -0
- package/dist/cjs/internal/RemoteTree.d.ts.map +1 -0
- package/dist/cjs/internal/RemoteTree.js +123 -0
- package/dist/cjs/internal/RemoteTree.js.map +7 -0
- package/dist/cjs/internal/SearchContract.d.ts +63 -0
- package/dist/cjs/internal/SearchContract.d.ts.map +1 -0
- package/dist/cjs/internal/SearchContract.js +46 -0
- package/dist/cjs/internal/SearchContract.js.map +7 -0
- package/dist/cjs/internal/Symbols.d.ts +39 -0
- package/dist/cjs/internal/Symbols.d.ts.map +1 -0
- package/dist/cjs/internal/Symbols.js +59 -0
- package/dist/cjs/internal/Symbols.js.map +7 -0
- package/dist/cjs/internal/Tar.d.ts +23 -0
- package/dist/cjs/internal/Tar.d.ts.map +1 -0
- package/dist/cjs/internal/Tar.js +86 -0
- package/dist/cjs/internal/Tar.js.map +7 -0
- package/dist/cjs/internal/TestReport.d.ts +52 -0
- package/dist/cjs/internal/TestReport.d.ts.map +1 -0
- package/dist/cjs/internal/TestReport.js +131 -0
- package/dist/cjs/internal/TestReport.js.map +7 -0
- package/dist/cjs/internal/Text.d.ts +125 -0
- package/dist/cjs/internal/Text.d.ts.map +1 -0
- package/dist/cjs/internal/Text.js +85 -0
- package/dist/cjs/internal/Text.js.map +7 -0
- package/dist/cjs/internal/Url.d.ts +13 -0
- package/dist/cjs/internal/Url.d.ts.map +1 -0
- package/dist/cjs/internal/Url.js +35 -0
- package/dist/cjs/internal/Url.js.map +7 -0
- package/dist/cjs/internal/Walk.d.ts +72 -0
- package/dist/cjs/internal/Walk.d.ts.map +1 -0
- package/dist/cjs/internal/Walk.js +108 -0
- package/dist/cjs/internal/Walk.js.map +7 -0
- package/dist/cjs/package.json +1 -0
- package/dist/esm/ApplyPatch.d.ts +174 -0
- package/dist/esm/ApplyPatch.d.ts.map +1 -0
- package/dist/esm/ApplyPatch.js +346 -0
- package/dist/esm/ApplyPatch.js.map +1 -0
- package/dist/esm/Bash.d.ts +390 -0
- package/dist/esm/Bash.d.ts.map +1 -0
- package/dist/esm/Bash.js +514 -0
- package/dist/esm/Bash.js.map +1 -0
- package/dist/esm/Checkpoints.d.ts +322 -0
- package/dist/esm/Checkpoints.d.ts.map +1 -0
- package/dist/esm/Checkpoints.js +396 -0
- package/dist/esm/Checkpoints.js.map +1 -0
- package/dist/esm/Container.d.ts +132 -0
- package/dist/esm/Container.d.ts.map +1 -0
- package/dist/esm/Container.js +151 -0
- package/dist/esm/Container.js.map +1 -0
- package/dist/esm/Edit.d.ts +203 -0
- package/dist/esm/Edit.d.ts.map +1 -0
- package/dist/esm/Edit.js +296 -0
- package/dist/esm/Edit.js.map +1 -0
- package/dist/esm/ExaWebSearch.d.ts +22 -0
- package/dist/esm/ExaWebSearch.d.ts.map +1 -0
- package/dist/esm/ExaWebSearch.js +107 -0
- package/dist/esm/ExaWebSearch.js.map +1 -0
- package/dist/esm/Explore.d.ts +328 -0
- package/dist/esm/Explore.d.ts.map +1 -0
- package/dist/esm/Explore.js +106 -0
- package/dist/esm/Explore.js.map +1 -0
- package/dist/esm/Fetch.d.ts +130 -0
- package/dist/esm/Fetch.d.ts.map +1 -0
- package/dist/esm/Fetch.js +91 -0
- package/dist/esm/Fetch.js.map +1 -0
- package/dist/esm/Glob.d.ts +204 -0
- package/dist/esm/Glob.d.ts.map +1 -0
- package/dist/esm/Glob.js +177 -0
- package/dist/esm/Glob.js.map +1 -0
- package/dist/esm/Grep.d.ts +347 -0
- package/dist/esm/Grep.d.ts.map +1 -0
- package/dist/esm/Grep.js +289 -0
- package/dist/esm/Grep.js.map +1 -0
- package/dist/esm/HttpPost.d.ts +130 -0
- package/dist/esm/HttpPost.d.ts.map +1 -0
- package/dist/esm/HttpPost.js +89 -0
- package/dist/esm/HttpPost.js.map +1 -0
- package/dist/esm/LanguageServer.d.ts +90 -0
- package/dist/esm/LanguageServer.d.ts.map +1 -0
- package/dist/esm/LanguageServer.js +57 -0
- package/dist/esm/LanguageServer.js.map +1 -0
- package/dist/esm/Ls.d.ts +164 -0
- package/dist/esm/Ls.d.ts.map +1 -0
- package/dist/esm/Ls.js +178 -0
- package/dist/esm/Ls.js.map +1 -0
- package/dist/esm/Lsp.d.ts +125 -0
- package/dist/esm/Lsp.d.ts.map +1 -0
- package/dist/esm/Lsp.js +165 -0
- package/dist/esm/Lsp.js.map +1 -0
- package/dist/esm/Manifest.d.ts +918 -0
- package/dist/esm/Manifest.d.ts.map +1 -0
- package/dist/esm/Manifest.js +153 -0
- package/dist/esm/Manifest.js.map +1 -0
- package/dist/esm/NativeSearch.d.ts +38 -0
- package/dist/esm/NativeSearch.d.ts.map +1 -0
- package/dist/esm/NativeSearch.js +378 -0
- package/dist/esm/NativeSearch.js.map +1 -0
- package/dist/esm/NodeLanguageServer.d.ts +128 -0
- package/dist/esm/NodeLanguageServer.d.ts.map +1 -0
- package/dist/esm/NodeLanguageServer.js +843 -0
- package/dist/esm/NodeLanguageServer.js.map +1 -0
- package/dist/esm/PortableSearch.d.ts +36 -0
- package/dist/esm/PortableSearch.d.ts.map +1 -0
- package/dist/esm/PortableSearch.js +256 -0
- package/dist/esm/PortableSearch.js.map +1 -0
- package/dist/esm/Probe.d.ts +193 -0
- package/dist/esm/Probe.d.ts.map +1 -0
- package/dist/esm/Probe.js +225 -0
- package/dist/esm/Probe.js.map +1 -0
- package/dist/esm/Read.d.ts +189 -0
- package/dist/esm/Read.d.ts.map +1 -0
- package/dist/esm/Read.js +300 -0
- package/dist/esm/Read.js.map +1 -0
- package/dist/esm/Relocate.d.ts +73 -0
- package/dist/esm/Relocate.d.ts.map +1 -0
- package/dist/esm/Relocate.js +153 -0
- package/dist/esm/Relocate.js.map +1 -0
- package/dist/esm/RemoteSearch.d.ts +54 -0
- package/dist/esm/RemoteSearch.d.ts.map +1 -0
- package/dist/esm/RemoteSearch.js +162 -0
- package/dist/esm/RemoteSearch.js.map +1 -0
- package/dist/esm/Search.d.ts +163 -0
- package/dist/esm/Search.d.ts.map +1 -0
- package/dist/esm/Search.js +47 -0
- package/dist/esm/Search.js.map +1 -0
- package/dist/esm/SearchConformance.d.ts +115 -0
- package/dist/esm/SearchConformance.d.ts.map +1 -0
- package/dist/esm/SearchConformance.js +193 -0
- package/dist/esm/SearchConformance.js.map +1 -0
- package/dist/esm/SearchContract.d.ts +114 -0
- package/dist/esm/SearchContract.d.ts.map +1 -0
- package/dist/esm/SearchContract.js +461 -0
- package/dist/esm/SearchContract.js.map +1 -0
- package/dist/esm/ShellCommand.d.ts +164 -0
- package/dist/esm/ShellCommand.d.ts.map +1 -0
- package/dist/esm/ShellCommand.js +159 -0
- package/dist/esm/ShellCommand.js.map +1 -0
- package/dist/esm/StdError.d.ts +55 -0
- package/dist/esm/StdError.d.ts.map +1 -0
- package/dist/esm/StdError.js +71 -0
- package/dist/esm/StdError.js.map +1 -0
- package/dist/esm/TestRun.d.ts +311 -0
- package/dist/esm/TestRun.d.ts.map +1 -0
- package/dist/esm/TestRun.js +316 -0
- package/dist/esm/TestRun.js.map +1 -0
- package/dist/esm/TestRunner.d.ts +102 -0
- package/dist/esm/TestRunner.d.ts.map +1 -0
- package/dist/esm/TestRunner.js +68 -0
- package/dist/esm/TestRunner.js.map +1 -0
- package/dist/esm/TreeFingerprint.d.ts +140 -0
- package/dist/esm/TreeFingerprint.d.ts.map +1 -0
- package/dist/esm/TreeFingerprint.js +170 -0
- package/dist/esm/TreeFingerprint.js.map +1 -0
- package/dist/esm/UpdatePlan.d.ts +152 -0
- package/dist/esm/UpdatePlan.d.ts.map +1 -0
- package/dist/esm/UpdatePlan.js +129 -0
- package/dist/esm/UpdatePlan.js.map +1 -0
- package/dist/esm/WebFetch.d.ts +134 -0
- package/dist/esm/WebFetch.d.ts.map +1 -0
- package/dist/esm/WebFetch.js +151 -0
- package/dist/esm/WebFetch.js.map +1 -0
- package/dist/esm/WebSearch.d.ts +181 -0
- package/dist/esm/WebSearch.d.ts.map +1 -0
- package/dist/esm/WebSearch.js +134 -0
- package/dist/esm/WebSearch.js.map +1 -0
- package/dist/esm/Write.d.ts +147 -0
- package/dist/esm/Write.d.ts.map +1 -0
- package/dist/esm/Write.js +144 -0
- package/dist/esm/Write.js.map +1 -0
- package/dist/esm/index.d.ts +129 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +129 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/ApplyPatch.d.ts +145 -0
- package/dist/esm/internal/ApplyPatch.d.ts.map +1 -0
- package/dist/esm/internal/ApplyPatch.js +489 -0
- package/dist/esm/internal/ApplyPatch.js.map +1 -0
- package/dist/esm/internal/CodexText.d.ts +73 -0
- package/dist/esm/internal/CodexText.d.ts.map +1 -0
- package/dist/esm/internal/CodexText.js +156 -0
- package/dist/esm/internal/CodexText.js.map +1 -0
- package/dist/esm/internal/Declaration.d.ts +49 -0
- package/dist/esm/internal/Declaration.d.ts.map +1 -0
- package/dist/esm/internal/Declaration.js +42 -0
- package/dist/esm/internal/Declaration.js.map +1 -0
- package/dist/esm/internal/Diagnostics.d.ts +77 -0
- package/dist/esm/internal/Diagnostics.d.ts.map +1 -0
- package/dist/esm/internal/Diagnostics.js +99 -0
- package/dist/esm/internal/Diagnostics.js.map +1 -0
- package/dist/esm/internal/EnvelopePrecheck.d.ts +69 -0
- package/dist/esm/internal/EnvelopePrecheck.d.ts.map +1 -0
- package/dist/esm/internal/EnvelopePrecheck.js +426 -0
- package/dist/esm/internal/EnvelopePrecheck.js.map +1 -0
- package/dist/esm/internal/Exec.d.ts +151 -0
- package/dist/esm/internal/Exec.d.ts.map +1 -0
- package/dist/esm/internal/Exec.js +285 -0
- package/dist/esm/internal/Exec.js.map +1 -0
- package/dist/esm/internal/FileMutation.d.ts +109 -0
- package/dist/esm/internal/FileMutation.d.ts.map +1 -0
- package/dist/esm/internal/FileMutation.js +123 -0
- package/dist/esm/internal/FileMutation.js.map +1 -0
- package/dist/esm/internal/FsFailure.d.ts +38 -0
- package/dist/esm/internal/FsFailure.d.ts.map +1 -0
- package/dist/esm/internal/FsFailure.js +39 -0
- package/dist/esm/internal/FsFailure.js.map +1 -0
- package/dist/esm/internal/GitWorktree.d.ts +108 -0
- package/dist/esm/internal/GitWorktree.d.ts.map +1 -0
- package/dist/esm/internal/GitWorktree.js +352 -0
- package/dist/esm/internal/GitWorktree.js.map +1 -0
- package/dist/esm/internal/Grouping.d.ts +51 -0
- package/dist/esm/internal/Grouping.d.ts.map +1 -0
- package/dist/esm/internal/Grouping.js +99 -0
- package/dist/esm/internal/Grouping.js.map +1 -0
- package/dist/esm/internal/Html.d.ts +20 -0
- package/dist/esm/internal/Html.d.ts.map +1 -0
- package/dist/esm/internal/Html.js +70 -0
- package/dist/esm/internal/Html.js.map +1 -0
- package/dist/esm/internal/Http.d.ts +95 -0
- package/dist/esm/internal/Http.d.ts.map +1 -0
- package/dist/esm/internal/Http.js +154 -0
- package/dist/esm/internal/Http.js.map +1 -0
- package/dist/esm/internal/HttpNetwork.d.ts +27 -0
- package/dist/esm/internal/HttpNetwork.d.ts.map +1 -0
- package/dist/esm/internal/HttpNetwork.js +114 -0
- package/dist/esm/internal/HttpNetwork.js.map +1 -0
- package/dist/esm/internal/Ignore.d.ts +37 -0
- package/dist/esm/internal/Ignore.d.ts.map +1 -0
- package/dist/esm/internal/Ignore.js +128 -0
- package/dist/esm/internal/Ignore.js.map +1 -0
- package/dist/esm/internal/LinearRegex.d.ts +19 -0
- package/dist/esm/internal/LinearRegex.d.ts.map +1 -0
- package/dist/esm/internal/LinearRegex.js +176 -0
- package/dist/esm/internal/LinearRegex.js.map +1 -0
- package/dist/esm/internal/Match.d.ts +85 -0
- package/dist/esm/internal/Match.d.ts.map +1 -0
- package/dist/esm/internal/Match.js +142 -0
- package/dist/esm/internal/Match.js.map +1 -0
- package/dist/esm/internal/Paths.d.ts +23 -0
- package/dist/esm/internal/Paths.d.ts.map +1 -0
- package/dist/esm/internal/Paths.js +40 -0
- package/dist/esm/internal/Paths.js.map +1 -0
- package/dist/esm/internal/Preserve.d.ts +25 -0
- package/dist/esm/internal/Preserve.d.ts.map +1 -0
- package/dist/esm/internal/Preserve.js +70 -0
- package/dist/esm/internal/Preserve.js.map +1 -0
- package/dist/esm/internal/Prune.d.ts +35 -0
- package/dist/esm/internal/Prune.d.ts.map +1 -0
- package/dist/esm/internal/Prune.js +60 -0
- package/dist/esm/internal/Prune.js.map +1 -0
- package/dist/esm/internal/RemoteTree.d.ts +60 -0
- package/dist/esm/internal/RemoteTree.d.ts.map +1 -0
- package/dist/esm/internal/RemoteTree.js +132 -0
- package/dist/esm/internal/RemoteTree.js.map +1 -0
- package/dist/esm/internal/SearchContract.d.ts +63 -0
- package/dist/esm/internal/SearchContract.d.ts.map +1 -0
- package/dist/esm/internal/SearchContract.js +66 -0
- package/dist/esm/internal/SearchContract.js.map +1 -0
- package/dist/esm/internal/Symbols.d.ts +39 -0
- package/dist/esm/internal/Symbols.d.ts.map +1 -0
- package/dist/esm/internal/Symbols.js +79 -0
- package/dist/esm/internal/Symbols.js.map +1 -0
- package/dist/esm/internal/Tar.d.ts +23 -0
- package/dist/esm/internal/Tar.d.ts.map +1 -0
- package/dist/esm/internal/Tar.js +97 -0
- package/dist/esm/internal/Tar.js.map +1 -0
- package/dist/esm/internal/TestReport.d.ts +52 -0
- package/dist/esm/internal/TestReport.d.ts.map +1 -0
- package/dist/esm/internal/TestReport.js +172 -0
- package/dist/esm/internal/TestReport.js.map +1 -0
- package/dist/esm/internal/Text.d.ts +125 -0
- package/dist/esm/internal/Text.d.ts.map +1 -0
- package/dist/esm/internal/Text.js +141 -0
- package/dist/esm/internal/Text.js.map +1 -0
- package/dist/esm/internal/Url.d.ts +13 -0
- package/dist/esm/internal/Url.d.ts.map +1 -0
- package/dist/esm/internal/Url.js +27 -0
- package/dist/esm/internal/Url.js.map +1 -0
- package/dist/esm/internal/Walk.d.ts +72 -0
- package/dist/esm/internal/Walk.d.ts.map +1 -0
- package/dist/esm/internal/Walk.js +126 -0
- package/dist/esm/internal/Walk.js.map +1 -0
- package/docs/README.md +119 -0
- package/docs/api.md +499 -0
- package/docs/concepts/effects-and-capabilities.md +138 -0
- package/docs/concepts/flows-and-handlers.md +115 -0
- package/docs/concepts/limits-and-disclosure.md +105 -0
- package/docs/concepts/search-contract.md +182 -0
- package/docs/guides/bind-the-standard-flows.md +116 -0
- package/docs/guides/implement-a-search-peer.md +133 -0
- package/docs/guides/pin-a-checkpoint.md +161 -0
- package/docs/guides/query-a-language-server.md +257 -0
- package/docs/guides/reach-the-network.md +141 -0
- package/docs/guides/read-and-edit-a-file.md +240 -0
- package/docs/guides/run-a-shell-command.md +236 -0
- package/docs/guides/run-the-test-suite.md +154 -0
- package/docs/guides/search-a-workspace.md +148 -0
- package/docs/installation.md +115 -0
- package/docs/quickstart.md +125 -0
- package/docs/reference/flows.md +556 -0
- package/docs/troubleshooting.md +347 -0
- package/package.json +449 -3
- package/src/ApplyPatch.ts +458 -0
- package/src/Bash.ts +619 -0
- package/src/Checkpoints.ts +589 -0
- package/src/Container.ts +212 -0
- package/src/Edit.ts +366 -0
- package/src/ExaWebSearch.ts +145 -0
- package/src/Explore.ts +139 -0
- package/src/Fetch.ts +117 -0
- package/src/Glob.ts +200 -0
- package/src/Grep.ts +320 -0
- package/src/HttpPost.ts +120 -0
- package/src/LanguageServer.ts +110 -0
- package/src/Ls.ts +228 -0
- package/src/Lsp.ts +184 -0
- package/src/Manifest.ts +162 -0
- package/src/NativeSearch.ts +457 -0
- package/src/NodeLanguageServer.ts +1148 -0
- package/src/PortableSearch.ts +284 -0
- package/src/Probe.ts +284 -0
- package/src/Read.ts +359 -0
- package/src/Relocate.ts +166 -0
- package/src/RemoteSearch.ts +199 -0
- package/src/Search.ts +185 -0
- package/src/SearchConformance.ts +288 -0
- package/src/SearchContract.ts +489 -0
- package/src/ShellCommand.ts +201 -0
- package/src/StdError.ts +80 -0
- package/src/TestRun.ts +401 -0
- package/src/TestRunner.ts +119 -0
- package/src/TreeFingerprint.ts +200 -0
- package/src/UpdatePlan.ts +171 -0
- package/src/WebFetch.ts +194 -0
- package/src/WebSearch.ts +165 -0
- package/src/Write.ts +195 -0
- package/src/index.ts +157 -0
- package/src/internal/ApplyPatch.ts +601 -0
- package/src/internal/CodexText.ts +182 -0
- package/src/internal/Declaration.ts +60 -0
- package/src/internal/Diagnostics.ts +134 -0
- package/src/internal/EnvelopePrecheck.ts +489 -0
- package/src/internal/Exec.ts +427 -0
- package/src/internal/FileMutation.ts +231 -0
- package/src/internal/FsFailure.ts +51 -0
- package/src/internal/GitWorktree.ts +491 -0
- package/src/internal/Grouping.ts +106 -0
- package/src/internal/Html.ts +87 -0
- package/src/internal/Http.ts +209 -0
- package/src/internal/HttpNetwork.ts +153 -0
- package/src/internal/Ignore.ts +135 -0
- package/src/internal/LinearRegex.ts +173 -0
- package/src/internal/Match.ts +172 -0
- package/src/internal/Paths.ts +42 -0
- package/src/internal/Preserve.ts +108 -0
- package/src/internal/Prune.ts +62 -0
- package/src/internal/RemoteTree.ts +159 -0
- package/src/internal/SearchContract.ts +77 -0
- package/src/internal/Symbols.ts +88 -0
- package/src/internal/Tar.ts +95 -0
- package/src/internal/TestReport.ts +194 -0
- package/src/internal/Text.ts +185 -0
- package/src/internal/Url.ts +23 -0
- package/src/internal/Walk.ts +176 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/Text.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Shared text paging, numbering, and byte-budget helpers.\n *\n * Every limit here is a display budget, not a policy limit: exceeding one is\n * always disclosed to the model rather than silently applied.\n *\n * @since 1.0.0\n */\n\n/**\n * Default number of lines or entries returned by a paged flow.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const DEFAULT_READ_LIMIT = 2_000\n\n/**\n * Maximum number of directory entries or glob paths returned in one call.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const MAX_ENTRIES = 1_000\n\n/**\n * Maximum number of grep matches returned in one call.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const MAX_GREP_MATCHES = 200\n\n/**\n * Maximum number of Unicode scalar values displayed for a single line.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const MAX_LINE_CHARS = 2_000\n\n/**\n * Maximum UTF-8 byte budget for one rendered text payload.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const MAX_OUTPUT_BYTES = 60_000\n\n/**\n * Maximum UTF-8 byte budget captured per shell output stream.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const MAX_SHELL_OUTPUT_BYTES = 30_000\n\n/**\n * A byte-budgeted rendering of a text value.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Truncation {\n readonly text: string\n readonly truncated: boolean\n readonly keptBytes: number\n readonly droppedBytes: number\n}\n\n/**\n * One page of source lines.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Page {\n readonly lines: ReadonlyArray<string>\n readonly startLine: number\n readonly endLine: number\n readonly totalLines: number\n}\n\nconst encoder = new TextEncoder()\nconst fatalDecoder = new TextDecoder(\"utf-8\", { fatal: true })\n\n/**\n * Trims a string to a UTF-8 byte budget without splitting a code point.\n *\n * `keep: \"head\"` retains the beginning of the value; `keep: \"tail\"` retains\n * the end, which is what shell output needs because the interesting part of an\n * overflowing stream is almost always its last lines.\n *\n * @category rendering\n * @since 1.0.0\n */\nexport const truncateBytes = (\n text: string,\n maxBytes: number,\n options: { readonly keep: \"head\" | \"tail\" }\n): Truncation => {\n const bytes = encoder.encode(text)\n if (bytes.byteLength <= maxBytes) {\n return { text, truncated: false, keptBytes: bytes.byteLength, droppedBytes: 0 }\n }\n let start = options.keep === \"head\" ? 0 : bytes.byteLength - maxBytes\n let end = options.keep === \"head\" ? maxBytes : bytes.byteLength\n // TextEncoder produces valid UTF-8. Moving a cut inward reaches a scalar\n // boundary after at most three continuation bytes, so decoding must succeed.\n while (true) {\n try {\n const decoded = fatalDecoder.decode(bytes.subarray(start, end))\n const keptBytes = end - start\n return {\n text: decoded,\n truncated: true,\n keptBytes,\n droppedBytes: bytes.byteLength - keptBytes\n }\n } catch {\n if (options.keep === \"head\") end--\n else start++\n }\n }\n}\n\n/**\n * Joins the start and the end of a stream cut in the middle around one line\n * naming the bytes cut between them.\n *\n * The line stands alone, so a start that stops mid-line is ended before it.\n * Only the line's own newlines are added; `droppedBytes` counts printed bytes.\n *\n * @category rendering\n * @since 1.0.0-rc.5\n */\nexport const elideMiddle = (start: string, droppedBytes: number, end: string): string =>\n `${start}${start === \"\" || start.endsWith(\"\\n\") ? \"\" : \"\\n\"}[${droppedBytes} ${\n droppedBytes === 1 ? \"byte\" : \"bytes\"\n } omitted]\\n${end}`\n\n/**\n * Splits on LF without counting a terminal LF as a line.\n * Carriage returns remain part of each line, including the CR in CRLF, so\n * joining a page with LF preserves its bytes except for the final LF.\n *\n * @category parsing\n * @since 1.0.0\n */\nexport const sourceLines = (text: string): ReadonlyArray<string> => {\n const lines = text.length === 0 ? [] : text.split(\"\\n\")\n if (text.endsWith(\"\\n\")) lines.pop()\n return lines\n}\n\n/**\n * Selects a 1-based page of lines from a text value.\n *\n * @category paging\n * @since 1.0.0\n */\nexport const slice = (\n text: string,\n options: { readonly offset: number; readonly limit: number }\n): Page => {\n const lines = sourceLines(text)\n const totalLines = lines.length\n const startLine = Math.max(1, options.offset)\n const endLine = Math.min(totalLines, startLine + Math.max(0, options.limit) - 1)\n return {\n lines: lines.slice(startLine - 1, endLine),\n startLine,\n endLine,\n totalLines\n }\n}\n\n/**\n * Renders the disclosure appended whenever output was capped.\n *\n * @category rendering\n * @since 1.0.0\n */\nexport const notice = (unit: string, shown: number, total: number): string =>\n `Showing ${shown} of ${total} ${unit}; output was truncated.`\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeO,MAAM,qBAAqB;AAQ3B,MAAM,cAAc;AAQpB,MAAM,mBAAmB;AAQzB,MAAM,iBAAiB;AAQvB,MAAM,mBAAmB;AAQzB,MAAM,yBAAyB;AA4BtC,MAAM,UAAU,IAAI,YAAY;AAChC,MAAM,eAAe,IAAI,YAAY,SAAS,EAAE,OAAO,KAAK,CAAC;AAYtD,MAAM,gBAAgB,CAC3B,MACA,UACA,YACe;AACf,QAAM,QAAQ,QAAQ,OAAO,IAAI;AACjC,MAAI,MAAM,cAAc,UAAU;AAChC,WAAO,EAAE,MAAM,WAAW,OAAO,WAAW,MAAM,YAAY,cAAc,EAAE;AAAA,EAChF;AACA,MAAI,QAAQ,QAAQ,SAAS,SAAS,IAAI,MAAM,aAAa;AAC7D,MAAI,MAAM,QAAQ,SAAS,SAAS,WAAW,MAAM;AAGrD,SAAO,MAAM;AACX,QAAI;AACF,YAAM,UAAU,aAAa,OAAO,MAAM,SAAS,OAAO,GAAG,CAAC;AAC9D,YAAM,YAAY,MAAM;AACxB,aAAO;AAAA,QACL,MAAM;AAAA,QACN,WAAW;AAAA,QACX;AAAA,QACA,cAAc,MAAM,aAAa;AAAA,MACnC;AAAA,IACF,QAAQ;AACN,UAAI,QAAQ,SAAS,OAAQ;AAAA,UACxB;AAAA,IACP;AAAA,EACF;AACF;AAYO,MAAM,cAAc,CAAC,OAAe,cAAsB,QAC/D,GAAG,KAAK,GAAG,UAAU,MAAM,MAAM,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,YAAY,IACzE,iBAAiB,IAAI,SAAS,OAChC;AAAA,EAAc,GAAG;AAUZ,MAAM,cAAc,CAAC,SAAwC;AAClE,QAAM,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI;AACtD,MAAI,KAAK,SAAS,IAAI,EAAG,OAAM,IAAI;AACnC,SAAO;AACT;AAQO,MAAM,QAAQ,CACnB,MACA,YACS;AACT,QAAM,QAAQ,YAAY,IAAI;AAC9B,QAAM,aAAa,MAAM;AACzB,QAAM,YAAY,KAAK,IAAI,GAAG,QAAQ,MAAM;AAC5C,QAAM,UAAU,KAAK,IAAI,YAAY,YAAY,KAAK,IAAI,GAAG,QAAQ,KAAK,IAAI,CAAC;AAC/E,SAAO;AAAA,IACL,OAAO,MAAM,MAAM,YAAY,GAAG,OAAO;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAQO,MAAM,SAAS,CAAC,MAAc,OAAe,UAClD,WAAW,KAAK,OAAO,KAAK,IAAI,IAAI;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared validation for outbound HTTP URLs.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Parses an HTTP or HTTPS URL without admitting credentials or hostless URLs.
|
|
8
|
+
*
|
|
9
|
+
* @category parsing
|
|
10
|
+
* @since 1.0.0
|
|
11
|
+
*/
|
|
12
|
+
export declare const parseHttpUrl: (value: string, base?: URL) => URL | undefined;
|
|
13
|
+
//# sourceMappingURL=Url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Url.d.ts","sourceRoot":"","sources":["../../../src/internal/Url.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,EAAE,OAAO,GAAG,KAAG,GAAG,GAAG,SAU9D,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var Url_exports = {};
|
|
20
|
+
__export(Url_exports, {
|
|
21
|
+
parseHttpUrl: () => parseHttpUrl
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(Url_exports);
|
|
24
|
+
const parseHttpUrl = (value, base) => {
|
|
25
|
+
if (value.trim() === "") return void 0;
|
|
26
|
+
try {
|
|
27
|
+
const url = base === void 0 ? new URL(value) : new URL(value, base);
|
|
28
|
+
if (url.protocol !== "http:" && url.protocol !== "https:") return void 0;
|
|
29
|
+
if (url.hostname === "" || url.username !== "" || url.password !== "") return void 0;
|
|
30
|
+
return url;
|
|
31
|
+
} catch {
|
|
32
|
+
return void 0;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=Url.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/Url.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Shared validation for outbound HTTP URLs.\n *\n * @since 1.0.0\n */\n\n/**\n * Parses an HTTP or HTTPS URL without admitting credentials or hostless URLs.\n *\n * @category parsing\n * @since 1.0.0\n */\nexport const parseHttpUrl = (value: string, base?: URL): URL | undefined => {\n if (value.trim() === \"\") return undefined\n try {\n const url = base === undefined ? new URL(value) : new URL(value, base)\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return undefined\n if (url.hostname === \"\" || url.username !== \"\" || url.password !== \"\") return undefined\n return url\n } catch {\n return undefined\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYO,MAAM,eAAe,CAAC,OAAe,SAAgC;AAC1E,MAAI,MAAM,KAAK,MAAM,GAAI,QAAO;AAChC,MAAI;AACF,UAAM,MAAM,SAAS,SAAY,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI;AACrE,QAAI,IAAI,aAAa,WAAW,IAAI,aAAa,SAAU,QAAO;AAClE,QAAI,IAAI,aAAa,MAAM,IAAI,aAAa,MAAM,IAAI,aAAa,GAAI,QAAO;AAC9E,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The directory names a repository walk never descends into.
|
|
3
|
+
*
|
|
4
|
+
* `grep` and `glob` walk with the kernel filesystem, and every entry costs a
|
|
5
|
+
* guarded stat. A walk rooted at "." that descends into `.git` visits tens of
|
|
6
|
+
* thousands of object files no search wants: one such `grep` held a benchmark
|
|
7
|
+
* frame for its entire fifteen-minute ceiling. The skip set is the same
|
|
8
|
+
* convention ripgrep ships — version control, dependency trees, and caches —
|
|
9
|
+
* and an explicit root inside a skipped directory still walks, because
|
|
10
|
+
* skipping applies to descent, never to what the caller named.
|
|
11
|
+
*
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
*/
|
|
14
|
+
import type * as Path from "@smthrs/kernel/Path";
|
|
15
|
+
import { Effect } from "effect";
|
|
16
|
+
import type * as FileSystem from "effect/FileSystem";
|
|
17
|
+
import type * as StdError from "../StdError.ts";
|
|
18
|
+
/**
|
|
19
|
+
* Directory basenames excluded from recursive descent.
|
|
20
|
+
*
|
|
21
|
+
* @category constants
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
*/
|
|
24
|
+
export declare const skippedDirectories: ReadonlySet<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Separates pattern path segments with slashes while preserving POSIX filenames.
|
|
27
|
+
*
|
|
28
|
+
* @private
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
*/
|
|
31
|
+
export declare const relativeForPattern: (path: Path.Path, from: string, to: string) => string;
|
|
32
|
+
/**
|
|
33
|
+
* Answers whether each path is a symbolic link, which neither peer follows.
|
|
34
|
+
*
|
|
35
|
+
* `FileSystem.stat` resolves links, so the only probe available is `readLink`,
|
|
36
|
+
* and every probe is one more call in a loop that already makes one per entry.
|
|
37
|
+
* The walk therefore probes directories, where following a link would duplicate
|
|
38
|
+
* a subtree or loop forever, and the callers probe the far smaller set of files
|
|
39
|
+
* they are about to report — batched, never one at a time.
|
|
40
|
+
*
|
|
41
|
+
* @private
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
*/
|
|
44
|
+
export declare const symbolicLinks: (fileSystem: FileSystem.FileSystem, candidates: ReadonlyArray<string>) => Effect.Effect<ReadonlyArray<boolean>>;
|
|
45
|
+
/**
|
|
46
|
+
* One walk: admitted files, explicit-root status, and ignore exclusions.
|
|
47
|
+
*
|
|
48
|
+
* @private
|
|
49
|
+
* @since 1.0.0
|
|
50
|
+
*/
|
|
51
|
+
export interface Walked {
|
|
52
|
+
readonly ignored: boolean;
|
|
53
|
+
readonly explicitFile: boolean;
|
|
54
|
+
readonly files: ReadonlyArray<string>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Lists the files a search under `root` reaches.
|
|
58
|
+
*
|
|
59
|
+
* Only the root the caller named is allowed to fail the walk. Every entry
|
|
60
|
+
* below it that the process cannot inspect — a dangling symlink, a symlink
|
|
61
|
+
* loop, a directory it may not list — is skipped and the walk continues, which
|
|
62
|
+
* is what `rg --no-messages` does with the same tree. Turning one of those into
|
|
63
|
+
* a typed failure would make a whole repository unsearchable because of one
|
|
64
|
+
* link, and would answer differently from the native peer. Only .gitignore
|
|
65
|
+
* files within this root are read; ignored directories are never descended.
|
|
66
|
+
* `included` narrows the empty-result diagnostic without changing descent.
|
|
67
|
+
*
|
|
68
|
+
* @private
|
|
69
|
+
* @since 1.0.0
|
|
70
|
+
*/
|
|
71
|
+
export declare const files: (fileSystem: FileSystem.FileSystem, path: Path.Path, root: string, hidden: boolean, noIgnore?: boolean, included?: (relative: string, basename: string) => boolean) => Effect.Effect<Walked, StdError.StdError>;
|
|
72
|
+
//# sourceMappingURL=Walk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Walk.d.ts","sourceRoot":"","sources":["../../../src/internal/Walk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,KAAK,IAAI,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AACpD,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAK/C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAAwC,CAAA;AAa3F;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,MAAM,EAAE,IAAI,MAAM,KAAG,MAG9E,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,GACxB,YAAY,UAAU,CAAC,UAAU,EACjC,YAAY,aAAa,CAAC,MAAM,CAAC,KAChC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAKpC,CAAA;AAEH;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CACtC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK,GAChB,YAAY,UAAU,CAAC,UAAU,EACjC,MAAM,IAAI,CAAC,IAAI,EACf,MAAM,MAAM,EACZ,QAAQ,OAAO,EACf,kBAAgB,EAChB,WAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAoB,KACrE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAmEtC,CAAA"}
|
|
@@ -0,0 +1,108 @@
|
|
|
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 Walk_exports = {};
|
|
30
|
+
__export(Walk_exports, {
|
|
31
|
+
files: () => files,
|
|
32
|
+
relativeForPattern: () => relativeForPattern,
|
|
33
|
+
skippedDirectories: () => skippedDirectories,
|
|
34
|
+
symbolicLinks: () => symbolicLinks
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(Walk_exports);
|
|
37
|
+
var import_effect = require("effect");
|
|
38
|
+
var Ignore = __toESM(require("./Ignore.js"), 1);
|
|
39
|
+
var Prune = __toESM(require("./Prune.js"), 1);
|
|
40
|
+
var import_SearchContract = require("./SearchContract.js");
|
|
41
|
+
const skippedDirectories = new Set(Prune.repositoryDirectories);
|
|
42
|
+
const concurrency = 16;
|
|
43
|
+
const relativeForPattern = (path, from, to) => {
|
|
44
|
+
const relative = path.relative(from, to);
|
|
45
|
+
return path.sep === "\\" ? relative.replaceAll("\\", "/") : relative;
|
|
46
|
+
};
|
|
47
|
+
const symbolicLinks = (fileSystem, candidates) => import_effect.Effect.forEach(
|
|
48
|
+
candidates,
|
|
49
|
+
(candidate) => fileSystem.readLink(candidate).pipe(import_effect.Effect.as(true), import_effect.Effect.orElseSucceed(() => false)),
|
|
50
|
+
{ concurrency }
|
|
51
|
+
);
|
|
52
|
+
const files = (fileSystem, path, root, hidden, noIgnore = false, included = () => true) => import_effect.Effect.gen(function* () {
|
|
53
|
+
const info = yield* fileSystem.stat(root).pipe(import_effect.Effect.mapError((error) => (0, import_SearchContract.rootFailure)(root, error)));
|
|
54
|
+
if (info.type === "File") return { explicitFile: true, files: [path.normalize(root)], ignored: false };
|
|
55
|
+
const files2 = [];
|
|
56
|
+
let excluded = false;
|
|
57
|
+
const directories = [{
|
|
58
|
+
directory: root,
|
|
59
|
+
scopes: []
|
|
60
|
+
}];
|
|
61
|
+
while (directories.length > 0) {
|
|
62
|
+
const next = directories.pop();
|
|
63
|
+
const { directory } = next;
|
|
64
|
+
let scopes = next.scopes;
|
|
65
|
+
const children = yield* fileSystem.readDirectory(directory).pipe(
|
|
66
|
+
import_effect.Effect.catch(
|
|
67
|
+
(error) => directory === root ? import_effect.Effect.fail((0, import_SearchContract.rootFailure)(directory, error)) : import_effect.Effect.succeed([])
|
|
68
|
+
)
|
|
69
|
+
);
|
|
70
|
+
if (!noIgnore && children.includes(".gitignore")) {
|
|
71
|
+
const content = yield* fileSystem.readFileString(path.join(directory, ".gitignore")).pipe(
|
|
72
|
+
import_effect.Effect.orElseSucceed(() => "")
|
|
73
|
+
);
|
|
74
|
+
const scope = Ignore.parse(directory, content);
|
|
75
|
+
if (scope.rules.length > 0) scopes = [...scopes, scope];
|
|
76
|
+
}
|
|
77
|
+
const candidates = children.filter((child) => !skippedDirectories.has(child) && (hidden || !child.startsWith("."))).map((child) => path.join(directory, child));
|
|
78
|
+
const entries = yield* import_effect.Effect.forEach(candidates, (candidate) => fileSystem.stat(candidate).pipe(
|
|
79
|
+
import_effect.Effect.map((candidateInfo) => ({
|
|
80
|
+
candidate,
|
|
81
|
+
type: candidateInfo.type
|
|
82
|
+
})),
|
|
83
|
+
import_effect.Effect.orElseSucceed(() => ({ candidate, type: void 0 }))
|
|
84
|
+
), { concurrency });
|
|
85
|
+
const nested = [];
|
|
86
|
+
for (const entry of entries) {
|
|
87
|
+
if (entry.type !== void 0 && Ignore.ignored(
|
|
88
|
+
scopes,
|
|
89
|
+
entry.candidate,
|
|
90
|
+
path.basename(entry.candidate),
|
|
91
|
+
entry.type === "Directory",
|
|
92
|
+
(from, to) => relativeForPattern(path, from, to)
|
|
93
|
+
)) {
|
|
94
|
+
if (entry.type === "Directory" || included(relativeForPattern(path, root, entry.candidate), path.basename(entry.candidate))) excluded = true;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (entry.type === "Directory") nested.push(entry.candidate);
|
|
98
|
+
else if (entry.type === "File") files2.push(path.normalize(entry.candidate));
|
|
99
|
+
}
|
|
100
|
+
const links = yield* symbolicLinks(fileSystem, nested);
|
|
101
|
+
for (let index = 0; index < nested.length; index++) {
|
|
102
|
+
const candidate = nested[index];
|
|
103
|
+
if (links[index] !== true) directories.push({ directory: candidate, scopes });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return { explicitFile: false, files: files2.sort(), ignored: excluded };
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=Walk.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/internal/Walk.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * The directory names a repository walk never descends into.\n *\n * `grep` and `glob` walk with the kernel filesystem, and every entry costs a\n * guarded stat. A walk rooted at \".\" that descends into `.git` visits tens of\n * thousands of object files no search wants: one such `grep` held a benchmark\n * frame for its entire fifteen-minute ceiling. The skip set is the same\n * convention ripgrep ships \u2014 version control, dependency trees, and caches \u2014\n * and an explicit root inside a skipped directory still walks, because\n * skipping applies to descent, never to what the caller named.\n *\n * @since 1.0.0\n */\n\nimport type * as Path from \"@smthrs/kernel/Path\"\nimport { Effect } from \"effect\"\nimport type * as FileSystem from \"effect/FileSystem\"\nimport type * as StdError from \"../StdError.ts\"\nimport * as Ignore from \"./Ignore.ts\"\nimport * as Prune from \"./Prune.ts\"\nimport { rootFailure } from \"./SearchContract.ts\"\n\n/**\n * Directory basenames excluded from recursive descent.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const skippedDirectories: ReadonlySet<string> = new Set(Prune.repositoryDirectories)\n\n/**\n * How many filesystem questions one directory level asks at a time.\n *\n * A metadata call through the layer costs far more in fiber scheduling than in\n * kernel time, so asking one entry at a time is what makes a walk slow: the\n * same probe measured 28.8 \u00B5s sequentially and 6.0 \u00B5s at this width on the\n * SWE-bench pytest tree. The bound keeps the file-descriptor and thread-pool\n * pressure of a wide directory predictable.\n */\nconst concurrency = 16\n\n/**\n * Separates pattern path segments with slashes while preserving POSIX filenames.\n *\n * @private\n * @since 1.0.0\n */\nexport const relativeForPattern = (path: Path.Path, from: string, to: string): string => {\n const relative = path.relative(from, to)\n return path.sep === \"\\\\\" ? relative.replaceAll(\"\\\\\", \"/\") : relative\n}\n\n/**\n * Answers whether each path is a symbolic link, which neither peer follows.\n *\n * `FileSystem.stat` resolves links, so the only probe available is `readLink`,\n * and every probe is one more call in a loop that already makes one per entry.\n * The walk therefore probes directories, where following a link would duplicate\n * a subtree or loop forever, and the callers probe the far smaller set of files\n * they are about to report \u2014 batched, never one at a time.\n *\n * @private\n * @since 1.0.0\n */\nexport const symbolicLinks = (\n fileSystem: FileSystem.FileSystem,\n candidates: ReadonlyArray<string>\n): Effect.Effect<ReadonlyArray<boolean>> =>\n Effect.forEach(\n candidates,\n (candidate) => fileSystem.readLink(candidate).pipe(Effect.as(true), Effect.orElseSucceed(() => false)),\n { concurrency }\n )\n\n/**\n * One walk: admitted files, explicit-root status, and ignore exclusions.\n *\n * @private\n * @since 1.0.0\n */\nexport interface Walked {\n readonly ignored: boolean\n readonly explicitFile: boolean\n readonly files: ReadonlyArray<string>\n}\n\n/**\n * Lists the files a search under `root` reaches.\n *\n * Only the root the caller named is allowed to fail the walk. Every entry\n * below it that the process cannot inspect \u2014 a dangling symlink, a symlink\n * loop, a directory it may not list \u2014 is skipped and the walk continues, which\n * is what `rg --no-messages` does with the same tree. Turning one of those into\n * a typed failure would make a whole repository unsearchable because of one\n * link, and would answer differently from the native peer. Only .gitignore\n * files within this root are read; ignored directories are never descended.\n * `included` narrows the empty-result diagnostic without changing descent.\n *\n * @private\n * @since 1.0.0\n */\nexport const files = (\n fileSystem: FileSystem.FileSystem,\n path: Path.Path,\n root: string,\n hidden: boolean,\n noIgnore = false,\n included: (relative: string, basename: string) => boolean = () => true\n): Effect.Effect<Walked, StdError.StdError> =>\n Effect.gen(function*() {\n const info = yield* fileSystem.stat(root).pipe(Effect.mapError((error) => rootFailure(root, error)))\n if (info.type === \"File\") return { explicitFile: true, files: [path.normalize(root)], ignored: false }\n const files: Array<string> = []\n let excluded = false\n const directories: Array<{ directory: string; scopes: ReadonlyArray<Ignore.Scope> }> = [{\n directory: root,\n scopes: []\n }]\n while (directories.length > 0) {\n const next = directories.pop()!\n const { directory } = next\n let scopes = next.scopes\n const children: ReadonlyArray<string> = yield* fileSystem.readDirectory(directory).pipe(\n Effect.catch((error) =>\n directory === root\n ? Effect.fail(rootFailure(directory, error))\n : Effect.succeed<ReadonlyArray<string>>([])\n )\n )\n if (!noIgnore && children.includes(\".gitignore\")) {\n const content = yield* fileSystem.readFileString(path.join(directory, \".gitignore\")).pipe(\n Effect.orElseSucceed(() => \"\")\n )\n const scope = Ignore.parse(directory, content)\n if (scope.rules.length > 0) scopes = [...scopes, scope]\n }\n const candidates = children\n .filter((child) => !skippedDirectories.has(child) && (hidden || !child.startsWith(\".\")))\n .map((child) => path.join(directory, child))\n const entries = yield* Effect.forEach(candidates, (candidate) =>\n fileSystem.stat(candidate).pipe(\n Effect.map((candidateInfo): { readonly candidate: string; readonly type: string | undefined } => ({\n candidate,\n type: candidateInfo.type\n })),\n Effect.orElseSucceed(() => ({ candidate, type: undefined }))\n ), { concurrency })\n const nested: Array<string> = []\n for (const entry of entries) {\n if (\n entry.type !== undefined &&\n Ignore.ignored(\n scopes,\n entry.candidate,\n path.basename(entry.candidate),\n entry.type === \"Directory\",\n (from, to) => relativeForPattern(path, from, to)\n )\n ) {\n if (\n entry.type === \"Directory\" ||\n included(relativeForPattern(path, root, entry.candidate), path.basename(entry.candidate))\n ) excluded = true\n continue\n }\n if (entry.type === \"Directory\") nested.push(entry.candidate)\n else if (entry.type === \"File\") files.push(path.normalize(entry.candidate))\n }\n const links = yield* symbolicLinks(fileSystem, nested)\n for (let index = 0; index < nested.length; index++) {\n const candidate = nested[index]!\n if (links[index] !== true) directories.push({ directory: candidate, scopes })\n }\n }\n return { explicitFile: false, files: files.sort(), ignored: excluded }\n })\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAeA,oBAAuB;AAGvB,aAAwB;AACxB,YAAuB;AACvB,4BAA4B;AAQrB,MAAM,qBAA0C,IAAI,IAAI,MAAM,qBAAqB;AAW1F,MAAM,cAAc;AAQb,MAAM,qBAAqB,CAAC,MAAiB,MAAc,OAAuB;AACvF,QAAM,WAAW,KAAK,SAAS,MAAM,EAAE;AACvC,SAAO,KAAK,QAAQ,OAAO,SAAS,WAAW,MAAM,GAAG,IAAI;AAC9D;AAcO,MAAM,gBAAgB,CAC3B,YACA,eAEA,qBAAO;AAAA,EACL;AAAA,EACA,CAAC,cAAc,WAAW,SAAS,SAAS,EAAE,KAAK,qBAAO,GAAG,IAAI,GAAG,qBAAO,cAAc,MAAM,KAAK,CAAC;AAAA,EACrG,EAAE,YAAY;AAChB;AA6BK,MAAM,QAAQ,CACnB,YACA,MACA,MACA,QACA,WAAW,OACX,WAA4D,MAAM,SAElE,qBAAO,IAAI,aAAY;AACrB,QAAM,OAAO,OAAO,WAAW,KAAK,IAAI,EAAE,KAAK,qBAAO,SAAS,CAAC,cAAU,mCAAY,MAAM,KAAK,CAAC,CAAC;AACnG,MAAI,KAAK,SAAS,OAAQ,QAAO,EAAE,cAAc,MAAM,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,GAAG,SAAS,MAAM;AACrG,QAAMA,SAAuB,CAAC;AAC9B,MAAI,WAAW;AACf,QAAM,cAAiF,CAAC;AAAA,IACtF,WAAW;AAAA,IACX,QAAQ,CAAC;AAAA,EACX,CAAC;AACD,SAAO,YAAY,SAAS,GAAG;AAC7B,UAAM,OAAO,YAAY,IAAI;AAC7B,UAAM,EAAE,UAAU,IAAI;AACtB,QAAI,SAAS,KAAK;AAClB,UAAM,WAAkC,OAAO,WAAW,cAAc,SAAS,EAAE;AAAA,MACjF,qBAAO;AAAA,QAAM,CAAC,UACZ,cAAc,OACV,qBAAO,SAAK,mCAAY,WAAW,KAAK,CAAC,IACzC,qBAAO,QAA+B,CAAC,CAAC;AAAA,MAC9C;AAAA,IACF;AACA,QAAI,CAAC,YAAY,SAAS,SAAS,YAAY,GAAG;AAChD,YAAM,UAAU,OAAO,WAAW,eAAe,KAAK,KAAK,WAAW,YAAY,CAAC,EAAE;AAAA,QACnF,qBAAO,cAAc,MAAM,EAAE;AAAA,MAC/B;AACA,YAAM,QAAQ,OAAO,MAAM,WAAW,OAAO;AAC7C,UAAI,MAAM,MAAM,SAAS,EAAG,UAAS,CAAC,GAAG,QAAQ,KAAK;AAAA,IACxD;AACA,UAAM,aAAa,SAChB,OAAO,CAAC,UAAU,CAAC,mBAAmB,IAAI,KAAK,MAAM,UAAU,CAAC,MAAM,WAAW,GAAG,EAAE,EACtF,IAAI,CAAC,UAAU,KAAK,KAAK,WAAW,KAAK,CAAC;AAC7C,UAAM,UAAU,OAAO,qBAAO,QAAQ,YAAY,CAAC,cACjD,WAAW,KAAK,SAAS,EAAE;AAAA,MACzB,qBAAO,IAAI,CAAC,mBAAsF;AAAA,QAChG;AAAA,QACA,MAAM,cAAc;AAAA,MACtB,EAAE;AAAA,MACF,qBAAO,cAAc,OAAO,EAAE,WAAW,MAAM,OAAU,EAAE;AAAA,IAC7D,GAAG,EAAE,YAAY,CAAC;AACpB,UAAM,SAAwB,CAAC;AAC/B,eAAW,SAAS,SAAS;AAC3B,UACE,MAAM,SAAS,UACf,OAAO;AAAA,QACL;AAAA,QACA,MAAM;AAAA,QACN,KAAK,SAAS,MAAM,SAAS;AAAA,QAC7B,MAAM,SAAS;AAAA,QACf,CAAC,MAAM,OAAO,mBAAmB,MAAM,MAAM,EAAE;AAAA,MACjD,GACA;AACA,YACE,MAAM,SAAS,eACf,SAAS,mBAAmB,MAAM,MAAM,MAAM,SAAS,GAAG,KAAK,SAAS,MAAM,SAAS,CAAC,EACxF,YAAW;AACb;AAAA,MACF;AACA,UAAI,MAAM,SAAS,YAAa,QAAO,KAAK,MAAM,SAAS;AAAA,eAClD,MAAM,SAAS,OAAQ,CAAAA,OAAM,KAAK,KAAK,UAAU,MAAM,SAAS,CAAC;AAAA,IAC5E;AACA,UAAM,QAAQ,OAAO,cAAc,YAAY,MAAM;AACrD,aAAS,QAAQ,GAAG,QAAQ,OAAO,QAAQ,SAAS;AAClD,YAAM,YAAY,OAAO,KAAK;AAC9B,UAAI,MAAM,KAAK,MAAM,KAAM,aAAY,KAAK,EAAE,WAAW,WAAW,OAAO,CAAC;AAAA,IAC9E;AAAA,EACF;AACA,SAAO,EAAE,cAAc,OAAO,OAAOA,OAAM,KAAK,GAAG,SAAS,SAAS;AACvE,CAAC;",
|
|
6
|
+
"names": ["files"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* apply_patch flow declaration and portable handler.
|
|
3
|
+
*
|
|
4
|
+
* A Codex CLI clone: the V4A patch grammar (`*** Begin Patch` /
|
|
5
|
+
* `*** Add File:` / `*** Update File:` / `*** Delete File:` /
|
|
6
|
+
* `*** End Patch`), the fuzzy context-matching applier, and Codex's error
|
|
7
|
+
* and summary text, expressed as a flow over the kernel filesystem.
|
|
8
|
+
*
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import * as FileSystem from "effect/FileSystem";
|
|
13
|
+
import * as Schema from "effect/Schema";
|
|
14
|
+
import * as StdError from "./StdError.ts";
|
|
15
|
+
/**
|
|
16
|
+
* Registry name for the apply_patch flow. Matches the Codex CLI tool name.
|
|
17
|
+
*
|
|
18
|
+
* @category identifiers
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
*/
|
|
21
|
+
export declare const name = "apply_patch";
|
|
22
|
+
/**
|
|
23
|
+
* Model-facing description of the apply_patch flow. Matches the Codex CLI
|
|
24
|
+
* freeform tool description.
|
|
25
|
+
*
|
|
26
|
+
* @category descriptions
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
export declare const description = "The `apply_patch` tool can be used to edit files. This is a FREEFORM tool, so do not wrap the patch in JSON.";
|
|
30
|
+
/**
|
|
31
|
+
* Input schema for the apply_patch flow.
|
|
32
|
+
*
|
|
33
|
+
* Codex delivers the patch as freeform text; the JSON function fallback uses
|
|
34
|
+
* a single `input` field, which is the shape cloned here.
|
|
35
|
+
*
|
|
36
|
+
* @category schemas
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
*/
|
|
39
|
+
export declare const Input: Schema.Struct<{
|
|
40
|
+
readonly input: Schema.String;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Decoded input accepted by the `apply_patch` flow.
|
|
44
|
+
*
|
|
45
|
+
* @category models
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
*/
|
|
48
|
+
export type Input = typeof Input.Type;
|
|
49
|
+
/**
|
|
50
|
+
* Output schema for the apply_patch flow.
|
|
51
|
+
*
|
|
52
|
+
* @category schemas
|
|
53
|
+
* @since 1.0.0
|
|
54
|
+
*/
|
|
55
|
+
export declare const Output: Schema.Struct<{
|
|
56
|
+
readonly output: Schema.String;
|
|
57
|
+
readonly added: Schema.$Array<Schema.String>;
|
|
58
|
+
readonly modified: Schema.$Array<Schema.String>;
|
|
59
|
+
readonly deleted: Schema.$Array<Schema.String>;
|
|
60
|
+
}>;
|
|
61
|
+
/**
|
|
62
|
+
* Decoded output returned by the `apply_patch` flow.
|
|
63
|
+
*
|
|
64
|
+
* @category models
|
|
65
|
+
* @since 1.0.0
|
|
66
|
+
*/
|
|
67
|
+
export type Output = typeof Output.Type;
|
|
68
|
+
/**
|
|
69
|
+
* Static conservative effect envelope for the apply_patch flow.
|
|
70
|
+
*
|
|
71
|
+
* @category effects
|
|
72
|
+
* @since 1.0.0
|
|
73
|
+
*/
|
|
74
|
+
export declare const effects: import("@smthrs/plan/Effects").Declaration;
|
|
75
|
+
/**
|
|
76
|
+
* Narrows the effect envelope for a decoded invocation.
|
|
77
|
+
*
|
|
78
|
+
* A patch names its files inside its own text rather than in a decoded field,
|
|
79
|
+
* and the parse that finds them is the same parse that can fail, so there is
|
|
80
|
+
* nothing here to narrow before the handler runs: the static envelope is the
|
|
81
|
+
* honest answer.
|
|
82
|
+
*
|
|
83
|
+
* @category effects
|
|
84
|
+
* @since 1.0.0
|
|
85
|
+
*/
|
|
86
|
+
export declare const effectsFor: (_input: typeof Input.Type) => import("@smthrs/plan/Effects").Declaration;
|
|
87
|
+
/**
|
|
88
|
+
* Capabilities required by the apply_patch flow.
|
|
89
|
+
*
|
|
90
|
+
* @category capabilities
|
|
91
|
+
* @since 1.0.0
|
|
92
|
+
*/
|
|
93
|
+
export declare const capabilities: string[];
|
|
94
|
+
/**
|
|
95
|
+
* Declaration-only apply_patch flow.
|
|
96
|
+
*
|
|
97
|
+
* @category flows
|
|
98
|
+
* @since 1.0.0
|
|
99
|
+
*/
|
|
100
|
+
export declare const flow: {
|
|
101
|
+
readonly name: "apply_patch";
|
|
102
|
+
readonly description: "The `apply_patch` tool can be used to edit files. This is a FREEFORM tool, so do not wrap the patch in JSON.";
|
|
103
|
+
readonly input: Schema.Struct<{
|
|
104
|
+
readonly input: Schema.String;
|
|
105
|
+
}>;
|
|
106
|
+
readonly output: Schema.Struct<{
|
|
107
|
+
readonly output: Schema.String;
|
|
108
|
+
readonly added: Schema.$Array<Schema.String>;
|
|
109
|
+
readonly modified: Schema.$Array<Schema.String>;
|
|
110
|
+
readonly deleted: Schema.$Array<Schema.String>;
|
|
111
|
+
}>;
|
|
112
|
+
readonly capabilities: string[];
|
|
113
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* What a call to this flow does, for a reader of a run.
|
|
117
|
+
*
|
|
118
|
+
* Display metadata only. `@smthrs/registry` `Descriptor.FlowActivity` is the
|
|
119
|
+
* governing vocabulary and `StandardFlows` binds this value onto the flow's
|
|
120
|
+
* descriptor, where the binding site checks it. `declarationDigest` excludes
|
|
121
|
+
* it, so declaring it cannot invalidate a call identity or a cached prompt.
|
|
122
|
+
*
|
|
123
|
+
* @category presentation
|
|
124
|
+
* @since 1.0.0-rc.0
|
|
125
|
+
*/
|
|
126
|
+
export declare const activity: "writes";
|
|
127
|
+
/**
|
|
128
|
+
* How one recorded call to this flow reads: the verb for each settlement, the
|
|
129
|
+
* input field that is its subject, and the measured output fields a one-line
|
|
130
|
+
* summary may count.
|
|
131
|
+
*
|
|
132
|
+
* Display metadata only, governed by `@smthrs/registry`
|
|
133
|
+
* `Descriptor.CallPresentation` and checked where `StandardFlows` binds it.
|
|
134
|
+
*
|
|
135
|
+
* @category presentation
|
|
136
|
+
* @since 1.0.0-rc.0
|
|
137
|
+
*/
|
|
138
|
+
export declare const presentation: {
|
|
139
|
+
readonly verb: {
|
|
140
|
+
readonly pending: "patching";
|
|
141
|
+
readonly success: "patched";
|
|
142
|
+
readonly failure: "failed to patch";
|
|
143
|
+
};
|
|
144
|
+
readonly subject: "patch";
|
|
145
|
+
readonly result: "patch";
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Every path a patch writes, in the order it names them, including a move's
|
|
149
|
+
* destination. The patch is read by the parser {@link run} uses, so a header
|
|
150
|
+
* `run` accepts is never missed.
|
|
151
|
+
*
|
|
152
|
+
* Returns `undefined` when `run` would refuse the patch. A caller asking
|
|
153
|
+
* permission for the call then asks for everything the flow declares.
|
|
154
|
+
*
|
|
155
|
+
* @category parsing
|
|
156
|
+
* @since 1.0.0-rc.1
|
|
157
|
+
*/
|
|
158
|
+
export declare const paths: (patch: string) => ReadonlyArray<string> | undefined;
|
|
159
|
+
/**
|
|
160
|
+
* Parses and applies a V4A patch through the permission-aware kernel
|
|
161
|
+
* filesystem, preserving Codex error text.
|
|
162
|
+
*
|
|
163
|
+
* @category handlers
|
|
164
|
+
* @since 1.0.0
|
|
165
|
+
*/
|
|
166
|
+
export declare const run: (input: {
|
|
167
|
+
readonly input: string;
|
|
168
|
+
}) => Effect.Effect<{
|
|
169
|
+
readonly output: string;
|
|
170
|
+
readonly added: readonly string[];
|
|
171
|
+
readonly modified: readonly string[];
|
|
172
|
+
readonly deleted: readonly string[];
|
|
173
|
+
}, StdError.StdError, import("effect/Path").Path | FileSystem.FileSystem>;
|
|
174
|
+
//# sourceMappingURL=ApplyPatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ApplyPatch.d.ts","sourceRoot":"","sources":["../../src/ApplyPatch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,IAAI,gBAAgB,CAAA;AAEjC;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,iHACwF,CAAA;AAEhH;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK;;EAEhB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;EAOjB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,4CAAuF,CAAA;AAE3G;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,OAAO,KAAK,CAAC,IAAI,+CAAY,CAAA;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,UAAgE,CAAA;AAEzF;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;CAAsF,CAAA;AAEvG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAG,QAAiB,CAAA;AAEzC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAIf,CAAA;AAEV;;;;;;;;;;GAUG;AACH,eAAO,MAAM,KAAK,GAAI,OAAO,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAc7D,CAAA;AAsBD;;;;;;GAMG;AACH,eAAO,MAAM,GAAG;;;;;;;yEA0Pd,CAAA"}
|