@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,35 @@
|
|
|
1
|
+
/** Execution controls shared by Workspace code-intelligence session workflows. */
|
|
2
|
+
|
|
3
|
+
/** Stable progress event emitted by a session-owned workflow. */
|
|
4
|
+
export interface WorkflowProgressEvent {
|
|
5
|
+
readonly intent:
|
|
6
|
+
| "resolve"
|
|
7
|
+
| "inspect"
|
|
8
|
+
| "orientation"
|
|
9
|
+
| "graph"
|
|
10
|
+
| "find"
|
|
11
|
+
| "health"
|
|
12
|
+
| "refactor-plan"
|
|
13
|
+
| "refactor-apply";
|
|
14
|
+
readonly phase: string;
|
|
15
|
+
readonly message: string;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/** Per-call cancellation and progress controls. */
|
|
19
|
+
export interface WorkflowControl {
|
|
20
|
+
readonly signal?: AbortSignal;
|
|
21
|
+
readonly progress?: (event: WorkflowProgressEvent) => void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Emit one stable progress event when a sink is present. */
|
|
25
|
+
export function reportProgress(
|
|
26
|
+
control: WorkflowControl | undefined,
|
|
27
|
+
event: WorkflowProgressEvent,
|
|
28
|
+
): void {
|
|
29
|
+
control?.progress?.(Object.freeze(event));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Throw the platform-standard cancellation reason before starting a phase. */
|
|
33
|
+
export function throwIfAborted(control: WorkflowControl | undefined): void {
|
|
34
|
+
control?.signal?.throwIfAborted();
|
|
35
|
+
}
|
|
@@ -1,66 +1,39 @@
|
|
|
1
|
-
// LSP
|
|
2
|
-
//
|
|
3
|
-
// Registers session_start and session_shutdown handlers that manage
|
|
4
|
-
// the LspRuntimeController lifecycle.
|
|
1
|
+
// LSP lifecycle backed by the process-shared Workspace provider host.
|
|
5
2
|
|
|
6
3
|
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
7
|
-
import { getDefaultWorkspaceRuntime } from "@mrclrchtr/supi-code-runtime/api";
|
|
8
|
-
import {
|
|
9
|
-
LspRuntimeController,
|
|
10
|
-
loadLspSettings,
|
|
11
|
-
scanWorkspaceSentinels,
|
|
12
|
-
} from "@mrclrchtr/supi-lsp/api";
|
|
13
4
|
import { unregisterLspFooterContribution } from "../../ui/footer.ts";
|
|
5
|
+
import { acquireWorkspaceProviderHost } from "../workspace-provider-host.ts";
|
|
14
6
|
import type { LspAdapterState } from "./state.ts";
|
|
15
7
|
|
|
16
|
-
|
|
8
|
+
/** Acquire providers once per workspace and release them after the final Pi session ends. */
|
|
9
|
+
export function registerLspSessionLifecycle(
|
|
10
|
+
pi: ExtensionAPI,
|
|
11
|
+
state: LspAdapterState,
|
|
12
|
+
onStarted?: (ctx: ExtensionContext) => void | Promise<void>,
|
|
13
|
+
): void {
|
|
17
14
|
pi.on("session_start", async (_event, ctx: ExtensionContext) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (state.controller) {
|
|
22
|
-
await state.controller.shutdown();
|
|
23
|
-
state.controller = null;
|
|
24
|
-
}
|
|
25
|
-
resetDiagnosticContext(state);
|
|
15
|
+
await state.providerLease?.release();
|
|
16
|
+
state.providerLease = null;
|
|
17
|
+
state.controller = null;
|
|
26
18
|
state.lspActive = false;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
state.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (result.kind === "ready") {
|
|
38
|
-
state.controller = controller;
|
|
39
|
-
state.lspActive = true;
|
|
40
|
-
state.sentinelSnapshot = scanWorkspaceSentinels(cwd);
|
|
41
|
-
} else {
|
|
42
|
-
state.controller = null;
|
|
43
|
-
resetDiagnosticContext(state);
|
|
44
|
-
state.lspActive = false;
|
|
45
|
-
}
|
|
19
|
+
state.sentinelSnapshot = new Map();
|
|
20
|
+
|
|
21
|
+
const lease = await acquireWorkspaceProviderHost(ctx.cwd, {
|
|
22
|
+
projectTrusted: ctx.isProjectTrusted(),
|
|
23
|
+
});
|
|
24
|
+
state.providerLease = lease;
|
|
25
|
+
state.controller = lease.lspController;
|
|
26
|
+
state.lspActive = lease.lspController?.kind === "ready";
|
|
27
|
+
state.sentinelSnapshot = lease.sentinelSnapshot;
|
|
28
|
+
await onStarted?.(ctx);
|
|
46
29
|
});
|
|
47
30
|
|
|
48
|
-
pi.on("session_shutdown", async (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
resetDiagnosticContext(state);
|
|
31
|
+
pi.on("session_shutdown", async () => {
|
|
32
|
+
await state.providerLease?.release();
|
|
33
|
+
state.providerLease = null;
|
|
34
|
+
state.controller = null;
|
|
54
35
|
state.lspActive = false;
|
|
36
|
+
state.sentinelSnapshot = new Map();
|
|
55
37
|
unregisterLspFooterContribution();
|
|
56
38
|
});
|
|
57
39
|
}
|
|
58
|
-
|
|
59
|
-
/** Clear diagnostic context fields that could leak across sessions. */
|
|
60
|
-
function resetDiagnosticContext(state: LspAdapterState): void {
|
|
61
|
-
state.currentContextToken = null;
|
|
62
|
-
state.lastDiagnosticsFingerprint = null;
|
|
63
|
-
state.staleSuspected = false;
|
|
64
|
-
state.lastWorkspaceChangeAt = 0;
|
|
65
|
-
state.contextCounter = 0;
|
|
66
|
-
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime maintenance — sentinel-sync, stale-module resync, prune, and refresh.
|
|
3
|
+
*
|
|
4
|
+
* Extracted from the former diagnostic-injection.ts. These are non-presentational
|
|
5
|
+
* maintenance operations that keep LSP state fresh for explicit code_health and
|
|
6
|
+
* semantic tool queries.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import * as nodePath from "node:path";
|
|
10
|
+
import type { WorkspaceLspRuntime } from "@mrclrchtr/supi-lsp/api";
|
|
11
|
+
import {
|
|
12
|
+
clearTsconfigCache,
|
|
13
|
+
isLikelyStaleDiagnostic,
|
|
14
|
+
syncWorkspaceSentinelSnapshot,
|
|
15
|
+
} from "@mrclrchtr/supi-lsp/api";
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Run sentinel-sync, stale-module resync, prune, and diagnostic refresh
|
|
19
|
+
* as a single maintenance pass. Call before explicit diagnostic queries
|
|
20
|
+
* (code_health with refresh:true) or semantic tool readiness checks.
|
|
21
|
+
*/
|
|
22
|
+
export async function refreshLspMaintenance(
|
|
23
|
+
runtime: WorkspaceLspRuntime,
|
|
24
|
+
cwd: string,
|
|
25
|
+
sentinelSnapshot: Map<string, number>,
|
|
26
|
+
): Promise<Map<string, number>> {
|
|
27
|
+
// Sentinel refresh: detect lockfile/tsconfig/d.ts changes from outside
|
|
28
|
+
// write/edit/code_refactor_apply.
|
|
29
|
+
const { snapshot, changes } = syncWorkspaceSentinelSnapshot(cwd, sentinelSnapshot);
|
|
30
|
+
|
|
31
|
+
if (changes.length > 0) {
|
|
32
|
+
clearTsconfigCache();
|
|
33
|
+
runtime.noteWorkspaceChanges(changes);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Stale-module resync: force-reopen files with "Cannot find module" errors
|
|
37
|
+
await resyncStaleModuleFiles(runtime, cwd);
|
|
38
|
+
|
|
39
|
+
// Two-pass prune/refresh for diagnostics
|
|
40
|
+
runtime.pruneMissingFiles();
|
|
41
|
+
try {
|
|
42
|
+
await runtime.refreshOpenDiagnostics();
|
|
43
|
+
} catch {
|
|
44
|
+
/* best-effort */
|
|
45
|
+
}
|
|
46
|
+
runtime.pruneMissingFiles();
|
|
47
|
+
|
|
48
|
+
return snapshot;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/** Re-open files with stale module-resolution errors. */
|
|
52
|
+
async function resyncStaleModuleFiles(runtime: WorkspaceLspRuntime, cwd: string): Promise<void> {
|
|
53
|
+
const outstanding = runtime.getOutstandingDiagnostics(1);
|
|
54
|
+
const staleFiles: string[] = [];
|
|
55
|
+
|
|
56
|
+
for (const entry of outstanding) {
|
|
57
|
+
if (entry.diagnostics.some((d) => isLikelyStaleDiagnostic(d))) {
|
|
58
|
+
staleFiles.push(entry.file);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
if (staleFiles.length === 0) return;
|
|
63
|
+
|
|
64
|
+
for (const file of staleFiles) {
|
|
65
|
+
const filePath = nodePath.resolve(cwd, file);
|
|
66
|
+
runtime.closeFile(filePath);
|
|
67
|
+
await runtime.trackFile(filePath);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
await runtime.refreshOpenDiagnostics({ quietMs: 300, maxWaitMs: 2000 });
|
|
72
|
+
} catch {
|
|
73
|
+
/* best-effort */
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
// Workspace recovery handler — tool_result event that recovers LSP state after
|
|
1
|
+
// Workspace recovery handler — tool_result event that recovers LSP state after
|
|
2
|
+
// file-mutating tool calls.
|
|
2
3
|
//
|
|
3
|
-
// Notifies the LSP
|
|
4
|
+
// Notifies the workspace LSP runtime about file changes so diagnostics stay fresh
|
|
5
|
+
// for explicit code_health and semantic tool queries.
|
|
4
6
|
|
|
5
7
|
import * as nodePath from "node:path";
|
|
6
8
|
import type {
|
|
@@ -8,40 +10,45 @@ import type {
|
|
|
8
10
|
ExtensionContext,
|
|
9
11
|
ToolResultEvent,
|
|
10
12
|
} from "@earendil-works/pi-coding-agent";
|
|
13
|
+
import { fileToUri } from "@mrclrchtr/supi-core/path";
|
|
11
14
|
import { clearTsconfigCache } from "@mrclrchtr/supi-lsp/api";
|
|
12
15
|
import type { LspAdapterState } from "./state.ts";
|
|
13
16
|
|
|
17
|
+
/** Tool names whose successful results should trigger workspace change notifications. */
|
|
18
|
+
const MUTATING_TOOL_NAMES = new Set(["write", "edit", "code_refactor_apply"]);
|
|
19
|
+
|
|
14
20
|
export function registerWorkspaceRecoveryHandler(pi: ExtensionAPI, state: LspAdapterState): void {
|
|
21
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: handler branches per tool name; extracting helpers would add indirection
|
|
15
22
|
pi.on("tool_result", async (event: ToolResultEvent, _ctx: ExtensionContext) => {
|
|
16
|
-
const
|
|
17
|
-
if (!
|
|
23
|
+
const runtime = state.controller?.workspaceRuntime;
|
|
24
|
+
if (!runtime || event.isError) return;
|
|
25
|
+
if (!MUTATING_TOOL_NAMES.has(event.toolName)) return;
|
|
18
26
|
|
|
19
|
-
const
|
|
20
|
-
|
|
27
|
+
const filePaths =
|
|
28
|
+
event.toolName === "code_refactor_apply"
|
|
29
|
+
? getRefactorApplyPaths(event)
|
|
30
|
+
: [getFilePathFromToolResult(event)].filter((p): p is string => p !== null);
|
|
21
31
|
|
|
22
|
-
|
|
23
|
-
const normalized = filePath.startsWith("@") ? filePath.slice(1) : filePath;
|
|
24
|
-
const resolved = nodePath.resolve(state.controller?.cwd ?? "", normalized);
|
|
32
|
+
if (filePaths.length === 0) return;
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
34
|
+
const cwd = state.controller?.cwd ?? "";
|
|
35
|
+
for (const filePath of filePaths) {
|
|
36
|
+
// Normalize @-prefixed paths (pi's built-in file tool convention)
|
|
37
|
+
const normalized = filePath.startsWith("@") ? filePath.slice(1) : filePath;
|
|
38
|
+
const resolved = nodePath.resolve(cwd, normalized);
|
|
31
39
|
|
|
32
|
-
|
|
33
|
-
|
|
40
|
+
// Invalidate tsconfig cache when config files change
|
|
41
|
+
const ext = nodePath.extname(resolved).toLowerCase();
|
|
42
|
+
if (ext === ".json" || ext === ".jsonc") {
|
|
43
|
+
clearTsconfigCache();
|
|
44
|
+
}
|
|
34
45
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
state.currentContextToken = null;
|
|
38
|
-
state.lastWorkspaceChangeAt = Date.now();
|
|
46
|
+
runtime.noteWorkspaceChanges([{ uri: fileToUri(resolved), type: 2 }]);
|
|
47
|
+
}
|
|
39
48
|
});
|
|
40
49
|
}
|
|
41
50
|
|
|
42
51
|
function getFilePathFromToolResult(event: ToolResultEvent): string | null {
|
|
43
|
-
if (event.isError) return null;
|
|
44
|
-
if (event.toolName !== "write" && event.toolName !== "edit") return null;
|
|
45
52
|
const input = (event as { input?: Record<string, unknown> }).input;
|
|
46
53
|
if (!input || typeof input !== "object") return null;
|
|
47
54
|
const pathValue = input.path;
|
|
@@ -49,7 +56,16 @@ function getFilePathFromToolResult(event: ToolResultEvent): string | null {
|
|
|
49
56
|
return pathValue;
|
|
50
57
|
}
|
|
51
58
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
59
|
+
/** Extract changed file paths emitted by a successful code_refactor_apply result. */
|
|
60
|
+
function getRefactorApplyPaths(event: ToolResultEvent): string[] {
|
|
61
|
+
const details = (event as { details?: unknown }).details as
|
|
62
|
+
| { data?: { changedFiles?: unknown } }
|
|
63
|
+
| undefined;
|
|
64
|
+
const changedFiles = details?.data?.changedFiles;
|
|
65
|
+
if (!Array.isArray(changedFiles)) return [];
|
|
66
|
+
return [
|
|
67
|
+
...new Set(
|
|
68
|
+
changedFiles.filter((file): file is string => typeof file === "string" && file.length > 0),
|
|
69
|
+
),
|
|
70
|
+
];
|
|
55
71
|
}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
// are deprecated and ignored. Per-language disable via
|
|
5
5
|
// `lsp.servers.<language>.enabled: false` is the only supported opt-out.
|
|
6
6
|
//
|
|
7
|
-
//
|
|
8
|
-
// - severity: number with labeled values
|
|
7
|
+
// Registered fields:
|
|
9
8
|
// - exclude: stringList
|
|
10
9
|
// - disabled_servers: custom submenu that writes per-language disable config
|
|
11
10
|
|
|
@@ -23,7 +22,6 @@ import { type LspSettings, loadConfig } from "@mrclrchtr/supi-lsp/api";
|
|
|
23
22
|
|
|
24
23
|
const LSP_DEFAULTS: LspSettings = {
|
|
25
24
|
enabled: true,
|
|
26
|
-
severity: 1,
|
|
27
25
|
active: [],
|
|
28
26
|
exclude: [],
|
|
29
27
|
};
|
|
@@ -138,13 +136,6 @@ export function registerLspSettings(pi: ExtensionAPI): void {
|
|
|
138
136
|
section: "lsp",
|
|
139
137
|
defaults: LSP_DEFAULTS,
|
|
140
138
|
fields: [
|
|
141
|
-
{
|
|
142
|
-
kind: "number" as const,
|
|
143
|
-
key: "severity",
|
|
144
|
-
label: "Inline Severity",
|
|
145
|
-
description: "Minimum diagnostic severity to show inline (1=errors, 4=hints)",
|
|
146
|
-
values: ["1", "2", "3", "4"],
|
|
147
|
-
},
|
|
148
139
|
{
|
|
149
140
|
kind: "stringList" as const,
|
|
150
141
|
key: "exclude",
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// through LspRuntimeController from @mrclrchtr/supi-lsp/api.
|
|
5
5
|
|
|
6
6
|
import type { LspRuntimeController } from "@mrclrchtr/supi-lsp/api";
|
|
7
|
+
import type { WorkspaceProviderHostLease } from "../workspace-provider-host.ts";
|
|
7
8
|
|
|
8
9
|
/** LSP status overlay UI state (handle + close). */
|
|
9
10
|
export interface LspInspectorState {
|
|
@@ -15,32 +16,23 @@ export interface LspInspectorState {
|
|
|
15
16
|
* In-memory state for the umbrella LSP adapter.
|
|
16
17
|
*
|
|
17
18
|
* Wraps the LspRuntimeController and tracks session-level state
|
|
18
|
-
* for
|
|
19
|
+
* for sentinel change detection and UI updates.
|
|
19
20
|
*/
|
|
20
21
|
export interface LspAdapterState {
|
|
21
22
|
controller: LspRuntimeController | null;
|
|
22
|
-
|
|
23
|
+
providerLease: WorkspaceProviderHostLease | null;
|
|
23
24
|
inspector: LspInspectorState;
|
|
24
|
-
lastDiagnosticsFingerprint: string | null;
|
|
25
|
-
currentContextToken: string | null;
|
|
26
|
-
contextCounter: number;
|
|
27
25
|
lspActive: boolean;
|
|
28
|
-
|
|
29
|
-
lastWorkspaceChangeAt: number;
|
|
26
|
+
/** Snapshot of workspace sentinel files (package.json, tsconfig, lockfiles) for change detection. */
|
|
30
27
|
sentinelSnapshot: Map<string, number>;
|
|
31
28
|
}
|
|
32
29
|
|
|
33
30
|
export function createLspAdapterState(): LspAdapterState {
|
|
34
31
|
return {
|
|
35
32
|
controller: null,
|
|
36
|
-
|
|
33
|
+
providerLease: null,
|
|
37
34
|
inspector: { handle: null, close: null },
|
|
38
|
-
lastDiagnosticsFingerprint: null,
|
|
39
|
-
currentContextToken: null,
|
|
40
|
-
contextCounter: 0,
|
|
41
35
|
lspActive: false,
|
|
42
|
-
staleSuspected: false,
|
|
43
|
-
lastWorkspaceChangeAt: 0,
|
|
44
36
|
sentinelSnapshot: new Map(),
|
|
45
37
|
};
|
|
46
38
|
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { realpathSync } from "node:fs";
|
|
2
|
+
import { resolve } from "node:path";
|
|
3
|
+
import { getDefaultWorkspaceRuntime } from "@mrclrchtr/supi-code-runtime/api";
|
|
4
|
+
import { LspRuntimeController, scanWorkspaceSentinels } from "@mrclrchtr/supi-lsp/api";
|
|
5
|
+
import { TreeSitterRuntimeController } from "@mrclrchtr/supi-tree-sitter/api";
|
|
6
|
+
|
|
7
|
+
const HOSTS = Symbol.for("supi-code-intelligence/workspace-provider-hosts");
|
|
8
|
+
const SHUTDOWN_GRACE_MS = 2_000;
|
|
9
|
+
|
|
10
|
+
type HostRegistry = Map<string, WorkspaceProviderHost>;
|
|
11
|
+
|
|
12
|
+
/** One acquired reference to a process-shared Workspace provider host. */
|
|
13
|
+
export interface WorkspaceProviderHostLease {
|
|
14
|
+
cwd: string;
|
|
15
|
+
lspController: LspRuntimeController | null;
|
|
16
|
+
sentinelSnapshot: Map<string, number>;
|
|
17
|
+
release(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function registry(): HostRegistry {
|
|
21
|
+
const global = globalThis as typeof globalThis & { [HOSTS]?: HostRegistry };
|
|
22
|
+
global[HOSTS] ??= new Map();
|
|
23
|
+
return global[HOSTS];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function canonicalWorkspace(cwd: string): string {
|
|
27
|
+
try {
|
|
28
|
+
return realpathSync(cwd);
|
|
29
|
+
} catch {
|
|
30
|
+
return resolve(cwd);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function settleWithin(operation: Promise<void>): Promise<void> {
|
|
35
|
+
return Promise.race([
|
|
36
|
+
operation.catch(() => undefined),
|
|
37
|
+
new Promise<void>((resolveGrace) => {
|
|
38
|
+
const timeout = setTimeout(resolveGrace, SHUTDOWN_GRACE_MS);
|
|
39
|
+
timeout.unref?.();
|
|
40
|
+
}),
|
|
41
|
+
]);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
class WorkspaceProviderHost {
|
|
45
|
+
readonly cwd: string;
|
|
46
|
+
#leases = 0;
|
|
47
|
+
#lsp: LspRuntimeController | null = null;
|
|
48
|
+
#tree: TreeSitterRuntimeController | null = null;
|
|
49
|
+
#treeStarted = false;
|
|
50
|
+
#lspStarted = false;
|
|
51
|
+
#settledStart = Promise.resolve();
|
|
52
|
+
#closed = false;
|
|
53
|
+
|
|
54
|
+
constructor(cwd: string) {
|
|
55
|
+
this.cwd = cwd;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async acquire(projectTrusted: boolean): Promise<WorkspaceProviderHostLease> {
|
|
59
|
+
if (this.#closed) throw new Error("Workspace provider host is closed.");
|
|
60
|
+
// Count this pending acquirer before awaiting startup so the final active lease cannot shut it down.
|
|
61
|
+
this.#leases++;
|
|
62
|
+
this.#settledStart = this.#settledStart
|
|
63
|
+
.then(() => this.#startMissing(projectTrusted))
|
|
64
|
+
.catch(() => undefined);
|
|
65
|
+
await this.#settledStart;
|
|
66
|
+
let released = false;
|
|
67
|
+
return {
|
|
68
|
+
cwd: this.cwd,
|
|
69
|
+
lspController: projectTrusted ? this.#lsp : null,
|
|
70
|
+
sentinelSnapshot:
|
|
71
|
+
projectTrusted && this.#lsp?.kind === "ready"
|
|
72
|
+
? scanWorkspaceSentinels(this.cwd)
|
|
73
|
+
: new Map(),
|
|
74
|
+
release: async () => {
|
|
75
|
+
if (released) return;
|
|
76
|
+
released = true;
|
|
77
|
+
this.#leases--;
|
|
78
|
+
if (this.#leases === 0) {
|
|
79
|
+
registry().delete(this.cwd);
|
|
80
|
+
await this.#shutdown();
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async #startMissing(projectTrusted: boolean): Promise<void> {
|
|
87
|
+
const runtime = getDefaultWorkspaceRuntime();
|
|
88
|
+
if (!this.#treeStarted) {
|
|
89
|
+
this.#treeStarted = true;
|
|
90
|
+
this.#tree = new TreeSitterRuntimeController(this.cwd, runtime);
|
|
91
|
+
await this.#tree.start().catch(() => undefined);
|
|
92
|
+
}
|
|
93
|
+
if (!projectTrusted || this.#lspStarted) return;
|
|
94
|
+
this.#lspStarted = true;
|
|
95
|
+
this.#lsp = new LspRuntimeController(this.cwd, runtime);
|
|
96
|
+
await this.#lsp.start().catch(() => undefined);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
async #shutdown(): Promise<void> {
|
|
100
|
+
if (this.#closed) return;
|
|
101
|
+
this.#closed = true;
|
|
102
|
+
await Promise.all([
|
|
103
|
+
...(this.#lsp ? [settleWithin(this.#lsp.shutdown())] : []),
|
|
104
|
+
...(this.#tree ? [settleWithin(this.#tree.shutdown())] : []),
|
|
105
|
+
]);
|
|
106
|
+
this.#lsp = null;
|
|
107
|
+
this.#tree = null;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/** Acquire shared semantic and structural providers for one canonical workspace. */
|
|
112
|
+
export async function acquireWorkspaceProviderHost(
|
|
113
|
+
cwd: string,
|
|
114
|
+
options: { projectTrusted: boolean },
|
|
115
|
+
): Promise<WorkspaceProviderHostLease> {
|
|
116
|
+
const workspace = canonicalWorkspace(cwd);
|
|
117
|
+
const hosts = registry();
|
|
118
|
+
let host = hosts.get(workspace);
|
|
119
|
+
if (!host) {
|
|
120
|
+
host = new WorkspaceProviderHost(workspace);
|
|
121
|
+
hosts.set(workspace, host);
|
|
122
|
+
}
|
|
123
|
+
return host.acquire(options.projectTrusted);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** Clear process-shared hosts between isolated tests. */
|
|
127
|
+
export function resetWorkspaceProviderHostsForTests(): void {
|
|
128
|
+
registry().clear();
|
|
129
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** Canonical public AST-kind vocabulary for code_find. */
|
|
2
|
+
export const CODE_FIND_AST_KINDS = [
|
|
3
|
+
"definition",
|
|
4
|
+
"import",
|
|
5
|
+
"export",
|
|
6
|
+
"call",
|
|
7
|
+
"type",
|
|
8
|
+
"interface",
|
|
9
|
+
"class",
|
|
10
|
+
"method",
|
|
11
|
+
"enum",
|
|
12
|
+
] as const;
|
|
13
|
+
|
|
14
|
+
/** One supported code_find AST search kind. */
|
|
15
|
+
export type CodeFindAstKind = (typeof CODE_FIND_AST_KINDS)[number];
|
|
16
|
+
|
|
17
|
+
const CODE_FIND_AST_KIND_SET = new Set<string>(CODE_FIND_AST_KINDS);
|
|
18
|
+
|
|
19
|
+
/** Return whether a direct caller supplied a supported code_find AST kind. */
|
|
20
|
+
export function isCodeFindAstKind(value: unknown): value is CodeFindAstKind {
|
|
21
|
+
return typeof value === "string" && CODE_FIND_AST_KIND_SET.has(value);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Exhaustive presentation labels keyed by the canonical AST-kind vocabulary. */
|
|
25
|
+
export const CODE_FIND_AST_KIND_LABELS = {
|
|
26
|
+
definition: "Definitions",
|
|
27
|
+
import: "Imports",
|
|
28
|
+
export: "Exports",
|
|
29
|
+
call: "Calls",
|
|
30
|
+
type: "Types",
|
|
31
|
+
interface: "Interfaces",
|
|
32
|
+
class: "Classes",
|
|
33
|
+
method: "Methods",
|
|
34
|
+
enum: "Enums",
|
|
35
|
+
} as const satisfies Record<CodeFindAstKind, string>;
|