@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,332 +1,263 @@
1
1
  /**
2
- * Target workflow — session-owned deep module.
2
+ * Session-owned Target workflow.
3
3
  *
4
- * Turns public target input (targetId, anchored coordinates, symbol
5
- * query, file reference) into an immutable **resolved target** before
6
- * graph, impact, orientation, or refactor analysis begins.
7
- *
8
- * One policy-driven method. Small interface, deep implementation.
9
- * Two adapters (production capability adapter + test adapter) justify
10
- * the seam.
11
- *
12
- * @mrclrchtr/supi-code-intelligence — internal, not exported via api.ts
4
+ * Turns one exact target selector into immutable resolved-target facts before
5
+ * graph, Orientation, resolve, or refactor analysis begins.
13
6
  */
14
7
 
15
8
  import { existsSync } from "node:fs";
16
- import { normalizePath } from "../analysis/search/ripgrep.ts";
9
+ import { normalizePath, resolveScope } from "../analysis/search/paths.ts";
17
10
  import { resolveAnchoredSymbolTarget } from "../analysis/target/anchored.ts";
18
- import { resolveFileTargetGroup } from "../analysis/target/file.ts";
11
+ import { resolveFileTargetGroup, validateFileTargetDiscovery } from "../analysis/target/file.ts";
12
+ import {
13
+ canonicalDeclarationKind,
14
+ refineTargetOutcomeIdentity,
15
+ } from "../analysis/target/identity.ts";
19
16
  import { resolveSymbolTarget } from "../analysis/target/symbol.ts";
20
- import type { ResolvedTargetData, TargetOutcome } from "../analysis/target/types.ts";
21
- import type { CapabilityAdapter } from "./capability-adapter.ts";
22
17
  import type {
23
- AnchorKind,
24
- TargetLookupResult,
25
- TargetRegistrationInput,
26
- TargetRegistrationOutput,
27
- TargetStoreEntry,
18
+ ResolvedTargetData,
19
+ ResolvedTargetGroupData,
20
+ TargetOutcome,
21
+ } from "../analysis/target/types.ts";
22
+ import type { CapabilityAdapter } from "./capability-adapter.ts";
23
+ import { parseTargetInput } from "./input/common.ts";
24
+ import { registerTargetCandidates, type TargetWorkflowCandidate } from "./target-candidates.ts";
25
+ import type { TargetInput, TargetSymbolKind } from "./target-input.ts";
26
+ import {
27
+ computeFileFingerprint,
28
+ type TargetLookupResult,
29
+ type TargetRegistrationInput,
30
+ type TargetRegistrationOutput,
31
+ type TargetStoreEntry,
28
32
  } from "./target-store.ts";
29
33
 
30
- // ── Input ─────────────────────────────────────────────────────────────
31
-
32
- /** Public target input shape — mirrors the union of code_* tool params. */
33
- export interface TargetWorkflowInput {
34
- /** Resolved target handle from code_resolve. Wins over everything else. */
35
- targetId?: string;
36
- /** File path (absolute or workspace-relative). */
37
- file?: string;
38
- /** 1-based line for anchored resolution. */
39
- line?: number;
40
- /** 1-based UTF-16 column for anchored resolution. */
41
- character?: number;
42
- /** Symbol name for workspace symbol query resolution. */
43
- symbol?: string;
44
- /** Preferred symbol kind for disambiguation. */
45
- kind?: string;
46
- /** Only exported symbols. */
47
- exportedOnly?: boolean;
48
- /** Maximum candidates for disambiguation. */
49
- maxResults?: number;
50
- }
51
-
52
- // ── Policy ────────────────────────────────────────────────────────────
34
+ export type { TargetInput } from "./target-input.ts";
53
35
 
