@mrclrchtr/supi-code-intelligence 3.2.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +154 -435
- package/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/README.md +72 -62
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-lsp/package.json +4 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +9 -9
- package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +70 -41
- package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +16 -13
- package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +2 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +6 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-diagnostics.ts +5 -95
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -3
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +44 -6
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +47 -65
- package/node_modules/@mrclrchtr/supi-lsp/src/provider/lsp-semantic-provider.ts +132 -79
- package/node_modules/@mrclrchtr/supi-lsp/src/provider/refactor-planning.ts +6 -14
- package/node_modules/@mrclrchtr/supi-lsp/src/session/readiness.ts +38 -0
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-controller.ts +87 -75
- package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registration.ts +5 -5
- package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts} +163 -71
- package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +4 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
- package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +4 -21
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm.json +2 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/rust/tree-sitter-rust.wasm.json +1 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +3 -3
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-kotlin-wasm.mjs +6 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-sql-wasm.mjs +18 -4
- package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/vendor-wasm.mjs +17 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/api.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/coordinates.ts +20 -41
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/index.ts +2 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/language.ts +7 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/operation-support.ts +40 -0
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/session.ts +9 -7
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/call-sites.ts +6 -1
- package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/callees.ts +76 -37
- package/node_modules/yaml/LICENSE +13 -0
- package/node_modules/yaml/README.md +172 -0
- package/node_modules/yaml/bin.mjs +11 -0
- package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
- package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
- package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
- package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
- package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
- package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
- package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
- package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
- package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
- package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
- package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
- package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
- package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
- package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
- package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
- package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
- package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
- package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
- package/node_modules/yaml/browser/dist/errors.js +57 -0
- package/node_modules/yaml/browser/dist/index.js +17 -0
- package/node_modules/yaml/browser/dist/log.js +11 -0
- package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
- package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
- package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
- package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
- package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
- package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
- package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
- package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
- package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
- package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
- package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
- package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
- package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
- package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
- package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
- package/node_modules/yaml/browser/dist/public-api.js +102 -0
- package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
- package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
- package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
- package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
- package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
- package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
- package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
- package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
- package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
- package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
- package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
- package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
- package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
- package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
- package/node_modules/yaml/browser/dist/util.js +11 -0
- package/node_modules/yaml/browser/dist/visit.js +233 -0
- package/node_modules/yaml/browser/index.js +5 -0
- package/node_modules/yaml/browser/package.json +3 -0
- package/node_modules/yaml/dist/cli.d.ts +8 -0
- package/node_modules/yaml/dist/cli.mjs +201 -0
- package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
- package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
- package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
- package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
- package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
- package/node_modules/yaml/dist/compose/compose-node.js +112 -0
- package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
- package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
- package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
- package/node_modules/yaml/dist/compose/composer.js +224 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
- package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
- package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
- package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
- package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
- package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
- package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
- package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
- package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
- package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
- package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
- package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
- package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
- package/node_modules/yaml/dist/doc/Document.js +337 -0
- package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
- package/node_modules/yaml/dist/doc/anchors.js +76 -0
- package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
- package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
- package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
- package/node_modules/yaml/dist/doc/createNode.js +90 -0
- package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
- package/node_modules/yaml/dist/doc/directives.js +178 -0
- package/node_modules/yaml/dist/errors.d.ts +21 -0
- package/node_modules/yaml/dist/errors.js +62 -0
- package/node_modules/yaml/dist/index.d.ts +25 -0
- package/node_modules/yaml/dist/index.js +50 -0
- package/node_modules/yaml/dist/log.d.ts +3 -0
- package/node_modules/yaml/dist/log.js +19 -0
- package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/Alias.js +118 -0
- package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
- package/node_modules/yaml/dist/nodes/Collection.js +151 -0
- package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/Node.js +40 -0
- package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
- package/node_modules/yaml/dist/nodes/Pair.js +39 -0
- package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
- package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
- package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
- package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
- package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
- package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
- package/node_modules/yaml/dist/nodes/identity.js +53 -0
- package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
- package/node_modules/yaml/dist/nodes/toJS.js +39 -0
- package/node_modules/yaml/dist/options.d.ts +350 -0
- package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
- package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
- package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
- package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
- package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
- package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
- package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
- package/node_modules/yaml/dist/parse/cst.js +112 -0
- package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
- package/node_modules/yaml/dist/parse/lexer.js +723 -0
- package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
- package/node_modules/yaml/dist/parse/line-counter.js +41 -0
- package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
- package/node_modules/yaml/dist/parse/parser.js +980 -0
- package/node_modules/yaml/dist/public-api.d.ts +44 -0
- package/node_modules/yaml/dist/public-api.js +107 -0
- package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
- package/node_modules/yaml/dist/schema/Schema.js +39 -0
- package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/map.js +19 -0
- package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
- package/node_modules/yaml/dist/schema/common/null.js +17 -0
- package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/seq.js +19 -0
- package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
- package/node_modules/yaml/dist/schema/common/string.js +16 -0
- package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/bool.js +21 -0
- package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/float.js +47 -0
- package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
- package/node_modules/yaml/dist/schema/core/int.js +42 -0
- package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/core/schema.js +25 -0
- package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
- package/node_modules/yaml/dist/schema/json/schema.js +64 -0
- package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
- package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
- package/node_modules/yaml/dist/schema/tags.js +99 -0
- package/node_modules/yaml/dist/schema/types.d.ts +92 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
- package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
- package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
- package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
- package/node_modules/yaml/dist/stringify/stringify.js +132 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
- package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
- package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
- package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
- package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
- package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
- package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
- package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
- package/node_modules/yaml/dist/test-events.d.ts +4 -0
- package/node_modules/yaml/dist/test-events.js +134 -0
- package/node_modules/yaml/dist/util.d.ts +16 -0
- package/node_modules/yaml/dist/util.js +28 -0
- package/node_modules/yaml/dist/visit.d.ts +102 -0
- package/node_modules/yaml/dist/visit.js +236 -0
- package/node_modules/yaml/package.json +97 -0
- package/node_modules/yaml/util.js +2 -0
- package/package.json +9 -8
- package/src/analysis/architecture/discovery.ts +213 -227
- package/src/analysis/architecture/manifest.ts +147 -0
- package/src/analysis/architecture/model.ts +119 -52
- package/src/analysis/architecture/workspace-config.ts +229 -0
- package/src/analysis/{coverage/coverage-warnings.ts → capability/capability-warnings.ts} +41 -78
- package/src/analysis/evidence.ts +22 -5
- package/src/analysis/health/diagnostics.ts +183 -0
- package/src/analysis/health/recovery.ts +39 -0
- package/src/analysis/health/signals.ts +20 -0
- package/src/analysis/instruction-files.ts +60 -48
- package/src/analysis/provider.ts +31 -12
- package/src/analysis/readiness.ts +29 -9
- package/src/{tool/refactor-apply → analysis/refactor}/apply.ts +120 -26
- package/src/analysis/refactor/position.ts +6 -0
- package/src/analysis/refactor/safety.ts +4 -11
- package/src/analysis/references/locations.ts +20 -0
- package/src/analysis/references/semantic-refs.ts +21 -11
- package/src/{tool/graph → analysis/relations}/implementations.ts +27 -23
- package/src/analysis/relations/provider-locations.ts +179 -0
- package/src/{tool/graph → analysis/relations}/references.ts +25 -21
- package/src/{tool/graph → analysis/relations}/types.ts +4 -19
- package/src/analysis/search/ast-scan.ts +376 -0
- package/src/analysis/search/call-name.ts +68 -0
- package/src/analysis/search/deadline.ts +84 -0
- package/src/analysis/search/paths.ts +88 -0
- package/src/analysis/search/pattern.ts +290 -246
- package/src/analysis/target/anchored.ts +72 -27
- package/src/analysis/target/file.ts +292 -132
- package/src/analysis/target/identity.ts +237 -0
- package/src/analysis/target/symbol.ts +169 -86
- package/src/analysis/target/types.ts +36 -4
- package/src/api.ts +21 -4
- package/src/app/app.ts +53 -46
- package/src/extension.ts +68 -66
- package/src/session/capability-adapter.ts +26 -118
- package/src/session/find-types.ts +38 -0
- package/src/session/find-workflow.ts +141 -0
- package/src/session/graph/collect.ts +181 -0
- package/src/session/graph-types.ts +77 -0
- package/src/session/graph-workflow.ts +152 -0
- package/src/session/health-types.ts +134 -0
- package/src/session/health-workflow.ts +341 -0
- package/src/session/input/common.ts +216 -0
- package/src/session/input/health-refactor.ts +169 -0
- package/src/session/input/workflows.ts +211 -0
- package/src/session/inspect/collect.ts +304 -0
- package/src/session/inspect/file-point.ts +69 -0
- package/src/session/inspect-types.ts +78 -0
- package/src/session/inspect-workflow.ts +157 -0
- package/src/session/orientation/collect.ts +718 -0
- package/src/session/orientation/context-facts.ts +319 -0
- package/src/session/orientation/context-sections.ts +352 -0
- package/src/session/orientation-types.ts +97 -0
- package/src/session/orientation-workflow.ts +307 -0
- package/src/session/refactor-plans.ts +1 -1
- package/src/session/refactor-types.ts +51 -0
- package/src/session/refactor-workflow.ts +263 -0
- package/src/session/session.ts +263 -234
- package/src/session/target-candidates.ts +60 -0
- package/src/session/target-input.ts +98 -0
- package/src/session/target-store.ts +132 -29
- package/src/session/target-workflow.ts +254 -302
- package/src/session/workflow-control.ts +35 -0
- package/src/substrate/lsp/lifecycle.ts +9 -22
- package/src/substrate/lsp/maintenance.ts +75 -0
- package/src/substrate/lsp/recovery.ts +41 -25
- package/src/substrate/lsp/settings.ts +1 -10
- package/src/substrate/lsp/state.ts +2 -13
- package/src/tool/find/ast-kinds.ts +35 -0
- package/src/tool/find/execute.ts +22 -113
- package/src/tool/find/markdown.ts +85 -221
- package/src/tool/find/modes.ts +5 -0
- package/src/tool/find/render.ts +57 -0
- package/src/tool/find/tui.ts +1 -1
- package/src/tool/graph/calls-md.ts +17 -30
- package/src/tool/graph/execute.ts +42 -103
- package/src/tool/graph/implementations-md.ts +32 -54
- package/src/tool/graph/markdown-base.ts +73 -196
- package/src/tool/graph/provider-location-md.ts +9 -0
- package/src/tool/graph/references-md.ts +34 -27
- package/src/tool/graph/tui.ts +8 -26
- package/src/tool/guidance.ts +31 -48
- package/src/tool/health/execute.ts +15 -56
- package/src/tool/health/markdown.ts +199 -148
- package/src/tool/health/semantic-state.ts +24 -0
- package/src/tool/health/tui.ts +262 -36
- package/src/tool/infra/error-results.ts +0 -2
- package/src/tool/infra/progress.ts +2 -2
- package/src/tool/infra/workflow-control.ts +11 -0
- package/src/tool/inspect/execute.ts +23 -63
- package/src/tool/inspect/markdown.ts +114 -95
- package/src/tool/inspect/tui.ts +7 -7
- package/src/tool/orientation/execute.ts +50 -37
- package/src/tool/orientation/markdown.ts +26 -31
- package/src/tool/orientation/tui.ts +41 -39
- package/src/tool/refactor-apply/execute.ts +23 -9
- package/src/tool/refactor-apply/tui.ts +7 -3
- package/src/tool/refactor-plan/execute.ts +44 -61
- package/src/tool/refactor-plan/markdown.ts +33 -56
- package/src/tool/refactor-plan/tui.ts +10 -11
- package/src/tool/register.ts +6 -5
- package/src/tool/resolve/execute.ts +23 -69
- package/src/tool/resolve/markdown.ts +125 -114
- package/src/tool/resolve/tui.ts +11 -9
- package/src/tool/result/assembly.ts +125 -0
- package/src/tool/result/errors.ts +20 -34
- package/src/tool/result/find.ts +107 -21
- package/src/tool/result/graph.ts +163 -64
- package/src/tool/result/health.ts +170 -73
- package/src/tool/result/inspect.ts +183 -41
- package/src/tool/result/orientation.ts +118 -16
- package/src/tool/result/refactor.ts +101 -21
- package/src/tool/result/resolve.ts +243 -80
- package/src/tool/result/types.ts +100 -56
- package/src/tool/schemas.ts +160 -231
- package/src/tool/specs.ts +57 -168
- package/src/types/details.ts +2 -4
- package/src/types/execution.ts +6 -15
- package/src/types/index.ts +2 -4
- package/src/types/tool-names.ts +1 -2
- package/src/ui/footer.ts +3 -3
- package/src/ui/markdown/gather.ts +17 -65
- package/src/ui/markdown/overview-data.ts +143 -21
- package/src/ui/markdown/overview.ts +27 -8
- package/src/ui/markdown/types.ts +12 -16
- package/src/ui/status-command.ts +39 -31
- package/src/ui/status-overlay.ts +23 -15
- package/src/ui/tui/common.ts +121 -74
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-augmentation.ts +0 -82
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-context.ts +0 -116
- package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-display.ts +0 -69
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/capability-index.ts +0 -24
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/client-pool.ts +0 -33
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/diagnostic-store.ts +0 -51
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-stale-resync.ts +0 -47
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/recovery-coordinator.ts +0 -37
- package/node_modules/@mrclrchtr/supi-lsp/src/manager/workspace-router.ts +0 -44
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
- package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
- package/src/analysis/brief/directory.ts +0 -324
- package/src/analysis/brief/enrich.ts +0 -157
- package/src/analysis/brief/file.ts +0 -84
- package/src/analysis/brief/inventory.ts +0 -177
- package/src/analysis/brief/main.ts +0 -176
- package/src/analysis/brief/models.ts +0 -75
- package/src/analysis/brief/public-brief.ts +0 -179
- package/src/analysis/brief/summarize.ts +0 -208
- package/src/analysis/brief/types.ts +0 -27
- package/src/analysis/brief/use-case.ts +0 -264
- package/src/analysis/search/ripgrep.ts +0 -558
- package/src/analysis/signals/git.ts +0 -89
- package/src/analysis/signals/project.ts +0 -189
- package/src/analysis/target/bridge.ts +0 -152
- package/src/analysis/target/file-resolution.ts +0 -125
- package/src/analysis/target/planner.ts +0 -92
- package/src/analysis/target/query.ts +0 -74
- package/src/analysis/target/resolve-common.ts +0 -115
- package/src/analysis/target/service.ts +0 -229
- package/src/analysis/tests/likely-tests.ts +0 -174
- package/src/analysis/tests/test-discovery.ts +0 -540
- package/src/analysis/tests/vitest.ts +0 -87
- package/src/app/manager.ts +0 -65
- package/src/substrate/lsp/diagnostic-injection.ts +0 -203
- package/src/substrate/lsp/overrides.ts +0 -132
- package/src/tool/find/orchestrate.ts +0 -317
- package/src/tool/find/semantic-search.ts +0 -128
- package/src/tool/graph/collect-relation.ts +0 -372
- package/src/tool/graph/orchestrate.ts +0 -259
- package/src/tool/health/orchestrate.ts +0 -151
- package/src/tool/health/sections/diagnostics.ts +0 -182
- package/src/tool/health/sections/recovery.ts +0 -89
- package/src/tool/health/sections/signals.ts +0 -89
- package/src/tool/impact/analysis.ts +0 -220
- package/src/tool/impact/change-set-impact.ts +0 -152
- package/src/tool/impact/execute.ts +0 -125
- package/src/tool/impact/file-level-impact.ts +0 -82
- package/src/tool/impact/markdown.ts +0 -283
- package/src/tool/impact/orchestrate.ts +0 -97
- package/src/tool/impact/result.ts +0 -2
- package/src/tool/impact/single-impact.ts +0 -90
- package/src/tool/impact/tui.ts +0 -39
- package/src/tool/impact/types.ts +0 -34
- package/src/tool/infra/cross-field.ts +0 -335
- package/src/tool/infra/pipeline.ts +0 -334
- package/src/tool/infra/readiness-message.ts +0 -5
- package/src/tool/inspect/orchestrate.ts +0 -154
- package/src/tool/orientation/deps.ts +0 -63
- package/src/tool/orientation/mode.ts +0 -139
- package/src/tool/orientation/orchestrate.ts +0 -475
- package/src/tool/orientation/precise-target.ts +0 -253
- package/src/tool/params.ts +0 -15
- package/src/tool/refactor-apply/markdown.ts +0 -118
- package/src/tool/refactor-apply/orchestrate.ts +0 -84
- package/src/tool/refactor-plan/orchestrate.ts +0 -355
- package/src/tool/resolve/orchestrate.ts +0 -38
- package/src/tool/result/impact.ts +0 -50
- package/src/ui/markdown/brief.ts +0 -218
- package/src/ui/message-renderer.ts +0 -121
- package/src/ui/tui/index.ts +0 -37
- /package/src/{tool/graph → analysis/relations}/callees.ts +0 -0
|
@@ -1,36 +1,158 @@
|
|
|
1
|
-
// Typed overview data builder from
|
|
1
|
+
// Typed overview data builder from directly observed package-manifest facts.
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import * as fs from "node:fs";
|
|
4
|
+
import * as path from "node:path";
|
|
5
|
+
import { detectGrammar } from "@mrclrchtr/supi-tree-sitter/api";
|
|
6
|
+
import type {
|
|
7
|
+
ArchitectureModel,
|
|
8
|
+
ManifestField,
|
|
9
|
+
ModuleInfo,
|
|
10
|
+
} from "../../analysis/architecture/model.ts";
|
|
5
11
|
import type { OverviewData, OverviewModule } from "./types.ts";
|
|
6
12
|
|
|
13
|
+
/** Maximum number of modules shown in the overview. */
|
|
14
|
+
const MAX_MODULES = 8;
|
|
15
|
+
/** Maximum characters per module description before truncation. */
|
|
16
|
+
const MAX_DESCRIPTION_LENGTH = 60;
|
|
17
|
+
|
|
18
|
+
/** Grammar ID to short language tag for the overview. */
|
|
19
|
+
const GRAMMAR_LANGUAGE_TAGS: Record<string, string> = {
|
|
20
|
+
javascript: "js",
|
|
21
|
+
typescript: "ts",
|
|
22
|
+
tsx: "tsx",
|
|
23
|
+
python: "py",
|
|
24
|
+
rust: "rs",
|
|
25
|
+
go: "go",
|
|
26
|
+
c: "c",
|
|
27
|
+
cpp: "cpp",
|
|
28
|
+
java: "java",
|
|
29
|
+
kotlin: "kt",
|
|
30
|
+
ruby: "rb",
|
|
31
|
+
bash: "sh",
|
|
32
|
+
html: "html",
|
|
33
|
+
r: "r",
|
|
34
|
+
sql: "sql",
|
|
35
|
+
};
|
|
36
|
+
|
|
7
37
|
/**
|
|
8
|
-
* Build structured overview data from
|
|
9
|
-
* No markdown rendering
|
|
38
|
+
* Build structured overview data from the same factual package collector used
|
|
39
|
+
* by on-demand Orientation. No markdown rendering happens here.
|
|
10
40
|
*/
|
|
11
41
|
export function buildOverviewData(model: ArchitectureModel): OverviewData | null {
|
|
12
42
|
if (model.modules.length === 0) return null;
|
|
13
43
|
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
description: mod.description,
|
|
20
|
-
isLeaf: !dependedOn.has(mod.name),
|
|
21
|
-
internalDeps: mod.internalDeps,
|
|
22
|
-
}));
|
|
23
|
-
|
|
24
|
-
const omittedModuleCount = Math.max(0, model.modules.length - 8);
|
|
25
|
-
|
|
26
|
-
const gitCtx = gatherGitContext(model.root);
|
|
27
|
-
const gitContextOverview = gitCtx ? formatGitContext(gitCtx) : null;
|
|
44
|
+
const sorted = [...model.modules].sort((left, right) =>
|
|
45
|
+
left.relativePath.localeCompare(right.relativePath),
|
|
46
|
+
);
|
|
47
|
+
const modules = sorted.slice(0, MAX_MODULES).map((module) => overviewModule(module, model));
|
|
48
|
+
const detectedLanguages = detectModuleLanguages(sorted.slice(0, MAX_MODULES));
|
|
28
49
|
|
|
29
50
|
return {
|
|
30
51
|
projectName: model.name,
|
|
31
52
|
projectDescription: model.description,
|
|
32
53
|
modules,
|
|
33
|
-
omittedModuleCount,
|
|
34
|
-
|
|
54
|
+
omittedModuleCount: Math.max(0, model.modules.length - MAX_MODULES),
|
|
55
|
+
detectedLanguages: detectedLanguages.length > 0 ? detectedLanguages : null,
|
|
35
56
|
};
|
|
36
57
|
}
|
|
58
|
+
|
|
59
|
+
function overviewModule(module: ModuleInfo, model: ArchitectureModel): OverviewModule {
|
|
60
|
+
const name = module.name ?? module.relativePath;
|
|
61
|
+
return {
|
|
62
|
+
name,
|
|
63
|
+
shortName: module.name?.replace(/^@[^/]+\//, "") ?? module.relativePath,
|
|
64
|
+
description: truncateDescription(module.description),
|
|
65
|
+
declaredDependencies: model.edges
|
|
66
|
+
.filter((edge) => edge.from === module.name)
|
|
67
|
+
.map((edge) => edge.to),
|
|
68
|
+
declaredEntrypoints: declaredEntrypoints(module.fields),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Preserve field labels rather than selecting one inferred package entrypoint. */
|
|
73
|
+
function declaredEntrypoints(fields: readonly ManifestField[]): string[] {
|
|
74
|
+
return fields.flatMap(declaredEntrypointsForField);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function declaredEntrypointsForField(field: ManifestField): string[] {
|
|
78
|
+
if (field.field === "pi.extensions") {
|
|
79
|
+
return stringValues(field.value).map((value) => `pi.extensions: ${value}`);
|
|
80
|
+
}
|
|
81
|
+
if (field.field === "main" || field.field === "module") {
|
|
82
|
+
return typeof field.value === "string" ? [`${field.field}: ${field.value}`] : [];
|
|
83
|
+
}
|
|
84
|
+
if (field.field !== "exports") return [];
|
|
85
|
+
if (typeof field.value === "string") return [`exports: ${field.value}`];
|
|
86
|
+
return isRecord(field.value) && typeof field.value["."] === "string"
|
|
87
|
+
? [`exports["."]: ${field.value["."]}`]
|
|
88
|
+
: [];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function stringValues(value: unknown): string[] {
|
|
92
|
+
if (typeof value === "string") return [value];
|
|
93
|
+
return Array.isArray(value)
|
|
94
|
+
? value.filter((entry): entry is string => typeof entry === "string")
|
|
95
|
+
: [];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function isRecord(value: unknown): value is Record<string, unknown> {
|
|
99
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function truncateDescription(description: string | null): string | null {
|
|
103
|
+
if (!description) return null;
|
|
104
|
+
if (description.length <= MAX_DESCRIPTION_LENGTH) return description;
|
|
105
|
+
return `${description.slice(0, MAX_DESCRIPTION_LENGTH - 1)}…`;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Detect languages present in the first two levels of each module directory.
|
|
110
|
+
*
|
|
111
|
+
* Uses Tree-sitter's extension-to-grammar mapping for conservative,
|
|
112
|
+
* documented detection. Returns short language tags sorted alphabetically.
|
|
113
|
+
*/
|
|
114
|
+
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: language detection with file-system scanning naturally has many branches
|
|
115
|
+
function detectModuleLanguages(modules: readonly { root: string }[]): string[] {
|
|
116
|
+
const detected = new Set<string>();
|
|
117
|
+
|
|
118
|
+
for (const mod of modules) {
|
|
119
|
+
let entries: fs.Dirent[];
|
|
120
|
+
try {
|
|
121
|
+
entries = fs.readdirSync(mod.root, { withFileTypes: true });
|
|
122
|
+
} catch {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// Scan top-level files first.
|
|
127
|
+
for (const entry of entries) {
|
|
128
|
+
if (!entry.isFile()) continue;
|
|
129
|
+
scanFileForLanguage(entry.name, detected);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Scan one level deeper for nested source directories (e.g. src/).
|
|
133
|
+
for (const entry of entries) {
|
|
134
|
+
if (!entry.isDirectory() || entry.name.startsWith(".") || entry.name === "node_modules")
|
|
135
|
+
continue;
|
|
136
|
+
try {
|
|
137
|
+
const subEntries = fs.readdirSync(path.join(mod.root, entry.name), {
|
|
138
|
+
withFileTypes: true,
|
|
139
|
+
});
|
|
140
|
+
for (const subEntry of subEntries) {
|
|
141
|
+
if (!subEntry.isFile()) continue;
|
|
142
|
+
scanFileForLanguage(subEntry.name, detected);
|
|
143
|
+
}
|
|
144
|
+
} catch {
|
|
145
|
+
// Skip unreadable subdirectories.
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return [...detected].sort();
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/** Use the structural provider's published grammar mapping for overview language tags. */
|
|
154
|
+
function scanFileForLanguage(fileName: string, detected: Set<string>): void {
|
|
155
|
+
const grammar = detectGrammar(fileName);
|
|
156
|
+
const tag = grammar ? GRAMMAR_LANGUAGE_TAGS[grammar] : null;
|
|
157
|
+
if (tag) detected.add(tag);
|
|
158
|
+
}
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
|
|
4
4
|
import type { OverviewData } from "./types.ts";
|
|
5
5
|
|
|
6
|
+
/** Soft token budget — log a warning when exceeded. */
|
|
7
|
+
const OVERVIEW_TOKEN_BUDGET = 600;
|
|
8
|
+
|
|
6
9
|
/**
|
|
7
10
|
* Render the compact architecture overview for first-turn session injection.
|
|
8
|
-
* Targets
|
|
11
|
+
* Targets at most 600 estimated tokens; logs a supi_debug warning when exceeded.
|
|
9
12
|
*/
|
|
10
13
|
// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: module-edge overview rendering with multiple formatting paths is clearer as one function
|
|
11
14
|
export function renderOverview(data: OverviewData): string {
|
|
@@ -25,20 +28,23 @@ export function renderOverview(data: OverviewData): string {
|
|
|
25
28
|
lines.push("");
|
|
26
29
|
|
|
27
30
|
for (const mod of data.modules) {
|
|
28
|
-
const deps = mod.
|
|
31
|
+
const deps = mod.declaredDependencies.filter((d) =>
|
|
29
32
|
data.modules.some((m) => m.name === d || m.shortName === d),
|
|
30
33
|
);
|
|
31
34
|
|
|
35
|
+
const entrypointSuffix =
|
|
36
|
+
mod.declaredEntrypoints.length > 0 ? ` [${mod.declaredEntrypoints.join(", ")}]` : "";
|
|
37
|
+
|
|
32
38
|
if (deps.length === 0) {
|
|
33
39
|
lines.push(
|
|
34
|
-
`- **${mod.shortName}**${
|
|
40
|
+
`- **${mod.shortName}**${entrypointSuffix}${mod.description ? ` — ${mod.description}` : ""}`,
|
|
35
41
|
);
|
|
36
42
|
} else {
|
|
37
43
|
const depNames = deps.slice(0, 4).map((d) => d.replace(/^@[^/]+\//, ""));
|
|
38
44
|
const depStr = depNames.join(", ");
|
|
39
45
|
const suffix = deps.length > 4 ? ` +${deps.length - 4} more` : "";
|
|
40
46
|
lines.push(
|
|
41
|
-
`- **${mod.shortName}** → ${depStr}${suffix}${mod.description ? ` — ${mod.description}` : ""}`,
|
|
47
|
+
`- **${mod.shortName}** → ${depStr}${suffix}${entrypointSuffix}${mod.description ? ` — ${mod.description}` : ""}`,
|
|
42
48
|
);
|
|
43
49
|
}
|
|
44
50
|
}
|
|
@@ -49,11 +55,24 @@ export function renderOverview(data: OverviewData): string {
|
|
|
49
55
|
|
|
50
56
|
lines.push("");
|
|
51
57
|
|
|
52
|
-
if (data.
|
|
53
|
-
lines.push(data.
|
|
58
|
+
if (data.detectedLanguages && data.detectedLanguages.length > 0) {
|
|
59
|
+
lines.push(`**Detected:** ${data.detectedLanguages.join(", ")}`);
|
|
60
|
+
lines.push("");
|
|
54
61
|
}
|
|
55
62
|
|
|
56
|
-
lines.push('_For deeper orientation, use `code_orientation({ focus: "..." })`._');
|
|
63
|
+
lines.push('_For deeper orientation, use `code_orientation({ focus: { path: "..." } })`._');
|
|
64
|
+
lines.push("");
|
|
65
|
+
lines.push("_(session snapshot)_");
|
|
66
|
+
|
|
67
|
+
const output = lines.join("\n");
|
|
68
|
+
|
|
69
|
+
return output;
|
|
70
|
+
}
|
|
57
71
|
|
|
58
|
-
|
|
72
|
+
/** Estimated token count using the repository convention. */
|
|
73
|
+
export function estimateTokens(content: string): number {
|
|
74
|
+
return Math.ceil(content.length / 4);
|
|
59
75
|
}
|
|
76
|
+
|
|
77
|
+
/** The soft token budget for the overview. */
|
|
78
|
+
export { OVERVIEW_TOKEN_BUDGET };
|
package/src/ui/markdown/types.ts
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
// Shared typed data interfaces between use-case and presentation layers.
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { WorkspaceLspRuntimeState } from "@mrclrchtr/supi-lsp/api";
|
|
4
4
|
import type { ArchitectureModel } from "../../analysis/architecture/model.ts";
|
|
5
5
|
import type { CodeProvider } from "../../analysis/provider.ts";
|
|
6
6
|
import type { AnchorKind } from "../../session/target-store.ts";
|
|
7
|
-
import type {
|
|
7
|
+
import type { InspectDetails } from "../../types/details.ts";
|
|
8
8
|
|
|
9
|
-
// ── Overview use-case
|
|
9
|
+
// ── Overview use-case ───────────────────────────────────────────────
|
|
10
10
|
|
|
11
11
|
export interface OverviewModule {
|
|
12
12
|
name: string;
|
|
13
13
|
shortName: string;
|
|
14
14
|
description: string | null;
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
/** Manifest-declared package relationships to other discovered packages. */
|
|
16
|
+
declaredDependencies: string[];
|
|
17
|
+
/** Field-labelled manifest path declarations, never selected by precedence. */
|
|
18
|
+
declaredEntrypoints: string[];
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
export interface OverviewData {
|
|
@@ -21,7 +23,8 @@ export interface OverviewData {
|
|
|
21
23
|
projectDescription: string | null;
|
|
22
24
|
modules: OverviewModule[];
|
|
23
25
|
omittedModuleCount: number;
|
|
24
|
-
|
|
26
|
+
/** Detected source languages (e.g. ["ts", "js", "py"]). */
|
|
27
|
+
detectedLanguages: string[] | null;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
// ── Inspect use-case ─────────────────────────────────────────────────
|
|
@@ -36,7 +39,7 @@ export interface InspectInput {
|
|
|
36
39
|
export interface InspectDeps {
|
|
37
40
|
provider: CodeProvider | null;
|
|
38
41
|
cwd: string;
|
|
39
|
-
|
|
42
|
+
lspRuntime: WorkspaceLspRuntimeState;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
export interface InspectUseCaseResult {
|
|
@@ -63,18 +66,11 @@ export interface OrientationInput {
|
|
|
63
66
|
/** Resolved orientation focus path for project/module/directory/file orientation. */
|
|
64
67
|
focus?: string;
|
|
65
68
|
maxResults?: number;
|
|
66
|
-
/** Show git context in orientation output. Defaults to true. */
|
|
67
|
-
showGitContext?: boolean;
|
|
68
69
|
}
|
|
69
70
|
|
|
70
71
|
export interface OrientationDeps {
|
|
71
|
-
model: ArchitectureModel
|
|
72
|
+
model: ArchitectureModel;
|
|
72
73
|
provider: CodeProvider | null;
|
|
73
74
|
cwd: string;
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
export interface OrientationUseCaseResult {
|
|
78
|
-
content: string;
|
|
79
|
-
details: ContextDetails;
|
|
75
|
+
lspRuntime: WorkspaceLspRuntimeState;
|
|
80
76
|
}
|
package/src/ui/status-command.ts
CHANGED
|
@@ -4,12 +4,11 @@
|
|
|
4
4
|
import type { ExtensionAPI, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
5
5
|
import { truncateToWidth } from "@earendil-works/pi-tui";
|
|
6
6
|
import { getDefaultWorkspaceRuntime } from "@mrclrchtr/supi-code-runtime/api";
|
|
7
|
-
import type
|
|
7
|
+
import { getWorkspaceLspRuntime, type WorkspaceLspRuntimeState } from "@mrclrchtr/supi-lsp/api";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from "../analysis/
|
|
12
|
-
import { getCodeProvider } from "../analysis/provider.ts";
|
|
9
|
+
evaluateCapabilityWarnings,
|
|
10
|
+
gatherCapabilityWarningInput,
|
|
11
|
+
} from "../analysis/capability/capability-warnings.ts";
|
|
13
12
|
import { type CiStatusData, createCiStatusDialog } from "./status-overlay.ts";
|
|
14
13
|
|
|
15
14
|
const STATUS_KEY = "code-intelligence";
|
|
@@ -20,10 +19,9 @@ interface InspectorState {
|
|
|
20
19
|
close: (() => void) | null;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
const inspector: InspectorState = { handle: null, close: null };
|
|
24
|
-
|
|
25
22
|
/** Register the interactive /supi-ci-status overlay command. */
|
|
26
23
|
export function registerCiStatusCommand(pi: ExtensionAPI): void {
|
|
24
|
+
const inspector: InspectorState = { handle: null, close: null };
|
|
27
25
|
pi.registerCommand("supi-ci-status", {
|
|
28
26
|
description: "Toggle code intelligence status — LSP and structural analysis state",
|
|
29
27
|
handler: async (_args: string, ctx: ExtensionContext) => {
|
|
@@ -52,10 +50,9 @@ export function registerCiStatusCommand(pi: ExtensionAPI): void {
|
|
|
52
50
|
done: () => done(undefined),
|
|
53
51
|
tui,
|
|
54
52
|
fetchDetailedDiagnostics: async (maxSeverity) => {
|
|
55
|
-
const
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
return lspState.service.getOutstandingDiagnostics(maxSeverity);
|
|
53
|
+
const lspState = getWorkspaceLspRuntime(ctx.cwd);
|
|
54
|
+
if (lspState.kind !== "ready") return [];
|
|
55
|
+
return lspState.runtime.getOutstandingDiagnostics(maxSeverity);
|
|
59
56
|
},
|
|
60
57
|
onRefresh: async () => {
|
|
61
58
|
const fresh = await gatherCiStatusData(ctx.cwd, pi);
|
|
@@ -92,15 +89,17 @@ export function registerCiStatusCommand(pi: ExtensionAPI): void {
|
|
|
92
89
|
/** Gather a snapshot of LSP and structural state for the dialog. */
|
|
93
90
|
async function gatherCiStatusData(cwd: string, pi: ExtensionAPI): Promise<CiStatusData> {
|
|
94
91
|
const workspace = getDefaultWorkspaceRuntime().getWorkspace(cwd);
|
|
95
|
-
const
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
const
|
|
92
|
+
const lspState = getWorkspaceLspRuntime(cwd);
|
|
93
|
+
const serverInventoryAvailable = lspState.kind === "ready" || lspState.kind === "disabled";
|
|
94
|
+
const servers = lspState.kind === "ready" ? lspState.runtime.getProjectServers() : [];
|
|
95
|
+
const semanticAvailable = servers.some(
|
|
96
|
+
(server) => server.status === "running" && server.ready === true,
|
|
97
|
+
);
|
|
99
98
|
const diagnostics =
|
|
100
|
-
lspState
|
|
101
|
-
? lspState.
|
|
99
|
+
lspState.kind === "ready" && semanticAvailable
|
|
100
|
+
? lspState.runtime.getOutstandingDiagnosticSummary(1)
|
|
102
101
|
: [];
|
|
103
|
-
const semanticState = deriveSemanticCapabilityState(workspace, lspState);
|
|
102
|
+
const semanticState = deriveSemanticCapabilityState(workspace, lspState, semanticAvailable);
|
|
104
103
|
|
|
105
104
|
// Sort: errors desc, warnings desc, info desc, hints desc
|
|
106
105
|
diagnostics.sort((a, b) => {
|
|
@@ -116,12 +115,14 @@ async function gatherCiStatusData(cwd: string, pi: ExtensionAPI): Promise<CiStat
|
|
|
116
115
|
|
|
117
116
|
const activeTools = pi.getActiveTools().filter((t) => t.startsWith("code_"));
|
|
118
117
|
|
|
119
|
-
// Evaluate
|
|
120
|
-
const
|
|
118
|
+
// Evaluate current Capability Warnings from available data.
|
|
119
|
+
const capabilityWarnings = evaluateCapabilityWarnings(gatherCapabilityWarningInput(cwd, null));
|
|
121
120
|
|
|
122
121
|
return {
|
|
123
122
|
servers,
|
|
124
123
|
diagnostics,
|
|
124
|
+
serverInventoryAvailable,
|
|
125
|
+
semanticAvailable,
|
|
125
126
|
capabilities: {
|
|
126
127
|
semantic: semanticState,
|
|
127
128
|
structural: {
|
|
@@ -132,7 +133,7 @@ async function gatherCiStatusData(cwd: string, pi: ExtensionAPI): Promise<CiStat
|
|
|
132
133
|
refactorAvailable: workspace.semantic.refactorAvailable,
|
|
133
134
|
},
|
|
134
135
|
activeTools,
|
|
135
|
-
|
|
136
|
+
capabilityWarnings: capabilityWarnings.hasWarnings ? capabilityWarnings : undefined,
|
|
136
137
|
};
|
|
137
138
|
}
|
|
138
139
|
|
|
@@ -143,24 +144,31 @@ function deriveSemanticCapabilityState(
|
|
|
143
144
|
provider: unknown | null;
|
|
144
145
|
};
|
|
145
146
|
},
|
|
146
|
-
lspState:
|
|
147
|
+
lspState: WorkspaceLspRuntimeState,
|
|
148
|
+
semanticAvailable: boolean,
|
|
147
149
|
): CiStatusData["capabilities"]["semantic"] {
|
|
148
|
-
if (lspState
|
|
149
|
-
return
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
150
|
+
if (lspState.kind === "ready") {
|
|
151
|
+
return semanticAvailable
|
|
152
|
+
? {
|
|
153
|
+
kind: "ready",
|
|
154
|
+
providerAvailable: workspace.semantic.provider !== null,
|
|
155
|
+
}
|
|
156
|
+
: {
|
|
157
|
+
kind: "pending",
|
|
158
|
+
reason: "No active, ready project servers",
|
|
159
|
+
providerAvailable: workspace.semantic.provider !== null,
|
|
160
|
+
};
|
|
153
161
|
}
|
|
154
|
-
if (workspace.semantic.state.kind === "pending" || lspState
|
|
162
|
+
if (workspace.semantic.state.kind === "pending" || lspState.kind === "pending") {
|
|
155
163
|
return {
|
|
156
164
|
kind: "pending",
|
|
157
165
|
providerAvailable: workspace.semantic.provider !== null,
|
|
158
166
|
};
|
|
159
167
|
}
|
|
160
|
-
if (lspState
|
|
168
|
+
if (lspState.kind === "inactive") {
|
|
161
169
|
return { kind: "inactive", providerAvailable: workspace.semantic.provider !== null };
|
|
162
170
|
}
|
|
163
|
-
if (lspState
|
|
171
|
+
if (lspState.kind === "disabled") {
|
|
164
172
|
return {
|
|
165
173
|
kind: "disabled",
|
|
166
174
|
reason: "LSP is disabled in settings",
|
|
@@ -169,7 +177,7 @@ function deriveSemanticCapabilityState(
|
|
|
169
177
|
}
|
|
170
178
|
return {
|
|
171
179
|
kind: workspace.semantic.state.kind,
|
|
172
|
-
reason:
|
|
180
|
+
reason: "reason" in lspState ? lspState.reason : "No LSP service",
|
|
173
181
|
providerAvailable: workspace.semantic.provider !== null,
|
|
174
182
|
};
|
|
175
183
|
}
|
package/src/ui/status-overlay.ts
CHANGED
|
@@ -17,7 +17,7 @@ import type {
|
|
|
17
17
|
OutstandingDiagnosticSummaryEntry,
|
|
18
18
|
ProjectServerInfo,
|
|
19
19
|
} from "@mrclrchtr/supi-lsp/api";
|
|
20
|
-
import type {
|
|
20
|
+
import type { CapabilityWarningReport } from "../analysis/capability/capability-warnings.ts";
|
|
21
21
|
import { diagnosticMessageString } from "../substrate/lsp/utils.ts";
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -33,6 +33,10 @@ export interface CiDialogTheme {
|
|
|
33
33
|
|
|
34
34
|
export interface CiStatusData {
|
|
35
35
|
servers: ProjectServerInfo[];
|
|
36
|
+
/** Whether the server list is complete status evidence. */
|
|
37
|
+
serverInventoryAvailable: boolean;
|
|
38
|
+
/** Whether diagnostics and semantic absence claims are currently supported. */
|
|
39
|
+
semanticAvailable: boolean;
|
|
36
40
|
/** Sorted: errors desc, then warnings desc, then info desc, then hints desc. */
|
|
37
41
|
diagnostics: OutstandingDiagnosticSummaryEntry[];
|
|
38
42
|
capabilities: {
|
|
@@ -41,8 +45,8 @@ export interface CiStatusData {
|
|
|
41
45
|
refactorAvailable: boolean;
|
|
42
46
|
};
|
|
43
47
|
activeTools: string[];
|
|
44
|
-
/**
|
|
45
|
-
|
|
48
|
+
/** Supplemental Capability Warnings. Undefined when fully healthy. */
|
|
49
|
+
capabilityWarnings?: CapabilityWarningReport;
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
/** Fetcher for full diagnostic details when a file row is expanded. */
|
|
@@ -108,7 +112,7 @@ export class CiStatusDialog {
|
|
|
108
112
|
this.addProblemsSection(container, width);
|
|
109
113
|
container.addChild(new Spacer(1));
|
|
110
114
|
this.addCapabilitiesSection(container);
|
|
111
|
-
this.
|
|
115
|
+
this.addCapabilityWarningsSection(container);
|
|
112
116
|
this.addToolsSection(container, width);
|
|
113
117
|
container.addChild(new Text(this.renderKeyHints(), 1, 0));
|
|
114
118
|
container.addChild(new DynamicBorder((s: string) => this.theme.fg("accent", s)));
|
|
@@ -296,12 +300,17 @@ export class CiStatusDialog {
|
|
|
296
300
|
|
|
297
301
|
private addEmptyServerRow(container: Container): void {
|
|
298
302
|
const t = this.theme;
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
}
|
|
303
|
-
|
|
303
|
+
if (!this.data.serverInventoryAvailable) {
|
|
304
|
+
container.addChild(new Text(t.fg("dim", " server inventory unavailable"), 1, 0));
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
if (this.data.capabilities.semantic.kind === "disabled") {
|
|
308
|
+
container.addChild(new Text(t.fg("dim", " all language servers disabled"), 1, 0));
|
|
309
|
+
return;
|
|
304
310
|
}
|
|
311
|
+
container.addChild(
|
|
312
|
+
new Text(t.fg("dim", " no active project servers; routes may start lazily"), 1, 0),
|
|
313
|
+
);
|
|
305
314
|
}
|
|
306
315
|
|
|
307
316
|
private addServerRow(container: Container, server: ProjectServerInfo): void {
|
|
@@ -362,9 +371,8 @@ export class CiStatusDialog {
|
|
|
362
371
|
|
|
363
372
|
private addEmptyProblemsRow(container: Container): void {
|
|
364
373
|
const t = this.theme;
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
container.addChild(new Text(t.fg("dim", " (LSP not ready)"), 1, 0));
|
|
374
|
+
if (!this.data.semanticAvailable) {
|
|
375
|
+
container.addChild(new Text(t.fg("dim", " (diagnostics unavailable)"), 1, 0));
|
|
368
376
|
} else {
|
|
369
377
|
container.addChild(new Text(t.fg("success", " ✓ no issues"), 1, 0));
|
|
370
378
|
}
|
|
@@ -451,13 +459,13 @@ export class CiStatusDialog {
|
|
|
451
459
|
);
|
|
452
460
|
}
|
|
453
461
|
|
|
454
|
-
private
|
|
455
|
-
const warnings = this.data.
|
|
462
|
+
private addCapabilityWarningsSection(container: Container): void {
|
|
463
|
+
const warnings = this.data.capabilityWarnings;
|
|
456
464
|
if (!warnings?.hasWarnings) return;
|
|
457
465
|
|
|
458
466
|
const t = this.theme;
|
|
459
467
|
container.addChild(new Spacer(1));
|
|
460
|
-
container.addChild(new Text(t.fg("error", t.bold("
|
|
468
|
+
container.addChild(new Text(t.fg("error", t.bold(" Capability Warnings")), 1, 0));
|
|
461
469
|
|
|
462
470
|
for (const w of warnings.warnings) {
|
|
463
471
|
const lang = w.language ? `${t.fg("accent", w.language)} ` : "";
|