@mrclrchtr/supi-code-intelligence 3.2.0 → 4.1.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 +157 -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/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
- 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-core/src/settings/settings-action-menu.ts +1 -0
- package/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
- package/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
- 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 -8
- 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/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
- 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/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
- 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 -8
- 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/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
- 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/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
- 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 +10 -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 +54 -44
- package/src/extension.ts +21 -97
- package/src/headless.ts +41 -0
- 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 +26 -53
- 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 +5 -13
- package/src/substrate/workspace-provider-host.ts +129 -0
- 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/substrate/tree-sitter/lifecycle.ts +0 -52
- 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
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of a read-only code-provider query.
|
|
3
|
+
*
|
|
4
|
+
* `completed` includes successful empty observations, such as an empty
|
|
5
|
+
* reference list or a protocol-level null hover. `partial` preserves usable
|
|
6
|
+
* data when a multi-provider query could not complete every branch.
|
|
7
|
+
* `unavailable` means the query did not establish a result.
|
|
8
|
+
*/
|
|
9
|
+
export type CodeQueryResult<T> =
|
|
10
|
+
| { readonly kind: "completed"; readonly data: T }
|
|
11
|
+
| { readonly kind: "partial"; readonly data: T; readonly reason: string }
|
|
12
|
+
| { readonly kind: "unavailable"; readonly reason: string };
|
|
13
|
+
|
|
14
|
+
/** Construct a successfully completed code-query result, including empty data. */
|
|
15
|
+
export function completedCodeQuery<T>(data: T): CodeQueryResult<T> {
|
|
16
|
+
return { kind: "completed", data };
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/** Construct a usable but incomplete code-query result. */
|
|
20
|
+
export function partialCodeQuery<T>(data: T, reason: string): CodeQueryResult<T> {
|
|
21
|
+
return { kind: "partial", data, reason };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Construct a code-query result that could not be established. */
|
|
25
|
+
export function unavailableCodeQuery<T = never>(reason: string): CodeQueryResult<T> {
|
|
26
|
+
return { kind: "unavailable", reason };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Map completed or partial query data while preserving its availability state. */
|
|
30
|
+
export function mapCodeQueryResult<T, U>(
|
|
31
|
+
result: CodeQueryResult<T>,
|
|
32
|
+
map: (data: T) => U,
|
|
33
|
+
): CodeQueryResult<U> {
|
|
34
|
+
switch (result.kind) {
|
|
35
|
+
case "completed":
|
|
36
|
+
return completedCodeQuery(map(result.data));
|
|
37
|
+
case "partial":
|
|
38
|
+
return partialCodeQuery(map(result.data), result.reason);
|
|
39
|
+
case "unavailable":
|
|
40
|
+
return unavailableCodeQuery(result.reason);
|
|
41
|
+
}
|
|
42
|
+
}
|
package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts
CHANGED
|
@@ -34,6 +34,9 @@ export interface SymbolAnchor {
|
|
|
34
34
|
character: number;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/** Provider-backed nesting evidence for a declaration reported within one document. */
|
|
38
|
+
export type DeclarationNesting = "top-level" | "nested" | "unknown";
|
|
39
|
+
|
|
37
40
|
/**
|
|
38
41
|
* A discovered symbol / declaration.
|
|
39
42
|
*
|
|
@@ -51,9 +54,21 @@ export interface CodeSymbol {
|
|
|
51
54
|
file: string;
|
|
52
55
|
declarationAnchor: SymbolAnchor;
|
|
53
56
|
nameAnchor?: SymbolAnchor;
|
|
57
|
+
/** Named symbolic container when reported; absence does not prove top-level nesting. */
|
|
54
58
|
container?: string | null;
|
|
55
59
|
}
|
|
56
60
|
|
|
61
|
+
/**
|
|
62
|
+
* A document-scoped declaration with explicit hierarchy evidence.
|
|
63
|
+
*
|
|
64
|
+
* `unknown` means the provider returned a flat observation without an actual
|
|
65
|
+
* hierarchy. A reported container name remains metadata and does not promote
|
|
66
|
+
* a flat observation to known nesting.
|
|
67
|
+
*/
|
|
68
|
+
export interface DocumentCodeSymbol extends CodeSymbol {
|
|
69
|
+
nesting: DeclarationNesting;
|
|
70
|
+
}
|
|
71
|
+
|
|
57
72
|
// ── Result types ───────────────────────────────────────────────────────
|
|
58
73
|
|
|
59
74
|
/**
|
|
@@ -143,11 +158,8 @@ export interface WorkspaceEdit {
|
|
|
143
158
|
|
|
144
159
|
/**
|
|
145
160
|
* Supported refactor operation names for the current semantic planning path.
|
|
146
|
-
*
|
|
147
|
-
* `rename` is kept as a legacy alias for the public rename-only surface.
|
|
148
161
|
*/
|
|
149
162
|
export type RefactorOperation =
|
|
150
|
-
| "rename"
|
|
151
163
|
| "rename_symbol"
|
|
152
164
|
| "extract_function"
|
|
153
165
|
| "extract_variable"
|
|
@@ -156,13 +168,6 @@ export type RefactorOperation =
|
|
|
156
168
|
| "update_imports"
|
|
157
169
|
| "delete_dead_code";
|
|
158
170
|
|
|
159
|
-
/** Normalize legacy refactor aliases to their canonical operation names. */
|
|
160
|
-
export function normalizeRefactorOperation(
|
|
161
|
-
operation: RefactorOperation,
|
|
162
|
-
): Exclude<RefactorOperation, "rename"> {
|
|
163
|
-
return operation === "rename" ? "rename_symbol" : operation;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
171
|
/**
|
|
167
172
|
* Operation-aware refactor planning request.
|
|
168
173
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrclrchtr/supi-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "SuPi core — shared infrastructure for SuPi extensions (XML context tags, config system)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
},
|
|
51
51
|
"main": "src/api.ts",
|
|
52
52
|
"exports": {
|
|
53
|
-
"./abort-utils": "./src/abort-utils.ts",
|
|
54
53
|
"./api": "./src/api.ts",
|
|
55
54
|
"./config": "./src/config.ts",
|
|
56
55
|
"./context": "./src/context.ts",
|
|
@@ -71,7 +70,6 @@
|
|
|
71
70
|
"./status-spinner": "./src/status-spinner.ts",
|
|
72
71
|
"./terminal": "./src/terminal.ts",
|
|
73
72
|
"./tool-framework": "./src/tool-framework.ts",
|
|
74
|
-
"./prompt-surface": "./src/prompt-surface.ts"
|
|
75
|
-
"./types": "./src/types.ts"
|
|
73
|
+
"./prompt-surface": "./src/prompt-surface.ts"
|
|
76
74
|
}
|
|
77
75
|
}
|
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
// For lighter imports, use one of the domain subpaths directly
|
|
7
7
|
// (e.g. @mrclrchtr/supi-core/config, @mrclrchtr/supi-core/context).
|
|
8
8
|
|
|
9
|
-
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
10
|
-
export * from "./abort-utils.ts";
|
|
11
9
|
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
12
10
|
export * from "./config.ts";
|
|
13
11
|
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
@@ -42,5 +40,3 @@ export * from "./status-spinner.ts";
|
|
|
42
40
|
export * from "./terminal.ts";
|
|
43
41
|
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
44
42
|
export * from "./tool-framework.ts";
|
|
45
|
-
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
46
|
-
export * from "./types.ts";
|
package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts
CHANGED
|
@@ -22,14 +22,15 @@ export interface EvidenceBadgeInput {
|
|
|
22
22
|
* |------------------------------------------------------|---------------------------------------|
|
|
23
23
|
* | shown=12, total=12, omitted=0, label="references" | `12 references` |
|
|
24
24
|
* | shown=8, total=20, omitted=12, label="symbols" | `8 of 20 symbols (12 omitted)` |
|
|
25
|
-
* | shown=5,
|
|
25
|
+
* | shown=5, total=null, omitted=2, reason="timeout" | `5 matches (2 collected omitted; more may exist — timeout)` |
|
|
26
26
|
*/
|
|
27
27
|
export function formatEvidenceBadge(input: EvidenceBadgeInput): string {
|
|
28
28
|
const { shownCount, totalCount, omittedCount, partialReason, label } = input;
|
|
29
29
|
|
|
30
30
|
if (totalCount === null) {
|
|
31
31
|
const reasonSuffix = partialReason ? ` — ${partialReason}` : "";
|
|
32
|
-
|
|
32
|
+
const omittedPrefix = (omittedCount ?? 0) > 0 ? `${omittedCount} collected omitted; ` : "";
|
|
33
|
+
return `${shownCount} ${label} (${omittedPrefix}more may exist${reasonSuffix})`;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
if (omittedCount !== null && omittedCount > 0) {
|
|
@@ -6,8 +6,6 @@
|
|
|
6
6
|
// For lighter imports, use one of the domain subpaths directly
|
|
7
7
|
// (e.g. @mrclrchtr/supi-core/config, @mrclrchtr/supi-core/context).
|
|
8
8
|
|
|
9
|
-
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
10
|
-
export * from "./abort-utils.ts";
|
|
11
9
|
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
12
10
|
export * from "./config.ts";
|
|
13
11
|
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
@@ -36,5 +34,3 @@ export * from "./status-spinner.ts";
|
|
|
36
34
|
export * from "./terminal.ts";
|
|
37
35
|
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
38
36
|
export * from "./tool-framework.ts";
|
|
39
|
-
// biome-ignore lint/performance/noReExportAll: intentional convenience barrel
|
|
40
|
-
export * from "./types.ts";
|
|
@@ -24,16 +24,6 @@ export interface WithRetryOptions {
|
|
|
24
24
|
onRetry?: (attempt: number, delayMs: number) => void;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
/**
|
|
28
|
-
* Attempt an async operation with retries and exponential backoff.
|
|
29
|
-
*
|
|
30
|
-
* If the signal is already aborted on entry, the operation is skipped entirely.
|
|
31
|
-
* If the signal aborts during a delay, the delay is cancelled immediately.
|
|
32
|
-
*
|
|
33
|
-
* @param fn - The async operation to retry.
|
|
34
|
-
* @param options - Optional configuration for retries, backoff, signal, and callbacks.
|
|
35
|
-
* @returns The result on success, or `null` if all attempts fail or the signal aborts.
|
|
36
|
-
*/
|
|
37
27
|
/**
|
|
38
28
|
* Create a promise that resolves after `ms` milliseconds, or rejects if
|
|
39
29
|
* the signal fires before the timeout elapses.
|
package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
2
3
|
|
|
3
4
|
/** Strip pi's optional leading `@` file-path prefix from a tool input. */
|
|
4
5
|
export function stripToolPathPrefix(target: string): string {
|
|
@@ -16,25 +17,28 @@ export function resolveToolPath(cwd: string, target: string): string {
|
|
|
16
17
|
return path.resolve(cwd, stripToolPathPrefix(target));
|
|
17
18
|
}
|
|
18
19
|
|
|
19
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Convert a file path to a file:// URI.
|
|
22
|
+
*
|
|
23
|
+
* Uses Node's `pathToFileURL` to produce a standards-compliant URI with
|
|
24
|
+
* proper percent-encoding of spaces, hashes, and other special characters.
|
|
25
|
+
*/
|
|
20
26
|
export function fileToUri(filePath: string): string {
|
|
21
|
-
|
|
22
|
-
if (process.platform === "win32") {
|
|
23
|
-
return `file:///${resolved.replace(/\\/g, "/")}`;
|
|
24
|
-
}
|
|
25
|
-
return `file://${resolved}`;
|
|
27
|
+
return pathToFileURL(filePath).href;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Convert a file:// URI to a file path.
|
|
32
|
+
*
|
|
33
|
+
* Uses Node's `fileURLToPath` for standards-compliant decoding. Non-file
|
|
34
|
+
* URIs are passed through unchanged so consumers (such as LSP diagnostic
|
|
35
|
+
* handling) remain compatible with non-file URI schemes.
|
|
36
|
+
*/
|
|
29
37
|
export function uriToFile(uri: string): string {
|
|
30
38
|
if (!uri.startsWith("file://")) return uri;
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
/^[A-Za-z]:/.test(filePath.slice(1))
|
|
36
|
-
) {
|
|
37
|
-
filePath = filePath.slice(1);
|
|
39
|
+
try {
|
|
40
|
+
return fileURLToPath(uri);
|
|
41
|
+
} catch {
|
|
42
|
+
return uri;
|
|
38
43
|
}
|
|
39
|
-
return filePath;
|
|
40
44
|
}
|
|
@@ -34,6 +34,7 @@ export function buildActionMenu(field: ScopedFieldValue, scope: SettingsScope):
|
|
|
34
34
|
if (choices.length > 0) {
|
|
35
35
|
for (const choice of choices) menu.push({ value: `set:${choice}`, label: choice });
|
|
36
36
|
} else if (field.field.kind === "number") menu.push({ value: "edit", label: "Edit value…" });
|
|
37
|
+
else if (field.field.kind === "string") menu.push({ value: "edit", label: "Edit value…" });
|
|
37
38
|
else if (field.field.kind === "stringList") menu.push({ value: "edit", label: "Edit values…" });
|
|
38
39
|
else if (field.field.kind === "modelPicker")
|
|
39
40
|
menu.push({ value: "edit", label: "Choose model…" });
|
|
@@ -86,6 +86,11 @@ export interface NumberField extends BaseField {
|
|
|
86
86
|
values?: string[];
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
/** One free-form string. */
|
|
90
|
+
export interface StringField extends BaseField {
|
|
91
|
+
kind: "string";
|
|
92
|
+
}
|
|
93
|
+
|
|
89
94
|
/** Comma-separated string list. */
|
|
90
95
|
export interface StringListField extends BaseField {
|
|
91
96
|
kind: "stringList";
|
|
@@ -164,6 +169,7 @@ export type SettingsField =
|
|
|
164
169
|
| BoolField
|
|
165
170
|
| EnumField
|
|
166
171
|
| NumberField
|
|
172
|
+
| StringField
|
|
167
173
|
| StringListField
|
|
168
174
|
| ModelPickerField
|
|
169
175
|
| CustomField;
|
|
@@ -248,6 +254,8 @@ export function formatValue(value: unknown, field: SettingsField): string {
|
|
|
248
254
|
return value ? "on" : "off";
|
|
249
255
|
case "number":
|
|
250
256
|
return String(value ?? "");
|
|
257
|
+
case "string":
|
|
258
|
+
return typeof value === "string" && value ? value : "none";
|
|
251
259
|
case "stringList": {
|
|
252
260
|
const arr = Array.isArray(value) ? value : [];
|
|
253
261
|
return arr.length > 0 ? arr.map(String).join(", ") : "none";
|
|
@@ -271,6 +279,7 @@ export function sourceBadge(displayValue: string, source: ValueSource): string {
|
|
|
271
279
|
|
|
272
280
|
/** Format the value used to prefill editors and compare concrete choices. */
|
|
273
281
|
export function formatEditValue(value: unknown, field: SettingsField): string {
|
|
282
|
+
if (field.kind === "string") return typeof value === "string" ? value : "";
|
|
274
283
|
if (field.kind === "stringList") {
|
|
275
284
|
const arr = Array.isArray(value) ? value : [];
|
|
276
285
|
return arr.map(String).join(", ");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrclrchtr/supi-lsp",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "SuPi LSP
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "SuPi LSP runtime — Language Server Protocol integration library for pi",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -18,7 +18,6 @@
|
|
|
18
18
|
"keywords": [
|
|
19
19
|
"pi",
|
|
20
20
|
"pi-coding-agent",
|
|
21
|
-
"pi-extension",
|
|
22
21
|
"lsp",
|
|
23
22
|
"language-server",
|
|
24
23
|
"go-to-definition",
|
|
@@ -38,8 +37,8 @@
|
|
|
38
37
|
"vscode-jsonrpc": "^9.0.0",
|
|
39
38
|
"vscode-languageserver-protocol": "^3.17.5",
|
|
40
39
|
"vscode-languageserver-types": "^3.17.5",
|
|
41
|
-
"@mrclrchtr/supi-code-runtime": "
|
|
42
|
-
"@mrclrchtr/supi-core": "
|
|
40
|
+
"@mrclrchtr/supi-code-runtime": "4.1.0",
|
|
41
|
+
"@mrclrchtr/supi-core": "4.1.0"
|
|
43
42
|
},
|
|
44
43
|
"bundledDependencies": [
|
|
45
44
|
"@mrclrchtr/supi-code-runtime",
|
|
@@ -38,18 +38,18 @@ export type {
|
|
|
38
38
|
LspStartResult,
|
|
39
39
|
} from "./session/runtime-controller.ts";
|
|
40
40
|
export { LspRuntimeController } from "./session/runtime-controller.ts";
|
|
41
|
-
export { scanMissingServers } from "./session/scanner.ts";
|
|
42
41
|
export type {
|
|
43
42
|
OutstandingDiagnosticSummaryEntry,
|
|
44
43
|
RecoverDiagnosticsResult,
|
|
45
44
|
SemanticReadinessResult,
|
|
46
|
-
SessionLspServiceState,
|
|
47
45
|
WorkspaceDiagnosticSummaryEntry,
|
|
48
|
-
|
|
46
|
+
WorkspaceLspRuntime,
|
|
47
|
+
WorkspaceLspRuntimeState,
|
|
48
|
+
} from "./session/runtime-registry.ts";
|
|
49
49
|
export {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
} from "./session/
|
|
50
|
+
clearWorkspaceLspRuntime,
|
|
51
|
+
getWorkspaceLspRuntime,
|
|
52
|
+
setWorkspaceLspRuntimeState,
|
|
53
|
+
waitForWorkspaceLspRuntime,
|
|
54
|
+
} from "./session/runtime-registry.ts";
|
|
55
|
+
export { scanMissingServers } from "./session/scanner.ts";
|
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
import { type ChildProcess, execSync, spawn } from "node:child_process";
|
|
6
6
|
import { existsSync } from "node:fs";
|
|
7
7
|
import * as path from "node:path";
|
|
8
|
+
import {
|
|
9
|
+
type CodeQueryResult,
|
|
10
|
+
completedCodeQuery,
|
|
11
|
+
unavailableCodeQuery,
|
|
12
|
+
} from "@mrclrchtr/supi-code-runtime/api";
|
|
8
13
|
import { recordDebugEvent } from "@mrclrchtr/supi-core/debug";
|
|
9
14
|
import type { ProgressToken } from "vscode-languageserver-protocol";
|
|
10
15
|
import { CLIENT_CAPABILITIES } from "../config/capabilities.ts";
|
|
@@ -37,6 +42,25 @@ import { JsonRpcClient, JsonRpcRequestError } from "./transport.ts";
|
|
|
37
42
|
const SHUTDOWN_TIMEOUT_MS = 5_000;
|
|
38
43
|
const DIAGNOSTIC_WAIT_MS = 3_000;
|
|
39
44
|
|
|
45
|
+
/** Race an operation against a timeout without retaining the timer after settlement. */
|
|
46
|
+
async function withTimeout<T>(
|
|
47
|
+
operation: Promise<T>,
|
|
48
|
+
timeoutMs: number,
|
|
49
|
+
message: string,
|
|
50
|
+
): Promise<T> {
|
|
51
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
52
|
+
try {
|
|
53
|
+
return await Promise.race([
|
|
54
|
+
operation,
|
|
55
|
+
new Promise<never>((_resolve, reject) => {
|
|
56
|
+
timer = setTimeout(() => reject(new Error(message)), timeoutMs);
|
|
57
|
+
}),
|
|
58
|
+
]);
|
|
59
|
+
} finally {
|
|
60
|
+
if (timer !== undefined) clearTimeout(timer);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
40
64
|
// ── Process-tree cleanup ──────────────────────────────────────────────
|
|
41
65
|
|
|
42
66
|
/**
|
|
@@ -218,20 +242,13 @@ export class LspClient {
|
|
|
218
242
|
if (!this.rpc || !this.process) return;
|
|
219
243
|
|
|
220
244
|
try {
|
|
221
|
-
|
|
222
|
-
await Promise.race([
|
|
223
|
-
this.rpc.sendRequest("shutdown"),
|
|
224
|
-
new Promise((_, reject) =>
|
|
225
|
-
setTimeout(() => reject(new Error("shutdown timeout")), SHUTDOWN_TIMEOUT_MS),
|
|
226
|
-
),
|
|
227
|
-
]);
|
|
245
|
+
await withTimeout(this.rpc.sendRequest("shutdown"), SHUTDOWN_TIMEOUT_MS, "shutdown timeout");
|
|
228
246
|
// Flush the final exit notification before disposing the transport.
|
|
229
|
-
await
|
|
247
|
+
await withTimeout(
|
|
230
248
|
this.rpc.sendNotification("exit"),
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
]);
|
|
249
|
+
SHUTDOWN_TIMEOUT_MS,
|
|
250
|
+
"exit notification timeout",
|
|
251
|
+
);
|
|
235
252
|
} catch {
|
|
236
253
|
// Timeout or error — force kill
|
|
237
254
|
}
|
|
@@ -382,11 +399,6 @@ export class LspClient {
|
|
|
382
399
|
return result;
|
|
383
400
|
}
|
|
384
401
|
|
|
385
|
-
/** Get the internal cache entry for a file (exposed for testing / version checks). */
|
|
386
|
-
getDiagnosticCacheEntry(uri: string): DiagnosticCacheEntry | undefined {
|
|
387
|
-
return this.diagnosticStore.get(uri);
|
|
388
|
-
}
|
|
389
|
-
|
|
390
402
|
/**
|
|
391
403
|
* Clear all pull-diagnostic result IDs, forcing full (not `unchanged`)
|
|
392
404
|
* pull diagnostic responses on the next refresh cycle.
|
|
@@ -401,11 +413,6 @@ export class LspClient {
|
|
|
401
413
|
}
|
|
402
414
|
}
|
|
403
415
|
|
|
404
|
-
/** Get all currently open document URIs. */
|
|
405
|
-
get openUris(): string[] {
|
|
406
|
-
return Array.from(this.openDocs.keys());
|
|
407
|
-
}
|
|
408
|
-
|
|
409
416
|
/** Check if server supports pull diagnostics. */
|
|
410
417
|
get hasDiagnosticProvider(): boolean {
|
|
411
418
|
return this.capabilities?.diagnosticProvider !== undefined;
|
|
@@ -462,8 +469,8 @@ export class LspClient {
|
|
|
462
469
|
}
|
|
463
470
|
|
|
464
471
|
// ── LSP Requests ───────────────────────────────────────────────────
|
|
465
|
-
async hover(filePath: string, position: Position): Promise<Hover | null
|
|
466
|
-
return this.
|
|
472
|
+
async hover(filePath: string, position: Position): Promise<CodeQueryResult<Hover | null>> {
|
|
473
|
+
return this.query("textDocument/hover", {
|
|
467
474
|
textDocument: { uri: fileToUri(filePath) },
|
|
468
475
|
position,
|
|
469
476
|
});
|
|
@@ -472,30 +479,39 @@ export class LspClient {
|
|
|
472
479
|
async definition(
|
|
473
480
|
filePath: string,
|
|
474
481
|
position: Position,
|
|
475
|
-
): Promise<Location | Location[] | LocationLink[] | null
|
|
476
|
-
return this.
|
|
482
|
+
): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>> {
|
|
483
|
+
return this.query("textDocument/definition", {
|
|
477
484
|
textDocument: { uri: fileToUri(filePath) },
|
|
478
485
|
position,
|
|
479
486
|
});
|
|
480
487
|
}
|
|
481
488
|
|
|
482
|
-
async references(
|
|
483
|
-
|
|
489
|
+
async references(
|
|
490
|
+
filePath: string,
|
|
491
|
+
position: Position,
|
|
492
|
+
): Promise<CodeQueryResult<Location[] | null>> {
|
|
493
|
+
return this.query("textDocument/references", {
|
|
484
494
|
textDocument: { uri: fileToUri(filePath) },
|
|
485
495
|
position,
|
|
486
496
|
context: { includeDeclaration: true },
|
|
487
497
|
});
|
|
488
498
|
}
|
|
489
499
|
|
|
490
|
-
async documentSymbols(
|
|
491
|
-
|
|
500
|
+
async documentSymbols(
|
|
501
|
+
filePath: string,
|
|
502
|
+
): Promise<CodeQueryResult<DocumentSymbol[] | SymbolInformation[] | null>> {
|
|
503
|
+
return this.query("textDocument/documentSymbol", {
|
|
492
504
|
textDocument: { uri: fileToUri(filePath) },
|
|
493
505
|
});
|
|
494
506
|
}
|
|
495
507
|
|
|
496
|
-
async workspaceSymbol(
|
|
497
|
-
|
|
498
|
-
|
|
508
|
+
async workspaceSymbol(
|
|
509
|
+
query: string,
|
|
510
|
+
): Promise<CodeQueryResult<SymbolInformation[] | WorkspaceSymbol[] | null>> {
|
|
511
|
+
if (!this.capabilities?.workspaceSymbolProvider) {
|
|
512
|
+
return unavailableCodeQuery("Workspace-symbol requests are not supported by this server.");
|
|
513
|
+
}
|
|
514
|
+
return this.query("workspace/symbol", { query });
|
|
499
515
|
}
|
|
500
516
|
|
|
501
517
|
async rename(
|
|
@@ -525,25 +541,38 @@ export class LspClient {
|
|
|
525
541
|
async implementation(
|
|
526
542
|
filePath: string,
|
|
527
543
|
position: Position,
|
|
528
|
-
): Promise<Location | Location[] | LocationLink[] | null
|
|
529
|
-
if (!this.capabilities?.implementationProvider)
|
|
530
|
-
|
|
544
|
+
): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>> {
|
|
545
|
+
if (!this.capabilities?.implementationProvider) {
|
|
546
|
+
return unavailableCodeQuery("Implementation requests are not supported by this server.");
|
|
547
|
+
}
|
|
548
|
+
return this.query("textDocument/implementation", {
|
|
531
549
|
textDocument: { uri: fileToUri(filePath) },
|
|
532
550
|
position,
|
|
533
551
|
});
|
|
534
552
|
}
|
|
535
553
|
|
|
536
554
|
// ── Private ─────────────────────────────────────────────────────────
|
|
537
|
-
private async
|
|
538
|
-
if (!this.rpc || this._status !== "running")
|
|
555
|
+
private async query<T>(method: string, params: unknown): Promise<CodeQueryResult<T | null>> {
|
|
556
|
+
if (!this.rpc || this._status !== "running") {
|
|
557
|
+
return unavailableCodeQuery(
|
|
558
|
+
`LSP request ${method} is unavailable because the client is not running.`,
|
|
559
|
+
);
|
|
560
|
+
}
|
|
539
561
|
try {
|
|
540
562
|
await this.getReady();
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
563
|
+
const data = (await this.rpc.sendRequest(method, params)) as T | null | undefined;
|
|
564
|
+
return completedCodeQuery(data ?? null);
|
|
565
|
+
} catch (error) {
|
|
566
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
567
|
+
return unavailableCodeQuery(`LSP request ${method} failed: ${detail}`);
|
|
544
568
|
}
|
|
545
569
|
}
|
|
546
570
|
|
|
571
|
+
private async request<T>(method: string, params: unknown): Promise<T | null> {
|
|
572
|
+
const result = await this.query<T>(method, params);
|
|
573
|
+
return result.kind === "unavailable" ? null : result.data;
|
|
574
|
+
}
|
|
575
|
+
|
|
547
576
|
private handleServerRequest(method: string, params: unknown): unknown {
|
|
548
577
|
switch (method) {
|
|
549
578
|
case "workspace/configuration":
|
|
@@ -90,26 +90,29 @@ export class JsonRpcClient {
|
|
|
90
90
|
const timeoutMs = options?.timeoutMs ?? this.timeoutMs;
|
|
91
91
|
const tokenSource = new CancellationTokenSource();
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
let timeout: ReturnType<typeof setTimeout> | undefined;
|
|
94
|
+
const timeoutError = new Error(`Request ${method} timed out after ${timeoutMs}ms`);
|
|
94
95
|
|
|
95
96
|
const request = this.connection.sendRequest(method, params, tokenSource.token);
|
|
96
97
|
// Catch the raw request promise to prevent unhandled rejections when
|
|
97
|
-
// dispose() cancels the token without a preceding timeout
|
|
98
|
-
// promise below covers the timeout-then-dispose path separately).
|
|
98
|
+
// dispose() cancels the token without a preceding timeout.
|
|
99
99
|
request.catch(() => {});
|
|
100
100
|
|
|
101
|
-
// Race the request against a
|
|
102
|
-
//
|
|
103
|
-
//
|
|
101
|
+
// Race the request against a single shared timeout that both cancels
|
|
102
|
+
// the JSON-RPC token and rejects the caller. Using one timer avoids
|
|
103
|
+
// a leak where the rejecting timer in a second Promise stays alive
|
|
104
|
+
// after a successful response.
|
|
104
105
|
const promise = Promise.race([
|
|
105
106
|
request,
|
|
106
|
-
new Promise<never>((
|
|
107
|
-
setTimeout(
|
|
108
|
-
()
|
|
109
|
-
|
|
110
|
-
)
|
|
111
|
-
),
|
|
112
|
-
]).finally(() =>
|
|
107
|
+
new Promise<never>((_resolve, reject) => {
|
|
108
|
+
timeout = setTimeout(() => {
|
|
109
|
+
tokenSource.cancel();
|
|
110
|
+
reject(timeoutError);
|
|
111
|
+
}, timeoutMs);
|
|
112
|
+
}),
|
|
113
|
+
]).finally(() => {
|
|
114
|
+
if (timeout !== undefined) clearTimeout(timeout);
|
|
115
|
+
});
|
|
113
116
|
|
|
114
117
|
// Prevent unhandled rejection when dispose() cancels requests
|
|
115
118
|
promise.catch(() => {});
|
|
@@ -49,13 +49,13 @@ export function loadConfig(cwd: string, options?: LoadConfigOptions): LspConfig
|
|
|
49
49
|
const globalLsp = loadSupiConfigForScope(
|
|
50
50
|
"lsp",
|
|
51
51
|
cwd,
|
|
52
|
-
{ enabled: true,
|
|
52
|
+
{ enabled: true, active: [], servers: {} as Record<string, ServerConfig> },
|
|
53
53
|
{ scope: "global", homeDir: options?.homeDir },
|
|
54
54
|
);
|
|
55
55
|
const projectLsp = loadSupiConfigForScope(
|
|
56
56
|
"lsp",
|
|
57
57
|
cwd,
|
|
58
|
-
{ enabled: true,
|
|
58
|
+
{ enabled: true, active: [], servers: {} as Record<string, ServerConfig> },
|
|
59
59
|
{ scope: "project" },
|
|
60
60
|
);
|
|
61
61
|
|
|
@@ -10,14 +10,12 @@ import { loadSupiConfig, loadSupiConfigForScope } from "@mrclrchtr/supi-core/con
|
|
|
10
10
|
|
|
11
11
|
export interface LspSettings extends Record<string, unknown> {
|
|
12
12
|
enabled: boolean;
|
|
13
|
-
severity: number;
|
|
14
13
|
active: string[];
|
|
15
14
|
exclude: string[];
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
export const LSP_DEFAULTS: LspSettings = {
|
|
19
18
|
enabled: true,
|
|
20
|
-
severity: 1,
|
|
21
19
|
active: [],
|
|
22
20
|
exclude: [],
|
|
23
21
|
};
|
|
@@ -31,11 +31,11 @@ export type {
|
|
|
31
31
|
OutstandingDiagnosticSummaryEntry,
|
|
32
32
|
RecoverDiagnosticsResult,
|
|
33
33
|
SemanticReadinessResult,
|
|
34
|
-
SessionLspServiceState,
|
|
35
34
|
WorkspaceDiagnosticSummaryEntry,
|
|
36
|
-
|
|
35
|
+
WorkspaceLspRuntime,
|
|
36
|
+
WorkspaceLspRuntimeState,
|
|
37
|
+
} from "./session/runtime-registry.ts";
|
|
37
38
|
export {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
} from "./session/service-registry.ts";
|
|
39
|
+
getWorkspaceLspRuntime,
|
|
40
|
+
waitForWorkspaceLspRuntime,
|
|
41
|
+
} from "./session/runtime-registry.ts";
|