@mrclrchtr/supi-code-intelligence 3.2.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/README.md +157 -435
  2. package/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  3. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  4. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  5. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  6. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  7. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  8. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  9. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
  10. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
  11. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
  12. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  13. package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  14. package/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  15. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  16. package/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  17. package/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  18. package/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  19. package/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  20. package/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  21. package/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  22. package/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  23. package/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  24. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
  25. package/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
  26. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/README.md +72 -62
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -8
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/package.json +4 -5
  54. package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +9 -9
  55. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +70 -41
  56. package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +16 -13
  57. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +2 -2
  58. package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +0 -2
  59. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +6 -6
  60. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-diagnostics.ts +5 -95
  61. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -3
  62. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +44 -6
  63. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +47 -65
  64. package/node_modules/@mrclrchtr/supi-lsp/src/provider/lsp-semantic-provider.ts +132 -79
  65. package/node_modules/@mrclrchtr/supi-lsp/src/provider/refactor-planning.ts +6 -14
  66. package/node_modules/@mrclrchtr/supi-lsp/src/session/readiness.ts +38 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-controller.ts +87 -75
  68. package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registration.ts +5 -5
  69. package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts} +163 -71
  70. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +4 -0
  71. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  72. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -8
  73. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  74. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  75. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  76. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  77. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  78. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
  79. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
  80. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
  81. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  82. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  83. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  84. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  85. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  86. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  87. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  88. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  89. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  90. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  91. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  92. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  93. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-action-menu.ts +1 -0
  94. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings/settings-schema.ts +9 -0
  95. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +1 -0
  96. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +4 -21
  97. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm +0 -0
  98. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm.json +2 -2
  99. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm +0 -0
  100. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm.json +2 -2
  101. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm +0 -0
  102. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm.json +2 -2
  103. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm +0 -0
  104. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm.json +2 -2
  105. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
  106. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
  107. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm +0 -0
  108. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm.json +2 -2
  109. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm +0 -0
  110. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm.json +2 -2
  111. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/rust/tree-sitter-rust.wasm.json +1 -1
  112. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
  113. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +3 -3
  114. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-kotlin-wasm.mjs +6 -0
  115. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-sql-wasm.mjs +18 -4
  116. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/vendor-wasm.mjs +17 -1
  117. package/node_modules/@mrclrchtr/supi-tree-sitter/src/api.ts +2 -0
  118. package/node_modules/@mrclrchtr/supi-tree-sitter/src/coordinates.ts +20 -41
  119. package/node_modules/@mrclrchtr/supi-tree-sitter/src/index.ts +2 -0
  120. package/node_modules/@mrclrchtr/supi-tree-sitter/src/language.ts +7 -0
  121. package/node_modules/@mrclrchtr/supi-tree-sitter/src/operation-support.ts +40 -0
  122. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/session.ts +9 -7
  123. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/call-sites.ts +6 -1
  124. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/callees.ts +76 -37
  125. package/node_modules/yaml/LICENSE +13 -0
  126. package/node_modules/yaml/README.md +172 -0
  127. package/node_modules/yaml/bin.mjs +11 -0
  128. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  129. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  130. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  131. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  132. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  133. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  134. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  135. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  136. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  137. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  138. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  139. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  140. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  141. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  142. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  143. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  144. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  145. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  146. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  147. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  148. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  149. package/node_modules/yaml/browser/dist/errors.js +57 -0
  150. package/node_modules/yaml/browser/dist/index.js +17 -0
  151. package/node_modules/yaml/browser/dist/log.js +11 -0
  152. package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  153. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  154. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  155. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  156. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  157. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  158. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  159. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  160. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  161. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  162. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  163. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  164. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  165. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  166. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  167. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  168. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  169. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  170. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  171. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  172. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  173. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  174. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  175. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  176. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  177. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  178. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  179. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  180. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  181. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  182. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  183. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  184. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  185. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  186. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  187. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  188. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  189. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  190. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  191. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  192. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  193. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  194. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  195. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  196. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  197. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  198. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  199. package/node_modules/yaml/browser/dist/util.js +11 -0
  200. package/node_modules/yaml/browser/dist/visit.js +233 -0
  201. package/node_modules/yaml/browser/index.js +5 -0
  202. package/node_modules/yaml/browser/package.json +3 -0
  203. package/node_modules/yaml/dist/cli.d.ts +8 -0
  204. package/node_modules/yaml/dist/cli.mjs +201 -0
  205. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  206. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  207. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  208. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  209. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  210. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  211. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  212. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  213. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  214. package/node_modules/yaml/dist/compose/composer.js +224 -0
  215. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  216. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  217. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  218. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  219. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  220. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  221. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  222. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  223. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  224. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  225. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  226. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  227. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  228. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  229. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  230. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  231. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  232. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  233. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  234. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  235. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  236. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  237. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  238. package/node_modules/yaml/dist/doc/Document.js +337 -0
  239. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  240. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  241. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  242. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  243. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  244. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  245. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  246. package/node_modules/yaml/dist/doc/directives.js +178 -0
  247. package/node_modules/yaml/dist/errors.d.ts +21 -0
  248. package/node_modules/yaml/dist/errors.js +62 -0
  249. package/node_modules/yaml/dist/index.d.ts +25 -0
  250. package/node_modules/yaml/dist/index.js +50 -0
  251. package/node_modules/yaml/dist/log.d.ts +3 -0
  252. package/node_modules/yaml/dist/log.js +19 -0
  253. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  254. package/node_modules/yaml/dist/nodes/Alias.js +118 -0
  255. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  256. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  257. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  258. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  259. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  260. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  261. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  262. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  263. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  264. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  265. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  266. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  267. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  268. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  269. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  270. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  271. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  272. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  273. package/node_modules/yaml/dist/options.d.ts +350 -0
  274. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  275. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  276. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  277. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  278. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  279. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  280. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  281. package/node_modules/yaml/dist/parse/cst.js +112 -0
  282. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  283. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  284. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  285. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  286. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  287. package/node_modules/yaml/dist/parse/parser.js +980 -0
  288. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  289. package/node_modules/yaml/dist/public-api.js +107 -0
  290. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  291. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  292. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  293. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  294. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  295. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  296. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  297. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  298. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  299. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  300. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  301. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  302. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  303. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  304. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  305. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  306. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  307. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  308. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  309. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  310. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  311. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  312. package/node_modules/yaml/dist/schema/tags.js +99 -0
  313. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  314. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  315. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  316. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  317. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  318. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  319. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  320. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  321. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  322. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  323. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  324. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  325. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  326. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  327. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  328. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  329. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  330. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  331. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  332. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  333. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  334. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  335. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  336. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  337. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  338. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  339. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  340. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  341. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  342. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  343. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  344. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  345. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  346. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  347. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  348. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  349. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  350. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  351. package/node_modules/yaml/dist/test-events.js +134 -0
  352. package/node_modules/yaml/dist/util.d.ts +16 -0
  353. package/node_modules/yaml/dist/util.js +28 -0
  354. package/node_modules/yaml/dist/visit.d.ts +102 -0
  355. package/node_modules/yaml/dist/visit.js +236 -0
  356. package/node_modules/yaml/package.json +97 -0
  357. package/node_modules/yaml/util.js +2 -0
  358. package/package.json +10 -8
  359. package/src/analysis/architecture/discovery.ts +213 -227
  360. package/src/analysis/architecture/manifest.ts +147 -0
  361. package/src/analysis/architecture/model.ts +119 -52
  362. package/src/analysis/architecture/workspace-config.ts +229 -0
  363. package/src/analysis/{coverage/coverage-warnings.ts → capability/capability-warnings.ts} +41 -78
  364. package/src/analysis/evidence.ts +22 -5
  365. package/src/analysis/health/diagnostics.ts +183 -0
  366. package/src/analysis/health/recovery.ts +39 -0
  367. package/src/analysis/health/signals.ts +20 -0
  368. package/src/analysis/instruction-files.ts +60 -48
  369. package/src/analysis/provider.ts +31 -12
  370. package/src/analysis/readiness.ts +29 -9
  371. package/src/{tool/refactor-apply → analysis/refactor}/apply.ts +120 -26
  372. package/src/analysis/refactor/position.ts +6 -0
  373. package/src/analysis/refactor/safety.ts +4 -11
  374. package/src/analysis/references/locations.ts +20 -0
  375. package/src/analysis/references/semantic-refs.ts +21 -11
  376. package/src/{tool/graph → analysis/relations}/implementations.ts +27 -23
  377. package/src/analysis/relations/provider-locations.ts +179 -0
  378. package/src/{tool/graph → analysis/relations}/references.ts +25 -21
  379. package/src/{tool/graph → analysis/relations}/types.ts +4 -19
  380. package/src/analysis/search/ast-scan.ts +376 -0
  381. package/src/analysis/search/call-name.ts +68 -0
  382. package/src/analysis/search/deadline.ts +84 -0
  383. package/src/analysis/search/paths.ts +88 -0
  384. package/src/analysis/search/pattern.ts +290 -246
  385. package/src/analysis/target/anchored.ts +72 -27
  386. package/src/analysis/target/file.ts +292 -132
  387. package/src/analysis/target/identity.ts +237 -0
  388. package/src/analysis/target/symbol.ts +169 -86
  389. package/src/analysis/target/types.ts +36 -4
  390. package/src/api.ts +21 -4
  391. package/src/app/app.ts +54 -44
  392. package/src/extension.ts +21 -97
  393. package/src/headless.ts +41 -0
  394. package/src/session/capability-adapter.ts +26 -118
  395. package/src/session/find-types.ts +38 -0
  396. package/src/session/find-workflow.ts +141 -0
  397. package/src/session/graph/collect.ts +181 -0
  398. package/src/session/graph-types.ts +77 -0
  399. package/src/session/graph-workflow.ts +152 -0
  400. package/src/session/health-types.ts +134 -0
  401. package/src/session/health-workflow.ts +341 -0
  402. package/src/session/input/common.ts +216 -0
  403. package/src/session/input/health-refactor.ts +169 -0
  404. package/src/session/input/workflows.ts +211 -0
  405. package/src/session/inspect/collect.ts +304 -0
  406. package/src/session/inspect/file-point.ts +69 -0
  407. package/src/session/inspect-types.ts +78 -0
  408. package/src/session/inspect-workflow.ts +157 -0
  409. package/src/session/orientation/collect.ts +718 -0
  410. package/src/session/orientation/context-facts.ts +319 -0
  411. package/src/session/orientation/context-sections.ts +352 -0
  412. package/src/session/orientation-types.ts +97 -0
  413. package/src/session/orientation-workflow.ts +307 -0
  414. package/src/session/refactor-plans.ts +1 -1
  415. package/src/session/refactor-types.ts +51 -0
  416. package/src/session/refactor-workflow.ts +263 -0
  417. package/src/session/session.ts +263 -234
  418. package/src/session/target-candidates.ts +60 -0
  419. package/src/session/target-input.ts +98 -0
  420. package/src/session/target-store.ts +132 -29
  421. package/src/session/target-workflow.ts +254 -302
  422. package/src/session/workflow-control.ts +35 -0
  423. package/src/substrate/lsp/lifecycle.ts +26 -53
  424. package/src/substrate/lsp/maintenance.ts +75 -0
  425. package/src/substrate/lsp/recovery.ts +41 -25
  426. package/src/substrate/lsp/settings.ts +1 -10
  427. package/src/substrate/lsp/state.ts +5 -13
  428. package/src/substrate/workspace-provider-host.ts +129 -0
  429. package/src/tool/find/ast-kinds.ts +35 -0
  430. package/src/tool/find/execute.ts +22 -113
  431. package/src/tool/find/markdown.ts +85 -221
  432. package/src/tool/find/modes.ts +5 -0
  433. package/src/tool/find/render.ts +57 -0
  434. package/src/tool/find/tui.ts +1 -1
  435. package/src/tool/graph/calls-md.ts +17 -30
  436. package/src/tool/graph/execute.ts +42 -103
  437. package/src/tool/graph/implementations-md.ts +32 -54
  438. package/src/tool/graph/markdown-base.ts +73 -196
  439. package/src/tool/graph/provider-location-md.ts +9 -0
  440. package/src/tool/graph/references-md.ts +34 -27
  441. package/src/tool/graph/tui.ts +8 -26
  442. package/src/tool/guidance.ts +31 -48
  443. package/src/tool/health/execute.ts +15 -56
  444. package/src/tool/health/markdown.ts +199 -148
  445. package/src/tool/health/semantic-state.ts +24 -0
  446. package/src/tool/health/tui.ts +262 -36
  447. package/src/tool/infra/error-results.ts +0 -2
  448. package/src/tool/infra/progress.ts +2 -2
  449. package/src/tool/infra/workflow-control.ts +11 -0
  450. package/src/tool/inspect/execute.ts +23 -63
  451. package/src/tool/inspect/markdown.ts +114 -95
  452. package/src/tool/inspect/tui.ts +7 -7
  453. package/src/tool/orientation/execute.ts +50 -37
  454. package/src/tool/orientation/markdown.ts +26 -31
  455. package/src/tool/orientation/tui.ts +41 -39
  456. package/src/tool/refactor-apply/execute.ts +23 -9
  457. package/src/tool/refactor-apply/tui.ts +7 -3
  458. package/src/tool/refactor-plan/execute.ts +44 -61
  459. package/src/tool/refactor-plan/markdown.ts +33 -56
  460. package/src/tool/refactor-plan/tui.ts +10 -11
  461. package/src/tool/register.ts +6 -5
  462. package/src/tool/resolve/execute.ts +23 -69
  463. package/src/tool/resolve/markdown.ts +125 -114
  464. package/src/tool/resolve/tui.ts +11 -9
  465. package/src/tool/result/assembly.ts +125 -0
  466. package/src/tool/result/errors.ts +20 -34
  467. package/src/tool/result/find.ts +107 -21
  468. package/src/tool/result/graph.ts +163 -64
  469. package/src/tool/result/health.ts +170 -73
  470. package/src/tool/result/inspect.ts +183 -41
  471. package/src/tool/result/orientation.ts +118 -16
  472. package/src/tool/result/refactor.ts +101 -21
  473. package/src/tool/result/resolve.ts +243 -80
  474. package/src/tool/result/types.ts +100 -56
  475. package/src/tool/schemas.ts +160 -231
  476. package/src/tool/specs.ts +57 -168
  477. package/src/types/details.ts +2 -4
  478. package/src/types/execution.ts +6 -15
  479. package/src/types/index.ts +2 -4
  480. package/src/types/tool-names.ts +1 -2
  481. package/src/ui/footer.ts +3 -3
  482. package/src/ui/markdown/gather.ts +17 -65
  483. package/src/ui/markdown/overview-data.ts +143 -21
  484. package/src/ui/markdown/overview.ts +27 -8
  485. package/src/ui/markdown/types.ts +12 -16
  486. package/src/ui/status-command.ts +39 -31
  487. package/src/ui/status-overlay.ts +23 -15
  488. package/src/ui/tui/common.ts +121 -74
  489. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  490. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  491. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  492. package/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  493. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  494. package/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  495. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  496. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  497. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  498. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  499. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  500. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  501. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-augmentation.ts +0 -82
  502. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-context.ts +0 -116
  503. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-display.ts +0 -69
  504. package/node_modules/@mrclrchtr/supi-lsp/src/manager/capability-index.ts +0 -24
  505. package/node_modules/@mrclrchtr/supi-lsp/src/manager/client-pool.ts +0 -33
  506. package/node_modules/@mrclrchtr/supi-lsp/src/manager/diagnostic-store.ts +0 -51
  507. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-stale-resync.ts +0 -47
  508. package/node_modules/@mrclrchtr/supi-lsp/src/manager/recovery-coordinator.ts +0 -37
  509. package/node_modules/@mrclrchtr/supi-lsp/src/manager/workspace-router.ts +0 -44
  510. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  511. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  512. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  513. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  514. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  515. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  516. package/src/analysis/brief/directory.ts +0 -324
  517. package/src/analysis/brief/enrich.ts +0 -157
  518. package/src/analysis/brief/file.ts +0 -84
  519. package/src/analysis/brief/inventory.ts +0 -177
  520. package/src/analysis/brief/main.ts +0 -176
  521. package/src/analysis/brief/models.ts +0 -75
  522. package/src/analysis/brief/public-brief.ts +0 -179
  523. package/src/analysis/brief/summarize.ts +0 -208
  524. package/src/analysis/brief/types.ts +0 -27
  525. package/src/analysis/brief/use-case.ts +0 -264
  526. package/src/analysis/search/ripgrep.ts +0 -558
  527. package/src/analysis/signals/git.ts +0 -89
  528. package/src/analysis/signals/project.ts +0 -189
  529. package/src/analysis/target/bridge.ts +0 -152
  530. package/src/analysis/target/file-resolution.ts +0 -125
  531. package/src/analysis/target/planner.ts +0 -92
  532. package/src/analysis/target/query.ts +0 -74
  533. package/src/analysis/target/resolve-common.ts +0 -115
  534. package/src/analysis/target/service.ts +0 -229
  535. package/src/analysis/tests/likely-tests.ts +0 -174
  536. package/src/analysis/tests/test-discovery.ts +0 -540
  537. package/src/analysis/tests/vitest.ts +0 -87
  538. package/src/app/manager.ts +0 -65
  539. package/src/substrate/lsp/diagnostic-injection.ts +0 -203
  540. package/src/substrate/lsp/overrides.ts +0 -132
  541. package/src/substrate/tree-sitter/lifecycle.ts +0 -52
  542. package/src/tool/find/orchestrate.ts +0 -317
  543. package/src/tool/find/semantic-search.ts +0 -128
  544. package/src/tool/graph/collect-relation.ts +0 -372
  545. package/src/tool/graph/orchestrate.ts +0 -259
  546. package/src/tool/health/orchestrate.ts +0 -151
  547. package/src/tool/health/sections/diagnostics.ts +0 -182
  548. package/src/tool/health/sections/recovery.ts +0 -89
  549. package/src/tool/health/sections/signals.ts +0 -89
  550. package/src/tool/impact/analysis.ts +0 -220
  551. package/src/tool/impact/change-set-impact.ts +0 -152
  552. package/src/tool/impact/execute.ts +0 -125
  553. package/src/tool/impact/file-level-impact.ts +0 -82
  554. package/src/tool/impact/markdown.ts +0 -283
  555. package/src/tool/impact/orchestrate.ts +0 -97
  556. package/src/tool/impact/result.ts +0 -2
  557. package/src/tool/impact/single-impact.ts +0 -90
  558. package/src/tool/impact/tui.ts +0 -39
  559. package/src/tool/impact/types.ts +0 -34
  560. package/src/tool/infra/cross-field.ts +0 -335
  561. package/src/tool/infra/pipeline.ts +0 -334
  562. package/src/tool/infra/readiness-message.ts +0 -5
  563. package/src/tool/inspect/orchestrate.ts +0 -154
  564. package/src/tool/orientation/deps.ts +0 -63
  565. package/src/tool/orientation/mode.ts +0 -139
  566. package/src/tool/orientation/orchestrate.ts +0 -475
  567. package/src/tool/orientation/precise-target.ts +0 -253
  568. package/src/tool/params.ts +0 -15
  569. package/src/tool/refactor-apply/markdown.ts +0 -118
  570. package/src/tool/refactor-apply/orchestrate.ts +0 -84
  571. package/src/tool/refactor-plan/orchestrate.ts +0 -355
  572. package/src/tool/resolve/orchestrate.ts +0 -38
  573. package/src/tool/result/impact.ts +0 -50
  574. package/src/ui/markdown/brief.ts +0 -218
  575. package/src/ui/message-renderer.ts +0 -121
  576. package/src/ui/tui/index.ts +0 -37
  577. /package/src/{tool/graph → analysis/relations}/callees.ts +0 -0
