@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Exa provider for the `websearch` flow.
|
|
3
|
+
*
|
|
4
|
+
* {@link layer} binds `WebSearch.WebSearch` to the Exa search API. It reads the
|
|
5
|
+
* API key from a named credential on every search, calls Exa through the
|
|
6
|
+
* permission-checked `HttpClient`, and maps each hit onto `WebSearch.Result`.
|
|
7
|
+
*
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
*/
|
|
10
|
+
import * as Credential from "@smthrs/control/Credential";
|
|
11
|
+
import * as HttpClient from "@smthrs/kernel/HttpClient";
|
|
12
|
+
import { Layer } from "effect";
|
|
13
|
+
import * as WebSearch from "./WebSearch.ts";
|
|
14
|
+
/**
|
|
15
|
+
* Provides {@link WebSearch.WebSearch} backed by the Exa API, reading its
|
|
16
|
+
* key from the named credential.
|
|
17
|
+
*
|
|
18
|
+
* @category layers
|
|
19
|
+
* @since 1.0.0
|
|
20
|
+
*/
|
|
21
|
+
export declare const layer: (credentialId: string) => Layer.Layer<WebSearch.WebSearch, never, Credential.Credential | HttpClient.HttpClient>;
|
|
22
|
+
//# sourceMappingURL=ExaWebSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExaWebSearch.d.ts","sourceRoot":"","sources":["../../src/ExaWebSearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,UAAU,MAAM,2BAA2B,CAAA;AACvD,OAAO,EAAiB,KAAK,EAAoB,MAAM,QAAQ,CAAA;AAI/D,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAsB3C;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,GAChB,cAAc,MAAM,KACnB,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAiGrF,CAAA"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ExaWebSearch_exports = {};
|
|
30
|
+
__export(ExaWebSearch_exports, {
|
|
31
|
+
layer: () => layer
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(ExaWebSearch_exports);
|
|
34
|
+
var Credential = __toESM(require("@smthrs/control/Credential"), 1);
|
|
35
|
+
var HttpClient = __toESM(require("@smthrs/kernel/HttpClient"), 1);
|
|
36
|
+
var import_effect = require("effect");
|
|
37
|
+
var HttpClientRequest = __toESM(require("effect/unstable/http/HttpClientRequest"), 1);
|
|
38
|
+
var import_Http = require("./internal/Http.js");
|
|
39
|
+
var StdError = __toESM(require("./StdError.js"), 1);
|
|
40
|
+
var WebSearch = __toESM(require("./WebSearch.js"), 1);
|
|
41
|
+
const maxResults = 20;
|
|
42
|
+
const requestTimeoutMs = 3e4;
|
|
43
|
+
const ExaResult = import_effect.Schema.Struct({
|
|
44
|
+
title: import_effect.Schema.optional(import_effect.Schema.String),
|
|
45
|
+
url: import_effect.Schema.String,
|
|
46
|
+
text: import_effect.Schema.optional(import_effect.Schema.String),
|
|
47
|
+
publishedDate: import_effect.Schema.optional(import_effect.Schema.String)
|
|
48
|
+
});
|
|
49
|
+
const ExaResponse = import_effect.Schema.Struct({
|
|
50
|
+
results: import_effect.Schema.Array(ExaResult)
|
|
51
|
+
});
|
|
52
|
+
const freshnessDays = {
|
|
53
|
+
day: 1,
|
|
54
|
+
week: 7,
|
|
55
|
+
month: 31,
|
|
56
|
+
year: 365
|
|
57
|
+
};
|
|
58
|
+
const failure = (code, message) => new StdError.StdError({ code, message });
|
|
59
|
+
const layer = (credentialId) => import_effect.Layer.effect(
|
|
60
|
+
WebSearch.WebSearch,
|
|
61
|
+
import_effect.Effect.gen(function* () {
|
|
62
|
+
const credentials = yield* Credential.Credential;
|
|
63
|
+
const http = yield* HttpClient.HttpClient;
|
|
64
|
+
return WebSearch.make({
|
|
65
|
+
search: (input) => import_effect.Effect.gen(function* () {
|
|
66
|
+
const reference = yield* credentials.get(credentialId).pipe(import_effect.Effect.mapError(
|
|
67
|
+
() => new StdError.StdError({
|
|
68
|
+
code: "provider_unavailable",
|
|
69
|
+
message: "Configured Exa credential is unavailable"
|
|
70
|
+
})
|
|
71
|
+
));
|
|
72
|
+
const secret = yield* credentials.resolve(reference).pipe(import_effect.Effect.mapError(
|
|
73
|
+
() => new StdError.StdError({
|
|
74
|
+
code: "provider_unavailable",
|
|
75
|
+
message: "Configured Exa credential cannot be resolved"
|
|
76
|
+
})
|
|
77
|
+
));
|
|
78
|
+
const now = yield* import_effect.Clock.currentTimeMillis;
|
|
79
|
+
const request = HttpClientRequest.setHeaders(
|
|
80
|
+
HttpClientRequest.bodyJsonUnsafe(HttpClientRequest.post("https://api.exa.ai/search"), {
|
|
81
|
+
query: input.query,
|
|
82
|
+
numResults: Math.min(input.numResults ?? 8, maxResults),
|
|
83
|
+
...input.freshness === void 0 ? {} : { startPublishedDate: new Date(now - freshnessDays[input.freshness] * 864e5).toISOString() }
|
|
84
|
+
}),
|
|
85
|
+
{ "authorization": `Bearer ${import_effect.Redacted.value(secret)}`, "content-type": "application/json" }
|
|
86
|
+
);
|
|
87
|
+
const response = yield* http.execute(request).pipe(
|
|
88
|
+
import_effect.Effect.timeout(requestTimeoutMs),
|
|
89
|
+
import_effect.Effect.mapError(
|
|
90
|
+
(error) => error._tag === "TimeoutError" ? failure("timeout", "Exa search request timed out") : failure("request_failed", "Exa search request failed")
|
|
91
|
+
)
|
|
92
|
+
);
|
|
93
|
+
const retryAfter = (0, import_Http.header)(response.headers, "retry-after");
|
|
94
|
+
const refused = response.status < 200 || response.status >= 300;
|
|
95
|
+
if (response.status === 429 || refused && retryAfter !== void 0) {
|
|
96
|
+
const delay = retryAfter === void 0 ? NaN : /^\d+$/.test(retryAfter.trim()) ? Number(retryAfter) : Math.max(0, Math.ceil((Date.parse(retryAfter) - (yield* import_effect.Clock.currentTimeMillis)) / 1e3));
|
|
97
|
+
return yield* import_effect.Effect.fail(
|
|
98
|
+
failure(
|
|
99
|
+
"rate_limited",
|
|
100
|
+
Number.isFinite(delay) ? `Exa search was throttled; retry after ${delay} seconds` : "Exa search was throttled"
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
if (response.status === 401 || response.status === 403) {
|
|
105
|
+
return yield* import_effect.Effect.fail(failure("provider_unavailable", "Exa search authentication was rejected"));
|
|
106
|
+
}
|
|
107
|
+
if (response.status >= 500) {
|
|
108
|
+
return yield* import_effect.Effect.fail(failure("provider_unavailable", `Exa search returned ${response.status}`));
|
|
109
|
+
}
|
|
110
|
+
if (response.status < 200 || response.status >= 300) {
|
|
111
|
+
return yield* import_effect.Effect.fail(failure("request_failed", `Exa search returned ${response.status}`));
|
|
112
|
+
}
|
|
113
|
+
const bytes = yield* (0, import_Http.readBounded)(response.stream, "https://api.exa.ai/search").pipe(
|
|
114
|
+
import_effect.Effect.timeout(requestTimeoutMs),
|
|
115
|
+
import_effect.Effect.mapError(
|
|
116
|
+
(error) => error._tag === "TimeoutError" ? failure("timeout", "Exa search response timed out") : error instanceof StdError.StdError && error.code === "response_too_large" ? failure("response_too_large", "Exa search response exceeds the 5 MiB limit") : failure("request_failed", "Exa search response was invalid")
|
|
117
|
+
)
|
|
118
|
+
);
|
|
119
|
+
const body = yield* import_effect.Schema.decodeUnknownEffect(import_effect.Schema.fromJsonString(ExaResponse))(
|
|
120
|
+
new TextDecoder().decode(bytes)
|
|
121
|
+
).pipe(
|
|
122
|
+
import_effect.Effect.mapError(
|
|
123
|
+
() => new StdError.StdError({ code: "request_failed", message: "Exa search response was invalid" })
|
|
124
|
+
)
|
|
125
|
+
);
|
|
126
|
+
return {
|
|
127
|
+
results: body.results.slice(0, Math.min(input.numResults ?? 8, maxResults)).map((result) => ({
|
|
128
|
+
title: result.title ?? result.url,
|
|
129
|
+
url: result.url,
|
|
130
|
+
snippet: (result.text ?? "").slice(0, 2e3),
|
|
131
|
+
...result.publishedDate === void 0 ? {} : { publishedAt: result.publishedDate }
|
|
132
|
+
}))
|
|
133
|
+
};
|
|
134
|
+
})
|
|
135
|
+
});
|
|
136
|
+
})
|
|
137
|
+
);
|
|
138
|
+
//# sourceMappingURL=ExaWebSearch.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ExaWebSearch.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * The Exa provider for the `websearch` flow.\n *\n * {@link layer} binds `WebSearch.WebSearch` to the Exa search API. It reads the\n * API key from a named credential on every search, calls Exa through the\n * permission-checked `HttpClient`, and maps each hit onto `WebSearch.Result`.\n *\n * @since 1.0.0\n */\n\nimport * as Credential from \"@smthrs/control/Credential\"\nimport * as HttpClient from \"@smthrs/kernel/HttpClient\"\nimport { Clock, Effect, Layer, Redacted, Schema } from \"effect\"\nimport * as HttpClientRequest from \"effect/unstable/http/HttpClientRequest\"\nimport { header, readBounded } from \"./internal/Http.ts\"\nimport * as StdError from \"./StdError.ts\"\nimport * as WebSearch from \"./WebSearch.ts\"\n\nconst maxResults = 20\nconst requestTimeoutMs = 30_000\nconst ExaResult = Schema.Struct({\n title: Schema.optional(Schema.String),\n url: Schema.String,\n text: Schema.optional(Schema.String),\n publishedDate: Schema.optional(Schema.String)\n})\nconst ExaResponse = Schema.Struct({\n results: Schema.Array(ExaResult)\n})\nconst freshnessDays = {\n day: 1,\n week: 7,\n month: 31,\n year: 365\n} as const\n\nconst failure = (code: StdError.Code, message: string): StdError.StdError => new StdError.StdError({ code, message })\n\n/**\n * Provides {@link WebSearch.WebSearch} backed by the Exa API, reading its\n * key from the named credential.\n *\n * @category layers\n * @since 1.0.0\n */\nexport const layer = (\n credentialId: string\n): Layer.Layer<WebSearch.WebSearch, never, Credential.Credential | HttpClient.HttpClient> =>\n Layer.effect(\n WebSearch.WebSearch,\n Effect.gen(function*() {\n const credentials = yield* Credential.Credential\n const http = yield* HttpClient.HttpClient\n return WebSearch.make({\n search: (input): Effect.Effect<typeof WebSearch.Output.Type, StdError.StdError> =>\n Effect.gen(function*() {\n const reference = yield* credentials.get(credentialId).pipe(Effect.mapError(() =>\n new StdError.StdError({\n code: \"provider_unavailable\",\n message: \"Configured Exa credential is unavailable\"\n })\n ))\n const secret = yield* credentials.resolve(reference).pipe(Effect.mapError(() =>\n new StdError.StdError({\n code: \"provider_unavailable\",\n message: \"Configured Exa credential cannot be resolved\"\n })\n ))\n const now = yield* Clock.currentTimeMillis\n const request = HttpClientRequest.setHeaders(\n HttpClientRequest.bodyJsonUnsafe(HttpClientRequest.post(\"https://api.exa.ai/search\"), {\n query: input.query,\n numResults: Math.min(input.numResults ?? 8, maxResults),\n ...(input.freshness === undefined\n ? {}\n : { startPublishedDate: new Date(now - freshnessDays[input.freshness] * 86_400_000).toISOString() })\n }),\n { \"authorization\": `Bearer ${Redacted.value(secret)}`, \"content-type\": \"application/json\" }\n )\n const response = yield* http.execute(request).pipe(\n Effect.timeout(requestTimeoutMs),\n Effect.mapError((error) =>\n error._tag === \"TimeoutError\"\n ? failure(\"timeout\", \"Exa search request timed out\")\n : failure(\"request_failed\", \"Exa search request failed\")\n )\n )\n const retryAfter = header(response.headers, \"retry-after\")\n // Successful responses may carry pacing advice too; status decides refusal.\n const refused = response.status < 200 || response.status >= 300\n if (response.status === 429 || (refused && retryAfter !== undefined)) {\n const delay = retryAfter === undefined\n ? NaN\n : /^\\d+$/.test(retryAfter.trim())\n ? Number(retryAfter)\n : Math.max(0, Math.ceil((Date.parse(retryAfter) - (yield* Clock.currentTimeMillis)) / 1_000))\n return yield* Effect.fail(\n failure(\n \"rate_limited\",\n Number.isFinite(delay)\n ? `Exa search was throttled; retry after ${delay} seconds`\n : \"Exa search was throttled\"\n )\n )\n }\n if (response.status === 401 || response.status === 403) {\n return yield* Effect.fail(failure(\"provider_unavailable\", \"Exa search authentication was rejected\"))\n }\n if (response.status >= 500) {\n return yield* Effect.fail(failure(\"provider_unavailable\", `Exa search returned ${response.status}`))\n }\n if (response.status < 200 || response.status >= 300) {\n return yield* Effect.fail(failure(\"request_failed\", `Exa search returned ${response.status}`))\n }\n // Bound the body before decoding: an endpoint must not choose how\n // much of it the host buffers.\n const bytes = yield* readBounded(response.stream, \"https://api.exa.ai/search\").pipe(\n Effect.timeout(requestTimeoutMs),\n Effect.mapError((error) =>\n error._tag === \"TimeoutError\"\n ? failure(\"timeout\", \"Exa search response timed out\")\n : error instanceof StdError.StdError && error.code === \"response_too_large\"\n ? failure(\"response_too_large\", \"Exa search response exceeds the 5 MiB limit\")\n : failure(\"request_failed\", \"Exa search response was invalid\")\n )\n )\n const body = yield* Schema.decodeUnknownEffect(Schema.fromJsonString(ExaResponse))(\n new TextDecoder().decode(bytes)\n ).pipe(\n Effect.mapError(() =>\n new StdError.StdError({ code: \"request_failed\", message: \"Exa search response was invalid\" })\n )\n )\n return {\n results: body.results.slice(0, Math.min(input.numResults ?? 8, maxResults)).map((result) => ({\n title: result.title ?? result.url,\n url: result.url,\n snippet: (result.text ?? \"\").slice(0, 2_000),\n ...(result.publishedDate === undefined ? {} : { publishedAt: result.publishedDate })\n }))\n }\n })\n })\n })\n )\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-only workspace reconnaissance as a dynamic flow.
|
|
3
|
+
*
|
|
4
|
+
* @since 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
/**
|
|
8
|
+
* Registry name for the explore flow.
|
|
9
|
+
*
|
|
10
|
+
* @category metadata
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
export declare const name: "explore";
|
|
14
|
+
/**
|
|
15
|
+
* Model-facing description of the explore flow.
|
|
16
|
+
*
|
|
17
|
+
* @category metadata
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
export declare const description = "Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.";
|
|
21
|
+
/**
|
|
22
|
+
* Input accepted by the explore flow.
|
|
23
|
+
*
|
|
24
|
+
* @category schemas
|
|
25
|
+
* @since 1.0.0
|
|
26
|
+
*/
|
|
27
|
+
export declare const Input: Schema.Struct<{
|
|
28
|
+
readonly prompt: Schema.String;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Decoded input accepted by the `explore` flow.
|
|
32
|
+
*
|
|
33
|
+
* @category models
|
|
34
|
+
* @since 1.0.0
|
|
35
|
+
*/
|
|
36
|
+
export type Input = typeof Input.Type;
|
|
37
|
+
/**
|
|
38
|
+
* Output returned by the explore flow.
|
|
39
|
+
*
|
|
40
|
+
* @category schemas
|
|
41
|
+
* @since 1.0.0
|
|
42
|
+
*/
|
|
43
|
+
export declare const Output: Schema.Struct<{
|
|
44
|
+
readonly findings: Schema.String;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Decoded output returned by the `explore` flow.
|
|
48
|
+
*
|
|
49
|
+
* @category models
|
|
50
|
+
* @since 1.0.0
|
|
51
|
+
*/
|
|
52
|
+
export type Output = typeof Output.Type;
|
|
53
|
+
/**
|
|
54
|
+
* Static effect envelope for read-only workspace reconnaissance.
|
|
55
|
+
*
|
|
56
|
+
* @category effects
|
|
57
|
+
* @since 1.0.0
|
|
58
|
+
*/
|
|
59
|
+
export declare const effects: import("@smthrs/plan/Effects").Declaration;
|
|
60
|
+
/**
|
|
61
|
+
* Narrows the explore effect declaration for one decoded input.
|
|
62
|
+
*
|
|
63
|
+
* @category effects
|
|
64
|
+
* @since 1.0.0
|
|
65
|
+
*/
|
|
66
|
+
export declare const effectsFor: (_input: typeof Input.Type) => import("@smthrs/plan/Effects").Declaration;
|
|
67
|
+
/**
|
|
68
|
+
* Transitive capabilities of the read-only flows available to explore.
|
|
69
|
+
*
|
|
70
|
+
* @category capabilities
|
|
71
|
+
* @since 1.0.0
|
|
72
|
+
*/
|
|
73
|
+
export declare const capabilities: ReadonlyArray<string>;
|
|
74
|
+
/**
|
|
75
|
+
* Constructs an explore flow, optionally pinned to a model.
|
|
76
|
+
*
|
|
77
|
+
* Model selection remains optional so the invoking seat can inject its model.
|
|
78
|
+
*
|
|
79
|
+
* @category constructors
|
|
80
|
+
* @since 1.0.0
|
|
81
|
+
*/
|
|
82
|
+
export declare const make: (options: {
|
|
83
|
+
readonly model?: string | undefined;
|
|
84
|
+
}) => {
|
|
85
|
+
readonly name: "explore";
|
|
86
|
+
readonly description: "Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.";
|
|
87
|
+
readonly input: Schema.Struct<{
|
|
88
|
+
readonly prompt: Schema.String;
|
|
89
|
+
}>;
|
|
90
|
+
readonly output: Schema.Struct<{
|
|
91
|
+
readonly findings: Schema.String;
|
|
92
|
+
}>;
|
|
93
|
+
readonly model: string | undefined;
|
|
94
|
+
readonly flows: readonly [{
|
|
95
|
+
readonly name: "read";
|
|
96
|
+
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.";
|
|
97
|
+
readonly input: Schema.Struct<{
|
|
98
|
+
readonly path: Schema.String;
|
|
99
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
100
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
101
|
+
}>;
|
|
102
|
+
readonly output: Schema.Struct<{
|
|
103
|
+
readonly content: Schema.String;
|
|
104
|
+
readonly startLine: Schema.Number;
|
|
105
|
+
readonly endLine: Schema.Number;
|
|
106
|
+
readonly totalLines: Schema.Number;
|
|
107
|
+
readonly truncated: Schema.Boolean;
|
|
108
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
109
|
+
}>;
|
|
110
|
+
readonly capabilities: string[];
|
|
111
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
112
|
+
}, {
|
|
113
|
+
readonly name: "ls";
|
|
114
|
+
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.";
|
|
115
|
+
readonly input: Schema.Struct<{
|
|
116
|
+
readonly path: Schema.String;
|
|
117
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
118
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
119
|
+
}>;
|
|
120
|
+
readonly output: Schema.Struct<{
|
|
121
|
+
readonly entries: Schema.$Array<Schema.Struct<{
|
|
122
|
+
readonly name: Schema.String;
|
|
123
|
+
readonly kind: Schema.Literals<readonly ["file", "directory"]>;
|
|
124
|
+
}>>;
|
|
125
|
+
readonly total: Schema.Number;
|
|
126
|
+
readonly truncated: Schema.Boolean;
|
|
127
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
128
|
+
}>;
|
|
129
|
+
readonly capabilities: string[];
|
|
130
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
131
|
+
}, {
|
|
132
|
+
readonly name: "glob";
|
|
133
|
+
readonly description: "Find files through the Smithers Ripgrep Subset v1 contract.";
|
|
134
|
+
readonly input: Schema.Struct<{
|
|
135
|
+
readonly pattern: Schema.NonEmptyString;
|
|
136
|
+
readonly root: Schema.optional<Schema.String>;
|
|
137
|
+
readonly hidden: Schema.optional<Schema.Boolean>;
|
|
138
|
+
readonly noIgnore: Schema.optional<Schema.Boolean>;
|
|
139
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
140
|
+
}>;
|
|
141
|
+
readonly output: Schema.Struct<{
|
|
142
|
+
readonly paths: Schema.$Array<Schema.String>;
|
|
143
|
+
readonly total: Schema.Int;
|
|
144
|
+
readonly truncated: Schema.Boolean;
|
|
145
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
146
|
+
}>;
|
|
147
|
+
readonly capabilities: string[];
|
|
148
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
149
|
+
}, {
|
|
150
|
+
readonly name: "grep";
|
|
151
|
+
readonly description: "Search file contents through the Smithers Ripgrep Subset v1 contract. limit counts matches, each carrying its own context and enclosing definition; fixedStrings searches a literal, and one is retried.";
|
|
152
|
+
readonly input: Schema.Struct<{
|
|
153
|
+
readonly pattern: Schema.String;
|
|
154
|
+
readonly root: Schema.optional<Schema.String>;
|
|
155
|
+
readonly fixedStrings: Schema.optional<Schema.Boolean>;
|
|
156
|
+
readonly ignoreCase: Schema.optional<Schema.Boolean>;
|
|
157
|
+
readonly smartCase: Schema.optional<Schema.Boolean>;
|
|
158
|
+
readonly globs: Schema.optional<Schema.$Array<Schema.String>>;
|
|
159
|
+
readonly beforeContext: Schema.optional<Schema.Int>;
|
|
160
|
+
readonly afterContext: Schema.optional<Schema.Int>;
|
|
161
|
+
readonly context: Schema.optional<Schema.Int>;
|
|
162
|
+
readonly maxCount: Schema.optional<Schema.Int>;
|
|
163
|
+
readonly filesWithMatches: Schema.optional<Schema.Boolean>;
|
|
164
|
+
readonly hidden: Schema.optional<Schema.Boolean>;
|
|
165
|
+
readonly symbols: Schema.optional<Schema.Boolean>;
|
|
166
|
+
readonly noIgnore: Schema.optional<Schema.Boolean>;
|
|
167
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
168
|
+
}>;
|
|
169
|
+
readonly output: Schema.Struct<{
|
|
170
|
+
readonly matches: Schema.$Array<Schema.Struct<{
|
|
171
|
+
readonly file: Schema.String;
|
|
172
|
+
readonly line: Schema.Int;
|
|
173
|
+
readonly text: Schema.String;
|
|
174
|
+
readonly before: Schema.$Array<Schema.Struct<{
|
|
175
|
+
readonly line: Schema.Int;
|
|
176
|
+
readonly text: Schema.String;
|
|
177
|
+
}>>;
|
|
178
|
+
readonly after: Schema.$Array<Schema.Struct<{
|
|
179
|
+
readonly line: Schema.Int;
|
|
180
|
+
readonly text: Schema.String;
|
|
181
|
+
}>>;
|
|
182
|
+
readonly symbol: Schema.optional<Schema.Struct<{
|
|
183
|
+
readonly kind: Schema.String;
|
|
184
|
+
readonly name: Schema.String;
|
|
185
|
+
readonly startLine: Schema.Int;
|
|
186
|
+
readonly endLine: Schema.Int;
|
|
187
|
+
}>>;
|
|
188
|
+
}>>;
|
|
189
|
+
readonly files: Schema.$Array<Schema.String>;
|
|
190
|
+
readonly filesSearched: Schema.Int;
|
|
191
|
+
readonly skippedBinary: Schema.Int;
|
|
192
|
+
readonly truncated: Schema.Boolean;
|
|
193
|
+
readonly retriedAsLiteral: Schema.optional<Schema.Boolean>;
|
|
194
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
195
|
+
}>;
|
|
196
|
+
readonly capabilities: string[];
|
|
197
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
198
|
+
}];
|
|
199
|
+
readonly prompt: "Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.";
|
|
200
|
+
readonly capabilities: readonly string[];
|
|
201
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Default explore declaration with seat-selected model injection.
|
|
205
|
+
*
|
|
206
|
+
* @category flows
|
|
207
|
+
* @since 1.0.0
|
|
208
|
+
*/
|
|
209
|
+
export declare const flow: {
|
|
210
|
+
readonly name: "explore";
|
|
211
|
+
readonly description: "Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.";
|
|
212
|
+
readonly input: Schema.Struct<{
|
|
213
|
+
readonly prompt: Schema.String;
|
|
214
|
+
}>;
|
|
215
|
+
readonly output: Schema.Struct<{
|
|
216
|
+
readonly findings: Schema.String;
|
|
217
|
+
}>;
|
|
218
|
+
readonly model: string | undefined;
|
|
219
|
+
readonly flows: readonly [{
|
|
220
|
+
readonly name: "read";
|
|
221
|
+
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.";
|
|
222
|
+
readonly input: Schema.Struct<{
|
|
223
|
+
readonly path: Schema.String;
|
|
224
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
225
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
226
|
+
}>;
|
|
227
|
+
readonly output: Schema.Struct<{
|
|
228
|
+
readonly content: Schema.String;
|
|
229
|
+
readonly startLine: Schema.Number;
|
|
230
|
+
readonly endLine: Schema.Number;
|
|
231
|
+
readonly totalLines: Schema.Number;
|
|
232
|
+
readonly truncated: Schema.Boolean;
|
|
233
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
234
|
+
}>;
|
|
235
|
+
readonly capabilities: string[];
|
|
236
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
237
|
+
}, {
|
|
238
|
+
readonly name: "ls";
|
|
239
|
+
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.";
|
|
240
|
+
readonly input: Schema.Struct<{
|
|
241
|
+
readonly path: Schema.String;
|
|
242
|
+
readonly offset: Schema.optional<Schema.Int>;
|
|
243
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
244
|
+
}>;
|
|
245
|
+
readonly output: Schema.Struct<{
|
|
246
|
+
readonly entries: Schema.$Array<Schema.Struct<{
|
|
247
|
+
readonly name: Schema.String;
|
|
248
|
+
readonly kind: Schema.Literals<readonly ["file", "directory"]>;
|
|
249
|
+
}>>;
|
|
250
|
+
readonly total: Schema.Number;
|
|
251
|
+
readonly truncated: Schema.Boolean;
|
|
252
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
253
|
+
}>;
|
|
254
|
+
readonly capabilities: string[];
|
|
255
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
256
|
+
}, {
|
|
257
|
+
readonly name: "glob";
|
|
258
|
+
readonly description: "Find files through the Smithers Ripgrep Subset v1 contract.";
|
|
259
|
+
readonly input: Schema.Struct<{
|
|
260
|
+
readonly pattern: Schema.NonEmptyString;
|
|
261
|
+
readonly root: Schema.optional<Schema.String>;
|
|
262
|
+
readonly hidden: Schema.optional<Schema.Boolean>;
|
|
263
|
+
readonly noIgnore: Schema.optional<Schema.Boolean>;
|
|
264
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
265
|
+
}>;
|
|
266
|
+
readonly output: Schema.Struct<{
|
|
267
|
+
readonly paths: Schema.$Array<Schema.String>;
|
|
268
|
+
readonly total: Schema.Int;
|
|
269
|
+
readonly truncated: Schema.Boolean;
|
|
270
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
271
|
+
}>;
|
|
272
|
+
readonly capabilities: string[];
|
|
273
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
274
|
+
}, {
|
|
275
|
+
readonly name: "grep";
|
|
276
|
+
readonly description: "Search file contents through the Smithers Ripgrep Subset v1 contract. limit counts matches, each carrying its own context and enclosing definition; fixedStrings searches a literal, and one is retried.";
|
|
277
|
+
readonly input: Schema.Struct<{
|
|
278
|
+
readonly pattern: Schema.String;
|
|
279
|
+
readonly root: Schema.optional<Schema.String>;
|
|
280
|
+
readonly fixedStrings: Schema.optional<Schema.Boolean>;
|
|
281
|
+
readonly ignoreCase: Schema.optional<Schema.Boolean>;
|
|
282
|
+
readonly smartCase: Schema.optional<Schema.Boolean>;
|
|
283
|
+
readonly globs: Schema.optional<Schema.$Array<Schema.String>>;
|
|
284
|
+
readonly beforeContext: Schema.optional<Schema.Int>;
|
|
285
|
+
readonly afterContext: Schema.optional<Schema.Int>;
|
|
286
|
+
readonly context: Schema.optional<Schema.Int>;
|
|
287
|
+
readonly maxCount: Schema.optional<Schema.Int>;
|
|
288
|
+
readonly filesWithMatches: Schema.optional<Schema.Boolean>;
|
|
289
|
+
readonly hidden: Schema.optional<Schema.Boolean>;
|
|
290
|
+
readonly symbols: Schema.optional<Schema.Boolean>;
|
|
291
|
+
readonly noIgnore: Schema.optional<Schema.Boolean>;
|
|
292
|
+
readonly limit: Schema.optional<Schema.Int>;
|
|
293
|
+
}>;
|
|
294
|
+
readonly output: Schema.Struct<{
|
|
295
|
+
readonly matches: Schema.$Array<Schema.Struct<{
|
|
296
|
+
readonly file: Schema.String;
|
|
297
|
+
readonly line: Schema.Int;
|
|
298
|
+
readonly text: Schema.String;
|
|
299
|
+
readonly before: Schema.$Array<Schema.Struct<{
|
|
300
|
+
readonly line: Schema.Int;
|
|
301
|
+
readonly text: Schema.String;
|
|
302
|
+
}>>;
|
|
303
|
+
readonly after: Schema.$Array<Schema.Struct<{
|
|
304
|
+
readonly line: Schema.Int;
|
|
305
|
+
readonly text: Schema.String;
|
|
306
|
+
}>>;
|
|
307
|
+
readonly symbol: Schema.optional<Schema.Struct<{
|
|
308
|
+
readonly kind: Schema.String;
|
|
309
|
+
readonly name: Schema.String;
|
|
310
|
+
readonly startLine: Schema.Int;
|
|
311
|
+
readonly endLine: Schema.Int;
|
|
312
|
+
}>>;
|
|
313
|
+
}>>;
|
|
314
|
+
readonly files: Schema.$Array<Schema.String>;
|
|
315
|
+
readonly filesSearched: Schema.Int;
|
|
316
|
+
readonly skippedBinary: Schema.Int;
|
|
317
|
+
readonly truncated: Schema.Boolean;
|
|
318
|
+
readonly retriedAsLiteral: Schema.optional<Schema.Boolean>;
|
|
319
|
+
readonly notice: Schema.optional<Schema.String>;
|
|
320
|
+
}>;
|
|
321
|
+
readonly capabilities: string[];
|
|
322
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
323
|
+
}];
|
|
324
|
+
readonly prompt: "Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.";
|
|
325
|
+
readonly capabilities: readonly string[];
|
|
326
|
+
readonly effects: import("@smthrs/plan/Effects").Declaration;
|
|
327
|
+
};
|
|
328
|
+
//# sourceMappingURL=Explore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Explore.d.ts","sourceRoot":"","sources":["../../src/Explore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAG,SAAkB,CAAA;AAEtC;;;;;GAKG;AACH,eAAO,MAAM,WAAW,yHACgG,CAAA;AAExH;;;;;GAKG;AACH,eAAO,MAAM,KAAK;;EAIhB,CAAA;AAEF;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAA;AAErC;;;;;GAKG;AACH,eAAO,MAAM,MAAM;;EAIjB,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,QAAQ,OAAO,KAAK,CAAC,IAAI,+CAAY,CAAA;AAWhE;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,MAAM,CAE9C,CAAA;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUU,CAAA;AAEX;;;;;GAKG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAW,CAAA"}
|
|
@@ -0,0 +1,90 @@
|
|
|
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 Explore_exports = {};
|
|
30
|
+
__export(Explore_exports, {
|
|
31
|
+
Input: () => Input,
|
|
32
|
+
Output: () => Output,
|
|
33
|
+
capabilities: () => capabilities,
|
|
34
|
+
description: () => description,
|
|
35
|
+
effects: () => effects,
|
|
36
|
+
effectsFor: () => effectsFor,
|
|
37
|
+
flow: () => flow,
|
|
38
|
+
make: () => make,
|
|
39
|
+
name: () => name
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(Explore_exports);
|
|
42
|
+
var Schema = __toESM(require("effect/Schema"), 1);
|
|
43
|
+
var Glob = __toESM(require("./Glob.js"), 1);
|
|
44
|
+
var Grep = __toESM(require("./Grep.js"), 1);
|
|
45
|
+
var import_Declaration = require("./internal/Declaration.js");
|
|
46
|
+
var Ls = __toESM(require("./Ls.js"), 1);
|
|
47
|
+
var Read = __toESM(require("./Read.js"), 1);
|
|
48
|
+
const name = "explore";
|
|
49
|
+
const description = "Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.";
|
|
50
|
+
const Input = Schema.Struct({
|
|
51
|
+
prompt: Schema.String.annotate({
|
|
52
|
+
description: "The workspace question to investigate."
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
const Output = Schema.Struct({
|
|
56
|
+
findings: Schema.String.annotate({
|
|
57
|
+
description: "Evidence-backed findings with file:line citations."
|
|
58
|
+
})
|
|
59
|
+
});
|
|
60
|
+
const effects = (0, import_Declaration.envelope)({
|
|
61
|
+
tier: "sealed",
|
|
62
|
+
mode: "hermetic",
|
|
63
|
+
reads: ["/**"],
|
|
64
|
+
writes: []
|
|
65
|
+
});
|
|
66
|
+
const effectsFor = (_input) => effects;
|
|
67
|
+
const flows = Object.freeze(
|
|
68
|
+
[
|
|
69
|
+
Read.flow,
|
|
70
|
+
Ls.flow,
|
|
71
|
+
Glob.flow,
|
|
72
|
+
Grep.flow
|
|
73
|
+
]
|
|
74
|
+
);
|
|
75
|
+
const capabilities = Object.freeze(
|
|
76
|
+
[...new Set(flows.flatMap((flow2) => flow2.capabilities))].sort()
|
|
77
|
+
);
|
|
78
|
+
const make = (options) => ({
|
|
79
|
+
name,
|
|
80
|
+
description,
|
|
81
|
+
input: Input,
|
|
82
|
+
output: Output,
|
|
83
|
+
model: options.model,
|
|
84
|
+
flows,
|
|
85
|
+
prompt: description,
|
|
86
|
+
capabilities,
|
|
87
|
+
effects
|
|
88
|
+
});
|
|
89
|
+
const flow = make({});
|
|
90
|
+
//# sourceMappingURL=Explore.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/Explore.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Read-only workspace reconnaissance as a dynamic flow.\n *\n * @since 1.0.0\n */\n\nimport * as Schema from \"effect/Schema\"\nimport * as Glob from \"./Glob.ts\"\nimport * as Grep from \"./Grep.ts\"\nimport { envelope } from \"./internal/Declaration.ts\"\nimport * as Ls from \"./Ls.ts\"\nimport * as Read from \"./Read.ts\"\n\n/**\n * Registry name for the explore flow.\n *\n * @category metadata\n * @since 1.0.0\n */\nexport const name = \"explore\" as const\n\n/**\n * Model-facing description of the explore flow.\n *\n * @category metadata\n * @since 1.0.0\n */\nexport const description =\n \"Investigate the workspace read-only, cite every finding as file:line, report evidence only, and never propose edits.\"\n\n/**\n * Input accepted by the explore flow.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Input = Schema.Struct({\n prompt: Schema.String.annotate({\n description: \"The workspace question to investigate.\"\n })\n})\n\n/**\n * Decoded input accepted by the `explore` flow.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Input = typeof Input.Type\n\n/**\n * Output returned by the explore flow.\n *\n * @category schemas\n * @since 1.0.0\n */\nexport const Output = Schema.Struct({\n findings: Schema.String.annotate({\n description: \"Evidence-backed findings with file:line citations.\"\n })\n})\n\n/**\n * Decoded output returned by the `explore` flow.\n *\n * @category models\n * @since 1.0.0\n */\nexport type Output = typeof Output.Type\n\n/**\n * Static effect envelope for read-only workspace reconnaissance.\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/**\n * Narrows the explore effect declaration for one decoded input.\n *\n * @category effects\n * @since 1.0.0\n */\nexport const effectsFor = (_input: typeof Input.Type) => effects\n\nconst flows = Object.freeze(\n [\n Read.flow,\n Ls.flow,\n Glob.flow,\n Grep.flow\n ] as const\n)\n\n/**\n * Transitive capabilities of the read-only flows available to explore.\n *\n * @category capabilities\n * @since 1.0.0\n */\nexport const capabilities: ReadonlyArray<string> = Object.freeze(\n [...new Set(flows.flatMap((flow) => flow.capabilities))].sort()\n)\n\n/**\n * Constructs an explore flow, optionally pinned to a model.\n *\n * Model selection remains optional so the invoking seat can inject its model.\n *\n * @category constructors\n * @since 1.0.0\n */\nexport const make = (options: {\n readonly model?: string | undefined\n}) => ({\n name,\n description,\n input: Input,\n output: Output,\n model: options.model,\n flows,\n prompt: description,\n capabilities,\n effects\n} as const)\n\n/**\n * Default explore declaration with seat-selected model injection.\n *\n * @category flows\n * @since 1.0.0\n */\nexport const flow = make({})\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,aAAwB;AACxB,WAAsB;AACtB,WAAsB;AACtB,yBAAyB;AACzB,SAAoB;AACpB,WAAsB;AAQf,MAAM,OAAO;AAQb,MAAM,cACX;AAQK,MAAM,QAAQ,OAAO,OAAO;AAAA,EACjC,QAAQ,OAAO,OAAO,SAAS;AAAA,IAC7B,aAAa;AAAA,EACf,CAAC;AACH,CAAC;AAgBM,MAAM,SAAS,OAAO,OAAO;AAAA,EAClC,UAAU,OAAO,OAAO,SAAS;AAAA,IAC/B,aAAa;AAAA,EACf,CAAC;AACH,CAAC;AAgBM,MAAM,cAAU,6BAAS;AAAA,EAC9B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO,CAAC,KAAK;AAAA,EACb,QAAQ,CAAC;AACX,CAAC;AAQM,MAAM,aAAa,CAAC,WAA8B;AAEzD,MAAM,QAAQ,OAAO;AAAA,EACnB;AAAA,IACE,KAAK;AAAA,IACL,GAAG;AAAA,IACH,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AACF;AAQO,MAAM,eAAsC,OAAO;AAAA,EACxD,CAAC,GAAG,IAAI,IAAI,MAAM,QAAQ,CAACA,UAASA,MAAK,YAAY,CAAC,CAAC,EAAE,KAAK;AAChE;AAUO,MAAM,OAAO,CAAC,aAEd;AAAA,EACL;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO,QAAQ;AAAA,EACf;AAAA,EACA,QAAQ;AAAA,EACR;AAAA,EACA;AACF;AAQO,MAAM,OAAO,KAAK,CAAC,CAAC;",
|
|
6
|
+
"names": ["flow"]
|
|
7
|
+
}
|