@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.
Files changed (556) hide show
  1. package/README.md +154 -435
  2. package/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  3. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  4. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  5. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  6. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  7. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  8. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  9. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  10. package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  11. package/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  12. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  13. package/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  14. package/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  15. package/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  16. package/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  17. package/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  18. package/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  19. package/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  20. package/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  21. package/node_modules/@mrclrchtr/supi-lsp/README.md +72 -62
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  41. package/node_modules/@mrclrchtr/supi-lsp/package.json +4 -5
  42. package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +9 -9
  43. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +70 -41
  44. package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +16 -13
  45. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +2 -2
  46. package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +0 -2
  47. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +6 -6
  48. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-diagnostics.ts +5 -95
  49. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -3
  50. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +44 -6
  51. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +47 -65
  52. package/node_modules/@mrclrchtr/supi-lsp/src/provider/lsp-semantic-provider.ts +132 -79
  53. package/node_modules/@mrclrchtr/supi-lsp/src/provider/refactor-planning.ts +6 -14
  54. package/node_modules/@mrclrchtr/supi-lsp/src/session/readiness.ts +38 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-controller.ts +87 -75
  56. package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registration.ts +5 -5
  57. package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts} +163 -71
  58. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +4 -0
  59. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  60. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  61. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  62. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  63. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  64. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  65. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  66. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  67. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  68. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  69. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  70. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  71. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  72. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  73. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  74. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  75. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  76. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  77. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  78. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +4 -21
  79. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm +0 -0
  80. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm.json +2 -2
  81. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm +0 -0
  82. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm.json +2 -2
  83. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm +0 -0
  84. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm.json +2 -2
  85. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm +0 -0
  86. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm.json +2 -2
  87. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
  88. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
  89. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm +0 -0
  90. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm.json +2 -2
  91. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm +0 -0
  92. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm.json +2 -2
  93. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/rust/tree-sitter-rust.wasm.json +1 -1
  94. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
  95. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +3 -3
  96. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-kotlin-wasm.mjs +6 -0
  97. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-sql-wasm.mjs +18 -4
  98. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/vendor-wasm.mjs +17 -1
  99. package/node_modules/@mrclrchtr/supi-tree-sitter/src/api.ts +2 -0
  100. package/node_modules/@mrclrchtr/supi-tree-sitter/src/coordinates.ts +20 -41
  101. package/node_modules/@mrclrchtr/supi-tree-sitter/src/index.ts +2 -0
  102. package/node_modules/@mrclrchtr/supi-tree-sitter/src/language.ts +7 -0
  103. package/node_modules/@mrclrchtr/supi-tree-sitter/src/operation-support.ts +40 -0
  104. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/session.ts +9 -7
  105. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/call-sites.ts +6 -1
  106. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/callees.ts +76 -37
  107. package/node_modules/yaml/LICENSE +13 -0
  108. package/node_modules/yaml/README.md +172 -0
  109. package/node_modules/yaml/bin.mjs +11 -0
  110. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  111. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  112. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  113. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  114. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  115. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  116. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  117. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  118. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  119. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  120. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  121. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  122. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  123. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  124. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  125. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  126. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  127. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  128. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  129. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  130. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  131. package/node_modules/yaml/browser/dist/errors.js +57 -0
  132. package/node_modules/yaml/browser/dist/index.js +17 -0
  133. package/node_modules/yaml/browser/dist/log.js +11 -0
  134. package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  135. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  136. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  137. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  138. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  139. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  140. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  141. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  142. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  143. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  144. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  145. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  146. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  147. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  148. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  149. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  150. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  151. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  152. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  153. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  154. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  155. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  156. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  157. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  158. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  159. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  160. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  161. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  162. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  163. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  164. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  165. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  166. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  167. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  168. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  169. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  170. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  171. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  172. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  173. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  174. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  175. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  176. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  177. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  178. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  179. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  180. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  181. package/node_modules/yaml/browser/dist/util.js +11 -0
  182. package/node_modules/yaml/browser/dist/visit.js +233 -0
  183. package/node_modules/yaml/browser/index.js +5 -0
  184. package/node_modules/yaml/browser/package.json +3 -0
  185. package/node_modules/yaml/dist/cli.d.ts +8 -0
  186. package/node_modules/yaml/dist/cli.mjs +201 -0
  187. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  188. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  189. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  190. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  191. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  192. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  193. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  194. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  195. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  196. package/node_modules/yaml/dist/compose/composer.js +224 -0
  197. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  198. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  199. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  200. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  201. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  202. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  203. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  204. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  205. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  206. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  207. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  208. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  209. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  210. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  211. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  212. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  213. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  214. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  215. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  216. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  217. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  218. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  219. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  220. package/node_modules/yaml/dist/doc/Document.js +337 -0
  221. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  222. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  223. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  224. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  225. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  226. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  227. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  228. package/node_modules/yaml/dist/doc/directives.js +178 -0
  229. package/node_modules/yaml/dist/errors.d.ts +21 -0
  230. package/node_modules/yaml/dist/errors.js +62 -0
  231. package/node_modules/yaml/dist/index.d.ts +25 -0
  232. package/node_modules/yaml/dist/index.js +50 -0
  233. package/node_modules/yaml/dist/log.d.ts +3 -0
  234. package/node_modules/yaml/dist/log.js +19 -0
  235. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  236. package/node_modules/yaml/dist/nodes/Alias.js +118 -0
  237. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  238. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  239. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  240. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  241. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  242. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  243. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  244. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  245. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  246. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  247. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  248. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  249. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  250. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  251. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  252. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  253. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  254. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  255. package/node_modules/yaml/dist/options.d.ts +350 -0
  256. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  257. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  258. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  259. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  260. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  261. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  262. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  263. package/node_modules/yaml/dist/parse/cst.js +112 -0
  264. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  265. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  266. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  267. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  268. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  269. package/node_modules/yaml/dist/parse/parser.js +980 -0
  270. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  271. package/node_modules/yaml/dist/public-api.js +107 -0
  272. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  273. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  274. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  275. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  276. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  277. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  278. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  279. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  280. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  281. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  282. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  283. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  284. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  285. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  286. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  287. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  288. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  289. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  290. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  291. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  292. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  293. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  294. package/node_modules/yaml/dist/schema/tags.js +99 -0
  295. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  296. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  297. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  298. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  299. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  300. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  301. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  302. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  303. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  304. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  305. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  306. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  307. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  308. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  309. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  310. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  311. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  312. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  313. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  314. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  315. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  316. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  317. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  318. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  319. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  320. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  321. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  322. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  323. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  324. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  325. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  326. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  327. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  328. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  329. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  330. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  331. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  332. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  333. package/node_modules/yaml/dist/test-events.js +134 -0
  334. package/node_modules/yaml/dist/util.d.ts +16 -0
  335. package/node_modules/yaml/dist/util.js +28 -0
  336. package/node_modules/yaml/dist/visit.d.ts +102 -0
  337. package/node_modules/yaml/dist/visit.js +236 -0
  338. package/node_modules/yaml/package.json +97 -0
  339. package/node_modules/yaml/util.js +2 -0
  340. package/package.json +9 -8
  341. package/src/analysis/architecture/discovery.ts +213 -227
  342. package/src/analysis/architecture/manifest.ts +147 -0
  343. package/src/analysis/architecture/model.ts +119 -52
  344. package/src/analysis/architecture/workspace-config.ts +229 -0
  345. package/src/analysis/{coverage/coverage-warnings.ts → capability/capability-warnings.ts} +41 -78
  346. package/src/analysis/evidence.ts +22 -5
  347. package/src/analysis/health/diagnostics.ts +183 -0
  348. package/src/analysis/health/recovery.ts +39 -0
  349. package/src/analysis/health/signals.ts +20 -0
  350. package/src/analysis/instruction-files.ts +60 -48
  351. package/src/analysis/provider.ts +31 -12
  352. package/src/analysis/readiness.ts +29 -9
  353. package/src/{tool/refactor-apply → analysis/refactor}/apply.ts +120 -26
  354. package/src/analysis/refactor/position.ts +6 -0
  355. package/src/analysis/refactor/safety.ts +4 -11
  356. package/src/analysis/references/locations.ts +20 -0
  357. package/src/analysis/references/semantic-refs.ts +21 -11
  358. package/src/{tool/graph → analysis/relations}/implementations.ts +27 -23
  359. package/src/analysis/relations/provider-locations.ts +179 -0
  360. package/src/{tool/graph → analysis/relations}/references.ts +25 -21
  361. package/src/{tool/graph → analysis/relations}/types.ts +4 -19
  362. package/src/analysis/search/ast-scan.ts +376 -0
  363. package/src/analysis/search/call-name.ts +68 -0
  364. package/src/analysis/search/deadline.ts +84 -0
  365. package/src/analysis/search/paths.ts +88 -0
  366. package/src/analysis/search/pattern.ts +290 -246
  367. package/src/analysis/target/anchored.ts +72 -27
  368. package/src/analysis/target/file.ts +292 -132
  369. package/src/analysis/target/identity.ts +237 -0
  370. package/src/analysis/target/symbol.ts +169 -86
  371. package/src/analysis/target/types.ts +36 -4
  372. package/src/api.ts +21 -4
  373. package/src/app/app.ts +53 -46
  374. package/src/extension.ts +68 -66
  375. package/src/session/capability-adapter.ts +26 -118
  376. package/src/session/find-types.ts +38 -0
  377. package/src/session/find-workflow.ts +141 -0
  378. package/src/session/graph/collect.ts +181 -0
  379. package/src/session/graph-types.ts +77 -0
  380. package/src/session/graph-workflow.ts +152 -0
  381. package/src/session/health-types.ts +134 -0
  382. package/src/session/health-workflow.ts +341 -0
  383. package/src/session/input/common.ts +216 -0
  384. package/src/session/input/health-refactor.ts +169 -0
  385. package/src/session/input/workflows.ts +211 -0
  386. package/src/session/inspect/collect.ts +304 -0
  387. package/src/session/inspect/file-point.ts +69 -0
  388. package/src/session/inspect-types.ts +78 -0
  389. package/src/session/inspect-workflow.ts +157 -0
  390. package/src/session/orientation/collect.ts +718 -0
  391. package/src/session/orientation/context-facts.ts +319 -0
  392. package/src/session/orientation/context-sections.ts +352 -0
  393. package/src/session/orientation-types.ts +97 -0
  394. package/src/session/orientation-workflow.ts +307 -0
  395. package/src/session/refactor-plans.ts +1 -1
  396. package/src/session/refactor-types.ts +51 -0
  397. package/src/session/refactor-workflow.ts +263 -0
  398. package/src/session/session.ts +263 -234
  399. package/src/session/target-candidates.ts +60 -0
  400. package/src/session/target-input.ts +98 -0
  401. package/src/session/target-store.ts +132 -29
  402. package/src/session/target-workflow.ts +254 -302
  403. package/src/session/workflow-control.ts +35 -0
  404. package/src/substrate/lsp/lifecycle.ts +9 -22
  405. package/src/substrate/lsp/maintenance.ts +75 -0
  406. package/src/substrate/lsp/recovery.ts +41 -25
  407. package/src/substrate/lsp/settings.ts +1 -10
  408. package/src/substrate/lsp/state.ts +2 -13
  409. package/src/tool/find/ast-kinds.ts +35 -0
  410. package/src/tool/find/execute.ts +22 -113
  411. package/src/tool/find/markdown.ts +85 -221
  412. package/src/tool/find/modes.ts +5 -0
  413. package/src/tool/find/render.ts +57 -0
  414. package/src/tool/find/tui.ts +1 -1
  415. package/src/tool/graph/calls-md.ts +17 -30
  416. package/src/tool/graph/execute.ts +42 -103
  417. package/src/tool/graph/implementations-md.ts +32 -54
  418. package/src/tool/graph/markdown-base.ts +73 -196
  419. package/src/tool/graph/provider-location-md.ts +9 -0
  420. package/src/tool/graph/references-md.ts +34 -27
  421. package/src/tool/graph/tui.ts +8 -26
  422. package/src/tool/guidance.ts +31 -48
  423. package/src/tool/health/execute.ts +15 -56
  424. package/src/tool/health/markdown.ts +199 -148
  425. package/src/tool/health/semantic-state.ts +24 -0
  426. package/src/tool/health/tui.ts +262 -36
  427. package/src/tool/infra/error-results.ts +0 -2
  428. package/src/tool/infra/progress.ts +2 -2
  429. package/src/tool/infra/workflow-control.ts +11 -0
  430. package/src/tool/inspect/execute.ts +23 -63
  431. package/src/tool/inspect/markdown.ts +114 -95
  432. package/src/tool/inspect/tui.ts +7 -7
  433. package/src/tool/orientation/execute.ts +50 -37
  434. package/src/tool/orientation/markdown.ts +26 -31
  435. package/src/tool/orientation/tui.ts +41 -39
  436. package/src/tool/refactor-apply/execute.ts +23 -9
  437. package/src/tool/refactor-apply/tui.ts +7 -3
  438. package/src/tool/refactor-plan/execute.ts +44 -61
  439. package/src/tool/refactor-plan/markdown.ts +33 -56
  440. package/src/tool/refactor-plan/tui.ts +10 -11
  441. package/src/tool/register.ts +6 -5
  442. package/src/tool/resolve/execute.ts +23 -69
  443. package/src/tool/resolve/markdown.ts +125 -114
  444. package/src/tool/resolve/tui.ts +11 -9
  445. package/src/tool/result/assembly.ts +125 -0
  446. package/src/tool/result/errors.ts +20 -34
  447. package/src/tool/result/find.ts +107 -21
  448. package/src/tool/result/graph.ts +163 -64
  449. package/src/tool/result/health.ts +170 -73
  450. package/src/tool/result/inspect.ts +183 -41
  451. package/src/tool/result/orientation.ts +118 -16
  452. package/src/tool/result/refactor.ts +101 -21
  453. package/src/tool/result/resolve.ts +243 -80
  454. package/src/tool/result/types.ts +100 -56
  455. package/src/tool/schemas.ts +160 -231
  456. package/src/tool/specs.ts +57 -168
  457. package/src/types/details.ts +2 -4
  458. package/src/types/execution.ts +6 -15
  459. package/src/types/index.ts +2 -4
  460. package/src/types/tool-names.ts +1 -2
  461. package/src/ui/footer.ts +3 -3
  462. package/src/ui/markdown/gather.ts +17 -65
  463. package/src/ui/markdown/overview-data.ts +143 -21
  464. package/src/ui/markdown/overview.ts +27 -8
  465. package/src/ui/markdown/types.ts +12 -16
  466. package/src/ui/status-command.ts +39 -31
  467. package/src/ui/status-overlay.ts +23 -15
  468. package/src/ui/tui/common.ts +121 -74
  469. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  470. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  471. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  472. package/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  473. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  474. package/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  475. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  476. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  477. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  478. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  479. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  480. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  481. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-augmentation.ts +0 -82
  482. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-context.ts +0 -116
  483. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-display.ts +0 -69
  484. package/node_modules/@mrclrchtr/supi-lsp/src/manager/capability-index.ts +0 -24
  485. package/node_modules/@mrclrchtr/supi-lsp/src/manager/client-pool.ts +0 -33
  486. package/node_modules/@mrclrchtr/supi-lsp/src/manager/diagnostic-store.ts +0 -51
  487. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-stale-resync.ts +0 -47
  488. package/node_modules/@mrclrchtr/supi-lsp/src/manager/recovery-coordinator.ts +0 -37
  489. package/node_modules/@mrclrchtr/supi-lsp/src/manager/workspace-router.ts +0 -44
  490. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  491. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  492. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  493. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  494. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  495. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  496. package/src/analysis/brief/directory.ts +0 -324
  497. package/src/analysis/brief/enrich.ts +0 -157
  498. package/src/analysis/brief/file.ts +0 -84
  499. package/src/analysis/brief/inventory.ts +0 -177
  500. package/src/analysis/brief/main.ts +0 -176
  501. package/src/analysis/brief/models.ts +0 -75
  502. package/src/analysis/brief/public-brief.ts +0 -179
  503. package/src/analysis/brief/summarize.ts +0 -208
  504. package/src/analysis/brief/types.ts +0 -27
  505. package/src/analysis/brief/use-case.ts +0 -264
  506. package/src/analysis/search/ripgrep.ts +0 -558
  507. package/src/analysis/signals/git.ts +0 -89
  508. package/src/analysis/signals/project.ts +0 -189
  509. package/src/analysis/target/bridge.ts +0 -152
  510. package/src/analysis/target/file-resolution.ts +0 -125
  511. package/src/analysis/target/planner.ts +0 -92
  512. package/src/analysis/target/query.ts +0 -74
  513. package/src/analysis/target/resolve-common.ts +0 -115
  514. package/src/analysis/target/service.ts +0 -229
  515. package/src/analysis/tests/likely-tests.ts +0 -174
  516. package/src/analysis/tests/test-discovery.ts +0 -540
  517. package/src/analysis/tests/vitest.ts +0 -87
  518. package/src/app/manager.ts +0 -65
  519. package/src/substrate/lsp/diagnostic-injection.ts +0 -203
  520. package/src/substrate/lsp/overrides.ts +0 -132
  521. package/src/tool/find/orchestrate.ts +0 -317
  522. package/src/tool/find/semantic-search.ts +0 -128
  523. package/src/tool/graph/collect-relation.ts +0 -372
  524. package/src/tool/graph/orchestrate.ts +0 -259
  525. package/src/tool/health/orchestrate.ts +0 -151
  526. package/src/tool/health/sections/diagnostics.ts +0 -182
  527. package/src/tool/health/sections/recovery.ts +0 -89
  528. package/src/tool/health/sections/signals.ts +0 -89
  529. package/src/tool/impact/analysis.ts +0 -220
  530. package/src/tool/impact/change-set-impact.ts +0 -152
  531. package/src/tool/impact/execute.ts +0 -125
  532. package/src/tool/impact/file-level-impact.ts +0 -82
  533. package/src/tool/impact/markdown.ts +0 -283
  534. package/src/tool/impact/orchestrate.ts +0 -97
  535. package/src/tool/impact/result.ts +0 -2
  536. package/src/tool/impact/single-impact.ts +0 -90
  537. package/src/tool/impact/tui.ts +0 -39
  538. package/src/tool/impact/types.ts +0 -34
  539. package/src/tool/infra/cross-field.ts +0 -335
  540. package/src/tool/infra/pipeline.ts +0 -334
  541. package/src/tool/infra/readiness-message.ts +0 -5
  542. package/src/tool/inspect/orchestrate.ts +0 -154
  543. package/src/tool/orientation/deps.ts +0 -63
  544. package/src/tool/orientation/mode.ts +0 -139
  545. package/src/tool/orientation/orchestrate.ts +0 -475
  546. package/src/tool/orientation/precise-target.ts +0 -253
  547. package/src/tool/params.ts +0 -15
  548. package/src/tool/refactor-apply/markdown.ts +0 -118
  549. package/src/tool/refactor-apply/orchestrate.ts +0 -84
  550. package/src/tool/refactor-plan/orchestrate.ts +0 -355
  551. package/src/tool/resolve/orchestrate.ts +0 -38
  552. package/src/tool/result/impact.ts +0 -50
  553. package/src/ui/markdown/brief.ts +0 -218
  554. package/src/ui/message-renderer.ts +0 -121
  555. package/src/ui/tui/index.ts +0 -37
  556. /package/src/{tool/graph → analysis/relations}/callees.ts +0 -0
