@mrclrchtr/supi-code-intelligence 3.2.0 → 4.0.0
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/README.md +154 -435
- package/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/README.md +72 -62
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/package.json +4 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +9 -9
- package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +70 -41
- package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +16 -13
- package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +2 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +6 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-diagnostics.ts +5 -95
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -3
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +44 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +47 -65
- package/node_modules/@mrclrchtr/supi-lsp/src/provider/lsp-semantic-provider.ts +132 -79
- package/node_modules/@mrclrchtr/supi-lsp/src/provider/refactor-planning.ts +6 -14
- package/node_modules/@mrclrchtr/supi-lsp/src/session/readiness.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-controller.ts +87 -75
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registration.ts +5 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts} +163 -71
- package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +4 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +4 -21
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/rust/tree-sitter-rust.wasm.json +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +3 -3
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-kotlin-wasm.mjs +6 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-sql-wasm.mjs +18 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/vendor-wasm.mjs +17 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/api.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/coordinates.ts +20 -41
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/index.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/language.ts +7 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/operation-support.ts +40 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/session.ts +9 -7
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/call-sites.ts +6 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/callees.ts +76 -37
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +172 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +201 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +224 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +118 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +350 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +980 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +97 -0
- package/node_modules/yaml/util.js +2 -0
- package/package.json +9 -8
- package/src/analysis/architecture/discovery.ts +213 -227
- package/src/analysis/architecture/manifest.ts +147 -0
- package/src/analysis/architecture/model.ts +119 -52
- package/src/analysis/architecture/workspace-config.ts +229 -0
- package/src/analysis/{coverage/coverage-warnings.ts → capability/capability-warnings.ts} +41 -78
- package/src/analysis/evidence.ts +22 -5
- package/src/analysis/health/diagnostics.ts +183 -0
- package/src/analysis/health/recovery.ts +39 -0
- package/src/analysis/health/signals.ts +20 -0
- package/src/analysis/instruction-files.ts +60 -48
- package/src/analysis/provider.ts +31 -12
- package/src/analysis/readiness.ts +29 -9
- package/src/{tool/refactor-apply → analysis/refactor}/apply.ts +120 -26
- package/src/analysis/refactor/position.ts +6 -0
- package/src/analysis/refactor/safety.ts +4 -11
- package/src/analysis/references/locations.ts +20 -0
- package/src/analysis/references/semantic-refs.ts +21 -11
- package/src/{tool/graph → analysis/relations}/implementations.ts +27 -23
- package/src/analysis/relations/provider-locations.ts +179 -0
- package/src/{tool/graph → analysis/relations}/references.ts +25 -21
- package/src/{tool/graph → analysis/relations}/types.ts +4 -19
- package/src/analysis/search/ast-scan.ts +376 -0
- package/src/analysis/search/call-name.ts +68 -0
- package/src/analysis/search/deadline.ts +84 -0
- package/src/analysis/search/paths.ts +88 -0
- package/src/analysis/search/pattern.ts +290 -246
- package/src/analysis/target/anchored.ts +72 -27
- package/src/analysis/target/file.ts +292 -132
- package/src/analysis/target/identity.ts +237 -0
- package/src/analysis/target/symbol.ts +169 -86
- package/src/analysis/target/types.ts +36 -4
- package/src/api.ts +21 -4
- package/src/app/app.ts +53 -46
- package/src/extension.ts +68 -66
- package/src/session/capability-adapter.ts +26 -118
- package/src/session/find-types.ts +38 -0
- package/src/session/find-workflow.ts +141 -0
- package/src/session/graph/collect.ts +181 -0
- package/src/session/graph-types.ts +77 -0
- package/src/session/graph-workflow.ts +152 -0
- package/src/session/health-types.ts +134 -0
- package/src/session/health-workflow.ts +341 -0
- package/src/session/input/common.ts +216 -0
- package/src/session/input/health-refactor.ts +169 -0
- package/src/session/input/workflows.ts +211 -0
- package/src/session/inspect/collect.ts +304 -0
- package/src/session/inspect/file-point.ts +69 -0
- package/src/session/inspect-types.ts +78 -0
- package/src/session/inspect-workflow.ts +157 -0
- package/src/session/orientation/collect.ts +718 -0
- package/src/session/orientation/context-facts.ts +319 -0
- package/src/session/orientation/context-sections.ts +352 -0
- package/src/session/orientation-types.ts +97 -0
- package/src/session/orientation-workflow.ts +307 -0
- package/src/session/refactor-plans.ts +1 -1
- package/src/session/refactor-types.ts +51 -0
- package/src/session/refactor-workflow.ts +263 -0
- package/src/session/session.ts +263 -234
- package/src/session/target-candidates.ts +60 -0
- package/src/session/target-input.ts +98 -0
- package/src/session/target-store.ts +132 -29
- package/src/session/target-workflow.ts +254 -302
- package/src/session/workflow-control.ts +35 -0
- package/src/substrate/lsp/lifecycle.ts +9 -22
- package/src/substrate/lsp/maintenance.ts +75 -0
- package/src/substrate/lsp/recovery.ts +41 -25
- package/src/substrate/lsp/settings.ts +1 -10
- package/src/substrate/lsp/state.ts +2 -13
- package/src/tool/find/ast-kinds.ts +35 -0
- package/src/tool/find/execute.ts +22 -113
- package/src/tool/find/markdown.ts +85 -221
- package/src/tool/find/modes.ts +5 -0
- package/src/tool/find/render.ts +57 -0
- package/src/tool/find/tui.ts +1 -1
- package/src/tool/graph/calls-md.ts +17 -30
- package/src/tool/graph/execute.ts +42 -103
- package/src/tool/graph/implementations-md.ts +32 -54
- package/src/tool/graph/markdown-base.ts +73 -196
- package/src/tool/graph/provider-location-md.ts +9 -0
- package/src/tool/graph/references-md.ts +34 -27
- package/src/tool/graph/tui.ts +8 -26
- package/src/tool/guidance.ts +31 -48
- package/src/tool/health/execute.ts +15 -56
- package/src/tool/health/markdown.ts +199 -148
- package/src/tool/health/semantic-state.ts +24 -0
- package/src/tool/health/tui.ts +262 -36
- package/src/tool/infra/error-results.ts +0 -2
- package/src/tool/infra/progress.ts +2 -2
- package/src/tool/infra/workflow-control.ts +11 -0
- package/src/tool/inspect/execute.ts +23 -63
- package/src/tool/inspect/markdown.ts +114 -95
- package/src/tool/inspect/tui.ts +7 -7
- package/src/tool/orientation/execute.ts +50 -37
- package/src/tool/orientation/markdown.ts +26 -31
- package/src/tool/orientation/tui.ts +41 -39
- package/src/tool/refactor-apply/execute.ts +23 -9
- package/src/tool/refactor-apply/tui.ts +7 -3
- package/src/tool/refactor-plan/execute.ts +44 -61
- package/src/tool/refactor-plan/markdown.ts +33 -56
- package/src/tool/refactor-plan/tui.ts +10 -11
- package/src/tool/register.ts +6 -5
- package/src/tool/resolve/execute.ts +23 -69
- package/src/tool/resolve/markdown.ts +125 -114
- package/src/tool/resolve/tui.ts +11 -9
- package/src/tool/result/assembly.ts +125 -0
- package/src/tool/result/errors.ts +20 -34
- package/src/tool/result/find.ts +107 -21
- package/src/tool/result/graph.ts +163 -64
- package/src/tool/result/health.ts +170 -73
- package/src/tool/result/inspect.ts +183 -41
- package/src/tool/result/orientation.ts +118 -16
- package/src/tool/result/refactor.ts +101 -21
- package/src/tool/result/resolve.ts +243 -80
- package/src/tool/result/types.ts +100 -56
- package/src/tool/schemas.ts +160 -231
- package/src/tool/specs.ts +57 -168
- package/src/types/details.ts +2 -4
- package/src/types/execution.ts +6 -15
- package/src/types/index.ts +2 -4
- package/src/types/tool-names.ts +1 -2
- package/src/ui/footer.ts +3 -3
- package/src/ui/markdown/gather.ts +17 -65
- package/src/ui/markdown/overview-data.ts +143 -21
- package/src/ui/markdown/overview.ts +27 -8
- package/src/ui/markdown/types.ts +12 -16
- package/src/ui/status-command.ts +39 -31
- package/src/ui/status-overlay.ts +23 -15
- package/src/ui/tui/common.ts +121 -74
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-augmentation.ts +0 -82
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-context.ts +0 -116
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-display.ts +0 -69
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/capability-index.ts +0 -24
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/client-pool.ts +0 -33
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/diagnostic-store.ts +0 -51
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-stale-resync.ts +0 -47
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/recovery-coordinator.ts +0 -37
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/workspace-router.ts +0 -44
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/src/analysis/brief/directory.ts +0 -324
- package/src/analysis/brief/enrich.ts +0 -157
- package/src/analysis/brief/file.ts +0 -84
- package/src/analysis/brief/inventory.ts +0 -177
- package/src/analysis/brief/main.ts +0 -176
- package/src/analysis/brief/models.ts +0 -75
- package/src/analysis/brief/public-brief.ts +0 -179
- package/src/analysis/brief/summarize.ts +0 -208
- package/src/analysis/brief/types.ts +0 -27
- package/src/analysis/brief/use-case.ts +0 -264
- package/src/analysis/search/ripgrep.ts +0 -558
- package/src/analysis/signals/git.ts +0 -89
- package/src/analysis/signals/project.ts +0 -189
- package/src/analysis/target/bridge.ts +0 -152
- package/src/analysis/target/file-resolution.ts +0 -125
- package/src/analysis/target/planner.ts +0 -92
- package/src/analysis/target/query.ts +0 -74
- package/src/analysis/target/resolve-common.ts +0 -115
- package/src/analysis/target/service.ts +0 -229
- package/src/analysis/tests/likely-tests.ts +0 -174
- package/src/analysis/tests/test-discovery.ts +0 -540
- package/src/analysis/tests/vitest.ts +0 -87
- package/src/app/manager.ts +0 -65
- package/src/substrate/lsp/diagnostic-injection.ts +0 -203
- package/src/substrate/lsp/overrides.ts +0 -132
- package/src/tool/find/orchestrate.ts +0 -317
- package/src/tool/find/semantic-search.ts +0 -128
- package/src/tool/graph/collect-relation.ts +0 -372
- package/src/tool/graph/orchestrate.ts +0 -259
- package/src/tool/health/orchestrate.ts +0 -151
- package/src/tool/health/sections/diagnostics.ts +0 -182
- package/src/tool/health/sections/recovery.ts +0 -89
- package/src/tool/health/sections/signals.ts +0 -89
- package/src/tool/impact/analysis.ts +0 -220
- package/src/tool/impact/change-set-impact.ts +0 -152
- package/src/tool/impact/execute.ts +0 -125
- package/src/tool/impact/file-level-impact.ts +0 -82
- package/src/tool/impact/markdown.ts +0 -283
- package/src/tool/impact/orchestrate.ts +0 -97
- package/src/tool/impact/result.ts +0 -2
- package/src/tool/impact/single-impact.ts +0 -90
- package/src/tool/impact/tui.ts +0 -39
- package/src/tool/impact/types.ts +0 -34
- package/src/tool/infra/cross-field.ts +0 -335
- package/src/tool/infra/pipeline.ts +0 -334
- package/src/tool/infra/readiness-message.ts +0 -5
- package/src/tool/inspect/orchestrate.ts +0 -154
- package/src/tool/orientation/deps.ts +0 -63
- package/src/tool/orientation/mode.ts +0 -139
- package/src/tool/orientation/orchestrate.ts +0 -475
- package/src/tool/orientation/precise-target.ts +0 -253
- package/src/tool/params.ts +0 -15
- package/src/tool/refactor-apply/markdown.ts +0 -118
- package/src/tool/refactor-apply/orchestrate.ts +0 -84
- package/src/tool/refactor-plan/orchestrate.ts +0 -355
- package/src/tool/resolve/orchestrate.ts +0 -38
- package/src/tool/result/impact.ts +0 -50
- package/src/ui/markdown/brief.ts +0 -218
- package/src/ui/message-renderer.ts +0 -121
- package/src/ui/tui/index.ts +0 -37
- /package/src/{tool/graph → analysis/relations}/callees.ts +0 -0
|
@@ -1,332 +1,263 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Session-owned Target workflow.
|
|
3
3
|
*
|
|
4
|
-
* Turns
|
|
5
|
-
*
|
|
6
|
-
* graph, impact, orientation, or refactor analysis begins.
|
|
7
|
-
*
|
|
8
|
-
* One policy-driven method. Small interface, deep implementation.
|
|
9
|
-
* Two adapters (production capability adapter + test adapter) justify
|
|
10
|
-
* the seam.
|
|
11
|
-
*
|
|
12
|
-
* @mrclrchtr/supi-code-intelligence — internal, not exported via api.ts
|
|
4
|
+
* Turns one exact target selector into immutable resolved-target facts before
|
|
5
|
+
* graph, Orientation, resolve, or refactor analysis begins.
|
|
13
6
|
*/
|
|
14
7
|
|
|
15
8
|
import { existsSync } from "node:fs";
|
|
16
|
-
import { normalizePath } from "../analysis/search/
|
|
9
|
+
import { normalizePath, resolveScope } from "../analysis/search/paths.ts";
|
|
17
10
|
import { resolveAnchoredSymbolTarget } from "../analysis/target/anchored.ts";
|
|
18
|
-
import { resolveFileTargetGroup } from "../analysis/target/file.ts";
|
|
11
|
+
import { resolveFileTargetGroup, validateFileTargetDiscovery } from "../analysis/target/file.ts";
|
|
12
|
+
import {
|
|
13
|
+
canonicalDeclarationKind,
|
|
14
|
+
refineTargetOutcomeIdentity,
|
|
15
|
+
} from "../analysis/target/identity.ts";
|
|
19
16
|
import { resolveSymbolTarget } from "../analysis/target/symbol.ts";
|
|
20
|
-
import type { ResolvedTargetData, TargetOutcome } from "../analysis/target/types.ts";
|
|
21
|
-
import type { CapabilityAdapter } from "./capability-adapter.ts";
|
|
22
17
|
import type {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
18
|
+
ResolvedTargetData,
|
|
19
|
+
ResolvedTargetGroupData,
|
|
20
|
+
TargetOutcome,
|
|
21
|
+
} from "../analysis/target/types.ts";
|
|
22
|
+
import type { CapabilityAdapter } from "./capability-adapter.ts";
|
|
23
|
+
import { parseTargetInput } from "./input/common.ts";
|
|
24
|
+
import { registerTargetCandidates, type TargetWorkflowCandidate } from "./target-candidates.ts";
|
|
25
|
+
import type { TargetInput, TargetSymbolKind } from "./target-input.ts";
|
|
26
|
+
import {
|
|
27
|
+
computeFileFingerprint,
|
|
28
|
+
type TargetLookupResult,
|
|
29
|
+
type TargetRegistrationInput,
|
|
30
|
+
type TargetRegistrationOutput,
|
|
31
|
+
type TargetStoreEntry,
|
|
28
32
|
} from "./target-store.ts";
|
|
29
33
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
/** Public target input shape — mirrors the union of code_* tool params. */
|
|
33
|
-
export interface TargetWorkflowInput {
|
|
34
|
-
/** Resolved target handle from code_resolve. Wins over everything else. */
|
|
35
|
-
targetId?: string;
|
|
36
|
-
/** File path (absolute or workspace-relative). */
|
|
37
|
-
file?: string;
|
|
38
|
-
/** 1-based line for anchored resolution. */
|
|
39
|
-
line?: number;
|
|
40
|
-
/** 1-based UTF-16 column for anchored resolution. */
|
|
41
|
-
character?: number;
|
|
42
|
-
/** Symbol name for workspace symbol query resolution. */
|
|
43
|
-
symbol?: string;
|
|
44
|
-
/** Preferred symbol kind for disambiguation. */
|
|
45
|
-
kind?: string;
|
|
46
|
-
/** Only exported symbols. */
|
|
47
|
-
exportedOnly?: boolean;
|
|
48
|
-
/** Maximum candidates for disambiguation. */
|
|
49
|
-
maxResults?: number;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// ── Policy ────────────────────────────────────────────────────────────
|
|
34
|
+
export type { TargetInput } from "./target-input.ts";
|
|
53
35
|
|
|
54
|
-
/**
|
|
55
|
-
* Target workflow policy — what the caller allows or requires.
|
|
56
|
-
*
|
|
57
|
-
* Each tool passes the policy that matches its public contract.
|
|
58
|
-
*/
|
|
36
|
+
/** Target workflow policy selected by the intent-level session entry. */
|
|
59
37
|
export interface TargetWorkflowPolicy {
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Whether the resolved target must carry a name anchor.
|
|
68
|
-
* Callee lookups and rename require this; references do not.
|
|
69
|
-
*/
|
|
70
|
-
nameAnchorRequired: boolean;
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Whether to wait for semantic (LSP) readiness before symbol-
|
|
74
|
-
* query or anchored resolution. Set false for tool paths that
|
|
75
|
-
* only need targetId expansion or file-level resolution.
|
|
76
|
-
*/
|
|
77
|
-
waitForSemantic: boolean;
|
|
38
|
+
/** Whether a file-level selector is valid for this intent. */
|
|
39
|
+
readonly fileLevelAllowed: boolean;
|
|
40
|
+
/** Whether a strict name anchor is required. */
|
|
41
|
+
readonly nameAnchorRequired: boolean;
|
|
42
|
+
/** Maximum displayed disambiguation candidates. */
|
|
43
|
+
readonly maxResults?: number;
|
|
78
44
|
}
|
|
79
45
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
/** Typed outcome of the target workflow — no markdown, no mutated params. */
|
|
46
|
+
/** Typed Target workflow outcome. */
|
|
83
47
|
export type TargetWorkflowOutcome =
|
|
48
|
+
| { kind: "resolved"; entry: Readonly<TargetStoreEntry>; notes: readonly string[] }
|
|
84
49
|
| {
|
|
85
|
-
kind: "
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
50
|
+
kind: "target-group";
|
|
51
|
+
file: string;
|
|
52
|
+
confidence: ResolvedTargetData["confidence"];
|
|
53
|
+
discoveryProvenance: ResolvedTargetGroupData["discoveryProvenance"];
|
|
54
|
+
targets: ReadonlyArray<Readonly<TargetStoreEntry>>;
|
|
55
|
+
totalCount: number;
|
|
56
|
+
omittedCount: number;
|
|
57
|
+
unknownNestingCount: number;
|
|
93
58
|
}
|
|
94
59
|
| {
|
|
95
60
|
kind: "disambiguation";
|
|
96
|
-
candidates:
|
|
97
|
-
targetId: string;
|
|
98
|
-
name: string;
|
|
99
|
-
kind: string | null;
|
|
100
|
-
container: string | null;
|
|
101
|
-
file: string;
|
|
102
|
-
line: number;
|
|
103
|
-
character: number;
|
|
104
|
-
rank: number;
|
|
105
|
-
anchorKind: AnchorKind;
|
|
106
|
-
}>;
|
|
61
|
+
candidates: ReadonlyArray<TargetWorkflowCandidate>;
|
|
107
62
|
omittedCount: number;
|
|
108
63
|
}
|
|
109
64
|
| {
|
|
110
|
-
kind: "
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
kind: "unavailable";
|
|
115
|
-
reason: string;
|
|
65
|
+
kind: "kind-mismatch";
|
|
66
|
+
requestedKind: TargetSymbolKind;
|
|
67
|
+
candidates: ReadonlyArray<TargetWorkflowCandidate>;
|
|
68
|
+
omittedCount: number;
|
|
116
69
|
}
|
|
117
|
-
| {
|
|
118
|
-
|
|
119
|
-
kind: "no-target";
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
// ── Dependencies ──────────────────────────────────────────────────────
|
|
70
|
+
| { kind: "invalid-input"; message: string }
|
|
71
|
+
| { kind: "unavailable"; reason: string };
|
|
123
72
|
|
|
73
|
+
/** Dependencies hidden behind the Workspace code-intelligence session seam. */
|
|
124
74
|
export interface TargetWorkflowDeps {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
/** Session-scoped target store lookup. */
|
|
130
|
-
lookupTargetId: (targetId: string) => TargetLookupResult;
|
|
131
|
-
/** Session-scoped target registration. */
|
|
132
|
-
registerTarget: (input: TargetRegistrationInput) => TargetRegistrationOutput;
|
|
75
|
+
readonly cwd: string;
|
|
76
|
+
readonly capability: CapabilityAdapter;
|
|
77
|
+
readonly lookupTargetId: (targetId: string) => TargetLookupResult;
|
|
78
|
+
readonly registerTarget: (input: TargetRegistrationInput) => TargetRegistrationOutput;
|
|
133
79
|
}
|
|
134
80
|
|
|
135
|
-
// ── Entry point ───────────────────────────────────────────────────────
|
|
136
|
-
|
|
137
81
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* Order of precedence:
|
|
142
|
-
* 1. targetId (store lookup + freshness check)
|
|
143
|
-
* 2. anchored coordinates (file + line + character → provider-backed)
|
|
144
|
-
* 3. symbol query (workspace symbol → provider-backed)
|
|
145
|
-
* 4. file-only (when policy.fileLevelAllowed)
|
|
82
|
+
* Resolve exactly one canonical selector into target facts or a typed failure.
|
|
83
|
+
* New and refined targets are always LSP-first; handle lookup deliberately
|
|
84
|
+
* bypasses readiness so existing handles can still serve structural consumers.
|
|
146
85
|
*/
|
|
147
86
|
export async function resolveTargetWorkflow(
|
|
148
|
-
input:
|
|
87
|
+
input: TargetInput,
|
|
149
88
|
policy: TargetWorkflowPolicy,
|
|
150
89
|
deps: TargetWorkflowDeps,
|
|
151
90
|
): Promise<TargetWorkflowOutcome> {
|
|
152
|
-
|
|
153
|
-
if (input
|
|
154
|
-
|
|
155
|
-
if (result.kind === "unavailable") {
|
|
156
|
-
return { kind: "invalid-input", message: result.reason };
|
|
157
|
-
}
|
|
158
|
-
const entry = result.entry;
|
|
159
|
-
|
|
160
|
-
// Anchor policy: name-anchor-required tools must refuse declaration anchors
|
|
161
|
-
if (policy.nameAnchorRequired && entry.anchorKind === "declaration") {
|
|
162
|
-
return {
|
|
163
|
-
kind: "invalid-input",
|
|
164
|
-
message:
|
|
165
|
-
"The target resolved to a declaration anchor, not a name anchor. " +
|
|
166
|
-
"Re-resolve via `code_resolve` when the LSP has indexed the file, " +
|
|
167
|
-
"or pass `file` + `line` + `character` anchored on the identifier directly.",
|
|
168
|
-
};
|
|
169
|
-
}
|
|
91
|
+
const parsed = parseTargetInput(input, ["handle", "anchor", "symbol", "file"]);
|
|
92
|
+
if (parsed.kind === "invalid-input") return parsed;
|
|
93
|
+
const target = parsed.value;
|
|
170
94
|
|
|
171
|
-
|
|
172
|
-
return
|
|
95
|
+
if ("handle" in target) {
|
|
96
|
+
return resolveHandle(target.handle, policy, deps);
|
|
173
97
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (input.file && input.line != null && input.character != null) {
|
|
177
|
-
return resolveAnchoredWorkflow(input, policy, deps);
|
|
98
|
+
if ("anchor" in target) {
|
|
99
|
+
return resolveAnchoredWorkflow(target.anchor, policy, deps);
|
|
178
100
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if (input.symbol) {
|
|
182
|
-
return resolveSymbolWorkflow(input, policy, deps);
|
|
101
|
+
if ("symbol" in target) {
|
|
102
|
+
return resolveSymbolWorkflow(target.symbol, policy, deps);
|
|
183
103
|
}
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
kind: "invalid-input",
|
|
190
|
-
message:
|
|
191
|
-
"File-level target resolution is not allowed for this tool. " +
|
|
192
|
-
"Provide anchored coordinates (`file`, `line`, `character`) or a `symbol`.",
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
return resolveFileOnlyWorkflow(input, deps);
|
|
104
|
+
if (!policy.fileLevelAllowed) {
|
|
105
|
+
return {
|
|
106
|
+
kind: "invalid-input",
|
|
107
|
+
message: "This workflow requires a handle, anchored point, or symbol target.",
|
|
108
|
+
};
|
|
196
109
|
}
|
|
197
|
-
|
|
198
|
-
// ── 5. Nothing provided ────────────────────────────────────────────
|
|
199
|
-
return { kind: "no-target" };
|
|
110
|
+
return resolveFileOnlyWorkflow(target.file, policy.maxResults ?? 10, deps);
|
|
200
111
|
}
|
|
201
112
|
|
|
202
|
-
|
|
113
|
+
function resolveHandle(
|
|
114
|
+
handle: string,
|
|
115
|
+
policy: TargetWorkflowPolicy,
|
|
116
|
+
deps: TargetWorkflowDeps,
|
|
117
|
+
): TargetWorkflowOutcome {
|
|
118
|
+
const result = deps.lookupTargetId(handle);
|
|
119
|
+
if (result.kind === "unavailable") {
|
|
120
|
+
return { kind: "invalid-input", message: result.reason };
|
|
121
|
+
}
|
|
122
|
+
if (policy.nameAnchorRequired && result.entry.anchorKind === "declaration") {
|
|
123
|
+
return {
|
|
124
|
+
kind: "invalid-input",
|
|
125
|
+
message:
|
|
126
|
+
"The target has a declaration anchor rather than the required name anchor. " +
|
|
127
|
+
"Resolve an identifier coordinate with code_resolve and retry.",
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
return { kind: "resolved", entry: immutableEntry(result.entry), notes: [] };
|
|
131
|
+
}
|
|
203
132
|
|
|
204
133
|
async function resolveAnchoredWorkflow(
|
|
205
|
-
|
|
134
|
+
anchor: { file: string; line: number; character: number },
|
|
206
135
|
policy: TargetWorkflowPolicy,
|
|
207
136
|
deps: TargetWorkflowDeps,
|
|
208
137
|
): Promise<TargetWorkflowOutcome> {
|
|
209
|
-
|
|
210
|
-
const file = normalizePath(input.file!, deps.cwd);
|
|
138
|
+
const file = normalizePath(anchor.file, deps.cwd);
|
|
211
139
|
if (!existsSync(file)) {
|
|
212
|
-
return { kind: "invalid-input", message: `File not found: \`${
|
|
140
|
+
return { kind: "invalid-input", message: `File not found: \`${anchor.file}\`` };
|
|
213
141
|
}
|
|
214
142
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
if (readiness.kind === "unavailable") {
|
|
228
|
-
return { kind: "unavailable", reason: readiness.reason };
|
|
229
|
-
}
|
|
143
|
+
const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
|
|
144
|
+
kind: "file",
|
|
145
|
+
file,
|
|
146
|
+
});
|
|
147
|
+
if (readiness.kind === "timeout") {
|
|
148
|
+
return {
|
|
149
|
+
kind: "unavailable",
|
|
150
|
+
reason: "LSP readiness timed out. Retry shortly or inspect code_health.",
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
if (readiness.kind === "unavailable") {
|
|
154
|
+
return { kind: "unavailable", reason: readiness.reason };
|
|
230
155
|
}
|
|
231
156
|
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
157
|
+
const outcome = await resolveAnchoredSymbolTarget(
|
|
158
|
+
file,
|
|
159
|
+
anchor.line,
|
|
160
|
+
anchor.character,
|
|
161
|
+
deps.capability.getProvider(deps.cwd),
|
|
162
|
+
);
|
|
163
|
+
return toWorkflowOutcome(
|
|
164
|
+
await refineTargetOutcomeIdentity(
|
|
165
|
+
outcome,
|
|
166
|
+
deps.cwd,
|
|
167
|
+
deps.capability.getStructuralProvider(deps.cwd) ?? undefined,
|
|
168
|
+
),
|
|
169
|
+
policy,
|
|
170
|
+
deps,
|
|
171
|
+
);
|
|
237
172
|
}
|
|
238
173
|
|
|
239
174
|
async function resolveSymbolWorkflow(
|
|
240
|
-
|
|
175
|
+
symbol: { query: string; scope?: string; symbolKind?: TargetSymbolKind },
|
|
241
176
|
policy: TargetWorkflowPolicy,
|
|
242
177
|
deps: TargetWorkflowDeps,
|
|
243
178
|
): Promise<TargetWorkflowOutcome> {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
kind: "unavailable",
|
|
254
|
-
reason:
|
|
255
|
-
"Symbol query requires an active LSP. Enable LSP and retry, or use anchored coordinates.",
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
} else {
|
|
259
|
-
return {
|
|
260
|
-
kind: "unavailable",
|
|
261
|
-
reason:
|
|
262
|
-
"Symbol query requires an active LSP. Enable LSP and retry, or use anchored coordinates.",
|
|
263
|
-
};
|
|
179
|
+
if (!symbol.query.trim()) {
|
|
180
|
+
return { kind: "invalid-input", message: "Symbol query must not be empty." };
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
let scope: string | undefined;
|
|
184
|
+
if (symbol.scope !== undefined) {
|
|
185
|
+
const resolved = resolveScope(symbol.scope, deps.cwd);
|
|
186
|
+
if (resolved.kind === "error") {
|
|
187
|
+
return { kind: "invalid-input", message: resolved.reason };
|
|
264
188
|
}
|
|
189
|
+
scope = resolved.path;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
|
|
193
|
+
kind: "workspace",
|
|
194
|
+
});
|
|
195
|
+
if (readiness.kind === "timeout") {
|
|
196
|
+
return { kind: "unavailable", reason: "LSP readiness timed out. Retry shortly." };
|
|
197
|
+
}
|
|
198
|
+
if (readiness.kind === "unavailable") {
|
|
199
|
+
return { kind: "unavailable", reason: readiness.reason };
|
|
265
200
|
}
|
|
266
201
|
|
|
267
|
-
// Re-read provider after potential wait
|
|
268
202
|
const provider = deps.capability.getSemanticProvider(deps.cwd);
|
|
269
203
|
if (!provider) {
|
|
270
204
|
return {
|
|
271
205
|
kind: "unavailable",
|
|
272
|
-
reason: "Symbol
|
|
206
|
+
reason: "Symbol resolution requires an active semantic provider.",
|
|
273
207
|
};
|
|
274
208
|
}
|
|
275
|
-
// biome-ignore lint/style/noNonNullAssertion: symbol non-null by caller guard
|
|
276
|
-
const outcome = await resolveSymbolTarget(input.symbol!, deps.cwd, provider, {
|
|
277
|
-
kind: input.kind,
|
|
278
|
-
exportedOnly: input.exportedOnly,
|
|
279
|
-
maxResults: input.maxResults,
|
|
280
|
-
});
|
|
281
209
|
|
|
282
|
-
|
|
210
|
+
const outcome = await resolveSymbolTarget(symbol.query, deps.cwd, provider, {
|
|
211
|
+
path: scope,
|
|
212
|
+
kind: symbol.symbolKind,
|
|
213
|
+
maxResults: policy.maxResults,
|
|
214
|
+
});
|
|
215
|
+
return toWorkflowOutcome(
|
|
216
|
+
await refineTargetOutcomeIdentity(
|
|
217
|
+
outcome,
|
|
218
|
+
deps.cwd,
|
|
219
|
+
deps.capability.getStructuralProvider(deps.cwd) ?? undefined,
|
|
220
|
+
),
|
|
221
|
+
policy,
|
|
222
|
+
deps,
|
|
223
|
+
);
|
|
283
224
|
}
|
|
284
225
|
|
|
285
226
|
async function resolveFileOnlyWorkflow(
|
|
286
|
-
|
|
227
|
+
requestedFile: string,
|
|
228
|
+
maxResults: number,
|
|
287
229
|
deps: TargetWorkflowDeps,
|
|
288
230
|
): Promise<TargetWorkflowOutcome> {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
231
|
+
const validation = validateFileTargetDiscovery(requestedFile, deps.cwd);
|
|
232
|
+
if (validation.kind === "invalid-input") return validation;
|
|
233
|
+
const file = validation.file;
|
|
234
|
+
|
|
235
|
+
const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
|
|
236
|
+
kind: "file",
|
|
237
|
+
file,
|
|
238
|
+
});
|
|
239
|
+
if (readiness.kind === "timeout") {
|
|
240
|
+
return { kind: "unavailable", reason: "LSP readiness timed out. Retry shortly." };
|
|
241
|
+
}
|
|
242
|
+
if (readiness.kind === "unavailable") {
|
|
243
|
+
return { kind: "unavailable", reason: readiness.reason };
|
|
293
244
|
}
|
|
294
245
|
|
|
295
246
|
const result = await resolveFileTargetGroup(file, deps.cwd, {
|
|
296
247
|
semantic: deps.capability.getSemanticProvider(deps.cwd) ?? undefined,
|
|
297
248
|
structural: deps.capability.getStructuralProvider(deps.cwd) ?? undefined,
|
|
298
249
|
});
|
|
299
|
-
if (result.kind === "
|
|
300
|
-
|
|
250
|
+
if (result.kind === "invalid-input") return result;
|
|
251
|
+
if (result.kind === "unavailable") {
|
|
252
|
+
return { kind: "unavailable", reason: result.message };
|
|
301
253
|
}
|
|
302
254
|
|
|
303
|
-
|
|
304
|
-
const group = result.group;
|
|
305
|
-
const entry = deps.registerTarget({
|
|
306
|
-
file: group.file,
|
|
307
|
-
position: { line: 0, character: 0 },
|
|
308
|
-
displayLine: 1,
|
|
309
|
-
displayCharacter: 1,
|
|
310
|
-
name: group.displayName ?? null,
|
|
311
|
-
kind: null,
|
|
312
|
-
confidence: "structural",
|
|
313
|
-
provenance: "file-level",
|
|
314
|
-
anchorKind: "name",
|
|
315
|
-
container: null,
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
return { kind: "resolved", entry: entry.entry, notes: [] };
|
|
255
|
+
return registerTargetGroup(result.group, deps, maxResults);
|
|
319
256
|
}
|
|
320
257
|
|
|
321
|
-
// ── Outcome conversion ────────────────────────────────────────────────
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* Convert a raw {@link TargetOutcome} from analysis/target/* into a
|
|
325
|
-
* {@link TargetWorkflowOutcome} with registered handles.
|
|
326
|
-
*/
|
|
327
258
|
function toWorkflowOutcome(
|
|
328
259
|
outcome: TargetOutcome,
|
|
329
|
-
|
|
260
|
+
policy: TargetWorkflowPolicy,
|
|
330
261
|
deps: TargetWorkflowDeps,
|
|
331
262
|
): TargetWorkflowOutcome {
|
|
332
263
|
if (outcome.kind === "error") {
|
|
@@ -334,97 +265,118 @@ function toWorkflowOutcome(
|
|
|
334
265
|
}
|
|
335
266
|
|
|
336
267
|
if (outcome.kind === "resolved") {
|
|
337
|
-
|
|
268
|
+
if (policy.nameAnchorRequired && outcome.target.anchorKind === "declaration") {
|
|
269
|
+
return {
|
|
270
|
+
kind: "invalid-input",
|
|
271
|
+
message:
|
|
272
|
+
"The target resolved only to a declaration anchor. Resolve the identifier coordinate and retry.",
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
const registered = registerFromTargetData(outcome.target, deps);
|
|
338
276
|
return {
|
|
339
277
|
kind: "resolved",
|
|
340
|
-
entry:
|
|
278
|
+
entry: immutableEntry(registered.entry),
|
|
341
279
|
notes: buildResolutionNotes(outcome.target),
|
|
342
280
|
};
|
|
343
281
|
}
|
|
344
282
|
|
|
345
|
-
if (outcome.kind === "
|
|
346
|
-
|
|
347
|
-
const registered = deps.registerTarget({
|
|
348
|
-
file: c.file,
|
|
349
|
-
position: { line: c.line - 1, character: c.character - 1 },
|
|
350
|
-
displayLine: c.line,
|
|
351
|
-
displayCharacter: c.character,
|
|
352
|
-
name: c.name,
|
|
353
|
-
kind: c.kind,
|
|
354
|
-
confidence: "semantic",
|
|
355
|
-
provenance: "symbol-query",
|
|
356
|
-
anchorKind: c.anchorKind ?? "declaration",
|
|
357
|
-
container: c.container,
|
|
358
|
-
});
|
|
359
|
-
return {
|
|
360
|
-
targetId: registered.targetId,
|
|
361
|
-
name: c.name,
|
|
362
|
-
kind: c.kind,
|
|
363
|
-
container: c.container,
|
|
364
|
-
file: c.file,
|
|
365
|
-
line: c.line,
|
|
366
|
-
character: c.character,
|
|
367
|
-
rank: idx + 1,
|
|
368
|
-
anchorKind: c.anchorKind ?? "declaration",
|
|
369
|
-
};
|
|
370
|
-
});
|
|
371
|
-
return { kind: "disambiguation", candidates, omittedCount: outcome.omittedCount };
|
|
283
|
+
if (outcome.kind === "group") {
|
|
284
|
+
return registerTargetGroup(outcome.group, deps, policy.maxResults ?? 10);
|
|
372
285
|
}
|
|
373
286
|
|
|
374
|
-
|
|
375
|
-
return
|
|
287
|
+
const candidates = registerTargetCandidates(outcome.candidates, deps.registerTarget);
|
|
288
|
+
return outcome.kind === "kind-mismatch"
|
|
289
|
+
? {
|
|
290
|
+
kind: "kind-mismatch",
|
|
291
|
+
requestedKind: outcome.requestedKind,
|
|
292
|
+
candidates,
|
|
293
|
+
omittedCount: outcome.omittedCount,
|
|
294
|
+
}
|
|
295
|
+
: {
|
|
296
|
+
kind: "disambiguation",
|
|
297
|
+
candidates,
|
|
298
|
+
omittedCount: outcome.omittedCount,
|
|
299
|
+
};
|
|
376
300
|
}
|
|
377
301
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
302
|
+
function registerTargetGroup(
|
|
303
|
+
group: ResolvedTargetGroupData,
|
|
304
|
+
deps: TargetWorkflowDeps,
|
|
305
|
+
maxResults: number,
|
|
306
|
+
): TargetWorkflowOutcome {
|
|
307
|
+
const totalCount = group.targets.length;
|
|
308
|
+
const visibleTargets = group.targets.slice(0, Math.max(0, maxResults));
|
|
309
|
+
const fingerprint = computeFileFingerprint(group.file);
|
|
310
|
+
const fileFingerprint = fingerprint.kind === "ok" ? fingerprint.fingerprint : "unfingerprinted";
|
|
311
|
+
const targets = visibleTargets.map((target) =>
|
|
312
|
+
immutableEntry(registerFromTargetData(target, deps, fileFingerprint).entry),
|
|
313
|
+
);
|
|
314
|
+
return Object.freeze({
|
|
315
|
+
kind: "target-group",
|
|
316
|
+
file: group.file,
|
|
317
|
+
confidence: group.confidence,
|
|
318
|
+
discoveryProvenance: Object.freeze([...group.discoveryProvenance]),
|
|
319
|
+
targets: Object.freeze(targets),
|
|
320
|
+
totalCount,
|
|
321
|
+
omittedCount: totalCount - targets.length,
|
|
322
|
+
unknownNestingCount: group.unknownNestingCount,
|
|
323
|
+
});
|
|
393
324
|
}
|
|
394
325
|
|
|
395
|
-
|
|
396
|
-
function buildResolutionNotes(target: ResolvedTargetData): string[] {
|
|
326
|
+
function buildResolutionNotes(target: ResolvedTargetData): readonly string[] {
|
|
397
327
|
const notes: string[] = [];
|
|
398
328
|
if (target.resolution?.snapped) {
|
|
399
|
-
const src = target.resolution.source;
|
|
400
329
|
notes.push(
|
|
401
|
-
`
|
|
330
|
+
`Resolved from a declaration header and snapped to the identifier (${target.resolution.source}).`,
|
|
402
331
|
);
|
|
403
332
|
}
|
|
404
333
|
if (target.resolution?.source === "structural-identifier") {
|
|
405
|
-
notes.push(
|
|
406
|
-
"_Note: Resolved via tree-sitter structural evidence; semantic (LSP) symbols were unavailable._",
|
|
407
|
-
);
|
|
334
|
+
notes.push("Resolved from provider-backed structural identifier evidence.");
|
|
408
335
|
}
|
|
409
|
-
return notes;
|
|
336
|
+
return Object.freeze(notes);
|
|
410
337
|
}
|
|
411
338
|
|
|
412
|
-
/** Register a ResolvedTargetData and return the store entry. */
|
|
413
339
|
function registerFromTargetData(
|
|
414
340
|
target: ResolvedTargetData,
|
|
415
341
|
deps: TargetWorkflowDeps,
|
|
342
|
+
fileFingerprint?: string,
|
|
416
343
|
): TargetRegistrationOutput {
|
|
417
344
|
return deps.registerTarget({
|
|
418
345
|
file: target.file,
|
|
419
346
|
position: target.position,
|
|
347
|
+
declarationPosition: {
|
|
348
|
+
line: target.declarationAnchor.line - 1,
|
|
349
|
+
character: target.declarationAnchor.character - 1,
|
|
350
|
+
},
|
|
351
|
+
declarationOccurrence: target.declarationOccurrence,
|
|
420
352
|
displayLine: target.displayLine,
|
|
421
353
|
displayCharacter: target.displayCharacter,
|
|
422
354
|
name: target.name,
|
|
423
355
|
kind: target.kind,
|
|
356
|
+
identityKind: target.identityKind ?? canonicalDeclarationKind(target.kind),
|
|
424
357
|
confidence: target.confidence,
|
|
425
|
-
provenance:
|
|
358
|
+
provenance: target.provenance,
|
|
426
359
|
anchorKind: target.anchorKind,
|
|
427
360
|
container: target.container,
|
|
428
361
|
resolution: target.resolution,
|
|
362
|
+
fileFingerprint,
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
function immutableEntry(entry: TargetStoreEntry): Readonly<TargetStoreEntry> {
|
|
367
|
+
return Object.freeze({
|
|
368
|
+
...entry,
|
|
369
|
+
position: Object.freeze({ ...entry.position }),
|
|
370
|
+
provenance: Object.freeze([...entry.provenance]),
|
|
371
|
+
declarationPosition: entry.declarationPosition
|
|
372
|
+
? Object.freeze({ ...entry.declarationPosition })
|
|
373
|
+
: entry.declarationPosition,
|
|
374
|
+
resolution: entry.resolution
|
|
375
|
+
? Object.freeze({
|
|
376
|
+
...entry.resolution,
|
|
377
|
+
requested: Object.freeze({ ...entry.resolution.requested }),
|
|
378
|
+
resolved: Object.freeze({ ...entry.resolution.resolved }),
|
|
379
|
+
})
|
|
380
|
+
: undefined,
|
|
429
381
|
});
|
|
430
382
|
}
|