54
- /**
55
- * Target workflow policy — what the caller allows or requires.
56
- *
57
- * Each tool passes the policy that matches its public contract.
58
- */
36
+ /** Target workflow policy selected by the intent-level session entry. */
59
37
  export interface TargetWorkflowPolicy {
60
- /**
61
- * Whether file-level targets (no line/character) are allowed.
62
- * Disallowed file-only input returns `invalid-input`.
63
- */
64
- fileLevelAllowed: boolean;
65
-
66
- /**
67
- * Whether the resolved target must carry a name anchor.
68
- * Callee lookups and rename require this; references do not.
69
- */
70
- nameAnchorRequired: boolean;
71
-
72
- /**
73
- * Whether to wait for semantic (LSP) readiness before symbol-
74
- * query or anchored resolution. Set false for tool paths that
75
- * only need targetId expansion or file-level resolution.
76
- */
77
- waitForSemantic: boolean;
38
+ /** Whether a file-level selector is valid for this intent. */
39
+ readonly fileLevelAllowed: boolean;
40
+ /** Whether a strict name anchor is required. */
41
+ readonly nameAnchorRequired: boolean;
42
+ /** Maximum displayed disambiguation candidates. */
43
+ readonly maxResults?: number;
78
44
  }
79
45
 
80
- // ── Outcome ───────────────────────────────────────────────────────────
81
-
82
- /** Typed outcome of the target workflow — no markdown, no mutated params. */
46
+ /** Typed Target workflow outcome. */
83
47
  export type TargetWorkflowOutcome =
48
+ | { kind: "resolved"; entry: Readonly<TargetStoreEntry>; notes: readonly string[] }
84
49
  | {
85
- kind: "resolved";
86
- /** The stored target entry with handles. */
87
- entry: TargetStoreEntry;
88
- /**
89
- * Display notes for the caller, e.g. "targetId took precedence
90
- * over scope" or "resolved via declaration anchor snap."
91
- */
92
- notes: string[];
50
+ kind: "target-group";
51
+ file: string;
52
+ confidence: ResolvedTargetData["confidence"];
53
+ discoveryProvenance: ResolvedTargetGroupData["discoveryProvenance"];
54
+ targets: ReadonlyArray<Readonly<TargetStoreEntry>>;
55
+ totalCount: number;
56
+ omittedCount: number;
57
+ unknownNestingCount: number;
93
58
  }
94
59
  | {
95
60
  kind: "disambiguation";
96
- candidates: Array<{
97
- targetId: string;
98
- name: string;
99
- kind: string | null;
100
- container: string | null;
101
- file: string;
102
- line: number;
103
- character: number;
104
- rank: number;
105
- anchorKind: AnchorKind;
106
- }>;
61
+ candidates: ReadonlyArray<TargetWorkflowCandidate>;
107
62
  omittedCount: number;
108
63
  }
109
64
  | {
110
- kind: "invalid-input";
111
- message: string;
112
- }
113
- | {
114
- kind: "unavailable";
115
- reason: string;
65
+ kind: "kind-mismatch";
66
+ requestedKind: TargetSymbolKind;
67
+ candidates: ReadonlyArray<TargetWorkflowCandidate>;
68
+ omittedCount: number;
116
69
  }
117
- | {
118
- /** No target input was provided. Caller decides fallback. */
119
- kind: "no-target";
120
- };
121
-
122
- // ── Dependencies ──────────────────────────────────────────────────────
70
+ | { kind: "invalid-input"; message: string }
71
+ | { kind: "unavailable"; reason: string };
123
72
 
73
+ /** Dependencies hidden behind the Workspace code-intelligence session seam. */
124
74
  export interface TargetWorkflowDeps {
125
- /** Workspace root. */
126
- cwd: string;
127
- /** Injected capability adapter (production or test). */
128
- capability: CapabilityAdapter;
129
- /** Session-scoped target store lookup. */
130
- lookupTargetId: (targetId: string) => TargetLookupResult;
131
- /** Session-scoped target registration. */
132
- registerTarget: (input: TargetRegistrationInput) => TargetRegistrationOutput;
75
+ readonly cwd: string;
76
+ readonly capability: CapabilityAdapter;
77
+ readonly lookupTargetId: (targetId: string) => TargetLookupResult;
78
+ readonly registerTarget: (input: TargetRegistrationInput) => TargetRegistrationOutput;
133
79
  }
134
80
 
