@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
package/dist/cjs/Ls.d.ts
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directory listing flow declaration and portable handler.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Effect from "effect/Effect";
|
|
7
|
+
import * as FileSystem from "effect/FileSystem";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
import * as StdError from "./StdError.ts";
|
|
10
|
+
/**
|
|
11
|
+
* The registry name of the `ls` flow.
|
|
12
|
+
*
|
|
13
|
+
* @category identifiers
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
*/
|
|
16
|
+
export declare const name = "ls";
|
|
17
|
+
/**
|
|
18
|
+
* The one-line description the model sees for the `ls` flow.
|
|
19
|
+
*
|
|
20
|
+
* @category descriptions
|
|
21
|
+
* @since 1.0.0
|
|
22
|
+
*/
|
|
23
|
+
export declare const description = "List a directory with directories first, trailing /, and locale-independent UTF-16 code-unit ordering; use 1-based offset and limit to page large listings.";
|
|
24
|
+
/**
|
|
25
|
+
* What the `ls` flow accepts.
|
|
26
|
+
*
|
|
27
|
+
* @category schemas
|
|
28
|
+
* @since 1.0.0
|
|
29
|
+
*/
|
|
30
|
+
export declare const Input: Schema.Struct<{
|
|
31
|
+
readonly path: Schema.String;
|
|
32
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
33
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
34
|
+
}>;
|
|
35
|
+
/**
|
|
36
|
+
* Decoded input accepted by the `ls` flow.
|
|
37
|
+
*
|
|
38
|
+
* @category models
|
|
39
|
+
* @since 1.0.0
|
|
40
|
+
*/
|
|
41
|
+
export type Input = typeof Input.Type;
|
|
42
|
+
/**
|
|
43
|
+
* What the `ls` flow returns.
|
|
44
|
+
*
|
|
45
|
+
* @category schemas
|
|
46
|
+
* @since 1.0.0
|
|
47
|
+
*/
|
|
48
|
+
export declare const Output: Schema.Struct<{
|
|
49
|
+
readonly entries: Schema.$Array<Schema.Struct<{
|
|
50
|
+
readonly name: Schema.String;
|
|
51
|
+
readonly kind: Schema.Literals<readonly ["file", "directory"]>;
|
|
52
|
+
}>>;
|
|
53
|
+
readonly total: Schema.Number;
|
|
54
|
+
readonly truncated: Schema.Boolean;
|
|
55
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* Decoded output returned by the `ls` flow.
|
|
59
|
+
*
|
|
60
|
+
* @category models
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
*/
|
|
63
|
+
export type Output = typeof Output.Type;
|
|
64
|
+
/**
|
|
65
|
+
* The declared effect envelope of the `ls` flow, before any input is known.
|
|
66
|
+
*
|
|
67
|
+
* @category effects
|
|
68
|
+
* @since 1.0.0
|
|
69
|
+
*/
|
|
70
|
+
export declare const effects: import("@smthrs/plan/Effects").Declaration;
|
|
71
|
+
/**
|
|
72
|
+
* Narrows {@link effects} to what this particular input actually touches.
|
|
73
|
+
*
|
|
74
|
+
* @category effects
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
*/
|
|
77
|
+
export declare const effectsFor: (input: typeof Input.Type) => import("@smthrs/plan/Effects").Declaration;
|
|
78
|
+
/**
|
|
79
|
+
* The authority the `ls` flow requires.
|
|
80
|
+
*
|
|
81
|
+
* @category capabilities
|
|
82
|
+
* @since 1.0.0
|
|
83
|
+
*/
|
|
84
|
+
export declare const capabilities: string[];
|
|
85
|
+
/**
|
|
86
|
+
* The `ls` flow declaration: schemas, capabilities, and effects, with the
|
|
87
|
+
* implementation attached separately.
|
|
88
|
+
*
|
|
89
|
+
* @category flows
|
|
90
|
+
* @since 1.0.0
|
|
91
|
+
*/
|
|
92
|
+
export declare const flow: {
|
|
93
|
+
readonly name: "ls";
|
|
94
|
+
readonly description: "List a directory with directories first, trailing /, and locale-independent UTF-16 code-unit ordering; use 1-based offset and limit to page large listings.";
|
|
95
|
+
readonly input: Schema.Struct<{
|
|
96
|
+
readonly path: Schema.String;
|
|
97
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
98
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
99
|
+
}>;
|
|
100
|
+
readonly output: Schema.Struct<{
|
|
101
|
+
readonly entries: Schema.$Array<Schema.Struct<{
|
|
102
|
+
readonly name: Schema.String;
|
|
103
|
+
readonly kind: Schema.Literals<readonly ["file", "directory"]>;
|
|
104
|
+
}>>;
|
|
105
|
+
readonly total: Schema.Number;
|
|
106
|
+
readonly truncated: Schema.Boolean;
|
|
107
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
108
|
+
}>;
|
|
109
|
+
readonly capabilities: string[];
|
|
110
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* What a call to this flow does, for a reader of a run.
|
|
114
|
+
*
|
|
115
|
+
* Display metadata only. `@smthrs/registry` `Descriptor.FlowActivity` is the
|
|
116
|
+
* governing vocabulary and `StandardFlows` binds this value onto the flow's
|
|
117
|
+
* descriptor, where the binding site checks it. `declarationDigest` excludes
|
|
118
|
+
* it, so declaring it cannot invalidate a call identity or a cached prompt.
|
|
119
|
+
*
|
|
120
|
+
* @category presentation
|
|
121
|
+
* @since 1.0.0-rc.0
|
|
122
|
+
*/
|
|
123
|
+
export declare const activity: "reads";
|
|
124
|
+
/**
|
|
125
|
+
* How one recorded call to this flow reads: the verb for each settlement, the
|
|
126
|
+
* input field that is its subject, and the measured output fields a one-line
|
|
127
|
+
* summary may count.
|
|
128
|
+
*
|
|
129
|
+
* Display metadata only, governed by `@smthrs/registry`
|
|
130
|
+
* `Descriptor.CallPresentation` and checked where `StandardFlows` binds it.
|
|
131
|
+
*
|
|
132
|
+
* @category presentation
|
|
133
|
+
* @since 1.0.0-rc.0
|
|
134
|
+
*/
|
|
135
|
+
export declare const presentation: {
|
|
136
|
+
readonly verb: {
|
|
137
|
+
readonly pending: "listing";
|
|
138
|
+
readonly success: "listed";
|
|
139
|
+
readonly failure: "failed to list";
|
|
140
|
+
};
|
|
141
|
+
readonly subject: "path";
|
|
142
|
+
readonly result: "entries";
|
|
143
|
+
};
|
|
144
|
+
/**
|
|
145
|
+
* Lists a directory deterministically. A file supplied as `path` is reported
|
|
146
|
+
* as `not_a_directory`.
|
|
147
|
+
*
|
|
148
|
+
* @category handlers
|
|
149
|
+
* @since 1.0.0
|
|
150
|
+
*/
|
|
151
|
+
export declare const run: (input: {
|
|
152
|
+
readonly path: string;
|
|
153
|
+
readonly limit?: number | undefined;
|
|
154
|
+
readonly offset?: number | undefined;
|
|
155
|
+
}) => Effect.Effect<{
|
|
156
|
+
readonly entries: readonly {
|
|
157
|
+
readonly name: string;
|
|
158
|
+
readonly kind: "directory" | "file";
|
|
159
|
+
}[];
|
|
160
|
+
readonly truncated: boolean;
|
|
161
|
+
readonly total: number;
|
|
162
|
+
readonly notice?: string | undefined;
|
|
163
|
+
}, StdError.StdError, import("effect/Path").Path | FileSystem.FileSystem>;
|
|
164
|
+
//# sourceMappingURL=Ls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ls.d.ts","sourceRoot":"","sources":["../../src/Ls.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,IAAI,OAAO,CAAA;AAExB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,gKACuI,CAAA;AAE/J;;;;;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;;;;;;;;EAQjB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,4CAA6E,CAAA;AAEjG;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,KAAK,CAAC,IAAI,+CAC8B,CAAA;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,UAAiC,CAAA;AAE1D;;;;;;GAMG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;CAAsF,CAAA;AAEvG;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAG,OAAgB,CAAA;AAExC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY;;;;;;;;CAIf,CAAA;AAMV;;;;;;GAMG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;;yEAwEd,CAAA"}
|
package/dist/cjs/Ls.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
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 name2 in all)
|
|
10
|
+
__defProp(target, name2, { get: all[name2], 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 Ls_exports = {};
|
|
30
|
+
__export(Ls_exports, {
|
|
31
|
+
Input: () => Input,
|
|
32
|
+
Output: () => Output,
|
|
33
|
+
activity: () => activity,
|
|
34
|
+
capabilities: () => capabilities,
|
|
35
|
+
description: () => description,
|
|
36
|
+
effects: () => effects,
|
|
37
|
+
effectsFor: () => effectsFor,
|
|
38
|
+
flow: () => flow,
|
|
39
|
+
name: () => name,
|
|
40
|
+
presentation: () => presentation,
|
|
41
|
+
run: () => run
|
|
42
|
+
});
|
|
43
|
+
module.exports = __toCommonJS(Ls_exports);
|
|
44
|
+
var Path = __toESM(require("@smthrs/kernel/Path"), 1);
|
|
45
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
46
|
+
var FileSystem = __toESM(require("effect/FileSystem"), 1);
|
|
47
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
48
|
+
var import_Declaration = require("./internal/Declaration.js");
|
|
49
|
+
var FsFailure = __toESM(require("./internal/FsFailure.js"), 1);
|
|
50
|
+
var import_Text = require("./internal/Text.js");
|
|
51
|
+
var StdError = __toESM(require("./StdError.js"), 1);
|
|
52
|
+
const name = "ls";
|
|
53
|
+
const description = "List a directory with directories first, trailing /, and locale-independent UTF-16 code-unit ordering; use 1-based offset and limit to page large listings.";
|
|
54
|
+
const Input = Schema.Struct({
|
|
55
|
+
path: Schema.String.annotate({ description: "Directory path to list" }),
|
|
56
|
+
offset: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({
|
|
57
|
+
description: "1-based entry offset"
|
|
58
|
+
}),
|
|
59
|
+
limit: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({
|
|
60
|
+
description: "Maximum entries to return"
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
const Output = Schema.Struct({
|
|
64
|
+
entries: Schema.Array(Schema.Struct({
|
|
65
|
+
name: Schema.String.annotate({ description: "Entry name; directories end in /" }),
|
|
66
|
+
kind: Schema.Literals(["file", "directory"]).annotate({ description: "Entry kind" })
|
|
67
|
+
})),
|
|
68
|
+
total: Schema.Number.annotate({ description: "Total entries before paging" }),
|
|
69
|
+
truncated: Schema.Boolean.annotate({ description: "Whether more entries remain" }),
|
|
70
|
+
notice: Schema.optional(Schema.String.annotate({ description: "Truncation disclosure" }))
|
|
71
|
+
});
|
|
72
|
+
const effects = (0, import_Declaration.envelope)({ tier: "sealed", mode: "hermetic", reads: ["/**"], writes: [] });
|
|
73
|
+
const effectsFor = (input) => (0, import_Declaration.envelope)({ tier: "sealed", mode: "hermetic", reads: [input.path], writes: [] });
|
|
74
|
+
const capabilities = [(0, import_Declaration.capability)("fs:read", "/**")];
|
|
75
|
+
const flow = { name, description, input: Input, output: Output, capabilities, effects };
|
|
76
|
+
const activity = "reads";
|
|
77
|
+
const presentation = {
|
|
78
|
+
verb: { pending: "listing", success: "listed", failure: "failed to list" },
|
|
79
|
+
subject: "path",
|
|
80
|
+
result: "entries"
|
|
81
|
+
};
|
|
82
|
+
const byText = (left, right) => left < right ? -1 : Number(left > right);
|
|
83
|
+
const run = Effect.fn("Ls.run")(function* (input) {
|
|
84
|
+
const fileSystem = yield* FileSystem.FileSystem;
|
|
85
|
+
const path = yield* Path.Path;
|
|
86
|
+
const info = yield* fileSystem.stat(input.path).pipe(
|
|
87
|
+
Effect.mapError(FsFailure.reading(input.path, `Directory not found: ${input.path}`))
|
|
88
|
+
);
|
|
89
|
+
if (info.type !== "Directory") {
|
|
90
|
+
return yield* Effect.fail(
|
|
91
|
+
new StdError.StdError({
|
|
92
|
+
code: "not_a_directory",
|
|
93
|
+
message: `Cannot list a file: ${input.path}`,
|
|
94
|
+
path: input.path
|
|
95
|
+
})
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
const names = yield* fileSystem.readDirectory(input.path).pipe(
|
|
99
|
+
Effect.mapError(FsFailure.reading(input.path, `Directory not found: ${input.path}`))
|
|
100
|
+
);
|
|
101
|
+
const sortedNames = [...names].sort(byText);
|
|
102
|
+
const offset = input.offset ?? 1;
|
|
103
|
+
if (offset > Math.max(sortedNames.length, 1)) {
|
|
104
|
+
return yield* Effect.fail(
|
|
105
|
+
new StdError.StdError({
|
|
106
|
+
code: "offset_out_of_range",
|
|
107
|
+
message: `Entry offset ${offset} is outside ${input.path}, which has ${sortedNames.length} entries`,
|
|
108
|
+
path: input.path
|
|
109
|
+
})
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
const limit = Math.min(input.limit ?? import_Text.DEFAULT_READ_LIMIT, import_Text.MAX_ENTRIES);
|
|
113
|
+
const described = yield* Effect.forEach(
|
|
114
|
+
sortedNames,
|
|
115
|
+
(entry) => fileSystem.stat(path.join(input.path, entry)).pipe(
|
|
116
|
+
Effect.map((entryInfo) => ({
|
|
117
|
+
name: entryInfo.type === "Directory" ? `${entry}/` : entry,
|
|
118
|
+
kind: entryInfo.type === "Directory" ? "directory" : "file"
|
|
119
|
+
})),
|
|
120
|
+
Effect.catch(() => Effect.succeed({ name: entry, kind: "file" }))
|
|
121
|
+
),
|
|
122
|
+
{ concurrency: 16 }
|
|
123
|
+
);
|
|
124
|
+
const ordered = [...described].sort(
|
|
125
|
+
(left, right) => left.kind === right.kind ? byText(left.name, right.name) : left.kind === "directory" ? -1 : 1
|
|
126
|
+
);
|
|
127
|
+
const selected = ordered.slice(offset - 1, offset - 1 + limit);
|
|
128
|
+
const truncated = offset - 1 + selected.length < ordered.length;
|
|
129
|
+
return {
|
|
130
|
+
entries: selected,
|
|
131
|
+
total: ordered.length,
|
|
132
|
+
truncated,
|
|
133
|
+
...truncated ? { notice: (0, import_Text.notice)("entries", selected.length, ordered.length) } : {}
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=Ls.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Ls.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Directory listing flow declaration and portable handler.\n *\n * @since 1.0.0\n */\n\nimport * as Path from \"@smthrs/kernel/Path\"\nimport * as Effect from \"effect/Effect\"\nimport * as FileSystem from \"effect/FileSystem\"\nimport * as Schema from \"effect/Schema\"\nimport { capability, envelope } from \"./internal/Declaration.ts\"\nimport * as FsFailure from \"./internal/FsFailure.ts\"\nimport { DEFAULT_READ_LIMIT, MAX_ENTRIES, notice } from \"./internal/Text.ts\"\nimport * as StdError from \"./StdError.ts\"\n\n/**\n * The registry name of the `ls` flow.\n *\n * @category identifiers\n * @since 1.0.0\n */\nexport const name = \"ls\"\n\n/**\n * The one-line description the model sees for the `ls` flow.\n *\n * @category descriptions\n * @since 1.0.0\n */\nexport const description =\n \"List a directory with directories first, trailing /, and locale-independent UTF-16 code-unit ordering; use 1-based offset and limit to page large listings.\"\n\n/**\n * What the `ls` flow accepts.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Input = Schema.Struct({\n path: Schema.String.annotate({ description: \"Directory path to list\" }),\n offset: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({\n description: \"1-based entry offset\"\n }),\n limit: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({\n description: \"Maximum entries to return\"\n })\n})\n\n/**\n * Decoded input accepted by the `ls` flow.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Input = typeof Input.Type\n\n/**\n * What the `ls` flow returns.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Output = Schema.Struct({\n entries: Schema.Array(Schema.Struct({\n name: Schema.String.annotate({ description: \"Entry name; directories end in /\" }),\n kind: Schema.Literals([\"file\", \"directory\"]).annotate({ description: \"Entry kind\" })\n })),\n total: Schema.Number.annotate({ description: \"Total entries before paging\" }),\n truncated: Schema.Boolean.annotate({ description: \"Whether more entries remain\" }),\n notice: Schema.optional(Schema.String.annotate({ description: \"Truncation disclosure\" }))\n})\n\n/**\n * Decoded output returned by the `ls` flow.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Output = typeof Output.Type\n\n/**\n * The declared effect envelope of the `ls` flow, before any input is known.\n *\n * @category effects\n * @since 1.0.0\n */\nexport const effects = envelope({ tier: \"sealed\", mode: \"hermetic\", reads: [\"/**\"], writes: [] })\n\n/**\n * Narrows {@link effects} to what this particular input actually touches.\n *\n * @category effects\n * @since 1.0.0\n */\nexport const effectsFor = (input: typeof Input.Type) =>\n envelope({ tier: \"sealed\", mode: \"hermetic\", reads: [input.path], writes: [] })\n\n/**\n * The authority the `ls` flow requires.\n *\n * @category capabilities\n * @since 1.0.0\n */\nexport const capabilities = [capability(\"fs:read\", \"/**\")]\n\n/**\n * The `ls` flow declaration: schemas, capabilities, and effects, with the\n * implementation attached separately.\n *\n * @category flows\n * @since 1.0.0\n */\nexport const flow = { name, description, input: Input, output: Output, capabilities, effects } as const\n\n/**\n * What a call to this flow does, for a reader of a run.\n *\n * Display metadata only. `@smthrs/registry` `Descriptor.FlowActivity` is the\n * governing vocabulary and `StandardFlows` binds this value onto the flow's\n * descriptor, where the binding site checks it. `declarationDigest` excludes\n * it, so declaring it cannot invalidate a call identity or a cached prompt.\n *\n * @category presentation\n * @since 1.0.0-rc.0\n */\nexport const activity = \"reads\" as const\n\n/**\n * How one recorded call to this flow reads: the verb for each settlement, the\n * input field that is its subject, and the measured output fields a one-line\n * summary may count.\n *\n * Display metadata only, governed by `@smthrs/registry`\n * `Descriptor.CallPresentation` and checked where `StandardFlows` binds it.\n *\n * @category presentation\n * @since 1.0.0-rc.0\n */\nexport const presentation = {\n verb: { pending: \"listing\", success: \"listed\", failure: \"failed to list\" },\n subject: \"path\",\n result: \"entries\"\n} as const\n\n// localeCompare changes with host locale and ICU data. Code-unit comparisons\n// keep journalled directory listings identical on every host.\nconst byText = (left: string, right: string): number => (left < right ? -1 : Number(left > right))\n\n/**\n * Lists a directory deterministically. A file supplied as `path` is reported\n * as `not_a_directory`.\n *\n * @category handlers\n * @since 1.0.0\n */\nexport const run = Effect.fn(\"Ls.run\")(function*(\n input: typeof Input.Type\n): Effect.fn.Return<typeof Output.Type, StdError.StdError, FileSystem.FileSystem | Path.Path> {\n const fileSystem = yield* FileSystem.FileSystem\n const path = yield* Path.Path\n const info = yield* fileSystem.stat(input.path).pipe(\n Effect.mapError(FsFailure.reading(input.path, `Directory not found: ${input.path}`))\n )\n if (info.type !== \"Directory\") {\n return yield* Effect.fail(\n new StdError.StdError({\n code: \"not_a_directory\",\n message: `Cannot list a file: ${input.path}`,\n path: input.path\n })\n )\n }\n const names = yield* fileSystem.readDirectory(input.path).pipe(\n Effect.mapError(FsFailure.reading(input.path, `Directory not found: ${input.path}`))\n )\n const sortedNames = [...names].sort(byText)\n const offset = input.offset ?? 1\n // An empty directory is not an out-of-range listing: the caller asked for\n // the first page and there is nothing on it. This matches `read`, which\n // answers an empty page for an empty file and refuses only a real overshoot.\n if (offset > Math.max(sortedNames.length, 1)) {\n return yield* Effect.fail(\n new StdError.StdError({\n code: \"offset_out_of_range\",\n message: `Entry offset ${offset} is outside ${input.path}, which has ${sortedNames.length} entries`,\n path: input.path\n })\n )\n }\n const limit = Math.min(input.limit ?? DEFAULT_READ_LIMIT, MAX_ENTRIES)\n // Every entry is described before the page is cut, because the order the\n // description promises is directories first and a kind is a stat away.\n // Statting only the page and ordering inside it made the order local to the\n // page: a directory `zdir/` beside a file `a.txt` came back as\n // `[zdir/, a.txt]` unpaged and as `[a.txt]` then `[zdir/]` at `limit: 1`, so\n // `offset` addressed a different listing at every page size and an agent\n // paging a large directory could see one entry twice and another never.\n //\n // A per-entry stat can fail on a name the directory legitimately\n // contains \u2014 a dangling symlink, or a file the guarded filesystem refuses\n // to describe. The name is still real (readDirectory returned it), so the\n // listing reports it as a plain entry instead of dying: one broken link in\n // a repository root used to fail the whole `ls` and cost the agent a frame\n // per attempt.\n const described = yield* Effect.forEach(\n sortedNames,\n (entry) =>\n fileSystem.stat(path.join(input.path, entry)).pipe(\n Effect.map((entryInfo) => ({\n name: entryInfo.type === \"Directory\" ? `${entry}/` : entry,\n kind: entryInfo.type === \"Directory\" ? \"directory\" as const : \"file\" as const\n })),\n Effect.catch(() => Effect.succeed({ name: entry, kind: \"file\" as const }))\n ),\n { concurrency: 16 }\n )\n const ordered = [...described].sort((left, right) =>\n left.kind === right.kind ? byText(left.name, right.name) : left.kind === \"directory\" ? -1 : 1\n )\n const selected = ordered.slice(offset - 1, offset - 1 + limit)\n const truncated = offset - 1 + selected.length < ordered.length\n return {\n entries: selected,\n total: ordered.length,\n truncated,\n ...(truncated ? { notice: notice(\"entries\", selected.length, ordered.length) } : {})\n }\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `lsp` flow: one code-intelligence query per call.
|
|
3
|
+
*
|
|
4
|
+
* The handler checks the path and 1-based position each operation needs,
|
|
5
|
+
* authorizes the path as a read through the guarded `FileSystem` (the server
|
|
6
|
+
* process reads the file on its own), forwards the query to the bound
|
|
7
|
+
* `LanguageServer`, and returns the server's answer unchanged in `result`.
|
|
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 LanguageServer from "./LanguageServer.ts";
|
|
15
|
+
import * as StdError from "./StdError.ts";
|
|
16
|
+
/**
|
|
17
|
+
* The registry name of the `lsp` flow.
|
|
18
|
+
*
|
|
19
|
+
* @category identifiers
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
*/
|
|
22
|
+
export declare const name = "lsp";
|
|
23
|
+
/**
|
|
24
|
+
* The one-line description the model sees for the `lsp` flow.
|
|
25
|
+
*
|
|
26
|
+
* @category descriptions
|
|
27
|
+
* @since 1.0.0
|
|
28
|
+
*/
|
|
29
|
+
export declare const description = "Inspect code intelligence through the configured language server.";
|
|
30
|
+
/**
|
|
31
|
+
* What the `lsp` flow accepts.
|
|
32
|
+
*
|
|
33
|
+
* @category schemas
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
*/
|
|
36
|
+
export declare const Input: Schema.Struct<{
|
|
37
|
+
readonly operation: Schema.Literals<readonly ["hover", "definition", "references", "implementation", "documentSymbols", "workspaceSymbols", "prepareCallHierarchy", "callHierarchyIncoming", "callHierarchyOutgoing", "diagnostics"]>;
|
|
38
|
+
readonly path: Schema.optional<Schema.String>;
|
|
39
|
+
readonly line: Schema.optional<Schema.Int>;
|
|
40
|
+
readonly character: Schema.optional<Schema.Int>;
|
|
41
|
+
readonly query: Schema.optional<Schema.String>;
|
|
42
|
+
}>;
|
|
43
|
+
/**
|
|
44
|
+
* Decoded input accepted by the `lsp` flow.
|
|
45
|
+
*
|
|
46
|
+
* @category models
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
*/
|
|
49
|
+
export type Input = typeof Input.Type;
|
|
50
|
+
/**
|
|
51
|
+
* What the `lsp` flow returns.
|
|
52
|
+
*
|
|
53
|
+
* @category schemas
|
|
54
|
+
* @since 1.0.0
|
|
55
|
+
*/
|
|
56
|
+
export declare const Output: Schema.Struct<{
|
|
57
|
+
readonly result: Schema.Unknown;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Decoded output returned by the `lsp` flow.
|
|
61
|
+
*
|
|
62
|
+
* @category models
|
|
63
|
+
* @since 1.0.0
|
|
64
|
+
*/
|
|
65
|
+
export type Output = typeof Output.Type;
|
|
66
|
+
/**
|
|
67
|
+
* The declared effect envelope of the `lsp` flow, before any input is known.
|
|
68
|
+
*
|
|
69
|
+
* @category effects
|
|
70
|
+
* @since 1.0.0
|
|
71
|
+
*/
|
|
72
|
+
export declare const effects: import("@smthrs/plan/Effects").Declaration;
|
|
73
|
+
/**
|
|
74
|
+
* Returns the workspace-wide envelope every language-server query needs.
|
|
75
|
+
*
|
|
76
|
+
* @category effects
|
|
77
|
+
* @since 1.0.0
|
|
78
|
+
*/
|
|
79
|
+
export declare const effectsFor: (_input: typeof Input.Type) => import("@smthrs/plan/Effects").Declaration;
|
|
80
|
+
/**
|
|
81
|
+
* The authority the `lsp` flow requires.
|
|
82
|
+
*
|
|
83
|
+
* @category capabilities
|
|
84
|
+
* @since 1.0.0
|
|
85
|
+
*/
|
|
86
|
+
export declare const capabilities: string[];
|
|
87
|
+
/**
|
|
88
|
+
* The `lsp` flow declaration: schemas, capabilities, and effects, with the
|
|
89
|
+
* implementation attached separately.
|
|
90
|
+
*
|
|
91
|
+
* @category flows
|
|
92
|
+
* @since 1.0.0
|
|
93
|
+
*/
|
|
94
|
+
export declare const flow: {
|
|
95
|
+
readonly name: "lsp";
|
|
96
|
+
readonly description: "Inspect code intelligence through the configured language server.";
|
|
97
|
+
readonly input: Schema.Struct<{
|
|
98
|
+
readonly operation: Schema.Literals<readonly ["hover", "definition", "references", "implementation", "documentSymbols", "workspaceSymbols", "prepareCallHierarchy", "callHierarchyIncoming", "callHierarchyOutgoing", "diagnostics"]>;
|
|
99
|
+
readonly path: Schema.optional<Schema.String>;
|
|
100
|
+
readonly line: Schema.optional<Schema.Int>;
|
|
101
|
+
readonly character: Schema.optional<Schema.Int>;
|
|
102
|
+
readonly query: Schema.optional<Schema.String>;
|
|
103
|
+
}>;
|
|
104
|
+
readonly output: Schema.Struct<{
|
|
105
|
+
readonly result: Schema.Unknown;
|
|
106
|
+
}>;
|
|
107
|
+
readonly capabilities: string[];
|
|
108
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Runs the `lsp` flow: queries the configured language server.
|
|
112
|
+
*
|
|
113
|
+
* @category handlers
|
|
114
|
+
* @since 1.0.0
|
|
115
|
+
*/
|
|
116
|
+
export declare const run: (input: {
|
|
117
|
+
readonly operation: "references" | "diagnostics" | "hover" | "definition" | "implementation" | "documentSymbols" | "workspaceSymbols" | "prepareCallHierarchy" | "callHierarchyIncoming" | "callHierarchyOutgoing";
|
|
118
|
+
readonly path?: string | undefined;
|
|
119
|
+
readonly line?: number | undefined;
|
|
120
|
+
readonly character?: number | undefined;
|
|
121
|
+
readonly query?: string | undefined;
|
|
122
|
+
}) => Effect.Effect<{
|
|
123
|
+
readonly result: unknown;
|
|
124
|
+
}, StdError.StdError, FileSystem.FileSystem | LanguageServer.LanguageServer>;
|
|
125
|
+
//# sourceMappingURL=Lsp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Lsp.d.ts","sourceRoot":"","sources":["../../src/Lsp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,IAAI,QAAQ,CAAA;AACzB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,sEAAsE,CAAA;AAC9F;;;;;GAKG;AACH,eAAO,MAAM,KAAK;;;;;;EA4BhB,CAAA;AACF;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AACrC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;EAIjB,CAAA;AACF;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,IAAI,CAAA;AACvC;;;;;GAKG;AACH,eAAO,MAAM,OAAO,4CAKlB,CAAA;AACF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,OAAO,KAAK,CAAC,IAAI,+CAAY,CAAA;AAChE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,UAAiC,CAAA;AAC1D;;;;;;GAMG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;CAOP,CAAA;AAEV;;;;;GAKG;AACH,eAAO,MAAM,GAAG;;;;;;;;4EA0Cd,CAAA"}
|
package/dist/cjs/Lsp.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
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 name2 in all)
|
|
10
|
+
__defProp(target, name2, { get: all[name2], 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 Lsp_exports = {};
|
|
30
|
+
__export(Lsp_exports, {
|
|
31
|
+
Input: () => Input,
|
|
32
|
+
Output: () => Output,
|
|
33
|
+
capabilities: () => capabilities,
|
|
34
|
+
description: () => description,
|
|
35
|
+
effects: () => effects,
|
|
36
|
+
effectsFor: () => effectsFor,
|
|
37
|
+
flow: () => flow,
|
|
38
|
+
name: () => name,
|
|
39
|
+
run: () => run
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(Lsp_exports);
|
|
42
|
+
var Effect = __toESM(require("effect/Effect"), 1);
|
|
43
|
+
var FileSystem = __toESM(require("effect/FileSystem"), 1);
|
|
44
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
45
|
+
var import_Declaration = require("./internal/Declaration.js");
|
|
46
|
+
var FsFailure = __toESM(require("./internal/FsFailure.js"), 1);
|
|
47
|
+
var LanguageServer = __toESM(require("./LanguageServer.js"), 1);
|
|
48
|
+
var StdError = __toESM(require("./StdError.js"), 1);
|
|
49
|
+
const name = "lsp";
|
|
50
|
+
const description = "Inspect code intelligence through the configured language server.";
|
|
51
|
+
const Input = Schema.Struct({
|
|
52
|
+
operation: Schema.Literals([
|
|
53
|
+
"hover",
|
|
54
|
+
"definition",
|
|
55
|
+
"references",
|
|
56
|
+
"implementation",
|
|
57
|
+
"documentSymbols",
|
|
58
|
+
"workspaceSymbols",
|
|
59
|
+
"prepareCallHierarchy",
|
|
60
|
+
"callHierarchyIncoming",
|
|
61
|
+
"callHierarchyOutgoing",
|
|
62
|
+
"diagnostics"
|
|
63
|
+
]).annotate({
|
|
64
|
+
description: "The query to run; workspaceSymbols takes query, documentSymbols and diagnostics take path, the rest take path with line and character"
|
|
65
|
+
}),
|
|
66
|
+
path: Schema.optional(Schema.String).annotate({
|
|
67
|
+
description: "Absolute path of the file to query; required by every operation except workspaceSymbols"
|
|
68
|
+
}),
|
|
69
|
+
line: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({
|
|
70
|
+
description: "1-based line of the position to query, as read and grep report it"
|
|
71
|
+
}),
|
|
72
|
+
character: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({
|
|
73
|
+
description: "1-based character offset within the line"
|
|
74
|
+
}),
|
|
75
|
+
query: Schema.optional(Schema.String).annotate({
|
|
76
|
+
description: "Symbol text to search the workspace for; workspaceSymbols only"
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
const Output = Schema.Struct({
|
|
80
|
+
result: Schema.Unknown.annotate({
|
|
81
|
+
description: "The language server's answer for this operation, passed through in the server's own shape"
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
const effects = (0, import_Declaration.envelope)({
|
|
85
|
+
tier: "sealed",
|
|
86
|
+
mode: "hermetic",
|
|
87
|
+
reads: ["/**"],
|
|
88
|
+
writes: []
|
|
89
|
+
});
|
|
90
|
+
const effectsFor = (_input) => effects;
|
|
91
|
+
const capabilities = [(0, import_Declaration.capability)("fs:read", "/**")];
|
|
92
|
+
const flow = {
|
|
93
|
+
name,
|
|
94
|
+
description,
|
|
95
|
+
input: Input,
|
|
96
|
+
output: Output,
|
|
97
|
+
capabilities,
|
|
98
|
+
effects
|
|
99
|
+
};
|
|
100
|
+
const isAbsolutePath = (path) => path.startsWith("/") || /^[A-Za-z]:[\\/]/.test(path);
|
|
101
|
+
const run = Effect.fn("Lsp.run")(function* (input) {
|
|
102
|
+
const server = yield* LanguageServer.LanguageServer;
|
|
103
|
+
const path = input.path;
|
|
104
|
+
const position = path === void 0 || input.line === void 0 || input.character === void 0 ? void 0 : { path, line: input.line - 1, character: input.character - 1 };
|
|
105
|
+
if (input.operation === "workspaceSymbols") return { result: yield* server.workspaceSymbols(input.query ?? "") };
|
|
106
|
+
if (path === void 0 || !isAbsolutePath(path)) {
|
|
107
|
+
return yield* Effect.fail(
|
|
108
|
+
new StdError.StdError({ code: "invalid_input", message: "A normalized absolute path is required" })
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
const fileSystem = yield* FileSystem.FileSystem;
|
|
112
|
+
yield* fileSystem.stat(path).pipe(Effect.mapError(FsFailure.reading(path, `File not found: ${path}`)));
|
|
113
|
+
if (input.operation === "documentSymbols") return { result: yield* server.documentSymbols(path) };
|
|
114
|
+
if (input.operation === "diagnostics") return { result: yield* server.diagnostics(path) };
|
|
115
|
+
if (position === void 0) {
|
|
116
|
+
return yield* Effect.fail(
|
|
117
|
+
new StdError.StdError({ code: "invalid_input", message: "1-based line and character are required" })
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
switch (input.operation) {
|
|
121
|
+
case "hover":
|
|
122
|
+
return { result: yield* server.hover(position) };
|
|
123
|
+
case "definition":
|
|
124
|
+
return { result: yield* server.definition(position) };
|
|
125
|
+
case "references":
|
|
126
|
+
return { result: yield* server.references(position) };
|
|
127
|
+
case "implementation":
|
|
128
|
+
return { result: yield* server.implementation(position) };
|
|
129
|
+
case "prepareCallHierarchy":
|
|
130
|
+
return { result: yield* server.prepareCallHierarchy(position) };
|
|
131
|
+
case "callHierarchyIncoming":
|
|
132
|
+
return { result: yield* server.callHierarchyIncoming(position) };
|
|
133
|
+
case "callHierarchyOutgoing":
|
|
134
|
+
return { result: yield* server.callHierarchyOutgoing(position) };
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=Lsp.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Lsp.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * The `lsp` flow: one code-intelligence query per call.\n *\n * The handler checks the path and 1-based position each operation needs,\n * authorizes the path as a read through the guarded `FileSystem` (the server\n * process reads the file on its own), forwards the query to the bound\n * `LanguageServer`, and returns the server's answer unchanged in `result`.\n *\n * @since 1.0.0\n */\n\nimport * as Effect from \"effect/Effect\"\nimport * as FileSystem from \"effect/FileSystem\"\nimport * as Schema from \"effect/Schema\"\nimport { capability, envelope } from \"./internal/Declaration.ts\"\nimport * as FsFailure from \"./internal/FsFailure.ts\"\nimport * as LanguageServer from \"./LanguageServer.ts\"\nimport * as StdError from \"./StdError.ts\"\n\n/**\n * The registry name of the `lsp` flow.\n *\n * @category identifiers\n * @since 1.0.0\n */\nexport const name = \"lsp\"\n/**\n * The one-line description the model sees for the `lsp` flow.\n *\n * @category descriptions\n * @since 1.0.0\n */\nexport const description = \"Inspect code intelligence through the configured language server.\"\n/**\n * What the `lsp` flow accepts.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Input = Schema.Struct({\n operation: Schema.Literals([\n \"hover\",\n \"definition\",\n \"references\",\n \"implementation\",\n \"documentSymbols\",\n \"workspaceSymbols\",\n \"prepareCallHierarchy\",\n \"callHierarchyIncoming\",\n \"callHierarchyOutgoing\",\n \"diagnostics\"\n ]).annotate({\n description:\n \"The query to run; workspaceSymbols takes query, documentSymbols and diagnostics take path, the rest take path with line and character\"\n }),\n path: Schema.optional(Schema.String).annotate({\n description: \"Absolute path of the file to query; required by every operation except workspaceSymbols\"\n }),\n line: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({\n description: \"1-based line of the position to query, as read and grep report it\"\n }),\n character: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(1))).annotate({\n description: \"1-based character offset within the line\"\n }),\n query: Schema.optional(Schema.String).annotate({\n description: \"Symbol text to search the workspace for; workspaceSymbols only\"\n })\n})\n/**\n * Decoded input accepted by the `lsp` flow.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Input = typeof Input.Type\n/**\n * What the `lsp` flow returns.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Output = Schema.Struct({\n result: Schema.Unknown.annotate({\n description: \"The language server's answer for this operation, passed through in the server's own shape\"\n })\n})\n/**\n * Decoded output returned by the `lsp` flow.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Output = typeof Output.Type\n/**\n * The declared effect envelope of the `lsp` flow, before any input is known.\n *\n * @category effects\n * @since 1.0.0\n */\nexport const effects = envelope({\n tier: \"sealed\",\n mode: \"hermetic\",\n reads: [\"/**\"],\n writes: []\n})\n/**\n * Returns the workspace-wide envelope every language-server query needs.\n *\n * @category effects\n * @since 1.0.0\n */\nexport const effectsFor = (_input: typeof Input.Type) => effects\n/**\n * The authority the `lsp` flow requires.\n *\n * @category capabilities\n * @since 1.0.0\n */\nexport const capabilities = [capability(\"fs:read\", \"/**\")]\n/**\n * The `lsp` flow declaration: schemas, capabilities, and effects, with the\n * implementation attached separately.\n *\n * @category flows\n * @since 1.0.0\n */\nexport const flow = {\n name,\n description,\n input: Input,\n output: Output,\n capabilities,\n effects\n} as const\nconst isAbsolutePath = (path: string): boolean => path.startsWith(\"/\") || /^[A-Za-z]:[\\\\/]/.test(path)\n/**\n * Runs the `lsp` flow: queries the configured language server.\n *\n * @category handlers\n * @since 1.0.0\n */\nexport const run = Effect.fn(\"Lsp.run\")(function*(\n input: typeof Input.Type\n): Effect.fn.Return<typeof Output.Type, StdError.StdError, LanguageServer.LanguageServer | FileSystem.FileSystem> {\n const server = yield* LanguageServer.LanguageServer\n const path = input.path\n const position = path === undefined || input.line === undefined || input.character === undefined\n ? undefined\n : { path, line: input.line - 1, character: input.character - 1 }\n if ((input.operation === \"workspaceSymbols\")) return { result: yield* server.workspaceSymbols(input.query ?? \"\") }\n if (path === undefined || !isAbsolutePath(path)) {\n return yield* Effect.fail(\n new StdError.StdError({ code: \"invalid_input\", message: \"A normalized absolute path is required\" })\n )\n }\n // The server reads the file itself, outside the guarded filesystem, so the\n // path is authorized here: a read the caller could not make through `read`\n // is not made through the language server either.\n const fileSystem = yield* FileSystem.FileSystem\n yield* fileSystem.stat(path).pipe(Effect.mapError(FsFailure.reading(path, `File not found: ${path}`)))\n if (input.operation === \"documentSymbols\") return { result: yield* server.documentSymbols(path) }\n if (input.operation === \"diagnostics\") return { result: yield* server.diagnostics(path) }\n if (position === undefined) {\n return yield* Effect.fail(\n new StdError.StdError({ code: \"invalid_input\", message: \"1-based line and character are required\" })\n )\n }\n switch (input.operation) {\n case \"hover\":\n return { result: yield* server.hover(position) }\n case \"definition\":\n return { result: yield* server.definition(position) }\n case \"references\":\n return { result: yield* server.references(position) }\n case \"implementation\":\n return { result: yield* server.implementation(position) }\n case \"prepareCallHierarchy\":\n return { result: yield* server.prepareCallHierarchy(position) }\n case \"callHierarchyIncoming\":\n return { result: yield* server.callHierarchyIncoming(position) }\n case \"callHierarchyOutgoing\":\n return { result: yield* server.callHierarchyOutgoing(position) }\n }\n})\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|