@smthrs/std 0.0.0-stage → 1.0.0-rc.4
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 +130 -0
- package/LICENSE +21 -0
- package/README.md +152 -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 +380 -0
- package/dist/cjs/Bash.d.ts.map +1 -0
- package/dist/cjs/Bash.js +332 -0
- package/dist/cjs/Bash.js.map +7 -0
- package/dist/cjs/Checkpoints.d.ts +279 -0
- package/dist/cjs/Checkpoints.d.ts.map +1 -0
- package/dist/cjs/Checkpoints.js +145 -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 +24 -0
- package/dist/cjs/PortableSearch.d.ts.map +1 -0
- package/dist/cjs/PortableSearch.js +233 -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/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 +127 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +99 -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 +67 -0
- package/dist/cjs/internal/EnvelopePrecheck.d.ts.map +1 -0
- package/dist/cjs/internal/EnvelopePrecheck.js +124 -0
- package/dist/cjs/internal/EnvelopePrecheck.js.map +7 -0
- package/dist/cjs/internal/Exec.d.ts +139 -0
- package/dist/cjs/internal/Exec.d.ts.map +1 -0
- package/dist/cjs/internal/Exec.js +158 -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/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/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 +114 -0
- package/dist/cjs/internal/Text.d.ts.map +1 -0
- package/dist/cjs/internal/Text.js +82 -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 +380 -0
- package/dist/esm/Bash.d.ts.map +1 -0
- package/dist/esm/Bash.js +505 -0
- package/dist/esm/Bash.js.map +1 -0
- package/dist/esm/Checkpoints.d.ts +279 -0
- package/dist/esm/Checkpoints.d.ts.map +1 -0
- package/dist/esm/Checkpoints.js +298 -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 +24 -0
- package/dist/esm/PortableSearch.d.ts.map +1 -0
- package/dist/esm/PortableSearch.js +240 -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/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 +127 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +127 -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 +67 -0
- package/dist/esm/internal/EnvelopePrecheck.d.ts.map +1 -0
- package/dist/esm/internal/EnvelopePrecheck.js +167 -0
- package/dist/esm/internal/EnvelopePrecheck.js.map +1 -0
- package/dist/esm/internal/Exec.d.ts +139 -0
- package/dist/esm/internal/Exec.d.ts.map +1 -0
- package/dist/esm/internal/Exec.js +193 -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/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/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 +114 -0
- package/dist/esm/internal/Text.d.ts.map +1 -0
- package/dist/esm/internal/Text.js +130 -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 +117 -0
- package/docs/api.md +472 -0
- package/docs/concepts/effects-and-capabilities.md +136 -0
- package/docs/concepts/flows-and-handlers.md +115 -0
- package/docs/concepts/limits-and-disclosure.md +102 -0
- package/docs/concepts/search-contract.md +182 -0
- package/docs/guides/bind-the-standard-flows.md +114 -0
- package/docs/guides/implement-a-search-peer.md +133 -0
- package/docs/guides/pin-a-checkpoint.md +141 -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 +215 -0
- package/docs/guides/run-the-test-suite.md +154 -0
- package/docs/guides/search-a-workspace.md +148 -0
- package/docs/installation.md +111 -0
- package/docs/quickstart.md +125 -0
- package/docs/reference/flows.md +556 -0
- package/docs/troubleshooting.md +322 -0
- package/package.json +439 -3
- package/src/ApplyPatch.ts +458 -0
- package/src/Bash.ts +607 -0
- package/src/Checkpoints.ts +422 -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 +264 -0
- package/src/Probe.ts +284 -0
- package/src/Read.ts +359 -0
- package/src/Relocate.ts +166 -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 +154 -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 +233 -0
- package/src/internal/Exec.ts +314 -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/SearchContract.ts +77 -0
- package/src/internal/Symbols.ts +88 -0
- package/src/internal/TestReport.ts +194 -0
- package/src/internal/Text.ts +170 -0
- package/src/internal/Url.ts +23 -0
- package/src/internal/Walk.ts +176 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Telling an invalid probe from a failing check.
|
|
3
|
+
*
|
|
4
|
+
* A non-zero exit is a runner's verdict about the code it ran. It is not the
|
|
5
|
+
* runner's verdict about the command it was handed. When an invocation names a
|
|
6
|
+
* test, a file, a module, an environment, or a program that does not exist, the
|
|
7
|
+
* runner never reaches any code and still exits non-zero — and at the tool
|
|
8
|
+
* boundary that is indistinguishable from the bug reproducing. A SWE-bench run
|
|
9
|
+
* lost thirty-nine frames to exactly that: the reproduction named a test method
|
|
10
|
+
* the class does not define, so it read `exitCode: 1` before the edit and
|
|
11
|
+
* `exitCode: 1` after it, and the agent could not tell it had already won.
|
|
12
|
+
*
|
|
13
|
+
* This module names that class. The taxonomy is one idea — *the invocation
|
|
14
|
+
* named something that does not exist* — and {@link Reason} enumerates the five
|
|
15
|
+
* things that something can be. An enumerated answer over prose is a judgment,
|
|
16
|
+
* so Jev makes it: {@link classify} asks the `probe/attribution` classifier
|
|
17
|
+
* whether this exit describes the tree or one of the five, and whether a runner
|
|
18
|
+
* ran anything at all. Nothing here reads the output itself. The judgment used
|
|
19
|
+
* to be nine regexes over runner wording, vetoed by two more over runner
|
|
20
|
+
* tallies, and every phrase they matched is also printed by genuine failures —
|
|
21
|
+
* a bug that *is* an import error, a test that asserts on a shell message — so
|
|
22
|
+
* precision cost recall and both cost maintenance.
|
|
23
|
+
*
|
|
24
|
+
* A zero exit needs no judgment: it belongs to the tree, whatever it printed.
|
|
25
|
+
* A non-zero exit, including 126 or 127, needs attribution. A runner can
|
|
26
|
+
* execute its tests and return either status, so neither proves that the shell
|
|
27
|
+
* refused to launch the check.
|
|
28
|
+
*
|
|
29
|
+
* There is no third path. When the judge does not answer, {@link unjudged}
|
|
30
|
+
* turns its failure into the caller's typed failure: a guess about whether a
|
|
31
|
+
* reproduction reproduced is worth less than nothing, and the caller can say
|
|
32
|
+
* that a result was not judged where it cannot say that a guess was wrong.
|
|
33
|
+
*
|
|
34
|
+
* A flow that can tell the difference reports it under the reserved output key
|
|
35
|
+
* {@link key}. The harness reads that key off an otherwise opaque call result
|
|
36
|
+
* and refuses to count such a result as evidence that anything about the tree
|
|
37
|
+
* changed, which is what stops a broken probe from being cited as a
|
|
38
|
+
* reproduction.
|
|
39
|
+
*
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
*/
|
|
42
|
+
import * as Classifier from "@smthrs/model/Classifier";
|
|
43
|
+
import type * as Evaluator from "@smthrs/model/Evaluator";
|
|
44
|
+
import * as Effect from "effect/Effect";
|
|
45
|
+
import * as Schema from "effect/Schema";
|
|
46
|
+
import * as StdError from "./StdError.ts";
|
|
47
|
+
/**
|
|
48
|
+
* The reserved output key a flow reports an invalid probe under.
|
|
49
|
+
*
|
|
50
|
+
* Stated as a constant because it is a wire contract with the harness rather
|
|
51
|
+
* than a shared type: `@smthrs/harness` reads this key off a `Schema.Json`
|
|
52
|
+
* result and must not depend on the tool library to do it.
|
|
53
|
+
*
|
|
54
|
+
* @category identifiers
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
*/
|
|
57
|
+
export declare const key = "invalidProbe";
|
|
58
|
+
/**
|
|
59
|
+
* What the invocation named that does not exist.
|
|
60
|
+
*
|
|
61
|
+
* Five members, and the classifier offers exactly these five beside `tree`.
|
|
62
|
+
*
|
|
63
|
+
* @category schemas
|
|
64
|
+
* @since 1.0.0
|
|
65
|
+
*/
|
|
66
|
+
export declare const Reason: Schema.Literals<readonly ["unknown-command", "unknown-test", "unknown-path", "unknown-module", "unknown-environment"]>;
|
|
67
|
+
/**
|
|
68
|
+
* What the invocation named that does not exist.
|
|
69
|
+
*
|
|
70
|
+
* @category models
|
|
71
|
+
* @since 1.0.0
|
|
72
|
+
*/
|
|
73
|
+
export type Reason = typeof Reason.Type;
|
|
74
|
+
/**
|
|
75
|
+
* One command's failure, attributed to the command rather than to the tree.
|
|
76
|
+
*
|
|
77
|
+
* @category schemas
|
|
78
|
+
* @since 1.0.0
|
|
79
|
+
*/
|
|
80
|
+
export declare const InvalidProbe: Schema.Struct<{
|
|
81
|
+
readonly reason: Schema.Literals<readonly ["unknown-command", "unknown-test", "unknown-path", "unknown-module", "unknown-environment"]>;
|
|
82
|
+
readonly evidence: Schema.String;
|
|
83
|
+
readonly message: Schema.String;
|
|
84
|
+
}>;
|
|
85
|
+
/**
|
|
86
|
+
* One command's failure, attributed to the command rather than to the tree.
|
|
87
|
+
*
|
|
88
|
+
* @category models
|
|
89
|
+
* @since 1.0.0
|
|
90
|
+
*/
|
|
91
|
+
export type InvalidProbe = typeof InvalidProbe.Type;
|
|
92
|
+
/**
|
|
93
|
+
* What one command's exit code was attributed to.
|
|
94
|
+
*
|
|
95
|
+
* `to` is the tree, or the kind of name the command could not resolve, and
|
|
96
|
+
* `invalidProbe` is present in exactly the second case, ready to report under
|
|
97
|
+
* {@link key}. `executed` is the judge's separate reading of whether a runner
|
|
98
|
+
* ran any test, absent when nothing was asked.
|
|
99
|
+
*
|
|
100
|
+
* @category models
|
|
101
|
+
* @since 1.0.0
|
|
102
|
+
*/
|
|
103
|
+
export interface Attribution {
|
|
104
|
+
readonly to: "tree" | Reason;
|
|
105
|
+
readonly executed?: boolean;
|
|
106
|
+
readonly invalidProbe?: InvalidProbe;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* The confidence an attribution needs before it outranks the tree.
|
|
110
|
+
*
|
|
111
|
+
* Below it the failure is the tree's, which is the reading that leaves the
|
|
112
|
+
* caller the output it would have had anyway. A missed invalid probe costs a
|
|
113
|
+
* reader nothing it had; a false one tells it its reproduction proved nothing.
|
|
114
|
+
*
|
|
115
|
+
* @category constants
|
|
116
|
+
* @since 1.0.0
|
|
117
|
+
*/
|
|
118
|
+
export declare const CONFIDENCE_FLOOR = 0.7;
|
|
119
|
+
/**
|
|
120
|
+
* The most output bytes one judgment carries, newest kept.
|
|
121
|
+
*
|
|
122
|
+
* A runner prints its refusal last, and the classifier's whole state is held
|
|
123
|
+
* to 32 KiB.
|
|
124
|
+
*
|
|
125
|
+
* @category constants
|
|
126
|
+
* @since 1.0.0
|
|
127
|
+
*/
|
|
128
|
+
export declare const MAX_OUTPUT_BYTES: number;
|
|
129
|
+
/**
|
|
130
|
+
* The standard-flow failure a judge that did not answer is.
|
|
131
|
+
*
|
|
132
|
+
* A handler that cannot say whether a failing command failed about itself has
|
|
133
|
+
* no result to return: reporting the exit code alone is the reading that lost
|
|
134
|
+
* the thirty-nine frames. So the call fails, the code names which way the
|
|
135
|
+
* gateway went wrong, and the message says what is missing and how a host
|
|
136
|
+
* supplies it.
|
|
137
|
+
*
|
|
138
|
+
* @category errors
|
|
139
|
+
* @since 1.0.0
|
|
140
|
+
*/
|
|
141
|
+
export declare const unjudged: (error: Classifier.ClassifierError) => StdError.StdError;
|
|
142
|
+
/**
|
|
143
|
+
* What one failed command's exit code describes: the tree, or a name the
|
|
144
|
+
* command could not resolve.
|
|
145
|
+
*
|
|
146
|
+
* No cell calls this classifier. {@link classify} asks it on behalf of the
|
|
147
|
+
* `test` flow, which has the command and its output and has no task to judge
|
|
148
|
+
* them against, so the state is the three facts of the run and the questions
|
|
149
|
+
* carry every criterion themselves. It is declared here rather than in a
|
|
150
|
+
* catalog a host binds: a door for the model to ask this would be a door onto
|
|
151
|
+
* a judgment the flow has already made.
|
|
152
|
+
*
|
|
153
|
+
* @category classifiers
|
|
154
|
+
* @since 1.0.0
|
|
155
|
+
*/
|
|
156
|
+
export declare const probeAttribution: Classifier.Classifier<"probe/attribution", Schema.Struct<{
|
|
157
|
+
readonly command: Schema.String;
|
|
158
|
+
readonly exitCode: Schema.Int;
|
|
159
|
+
readonly output: Schema.String;
|
|
160
|
+
}>, {
|
|
161
|
+
readonly attribution: Omit<Evaluator.ChoiceQuestion, "criteria"> & {
|
|
162
|
+
readonly criteria: {
|
|
163
|
+
readonly tree: "the command ran the intended tests and the failure is the code's";
|
|
164
|
+
readonly "unknown-command": "the shell could not find the program it was asked to run";
|
|
165
|
+
readonly "unknown-test": "the test runner could not find the test that was named";
|
|
166
|
+
readonly "unknown-path": "the file or directory that was named does not exist";
|
|
167
|
+
readonly "unknown-module": "the module that was imported does not exist here";
|
|
168
|
+
readonly "unknown-environment": "the runner has no environment by that name";
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
readonly executed: Evaluator.BooleanQuestion;
|
|
172
|
+
}>;
|
|
173
|
+
/**
|
|
174
|
+
* Attributes one command result to the tree, or to a name the command could
|
|
175
|
+
* not resolve.
|
|
176
|
+
*
|
|
177
|
+
* A zero exit needs no judgment. Every non-zero exit, including 126 and 127,
|
|
178
|
+
* goes through the attribution classifier: a runner may choose either code
|
|
179
|
+
* after executing tests. An answer under {@link CONFIDENCE_FLOOR} is the tree's
|
|
180
|
+
* failure, reported with the `executed` reading beside it.
|
|
181
|
+
*
|
|
182
|
+
* Pass the text the caller will actually return, so the judgment is made on
|
|
183
|
+
* the output the reader can see.
|
|
184
|
+
*
|
|
185
|
+
* @category classification
|
|
186
|
+
* @since 1.0.0
|
|
187
|
+
*/
|
|
188
|
+
export declare const classify: (result: {
|
|
189
|
+
readonly command: string;
|
|
190
|
+
readonly exitCode: number;
|
|
191
|
+
readonly output: string;
|
|
192
|
+
}) => Effect.Effect<Attribution, Classifier.ClassifierError, Evaluator.Evaluator>;
|
|
193
|
+
//# sourceMappingURL=Probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Probe.d.ts","sourceRoot":"","sources":["../../src/Probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,UAAU,MAAM,0BAA0B,CAAA;AACtD,OAAO,KAAK,KAAK,SAAS,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;;;;;;GASG;AACH,eAAO,MAAM,GAAG,iBAAiB,CAAA;AAEjC;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,wHAMjB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,YAAY;;;;EAMvB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;CACrC;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAA;AAEnC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,QAAY,CAAA;AAuCzC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,UAAU,CAAC,eAAe,KAAG,QAAQ,CAAC,QAKlE,CAAA;AAEJ;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;EA4B3B,CAAA;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ;sBACD,MAAM;uBACL,MAAM;qBACR,MAAM;iFAiBvB,CAAA"}
|
|
@@ -0,0 +1,134 @@
|
|
|
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 key2 of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key2) && key2 !== except)
|
|
16
|
+
__defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || 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 Probe_exports = {};
|
|
30
|
+
__export(Probe_exports, {
|
|
31
|
+
CONFIDENCE_FLOOR: () => CONFIDENCE_FLOOR,
|
|
32
|
+
InvalidProbe: () => InvalidProbe,
|
|
33
|
+
MAX_OUTPUT_BYTES: () => MAX_OUTPUT_BYTES,
|
|
34
|
+
Reason: () => Reason,
|
|
35
|
+
classify: () => classify,
|
|
36
|
+
key: () => key,
|
|
37
|
+
probeAttribution: () => probeAttribution,
|
|
38
|
+
unjudged: () => unjudged
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(Probe_exports);
|
|
41
|
+
var Classifier = __toESM(require("@smthrs/model/Classifier"), 1);
|
|
42
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
43
|
+
var Option = __toESM(require("effect/Option"), 1);
|
|
44
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
45
|
+
var import_Text = require("./internal/Text.js");
|
|
46
|
+
var StdError = __toESM(require("./StdError.js"), 1);
|
|
47
|
+
const key = "invalidProbe";
|
|
48
|
+
const Reason = Schema.Literals([
|
|
49
|
+
"unknown-command",
|
|
50
|
+
"unknown-test",
|
|
51
|
+
"unknown-path",
|
|
52
|
+
"unknown-module",
|
|
53
|
+
"unknown-environment"
|
|
54
|
+
]);
|
|
55
|
+
const InvalidProbe = Schema.Struct({
|
|
56
|
+
reason: Reason.annotate({ description: "Which kind of name the command could not resolve" }),
|
|
57
|
+
evidence: Schema.String.annotate({
|
|
58
|
+
description: "What this attribution rests on: the shell's own exit code, or the judge's reading and how sure it is"
|
|
59
|
+
}),
|
|
60
|
+
message: Schema.String.annotate({ description: "What the failure does and does not prove, stated for the caller" })
|
|
61
|
+
});
|
|
62
|
+
const CONFIDENCE_FLOOR = 0.7;
|
|
63
|
+
const MAX_OUTPUT_BYTES = 32 * 1024;
|
|
64
|
+
const named = {
|
|
65
|
+
"unknown-command": "the shell could not find the program it was asked to run",
|
|
66
|
+
"unknown-test": "the test runner could not find the test that was named",
|
|
67
|
+
"unknown-path": "the file or directory that was named does not exist",
|
|
68
|
+
"unknown-module": "the module that was imported does not exist here",
|
|
69
|
+
"unknown-environment": "the runner has no environment by that name"
|
|
70
|
+
};
|
|
71
|
+
const explain = (reason) => `This command never ran a check: ${named[reason]}. The non-zero exit describes the command, not the code under test, so it is not a reproduction and reads the same before and after a correct fix. Find the real names, repair the command, and run it again before drawing any conclusion from it.`;
|
|
72
|
+
const invalid = (reason, evidence) => ({
|
|
73
|
+
reason,
|
|
74
|
+
evidence,
|
|
75
|
+
message: explain(reason)
|
|
76
|
+
});
|
|
77
|
+
const judged = (reason, confidence, executed) => `the judge read this output as ${reason} at confidence ${confidence.toFixed(2)}${executed ? ", although the runner also reported that it ran tests" : ""}`;
|
|
78
|
+
const unjudgedCode = {
|
|
79
|
+
unconfigured: "provider_unavailable",
|
|
80
|
+
unreachable: "provider_unavailable",
|
|
81
|
+
refused: "provider_unavailable",
|
|
82
|
+
empty: "provider_unavailable",
|
|
83
|
+
timeout: "timeout",
|
|
84
|
+
invalid_answer: "request_failed",
|
|
85
|
+
invalid_question: "request_failed"
|
|
86
|
+
};
|
|
87
|
+
const unjudged = (error) => new StdError.StdError({
|
|
88
|
+
code: unjudgedCode[error.code],
|
|
89
|
+
message: `This result was not judged: the attribution judge answered ${error.code}. ${error.message} Nothing here says whether the non-zero exit is the code's failure or the command's, and a guess at that is worth less than no answer. Connect a subscription seat for the evaluator, then run the command again.`
|
|
90
|
+
});
|
|
91
|
+
const probeAttribution = Classifier.make("probe/attribution", {
|
|
92
|
+
description: "Judge one failed command: whether it ran the tests it named and failed about the code, or never resolved a name it was given.",
|
|
93
|
+
state: Schema.Struct({
|
|
94
|
+
command: Schema.String.annotate({ description: "The command that ran" }),
|
|
95
|
+
exitCode: Schema.Int.annotate({ description: "Its exit code, which is not zero" }),
|
|
96
|
+
output: Schema.String.annotate({ description: "Its captured stdout and stderr, newest bytes when clipped" })
|
|
97
|
+
}),
|
|
98
|
+
questions: {
|
|
99
|
+
attribution: Classifier.choice({
|
|
100
|
+
instructions: "What does this non-zero exit describe?",
|
|
101
|
+
criteria: {
|
|
102
|
+
tree: "the command ran the intended tests and the failure is the code's",
|
|
103
|
+
"unknown-command": "the shell could not find the program it was asked to run",
|
|
104
|
+
"unknown-test": "the test runner could not find the test that was named",
|
|
105
|
+
"unknown-path": "the file or directory that was named does not exist",
|
|
106
|
+
"unknown-module": "the module that was imported does not exist here",
|
|
107
|
+
"unknown-environment": "the runner has no environment by that name"
|
|
108
|
+
}
|
|
109
|
+
}),
|
|
110
|
+
executed: Classifier.boolean({
|
|
111
|
+
instructions: "Did a test runner actually run tests?",
|
|
112
|
+
criteria: {
|
|
113
|
+
true: "the runner reported its own tally of tests that ran, such as a count of passes or failures",
|
|
114
|
+
false: "nothing in the output reports that any test was executed"
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
const classify = Effect.fn("Probe.classify")(function* (result) {
|
|
120
|
+
if (result.exitCode === 0) return { to: "tree" };
|
|
121
|
+
const answers = yield* probeAttribution.evaluate({
|
|
122
|
+
command: result.command,
|
|
123
|
+
exitCode: result.exitCode,
|
|
124
|
+
output: (0, import_Text.truncateBytes)(result.output, MAX_OUTPUT_BYTES, { keep: "tail" }).text
|
|
125
|
+
});
|
|
126
|
+
const executed = answers.executed.value;
|
|
127
|
+
const decided = Option.getOrUndefined(Classifier.confident(answers.attribution, CONFIDENCE_FLOOR));
|
|
128
|
+
return decided === void 0 || decided === "tree" ? { to: "tree", executed } : {
|
|
129
|
+
to: decided,
|
|
130
|
+
executed,
|
|
131
|
+
invalidProbe: invalid(decided, judged(decided, answers.attribution.confidence, executed))
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
//# sourceMappingURL=Probe.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Probe.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Telling an invalid probe from a failing check.\n *\n * A non-zero exit is a runner's verdict about the code it ran. It is not the\n * runner's verdict about the command it was handed. When an invocation names a\n * test, a file, a module, an environment, or a program that does not exist, the\n * runner never reaches any code and still exits non-zero \u2014 and at the tool\n * boundary that is indistinguishable from the bug reproducing. A SWE-bench run\n * lost thirty-nine frames to exactly that: the reproduction named a test method\n * the class does not define, so it read `exitCode: 1` before the edit and\n * `exitCode: 1` after it, and the agent could not tell it had already won.\n *\n * This module names that class. The taxonomy is one idea \u2014 *the invocation\n * named something that does not exist* \u2014 and {@link Reason} enumerates the five\n * things that something can be. An enumerated answer over prose is a judgment,\n * so Jev makes it: {@link classify} asks the `probe/attribution` classifier\n * whether this exit describes the tree or one of the five, and whether a runner\n * ran anything at all. Nothing here reads the output itself. The judgment used\n * to be nine regexes over runner wording, vetoed by two more over runner\n * tallies, and every phrase they matched is also printed by genuine failures \u2014\n * a bug that *is* an import error, a test that asserts on a shell message \u2014 so\n * precision cost recall and both cost maintenance.\n *\n * A zero exit needs no judgment: it belongs to the tree, whatever it printed.\n * A non-zero exit, including 126 or 127, needs attribution. A runner can\n * execute its tests and return either status, so neither proves that the shell\n * refused to launch the check.\n *\n * There is no third path. When the judge does not answer, {@link unjudged}\n * turns its failure into the caller's typed failure: a guess about whether a\n * reproduction reproduced is worth less than nothing, and the caller can say\n * that a result was not judged where it cannot say that a guess was wrong.\n *\n * A flow that can tell the difference reports it under the reserved output key\n * {@link key}. The harness reads that key off an otherwise opaque call result\n * and refuses to count such a result as evidence that anything about the tree\n * changed, which is what stops a broken probe from being cited as a\n * reproduction.\n *\n * @since 1.0.0\n */\n\nimport * as Classifier from \"@smthrs/model/Classifier\"\nimport type * as Evaluator from \"@smthrs/model/Evaluator\"\nimport * as Effect from \"effect/Effect\"\nimport * as Option from \"effect/Option\"\nimport * as Schema from \"effect/Schema\"\nimport { truncateBytes } from \"./internal/Text.ts\"\nimport * as StdError from \"./StdError.ts\"\n\n/**\n * The reserved output key a flow reports an invalid probe under.\n *\n * Stated as a constant because it is a wire contract with the harness rather\n * than a shared type: `@smthrs/harness` reads this key off a `Schema.Json`\n * result and must not depend on the tool library to do it.\n *\n * @category identifiers\n * @since 1.0.0\n */\nexport const key = \"invalidProbe\"\n\n/**\n * What the invocation named that does not exist.\n *\n * Five members, and the classifier offers exactly these five beside `tree`.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Reason = Schema.Literals([\n \"unknown-command\",\n \"unknown-test\",\n \"unknown-path\",\n \"unknown-module\",\n \"unknown-environment\"\n])\n\n/**\n * What the invocation named that does not exist.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Reason = typeof Reason.Type\n\n/**\n * One command's failure, attributed to the command rather than to the tree.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const InvalidProbe = Schema.Struct({\n reason: Reason.annotate({ description: \"Which kind of name the command could not resolve\" }),\n evidence: Schema.String.annotate({\n description: \"What this attribution rests on: the shell's own exit code, or the judge's reading and how sure it is\"\n }),\n message: Schema.String.annotate({ description: \"What the failure does and does not prove, stated for the caller\" })\n})\n\n/**\n * One command's failure, attributed to the command rather than to the tree.\n *\n * @category models\n * @since 1.0.0\n */\nexport type InvalidProbe = typeof InvalidProbe.Type\n\n/**\n * What one command's exit code was attributed to.\n *\n * `to` is the tree, or the kind of name the command could not resolve, and\n * `invalidProbe` is present in exactly the second case, ready to report under\n * {@link key}. `executed` is the judge's separate reading of whether a runner\n * ran any test, absent when nothing was asked.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface Attribution {\n readonly to: \"tree\" | Reason\n readonly executed?: boolean\n readonly invalidProbe?: InvalidProbe\n}\n\n/**\n * The confidence an attribution needs before it outranks the tree.\n *\n * Below it the failure is the tree's, which is the reading that leaves the\n * caller the output it would have had anyway. A missed invalid probe costs a\n * reader nothing it had; a false one tells it its reproduction proved nothing.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const CONFIDENCE_FLOOR = 0.7\n\n/**\n * The most output bytes one judgment carries, newest kept.\n *\n * A runner prints its refusal last, and the classifier's whole state is held\n * to 32 KiB.\n *\n * @category constants\n * @since 1.0.0\n */\nexport const MAX_OUTPUT_BYTES = 32 * 1024\n\n/** What each reason means, in the second half of one sentence. */\nconst named: Record<Reason, string> = {\n \"unknown-command\": \"the shell could not find the program it was asked to run\",\n \"unknown-test\": \"the test runner could not find the test that was named\",\n \"unknown-path\": \"the file or directory that was named does not exist\",\n \"unknown-module\": \"the module that was imported does not exist here\",\n \"unknown-environment\": \"the runner has no environment by that name\"\n}\n\nconst explain = (reason: Reason): string =>\n `This command never ran a check: ${\n named[reason]\n }. The non-zero exit describes the command, not the code under test, so it is not a reproduction and reads the same before and after a correct fix. Find the real names, repair the command, and run it again before drawing any conclusion from it.`\n\nconst invalid = (reason: Reason, evidence: string): InvalidProbe => ({\n reason,\n evidence,\n message: explain(reason)\n})\n\n/** How the judge's own reading is quoted back to the caller. */\nconst judged = (reason: Reason, confidence: number, executed: boolean): string =>\n `the judge read this output as ${reason} at confidence ${confidence.toFixed(2)}${\n executed ? \", although the runner also reported that it ran tests\" : \"\"\n }`\n\n/** Which typed failure each way the judge can fail to answer is. */\nconst unjudgedCode: Record<Evaluator.EvaluatorErrorCode, StdError.Code> = {\n unconfigured: \"provider_unavailable\",\n unreachable: \"provider_unavailable\",\n refused: \"provider_unavailable\",\n empty: \"provider_unavailable\",\n timeout: \"timeout\",\n invalid_answer: \"request_failed\",\n invalid_question: \"request_failed\"\n}\n\n/**\n * The standard-flow failure a judge that did not answer is.\n *\n * A handler that cannot say whether a failing command failed about itself has\n * no result to return: reporting the exit code alone is the reading that lost\n * the thirty-nine frames. So the call fails, the code names which way the\n * gateway went wrong, and the message says what is missing and how a host\n * supplies it.\n *\n * @category errors\n * @since 1.0.0\n */\nexport const unjudged = (error: Classifier.ClassifierError): StdError.StdError =>\n new StdError.StdError({\n code: unjudgedCode[error.code],\n message:\n `This result was not judged: the attribution judge answered ${error.code}. ${error.message} Nothing here says whether the non-zero exit is the code's failure or the command's, and a guess at that is worth less than no answer. Connect a subscription seat for the evaluator, then run the command again.`\n })\n\n/**\n * What one failed command's exit code describes: the tree, or a name the\n * command could not resolve.\n *\n * No cell calls this classifier. {@link classify} asks it on behalf of the\n * `test` flow, which has the command and its output and has no task to judge\n * them against, so the state is the three facts of the run and the questions\n * carry every criterion themselves. It is declared here rather than in a\n * catalog a host binds: a door for the model to ask this would be a door onto\n * a judgment the flow has already made.\n *\n * @category classifiers\n * @since 1.0.0\n */\nexport const probeAttribution = Classifier.make(\"probe/attribution\", {\n description:\n \"Judge one failed command: whether it ran the tests it named and failed about the code, or never resolved a name it was given.\",\n state: Schema.Struct({\n command: Schema.String.annotate({ description: \"The command that ran\" }),\n exitCode: Schema.Int.annotate({ description: \"Its exit code, which is not zero\" }),\n output: Schema.String.annotate({ description: \"Its captured stdout and stderr, newest bytes when clipped\" })\n }),\n questions: {\n attribution: Classifier.choice({\n instructions: \"What does this non-zero exit describe?\",\n criteria: {\n tree: \"the command ran the intended tests and the failure is the code's\",\n \"unknown-command\": \"the shell could not find the program it was asked to run\",\n \"unknown-test\": \"the test runner could not find the test that was named\",\n \"unknown-path\": \"the file or directory that was named does not exist\",\n \"unknown-module\": \"the module that was imported does not exist here\",\n \"unknown-environment\": \"the runner has no environment by that name\"\n }\n }),\n executed: Classifier.boolean({\n instructions: \"Did a test runner actually run tests?\",\n criteria: {\n true: \"the runner reported its own tally of tests that ran, such as a count of passes or failures\",\n false: \"nothing in the output reports that any test was executed\"\n }\n })\n }\n})\n\n/**\n * Attributes one command result to the tree, or to a name the command could\n * not resolve.\n *\n * A zero exit needs no judgment. Every non-zero exit, including 126 and 127,\n * goes through the attribution classifier: a runner may choose either code\n * after executing tests. An answer under {@link CONFIDENCE_FLOOR} is the tree's\n * failure, reported with the `executed` reading beside it.\n *\n * Pass the text the caller will actually return, so the judgment is made on\n * the output the reader can see.\n *\n * @category classification\n * @since 1.0.0\n */\nexport const classify = Effect.fn(\"Probe.classify\")(function*(result: {\n readonly command: string\n readonly exitCode: number\n readonly output: string\n}): Effect.fn.Return<Attribution, Classifier.ClassifierError, Evaluator.Evaluator> {\n if (result.exitCode === 0) return { to: \"tree\" }\n const answers = yield* probeAttribution.evaluate({\n command: result.command,\n exitCode: result.exitCode,\n output: truncateBytes(result.output, MAX_OUTPUT_BYTES, { keep: \"tail\" }).text\n })\n const executed = answers.executed.value\n const decided = Option.getOrUndefined(Classifier.confident(answers.attribution, CONFIDENCE_FLOOR))\n return decided === undefined || decided === \"tree\"\n ? { to: \"tree\", executed }\n : {\n to: decided,\n executed,\n invalidProbe: invalid(decided, judged(decided, answers.attribution.confidence, executed))\n }\n})\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0CA,iBAA4B;AAE5B,aAAwB;AACxB,aAAwB;AACxB,aAAwB;AACxB,kBAA8B;AAC9B,eAA0B;AAYnB,MAAM,MAAM;AAUZ,MAAM,SAAS,OAAO,SAAS;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAgBM,MAAM,eAAe,OAAO,OAAO;AAAA,EACxC,QAAQ,OAAO,SAAS,EAAE,aAAa,mDAAmD,CAAC;AAAA,EAC3F,UAAU,OAAO,OAAO,SAAS;AAAA,IAC/B,aAAa;AAAA,EACf,CAAC;AAAA,EACD,SAAS,OAAO,OAAO,SAAS,EAAE,aAAa,kEAAkE,CAAC;AACpH,CAAC;AAqCM,MAAM,mBAAmB;AAWzB,MAAM,mBAAmB,KAAK;AAGrC,MAAM,QAAgC;AAAA,EACpC,mBAAmB;AAAA,EACnB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,kBAAkB;AAAA,EAClB,uBAAuB;AACzB;AAEA,MAAM,UAAU,CAAC,WACf,mCACE,MAAM,MAAM,CACd;AAEF,MAAM,UAAU,CAAC,QAAgB,cAAoC;AAAA,EACnE;AAAA,EACA;AAAA,EACA,SAAS,QAAQ,MAAM;AACzB;AAGA,MAAM,SAAS,CAAC,QAAgB,YAAoB,aAClD,iCAAiC,MAAM,kBAAkB,WAAW,QAAQ,CAAC,CAAC,GAC5E,WAAW,0DAA0D,EACvE;AAGF,MAAM,eAAoE;AAAA,EACxE,cAAc;AAAA,EACd,aAAa;AAAA,EACb,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,gBAAgB;AAAA,EAChB,kBAAkB;AACpB;AAcO,MAAM,WAAW,CAAC,UACvB,IAAI,SAAS,SAAS;AAAA,EACpB,MAAM,aAAa,MAAM,IAAI;AAAA,EAC7B,SACE,8DAA8D,MAAM,IAAI,KAAK,MAAM,OAAO;AAC9F,CAAC;AAgBI,MAAM,mBAAmB,WAAW,KAAK,qBAAqB;AAAA,EACnE,aACE;AAAA,EACF,OAAO,OAAO,OAAO;AAAA,IACnB,SAAS,OAAO,OAAO,SAAS,EAAE,aAAa,uBAAuB,CAAC;AAAA,IACvE,UAAU,OAAO,IAAI,SAAS,EAAE,aAAa,mCAAmC,CAAC;AAAA,IACjF,QAAQ,OAAO,OAAO,SAAS,EAAE,aAAa,4DAA4D,CAAC;AAAA,EAC7G,CAAC;AAAA,EACD,WAAW;AAAA,IACT,aAAa,WAAW,OAAO;AAAA,MAC7B,cAAc;AAAA,MACd,UAAU;AAAA,QACR,MAAM;AAAA,QACN,mBAAmB;AAAA,QACnB,gBAAgB;AAAA,QAChB,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,uBAAuB;AAAA,MACzB;AAAA,IACF,CAAC;AAAA,IACD,UAAU,WAAW,QAAQ;AAAA,MAC3B,cAAc;AAAA,MACd,UAAU;AAAA,QACR,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,IACF,CAAC;AAAA,EACH;AACF,CAAC;AAiBM,MAAM,WAAW,OAAO,GAAG,gBAAgB,EAAE,WAAU,QAIqB;AACjF,MAAI,OAAO,aAAa,EAAG,QAAO,EAAE,IAAI,OAAO;AAC/C,QAAM,UAAU,OAAO,iBAAiB,SAAS;AAAA,IAC/C,SAAS,OAAO;AAAA,IAChB,UAAU,OAAO;AAAA,IACjB,YAAQ,2BAAc,OAAO,QAAQ,kBAAkB,EAAE,MAAM,OAAO,CAAC,EAAE;AAAA,EAC3E,CAAC;AACD,QAAM,WAAW,QAAQ,SAAS;AAClC,QAAM,UAAU,OAAO,eAAe,WAAW,UAAU,QAAQ,aAAa,gBAAgB,CAAC;AACjG,SAAO,YAAY,UAAa,YAAY,SACxC,EAAE,IAAI,QAAQ,SAAS,IACvB;AAAA,IACA,IAAI;AAAA,IACJ;AAAA,IACA,cAAc,QAAQ,SAAS,OAAO,SAAS,QAAQ,YAAY,YAAY,QAAQ,CAAC;AAAA,EAC1F;AACJ,CAAC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read flow declaration and portable handler.
|
|
3
|
+
*
|
|
4
|
+
* `content` is raw file text. It used to be rendered as `NNN\t<line>`, and that
|
|
5
|
+
* rendering was the single most expensive tool defect measured on the 45-instance
|
|
6
|
+
* SWE-bench trace program: an anchor copied out of a read carried the gutter, so
|
|
7
|
+
* every `edit` built from a read missed, and every cell that wanted a literal
|
|
8
|
+
* line had to strip the prefix in JavaScript first. Two instances (django-13346,
|
|
9
|
+
* django-14351) spent whole frames writing string surgery against text the file
|
|
10
|
+
* does not contain. Line numbers are facts about the page, so they are page
|
|
11
|
+
* fields — `startLine` and `endLine` — and never bytes inside the text.
|
|
12
|
+
*
|
|
13
|
+
* Every line in `content` is a whole line: a page cut short by the byte budget
|
|
14
|
+
* drops its trailing partial line rather than handing back a fragment that looks
|
|
15
|
+
* like an anchor and is not one. CRLF lines retain their trailing CR; only
|
|
16
|
+
* the page's final LF is omitted.
|
|
17
|
+
*
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
import * as Effect from "effect/Effect";
|
|
21
|
+
import * as FileSystem from "effect/FileSystem";
|
|
22
|
+
import * as Schema from "effect/Schema";
|
|
23
|
+
import * as StdError from "./StdError.ts";
|
|
24
|
+
export { Preconditions, ReadSession, type VersionedFileSystem } from "./internal/FileMutation.ts";
|
|
25
|
+
/**
|
|
26
|
+
* Registry name for the read flow.
|
|
27
|
+
*
|
|
28
|
+
* @category identifiers
|
|
29
|
+
* @since 1.0.0
|
|
30
|
+
*/
|
|
31
|
+
export declare const name = "read";
|
|
32
|
+
/**
|
|
33
|
+
* Model-facing description of the read flow.
|
|
34
|
+
*
|
|
35
|
+
* @category descriptions
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
*/
|
|
38
|
+
export declare const description = "Read a text file by 1-based offset and limit. content is RAW file text with no line-number prefixes, so any line of it is an edit anchor as it stands; the numbers are startLine/endLine.";
|
|
39
|
+
/**
|
|
40
|
+
* Input schema for the read flow.
|
|
41
|
+
*
|
|
42
|
+
* @category schemas
|
|
43
|
+
* @since 1.0.0
|
|
44
|
+
*/
|
|
45
|
+
export declare const Input: Schema.Struct<{
|
|
46
|
+
readonly path: Schema.String;
|
|
47
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
48
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
49
|
+
}>;
|
|
50
|
+
/**
|
|
51
|
+
* Decoded input accepted by the `read` flow.
|
|
52
|
+
*
|
|
53
|
+
* @category models
|
|
54
|
+
* @since 1.0.0
|
|
55
|
+
*/
|
|
56
|
+
export type Input = typeof Input.Type;
|
|
57
|
+
/**
|
|
58
|
+
* Output schema for the read flow.
|
|
59
|
+
*
|
|
60
|
+
* @category schemas
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
*/
|
|
63
|
+
export declare const Output: Schema.Struct<{
|
|
64
|
+
readonly content: Schema.String;
|
|
65
|
+
readonly startLine: Schema.Number;
|
|
66
|
+
readonly endLine: Schema.Number;
|
|
67
|
+
readonly totalLines: Schema.Number;
|
|
68
|
+
readonly truncated: Schema.Boolean;
|
|
69
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
70
|
+
}>;
|
|
71
|
+
/**
|
|
72
|
+
* Decoded output returned by the `read` flow.
|
|
73
|
+
*
|
|
74
|
+
* @category models
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
*/
|
|
77
|
+
export type Output = typeof Output.Type;
|
|
78
|
+
/**
|
|
79
|
+
* Static conservative effect envelope for the read flow.
|
|
80
|
+
*
|
|
81
|
+
* @category effects
|
|
82
|
+
* @since 1.0.0
|
|
83
|
+
*/
|
|
84
|
+
export declare const effects: import("@smthrs/plan/Effects").Declaration;
|
|
85
|
+
/**
|
|
86
|
+
* Narrows the read effect envelope to one input path.
|
|
87
|
+
*
|
|
88
|
+
* @category effects
|
|
89
|
+
* @since 1.0.0
|
|
90
|
+
*/
|
|
91
|
+
export declare const effectsFor: (input: typeof Input.Type) => import("@smthrs/plan/Effects").Declaration;
|
|
92
|
+
/**
|
|
93
|
+
* Capabilities required by the read flow.
|
|
94
|
+
*
|
|
95
|
+
* @category capabilities
|
|
96
|
+
* @since 1.0.0
|
|
97
|
+
*/
|
|
98
|
+
export declare const capabilities: string[];
|
|
99
|
+
/**
|
|
100
|
+
* Declaration-only read flow.
|
|
101
|
+
*
|
|
102
|
+
* @category flows
|
|
103
|
+
* @since 1.0.0
|
|
104
|
+
*/
|
|
105
|
+
export declare const flow: {
|
|
106
|
+
readonly name: "read";
|
|
107
|
+
readonly description: "Read a text file by 1-based offset and limit. content is RAW file text with no line-number prefixes, so any line of it is an edit anchor as it stands; the numbers are startLine/endLine.";
|
|
108
|
+
readonly input: Schema.Struct<{
|
|
109
|
+
readonly path: Schema.String;
|
|
110
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
111
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
112
|
+
}>;
|
|
113
|
+
readonly output: Schema.Struct<{
|
|
114
|
+
readonly content: Schema.String;
|
|
115
|
+
readonly startLine: Schema.Number;
|
|
116
|
+
readonly endLine: Schema.Number;
|
|
117
|
+
readonly totalLines: Schema.Number;
|
|
118
|
+
readonly truncated: Schema.Boolean;
|
|
119
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
120
|
+
}>;
|
|
121
|
+
readonly capabilities: string[];
|
|
122
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* What a call to this flow does, for a reader of a run.
|
|
126
|
+
*
|
|
127
|
+
* Display metadata only. `@smthrs/registry` `Descriptor.FlowActivity` is the
|
|
128
|
+
* governing vocabulary and `StandardFlows` binds this value onto the flow's
|
|
129
|
+
* descriptor, where the binding site checks it. `declarationDigest` excludes
|
|
130
|
+
* it, so declaring it cannot invalidate a call identity or a cached prompt.
|
|
131
|
+
*
|
|
132
|
+
* @category presentation
|
|
133
|
+
* @since 1.0.0-rc.0
|
|
134
|
+
*/
|
|
135
|
+
export declare const activity: "reads";
|
|
136
|
+
/**
|
|
137
|
+
* How one recorded call to this flow reads: the verb for each settlement, the
|
|
138
|
+
* input field that is its subject, and the measured output fields a one-line
|
|
139
|
+
* summary may count.
|
|
140
|
+
*
|
|
141
|
+
* Display metadata only, governed by `@smthrs/registry`
|
|
142
|
+
* `Descriptor.CallPresentation` and checked where `StandardFlows` binds it.
|
|
143
|
+
*
|
|
144
|
+
* @category presentation
|
|
145
|
+
* @since 1.0.0-rc.0
|
|
146
|
+
*/
|
|
147
|
+
export declare const presentation: {
|
|
148
|
+
readonly verb: {
|
|
149
|
+
readonly pending: "reading";
|
|
150
|
+
readonly success: "read";
|
|
151
|
+
readonly failure: "failed to read";
|
|
152
|
+
};
|
|
153
|
+
readonly subject: "path";
|
|
154
|
+
readonly result: "read";
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* The largest file `read` loads.
|
|
158
|
+
*
|
|
159
|
+
* `read` decodes the whole file to count its lines, so the file is held in
|
|
160
|
+
* memory twice over: its bytes and a UTF-16 string. Past this bound a page
|
|
161
|
+
* read would cost the host gigabytes for a window of a few thousand lines,
|
|
162
|
+
* and past 2 GiB Node cannot load the file at all.
|
|
163
|
+
*
|
|
164
|
+
* @category constants
|
|
165
|
+
* @since 1.0.0
|
|
166
|
+
*/
|
|
167
|
+
export declare const MAX_READ_FILE_BYTES: number;
|
|
168
|
+
/**
|
|
169
|
+
* Reads, validates, and renders one page of a UTF-8 text file.
|
|
170
|
+
*
|
|
171
|
+
* The kernel filesystem exposes bytes rather than a guaranteed UTF-8 string,
|
|
172
|
+
* so decoding is deliberately fatal to keep binary input in the typed channel.
|
|
173
|
+
*
|
|
174
|
+
* @category handlers
|
|
175
|
+
* @since 1.0.0
|
|
176
|
+
*/
|
|
177
|
+
export declare const run: (input: {
|
|
178
|
+
readonly path: string;
|
|
179
|
+
readonly limit?: number | undefined;
|
|
180
|
+
readonly offset?: number | undefined;
|
|
181
|
+
}) => Effect.Effect<{
|
|
182
|
+
readonly content: string;
|
|
183
|
+
readonly endLine: number;
|
|
184
|
+
readonly startLine: number;
|
|
185
|
+
readonly truncated: boolean;
|
|
186
|
+
readonly totalLines: number;
|
|
187
|
+
readonly notice?: string | undefined;
|
|
188
|
+
}, StdError.StdError, FileSystem.FileSystem>;
|
|
189
|
+
//# sourceMappingURL=Read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Read.d.ts","sourceRoot":"","sources":["../../src/Read.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAKvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,IAAI,SAAS,CAAA;AAE1B;;;;;GAKG;AACH,eAAO,MAAM,WAAW,8LACqK,CAAA;AAE7L;;;;;GAKG;AACH,eAAO,MAAM,KAAK;;;;EAQhB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;;;;;;EAWjB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,4CAKlB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAK,CAAC,IAAI,+CAM/C,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,YAAY,UAAiC,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;CAAsF,CAAA;AAEvG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAG,OAAgB,CAAA;AAExC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAIf,CAAA;AAaV;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,QAAmB,CAAA;AAuDnD;;;;;;;;GAQG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;4CAmGd,CAAA"}
|