@@ -1,36 +1,158 @@
1
- // Typed overview data builder from ArchitectureModel.
1
+ // Typed overview data builder from directly observed package-manifest facts.
2
2
 
3
- import type { ArchitectureModel } from "../../analysis/architecture/model.ts";
4
- import { formatGitContext, gatherGitContext } from "../../analysis/signals/git.ts";
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 an architecture model.
9
- * No markdown rendering callers pass the result to a presentation renderer.
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 dependedOn = new Set(model.edges.map((e) => e.to));
15
-
16
- const modules: OverviewModule[] = model.modules.slice(0, 8).map((mod) => ({
17
- name: mod.name,
18
- shortName: mod.name.replace(/^@[^/]+\//, ""),
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
- gitContextOverview,
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 roughly 500 tokens.
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.internalDeps.filter((d) =>
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}**${mod.isLeaf ? " (leaf)" : ""}${mod.description ? ` — ${mod.description}` : ""}`,
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.gitContextOverview) {
53
- lines.push(data.gitContextOverview);
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
- return lines.join("\n");
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 };
@@ -1,19 +1,21 @@
1
1
  // Shared typed data interfaces between use-case and presentation layers.
2
2
 
3
- import type { SessionLspServiceState } from "@mrclrchtr/supi-lsp/api";
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 { ContextDetails, InspectDetails } from "../../types/details.ts";
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
- isLeaf: boolean;
16
- internalDeps: string[];
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
- gitContextOverview: string | null;
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
- lspService: SessionLspServiceState;
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 | null;
72
+ model: ArchitectureModel;
72
73
  provider: CodeProvider | null;
73
74
  cwd: string;
74
- lspService: SessionLspServiceState;
75
- }
76
-
77
- export interface OrientationUseCaseResult {
78
- content: string;
79
- details: ContextDetails;
75
+ lspRuntime: WorkspaceLspRuntimeState;
80
76
  }
@@ -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 { SessionLspServiceState } from "@mrclrchtr/supi-lsp/api";
7
+ import { getWorkspaceLspRuntime, type WorkspaceLspRuntimeState } from "@mrclrchtr/supi-lsp/api";
8
8
  import {
9
- evaluateCoverageWarnings,
10
- gatherCoverageEvalInput,
11
- } from "../analysis/coverage/coverage-warnings.ts";
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 ps = getCodeProvider(ctx.cwd);
56
- const lspState = ps.kind === "ready" ? ps.lspService : null;
57
- if (lspState?.kind !== "ready") return [];
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 providerState = getCodeProvider(cwd);
96
- const lspState = providerState.kind === "ready" ? providerState.lspService : null;
97
-
98
- const servers = lspState && lspState.kind === "ready" ? lspState.service.getProjectServers() : [];
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 && lspState.kind === "ready"
101
- ? lspState.service.getOutstandingDiagnosticSummary(1)
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 degraded coverage from available data
120
- const degradedCoverage = evaluateCoverageWarnings(gatherCoverageEvalInput(cwd, null));
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
- degradedCoverage: degradedCoverage.hasWarnings ? degradedCoverage : undefined,
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: SessionLspServiceState | null,
147
+ lspState: WorkspaceLspRuntimeState,
148
+ semanticAvailable: boolean,
147
149
  ): CiStatusData["capabilities"]["semantic"] {
148
- if (lspState?.kind === "ready") {
149
- return {
150
- kind: workspace.semantic.state.kind === "pending" ? "pending" : "ready",
151
- providerAvailable: workspace.semantic.provider !== null,
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?.kind === "pending") {
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?.kind === "inactive") {
168
+ if (lspState.kind === "inactive") {
161
169
  return { kind: "inactive", providerAvailable: workspace.semantic.provider !== null };
162
170
  }
163
- if (lspState?.kind === "disabled") {
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: lspState && "reason" in lspState ? lspState.reason : "No LSP service",
180
+ reason: "reason" in lspState ? lspState.reason : "No LSP service",
173
181
  providerAvailable: workspace.semantic.provider !== null,
174
182
  };
175
183
  }
@@ -17,7 +17,7 @@ import type {
17
17
  OutstandingDiagnosticSummaryEntry,
18
18
  ProjectServerInfo,
19
19
  } from "@mrclrchtr/supi-lsp/api";
20
- import type { CoverageWarningReport } from "../analysis/coverage/coverage-warnings.ts";
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
- /** Coverage warnings for degraded semantic/structural substrate. Undefined when fully healthy. */
45
- degradedCoverage?: CoverageWarningReport;
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.addDegradedCoverageSection(container);
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
- const sem = this.data.capabilities.semantic;
300
- if (sem.kind !== "ready") {
301
- container.addChild(new Text(t.fg("dim", " no LSP session for this workspace"), 1, 0));
302
- } else {
303
- container.addChild(new Text(t.fg("dim", " no configured language servers"), 1, 0));
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
- const sem = this.data.capabilities.semantic;
366
- if (sem.kind !== "ready") {
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 addDegradedCoverageSection(container: Container): void {
455
- const warnings = this.data.degradedCoverage;
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(" Degraded Coverage")), 1, 0));
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)} ` : "";