135
- // ── Entry point ───────────────────────────────────────────────────────
136
-
137
81
  /**
138
- * Execute the target workflow: resolve target input into an immutable
139
- * resolved target (or a typed failure outcome).
140
- *
141
- * Order of precedence:
142
- * 1. targetId (store lookup + freshness check)
143
- * 2. anchored coordinates (file + line + character → provider-backed)
144
- * 3. symbol query (workspace symbol → provider-backed)
145
- * 4. file-only (when policy.fileLevelAllowed)
82
+ * Resolve exactly one canonical selector into target facts or a typed failure.
83
+ * New and refined targets are always LSP-first; handle lookup deliberately
84
+ * bypasses readiness so existing handles can still serve structural consumers.
146
85
  */
147
86
  export async function resolveTargetWorkflow(
148
- input: TargetWorkflowInput,
87
+ input: TargetInput,
149
88
  policy: TargetWorkflowPolicy,
150
89
  deps: TargetWorkflowDeps,
151
90
  ): Promise<TargetWorkflowOutcome> {
152
- // ── 1. targetId lookup ──────────────────────────────────────────────
153
- if (input.targetId) {
154
- const result = deps.lookupTargetId(input.targetId);
155
- if (result.kind === "unavailable") {
156
- return { kind: "invalid-input", message: result.reason };
157
- }
158
- const entry = result.entry;
159
-
160
- // Anchor policy: name-anchor-required tools must refuse declaration anchors
161
- if (policy.nameAnchorRequired && entry.anchorKind === "declaration") {
162
- return {
163
- kind: "invalid-input",
164
- message:
165
- "The target resolved to a declaration anchor, not a name anchor. " +
166
- "Re-resolve via `code_resolve` when the LSP has indexed the file, " +
167
- "or pass `file` + `line` + `character` anchored on the identifier directly.",
168
- };
169
- }
91
+ const parsed = parseTargetInput(input, ["handle", "anchor", "symbol", "file"]);
92
+ if (parsed.kind === "invalid-input") return parsed;
93
+ const target = parsed.value;
170
94
 
171
- const notes = inferTargetIdNotes(input);
172
- return { kind: "resolved", entry, notes };
95
+ if ("handle" in target) {
96
+ return resolveHandle(target.handle, policy, deps);
173
97
  }
174
-
175
- // ── 2. Anchored coordinates ────────────────────────────────────────
176
- if (input.file && input.line != null && input.character != null) {
177
- return resolveAnchoredWorkflow(input, policy, deps);
98
+ if ("anchor" in target) {
99
+ return resolveAnchoredWorkflow(target.anchor, policy, deps);
178
100
  }
179
-
180
- // ── 3. Symbol query ────────────────────────────────────────────────
181
- if (input.symbol) {
182
- return resolveSymbolWorkflow(input, policy, deps);
101
+ if ("symbol" in target) {
102
+ return resolveSymbolWorkflow(target.symbol, policy, deps);
183
103
  }
184
-
185
- // ── 4. File-only ───────────────────────────────────────────────────
186
- if (input.file) {
187
- if (!policy.fileLevelAllowed) {
188
- return {
189
- kind: "invalid-input",
190
- message:
191
- "File-level target resolution is not allowed for this tool. " +
192
- "Provide anchored coordinates (`file`, `line`, `character`) or a `symbol`.",
193
- };
194
- }
195
- return resolveFileOnlyWorkflow(input, deps);
104
+ if (!policy.fileLevelAllowed) {
105
+ return {
106
+ kind: "invalid-input",
107
+ message: "This workflow requires a handle, anchored point, or symbol target.",
108
+ };
196
109
  }
197
-
198
- // ── 5. Nothing provided ────────────────────────────────────────────
199
- return { kind: "no-target" };
110
+ return resolveFileOnlyWorkflow(target.file, policy.maxResults ?? 10, deps);
200
111
  }
201
112
 
202
- // ── Sub-routines ──────────────────────────────────────────────────────
113
+ function resolveHandle(
114
+ handle: string,
115
+ policy: TargetWorkflowPolicy,
116
+ deps: TargetWorkflowDeps,
117
+ ): TargetWorkflowOutcome {
118
+ const result = deps.lookupTargetId(handle);
119
+ if (result.kind === "unavailable") {
120
+ return { kind: "invalid-input", message: result.reason };
121
+ }
122
+ if (policy.nameAnchorRequired && result.entry.anchorKind === "declaration") {
123
+ return {
124
+ kind: "invalid-input",
125
+ message:
126
+ "The target has a declaration anchor rather than the required name anchor. " +
127
+ "Resolve an identifier coordinate with code_resolve and retry.",
128
+ };
129
+ }
130
+ return { kind: "resolved", entry: immutableEntry(result.entry), notes: [] };
131
+ }
203
132
 
204
133
  async function resolveAnchoredWorkflow(
205
- input: TargetWorkflowInput,
134
+ anchor: { file: string; line: number; character: number },
206
135
  policy: TargetWorkflowPolicy,
207
136
  deps: TargetWorkflowDeps,
208
137
  ): Promise<TargetWorkflowOutcome> {
209
- // biome-ignore lint/style/noNonNullAssertion: file is guaranteed non-null by caller guard branch
210
- const file = normalizePath(input.file!, deps.cwd);
138
+ const file = normalizePath(anchor.file, deps.cwd);
211
139
  if (!existsSync(file)) {
212
- return { kind: "invalid-input", message: `File not found: \`${input.file}\`` };
140
+ return { kind: "invalid-input", message: `File not found: \`${anchor.file}\`` };
213
141
  }
214
142
 
215
- // Readiness gate
216
- if (policy.waitForSemantic) {
217
- const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
218
- kind: "file",
219
- file,
220
- });
221
- if (readiness.kind === "timeout") {
222
- return {
223
- kind: "unavailable",
224
- reason: "LSP readiness timed out. Retry shortly or check `code_health`.",
225
- };
226
- }
227
- if (readiness.kind === "unavailable") {
228
- return { kind: "unavailable", reason: readiness.reason };
229
- }
143
+ const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
144
+ kind: "file",
145
+ file,
146
+ });
147
+ if (readiness.kind === "timeout") {
148
+ return {
149
+ kind: "unavailable",
150
+ reason: "LSP readiness timed out. Retry shortly or inspect code_health.",
151
+ };
152
+ }
153
+ if (readiness.kind === "unavailable") {
154
+ return { kind: "unavailable", reason: readiness.reason };
230
155
  }
231
156
 
232
- const provider = deps.capability.getProvider(deps.cwd);
233
- // biome-ignore lint/style/noNonNullAssertion: line/character non-null by caller guard
234
- const outcome = await resolveAnchoredSymbolTarget(file, input.line!, input.character!, provider);
235
-
236
- return toWorkflowOutcome(outcome, policy, deps);
157
+ const outcome = await resolveAnchoredSymbolTarget(
158
+ file,
159
+ anchor.line,
160
+ anchor.character,
161
+ deps.capability.getProvider(deps.cwd),
162
+ );
163
+ return toWorkflowOutcome(
164
+ await refineTargetOutcomeIdentity(
165
+ outcome,
166
+ deps.cwd,
167
+ deps.capability.getStructuralProvider(deps.cwd) ?? undefined,
168
+ ),
169
+ policy,
170
+ deps,
171
+ );
237
172
  }
238
173
 
239
174
  async function resolveSymbolWorkflow(
240
- input: TargetWorkflowInput,
175
+ symbol: { query: string; scope?: string; symbolKind?: TargetSymbolKind },
241
176
  policy: TargetWorkflowPolicy,
242
177
  deps: TargetWorkflowDeps,
243
178
  ): Promise<TargetWorkflowOutcome> {
244
- const semantic = deps.capability.getSemanticProvider(deps.cwd);
245
- if (!semantic) {
246
- // Try to wait
247
- if (policy.waitForSemantic) {
248
- const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
249
- kind: "workspace",
250
- });
251
- if (readiness.kind !== "ready") {
252
- return {
253
- kind: "unavailable",
254
- reason:
255
- "Symbol query requires an active LSP. Enable LSP and retry, or use anchored coordinates.",
256
- };
257
- }
258
- } else {
259
- return {
260
- kind: "unavailable",
261
- reason:
262
- "Symbol query requires an active LSP. Enable LSP and retry, or use anchored coordinates.",
263
- };
179
+ if (!symbol.query.trim()) {
180
+ return { kind: "invalid-input", message: "Symbol query must not be empty." };
181
+ }
182
+
183
+ let scope: string | undefined;
184
+ if (symbol.scope !== undefined) {
185
+ const resolved = resolveScope(symbol.scope, deps.cwd);
186
+ if (resolved.kind === "error") {
187
+ return { kind: "invalid-input", message: resolved.reason };
264
188
  }
189
+ scope = resolved.path;
190
+ }
191
+
192
+ const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
193
+ kind: "workspace",
194
+ });
195
+ if (readiness.kind === "timeout") {
196
+ return { kind: "unavailable", reason: "LSP readiness timed out. Retry shortly." };
197
+ }
198
+ if (readiness.kind === "unavailable") {
199
+ return { kind: "unavailable", reason: readiness.reason };
265
200
  }
