@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
package/src/api.ts CHANGED
@@ -7,6 +7,7 @@ export type {
7
7
  CapabilityState,
8
8
  CodeLocation,
9
9
  CodePosition,
10
+ CodeQueryResult,
10
11
  CodeResult,
11
12
  CodeSymbol,
12
13
  ConfidenceMode,
@@ -24,8 +25,16 @@ export type {
24
25
  // Architecture model types.
25
26
  export type {
26
27
  ArchitectureModel,
28
+ ArchitectureObservationStatus,
27
29
  DependencyEdge,
30
+ ManifestDependency,
31
+ ManifestDependencyField,
32
+ ManifestDependencySection,
33
+ ManifestField,
28
34
  ModuleInfo,
35
+ PackageManifestObservation,
36
+ WorkspaceTopology,
37
+ WorkspaceTopologySource,
29
38
  } from "./analysis/architecture/model.ts";
30
39
  // Code provider types.
31
40
  export type { CodeProvider, CodeProviderState } from "./analysis/provider.ts";
@@ -34,18 +43,26 @@ export type {
34
43
  ResolvedTargetData,
35
44
  ResolvedTargetGroupData,
36
45
  TargetOutcome,
46
+ TargetProviderProvenance,
37
47
  } from "./analysis/target/types.ts";
48
+ export type {
49
+ HealthDiagnosticObservation,
50
+ HealthDiagnosticScope,
51
+ HealthRefreshAttempt,
52
+ HealthRefreshState,
53
+ HealthStaleAssessment,
54
+ SemanticHealthState,
55
+ } from "./session/health-types.ts";
56
+ export type { TargetSymbolKind } from "./session/target-input.ts";
38
57
  // Code-intelligence-specific result types.
39
58
  export type {
40
- AffectedDetails,
41
- BriefDetails,
42
59
  CodeIntelResult,
43
60
  ContextDetails,
44
61
  DisambiguationCandidate,
45
62
  HealthDetails,
46
- ImpactDetails,
63
+ HealthSectionDetails,
47
64
  InspectDetails,
65
+ OrientationSectionDetails,
48
66
  ResolveDetails,
49
67
  SearchDetails,
50
- TestSurfaceDetails,
51
68
  } from "./types/index.ts";
package/src/app/app.ts CHANGED
@@ -8,7 +8,6 @@
8
8
 
9
9
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
10
10
  import { WorkspaceCodeIntelligenceSession } from "../session/session.ts";
11
- import { WorkspaceManager } from "./manager.ts";
12
11
 
13
12
  /**
14
13
  * The code-intelligence app object.
@@ -34,6 +33,19 @@ export interface CodeIntelligenceApp {
34
33
  shutdown(): void;
35
34
  }
36
35
 
36
+ /** Get or create a session in a Map-based cache. */
37
+ export function getOrCreateSession(
38
+ sessions: Map<string, WorkspaceCodeIntelligenceSession>,
39
+ cwd: string,
40
+ ): WorkspaceCodeIntelligenceSession {
41
+ let session = sessions.get(cwd);
42
+ if (!session) {
43
+ session = new WorkspaceCodeIntelligenceSession(cwd);
44
+ sessions.set(cwd, session);
45
+ }
46
+ return session;
47
+ }
48
+
37
49
  /**
38
50
  * Create a simple session cache for tests and ad-hoc usage.
39
51
  *
@@ -48,17 +60,8 @@ export function createSessionCache(): {
48
60
  } {
49
61
  const sessions = new Map<string, WorkspaceCodeIntelligenceSession>();
50
62
  return {
51
- getOrCreate(cwd: string): WorkspaceCodeIntelligenceSession {
52
- let session = sessions.get(cwd);
53
- if (!session) {
54
- session = new WorkspaceCodeIntelligenceSession(cwd);
55
- sessions.set(cwd, session);
56
- }
57
- return session;
58
- },
59
- clear(): void {
60
- sessions.clear();
61
- },
63
+ getOrCreate: (cwd) => getOrCreateSession(sessions, cwd),
64
+ clear: () => sessions.clear(),
62
65
  };
63
66
  }
64
67
 
@@ -71,60 +74,64 @@ export function createSessionCache(): {
71
74
  * - `session_shutdown` — releases all sessions and clears per-session stores
72
75
  */
73
76
  export function createCodeIntelligenceApp(pi: ExtensionAPI): CodeIntelligenceApp {
74
- const manager = new WorkspaceManager();
77
+ const sessions = new Map<string, WorkspaceCodeIntelligenceSession>();
75
78
  const OVERVIEW_CUSTOM_TYPE = "code-intelligence-overview";
76
79
 
77
80
  pi.on("session_start", (_event, ctx) => {
78
- const session = manager.getOrCreateSession(ctx.cwd);
81
+ const session = getOrCreateSession(sessions, ctx.cwd);
82
+ restoreBranchOverviewState(session, ctx.sessionManager.getBranch());
83
+ });
79
84
 
80
- // Check if the branch already contains an overview and restore branch-local instruction state.
81
- const branch = ctx.sessionManager.getBranch();
82
- session.reconstructInstructionState(branch);
83
- for (const entry of branch) {
84
- if (
85
- entry.type === "custom_message" &&
86
- (entry as { customType?: string }).customType === OVERVIEW_CUSTOM_TYPE
87
- ) {
88
- session.hasInjectedOverview = true;
89
- break;
90
- }
91
- }
85
+ pi.on("session_tree", (_event, ctx) => {
86
+ const session = sessions.get(ctx.cwd);
87
+ if (!session) return;
88
+ restoreBranchOverviewState(session, ctx.sessionManager.getBranch());
92
89
  });
93
90
 
94
91
  pi.on("session_compact", (_event, ctx) => {
95
- manager.getSession(ctx.cwd)?.resetSurfacedInstructionDirs();
92
+ sessions.get(ctx.cwd)?.resetSurfacedInstructionDirs();
96
93
  });
97
94
 
98
95
  pi.on("session_shutdown", () => {
99
- // Clear per-session stores before releasing sessions
100
- for (const session of manager.allSessions()) {
96
+ for (const session of sessions.values()) {
101
97
  session.clearStores();
102
98
  }
103
- manager.shutdown();
99
+ sessions.clear();
104
100
  });
105
101
 
106
- return {
107
- getSession(cwd: string): WorkspaceCodeIntelligenceSession | undefined {
108
- return manager.getSession(cwd);
109
- },
110
-
111
- createSession(cwd: string): WorkspaceCodeIntelligenceSession {
112
- return manager.getOrCreateSession(cwd);
113
- },
102
+ /**
103
+ * Restore overview injection state from a branch.
104
+ *
105
+ * Reconstructs instruction-file state and checks whether this branch
106
+ * already contains a code-intelligence-overview custom message.
107
+ */
108
+ function restoreBranchOverviewState(
109
+ session: WorkspaceCodeIntelligenceSession,
110
+ branch: unknown[],
111
+ ): void {
112
+ session.reconstructInstructionState(
113
+ branch as Parameters<typeof session.reconstructInstructionState>[0],
114
+ );
115
+ for (const entry of branch as Array<{ type?: string; customType?: string }>) {
116
+ if (entry.type === "custom_message" && entry.customType === OVERVIEW_CUSTOM_TYPE) {
117
+ session.restoreOverviewInjection();
118
+ return;
119
+ }
120
+ }
121
+ }
114
122
 
123
+ return {
124
+ getSession: (cwd) => sessions.get(cwd),
125
+ createSession: (cwd) => getOrCreateSession(sessions, cwd),
115
126
  releaseSession(cwd: string): void {
116
- const session = manager.getSession(cwd);
117
- if (session) {
118
- session.clearStores();
119
- }
120
- manager.releaseSession(cwd);
127
+ sessions.get(cwd)?.clearStores();
128
+ sessions.delete(cwd);
121
129
  },
122
-
123
130
  shutdown(): void {
124
- for (const session of manager.allSessions()) {
131
+ for (const session of sessions.values()) {
125
132
  session.clearStores();
126
133
  }
127
- manager.shutdown();
134
+ sessions.clear();
128
135
  },
129
136
  };
130
137
  }
package/src/extension.ts CHANGED
@@ -1,18 +1,12 @@
1
1
  // Code Intelligence extension entry point — registers the focused code-intelligence tools,
2
- // the LSP adapter with diagnostics, overrides, and settings, and the unified /supi-ci-status command.
2
+ // LSP diagnostics and settings, and the unified /supi-ci-status command.
3
3
 
4
4
  import type { BeforeAgentStartEventResult, ExtensionAPI } from "@earendil-works/pi-coding-agent";
5
5
  import { buildArchitectureModel } from "./analysis/architecture/discovery.ts";
6
- import {
7
- evaluateCoverageWarnings,
8
- gatherCoverageEvalInput,
9
- } from "./analysis/coverage/coverage-warnings.ts";
10
6
  import { createCodeIntelligenceApp } from "./app/app.ts";
11
7
  import { registerCodeIntelligenceSettings } from "./config.ts";
12
8
  import type { WorkspaceCodeIntelligenceSession } from "./session/session.ts";
13
- import { registerDiagnosticInjectionHandlers } from "./substrate/lsp/diagnostic-injection.ts";
14
9
  import { registerLspSessionLifecycle } from "./substrate/lsp/lifecycle.ts";
15
- import { registerLspAwareToolOverrides } from "./substrate/lsp/overrides.ts";
16
10
  import { registerWorkspaceRecoveryHandler } from "./substrate/lsp/recovery.ts";
17
11
  import { registerLspSettings } from "./substrate/lsp/settings.ts";
18
12
  import { createLspAdapterState } from "./substrate/lsp/state.ts";
@@ -22,12 +16,58 @@ import {
22
16
  } from "./substrate/tree-sitter/lifecycle.ts";
23
17
  import { registerCodeIntelligenceTools } from "./tool/register.ts";
24
18
  import { registerLspFooterContribution } from "./ui/footer.ts";
25
- import { renderOverview } from "./ui/markdown/overview.ts";
19
+ import { estimateTokens, OVERVIEW_TOKEN_BUDGET, renderOverview } from "./ui/markdown/overview.ts";
26
20
  import { buildOverviewData } from "./ui/markdown/overview-data.ts";
27
- import { registerLspMessageRenderer } from "./ui/message-renderer.ts";
28
21
  import { registerCiStatusCommand } from "./ui/status-command.ts";
29
22
 
30
23
  const OVERVIEW_CUSTOM_TYPE = "code-intelligence-overview";
24
+ const PROCESS_EXIT_SAFETY_NET = Symbol.for("supi-code-intelligence/process-exit-safety-net");
25
+
26
+ interface ProcessExitSafetyNet {
27
+ cleanup: (() => void) | null;
28
+ handlerRegistered: boolean;
29
+ handler: () => void;
30
+ }
31
+
32
+ /**
33
+ * Keep one process-exit listener across `/reload` extension instances.
34
+ * Pi hosts one active extension API per process; replacing its cleanup callback
35
+ * prevents old adapter state from being retained after reload.
36
+ */
37
+ function registerProcessExitSafetyNet(cleanup: () => void): () => void {
38
+ const host = globalThis as Record<symbol, ProcessExitSafetyNet | undefined>;
39
+ const safetyNet = host[PROCESS_EXIT_SAFETY_NET] ?? createProcessExitSafetyNet();
40
+ host[PROCESS_EXIT_SAFETY_NET] = safetyNet;
41
+
42
+ safetyNet.cleanup = cleanup;
43
+ if (!safetyNet.handlerRegistered) {
44
+ process.once("exit", safetyNet.handler);
45
+ safetyNet.handlerRegistered = true;
46
+ }
47
+
48
+ return () => {
49
+ if (safetyNet.cleanup !== cleanup) return;
50
+ safetyNet.cleanup = null;
51
+ if (!safetyNet.handlerRegistered) return;
52
+ process.off("exit", safetyNet.handler);
53
+ safetyNet.handlerRegistered = false;
54
+ };
55
+ }
56
+
57
+ function createProcessExitSafetyNet(): ProcessExitSafetyNet {
58
+ const safetyNet: ProcessExitSafetyNet = {
59
+ cleanup: null,
60
+ handlerRegistered: false,
61
+ handler: () => {},
62
+ };
63
+ safetyNet.handler = () => {
64
+ safetyNet.handlerRegistered = false;
65
+ const activeCleanup = safetyNet.cleanup;
66
+ safetyNet.cleanup = null;
67
+ activeCleanup?.();
68
+ };
69
+ return safetyNet;
70
+ }
31
71
 
32
72
  export default function codeIntelligenceExtension(
33
73
  pi: ExtensionAPI,
@@ -42,8 +82,6 @@ export default function codeIntelligenceExtension(
42
82
  registerCodeIntelligenceSettings(pi);
43
83
  registerLspSettings(pi);
44
84
  registerLspSessionLifecycle(pi, lspState);
45
- registerLspAwareToolOverrides(pi, lspState);
46
- registerDiagnosticInjectionHandlers(pi, lspState);
47
85
  registerWorkspaceRecoveryHandler(pi, lspState);
48
86
  registerTsSessionLifecycle(pi, tsState);
49
87
 
@@ -51,8 +89,9 @@ export default function codeIntelligenceExtension(
51
89
  pi.on("session_start", (_event, ctx) => {
52
90
  const session = app.getSession(ctx.cwd);
53
91
  if (!session) return;
54
- if (lspState.controller) session.lspController = lspState.controller;
55
- if (tsState.controller) session.tsController = tsState.controller;
92
+ session.attachLspController(lspState.controller);
93
+ session.seedSentinelSnapshot(lspState.sentinelSnapshot);
94
+ session.setProjectTrusted(ctx.isProjectTrusted());
56
95
  });
57
96
 
58
97
  // ── Tool registration ─────────────────────────────────────────────
@@ -62,7 +101,6 @@ export default function codeIntelligenceExtension(
62
101
  );
63
102
 
64
103
  // ── UI registration ───────────────────────────────────────────────
65
- registerLspMessageRenderer(pi);
66
104
  registerCiStatusCommand(pi);
67
105
  registerLspFooterContribution(lspState);
68
106
 
@@ -72,55 +110,16 @@ export default function codeIntelligenceExtension(
72
110
  session.captureNativeInstructionPaths(event.systemPromptOptions.contextFiles ?? []);
73
111
  });
74
112
 
75
- // ── Coverage warning emission ─────────────────────────────────────
76
- pi.on(
77
- "before_agent_start",
78
- async (_event, ctx): Promise<BeforeAgentStartEventResult | undefined> => {
79
- const session = app.getSession(ctx.cwd);
80
- if (!session) return;
81
-
82
- const report = evaluateCoverageWarnings(
83
- gatherCoverageEvalInput(ctx.cwd, session.lspController),
84
- );
85
- const pending = session.coverageWarningState.getPendingWarnings(report);
86
- if (pending.length === 0) return;
87
-
88
- const lines = [
89
- '<extension-context source="supi-code-intelligence">',
90
- "Code intelligence coverage is degraded:",
91
- ];
92
- for (const w of pending) {
93
- const lang = w.language ? `[${w.language}] ` : "";
94
- const detail = w.detail ? ` — ${w.detail}` : "";
95
- lines.push(`- ${lang}${w.message}${detail}`);
96
- }
97
- lines.push("</extension-context>");
98
- const warningContext = lines.join("\n");
99
-
100
- return {
101
- message: {
102
- customType: "code-intelligence-coverage",
103
- display: true,
104
- content: warningContext,
105
- },
106
- systemPrompt:
107
- (await ctx.getSystemPrompt()) +
108
- `\n\nThe code intelligence stack has degraded coverage. This means some code-understanding tools (code_* tools) may return limited or structural-only information. The agent should still attempt using them, but be aware that semantic coverage for some languages may be unavailable.`,
109
- };
110
- },
111
- );
112
-
113
113
  // ── Overview injection — uses the app-managed session state ────────
114
114
  pi.on(
115
115
  "before_agent_start",
116
116
  async (_event, ctx): Promise<BeforeAgentStartEventResult | undefined> => {
117
117
  const session = app.getSession(ctx.cwd);
118
118
  if (!session) return;
119
- if (session.hasInjectedOverview) return;
120
- session.hasInjectedOverview = true;
119
+ if (!session.claimOverviewInjection()) return;
121
120
 
122
121
  const model = await buildArchitectureModel(ctx.cwd);
123
- if (!model || model.modules.length === 0) return;
122
+ if (model.modules.length === 0) return;
124
123
 
125
124
  const data = buildOverviewData(model);
126
125
  if (!data) return;
@@ -128,6 +127,16 @@ export default function codeIntelligenceExtension(
128
127
  const overview = renderOverview(data);
129
128
  if (!overview) return;
130
129
 
130
+ const estimatedTokens = estimateTokens(overview);
131
+ if (estimatedTokens > OVERVIEW_TOKEN_BUDGET) {
132
+ pi.events.emit("supi:debug", {
133
+ source: "supi-code-intelligence",
134
+ level: "warning",
135
+ category: "overview",
136
+ message: `Overview exceeds soft token budget: ${estimatedTokens} tokens (budget: ${OVERVIEW_TOKEN_BUDGET})`,
137
+ });
138
+ }
139
+
131
140
  return {
132
141
  message: {
133
142
  customType: OVERVIEW_CUSTOM_TYPE,
@@ -139,21 +148,14 @@ export default function codeIntelligenceExtension(
139
148
  );
140
149
 
141
150
  // ── Process-exit safety net ─────────────────────────────────────────
142
- //
143
- // If the Node process exits without `session_shutdown` firing (crash,
144
- // unhandled rejection, SIGINT), make a best-effort synchronous attempt
145
- // to terminate the LSP and Tree-sitter controller trees.
146
- //
147
- // `process.on("exit")` handlers are synchronous — we cannot await
148
- // controller shutdown, but `process.kill(-pid, "SIGTERM")` fires
149
- // synchronously and the SIGKILL escalation in LspClient is handled
150
- // by the kernel after process termination.
151
151
  let cleaningUp = false;
152
- process.once("exit", () => {
152
+ const unregisterExitSafetyNet = registerProcessExitSafetyNet(() => {
153
153
  if (cleaningUp) return;
154
154
  cleaningUp = true;
155
- // Fire and forget the critical kill calls are synchronous.
155
+ // Exit handlers cannot await. Controller shutdown begins synchronous
156
+ // process cleanup before its first await.
156
157
  void lspState.controller?.shutdown();
157
158
  void tsState.controller?.shutdown();
158
159
  });
160
+ pi.on("session_shutdown", unregisterExitSafetyNet);
159
161
  }
@@ -2,15 +2,18 @@
2
2
  * Capability adapter — injected dependency for WorkspaceCodeIntelligenceSession.
3
3
  *
4
4
  * Encapsulates provider access and readiness so the session target
5
- * workflow can be tested with an in-memory adapter. Two adapters
6
- * (production and test) justify the seam.
5
+ * workflow can be tested with an in-memory adapter.
7
6
  *
8
7
  * @mrclrchtr/supi-code-intelligence — internal, not exported via api.ts
9
8
  */
10
9
 
11
- import type { SemanticProvider, StructuralProvider } from "@mrclrchtr/supi-code-runtime/api";
12
- import { getDefaultWorkspaceRuntime } from "@mrclrchtr/supi-code-runtime/api";
13
- import type { SessionLspServiceState } from "@mrclrchtr/supi-lsp/api";
10
+ import {
11
+ type CapabilityState,
12
+ getDefaultWorkspaceRuntime,
13
+ type SemanticProvider,
14
+ type StructuralProvider,
15
+ } from "@mrclrchtr/supi-code-runtime/api";
16
+ import { getWorkspaceLspRuntime, type WorkspaceLspRuntimeState } from "@mrclrchtr/supi-lsp/api";
14
17
  import {
15
18
  type CodeProvider,
16
19
  type CodeProviderState,
@@ -35,8 +38,7 @@ export type ReadinessOutcome =
35
38
  /**
36
39
  * Injected capability adapter.
37
40
  *
38
- * Production adapter reads the global workspace runtime. Test adapter
39
- * provides semantic/structural providers in memory without global state.
41
+ * Production adapter reads the global workspace runtime.
40
42
  */
41
43
  export interface CapabilityAdapter {
42
44
  /** Get the composite code provider state for a workspace. */
@@ -51,6 +53,15 @@ export interface CapabilityAdapter {
51
53
  /** Get the raw structural provider, or null. */
52
54
  getStructuralProvider(cwd: string): StructuralProvider | null;
53
55
 
56
+ /** Get the workspace LSP operational state for diagnostics and recovery workflows. */
57
+ getLspRuntimeState(cwd: string): WorkspaceLspRuntimeState;
58
+
59
+ /** Get semantic and structural capability states without exposing providers. */
60
+ getCapabilityStates(cwd: string): {
61
+ semantic: CapabilityState;
62
+ structural: CapabilityState;
63
+ };
64
+
54
65
  /**
55
66
  * Wait for semantic (LSP) readiness. Returns a typed outcome so
56
67
  * the target workflow can decide whether to proceed, return a
@@ -101,118 +112,15 @@ export class WorkspaceCapabilityAdapter implements CapabilityAdapter {
101
112
  return result;
102
113
  }
103
114
 
104
- /** Convenience: LSP service state for impact/health consumers still using it directly. */
105
- getLspService(cwd: string): SessionLspServiceState {
106
- const state = this.getProviderState(cwd);
107
- return state.kind === "ready"
108
- ? state.lspService
109
- : { kind: "unavailable" as const, reason: "No provider" };
110
- }
111
- }
112
-
113
- // ── Test adapter ──────────────────────────────────────────────────────
114
-
115
- /**
116
- * In-memory capability adapter for tests.
117
- *
118
- * Pass explicit providers and readiness outcomes without touching
119
- * the global workspace runtime.
120
- */
121
- export class TestCapabilityAdapter implements CapabilityAdapter {
122
- readonly #semantic: SemanticProvider | null;
123
- readonly #structural: StructuralProvider | null;
124
- readonly #readiness: ReadinessOutcome;
125
- readonly #lspService: SessionLspServiceState;
126
-
127
- constructor(options: {
128
- semantic?: SemanticProvider | null;
129
- structural?: StructuralProvider | null;
130
- readiness?: ReadinessOutcome;
131
- lspService?: SessionLspServiceState;
132
- }) {
133
- this.#semantic = options.semantic ?? null;
134
- this.#structural = options.structural ?? null;
135
- this.#readiness = options.readiness ?? { kind: "ready" };
136
- this.#lspService = options.lspService ?? {
137
- kind: "unavailable" as const,
138
- reason: "no test LSP",
139
- };
140
- }
141
-
142
- getProviderState(_cwd: string): CodeProviderState {
143
- if (!this.#semantic && !this.#structural) {
144
- return { kind: "unavailable", reason: "No providers in test adapter" };
145
- }
146
- return {
147
- kind: "ready",
148
- provider: this.getProvider(_cwd) as CodeProvider,
149
- lspService: this.#lspService,
150
- };
151
- }
152
-
153
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: adapter maps many provider methods; splitting would degrade readability
154
- getProvider(_cwd: string): CodeProvider | null {
155
- if (!this.#semantic && !this.#structural) return null;
156
- return {
157
- // Semantic pass-through
158
- references: this.#semantic?.references
159
- ? (...args: Parameters<SemanticProvider["references"]>) =>
160
- this.#semantic?.references?.(...args)
161
- : async () => null,
162
- implementation: this.#semantic?.implementation
163
- ? (...args) => this.#semantic?.implementation?.(...args)
164
- : async () => null,
165
- documentSymbols: this.#semantic?.documentSymbols
166
- ? (...args) => this.#semantic?.documentSymbols?.(...args)
167
- : async () => [],
168
- workspaceSymbols: this.#semantic?.workspaceSymbols
169
- ? (...args) => this.#semantic?.workspaceSymbols?.(...args)
170
- : async () => [],
171
- hover: this.#semantic?.hover ? (...args) => this.#semantic?.hover?.(...args) : undefined,
172
- definition: this.#semantic?.definition
173
- ? (...args) => this.#semantic?.definition?.(...args)
174
- : undefined,
175
- codeActions: this.#semantic?.codeActions
176
- ? (...args) => this.#semantic?.codeActions?.(...args)
177
- : undefined,
178
- codeActionTitles: this.#semantic?.codeActionTitles
179
- ? (...args) => this.#semantic?.codeActionTitles?.(...args)
180
- : undefined,
181
- rename: this.#semantic?.rename ? (...args) => this.#semantic?.rename?.(...args) : undefined,
182
- refactor: this.#semantic?.refactor
183
- ? (...args) => this.#semantic?.refactor?.(...args)
184
- : undefined,
185
- // Structural pass-through
186
- calleesAt: this.#structural?.calleesAt
187
- ? (...args) => this.#structural?.calleesAt?.(...args)
188
- : async () => ({ kind: "unavailable" as const, message: "no test structural" }),
189
- exports: this.#structural?.exports
190
- ? (...args) => this.#structural?.exports?.(...args)
191
- : async () => ({ kind: "unavailable" as const, message: "no test structural" }),
192
- outline: this.#structural?.outline
193
- ? (...args) => this.#structural?.outline?.(...args)
194
- : async () => ({ kind: "unavailable" as const, message: "no test structural" }),
195
- imports: this.#structural?.imports
196
- ? (...args) => this.#structural?.imports?.(...args)
197
- : async () => ({ kind: "unavailable" as const, message: "no test structural" }),
198
- nodeAt: this.#structural?.nodeAt
199
- ? (...args) => this.#structural?.nodeAt?.(...args)
200
- : async () => ({ kind: "unavailable" as const, message: "no test structural" }),
201
- callSites: this.#structural?.callSites
202
- ? (...args) => this.#structural?.callSites?.(...args)
203
- : async () => ({ kind: "unavailable" as const, message: "no test structural" }),
204
- } as CodeProvider;
205
- }
206
-
207
- getSemanticProvider(_cwd: string): SemanticProvider | null {
208
- return this.#semantic;
209
- }
210
-
211
- getStructuralProvider(_cwd: string): StructuralProvider | null {
212
- return this.#structural;
115
+ getCapabilityStates(cwd: string): {
116
+ semantic: CapabilityState;
117
+ structural: CapabilityState;
118
+ } {
119
+ const workspace = getDefaultWorkspaceRuntime().getWorkspace(cwd);
120
+ return { semantic: workspace.semantic.state, structural: workspace.structural.state };
213
121
  }
214
122
 
215
- async ensureSemanticReadiness(_cwd: string, _scope: ReadinessScope): Promise<ReadinessOutcome> {
216
- return this.#readiness;
123
+ getLspRuntimeState(cwd: string): WorkspaceLspRuntimeState {
124
+ return getWorkspaceLspRuntime(cwd);
217
125
  }
218
126
  }
@@ -0,0 +1,38 @@
1
+ import type { CodeSymbol } from "@mrclrchtr/supi-code-runtime/api";
2
+ import type { StructuredPatternResult } from "../analysis/search/pattern.ts";
3
+ import type { CodeFindAstKind } from "../tool/find/ast-kinds.ts";
4
+ import type { CodeFindMode } from "../tool/find/modes.ts";
5
+
6
+ export type FindMode = CodeFindMode;
7
+
8
+ export interface FindWorkflowInput {
9
+ readonly query: string;
10
+ readonly scope?: readonly string[];
11
+ readonly mode: FindMode;
12
+ readonly kind?: CodeFindAstKind;
13
+ readonly maxResults?: number;
14
+ }
15
+
16
+ export type FindWorkflowData =
17
+ | {
18
+ readonly kind: "ast";
19
+ readonly astKind: CodeFindAstKind;
20
+ readonly result: Readonly<StructuredPatternResult>;
21
+ }
22
+ | {
23
+ readonly kind: "semantic";
24
+ readonly symbols: readonly CodeSymbol[];
25
+ readonly partialReason: string | null;
26
+ };
27
+
28
+ export type FindWorkflowOutcome =
29
+ | {
30
+ readonly kind: "completed";
31
+ readonly query: string;
32
+ readonly mode: FindMode;
33
+ readonly scopeLabel: string;
34
+ readonly maxResults: number;
35
+ readonly data: FindWorkflowData;
36
+ }
37
+ | { readonly kind: "invalid-input"; readonly message: string }
38
+ | { readonly kind: "unavailable"; readonly reason: string };