@@ -1,189 +0,0 @@
1
- import * as path from "node:path";
2
- import { readJsonFile } from "@mrclrchtr/supi-core/config";
3
- import type { SessionLspServiceState } from "@mrclrchtr/supi-lsp/api";
4
-
5
- export interface PrioritySignalsSummary {
6
- diagnosticsCount: number;
7
- lowCoverageCount: number;
8
- unusedCount: number;
9
- warnings: string[];
10
- }
11
-
12
- export interface LoadedSignals {
13
- diagnostics: Array<{ file: string; total: number; errors: number; warnings: number }>;
14
- coverageByFile: Map<string, number>;
15
- unusedFiles: Set<string>;
16
- unusedExports: Array<{ file: string; name: string }>;
17
- }
18
-
19
- export interface LoadPrioritizationSignalsOptions {
20
- coveragePath?: string;
21
- unusedPath?: string;
22
- }
23
-
24
- export function summarizePrioritySignalsForFiles(
25
- cwd: string,
26
- files: Iterable<string>,
27
- lspService: SessionLspServiceState,
28
- ): PrioritySignalsSummary | null {
29
- const loaded = loadPrioritizationSignals(cwd, lspService);
30
- const relevantFiles = new Set([...files].map((file) => path.resolve(cwd, file)));
31
- if (relevantFiles.size === 0) return null;
32
-
33
- const warnings: string[] = [];
34
-
35
- const matchingDiagnostics = loaded.diagnostics.filter((entry) =>
36
- relevantFiles.has(path.resolve(entry.file)),
37
- );
38
- const diagnosticsCount = matchingDiagnostics.reduce((sum, entry) => sum + entry.total, 0);
39
- for (const entry of matchingDiagnostics.slice(0, 3)) {
40
- warnings.push(
41
- `Diagnostics: \`${path.relative(cwd, entry.file)}\` (${entry.total} total${entry.errors > 0 ? `, ${entry.errors} errors` : ""}${entry.warnings > 0 ? `, ${entry.warnings} warnings` : ""})`,
42
- );
43
- }
44
-
45
- const lowCoverage = [...loaded.coverageByFile.entries()]
46
- .filter(([file, pct]) => relevantFiles.has(path.resolve(file)) && pct < 50)
47
- .sort((a, b) => a[1] - b[1]);
48
- for (const [file, pct] of lowCoverage.slice(0, 3)) {
49
- warnings.push(`Low coverage: \`${path.relative(cwd, file)}\` (${pct.toFixed(0)}%)`);
50
- }
51
-
52
- const unusedFileMatches = [...loaded.unusedFiles]
53
- .filter((file) => relevantFiles.has(path.resolve(file)))
54
- .sort((a, b) => a.localeCompare(b));
55
- for (const file of unusedFileMatches.slice(0, 3)) {
56
- warnings.push(`Unused file: \`${path.relative(cwd, file)}\``);
57
- }
58
-
59
- const unusedExportMatches = loaded.unusedExports
60
- .filter((entry) => relevantFiles.has(path.resolve(entry.file)))
61
- .sort((a, b) => a.name.localeCompare(b.name));
62
- for (const entry of unusedExportMatches.slice(0, 3)) {
63
- warnings.push(`Unused export: \`${entry.name}\` in \`${path.relative(cwd, entry.file)}\``);
64
- }
65
-
66
- const summary: PrioritySignalsSummary = {
67
- diagnosticsCount,
68
- lowCoverageCount: lowCoverage.length,
69
- unusedCount: unusedFileMatches.length + unusedExportMatches.length,
70
- warnings,
71
- };
72
-
73
- return summary.diagnosticsCount > 0 || summary.lowCoverageCount > 0 || summary.unusedCount > 0
74
- ? summary
75
- : null;
76
- }
77
-
78
- export function loadPrioritizationSignals(
79
- cwd: string,
80
- lspService: SessionLspServiceState,
81
- options: LoadPrioritizationSignalsOptions = {},
82
- ): LoadedSignals {
83
- return {
84
- diagnostics: loadDiagnostics(cwd, lspService),
85
- coverageByFile: loadCoverageSummary(cwd, options.coveragePath),
86
- unusedFiles: loadUnusedFiles(cwd, options.unusedPath),
87
- unusedExports: loadUnusedExports(cwd, options.unusedPath),
88
- };
89
- }
90
-
91
- export function appendPrioritySignalsSection(
92
- lines: string[],
93
- summary: PrioritySignalsSummary | null,
94
- ): void {
95
- if (!summary || summary.warnings.length === 0) return;
96
- lines.push("## Priority Signals");
97
- for (const warning of summary.warnings.slice(0, 6)) {
98
- lines.push(`- ${warning}`);
99
- }
100
- lines.push("");
101
- }
102
-
103
- function loadDiagnostics(
104
- cwd: string,
105
- lspService: SessionLspServiceState,
106
- ): Array<{ file: string; total: number; errors: number; warnings: number }> {
107
- if (lspService.kind !== "ready") return [];
108
- if (typeof lspService.service.getOutstandingDiagnosticSummary !== "function") return [];
109
-
110
- return lspService.service.getOutstandingDiagnosticSummary(2).map((entry) => ({
111
- file: path.resolve(cwd, entry.file),
112
- total: entry.total,
113
- errors: entry.errors,
114
- warnings: entry.warnings,
115
- }));
116
- }
117
-
118
- function loadCoverageSummary(cwd: string, coveragePathInput?: string): Map<string, number> {
119
- const coveragePath = path.resolve(cwd, coveragePathInput ?? "coverage/coverage-summary.json");
120
- const parsed = readJsonFile(coveragePath);
121
- if (!parsed) return new Map();
122
-
123
- const map = new Map<string, number>();
124
- for (const [file, value] of Object.entries(parsed)) {
125
- if (file === "total" || typeof value !== "object" || value === null) continue;
126
- const linesPct = getPct(value, "lines");
127
- const statementsPct = getPct(value, "statements");
128
- const pct = Math.min(linesPct ?? 100, statementsPct ?? 100);
129
- map.set(path.resolve(cwd, file), pct);
130
- }
131
- return map;
132
- }
133
-
134
- function loadUnusedFiles(cwd: string, unusedPath?: string): Set<string> {
135
- const parsed = loadKnipJson(cwd, unusedPath);
136
- const values = Array.isArray(parsed?.files) ? parsed.files : [];
137
- const files = values
138
- .map((value) => toPathString(value))
139
- .filter((value): value is string => Boolean(value))
140
- .map((file) => path.resolve(cwd, file));
141
- return new Set(files);
142
- }
143
-
144
- function loadUnusedExports(
145
- cwd: string,
146
- unusedPath?: string,
147
- ): Array<{ file: string; name: string }> {
148
- const parsed = loadKnipJson(cwd, unusedPath);
149
- const values = Array.isArray(parsed?.exports) ? parsed.exports : [];
150
- const exports: Array<{ file: string; name: string }> = [];
151
-
152
- for (const value of values) {
153
- if (typeof value === "string") {
154
- exports.push({ file: path.resolve(cwd, value), name: path.basename(value) });
155
- continue;
156
- }
157
- if (typeof value !== "object" || value === null) continue;
158
- const record = value as Record<string, unknown>;
159
- const file = toPathString(record.file) ?? toPathString(record.path);
160
- const name = typeof record.name === "string" ? record.name : null;
161
- if (file && name) {
162
- exports.push({ file: path.resolve(cwd, file), name });
163
- }
164
- }
165
-
166
- return exports;
167
- }
168
-
169
- function loadKnipJson(cwd: string, unusedPath?: string): Record<string, unknown> | null {
170
- return readJsonFile(path.resolve(cwd, unusedPath ?? "knip.json"));
171
- }
172
-
173
- function getPct(value: object, key: string): number | null {
174
- const candidate = (value as Record<string, unknown>)[key];
175
- if (typeof candidate !== "object" || candidate === null) return null;
176
- const pct = (candidate as Record<string, unknown>).pct;
177
- return typeof pct === "number" ? pct : null;
178
- }
179
-
180
- function toPathString(value: unknown): string | null {
181
- if (typeof value === "string") return value;
182
- if (typeof value !== "object" || value === null) return null;
183
- const record = value as Record<string, unknown>;
184
- return typeof record.file === "string"
185
- ? record.file
186
- : typeof record.path === "string"
187
- ? record.path
188
- : null;
189
- }
@@ -1,152 +0,0 @@
1
- /**
2
- * Unified target resolution facade through src/analysis/target/*.
3
- *
4
- * This is the canonical resolution path. It handles anchored coordinates,
5
- * file-only, symbol discovery, and disambiguation cases through one path.
6
- */
7
-
8
- import type { SemanticProvider } from "@mrclrchtr/supi-code-runtime/api";
9
- import { normalizePath } from "../search/ripgrep.ts";
10
- import { resolveAnchoredSymbolTarget } from "./anchored.ts";
11
- import { resolveFileTargetGroup as resolveFile } from "./file.ts";
12
- import { normalizeQuery, type QueryInput } from "./query.ts";
13
- import { resolveSymbolTarget as resolveSymbol } from "./symbol.ts";
14
- import type {
15
- NormalizedQuery,
16
- ResolvedTargetData,
17
- ResolvedTargetGroupData,
18
- TargetOutcome,
19
- } from "./types.ts";
20
-
21
- export type { QueryInput } from "./query.ts";
22
-
23
- /**
24
- * Resolve a target from action params through one canonical path.
25
- *
26
- * Returns either a resolved target, a target group, or an error string.
27
- */
28
- export async function resolveTarget(
29
- params: QueryInput,
30
- cwd: string,
31
- semantic?: SemanticProvider,
32
- ): Promise<ResolvedTargetData | ResolvedTargetGroupData | string> {
33
- const query = normalizeQuery(params);
34
-
35
- switch (query.kind) {
36
- case "anchored":
37
- return resolveAnchoredCase(query, cwd, semantic);
38
-
39
- case "file": {
40
- const result = await resolveFile(query.file, cwd);
41
- if (result.kind === "error") return result.message;
42
- return result.group;
43
- }
44
-
45
- case "symbol": {
46
- if (!semantic) {
47
- return "**Error:** Symbol discovery requires active LSP. Use `file` + coordinates, or enable LSP and retry.";
48
- }
49
- const outcome = await resolveSymbol(query.symbol, cwd, semantic, {
50
- path: query.path,
51
- kind: query.symbolKind,
52
- exportedOnly: query.exportedOnly,
53
- });
54
- if (outcome.kind === "resolved") return outcome.target;
55
- if (outcome.kind === "error") return outcome.message;
56
- if (outcome.kind !== "disambiguation") {
57
- return "**Error:** Unexpected resolution outcome.";
58
- }
59
- // Disambiguation — format candidates
60
- return formatDisambiguation(query.symbol, outcome);
61
- }
62
-
63
- case "invalid":
64
- return `**Error:** ${query.reason}`;
65
- }
66
- }
67
-
68
- /**
69
- * Anchored case: route file + line + character through the same provider-backed
70
- * symbol resolver as `code_resolve`/`code_orientation` (resolveAnchoredSymbolTarget),
71
- * so `code_graph`/`code_impact` resolve real symbol targets (exact identifier
72
- * hit or declaration-header snap) instead of anonymous point targets.
73
- * Per ADR 0003 — no silent `name:null` point targets.
74
- */
75
- async function resolveAnchoredCase(
76
- query: Extract<NormalizedQuery, { kind: "anchored" }>,
77
- cwd: string,
78
- semantic: SemanticProvider | undefined,
79
- ): Promise<ResolvedTargetData | string> {
80
- const resolvedFile = normalizePath(query.file, cwd);
81
- const result = await resolveAnchoredSymbolTarget(
82
- resolvedFile,
83
- query.line,
84
- query.character,
85
- semantic ?? null,
86
- );
87
- if (result.kind === "error") return result.message;
88
- if (result.kind === "resolved") return result.target;
89
- if (result.kind === "disambiguation") {
90
- return formatAnchoredDisambiguation(query.file, query.line, query.character, result);
91
- }
92
- return "**Error:** Unexpected resolution outcome.";
93
- }
94
-
95
- function formatDisambiguation(
96
- symbol: string,
97
- result: Extract<TargetOutcome, { kind: "disambiguation" }>,
98
- ): string {
99
- const lines: string[] = [];
100
- lines.push(`# Disambiguation needed for \`${symbol}\``);
101
- lines.push("");
102
- const omitNote = result.omittedCount > 0 ? ` (+${result.omittedCount} more)` : "";
103
- lines.push(
104
- `Found ${result.candidates.length} candidates${omitNote}. Rerun with anchored coordinates:`,
105
- );
106
- lines.push("");
107
-
108
- for (const c of result.candidates) {
109
- const kind = c.kind ? ` (${c.kind})` : "";
110
- const container = c.container ? ` in ${c.container}` : "";
111
- lines.push(
112
- `${c.rank}. **${c.name}**${kind}${container} — \`${c.file}\`:${c.line}:${c.character}`,
113
- );
114
- }
115
-
116
- lines.push("");
117
- if (result.candidates.length > 0) {
118
- const first = result.candidates[0];
119
- lines.push(
120
- `Example: rerun with \`file: "${first.file}"\`, \`line: ${first.line}\`, and \`character: ${first.character}\`.`,
121
- );
122
- }
123
-
124
- return lines.join("\n");
125
- }
126
-
127
- /** Format anchored-coordinate disambiguation (multiple symbols match one coordinate). */
128
- function formatAnchoredDisambiguation(
129
- file: string,
130
- line: number,
131
- character: number,
132
- result: Extract<TargetOutcome, { kind: "disambiguation" }>,
133
- ): string {
134
- const lines: string[] = [];
135
- lines.push(`# Disambiguation needed at \`${file}:${line}:${character}\``);
136
- lines.push("");
137
- const omitNote = result.omittedCount > 0 ? ` (+${result.omittedCount} more)` : "";
138
- lines.push(
139
- `Found ${result.candidates.length} symbol candidates at this coordinate${omitNote}. Use \`code_resolve\` to pick one:`,
140
- );
141
- lines.push("");
142
-
143
- for (const c of result.candidates) {
144
- const kind = c.kind ? ` (${c.kind})` : "";
145
- const container = c.container ? ` in ${c.container}` : "";
146
- lines.push(
147
- `${c.rank}. **${c.name}**${kind}${container} — \`${c.file}\`:${c.line}:${c.character}`,
148
- );
149
- }
150
-
151
- return lines.join("\n");
152
- }
@@ -1,125 +0,0 @@
1
- /**
2
- * File-level resolution logic for code_resolve.
3
- *
4
- * Extracted from resolve/service.ts. Handles file-only resolution and
5
- * path-like query resolution for the code_resolve tool.
6
- */
7
-
8
- import { existsSync } from "node:fs";
9
- import { resolve } from "node:path";
10
- import type { WorkspaceCodeIntelligenceSession } from "../../session/session.ts";
11
- import type { CodeProvider } from "../provider.ts";
12
- import { normalizePath } from "../search/ripgrep.ts";
13
- import { resolveFileTargetGroup as resolveFile } from "./file.ts";
14
- import {
15
- type ResolveServiceParams,
16
- type ResolveServiceResult,
17
- registerFromTarget,
18
- } from "./resolve-common.ts";
19
-
20
- /** Resolve file-only (no coordinates) input. */
21
- export async function resolveFileOnlyInput(
22
- params: ResolveServiceParams,
23
- session: WorkspaceCodeIntelligenceSession,
24
- maxResults: number,
25
- provider: CodeProvider | null,
26
- ): Promise<ResolveServiceResult> {
27
- const cwd = session.cwd;
28
- const file = params.file;
29
- if (!file) {
30
- return { kind: "error", message: "**Error:** File required for file-level resolution." };
31
- }
32
- const resolvedFile = normalizePath(file, cwd);
33
- if (!existsSync(resolvedFile)) {
34
- return { kind: "error", message: `**Error:** File not found: \`${file}\`` };
35
- }
36
- const outcome = await resolveFile(file, cwd, {
37
- semantic: provider ?? undefined,
38
- structural: provider ?? undefined,
39
- });
40
- if (outcome.kind === "error") {
41
- return { kind: "error", message: outcome.message };
42
- }
43
- const targets = outcome.group.targets
44
- .slice(0, maxResults)
45
- .map((t) =>
46
- registerFromTarget({ ...t, position: t.position, confidence: t.confidence }, session, "file"),
47
- );
48
- return {
49
- kind: "resolved",
50
- targets,
51
- confidence: outcome.group.confidence,
52
- omittedCount: Math.max(0, outcome.group.targets.length - maxResults),
53
- nextQueries: [
54
- "Use `targetId` with `code_graph` for reference tracking",
55
- "Use `targetId` with `code_impact` for blast radius",
56
- ],
57
- };
58
- }
59
-
60
- /** Handle a path-like query with kind: "file". */
61
- export async function resolvePathQuery(
62
- query: string,
63
- session: WorkspaceCodeIntelligenceSession,
64
- maxResults: number,
65
- provider: CodeProvider | null,
66
- ): Promise<ResolveServiceResult | null> {
67
- const cwd = session.cwd;
68
- const candidatePath = resolvePathLikeQuery(query, cwd);
69
- if (!candidatePath) return null;
70
- const outcome = await resolveFile(candidatePath, cwd, {
71
- semantic: provider ?? undefined,
72
- structural: provider ?? undefined,
73
- });
74
- if (outcome.kind === "error") return null;
75
- const targets = outcome.group.targets
76
- .slice(0, maxResults)
77
- .map((t) =>
78
- registerFromTarget({ ...t, position: t.position, confidence: t.confidence }, session, "file"),
79
- );
80
- return {
81
- kind: "resolved",
82
- targets,
83
- confidence: outcome.group.confidence,
84
- omittedCount: Math.max(0, outcome.group.targets.length - maxResults),
85
- nextQueries: [
86
- "Use `targetId` with `code_graph` for reference tracking",
87
- "Use `targetId` with `code_impact` for blast radius",
88
- ],
89
- };
90
- }
91
-
92
- /** Attempt file-level resolution when query looks like a file path. */
93
- export async function tryPathLikeQuery(
94
- params: ResolveServiceParams,
95
- session: WorkspaceCodeIntelligenceSession,
96
- maxResults: number,
97
- provider: CodeProvider | null,
98
- ): Promise<ResolveServiceResult | null> {
99
- if (params.kind !== "file" && params.kind !== "File") return null;
100
- const query = params.query;
101
- if (!query || !isPathLike(query)) return null;
102
- return resolvePathQuery(query, session, maxResults, provider);
103
- }
104
-
105
- export function isPathLike(query: string): boolean {
106
- return (
107
- query.includes("/") || query.includes("\\") || query.endsWith(".ts") || query.endsWith(".js")
108
- );
109
- }
110
-
111
- /**
112
- * Attempt to resolve a path-like query string to an absolute file path.
113
- * Returns null if the path cannot be resolved to an existing file.
114
- */
115
- export function resolvePathLikeQuery(query: string, cwd: string): string | null {
116
- const candidate = resolve(cwd, query);
117
- if (existsSync(candidate)) {
118
- return candidate;
119
- }
120
- for (const ext of [".ts", ".tsx", ".js", ".jsx", ".json", ".md"]) {
121
- const withExt = candidate + ext;
122
- if (existsSync(withExt)) return withExt;
123
- }
124
- return null;
125
- }
@@ -1,92 +0,0 @@
1
- /**
2
- * Central planner for code-intelligence tool routing.
3
- *
4
- * Reads capability state from the shared workspace broker and returns
5
- * routing decisions for each tool intent. Keeps the execution strategy
6
- * explicit and centralized instead of scattering capability checks
7
- * across per-tool execute files.
8
- *
9
- * This is the canonical planner — src/planner/planner.ts becomes a
10
- * thin forwarder to here.
11
- */
12
-
13
- import { getDefaultWorkspaceRuntime } from "@mrclrchtr/supi-code-runtime/api";
14
- import type { CodeIntelligenceToolName, PlannerRoute } from "../../types/index.ts";
15
-
16
- interface RouteAvailability {
17
- semanticAvailable: boolean;
18
- structuralAvailable: boolean;
19
- refactorAvailable: boolean;
20
- }
21
-
22
- function readAvailability(cwd: string): RouteAvailability {
23
- const runtime = getDefaultWorkspaceRuntime();
24
- const workspace = runtime.getWorkspace(cwd);
25
- return {
26
- semanticAvailable:
27
- (workspace.semantic.state.kind === "ready" || workspace.semantic.state.kind === "pending") &&
28
- workspace.semantic.provider !== null,
29
- structuralAvailable:
30
- workspace.structural.state.kind === "ready" && workspace.structural.provider !== null,
31
- refactorAvailable: workspace.semantic.refactorAvailable,
32
- };
33
- }
34
-
35
- function withPreferred(
36
- availability: RouteAvailability,
37
- preferred: PlannerRoute["preferred"],
38
- ): PlannerRoute {
39
- return { ...availability, preferred };
40
- }
41
-
42
- function semanticOnly(availability: RouteAvailability): PlannerRoute["preferred"] {
43
- return availability.semanticAvailable ? "semantic" : "unavailable";
44
- }
45
-
46
- function briefPreferred(availability: RouteAvailability): PlannerRoute["preferred"] {
47
- if (availability.semanticAvailable) return "semantic";
48
- if (availability.structuralAvailable) return "structural";
49
- return "unavailable";
50
- }
51
-
52
- /**
53
- * Get the routing decision for a tool intent in a workspace.
54
- */
55
- export function routeFor(cwd: string, tool: CodeIntelligenceToolName): PlannerRoute {
56
- const availability = readAvailability(cwd);
57
-
58
- if (tool === "code_graph") {
59
- // code_graph dispatches per-relation at execution time. Return the best
60
- // available preference; the executor handles per-relation unavailability.
61
- if (availability.semanticAvailable) return withPreferred(availability, "semantic");
62
- if (availability.structuralAvailable) return withPreferred(availability, "structural");
63
- return withPreferred(availability, "unavailable");
64
- }
65
-
66
- if (tool === "code_orientation" || tool === "code_inspect") {
67
- return withPreferred(availability, briefPreferred(availability));
68
- }
69
-
70
- if (tool === "code_impact") {
71
- return withPreferred(availability, semanticOnly(availability));
72
- }
73
-
74
- if (tool === "code_refactor_plan") {
75
- return withPreferred(availability, availability.refactorAvailable ? "semantic" : "unavailable");
76
- }
77
-
78
- if (tool === "code_refactor_apply") {
79
- // Plan application does not require a live semantic provider — validity
80
- // is enforced through fingerprint comparison in the executor.
81
- // Return semantic-preferred so the route check never blocks valid plans.
82
- return withPreferred(availability, "semantic");
83
- }
84
-
85
- if (tool === "code_health") {
86
- // code_health reads diagnostics and server state from the LSP service
87
- // directly; it does not require live semantic/structural providers.
88
- return withPreferred(availability, "search");
89
- }
90
-
91
- return withPreferred(availability, briefPreferred(availability));
92
- }
@@ -1,74 +0,0 @@
1
- /**
2
- * Query normalization — converts raw tool/action parameters into a
3
- * pre-classified {@link NormalizedQuery}.
4
- *
5
- * This is the first step in the targeting pipeline. Callers receive
6
- * a disambiguated query kind so downstream resolvers can dispatch
7
- * without re-checking input shapes.
8
- */
9
-
10
- import type { NormalizedQuery } from "./types.ts";
11
-
12
- export interface QueryInput {
13
- path?: string;
14
- file?: string;
15
- line?: number;
16
- character?: number;
17
- symbol?: string;
18
- kind?: string;
19
- exportedOnly?: boolean;
20
- }
21
-
22
- /**
23
- * Normalize a raw params bag into a typed {@link NormalizedQuery}.
24
- *
25
- * Priority order:
26
- * 1. anchored: file + line + character
27
- * 2. scoped symbol: file + symbol (without coordinates) — uses file as path scope for symbol discovery
28
- * 3. file: file without coordinates or symbol
29
- * 4. symbol: symbol without file
30
- * 5. invalid: neither file nor symbol
31
- */
32
- export function normalizeQuery(input: QueryInput): NormalizedQuery {
33
- if (input.file && input.line != null && input.character != null) {
34
- return {
35
- kind: "anchored",
36
- file: input.file,
37
- line: input.line,
38
- character: input.character,
39
- };
40
- }
41
-
42
- // Scoped symbol: both file and symbol present, no line/character.
43
- // The file acts as a path scope for symbol discovery — resolves to a
44
- // precise target within that file rather than a file-level group.
45
- if (input.file && input.symbol) {
46
- return {
47
- kind: "symbol",
48
- symbol: input.symbol,
49
- path: input.file,
50
- symbolKind: input.kind,
51
- exportedOnly: input.exportedOnly,
52
- };
53
- }
54
-
55
- if (input.file) {
56
- return { kind: "file", file: input.file };
57
- }
58
-
59
- if (input.symbol) {
60
- return {
61
- kind: "symbol",
62
- symbol: input.symbol,
63
- path: input.path,
64
- symbolKind: input.kind,
65
- exportedOnly: input.exportedOnly,
66
- };
67
- }
68
-
69
- return {
70
- kind: "invalid",
71
- reason:
72
- "Semantic actions require either anchored coordinates (`file`, `line`, `character`) or a `symbol` for discovery.",
73
- };
74
- }