266
201
 
267
- // Re-read provider after potential wait
268
202
  const provider = deps.capability.getSemanticProvider(deps.cwd);
269
203
  if (!provider) {
270
204
  return {
271
205
  kind: "unavailable",
272
- reason: "Symbol query requires an active LSP. Enable LSP and retry.",
206
+ reason: "Symbol resolution requires an active semantic provider.",
273
207
  };
274
208
  }
275
- // biome-ignore lint/style/noNonNullAssertion: symbol non-null by caller guard
276
- const outcome = await resolveSymbolTarget(input.symbol!, deps.cwd, provider, {
277
- kind: input.kind,
278
- exportedOnly: input.exportedOnly,
279
- maxResults: input.maxResults,
280
- });
281
209
 
282
- return toWorkflowOutcome(outcome, policy, deps);
210
+ const outcome = await resolveSymbolTarget(symbol.query, deps.cwd, provider, {
211
+ path: scope,
212
+ kind: symbol.symbolKind,
213
+ maxResults: policy.maxResults,
214
+ });
215
+ return toWorkflowOutcome(
216
+ await refineTargetOutcomeIdentity(
217
+ outcome,
218
+ deps.cwd,
219
+ deps.capability.getStructuralProvider(deps.cwd) ?? undefined,
220
+ ),
221
+ policy,
222
+ deps,
223
+ );
283
224
  }
