@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
package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts}
RENAMED
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
// Shared session-scoped LSP service registry.
|
|
2
|
-
// Peer extensions can import `getSessionLspService` from the package root
|
|
3
|
-
// to reuse the active LSP runtime without starting duplicate servers.
|
|
1
|
+
// Shared session-scoped LSP service registry reused by peer extensions.
|
|
4
2
|
|
|
3
|
+
import {
|
|
4
|
+
type CodeQueryResult,
|
|
5
|
+
mapCodeQueryResult,
|
|
6
|
+
unavailableCodeQuery,
|
|
7
|
+
} from "@mrclrchtr/supi-code-runtime/api";
|
|
5
8
|
import { createSessionStateRegistry } from "@mrclrchtr/supi-core/session";
|
|
6
9
|
import type {
|
|
7
10
|
CodeAction,
|
|
8
11
|
Diagnostic,
|
|
9
12
|
DocumentSymbol,
|
|
13
|
+
FileEvent,
|
|
10
14
|
Hover,
|
|
11
15
|
Location,
|
|
12
16
|
LocationLink,
|
|
@@ -19,11 +23,16 @@ import type {
|
|
|
19
23
|
} from "../config/types.ts";
|
|
20
24
|
import type { LspManager } from "../manager/manager.ts";
|
|
21
25
|
import { resolveSessionPath } from "../utils.ts";
|
|
26
|
+
import { raceReadinessValue } from "./readiness.ts";
|
|
22
27
|
|
|
23
28
|
function isRange(value: Position | Range): value is Range {
|
|
24
29
|
return "start" in value && "end" in value;
|
|
25
30
|
}
|
|
26
31
|
|
|
32
|
+
function unavailableFileQuery<T>(operation: string, file: string): CodeQueryResult<T> {
|
|
33
|
+
return unavailableCodeQuery(`No routed LSP client could complete ${operation} for ${file}.`);
|
|
34
|
+
}
|
|
35
|
+
|
|
27
36
|
/** Workspace diagnostic summary grouped by file. */
|
|
28
37
|
export interface WorkspaceDiagnosticSummaryEntry {
|
|
29
38
|
file: string;
|
|
@@ -43,7 +52,8 @@ export interface OutstandingDiagnosticSummaryEntry {
|
|
|
43
52
|
|
|
44
53
|
/** Result from a workspace diagnostic recovery pass. */
|
|
45
54
|
export interface RecoverDiagnosticsResult {
|
|
46
|
-
|
|
55
|
+
/** Active clients targeted by the best-effort refresh, not confirmed successful refreshes. */
|
|
56
|
+
attemptedClients: number;
|
|
47
57
|
restartedClients: number;
|
|
48
58
|
staleAssessment: {
|
|
49
59
|
suspected: boolean;
|
|
@@ -52,9 +62,9 @@ export interface RecoverDiagnosticsResult {
|
|
|
52
62
|
};
|
|
53
63
|
}
|
|
54
64
|
|
|
55
|
-
export type
|
|
56
|
-
| { kind: "ready";
|
|
57
|
-
| { kind: "inactive";
|
|
65
|
+
export type WorkspaceLspRuntimeState =
|
|
66
|
+
| { kind: "ready"; runtime: WorkspaceLspRuntime }
|
|
67
|
+
| { kind: "inactive"; runtime: WorkspaceLspRuntime }
|
|
58
68
|
| { kind: "pending" }
|
|
59
69
|
| { kind: "disabled" }
|
|
60
70
|
| { kind: "unavailable"; reason: string };
|
|
@@ -65,59 +75,116 @@ export type SemanticReadinessResult =
|
|
|
65
75
|
| { kind: "unavailable"; reason: string };
|
|
66
76
|
|
|
67
77
|
/**
|
|
68
|
-
*
|
|
78
|
+
* Workspace-scoped LSP interface that owns routing, readiness, semantic operations,
|
|
79
|
+
* diagnostics, and recovery without exposing clients or the mutable manager.
|
|
69
80
|
* File path inputs may be absolute or session-cwd-relative; a leading `@` is stripped
|
|
70
81
|
* to match pi's built-in path-tool convention. Position arguments use raw 0-based LSP
|
|
71
82
|
* coordinates; use `toLspPosition()` from `@mrclrchtr/supi-lsp/api` when starting from
|
|
72
83
|
* user-facing 1-based line and character values.
|
|
73
84
|
*/
|
|
74
|
-
export
|
|
85
|
+
export interface WorkspaceLspRuntime {
|
|
86
|
+
hover(filePath: string, position: Position): Promise<CodeQueryResult<Hover | null>>;
|
|
87
|
+
definition(
|
|
88
|
+
filePath: string,
|
|
89
|
+
position: Position,
|
|
90
|
+
): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>>;
|
|
91
|
+
references(filePath: string, position: Position): Promise<CodeQueryResult<Location[]>>;
|
|
92
|
+
implementation(
|
|
93
|
+
filePath: string,
|
|
94
|
+
position: Position,
|
|
95
|
+
): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>>;
|
|
96
|
+
documentSymbols(
|
|
97
|
+
filePath: string,
|
|
98
|
+
): Promise<CodeQueryResult<DocumentSymbol[] | SymbolInformation[]>>;
|
|
99
|
+
workspaceSymbol(query: string): Promise<CodeQueryResult<SymbolInformation[] | WorkspaceSymbol[]>>;
|
|
100
|
+
rename(filePath: string, position: Position, newName: string): Promise<WorkspaceEdit | null>;
|
|
101
|
+
codeActions(filePath: string, positionOrRange: Position | Range): Promise<CodeAction[] | null>;
|
|
102
|
+
/** Succeeds only when the concrete routed client exists and is query-ready. */
|
|
103
|
+
waitUntilReadyForFile(
|
|
104
|
+
filePath: string,
|
|
105
|
+
options?: { timeoutMs?: number },
|
|
106
|
+
): Promise<SemanticReadinessResult>;
|
|
107
|
+
/** Succeeds only when at least one concrete workspace client is active and query-ready. */
|
|
108
|
+
waitUntilReadyForWorkspace(options?: { timeoutMs?: number }): Promise<SemanticReadinessResult>;
|
|
109
|
+
getProjectServers(): ProjectServerInfo[];
|
|
110
|
+
isSupportedSourceFile(filePath: string): boolean;
|
|
111
|
+
trackFile(filePath: string): Promise<boolean>;
|
|
112
|
+
closeFile(filePath: string): void;
|
|
113
|
+
pruneMissingFiles(): readonly string[];
|
|
114
|
+
noteWorkspaceChanges(changes: FileEvent[]): void;
|
|
115
|
+
fileDiagnostics(filePath: string, maxSeverity?: number): Promise<CodeQueryResult<Diagnostic[]>>;
|
|
116
|
+
refreshOpenDiagnostics(options?: { maxWaitMs?: number; quietMs?: number }): Promise<void>;
|
|
117
|
+
getWorkspaceDiagnosticSummary(): WorkspaceDiagnosticSummaryEntry[];
|
|
118
|
+
getOutstandingDiagnostics(
|
|
119
|
+
maxSeverity?: number,
|
|
120
|
+
): Array<{ file: string; diagnostics: Diagnostic[] }>;
|
|
121
|
+
getOutstandingDiagnosticSummary(maxSeverity?: number): OutstandingDiagnosticSummaryEntry[];
|
|
122
|
+
recoverDiagnostics(options?: {
|
|
123
|
+
restartIfStillStale?: boolean;
|
|
124
|
+
maxWaitMs?: number;
|
|
125
|
+
quietMs?: number;
|
|
126
|
+
}): Promise<RecoverDiagnosticsResult>;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
class DefaultWorkspaceLspRuntime implements WorkspaceLspRuntime {
|
|
75
130
|
constructor(private readonly manager: LspManager) {}
|
|
76
131
|
|
|
132
|
+
static createOwner(manager: LspManager) {
|
|
133
|
+
const runtime = new DefaultWorkspaceLspRuntime(manager);
|
|
134
|
+
return { runtime: runtime as WorkspaceLspRuntime, shutdown: () => runtime.#shutdown() };
|
|
135
|
+
}
|
|
136
|
+
|
|
77
137
|
// ── Semantic lookups ────────────────────────────────────────────────
|
|
78
138
|
|
|
79
|
-
async hover(filePath: string, position: Position): Promise<Hover | null
|
|
139
|
+
async hover(filePath: string, position: Position): Promise<CodeQueryResult<Hover | null>> {
|
|
80
140
|
const resolvedPath = this.resolveFilePath(filePath);
|
|
81
141
|
const client = await this.manager.ensureFileOpen(resolvedPath);
|
|
82
|
-
if (!client) return
|
|
142
|
+
if (!client) return unavailableFileQuery("hover", resolvedPath);
|
|
83
143
|
return client.hover(resolvedPath, position);
|
|
84
144
|
}
|
|
85
145
|
|
|
86
146
|
async definition(
|
|
87
147
|
filePath: string,
|
|
88
148
|
position: Position,
|
|
89
|
-
): Promise<Location | Location[] | LocationLink[] | null
|
|
149
|
+
): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>> {
|
|
90
150
|
const resolvedPath = this.resolveFilePath(filePath);
|
|
91
151
|
const client = await this.manager.ensureFileOpen(resolvedPath);
|
|
92
|
-
if (!client) return
|
|
152
|
+
if (!client) return unavailableFileQuery("definition", resolvedPath);
|
|
93
153
|
return client.definition(resolvedPath, position);
|
|
94
154
|
}
|
|
95
155
|
|
|
96
|
-
async references(filePath: string, position: Position): Promise<Location[]
|
|
156
|
+
async references(filePath: string, position: Position): Promise<CodeQueryResult<Location[]>> {
|
|
97
157
|
const resolvedPath = this.resolveFilePath(filePath);
|
|
98
158
|
const client = await this.manager.ensureFileOpen(resolvedPath);
|
|
99
|
-
if (!client) return
|
|
100
|
-
return
|
|
159
|
+
if (!client) return unavailableFileQuery("references", resolvedPath);
|
|
160
|
+
return mapCodeQueryResult(
|
|
161
|
+
await client.references(resolvedPath, position),
|
|
162
|
+
(data) => data ?? [],
|
|
163
|
+
);
|
|
101
164
|
}
|
|
102
165
|
|
|
103
166
|
async implementation(
|
|
104
167
|
filePath: string,
|
|
105
168
|
position: Position,
|
|
106
|
-
): Promise<Location | Location[] | LocationLink[] | null
|
|
169
|
+
): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>> {
|
|
107
170
|
const resolvedPath = this.resolveFilePath(filePath);
|
|
108
171
|
const client = await this.manager.ensureFileOpen(resolvedPath);
|
|
109
|
-
if (!client) return
|
|
172
|
+
if (!client) return unavailableFileQuery("implementation", resolvedPath);
|
|
110
173
|
return client.implementation(resolvedPath, position);
|
|
111
174
|
}
|
|
112
175
|
|
|
113
|
-
async documentSymbols(
|
|
176
|
+
async documentSymbols(
|
|
177
|
+
filePath: string,
|
|
178
|
+
): Promise<CodeQueryResult<DocumentSymbol[] | SymbolInformation[]>> {
|
|
114
179
|
const resolvedPath = this.resolveFilePath(filePath);
|
|
115
180
|
const client = await this.manager.ensureFileOpen(resolvedPath);
|
|
116
|
-
if (!client) return
|
|
117
|
-
return client.documentSymbols(resolvedPath);
|
|
181
|
+
if (!client) return unavailableFileQuery("document symbols", resolvedPath);
|
|
182
|
+
return mapCodeQueryResult(await client.documentSymbols(resolvedPath), (data) => data ?? []);
|
|
118
183
|
}
|
|
119
184
|
|
|
120
|
-
async workspaceSymbol(
|
|
185
|
+
async workspaceSymbol(
|
|
186
|
+
query: string,
|
|
187
|
+
): Promise<CodeQueryResult<SymbolInformation[] | WorkspaceSymbol[]>> {
|
|
121
188
|
return this.manager.workspaceSymbol(query);
|
|
122
189
|
}
|
|
123
190
|
|
|
@@ -167,7 +234,18 @@ export class SessionLspService {
|
|
|
167
234
|
};
|
|
168
235
|
}
|
|
169
236
|
|
|
170
|
-
|
|
237
|
+
const readiness = await raceReadinessValue(
|
|
238
|
+
this.manager.waitUntilFileReady(resolvedPath),
|
|
239
|
+
options.timeoutMs,
|
|
240
|
+
);
|
|
241
|
+
if (readiness.kind !== "resolved") return readiness;
|
|
242
|
+
if (readiness.value === null) {
|
|
243
|
+
return {
|
|
244
|
+
kind: "unavailable",
|
|
245
|
+
reason: "The routed LSP client could not be started for this file",
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
return { kind: "ready" };
|
|
171
249
|
}
|
|
172
250
|
|
|
173
251
|
/**
|
|
@@ -177,11 +255,20 @@ export class SessionLspService {
|
|
|
177
255
|
async waitUntilReadyForWorkspace(
|
|
178
256
|
options: { timeoutMs?: number } = {},
|
|
179
257
|
): Promise<SemanticReadinessResult> {
|
|
180
|
-
|
|
258
|
+
const readiness = await raceReadinessValue(
|
|
259
|
+
this.manager.waitUntilWorkspaceReady(),
|
|
260
|
+
options.timeoutMs,
|
|
261
|
+
);
|
|
262
|
+
if (readiness.kind !== "resolved") return readiness;
|
|
263
|
+
if (readiness.value === 0) {
|
|
264
|
+
return {
|
|
265
|
+
kind: "unavailable",
|
|
266
|
+
reason: "No active LSP clients are ready for this workspace",
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
return { kind: "ready" };
|
|
181
270
|
}
|
|
182
271
|
|
|
183
|
-
// ── Project / runtime awareness ─────────────────────────────────────
|
|
184
|
-
|
|
185
272
|
getProjectServers(): ProjectServerInfo[] {
|
|
186
273
|
return this.manager.getKnownProjectServers([]);
|
|
187
274
|
}
|
|
@@ -191,15 +278,51 @@ export class SessionLspService {
|
|
|
191
278
|
return this.manager.canServeFile(this.resolveFilePath(filePath));
|
|
192
279
|
}
|
|
193
280
|
|
|
194
|
-
|
|
281
|
+
/** Track a file in its routed client without exposing that client. */
|
|
282
|
+
async trackFile(filePath: string): Promise<boolean> {
|
|
283
|
+
const resolvedPath = this.resolveFilePath(filePath);
|
|
284
|
+
return (await this.manager.ensureFileOpen(resolvedPath)) !== null;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/** Stop tracking a file and clear its cached diagnostics. */
|
|
288
|
+
closeFile(filePath: string): void {
|
|
289
|
+
this.manager.closeFile(this.resolveFilePath(filePath));
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/** Remove missing files from runtime tracking. */
|
|
293
|
+
pruneMissingFiles(): readonly string[] {
|
|
294
|
+
return this.manager.pruneMissingFiles();
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Notify routed clients of workspace file changes and reset pull state. */
|
|
298
|
+
noteWorkspaceChanges(changes: FileEvent[]): void {
|
|
299
|
+
this.manager.clearAllPullResultIds();
|
|
300
|
+
this.manager.notifyWorkspaceFileChanges(changes);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
async #shutdown(): Promise<void> {
|
|
304
|
+
await this.manager.shutdownAll();
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
// ── Diagnostics and recovery ────────────────────────────────────────
|
|
195
308
|
|
|
196
309
|
/** Sync a file through LSP and return diagnostics up to the supplied severity threshold. */
|
|
197
|
-
async fileDiagnostics(
|
|
310
|
+
async fileDiagnostics(
|
|
311
|
+
filePath: string,
|
|
312
|
+
maxSeverity: number = 4,
|
|
313
|
+
): Promise<CodeQueryResult<Diagnostic[]>> {
|
|
198
314
|
const resolvedPath = this.resolveFilePath(filePath);
|
|
199
|
-
if (!this.manager.canServeFile(resolvedPath))
|
|
315
|
+
if (!this.manager.canServeFile(resolvedPath)) {
|
|
316
|
+
return unavailableFileQuery("diagnostics", resolvedPath);
|
|
317
|
+
}
|
|
200
318
|
return this.manager.syncFileAndGetDiagnostics(resolvedPath, maxSeverity);
|
|
201
319
|
}
|
|
202
320
|
|
|
321
|
+
/** Re-sync every open document and wait for diagnostics to settle. */
|
|
322
|
+
async refreshOpenDiagnostics(options?: { maxWaitMs?: number; quietMs?: number }): Promise<void> {
|
|
323
|
+
await this.manager.refreshOpenDiagnostics(options);
|
|
324
|
+
}
|
|
325
|
+
|
|
203
326
|
/** Get a lightweight workspace diagnostic summary for all tracked files. */
|
|
204
327
|
getWorkspaceDiagnosticSummary(): WorkspaceDiagnosticSummaryEntry[] {
|
|
205
328
|
return this.manager.getDiagnosticSummary();
|
|
@@ -231,51 +354,20 @@ export class SessionLspService {
|
|
|
231
354
|
}
|
|
232
355
|
}
|
|
233
356
|
|
|
234
|
-
|
|
357
|
+
export function createWorkspaceLspRuntimeOwner(manager: LspManager) {
|
|
358
|
+
return DefaultWorkspaceLspRuntime.createOwner(manager);
|
|
359
|
+
}
|
|
235
360
|
|
|
236
361
|
const WAIT_INTERVAL_MS = 25;
|
|
237
|
-
const
|
|
238
|
-
const registry = createSessionStateRegistry<SessionLspServiceState>("supi-lsp/session-registry");
|
|
239
|
-
|
|
240
|
-
async function raceReadiness(
|
|
241
|
-
readiness: Promise<unknown>,
|
|
242
|
-
timeoutMs: number | undefined,
|
|
243
|
-
): Promise<SemanticReadinessResult> {
|
|
244
|
-
const effectiveTimeoutMs = timeoutMs ?? DEFAULT_SEMANTIC_READY_TIMEOUT_MS;
|
|
245
|
-
let timer: ReturnType<typeof setTimeout> | null = null;
|
|
246
|
-
|
|
247
|
-
try {
|
|
248
|
-
await Promise.race([
|
|
249
|
-
readiness,
|
|
250
|
-
new Promise<never>((_, reject) => {
|
|
251
|
-
timer = setTimeout(
|
|
252
|
-
() => reject(new Error("semantic-readiness-timeout")),
|
|
253
|
-
effectiveTimeoutMs,
|
|
254
|
-
);
|
|
255
|
-
}),
|
|
256
|
-
]);
|
|
257
|
-
return { kind: "ready" };
|
|
258
|
-
} catch (error) {
|
|
259
|
-
if (timer) clearTimeout(timer);
|
|
260
|
-
if (error instanceof Error && error.message === "semantic-readiness-timeout") {
|
|
261
|
-
return { kind: "timeout" };
|
|
262
|
-
}
|
|
263
|
-
return {
|
|
264
|
-
kind: "unavailable",
|
|
265
|
-
reason: error instanceof Error ? error.message : String(error),
|
|
266
|
-
};
|
|
267
|
-
} finally {
|
|
268
|
-
if (timer) clearTimeout(timer);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
362
|
+
const registry = createSessionStateRegistry<WorkspaceLspRuntimeState>("supi-lsp/session-registry");
|
|
271
363
|
|
|
272
364
|
/** Publish the LSP service state for a session cwd. */
|
|
273
|
-
export function
|
|
365
|
+
export function setWorkspaceLspRuntimeState(cwd: string, state: WorkspaceLspRuntimeState): void {
|
|
274
366
|
registry.set(cwd, state);
|
|
275
367
|
}
|
|
276
368
|
|
|
277
369
|
/** Acquire the LSP service state for a session cwd. */
|
|
278
|
-
export function
|
|
370
|
+
export function getWorkspaceLspRuntime(cwd: string): WorkspaceLspRuntimeState {
|
|
279
371
|
return (
|
|
280
372
|
registry.get(cwd) ?? {
|
|
281
373
|
kind: "unavailable",
|
|
@@ -285,22 +377,22 @@ export function getSessionLspService(cwd: string): SessionLspServiceState {
|
|
|
285
377
|
}
|
|
286
378
|
|
|
287
379
|
/** Wait briefly for a pending session-scoped LSP service to become ready. */
|
|
288
|
-
export async function
|
|
380
|
+
export async function waitForWorkspaceLspRuntime(
|
|
289
381
|
cwd: string,
|
|
290
382
|
timeoutMs: number = 250,
|
|
291
|
-
): Promise<
|
|
383
|
+
): Promise<WorkspaceLspRuntimeState> {
|
|
292
384
|
const deadline = Date.now() + Math.max(0, timeoutMs);
|
|
293
|
-
let state =
|
|
385
|
+
let state = getWorkspaceLspRuntime(cwd);
|
|
294
386
|
|
|
295
387
|
while (state.kind === "pending" && Date.now() < deadline) {
|
|
296
388
|
await new Promise((resolve) => setTimeout(resolve, WAIT_INTERVAL_MS));
|
|
297
|
-
state =
|
|
389
|
+
state = getWorkspaceLspRuntime(cwd);
|
|
298
390
|
}
|
|
299
391
|
|
|
300
392
|
return state;
|
|
301
393
|
}
|
|
302
394
|
|
|
303
395
|
/** Remove the LSP service state for a session cwd. */
|
|
304
|
-
export function
|
|
396
|
+
export function clearWorkspaceLspRuntime(cwd: string): void {
|
|
305
397
|
registry.clear(cwd);
|
|
306
398
|
}
|
|
@@ -29,6 +29,7 @@ This package provides the parser-backed structural substrate consumed by `@mrclr
|
|
|
29
29
|
- an owned parsing session API for direct library consumers
|
|
30
30
|
- a `StructuralProvider` adapter published through `./provider/tree-sitter-provider`
|
|
31
31
|
- structural extraction helpers for outline/import/export/node/callee/call-site analysis inside the library surface
|
|
32
|
+
- operation-specific extension discovery through `getStructuralSearchSupportedExtensions()`
|
|
32
33
|
|
|
33
34
|
It does **not** register pi tools or commands on its own.
|
|
34
35
|
|
|
@@ -49,6 +50,8 @@ Coordinates in the library APIs use **1-based** line and character columns. Char
|
|
|
49
50
|
- R (`.r`)
|
|
50
51
|
- SQL (`.sql`)
|
|
51
52
|
|
|
53
|
+
Parser support is broader than extractor support. Outline, import, and export collection currently support JavaScript/TypeScript-family grammars. Call-site collection supports every listed family except HTML and SQL. Consumers performing a bulk structural scan should use `getStructuralSearchSupportedExtensions(operation)` rather than treating every parseable extension as eligible.
|
|
54
|
+
|
|
52
55
|
## Architecture
|
|
53
56
|
|
|
54
57
|
`@mrclrchtr/supi-tree-sitter` is the **structural substrate** in SuPi's
|
|
@@ -101,6 +104,7 @@ if (state.kind === "ready") {
|
|
|
101
104
|
- `src/index.ts` — re-export surface
|
|
102
105
|
- `src/session/runtime.ts` — parser and query runtime
|
|
103
106
|
- `src/session/session.ts` — runtime-backed service helpers and owned session API
|
|
107
|
+
- `src/operation-support.ts` — authoritative operation-specific extension support
|
|
104
108
|
- `src/session/service-registry.ts` — shared session-scoped structural service registry
|
|
105
109
|
- `src/provider/tree-sitter-provider.ts` — `StructuralProvider` adapter consumed by `@mrclrchtr/supi-code-intelligence`
|
|
106
110
|
- `src/tool/outline.ts`, `src/tool/imports.ts`, `src/tool/exports.ts`, `src/tool/node-at.ts`, `src/tool/callees.ts`, `src/tool/call-sites.ts` — structural analyses exposed through the library surface
|
package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md
CHANGED
|
@@ -8,6 +8,14 @@ This is a **library-only package** — it has no pi extension surface, no user-f
|
|
|
8
8
|
|
|
9
9
|
- `@mrclrchtr/supi-code-runtime/api` — shared canonical types, capability interfaces, workspace runtime registry, and typed request context
|
|
10
10
|
|
|
11
|
+
Read-only provider methods return `CodeQueryResult<T>`:
|
|
12
|
+
|
|
13
|
+
- `completed` — collection completed; `data` may be empty or `null`
|
|
14
|
+
- `partial` — usable data was collected, but one or more provider branches failed
|
|
15
|
+
- `unavailable` — no result was established; includes a reason
|
|
16
|
+
|
|
17
|
+
This keeps successful zero-result facts distinct from routing, transport, and provider failures.
|
|
18
|
+
|
|
11
19
|
## License
|
|
12
20
|
|
|
13
21
|
MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrclrchtr/supi-core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "SuPi core — shared infrastructure for SuPi extensions (XML context tags, config system)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -54,7 +54,6 @@
|
|
|
54
54
|
},
|
|
55
55
|
"main": "src/api.ts",
|
|
56
56
|
"exports": {
|
|
57
|
-
"./abort-utils": "./src/abort-utils.ts",
|
|
58
57
|
"./api": "./src/api.ts",
|
|
59
58
|
"./config": "./src/config.ts",
|
|
60
59
|
"./context": "./src/context.ts",
|
|
@@ -75,7 +74,6 @@
|
|
|
75
74
|
"./status-spinner": "./src/status-spinner.ts",
|
|
76
75
|
"./terminal": "./src/terminal.ts",
|
|
77
76
|
"./tool-framework": "./src/tool-framework.ts",
|
|
78
|
-
"./prompt-surface": "./src/prompt-surface.ts"
|
|
79
|
-
"./types": "./src/types.ts"
|
|
77
|
+
"./prompt-surface": "./src/prompt-surface.ts"
|
|
80
78
|
}
|
|
81
79
|
}
|
|
@@ -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";
|
|
@@ -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.
|
|
@@ -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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mrclrchtr/supi-code-runtime",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "SuPi code-runtime — shared workspace context, capability contracts, and canonical types for the code-understanding stack",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"!__tests__"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@mrclrchtr/supi-core": "
|
|
32
|
+
"@mrclrchtr/supi-core": "4.0.0"
|
|
33
33
|
},
|
|
34
34
|
"bundledDependencies": [
|
|
35
35
|
"@mrclrchtr/supi-core"
|
|
@@ -15,6 +15,14 @@ export type {
|
|
|
15
15
|
StructuralProvider,
|
|
16
16
|
StructuralResult,
|
|
17
17
|
} from "./capability/types.ts";
|
|
18
|
+
export type { CodeQueryResult } from "./query-result.ts";
|
|
19
|
+
// Shared query-result constructors and contract
|
|
20
|
+
export {
|
|
21
|
+
completedCodeQuery,
|
|
22
|
+
mapCodeQueryResult,
|
|
23
|
+
partialCodeQuery,
|
|
24
|
+
unavailableCodeQuery,
|
|
25
|
+
} from "./query-result.ts";
|
|
18
26
|
// Shared canonical types
|
|
19
27
|
export type {
|
|
20
28
|
CalleeDepth,
|
|
@@ -25,7 +33,9 @@ export type {
|
|
|
25
33
|
CodeResult,
|
|
26
34
|
CodeSymbol,
|
|
27
35
|
ConfidenceMode,
|
|
36
|
+
DeclarationNesting,
|
|
28
37
|
DisambiguationCandidate,
|
|
38
|
+
DocumentCodeSymbol,
|
|
29
39
|
ExportData,
|
|
30
40
|
FileEdit,
|
|
31
41
|
ImportData,
|
|
@@ -37,7 +47,6 @@ export type {
|
|
|
37
47
|
SourceRange,
|
|
38
48
|
WorkspaceEdit,
|
|
39
49
|
} from "./types.ts";
|
|
40
|
-
export { normalizeRefactorOperation } from "./types.ts";
|
|
41
50
|
export type { WorkspaceContext } from "./workspace/context.ts";
|
|
42
51
|
// Workspace context
|
|
43
52
|
export { createWorkspaceContext } from "./workspace/context.ts";
|