@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
@@ -22,14 +22,15 @@ export interface EvidenceBadgeInput {
22
22
  * |------------------------------------------------------|---------------------------------------|
23
23
  * | shown=12, total=12, omitted=0, label="references" | `12 references` |
24
24
  * | shown=8, total=20, omitted=12, label="symbols" | `8 of 20 symbols (12 omitted)` |
25
- * | shown=5, total=null, reason="timeout", label="matches" | `5 matches — timeout` |
25
+ * | shown=5, total=null, omitted=2, reason="timeout" | `5 matches (2 collected omitted; more may exist — timeout)` |
26
26
  */
27
27
  export function formatEvidenceBadge(input: EvidenceBadgeInput): string {
28
28
  const { shownCount, totalCount, omittedCount, partialReason, label } = input;
29
29
 
30
30
  if (totalCount === null) {
31
31
  const reasonSuffix = partialReason ? ` — ${partialReason}` : "";
32
- return `${shownCount} ${label}${reasonSuffix}`;
32
+ const omittedPrefix = (omittedCount ?? 0) > 0 ? `${omittedCount} collected omitted; ` : "";
33
+ return `${shownCount} ${label} (${omittedPrefix}more may exist${reasonSuffix})`;
33
34
  }
34
35
 
35
36
  if (omittedCount !== null && omittedCount > 0) {
@@ -6,8 +6,6 @@
6
6
  // For lighter imports, use one of the domain subpaths directly
7
7
  // (e.g. @mrclrchtr/supi-core/config, @mrclrchtr/supi-core/context).
8
8
 
9
- // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
10
- export * from "./abort-utils.ts";
11
9
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
12
10
  export * from "./config.ts";
13
11
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
@@ -36,5 +34,3 @@ export * from "./status-spinner.ts";
36
34
  export * from "./terminal.ts";
37
35
  // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
38
36
  export * from "./tool-framework.ts";
39
- // biome-ignore lint/performance/noReExportAll: intentional convenience barrel
40
- export * from "./types.ts";
@@ -24,16 +24,6 @@ export interface WithRetryOptions {
24
24
  onRetry?: (attempt: number, delayMs: number) => void;
25
25
  }
26
26
 
27
- /**
28
- * Attempt an async operation with retries and exponential backoff.
29
- *
30
- * If the signal is already aborted on entry, the operation is skipped entirely.
31
- * If the signal aborts during a delay, the delay is cancelled immediately.
32
- *
33
- * @param fn - The async operation to retry.
34
- * @param options - Optional configuration for retries, backoff, signal, and callbacks.
35
- * @returns The result on success, or `null` if all attempts fail or the signal aborts.
36
- */
37
27
  /**
38
28
  * Create a promise that resolves after `ms` milliseconds, or rejects if
39
29
  * the signal fires before the timeout elapses.
@@ -1,4 +1,5 @@
1
1
  import * as path from "node:path";
2
+ import { fileURLToPath, pathToFileURL } from "node:url";
2
3
 
3
4
  /** Strip pi's optional leading `@` file-path prefix from a tool input. */
4
5
  export function stripToolPathPrefix(target: string): string {
@@ -16,25 +17,28 @@ export function resolveToolPath(cwd: string, target: string): string {
16
17
  return path.resolve(cwd, stripToolPathPrefix(target));
17
18
  }
18
19
 
19
- /** Convert a file path to a file:// URI. */
20
+ /**
21
+ * Convert a file path to a file:// URI.
22
+ *
23
+ * Uses Node's `pathToFileURL` to produce a standards-compliant URI with
24
+ * proper percent-encoding of spaces, hashes, and other special characters.
25
+ */
20
26
  export function fileToUri(filePath: string): string {
21
- const resolved = path.resolve(filePath);
22
- if (process.platform === "win32") {
23
- return `file:///${resolved.replace(/\\/g, "/")}`;
24
- }
25
- return `file://${resolved}`;
27
+ return pathToFileURL(filePath).href;
26
28
  }
27
29
 
28
- /** Convert a file:// URI to a file path. */
30
+ /**
31
+ * Convert a file:// URI to a file path.
32
+ *
33
+ * Uses Node's `fileURLToPath` for standards-compliant decoding. Non-file
34
+ * URIs are passed through unchanged so consumers (such as LSP diagnostic
35
+ * handling) remain compatible with non-file URI schemes.
36
+ */
29
37
  export function uriToFile(uri: string): string {
30
38
  if (!uri.startsWith("file://")) return uri;
31
- let filePath = decodeURIComponent(uri.slice(7));
32
- if (
33
- process.platform === "win32" &&
34
- filePath.startsWith("/") &&
35
- /^[A-Za-z]:/.test(filePath.slice(1))
36
- ) {
37
- filePath = filePath.slice(1);
39
+ try {
40
+ return fileURLToPath(uri);
41
+ } catch {
42
+ return uri;
38
43
  }
39
- return filePath;
40
44
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-lsp",
3
- "version": "3.2.0",
4
- "description": "SuPi LSP extension — Language Server Protocol integration for pi",
3
+ "version": "4.0.0",
4
+ "description": "SuPi LSP runtime — Language Server Protocol integration library for pi",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -18,7 +18,6 @@
18
18
  "keywords": [
19
19
  "pi",
20
20
  "pi-coding-agent",
21
- "pi-extension",
22
21
  "lsp",
23
22
  "language-server",
24
23
  "go-to-definition",
@@ -38,8 +37,8 @@
38
37
  "vscode-jsonrpc": "^9.0.0",
39
38
  "vscode-languageserver-protocol": "^3.17.5",
40
39
  "vscode-languageserver-types": "^3.17.5",
41
- "@mrclrchtr/supi-code-runtime": "3.2.0",
42
- "@mrclrchtr/supi-core": "3.2.0"
40
+ "@mrclrchtr/supi-code-runtime": "4.0.0",
41
+ "@mrclrchtr/supi-core": "4.0.0"
43
42
  },
44
43
  "bundledDependencies": [
45
44
  "@mrclrchtr/supi-code-runtime",
@@ -38,18 +38,18 @@ export type {
38
38
  LspStartResult,
39
39
  } from "./session/runtime-controller.ts";
40
40
  export { LspRuntimeController } from "./session/runtime-controller.ts";
41
- export { scanMissingServers } from "./session/scanner.ts";
42
41
  export type {
43
42
  OutstandingDiagnosticSummaryEntry,
44
43
  RecoverDiagnosticsResult,
45
44
  SemanticReadinessResult,
46
- SessionLspServiceState,
47
45
  WorkspaceDiagnosticSummaryEntry,
48
- } from "./session/service-registry.ts";
46
+ WorkspaceLspRuntime,
47
+ WorkspaceLspRuntimeState,
48
+ } from "./session/runtime-registry.ts";
49
49
  export {
50
- clearSessionLspService,
51
- getSessionLspService,
52
- SessionLspService,
53
- setSessionLspServiceState,
54
- waitForSessionLspService,
55
- } from "./session/service-registry.ts";
50
+ clearWorkspaceLspRuntime,
51
+ getWorkspaceLspRuntime,
52
+ setWorkspaceLspRuntimeState,
53
+ waitForWorkspaceLspRuntime,
54
+ } from "./session/runtime-registry.ts";
55
+ export { scanMissingServers } from "./session/scanner.ts";
@@ -5,6 +5,11 @@
5
5
  import { type ChildProcess, execSync, spawn } from "node:child_process";
6
6
  import { existsSync } from "node:fs";
7
7
  import * as path from "node:path";
8
+ import {
9
+ type CodeQueryResult,
10
+ completedCodeQuery,
11
+ unavailableCodeQuery,
12
+ } from "@mrclrchtr/supi-code-runtime/api";
8
13
  import { recordDebugEvent } from "@mrclrchtr/supi-core/debug";
9
14
  import type { ProgressToken } from "vscode-languageserver-protocol";
10
15
  import { CLIENT_CAPABILITIES } from "../config/capabilities.ts";
@@ -37,6 +42,25 @@ import { JsonRpcClient, JsonRpcRequestError } from "./transport.ts";
37
42
  const SHUTDOWN_TIMEOUT_MS = 5_000;
38
43
  const DIAGNOSTIC_WAIT_MS = 3_000;
39
44
 
45
+ /** Race an operation against a timeout without retaining the timer after settlement. */
46
+ async function withTimeout<T>(
47
+ operation: Promise<T>,
48
+ timeoutMs: number,
49
+ message: string,
50
+ ): Promise<T> {
51
+ let timer: ReturnType<typeof setTimeout> | undefined;
52
+ try {
53
+ return await Promise.race([
54
+ operation,
55
+ new Promise<never>((_resolve, reject) => {
56
+ timer = setTimeout(() => reject(new Error(message)), timeoutMs);
57
+ }),
58
+ ]);
59
+ } finally {
60
+ if (timer !== undefined) clearTimeout(timer);
61
+ }
62
+ }
63
+
40
64
  // ── Process-tree cleanup ──────────────────────────────────────────────
41
65
 
42
66
  /**
@@ -218,20 +242,13 @@ export class LspClient {
218
242
  if (!this.rpc || !this.process) return;
219
243
 
220
244
  try {
221
- // Send shutdown request with a timeout
222
- await Promise.race([
223
- this.rpc.sendRequest("shutdown"),
224
- new Promise((_, reject) =>
225
- setTimeout(() => reject(new Error("shutdown timeout")), SHUTDOWN_TIMEOUT_MS),
226
- ),
227
- ]);
245
+ await withTimeout(this.rpc.sendRequest("shutdown"), SHUTDOWN_TIMEOUT_MS, "shutdown timeout");
228
246
  // Flush the final exit notification before disposing the transport.
229
- await Promise.race([
247
+ await withTimeout(
230
248
  this.rpc.sendNotification("exit"),
231
- new Promise((_, reject) =>
232
- setTimeout(() => reject(new Error("exit notification timeout")), SHUTDOWN_TIMEOUT_MS),
233
- ),
234
- ]);
249
+ SHUTDOWN_TIMEOUT_MS,
250
+ "exit notification timeout",
251
+ );
235
252
  } catch {
236
253
  // Timeout or error — force kill
237
254
  }
@@ -382,11 +399,6 @@ export class LspClient {
382
399
  return result;
383
400
  }
384
401
 
385
- /** Get the internal cache entry for a file (exposed for testing / version checks). */
386
- getDiagnosticCacheEntry(uri: string): DiagnosticCacheEntry | undefined {
387
- return this.diagnosticStore.get(uri);
388
- }
389
-
390
402
  /**
391
403
  * Clear all pull-diagnostic result IDs, forcing full (not `unchanged`)
392
404
  * pull diagnostic responses on the next refresh cycle.
@@ -401,11 +413,6 @@ export class LspClient {
401
413
  }
402
414
  }
403
415
 
404
- /** Get all currently open document URIs. */
405
- get openUris(): string[] {
406
- return Array.from(this.openDocs.keys());
407
- }
408
-
409
416
  /** Check if server supports pull diagnostics. */
410
417
  get hasDiagnosticProvider(): boolean {
411
418
  return this.capabilities?.diagnosticProvider !== undefined;
@@ -462,8 +469,8 @@ export class LspClient {
462
469
  }
463
470
 
464
471
  // ── LSP Requests ───────────────────────────────────────────────────
465
- async hover(filePath: string, position: Position): Promise<Hover | null> {
466
- return this.request("textDocument/hover", {
472
+ async hover(filePath: string, position: Position): Promise<CodeQueryResult<Hover | null>> {
473
+ return this.query("textDocument/hover", {
467
474
  textDocument: { uri: fileToUri(filePath) },
468
475
  position,
469
476
  });
@@ -472,30 +479,39 @@ export class LspClient {
472
479
  async definition(
473
480
  filePath: string,
474
481
  position: Position,
475
- ): Promise<Location | Location[] | LocationLink[] | null> {
476
- return this.request("textDocument/definition", {
482
+ ): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>> {
483
+ return this.query("textDocument/definition", {
477
484
  textDocument: { uri: fileToUri(filePath) },
478
485
  position,
479
486
  });
480
487
  }
481
488
 
482
- async references(filePath: string, position: Position): Promise<Location[] | null> {
483
- return this.request("textDocument/references", {
489
+ async references(
490
+ filePath: string,
491
+ position: Position,
492
+ ): Promise<CodeQueryResult<Location[] | null>> {
493
+ return this.query("textDocument/references", {
484
494
  textDocument: { uri: fileToUri(filePath) },
485
495
  position,
486
496
  context: { includeDeclaration: true },
487
497
  });
488
498
  }
489
499
 
490
- async documentSymbols(filePath: string): Promise<DocumentSymbol[] | SymbolInformation[] | null> {
491
- return this.request("textDocument/documentSymbol", {
500
+ async documentSymbols(
501
+ filePath: string,
502
+ ): Promise<CodeQueryResult<DocumentSymbol[] | SymbolInformation[] | null>> {
503
+ return this.query("textDocument/documentSymbol", {
492
504
  textDocument: { uri: fileToUri(filePath) },
493
505
  });
494
506
  }
495
507
 
496
- async workspaceSymbol(query: string): Promise<SymbolInformation[] | WorkspaceSymbol[] | null> {
497
- if (!this.capabilities?.workspaceSymbolProvider) return null;
498
- return this.request("workspace/symbol", { query });
508
+ async workspaceSymbol(
509
+ query: string,
510
+ ): Promise<CodeQueryResult<SymbolInformation[] | WorkspaceSymbol[] | null>> {
511
+ if (!this.capabilities?.workspaceSymbolProvider) {
512
+ return unavailableCodeQuery("Workspace-symbol requests are not supported by this server.");
513
+ }
514
+ return this.query("workspace/symbol", { query });
499
515
  }
500
516
 
501
517
  async rename(
@@ -525,25 +541,38 @@ export class LspClient {
525
541
  async implementation(
526
542
  filePath: string,
527
543
  position: Position,
528
- ): Promise<Location | Location[] | LocationLink[] | null> {
529
- if (!this.capabilities?.implementationProvider) return null;
530
- return this.request("textDocument/implementation", {
544
+ ): Promise<CodeQueryResult<Location | Location[] | LocationLink[] | null>> {
545
+ if (!this.capabilities?.implementationProvider) {
546
+ return unavailableCodeQuery("Implementation requests are not supported by this server.");
547
+ }
548
+ return this.query("textDocument/implementation", {
531
549
  textDocument: { uri: fileToUri(filePath) },
532
550
  position,
533
551
  });
534
552
  }
535
553
 
536
554
  // ── Private ─────────────────────────────────────────────────────────
537
- private async request<T>(method: string, params: unknown): Promise<T | null> {
538
- if (!this.rpc || this._status !== "running") return null;
555
+ private async query<T>(method: string, params: unknown): Promise<CodeQueryResult<T | null>> {
556
+ if (!this.rpc || this._status !== "running") {
557
+ return unavailableCodeQuery(
558
+ `LSP request ${method} is unavailable because the client is not running.`,
559
+ );
560
+ }
539
561
  try {
540
562
  await this.getReady();
541
- return (await this.rpc.sendRequest(method, params)) as T;
542
- } catch {
543
- return null;
563
+ const data = (await this.rpc.sendRequest(method, params)) as T | null | undefined;
564
+ return completedCodeQuery(data ?? null);
565
+ } catch (error) {
566
+ const detail = error instanceof Error ? error.message : String(error);
567
+ return unavailableCodeQuery(`LSP request ${method} failed: ${detail}`);
544
568
  }
545
569
  }
546
570
 
571
+ private async request<T>(method: string, params: unknown): Promise<T | null> {
572
+ const result = await this.query<T>(method, params);
573
+ return result.kind === "unavailable" ? null : result.data;
574
+ }
575
+
547
576
  private handleServerRequest(method: string, params: unknown): unknown {
548
577
  switch (method) {
549
578
  case "workspace/configuration":
@@ -90,26 +90,29 @@ export class JsonRpcClient {
90
90
  const timeoutMs = options?.timeoutMs ?? this.timeoutMs;
91
91
  const tokenSource = new CancellationTokenSource();
92
92
 
93
- const timer = setTimeout(() => tokenSource.cancel(), timeoutMs);
93
+ let timeout: ReturnType<typeof setTimeout> | undefined;
94
+ const timeoutError = new Error(`Request ${method} timed out after ${timeoutMs}ms`);
94
95
 
95
96
  const request = this.connection.sendRequest(method, params, tokenSource.token);
96
97
  // Catch the raw request promise to prevent unhandled rejections when
97
- // dispose() cancels the token without a preceding timeout (the raced
98
- // promise below covers the timeout-then-dispose path separately).
98
+ // dispose() cancels the token without a preceding timeout.
99
99
  request.catch(() => {});
100
100
 
101
- // Race the request against a timeout so callers don't hang forever.
102
- // The CancellationToken is also passed to sendRequest so the connection
103
- // can short-circuit writes and cleanup when the token fires.
101
+ // Race the request against a single shared timeout that both cancels
102
+ // the JSON-RPC token and rejects the caller. Using one timer avoids
103
+ // a leak where the rejecting timer in a second Promise stays alive
104
+ // after a successful response.
104
105
  const promise = Promise.race([
105
106
  request,
106
- new Promise<never>((_, reject) =>
107
- setTimeout(
108
- () => reject(new Error(`Request ${method} timed out after ${timeoutMs}ms`)),
109
- timeoutMs,
110
- ),
111
- ),
112
- ]).finally(() => clearTimeout(timer));
107
+ new Promise<never>((_resolve, reject) => {
108
+ timeout = setTimeout(() => {
109
+ tokenSource.cancel();
110
+ reject(timeoutError);
111
+ }, timeoutMs);
112
+ }),
113
+ ]).finally(() => {
114
+ if (timeout !== undefined) clearTimeout(timeout);
115
+ });
113
116
 
114
117
  // Prevent unhandled rejection when dispose() cancels requests
115
118
  promise.catch(() => {});
@@ -49,13 +49,13 @@ export function loadConfig(cwd: string, options?: LoadConfigOptions): LspConfig
49
49
  const globalLsp = loadSupiConfigForScope(
50
50
  "lsp",
51
51
  cwd,
52
- { enabled: true, severity: 1, active: [], servers: {} as Record<string, ServerConfig> },
52
+ { enabled: true, active: [], servers: {} as Record<string, ServerConfig> },
53
53
  { scope: "global", homeDir: options?.homeDir },
54
54
  );
55
55
  const projectLsp = loadSupiConfigForScope(
56
56
  "lsp",
57
57
  cwd,
58
- { enabled: true, severity: 1, active: [], servers: {} as Record<string, ServerConfig> },
58
+ { enabled: true, active: [], servers: {} as Record<string, ServerConfig> },
59
59
  { scope: "project" },
60
60
  );
61
61
 
@@ -10,14 +10,12 @@ import { loadSupiConfig, loadSupiConfigForScope } from "@mrclrchtr/supi-core/con
10
10
 
11
11
  export interface LspSettings extends Record<string, unknown> {
12
12
  enabled: boolean;
13
- severity: number;
14
13
  active: string[];
15
14
  exclude: string[];
16
15
  }
17
16
 
18
17
  export const LSP_DEFAULTS: LspSettings = {
19
18
  enabled: true,
20
- severity: 1,
21
19
  active: [],
22
20
  exclude: [],
23
21
  };
@@ -31,11 +31,11 @@ export type {
31
31
  OutstandingDiagnosticSummaryEntry,
32
32
  RecoverDiagnosticsResult,
33
33
  SemanticReadinessResult,
34
- SessionLspServiceState,
35
34
  WorkspaceDiagnosticSummaryEntry,
36
- } from "./session/service-registry.ts";
35
+ WorkspaceLspRuntime,
36
+ WorkspaceLspRuntimeState,
37
+ } from "./session/runtime-registry.ts";
37
38
  export {
38
- getSessionLspService,
39
- SessionLspService,
40
- waitForSessionLspService,
41
- } from "./session/service-registry.ts";
39
+ getWorkspaceLspRuntime,
40
+ waitForWorkspaceLspRuntime,
41
+ } from "./session/runtime-registry.ts";
@@ -3,108 +3,18 @@ import type { LspClient } from "../client/client.ts";
3
3
  import type { Diagnostic } from "../config/types.ts";
4
4
  import { relativeFilePathFromUri } from "../diagnostics/diagnostic-summary.ts";
5
5
  import { shouldIgnoreLspPath } from "../summary.ts";
6
- import { fileToUri, uriToFile } from "../utils.ts";
7
6
  import { isExcludedByPattern } from "./manager-helpers.ts";
8
7
 
9
- export interface DiagnosticSnapshotEntry {
10
- receivedAt: number;
11
- diagnostics: Diagnostic[];
12
- }
13
-
14
- export interface CascadeDiagnosticEntry {
15
- uri: string;
16
- diagnostics: Diagnostic[];
17
- }
18
-
19
- export interface CascadingDiagnosticsResult {
20
- primary: Diagnostic[];
21
- cascade: CascadeDiagnosticEntry[];
22
- }
23
-
24
- /**
25
- * Find diagnostics for open files updated during a sync of another file.
26
- *
27
- * Files are considered cascade-affected when their diagnostic cache entry is
28
- * new or has a newer `receivedAt` timestamp than the pre-sync snapshot.
29
- */
30
- export function findCascadeDiagnosticEntries(
31
- preSnapshot: Map<string, DiagnosticSnapshotEntry>,
32
- postEntries: Map<string, DiagnosticSnapshotEntry>,
33
- editedUri: string,
34
- maxSeverity: number,
35
- ): CascadeDiagnosticEntry[] {
36
- const result: CascadeDiagnosticEntry[] = [];
37
-
38
- for (const [uri, entry] of postEntries) {
39
- if (uri === editedUri) continue;
40
-
41
- const previous = preSnapshot.get(uri);
42
- if (previous && entry.receivedAt <= previous.receivedAt) continue;
43
-
44
- const diagnostics = filterDiagnosticsBySeverity(entry.diagnostics, maxSeverity);
45
- if (diagnostics.length === 0) continue;
46
-
47
- result.push({ uri, diagnostics });
48
- }
49
-
50
- return result.sort((a, b) => a.uri.localeCompare(b.uri));
51
- }
52
-
53
- /** Snapshot current diagnostic cache entries for the client's open URIs. */
54
- export function snapshotOpenClientDiagnostics(
55
- client: Pick<LspClient, "openUris" | "getDiagnosticCacheEntry">,
56
- ): Map<string, DiagnosticSnapshotEntry> {
57
- const snapshot = new Map<string, DiagnosticSnapshotEntry>();
58
-
59
- for (const uri of client.openUris) {
60
- const entry = client.getDiagnosticCacheEntry(uri);
61
- if (!entry) continue;
62
- snapshot.set(uri, {
63
- receivedAt: entry.receivedAt,
64
- diagnostics: entry.diagnostics,
65
- });
66
- }
67
-
68
- return snapshot;
69
- }
70
-
71
- /** Build post-sync entries map for the client's open URIs. */
72
- export function collectOpenClientDiagnosticEntries(
73
- client: Pick<LspClient, "openUris" | "getDiagnosticCacheEntry">,
74
- ): Map<string, DiagnosticSnapshotEntry> {
75
- return snapshotOpenClientDiagnostics(client);
76
- }
77
-
78
- /** Sync a file and return its diagnostics plus cascade-affected open files. */
79
- export async function syncClientFileAndGetCascadingDiagnostics(
80
- client: Pick<
81
- LspClient,
82
- "openUris" | "getDiagnosticCacheEntry" | "syncAndWaitForDiagnostics" | "clearPullResultIds"
83
- >,
8
+ /** Sync one file and return diagnostics up to the supplied severity threshold. */
9
+ export async function syncClientFileAndGetDiagnostics(
10
+ client: Pick<LspClient, "syncAndWaitForDiagnostics">,
84
11
  filePath: string,
85
12
  maxSeverity: number,
86
- ): Promise<CascadingDiagnosticsResult> {
87
- const preSnapshot = snapshotOpenClientDiagnostics(client);
88
- const primary = filterDiagnosticsBySeverity(
13
+ ): Promise<Diagnostic[]> {
14
+ return filterDiagnosticsBySeverity(
89
15
  await client.syncAndWaitForDiagnostics(filePath, readFileSync(filePath, "utf-8")),
90
16
  maxSeverity,
91
17
  );
92
- client.clearPullResultIds();
93
-
94
- const cascade = findCascadeDiagnosticEntries(
95
- preSnapshot,
96
- collectOpenClientDiagnosticEntries(client),
97
- fileToUri(filePath),
98
- maxSeverity,
99
- );
100
-
101
- return { primary, cascade };
102
- }
103
-
104
- export function mapCascadeDiagnosticsToFiles(
105
- entries: CascadeDiagnosticEntry[],
106
- ): Array<{ file: string; diagnostics: Diagnostic[] }> {
107
- return entries.map((entry) => ({ file: uriToFile(entry.uri), diagnostics: entry.diagnostics }));
108
18
  }
109
19
 
110
20
  export function collectOutstandingDiagnosticsDetailed(
@@ -5,7 +5,8 @@ import {
5
5
  } from "../diagnostics/stale-diagnostics.ts";
6
6
 
7
7
  export interface WorkspaceRecoveryResult {
8
- refreshedClients: number;
8
+ /** Active clients targeted by the best-effort refresh, not confirmed successful refreshes. */
9
+ attemptedClients: number;
9
10
  restartedClients: number;
10
11
  staleAssessment: StaleDiagnosticAssessment;
11
12
  }
@@ -41,7 +42,7 @@ export async function recoverWorkspaceDiagnostics(
41
42
  quietMs?: number;
42
43
  } = {},
43
44
  ): Promise<WorkspaceRecoveryResult> {
44
- const refreshedClients = softRecoverWorkspaceDiagnostics(host, options.changes ?? []);
45
+ const attemptedClients = softRecoverWorkspaceDiagnostics(host, options.changes ?? []);
45
46
 
46
47
  try {
47
48
  await host.refreshOpenDiagnostics({ maxWaitMs: options.maxWaitMs, quietMs: options.quietMs });
@@ -72,7 +73,7 @@ export async function recoverWorkspaceDiagnostics(
72
73
  }
73
74
 
74
75
  return {
75
- refreshedClients,
76
+ attemptedClients,
76
77
  restartedClients,
77
78
  staleAssessment,
78
79
  };