284
225
 
285
226
  async function resolveFileOnlyWorkflow(
286
- input: TargetWorkflowInput,
227
+ requestedFile: string,
228
+ maxResults: number,
287
229
  deps: TargetWorkflowDeps,
288
230
  ): Promise<TargetWorkflowOutcome> {
289
- // biome-ignore lint/style/noNonNullAssertion: file non-null by caller guard
290
- const file = normalizePath(input.file!, deps.cwd);
291
- if (!existsSync(file)) {
292
- return { kind: "invalid-input", message: `File not found: \`${input.file}\`` };
231
+ const validation = validateFileTargetDiscovery(requestedFile, deps.cwd);
232
+ if (validation.kind === "invalid-input") return validation;
233
+ const file = validation.file;
234
+
235
+ const readiness = await deps.capability.ensureSemanticReadiness(deps.cwd, {
236
+ kind: "file",
237
+ file,
238
+ });
239
+ if (readiness.kind === "timeout") {
240
+ return { kind: "unavailable", reason: "LSP readiness timed out. Retry shortly." };
241
+ }
242
+ if (readiness.kind === "unavailable") {
243
+ return { kind: "unavailable", reason: readiness.reason };
293
244
  }
294
245
 
295
246
  const result = await resolveFileTargetGroup(file, deps.cwd, {
296
247
  semantic: deps.capability.getSemanticProvider(deps.cwd) ?? undefined,
297
248
  structural: deps.capability.getStructuralProvider(deps.cwd) ?? undefined,
298
249
  });
299
- if (result.kind === "error") {
300
- return { kind: "invalid-input", message: result.message };
250
+ if (result.kind === "invalid-input") return result;
251
+ if (result.kind === "unavailable") {
252
+ return { kind: "unavailable", reason: result.message };
301
253
  }
302
254
 
303
- // Register the file-level target
304
- const group = result.group;
305
- const entry = deps.registerTarget({
306
- file: group.file,
307
- position: { line: 0, character: 0 },
308
- displayLine: 1,
309
- displayCharacter: 1,
310
- name: group.displayName ?? null,
311
- kind: null,
312
- confidence: "structural",
313
- provenance: "file-level",
314
- anchorKind: "name",
315
- container: null,
316
- });
317
-
318
- return { kind: "resolved", entry: entry.entry, notes: [] };
255
+ return registerTargetGroup(result.group, deps, maxResults);
319
256
  }
320
257
 
321
- // ── Outcome conversion ────────────────────────────────────────────────
322
-
323
- /**
324
- * Convert a raw {@link TargetOutcome} from analysis/target/* into a
325
- * {@link TargetWorkflowOutcome} with registered handles.
326
- */
327
258
  function toWorkflowOutcome(
328
259
  outcome: TargetOutcome,
329
- _policy: TargetWorkflowPolicy,
260
+ policy: TargetWorkflowPolicy,
330
261
  deps: TargetWorkflowDeps,
331
262
  ): TargetWorkflowOutcome {
332
263
  if (outcome.kind === "error") {
@@ -334,97 +265,118 @@ function toWorkflowOutcome(
334
265
  }
335
266
 
336
267
  if (outcome.kind === "resolved") {
337
- const entry = registerFromTargetData(outcome.target, deps);
268
+ if (policy.nameAnchorRequired && outcome.target.anchorKind === "declaration") {
269
+ return {
270
+ kind: "invalid-input",
271
+ message:
272
+ "The target resolved only to a declaration anchor. Resolve the identifier coordinate and retry.",
273
+ };
274
+ }
275
+ const registered = registerFromTargetData(outcome.target, deps);
338
276
  return {
339
277
  kind: "resolved",
340
- entry: entry.entry,
278
+ entry: immutableEntry(registered.entry),
341
279
  notes: buildResolutionNotes(outcome.target),
342
280
  };
343
281
  }
344
282
 
345
- if (outcome.kind === "disambiguation") {
346
- const candidates = outcome.candidates.map((c, idx) => {
347
- const registered = deps.registerTarget({
348
- file: c.file,
349
- position: { line: c.line - 1, character: c.character - 1 },
350
- displayLine: c.line,
351
- displayCharacter: c.character,
352
- name: c.name,
353
- kind: c.kind,
354
- confidence: "semantic",
355
- provenance: "symbol-query",
356
- anchorKind: c.anchorKind ?? "declaration",
357
- container: c.container,
358
- });
359
- return {
360
- targetId: registered.targetId,
361
- name: c.name,
362
- kind: c.kind,
363
- container: c.container,
364
- file: c.file,
365
- line: c.line,
366
- character: c.character,
367
- rank: idx + 1,
368
- anchorKind: c.anchorKind ?? "declaration",
369
- };
370
- });
371
- return { kind: "disambiguation", candidates, omittedCount: outcome.omittedCount };
283
+ if (outcome.kind === "group") {
284
+ return registerTargetGroup(outcome.group, deps, policy.maxResults ?? 10);
372
285
  }
373
286
 
374
- // Unknown outcome kind — shouldn't happen with current resolvers
375
- return { kind: "invalid-input", message: "Unexpected resolution outcome." };
287
+ const candidates = registerTargetCandidates(outcome.candidates, deps.registerTarget);
288
+ return outcome.kind === "kind-mismatch"
289
+ ? {
290
+ kind: "kind-mismatch",
291
+ requestedKind: outcome.requestedKind,
292
+ candidates,
293
+ omittedCount: outcome.omittedCount,
294
+ }
295
+ : {
296
+ kind: "disambiguation",
297
+ candidates,
298
+ omittedCount: outcome.omittedCount,
299
+ };
376
300
  }
377
301
 
378
- // ── Helpers ───────────────────────────────────────────────────────────
379
-
380
- /** Build notes for targetId precedence over other inputs. */
381
- function inferTargetIdNotes(input: TargetWorkflowInput): string[] {
382
- const notes: string[] = [];
383
- if (input.file || input.line != null || input.character != null) {
384
- notes.push(
385
- "_Note: `targetId` takes precedence over the supplied file/coordinates; " +
386
- "file, line, and character were ignored._",
387
- );
388
- }
389
- if (input.symbol) {
390
- notes.push("_Note: `targetId` takes precedence over the supplied `symbol` parameter._");
391
- }
392
- return notes;
302
+ function registerTargetGroup(
303
+ group: ResolvedTargetGroupData,
304
+ deps: TargetWorkflowDeps,
305
+ maxResults: number,
306
+ ): TargetWorkflowOutcome {
307
+ const totalCount = group.targets.length;
308
+ const visibleTargets = group.targets.slice(0, Math.max(0, maxResults));
309
+ const fingerprint = computeFileFingerprint(group.file);
310
+ const fileFingerprint = fingerprint.kind === "ok" ? fingerprint.fingerprint : "unfingerprinted";
311
+ const targets = visibleTargets.map((target) =>
312
+ immutableEntry(registerFromTargetData(target, deps, fileFingerprint).entry),
313
+ );
314
+ return Object.freeze({
315
+ kind: "target-group",
316
+ file: group.file,
317
+ confidence: group.confidence,
318
+ discoveryProvenance: Object.freeze([...group.discoveryProvenance]),
319
+ targets: Object.freeze(targets),
320
+ totalCount,
321
+ omittedCount: totalCount - targets.length,
322
+ unknownNestingCount: group.unknownNestingCount,
323
+ });
393
324
  }
394
325
 
395
- /** Build display notes for resolved anchored targets. */
396
- function buildResolutionNotes(target: ResolvedTargetData): string[] {
326
+ function buildResolutionNotes(target: ResolvedTargetData): readonly string[] {
397
327
  const notes: string[] = [];
398
328
  if (target.resolution?.snapped) {
399
- const src = target.resolution.source;
400
329
  notes.push(
401
- `_Note: Resolved from a declaration header snap (${src}); the anchor was moved to the identifier._`,
330
+ `Resolved from a declaration header and snapped to the identifier (${target.resolution.source}).`,
402
331
  );
403
332
  }
404
333
  if (target.resolution?.source === "structural-identifier") {
405
- notes.push(
406
- "_Note: Resolved via tree-sitter structural evidence; semantic (LSP) symbols were unavailable._",
407
- );
334
+ notes.push("Resolved from provider-backed structural identifier evidence.");
408
335
  }
409
- return notes;
336
+ return Object.freeze(notes);
410
337
  }
411
338
 
412
- /** Register a ResolvedTargetData and return the store entry. */
413
339
  function registerFromTargetData(
414
340
  target: ResolvedTargetData,
415
341
  deps: TargetWorkflowDeps,
342
+ fileFingerprint?: string,
416
343
  ): TargetRegistrationOutput {
417
344
  return deps.registerTarget({
418
345
  file: target.file,
419
346
  position: target.position,
347
+ declarationPosition: {
348
+ line: target.declarationAnchor.line - 1,
349
+ character: target.declarationAnchor.character - 1,
350
+ },
351
+ declarationOccurrence: target.declarationOccurrence,
420
352
  displayLine: target.displayLine,
421
353
  displayCharacter: target.displayCharacter,
422
354
  name: target.name,
423
355
  kind: target.kind,
356
+ identityKind: target.identityKind ?? canonicalDeclarationKind(target.kind),
424
357
  confidence: target.confidence,
425
- provenance: "target-workflow",
358
+ provenance: target.provenance,
426
359
  anchorKind: target.anchorKind,
427
360
  container: target.container,
428
361
  resolution: target.resolution,
362
+ fileFingerprint,
363
+ });
364
+ }
365
+
366
+ function immutableEntry(entry: TargetStoreEntry): Readonly<TargetStoreEntry> {
367
+ return Object.freeze({
368
+ ...entry,
369
+ position: Object.freeze({ ...entry.position }),
370
+ provenance: Object.freeze([...entry.provenance]),
371
+ declarationPosition: entry.declarationPosition
372
+ ? Object.freeze({ ...entry.declarationPosition })
373
+ : entry.declarationPosition,
374
+ resolution: entry.resolution
375
+ ? Object.freeze({
376
+ ...entry.resolution,
377
+ requested: Object.freeze({ ...entry.resolution.requested }),
378
+ resolved: Object.freeze({ ...entry.resolution.resolved }),
379
+ })
380
+ : undefined,
429
381
  });
430
382
  }