src-mcp 1.0.1
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/LICENSE +21 -0
- package/README.md +721 -0
- package/assets/languages.json +219 -0
- package/assets/queries/_javascript/highlights.scm +36 -0
- package/assets/queries/_javascript/locals.scm +14 -0
- package/assets/queries/_javascript/tags.scm +88 -0
- package/assets/queries/_jsx/highlights.scm +43 -0
- package/assets/queries/_jsx/indents.scm +6 -0
- package/assets/queries/_jsx/textobjects.scm +7 -0
- package/assets/queries/_typescript/highlights.scm +148 -0
- package/assets/queries/_typescript/indents.scm +5 -0
- package/assets/queries/_typescript/locals.scm +34 -0
- package/assets/queries/_typescript/tags.scm +23 -0
- package/assets/queries/_typescript/textobjects.scm +12 -0
- package/assets/queries/c/highlights.scm +167 -0
- package/assets/queries/c/indents.scm +51 -0
- package/assets/queries/c/injections.scm +2 -0
- package/assets/queries/c/locals.scm +38 -0
- package/assets/queries/c/rainbows.scm +29 -0
- package/assets/queries/c/tags.scm +9 -0
- package/assets/queries/c/textobjects.scm +27 -0
- package/assets/queries/c_sharp/highlights.scm +208 -0
- package/assets/queries/c_sharp/injections.scm +2 -0
- package/assets/queries/c_sharp/tags.scm +21 -0
- package/assets/queries/c_sharp/textobjects.scm +20 -0
- package/assets/queries/cpp/highlights.scm +177 -0
- package/assets/queries/cpp/indents.scm +3 -0
- package/assets/queries/cpp/injections.scm +4 -0
- package/assets/queries/cpp/rainbows.scm +49 -0
- package/assets/queries/cpp/tags.scm +12 -0
- package/assets/queries/cpp/textobjects.scm +7 -0
- package/assets/queries/ecma/highlights.scm +288 -0
- package/assets/queries/ecma/indents.scm +28 -0
- package/assets/queries/ecma/injections.scm +100 -0
- package/assets/queries/ecma/locals.scm +26 -0
- package/assets/queries/ecma/rainbows.scm +28 -0
- package/assets/queries/ecma/textobjects.scm +45 -0
- package/assets/queries/go/highlights.scm +236 -0
- package/assets/queries/go/indents.scm +40 -0
- package/assets/queries/go/injections.scm +92 -0
- package/assets/queries/go/locals.scm +25 -0
- package/assets/queries/go/rainbows.scm +33 -0
- package/assets/queries/go/tags.scm +30 -0
- package/assets/queries/go/textobjects.scm +33 -0
- package/assets/queries/html/highlights.scm +47 -0
- package/assets/queries/html/injections.scm +10 -0
- package/assets/queries/html/rainbows.scm +13 -0
- package/assets/queries/html/textobjects.scm +9 -0
- package/assets/queries/java/highlights.scm +227 -0
- package/assets/queries/java/indents.scm +35 -0
- package/assets/queries/java/injections.scm +2 -0
- package/assets/queries/java/rainbows.scm +35 -0
- package/assets/queries/java/tags.scm +27 -0
- package/assets/queries/java/textobjects.scm +44 -0
- package/assets/queries/javascript/highlights.scm +3 -0
- package/assets/queries/javascript/indents.scm +3 -0
- package/assets/queries/javascript/injections.scm +3 -0
- package/assets/queries/javascript/locals.scm +3 -0
- package/assets/queries/javascript/rainbows.scm +1 -0
- package/assets/queries/javascript/tags.scm +3 -0
- package/assets/queries/javascript/textobjects.scm +3 -0
- package/assets/queries/jsx/highlights.scm +3 -0
- package/assets/queries/jsx/indents.scm +3 -0
- package/assets/queries/jsx/injections.scm +3 -0
- package/assets/queries/jsx/locals.scm +3 -0
- package/assets/queries/jsx/rainbows.scm +9 -0
- package/assets/queries/jsx/tags.scm +3 -0
- package/assets/queries/jsx/textobjects.scm +3 -0
- package/assets/queries/kotlin/folds.scm +17 -0
- package/assets/queries/kotlin/highlights.scm +330 -0
- package/assets/queries/kotlin/indents.scm +44 -0
- package/assets/queries/kotlin/injections.scm +42 -0
- package/assets/queries/kotlin/locals.scm +23 -0
- package/assets/queries/kotlin/tags.scm +12 -0
- package/assets/queries/kotlin/textobjects.scm +45 -0
- package/assets/queries/ocaml/highlights.scm +151 -0
- package/assets/queries/ocaml/indents.scm +12 -0
- package/assets/queries/ocaml/injections.scm +2 -0
- package/assets/queries/ocaml/locals.scm +24 -0
- package/assets/queries/php/highlights.scm +319 -0
- package/assets/queries/php/indents.scm +18 -0
- package/assets/queries/php/injections.scm +25 -0
- package/assets/queries/php/rainbows.scm +15 -0
- package/assets/queries/php/tags.scm +26 -0
- package/assets/queries/php/textobjects.scm +52 -0
- package/assets/queries/python/highlights.scm +308 -0
- package/assets/queries/python/indents.scm +84 -0
- package/assets/queries/python/injections.scm +14 -0
- package/assets/queries/python/locals.scm +50 -0
- package/assets/queries/python/rainbows.scm +30 -0
- package/assets/queries/python/tags.scm +14 -0
- package/assets/queries/python/textobjects.scm +35 -0
- package/assets/queries/ruby/highlights.scm +191 -0
- package/assets/queries/ruby/indents.scm +24 -0
- package/assets/queries/ruby/injections.scm +35 -0
- package/assets/queries/ruby/locals.scm +20 -0
- package/assets/queries/ruby/rainbows.scm +28 -0
- package/assets/queries/ruby/tags.scm +64 -0
- package/assets/queries/ruby/textobjects.scm +56 -0
- package/assets/queries/rust/highlights.scm +514 -0
- package/assets/queries/rust/indents.scm +148 -0
- package/assets/queries/rust/injections.scm +170 -0
- package/assets/queries/rust/locals.scm +28 -0
- package/assets/queries/rust/rainbows.scm +60 -0
- package/assets/queries/rust/tags.scm +26 -0
- package/assets/queries/rust/textobjects.scm +85 -0
- package/assets/queries/scala/highlights.scm +267 -0
- package/assets/queries/scala/indents.scm +22 -0
- package/assets/queries/scala/injections.scm +16 -0
- package/assets/queries/scala/locals.scm +14 -0
- package/assets/queries/scala/textobjects.scm +65 -0
- package/assets/queries/svelte/folds.scm +13 -0
- package/assets/queries/svelte/highlights.scm +38 -0
- package/assets/queries/svelte/indents.scm +24 -0
- package/assets/queries/svelte/injections.scm +46 -0
- package/assets/queries/svelte/locals.scm +1 -0
- package/assets/queries/swift/highlights.scm +200 -0
- package/assets/queries/swift/indents.scm +100 -0
- package/assets/queries/swift/injections.scm +10 -0
- package/assets/queries/swift/locals.scm +19 -0
- package/assets/queries/swift/rainbows.scm +60 -0
- package/assets/queries/swift/textobjects.scm +23 -0
- package/assets/queries/tsx/highlights.scm +3 -0
- package/assets/queries/tsx/indents.scm +3 -0
- package/assets/queries/tsx/injections.scm +3 -0
- package/assets/queries/tsx/locals.scm +3 -0
- package/assets/queries/tsx/rainbows.scm +2 -0
- package/assets/queries/tsx/tags.scm +3 -0
- package/assets/queries/tsx/textobjects.scm +3 -0
- package/assets/queries/typescript/highlights.scm +3 -0
- package/assets/queries/typescript/indents.scm +3 -0
- package/assets/queries/typescript/injections.scm +3 -0
- package/assets/queries/typescript/locals.scm +3 -0
- package/assets/queries/typescript/rainbows.scm +19 -0
- package/assets/queries/typescript/tags.scm +3 -0
- package/assets/queries/typescript/textobjects.scm +3 -0
- package/assets/wasm/tree-sitter-c.wasm +0 -0
- package/assets/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/assets/wasm/tree-sitter-cpp.wasm +0 -0
- package/assets/wasm/tree-sitter-go.wasm +0 -0
- package/assets/wasm/tree-sitter-html.wasm +0 -0
- package/assets/wasm/tree-sitter-java.wasm +0 -0
- package/assets/wasm/tree-sitter-javascript.wasm +0 -0
- package/assets/wasm/tree-sitter-kotlin.wasm +0 -0
- package/assets/wasm/tree-sitter-ocaml.wasm +0 -0
- package/assets/wasm/tree-sitter-php.wasm +0 -0
- package/assets/wasm/tree-sitter-python.wasm +0 -0
- package/assets/wasm/tree-sitter-ruby.wasm +0 -0
- package/assets/wasm/tree-sitter-rust.wasm +0 -0
- package/assets/wasm/tree-sitter-scala.wasm +0 -0
- package/assets/wasm/tree-sitter-svelte.wasm +0 -0
- package/assets/wasm/tree-sitter-swift.wasm +0 -0
- package/assets/wasm/tree-sitter-tsx.wasm +0 -0
- package/assets/wasm/tree-sitter-typescript.wasm +0 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/adapter.d.ts +7 -0
- package/dist/cli/adapter.d.ts.map +1 -0
- package/dist/cli/adapter.js +39 -0
- package/dist/cli/adapter.js.map +1 -0
- package/dist/cli/commands/index.d.ts +24 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +13 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/serve.command.d.ts +21 -0
- package/dist/cli/commands/serve.command.d.ts.map +1 -0
- package/dist/cli/commands/serve.command.js +62 -0
- package/dist/cli/commands/serve.command.js.map +1 -0
- package/dist/cli/commands/version.command.d.ts +2 -0
- package/dist/cli/commands/version.command.d.ts.map +1 -0
- package/dist/cli/commands/version.command.js +12 -0
- package/dist/cli/commands/version.command.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +15 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parser.d.ts +7 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +99 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/config/index.d.ts +24 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +38 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/ast/index.d.ts +82 -0
- package/dist/core/ast/index.d.ts.map +1 -0
- package/dist/core/ast/index.js +204 -0
- package/dist/core/ast/index.js.map +1 -0
- package/dist/core/ast/types.d.ts +152 -0
- package/dist/core/ast/types.d.ts.map +1 -0
- package/dist/core/ast/types.js +5 -0
- package/dist/core/ast/types.js.map +1 -0
- package/dist/core/constants.d.ts +17 -0
- package/dist/core/constants.d.ts.map +1 -0
- package/dist/core/constants.js +49 -0
- package/dist/core/constants.js.map +1 -0
- package/dist/core/embeddings/callgraph.d.ts +98 -0
- package/dist/core/embeddings/callgraph.d.ts.map +1 -0
- package/dist/core/embeddings/callgraph.js +415 -0
- package/dist/core/embeddings/callgraph.js.map +1 -0
- package/dist/core/embeddings/chunker.d.ts +37 -0
- package/dist/core/embeddings/chunker.d.ts.map +1 -0
- package/dist/core/embeddings/chunker.js +298 -0
- package/dist/core/embeddings/chunker.js.map +1 -0
- package/dist/core/embeddings/client.d.ts +30 -0
- package/dist/core/embeddings/client.d.ts.map +1 -0
- package/dist/core/embeddings/client.js +65 -0
- package/dist/core/embeddings/client.js.map +1 -0
- package/dist/core/embeddings/crossfile.d.ts +58 -0
- package/dist/core/embeddings/crossfile.d.ts.map +1 -0
- package/dist/core/embeddings/crossfile.js +202 -0
- package/dist/core/embeddings/crossfile.js.map +1 -0
- package/dist/core/embeddings/enricher.d.ts +53 -0
- package/dist/core/embeddings/enricher.d.ts.map +1 -0
- package/dist/core/embeddings/enricher.js +308 -0
- package/dist/core/embeddings/enricher.js.map +1 -0
- package/dist/core/embeddings/index.d.ts +13 -0
- package/dist/core/embeddings/index.d.ts.map +1 -0
- package/dist/core/embeddings/index.js +20 -0
- package/dist/core/embeddings/index.js.map +1 -0
- package/dist/core/embeddings/reranker.d.ts +41 -0
- package/dist/core/embeddings/reranker.d.ts.map +1 -0
- package/dist/core/embeddings/reranker.js +117 -0
- package/dist/core/embeddings/reranker.js.map +1 -0
- package/dist/core/embeddings/store.d.ts +93 -0
- package/dist/core/embeddings/store.d.ts.map +1 -0
- package/dist/core/embeddings/store.js +304 -0
- package/dist/core/embeddings/store.js.map +1 -0
- package/dist/core/embeddings/types.d.ts +77 -0
- package/dist/core/embeddings/types.d.ts.map +1 -0
- package/dist/core/embeddings/types.js +5 -0
- package/dist/core/embeddings/types.js.map +1 -0
- package/dist/core/embeddings/watcher.d.ts +130 -0
- package/dist/core/embeddings/watcher.d.ts.map +1 -0
- package/dist/core/embeddings/watcher.js +448 -0
- package/dist/core/embeddings/watcher.js.map +1 -0
- package/dist/core/fallback/index.d.ts +26 -0
- package/dist/core/fallback/index.d.ts.map +1 -0
- package/dist/core/fallback/index.js +76 -0
- package/dist/core/fallback/index.js.map +1 -0
- package/dist/core/parser/index.d.ts +64 -0
- package/dist/core/parser/index.d.ts.map +1 -0
- package/dist/core/parser/index.js +205 -0
- package/dist/core/parser/index.js.map +1 -0
- package/dist/core/parser/languages.d.ts +26 -0
- package/dist/core/parser/languages.d.ts.map +1 -0
- package/dist/core/parser/languages.js +101 -0
- package/dist/core/parser/languages.js.map +1 -0
- package/dist/core/queries/helpers.d.ts +72 -0
- package/dist/core/queries/helpers.d.ts.map +1 -0
- package/dist/core/queries/helpers.js +101 -0
- package/dist/core/queries/helpers.js.map +1 -0
- package/dist/core/queries/index.d.ts +144 -0
- package/dist/core/queries/index.d.ts.map +1 -0
- package/dist/core/queries/index.js +396 -0
- package/dist/core/queries/index.js.map +1 -0
- package/dist/core/queries/loader.d.ts +46 -0
- package/dist/core/queries/loader.d.ts.map +1 -0
- package/dist/core/queries/loader.js +216 -0
- package/dist/core/queries/loader.js.map +1 -0
- package/dist/core/queries/patterns.d.ts +10 -0
- package/dist/core/queries/patterns.d.ts.map +1 -0
- package/dist/core/queries/patterns.js +112 -0
- package/dist/core/queries/patterns.js.map +1 -0
- package/dist/core/symbols/index.d.ts +70 -0
- package/dist/core/symbols/index.d.ts.map +1 -0
- package/dist/core/symbols/index.js +359 -0
- package/dist/core/symbols/index.js.map +1 -0
- package/dist/core/unified/index.d.ts +118 -0
- package/dist/core/unified/index.d.ts.map +1 -0
- package/dist/core/unified/index.js +428 -0
- package/dist/core/unified/index.js.map +1 -0
- package/dist/core/utils/assets.d.ts +34 -0
- package/dist/core/utils/assets.d.ts.map +1 -0
- package/dist/core/utils/assets.js +85 -0
- package/dist/core/utils/assets.js.map +1 -0
- package/dist/core/utils/cache.d.ts +43 -0
- package/dist/core/utils/cache.d.ts.map +1 -0
- package/dist/core/utils/cache.js +60 -0
- package/dist/core/utils/cache.js.map +1 -0
- package/dist/core/utils/index.d.ts +7 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/index.js +10 -0
- package/dist/core/utils/index.js.map +1 -0
- package/dist/core/utils/tsconfig.d.ts +34 -0
- package/dist/core/utils/tsconfig.d.ts.map +1 -0
- package/dist/core/utils/tsconfig.js +173 -0
- package/dist/core/utils/tsconfig.js.map +1 -0
- package/dist/features/analyze-file/index.d.ts +15 -0
- package/dist/features/analyze-file/index.d.ts.map +1 -0
- package/dist/features/analyze-file/index.js +164 -0
- package/dist/features/analyze-file/index.js.map +1 -0
- package/dist/features/get-call-graph/index.d.ts +24 -0
- package/dist/features/get-call-graph/index.d.ts.map +1 -0
- package/dist/features/get-call-graph/index.js +246 -0
- package/dist/features/get-call-graph/index.js.map +1 -0
- package/dist/features/get-index-status/index.d.ts +20 -0
- package/dist/features/get-index-status/index.d.ts.map +1 -0
- package/dist/features/get-index-status/index.js +90 -0
- package/dist/features/get-index-status/index.js.map +1 -0
- package/dist/features/index-codebase/index.d.ts +24 -0
- package/dist/features/index-codebase/index.d.ts.map +1 -0
- package/dist/features/index-codebase/index.js +283 -0
- package/dist/features/index-codebase/index.js.map +1 -0
- package/dist/features/index.d.ts +15 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +28 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/info/index.d.ts +19 -0
- package/dist/features/info/index.d.ts.map +1 -0
- package/dist/features/info/index.js +41 -0
- package/dist/features/info/index.js.map +1 -0
- package/dist/features/list-symbols/index.d.ts +22 -0
- package/dist/features/list-symbols/index.d.ts.map +1 -0
- package/dist/features/list-symbols/index.js +74 -0
- package/dist/features/list-symbols/index.js.map +1 -0
- package/dist/features/parse-ast/index.d.ts +12 -0
- package/dist/features/parse-ast/index.d.ts.map +1 -0
- package/dist/features/parse-ast/index.js +71 -0
- package/dist/features/parse-ast/index.js.map +1 -0
- package/dist/features/query-code/index.d.ts +23 -0
- package/dist/features/query-code/index.d.ts.map +1 -0
- package/dist/features/query-code/index.js +96 -0
- package/dist/features/query-code/index.js.map +1 -0
- package/dist/features/search-code/index.d.ts +39 -0
- package/dist/features/search-code/index.d.ts.map +1 -0
- package/dist/features/search-code/index.js +258 -0
- package/dist/features/search-code/index.js.map +1 -0
- package/dist/features/types.d.ts +14 -0
- package/dist/features/types.d.ts.map +1 -0
- package/dist/features/types.js +2 -0
- package/dist/features/types.js.map +1 -0
- package/dist/features/update-index/index.d.ts +24 -0
- package/dist/features/update-index/index.d.ts.map +1 -0
- package/dist/features/update-index/index.js +358 -0
- package/dist/features/update-index/index.js.map +1 -0
- package/dist/features/utils/content.d.ts +30 -0
- package/dist/features/utils/content.d.ts.map +1 -0
- package/dist/features/utils/content.js +49 -0
- package/dist/features/utils/content.js.map +1 -0
- package/dist/features/utils/index.d.ts +6 -0
- package/dist/features/utils/index.d.ts.map +1 -0
- package/dist/features/utils/index.js +8 -0
- package/dist/features/utils/index.js.map +1 -0
- package/dist/features/utils/result.d.ts +37 -0
- package/dist/features/utils/result.d.ts.map +1 -0
- package/dist/features/utils/result.js +53 -0
- package/dist/features/utils/result.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/index.d.ts +9 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +188 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/resources/index.d.ts +3 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +17 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +24 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/adapter.d.ts +4 -0
- package/dist/tools/adapter.d.ts.map +1 -0
- package/dist/tools/adapter.js +28 -0
- package/dist/tools/adapter.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +9 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/colors.d.ts +24 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +30 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +8 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +57 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/spinner.d.ts +11 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +36 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +110 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { parseCode } from "@core/parser";
|
|
3
|
+
import { executePresetQuery, executeQuery, getAvailablePresets, } from "@core/queries";
|
|
4
|
+
import { errorMessage, errorResult, readContent, successResult, } from "@features/utils";
|
|
5
|
+
const presetValues = [
|
|
6
|
+
"functions",
|
|
7
|
+
"classes",
|
|
8
|
+
"imports",
|
|
9
|
+
"exports",
|
|
10
|
+
"comments",
|
|
11
|
+
"strings",
|
|
12
|
+
"variables",
|
|
13
|
+
"types",
|
|
14
|
+
];
|
|
15
|
+
export const queryCodeSchema = z
|
|
16
|
+
.object({
|
|
17
|
+
file_path: z
|
|
18
|
+
.string()
|
|
19
|
+
.optional()
|
|
20
|
+
.describe("Path to the file to query (either file_path or content required)"),
|
|
21
|
+
content: z
|
|
22
|
+
.string()
|
|
23
|
+
.optional()
|
|
24
|
+
.describe("Code content to query directly (either file_path or content required)"),
|
|
25
|
+
language: z
|
|
26
|
+
.string()
|
|
27
|
+
.optional()
|
|
28
|
+
.describe("Language name (auto-detected from file path if not provided)"),
|
|
29
|
+
query: z
|
|
30
|
+
.string()
|
|
31
|
+
.optional()
|
|
32
|
+
.describe("SCM query pattern (either query or preset required)"),
|
|
33
|
+
preset: z
|
|
34
|
+
.enum(presetValues)
|
|
35
|
+
.optional()
|
|
36
|
+
.describe("Preset query name: functions, classes, imports, exports, comments, strings, variables, types"),
|
|
37
|
+
max_matches: z
|
|
38
|
+
.number()
|
|
39
|
+
.int()
|
|
40
|
+
.positive()
|
|
41
|
+
.optional()
|
|
42
|
+
.describe("Maximum number of matches to return"),
|
|
43
|
+
})
|
|
44
|
+
.refine((data) => data.file_path ?? data.content, {
|
|
45
|
+
message: "Either file_path or content must be provided",
|
|
46
|
+
})
|
|
47
|
+
.refine((data) => data.query ?? data.preset, {
|
|
48
|
+
message: "Either query or preset must be provided",
|
|
49
|
+
});
|
|
50
|
+
export async function execute(input) {
|
|
51
|
+
const { file_path, content: inputContent, language, query, preset, max_matches, } = input;
|
|
52
|
+
// Get content
|
|
53
|
+
const contentResult = readContent(file_path, inputContent);
|
|
54
|
+
if (!contentResult.success) {
|
|
55
|
+
return { success: false, error: contentResult.error };
|
|
56
|
+
}
|
|
57
|
+
try {
|
|
58
|
+
// Parse the code
|
|
59
|
+
const parseResult = await parseCode(contentResult.content, {
|
|
60
|
+
language,
|
|
61
|
+
filePath: file_path,
|
|
62
|
+
});
|
|
63
|
+
// Execute query
|
|
64
|
+
let result;
|
|
65
|
+
if (preset) {
|
|
66
|
+
// Check if preset is available for this language
|
|
67
|
+
const availablePresets = getAvailablePresets(parseResult.language);
|
|
68
|
+
if (!availablePresets.includes(preset)) {
|
|
69
|
+
return errorMessage(`Preset '${preset}' is not available for ${parseResult.language}. Available presets: ${availablePresets.join(", ")}`);
|
|
70
|
+
}
|
|
71
|
+
result = executePresetQuery(parseResult.tree, parseResult.languageInstance, parseResult.language, preset, { maxMatches: max_matches });
|
|
72
|
+
}
|
|
73
|
+
else if (query) {
|
|
74
|
+
result = executeQuery(parseResult.tree, parseResult.languageInstance, query, parseResult.language, { maxMatches: max_matches });
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return errorMessage("Either query or preset must be provided");
|
|
78
|
+
}
|
|
79
|
+
return successResult({
|
|
80
|
+
matches: result.matches,
|
|
81
|
+
count: result.count,
|
|
82
|
+
language: result.language,
|
|
83
|
+
query: result.query,
|
|
84
|
+
}, `Found ${String(result.count)} match${result.count === 1 ? "" : "es"} in ${parseResult.language} code`);
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
return errorResult("query", error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
export const queryCodeFeature = {
|
|
91
|
+
name: "query_code",
|
|
92
|
+
description: "Execute Tree-sitter SCM queries on code to find patterns. Use preset queries (functions, classes, imports, exports, comments, strings, variables, types) or custom SCM query patterns.",
|
|
93
|
+
schema: queryCodeSchema,
|
|
94
|
+
execute,
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/query-code/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Code Feature
|
|
3
|
+
*
|
|
4
|
+
* Performs hybrid search on indexed codebase combining:
|
|
5
|
+
* 1. Vector similarity search (semantic embeddings via Ollama)
|
|
6
|
+
* 2. Full-text search (BM25 keyword matching)
|
|
7
|
+
* 3. RRF (Reciprocal Rank Fusion) to combine results
|
|
8
|
+
*
|
|
9
|
+
* Supports three search modes:
|
|
10
|
+
* - 'hybrid' (default): Best of both vector and keyword search
|
|
11
|
+
* - 'vector': Semantic search only
|
|
12
|
+
* - 'fts': Keyword search only
|
|
13
|
+
*
|
|
14
|
+
* Optional features:
|
|
15
|
+
* - LLM re-ranking for improved relevance
|
|
16
|
+
* - Call context to show callers/callees for each result
|
|
17
|
+
*/
|
|
18
|
+
import { z } from "zod";
|
|
19
|
+
import type { Feature, FeatureResult } from "@features/types";
|
|
20
|
+
export declare const searchCodeSchema: z.ZodObject<{
|
|
21
|
+
query: z.ZodString;
|
|
22
|
+
directory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
23
|
+
limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
24
|
+
threshold: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
mode: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
|
|
26
|
+
vector: "vector";
|
|
27
|
+
fts: "fts";
|
|
28
|
+
hybrid: "hybrid";
|
|
29
|
+
}>>>;
|
|
30
|
+
rerank: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
31
|
+
includeCallContext: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type SearchCodeInput = z.infer<typeof searchCodeSchema>;
|
|
34
|
+
/**
|
|
35
|
+
* Execute the search_code feature
|
|
36
|
+
*/
|
|
37
|
+
export declare function execute(input: SearchCodeInput): Promise<FeatureResult>;
|
|
38
|
+
export declare const searchCodeFeature: Feature<typeof searchCodeSchema>;
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/search-code/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAa9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAyC3B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAkG/D;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAoK5E;AAED,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,OAAO,gBAAgB,CAM9D,CAAC"}
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search Code Feature
|
|
3
|
+
*
|
|
4
|
+
* Performs hybrid search on indexed codebase combining:
|
|
5
|
+
* 1. Vector similarity search (semantic embeddings via Ollama)
|
|
6
|
+
* 2. Full-text search (BM25 keyword matching)
|
|
7
|
+
* 3. RRF (Reciprocal Rank Fusion) to combine results
|
|
8
|
+
*
|
|
9
|
+
* Supports three search modes:
|
|
10
|
+
* - 'hybrid' (default): Best of both vector and keyword search
|
|
11
|
+
* - 'vector': Semantic search only
|
|
12
|
+
* - 'fts': Keyword search only
|
|
13
|
+
*
|
|
14
|
+
* Optional features:
|
|
15
|
+
* - LLM re-ranking for improved relevance
|
|
16
|
+
* - Call context to show callers/callees for each result
|
|
17
|
+
*/
|
|
18
|
+
import { z } from "zod";
|
|
19
|
+
import * as fs from "node:fs";
|
|
20
|
+
import * as path from "node:path";
|
|
21
|
+
import ignore from "ignore";
|
|
22
|
+
import { EMBEDDING_CONFIG } from "@config";
|
|
23
|
+
import { createOllamaClient, createVectorStore, rerank, buildCallGraph, getCallContext, shouldIndexFile, } from "@core/embeddings";
|
|
24
|
+
export const searchCodeSchema = z.object({
|
|
25
|
+
query: z.string().min(1).describe("Natural language search query"),
|
|
26
|
+
directory: z
|
|
27
|
+
.string()
|
|
28
|
+
.optional()
|
|
29
|
+
.default(".")
|
|
30
|
+
.describe("Path to the indexed directory (defaults to current directory)"),
|
|
31
|
+
limit: z
|
|
32
|
+
.number()
|
|
33
|
+
.int()
|
|
34
|
+
.positive()
|
|
35
|
+
.optional()
|
|
36
|
+
.default(10)
|
|
37
|
+
.describe("Maximum number of results to return"),
|
|
38
|
+
threshold: z
|
|
39
|
+
.number()
|
|
40
|
+
.min(0)
|
|
41
|
+
.max(2)
|
|
42
|
+
.optional()
|
|
43
|
+
.describe("Maximum distance threshold for results (lower = more similar)"),
|
|
44
|
+
mode: z
|
|
45
|
+
.enum(["vector", "fts", "hybrid"])
|
|
46
|
+
.optional()
|
|
47
|
+
.default("hybrid")
|
|
48
|
+
.describe("Search mode: 'vector' (semantic only), 'fts' (keyword only), 'hybrid' (combined with RRF fusion)"),
|
|
49
|
+
rerank: z
|
|
50
|
+
.boolean()
|
|
51
|
+
.optional()
|
|
52
|
+
.default(true)
|
|
53
|
+
.describe("Enable LLM re-ranking for improved relevance (enabled by default)"),
|
|
54
|
+
includeCallContext: z
|
|
55
|
+
.boolean()
|
|
56
|
+
.optional()
|
|
57
|
+
.default(true)
|
|
58
|
+
.describe("Include caller/callee information for each result (uses cached call graph)"),
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Create gitignore filter
|
|
62
|
+
*/
|
|
63
|
+
function createIgnoreFilter(directory) {
|
|
64
|
+
const ig = ignore();
|
|
65
|
+
ig.add(["node_modules", ".git", "dist", "build", ".src-index"]);
|
|
66
|
+
const gitignorePath = path.join(directory, ".gitignore");
|
|
67
|
+
if (fs.existsSync(gitignorePath)) {
|
|
68
|
+
const content = fs.readFileSync(gitignorePath, "utf-8");
|
|
69
|
+
ig.add(content);
|
|
70
|
+
}
|
|
71
|
+
return ig;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Check if hidden file/folder
|
|
75
|
+
*/
|
|
76
|
+
function isHidden(name) {
|
|
77
|
+
return name.startsWith(".");
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Recursively collect files for call graph
|
|
81
|
+
*/
|
|
82
|
+
function collectFiles(dir, ig, baseDir) {
|
|
83
|
+
const files = [];
|
|
84
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
85
|
+
for (const entry of entries) {
|
|
86
|
+
if (isHidden(entry.name)) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
const fullPath = path.join(dir, entry.name);
|
|
90
|
+
const relativePath = path.relative(baseDir, fullPath).replace(/\\/g, "/");
|
|
91
|
+
if (ig.ignores(relativePath)) {
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (entry.isDirectory()) {
|
|
95
|
+
files.push(...collectFiles(fullPath, ig, baseDir));
|
|
96
|
+
}
|
|
97
|
+
else if (entry.isFile() && shouldIndexFile(entry.name)) {
|
|
98
|
+
files.push(fullPath);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return files;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Format search results for output
|
|
105
|
+
*/
|
|
106
|
+
function formatResults(results, baseDir) {
|
|
107
|
+
return results.map((r) => ({
|
|
108
|
+
filePath: path.relative(baseDir, r.chunk.filePath),
|
|
109
|
+
language: r.chunk.language,
|
|
110
|
+
startLine: r.chunk.startLine,
|
|
111
|
+
endLine: r.chunk.endLine,
|
|
112
|
+
content: r.chunk.content,
|
|
113
|
+
score: r.score,
|
|
114
|
+
symbolName: r.chunk.symbolName,
|
|
115
|
+
symbolType: r.chunk.symbolType,
|
|
116
|
+
}));
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Execute the search_code feature
|
|
120
|
+
*/
|
|
121
|
+
export async function execute(input) {
|
|
122
|
+
const { query, directory, limit, threshold, mode, rerank: enableRerank, includeCallContext, } = input;
|
|
123
|
+
// Validate directory exists
|
|
124
|
+
if (!fs.existsSync(directory)) {
|
|
125
|
+
return {
|
|
126
|
+
success: false,
|
|
127
|
+
error: `Directory not found: ${directory}`,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
const absoluteDir = path.resolve(directory);
|
|
131
|
+
// Initialize components
|
|
132
|
+
const ollamaClient = createOllamaClient(EMBEDDING_CONFIG);
|
|
133
|
+
const vectorStore = createVectorStore(absoluteDir, EMBEDDING_CONFIG);
|
|
134
|
+
// Check if index exists
|
|
135
|
+
if (!vectorStore.exists()) {
|
|
136
|
+
return {
|
|
137
|
+
success: false,
|
|
138
|
+
error: `No index found for directory. Run index_codebase first: ${absoluteDir}`,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
try {
|
|
142
|
+
// Check Ollama health
|
|
143
|
+
const health = await ollamaClient.healthCheck();
|
|
144
|
+
if (!health.ok) {
|
|
145
|
+
return {
|
|
146
|
+
success: false,
|
|
147
|
+
error: health.error ?? "Ollama is not available",
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// Connect to vector store
|
|
151
|
+
await vectorStore.connect();
|
|
152
|
+
// Generate query embedding
|
|
153
|
+
const queryVector = await ollamaClient.embed(query);
|
|
154
|
+
// Search for similar chunks using hybrid search (vector + BM25 + RRF)
|
|
155
|
+
let results = await vectorStore.searchHybrid(queryVector, query, limit, {
|
|
156
|
+
mode: mode,
|
|
157
|
+
});
|
|
158
|
+
// Apply threshold filter if specified (only for vector mode where lower = better)
|
|
159
|
+
// For hybrid/fts modes, RRF scores are higher = better, so threshold is ignored
|
|
160
|
+
if (threshold !== undefined && mode === "vector") {
|
|
161
|
+
results = results.filter((r) => r.score <= threshold);
|
|
162
|
+
}
|
|
163
|
+
// Apply LLM re-ranking if enabled (default: true)
|
|
164
|
+
if (enableRerank && results.length > 0) {
|
|
165
|
+
results = await rerank(query, results, {
|
|
166
|
+
ollamaBaseUrl: EMBEDDING_CONFIG.ollamaBaseUrl,
|
|
167
|
+
model: EMBEDDING_CONFIG.rerankModel,
|
|
168
|
+
maxResults: limit,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
vectorStore.close();
|
|
172
|
+
let formattedResults = formatResults(results, absoluteDir);
|
|
173
|
+
// Add call context if requested
|
|
174
|
+
if (includeCallContext && formattedResults.length > 0) {
|
|
175
|
+
// Build call graph for the directory
|
|
176
|
+
const ig = createIgnoreFilter(absoluteDir);
|
|
177
|
+
const files = collectFiles(absoluteDir, ig, absoluteDir);
|
|
178
|
+
const fileContents = files.map((f) => ({
|
|
179
|
+
path: f,
|
|
180
|
+
content: fs.readFileSync(f, "utf-8"),
|
|
181
|
+
}));
|
|
182
|
+
const callGraph = await buildCallGraph(fileContents);
|
|
183
|
+
// Add call context to each result that has a symbol name
|
|
184
|
+
formattedResults = formattedResults.map((result) => {
|
|
185
|
+
if (!result.symbolName) {
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
const fullPath = path.join(absoluteDir, result.filePath);
|
|
189
|
+
const context = getCallContext(callGraph, fullPath, result.symbolName);
|
|
190
|
+
if (context) {
|
|
191
|
+
return {
|
|
192
|
+
...result,
|
|
193
|
+
callContext: {
|
|
194
|
+
callers: context.callers.map((c) => c.name),
|
|
195
|
+
callees: context.callees.map((c) => c.name),
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
return result;
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
const output = {
|
|
203
|
+
query,
|
|
204
|
+
directory: absoluteDir,
|
|
205
|
+
resultsCount: formattedResults.length,
|
|
206
|
+
results: formattedResults,
|
|
207
|
+
};
|
|
208
|
+
if (formattedResults.length === 0) {
|
|
209
|
+
return {
|
|
210
|
+
success: true,
|
|
211
|
+
message: "No matching code found",
|
|
212
|
+
data: output,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
// Build text message with results
|
|
216
|
+
const resultLines = formattedResults.map((r, i) => {
|
|
217
|
+
const location = `${r.filePath}:${String(r.startLine)}-${String(r.endLine)}`;
|
|
218
|
+
const symbol = r.symbolName
|
|
219
|
+
? ` (${r.symbolType ?? "symbol"}: ${r.symbolName})`
|
|
220
|
+
: "";
|
|
221
|
+
const preview = r.content.slice(0, 100).replace(/\n/g, " ");
|
|
222
|
+
let callInfo = "";
|
|
223
|
+
if (r.callContext) {
|
|
224
|
+
const callers = r.callContext.callers.length > 0
|
|
225
|
+
? `Called by: ${r.callContext.callers.slice(0, 3).join(", ")}${r.callContext.callers.length > 3 ? "..." : ""}`
|
|
226
|
+
: "";
|
|
227
|
+
const callees = r.callContext.callees.length > 0
|
|
228
|
+
? `Calls: ${r.callContext.callees.slice(0, 3).join(", ")}${r.callContext.callees.length > 3 ? "..." : ""}`
|
|
229
|
+
: "";
|
|
230
|
+
if (callers || callees) {
|
|
231
|
+
callInfo = `\n ${[callers, callees].filter(Boolean).join(" | ")}`;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return `${String(i + 1)}. [${r.language}] ${location}${symbol}\n ${preview}...${callInfo}`;
|
|
235
|
+
});
|
|
236
|
+
const message = `Found ${String(formattedResults.length)} results for "${query}":\n\n${resultLines.join("\n\n")}`;
|
|
237
|
+
return {
|
|
238
|
+
success: true,
|
|
239
|
+
message,
|
|
240
|
+
data: output,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
catch (err) {
|
|
244
|
+
vectorStore.close();
|
|
245
|
+
const errorMsg = err instanceof Error ? err.message : String(err);
|
|
246
|
+
return {
|
|
247
|
+
success: false,
|
|
248
|
+
error: `Search failed: ${errorMsg}`,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
export const searchCodeFeature = {
|
|
253
|
+
name: "search_code",
|
|
254
|
+
description: "Search code semantically using natural language queries. USE THIS to find code by concept/meaning (e.g., 'authentication logic', 'error handling'). Requires index_codebase first. Returns relevant code chunks with file locations, function names, and call relationships (who calls what).",
|
|
255
|
+
schema: searchCodeSchema,
|
|
256
|
+
execute,
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/search-code/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
export interface FeatureResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
data?: unknown;
|
|
5
|
+
message?: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface Feature<TInput extends z.ZodType = z.ZodType> {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
schema: TInput;
|
|
12
|
+
execute: (input: z.infer<TInput>) => FeatureResult | Promise<FeatureResult>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/features/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Update Index Feature
|
|
3
|
+
*
|
|
4
|
+
* Incrementally updates the codebase index by:
|
|
5
|
+
* 1. Detecting files that have changed since last indexing
|
|
6
|
+
* 2. Re-indexing only the changed files
|
|
7
|
+
* 3. Removing deleted files from the index
|
|
8
|
+
*
|
|
9
|
+
* Uses SHA-256 hash comparison to detect real content changes.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import type { Feature, FeatureResult } from "@features/types";
|
|
13
|
+
export declare const updateIndexSchema: z.ZodObject<{
|
|
14
|
+
directory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
15
|
+
dryRun: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
16
|
+
force: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type UpdateIndexInput = z.infer<typeof updateIndexSchema>;
|
|
19
|
+
/**
|
|
20
|
+
* Execute the update_index feature
|
|
21
|
+
*/
|
|
22
|
+
export declare function execute(input: UpdateIndexInput): Promise<FeatureResult>;
|
|
23
|
+
export declare const updateIndexFeature: Feature<typeof updateIndexSchema>;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/update-index/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgB9D,eAAO,MAAM,iBAAiB;;;;iBAgB5B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AA6GjE;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CA+L7E;AAuFD,eAAO,MAAM,kBAAkB,EAAE,OAAO,CAAC,OAAO,iBAAiB,CAMhE,CAAC"}
|