@mrclrchtr/supi-code-intelligence 3.2.0 → 4.1.0

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