@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,149 +1,160 @@
1
- /**
2
- * Markdown renderer for code_resolve results.
3
- *
4
- * Produces compact, agent-friendly markdown showing resolved targets
5
- * with stable handles, disambiguation candidates, or actionable errors.
6
- */
1
+ /** Markdown adapter for assembled code_resolve outcomes. */
7
2
 
8
3
  import { relative } from "node:path";
9
4
  import { renderEvidenceListMetadataDisclosure } from "../../analysis/evidence.ts";
10
- import type { DisambiguationCandidate } from "../../analysis/target/service.ts";
11
5
  import type { TargetStoreEntry } from "../../session/target-store.ts";
12
6
  import type { ResolveResultAssembly } from "../result/resolve.ts";
13
-
14
- /**
15
- * Render a provenance note for an anchored resolution, but only when the
16
- * resolution was non-obvious — i.e. the coordinate was snapped to a different
17
- * anchor, or the evidence was structural rather than semantic. Exact
18
- * name-anchor hits resolved from semantic evidence stay quiet.
19
- */
20
- function renderAnchoredResolutionNote(t: TargetStoreEntry): string | null {
21
- const r = t.resolution;
22
- if (!r) return null;
23
- const degraded = r.source !== "semantic";
24
- if (!r.snapped && !degraded) return null;
25
-
26
- const req = `${r.requested.line}:${r.requested.character}`;
27
- const res = `${r.resolved.line}:${r.resolved.character}`;
28
- if (r.snapped) {
29
- return `_Note: snapped from requested coordinate ${req} to name anchor ${res} (evidence: ${r.source})._`;
30
- }
31
- return `_Note: resolved from ${r.source} evidence; confirm with \`code_inspect\` if you need point-level facts._`;
32
- }
33
-
34
- /** Render the single-target resolved block (with optional provenance note). */
35
- function renderSingleTarget(t: TargetStoreEntry, confidence: string, cwd: string): string[] {
36
- const relFile = relative(cwd, t.file) || t.file;
37
- const kind = t.kind ? ` \`${t.kind}\`` : "";
38
- const name = t.name ? ` **${t.name}**${kind}` : "";
39
- const lines: string[] = [
40
- `Resolved${name}:`,
41
- "",
42
- `- File: \`${relFile}\``,
43
- `- Line: ${t.displayLine}, Column: ${t.displayCharacter}`,
44
- `- Target ID: \`${t.targetId}\``,
45
- `- Span ID: \`${t.spanId}\``,
46
- `- Confidence: \`${confidence}\``,
47
- `- Provenance: \`${t.provenance}\``,
48
- ];
49
- const note = renderAnchoredResolutionNote(t);
50
- if (note) {
51
- lines.push("");
52
- lines.push(note);
53
- }
54
- lines.push("");
55
- return lines;
56
- }
7
+ import type { ResolveDetails } from "../result/types.ts";
57
8
 
58
9
  /** Render an assembled resolve result into markdown. */
59
10
  export function renderResolveResult(assembly: ResolveResultAssembly): string {
60
- const { result, cwd } = assembly;
61
- switch (result.kind) {
11
+ const { outcome, cwd } = assembly;
12
+ switch (outcome.kind) {
62
13
  case "resolved":
63
- return renderResolved(result.targets, result.omittedCount, result.confidence, cwd);
14
+ return renderResolved(outcome.entry, outcome.notes, cwd);
15
+ case "target-group":
16
+ return renderTargetGroup(assembly.details);
64
17
  case "disambiguation":
65
- return renderDisambiguation(result.candidates, result.omittedCount, cwd);
66
- case "error":
67
- return result.message;
18
+ return renderDisambiguation(assembly.details);
19
+ case "kind-mismatch":
20
+ return renderKindMismatch(assembly.details);
21
+ case "invalid-input":
22
+ return `**Error:** ${outcome.message}`;
23
+ case "unavailable":
24
+ return `**Unavailable:** ${outcome.reason}`;
68
25
  }
69
26
  }
70
27
 
71
28
  function renderResolved(
72
- targets: TargetStoreEntry[],
73
- omittedCount: number,
74
- confidence: string,
29
+ target: Readonly<TargetStoreEntry>,
30
+ notes: readonly string[],
75
31
  cwd: string,
76
32
  ): string {
77
- if (targets.length === 0) {
78
- return "No targets resolved.";
33
+ const relFile = relative(cwd, target.file) || target.file;
34
+ const kind = target.kind ? ` \`${target.kind}\`` : "";
35
+ const name = target.name ? ` **${target.name}**${kind}` : "";
36
+ const lines = [
37
+ `Resolved${name}:`,
38
+ "",
39
+ `- File: \`${relFile}\``,
40
+ `- Line: ${target.displayLine}, Column: ${target.displayCharacter}`,
41
+ `- Target ID: \`${target.targetId}\``,
42
+ `- Span ID: \`${target.spanId}\``,
43
+ `- Confidence: \`${target.confidence}\``,
44
+ `- Provenance: \`${target.provenance.join("+")}\``,
45
+ ];
46
+
47
+ const resolutionNote = renderAnchoredResolutionNote(target);
48
+ if (resolutionNote) lines.push("", resolutionNote);
49
+ for (const note of notes) {
50
+ if (resolutionNote && isResolutionMetadataNote(note)) continue;
51
+ lines.push("", `_Note: ${note}_`);
79
52
  }
53
+ return lines.join("\n");
54
+ }
80
55
 
81
- const lines: string[] = [];
56
+ function isResolutionMetadataNote(note: string): boolean {
57
+ return (
58
+ note.startsWith("Resolved from a declaration header and snapped to the identifier") ||
59
+ note === "Resolved from provider-backed structural identifier evidence."
60
+ );
61
+ }
82
62
 
83
- if (targets.length === 1) {
84
- lines.push(...renderSingleTarget(targets[0], confidence, cwd));
63
+ function renderTargetGroup(details: ResolveDetails): string {
64
+ const discovery = details.groupDiscoveryProvenance?.join("+") || "unavailable";
65
+ const lines = [
66
+ `# Targets in \`${details.groupFile ?? "file"}\``,
67
+ "",
68
+ `- Group confidence: \`${details.confidence}\``,
69
+ `- Discovery provenance: \`${discovery}\``,
70
+ ];
71
+ appendUnknownHierarchyDisclosure(lines, details.groupUnknownNestingCount ?? 0);
72
+ lines.push("");
73
+ if (details.targets.length === 0) {
74
+ lines.push("No declarations were reported for this file.");
85
75
  } else {
86
- lines.push(`Resolved ${targets.length} target(s):`);
87
- lines.push("");
88
-
89
- for (const t of targets) {
90
- const relFile = relative(cwd, t.file) || t.file;
91
- const kind = t.kind ? ` (\`${t.kind}\`)` : "";
92
- const name = t.name ?? "(unnamed)";
76
+ lines.push(declarationCountHeading(details.targetCount), "");
77
+ for (const target of details.targets) {
78
+ const kind = target.kind ? ` (\`${target.kind}\`)` : "";
79
+ const container = target.container ? ` in \`${target.container}\`` : "";
93
80
  lines.push(
94
- `- \`${relFile}\`:${t.displayLine}:${t.displayCharacter} **${name}**${kind} — \`${t.targetId}\``,
81
+ `- **${target.name ?? "anonymous"}**${kind}${container} — \`${target.file}:${target.displayLine}:${target.displayCharacter}\``,
82
+ ` Target ID: \`${target.targetId}\` (${target.anchorKind} anchor, ${target.confidence}, provenance: ${target.provenance.join("+")})`,
95
83
  );
96
84
  }
85
+ }
86
+ appendDisclosure(lines, details);
87
+ return lines.join("\n");
88
+ }
97
89
 
98
- const disclosure = renderEvidenceListMetadataDisclosure({
99
- key: "resolve.targets",
100
- totalCount: targets.length + omittedCount,
101
- shownCount: targets.length,
102
- omittedCount,
103
- partialReason: null,
104
- });
105
- if (disclosure) {
106
- lines.push(disclosure);
107
- }
108
- lines.push("");
90
+ function declarationCountHeading(count: number): string {
91
+ return `**${count} declaration${count === 1 ? "" : "s"} discovered**`;
92
+ }
93
+
94
+ function appendUnknownHierarchyDisclosure(lines: string[], count: number): void {
95
+ if (count <= 0) return;
96
+ const declaration = count === 1 ? "declaration has" : "declarations have";
97
+ lines.push(
98
+ `- Hierarchy: ${count} ${declaration} unknown hierarchy; only provider-proven top-level declarations were prioritized.`,
99
+ );
100
+ }
101
+
102
+ function renderAnchoredResolutionNote(target: Readonly<TargetStoreEntry>): string | null {
103
+ const resolution = target.resolution;
104
+ if (!resolution) return null;
105
+ const degraded = resolution.source !== "semantic";
106
+ if (!resolution.snapped && !degraded) return null;
107
+
108
+ const requested = `${resolution.requested.line}:${resolution.requested.character}`;
109
+ const resolved = `${resolution.resolved.line}:${resolution.resolved.character}`;
110
+ if (resolution.snapped) {
111
+ return `_Note: snapped from requested coordinate ${requested} to name anchor ${resolved} (evidence: ${resolution.source})._`;
109
112
  }
113
+ return `_Note: resolved from ${resolution.source} evidence; use code_inspect for point-level facts._`;
114
+ }
110
115
 
116
+ function renderDisambiguation(details: ResolveDetails): string {
117
+ const lines = [
118
+ "# Multiple matches found",
119
+ "",
120
+ "Choose one handle, or narrow target.symbol with scope or symbolKind:",
121
+ "",
122
+ ];
123
+ appendCandidates(lines, details);
124
+ appendDisclosure(lines, details);
111
125
  return lines.join("\n");
112
126
  }
113
127
 
114
- function renderDisambiguation(
115
- candidates: DisambiguationCandidate[],
116
- omittedCount: number,
117
- cwd: string,
118
- ): string {
119
- const lines: string[] = [];
120
-
121
- lines.push("# Multiple matches found");
122
- lines.push("");
123
- lines.push("Resolve by file + line + character, or refine with scope/kind:");
124
- lines.push("");
128
+ function renderKindMismatch(details: ResolveDetails): string {
129
+ const lines = [
130
+ "# No exact symbol-kind match",
131
+ "",
132
+ `No query candidate was reported as provider kind \`${details.requestedKind ?? "unknown"}\`.`,
133
+ "Near matches:",
134
+ "",
135
+ ];
136
+ appendCandidates(lines, details);
137
+ lines.push(
138
+ "",
139
+ "Retry without `symbolKind`, use an observed provider kind, or choose a handle explicitly.",
140
+ );
141
+ appendDisclosure(lines, details);
142
+ return lines.join("\n");
143
+ }
125
144
 
126
- for (const c of candidates) {
127
- const relFile = relative(cwd, c.entry.file) || c.file;
128
- const kind = c.kind ? ` (\`${c.kind}\`)` : "";
129
- const container = c.container ? ` in \`${c.container}\`` : "";
145
+ function appendCandidates(lines: string[], details: ResolveDetails): void {
146
+ for (const candidate of details.candidates ?? []) {
147
+ const kind = candidate.kind ? ` (\`${candidate.kind}\`)` : "";
148
+ const container = candidate.container ? ` in \`${candidate.container}\`` : "";
130
149
  lines.push(
131
- `${c.rank}. **${c.name}**${kind}${container} — \`${relFile}\`:${c.line}:${c.character}`,
150
+ `${candidate.rank}. **${candidate.name}**${kind}${container} — \`${candidate.file}\`:${candidate.line}:${candidate.character}`,
151
+ ` Target ID: \`${candidate.targetId}\``,
132
152
  );
133
- lines.push(` Target ID: \`${c.targetId}\``);
134
- }
135
-
136
- const disclosure = renderEvidenceListMetadataDisclosure({
137
- key: "resolve.candidates",
138
- totalCount: candidates.length + omittedCount,
139
- shownCount: candidates.length,
140
- omittedCount,
141
- partialReason: null,
142
- });
143
- if (disclosure) {
144
- lines.push("");
145
- lines.push(disclosure);
146
153
  }
154
+ }
147
155
 
148
- return lines.join("\n");
156
+ function appendDisclosure(lines: string[], details: ResolveDetails): void {
157
+ const evidence = details.evidenceLists?.[0];
158
+ const disclosure = evidence ? renderEvidenceListMetadataDisclosure(evidence) : null;
159
+ if (disclosure) lines.push("", disclosure);
149
160
  }
@@ -13,16 +13,18 @@ export function renderResolveCall(args: unknown, theme: Theme, _context: unknown
13
13
 
14
14
  let content = theme.fg("toolTitle", "code_resolve");
15
15
 
16
- if (params.query) {
17
- content += ` ${theme.fg("accent", params.query)}`;
18
- } else if (params.file) {
19
- const file = params.file.split("/").pop() ?? params.file;
16
+ if ("symbol" in params.target) {
17
+ content += ` ${theme.fg("accent", params.target.symbol.query)}`;
18
+ if (params.target.symbol.symbolKind) {
19
+ content += theme.fg("dim", ` [${params.target.symbol.symbolKind}]`);
20
+ }
21
+ } else if ("anchor" in params.target) {
22
+ const point = params.target.anchor;
23
+ const file = point.file.split("/").pop() ?? point.file;
24
+ content += ` ${theme.fg("accent", file)}${theme.fg("warning", `:${point.line}`)}`;
25
+ } else if ("file" in params.target) {
26
+ const file = params.target.file.split("/").pop() ?? params.target.file;
20
27
  content += ` ${theme.fg("accent", file)}`;
21
- if (params.line) content += theme.fg("warning", `:${params.line}`);
22
- }
23
-
24
- if (params.kind) {
25
- content += theme.fg("dim", ` [${params.kind}]`);
26
28
  }
27
29
 
28
30
  return new Text(content, 0, 0);
@@ -0,0 +1,125 @@
1
+ import type { ConfidenceMode } from "@mrclrchtr/supi-code-runtime/api";
2
+ import type { EvidenceListMetadata, EvidencePartialReason } from "../../analysis/evidence.ts";
3
+ import type { ReadNextItem } from "../../analysis/read-next.ts";
4
+
5
+ /** Provenance attached to an assembled result or one of its sections. */
6
+ export interface ResultProvenance {
7
+ readonly source:
8
+ | "semantic"
9
+ | "structural"
10
+ | "filesystem"
11
+ | "manifest"
12
+ | "configuration"
13
+ | "runtime";
14
+ readonly capability?: string;
15
+ readonly detail?: string;
16
+ }
17
+
18
+ /** A presentation-neutral result section. */
19
+ export interface ResultSection<T = unknown> {
20
+ readonly key: string;
21
+ readonly title: string;
22
+ readonly status: "complete" | "partial" | "unavailable";
23
+ readonly items: readonly T[];
24
+ readonly confidence: ConfidenceMode;
25
+ readonly provenance: readonly ResultProvenance[];
26
+ }
27
+
28
+ /** A follow-up action assembled before markdown or TUI rendering. */
29
+ export type ResultAction =
30
+ | { readonly kind: "query"; readonly instruction: string }
31
+ | ({ readonly kind: "read-next" } & Readonly<ReadNextItem>);
32
+
33
+ /** Totals and omission state shared by every Tool result. */
34
+ export interface ResultTotals {
35
+ readonly candidateCount: number;
36
+ readonly shownCount: number;
37
+ readonly omittedCount: number;
38
+ readonly hasUnknownRemainder: boolean;
39
+ readonly partialReasons: readonly EvidencePartialReason[];
40
+ }
41
+
42
+ /** Canonical assembled result consumed by markdown and TUI adapters. */
43
+ export interface ToolResultAssembly<TData> {
44
+ readonly data: Readonly<TData>;
45
+ readonly sections: readonly ResultSection[];
46
+ readonly evidenceLists: readonly EvidenceListMetadata[];
47
+ readonly actions: readonly ResultAction[];
48
+ readonly totals: ResultTotals;
49
+ readonly confidence: ConfidenceMode;
50
+ readonly provenance: readonly ResultProvenance[];
51
+ }
52
+
53
+ export interface AssembleToolResultInput<TData> {
54
+ readonly data: TData;
55
+ readonly sections?: readonly ResultSection[];
56
+ readonly evidenceLists?: readonly EvidenceListMetadata[];
57
+ readonly nextQueries?: readonly string[];
58
+ readonly readNext?: readonly ReadNextItem[];
59
+ readonly candidateCount?: number;
60
+ readonly confidence: ConfidenceMode;
61
+ readonly provenance?: readonly ResultProvenance[];
62
+ }
63
+
64
+ /**
65
+ * Assemble shared Tool-result policy once: evidence totals, omission state,
66
+ * confidence, provenance, and actionable follow-up guidance.
67
+ */
68
+ export function assembleToolResult<TData>(
69
+ input: AssembleToolResultInput<TData>,
70
+ ): ToolResultAssembly<TData> {
71
+ const evidenceLists = [...(input.evidenceLists ?? [])];
72
+ const shownCount = evidenceLists.reduce((sum, list) => sum + list.shownCount, 0);
73
+ const omittedCount = evidenceLists.reduce((sum, list) => sum + (list.omittedCount ?? 0), 0);
74
+ const partialReasons = Array.from(
75
+ new Set(
76
+ evidenceLists
77
+ .map((list) => list.partialReason)
78
+ .filter((reason): reason is EvidencePartialReason => reason !== null),
79
+ ),
80
+ );
81
+ const actions: ResultAction[] = [
82
+ ...(input.nextQueries ?? []).map(
83
+ (instruction): ResultAction => ({ kind: "query", instruction }),
84
+ ),
85
+ ...(input.readNext ?? []).map((item): ResultAction => ({ kind: "read-next", ...item })),
86
+ ];
87
+
88
+ return Object.freeze({
89
+ data: input.data,
90
+ sections: Object.freeze([...(input.sections ?? [])]),
91
+ evidenceLists: Object.freeze(evidenceLists),
92
+ actions: Object.freeze(actions),
93
+ totals: Object.freeze({
94
+ candidateCount: input.candidateCount ?? shownCount + omittedCount,
95
+ shownCount,
96
+ omittedCount,
97
+ hasUnknownRemainder: evidenceLists.some((list) => list.totalCount === null),
98
+ partialReasons: Object.freeze(partialReasons),
99
+ }),
100
+ confidence: input.confidence,
101
+ provenance: Object.freeze([...(input.provenance ?? [])]),
102
+ });
103
+ }
104
+
105
+ /** Query instructions projected from canonical actions for existing detail adapters. */
106
+ export function assembledNextQueries(result: ToolResultAssembly<unknown>): string[] {
107
+ return result.actions
108
+ .filter((action): action is Extract<ResultAction, { kind: "query" }> => action.kind === "query")
109
+ .map((action) => action.instruction);
110
+ }
111
+
112
+ /** Read-next source ranges projected from canonical assembled actions. */
113
+ export function assembledReadNext(result: ToolResultAssembly<unknown>): ReadNextItem[] {
114
+ return result.actions
115
+ .filter(
116
+ (action): action is Extract<ResultAction, { kind: "read-next" }> =>
117
+ action.kind === "read-next",
118
+ )
119
+ .map(({ kind: _kind, file, startLine, endLine, reason }) => ({
120
+ file,
121
+ startLine,
122
+ endLine,
123
+ reason,
124
+ }));
125
+ }
@@ -11,7 +11,6 @@ import type {
11
11
  CodeIntelResult,
12
12
  ContextDetails,
13
13
  HealthDetails,
14
- ImpactDetails,
15
14
  InspectDetails,
16
15
  ResolveDetails,
17
16
  SearchDetails,
@@ -71,6 +70,7 @@ export function resolveErrorResult(
71
70
  details: {
72
71
  type: "resolve" as const,
73
72
  data: {
73
+ resultKind: "unavailable" as const,
74
74
  confidence: "unavailable" as const,
75
75
  targetCount: 0,
76
76
  omittedCount: 0,
@@ -93,32 +93,14 @@ export function inspectErrorResult(
93
93
  data: {
94
94
  confidence: "unavailable" as const,
95
95
  focusTarget: opts?.focusTarget ?? "",
96
- unavailableSections: [],
96
+ diagnosticWindow: null,
97
+ sections: [],
97
98
  nextQueries: opts?.nextQueries ?? [],
98
99
  },
99
100
  },
100
101
  };
101
102
  }
102
103
 
103
- /** Full error result for code_impact. */
104
- export function impactErrorResult(
105
- content: string,
106
- opts?: { nextQueries?: string[] },
107
- ): CodeIntelResult {
108
- const data: ImpactDetails = {
109
- confidence: "unavailable",
110
- directCount: 0,
111
- downstreamCount: 0,
112
- riskLevel: "low",
113
- checkNext: [],
114
- likelyTests: [],
115
- likelyTestCommands: [],
116
- omittedCount: 0,
117
- nextQueries: opts?.nextQueries ?? [],
118
- };
119
- return { content, details: { type: "impact" as const, data } };
120
- }
121
-
122
104
  /** Full error result for code_health. */
123
105
  export function healthErrorResult(content: string, reason?: string): CodeIntelResult {
124
106
  return {
@@ -126,9 +108,23 @@ export function healthErrorResult(content: string, reason?: string): CodeIntelRe
126
108
  details: {
127
109
  type: "health" as const,
128
110
  data: {
129
- lspAvailable: false,
130
- lspStatus: reason ?? content,
131
- recovered: false,
111
+ includedSections: [],
112
+ sections: [],
113
+ confidence: "unavailable",
114
+ provenance: [],
115
+ candidateCount: 0,
116
+ omittedCount: 0,
117
+ semanticState: { kind: "unavailable", reason: reason ?? content },
118
+ serverInventoryAvailable: false,
119
+ serverInventoryScope: "workspace",
120
+ diagnosticObservation: { kind: "not-requested", entries: [] },
121
+ refresh: {
122
+ kind: "not-attempted",
123
+ reason: reason ?? content,
124
+ lastAttempt: null,
125
+ },
126
+ structuralAvailable: false,
127
+ capabilityWarnings: null,
132
128
  diagnosticFileCount: 0,
133
129
  serverCount: 0,
134
130
  },
@@ -178,16 +174,6 @@ export function unavailableInspectDetails(
178
174
  };
179
175
  }
180
176
 
181
- export function unavailableImpactDetails(nextQueries: string[]): {
182
- type: "impact";
183
- data: ImpactDetails;
184
- } {
185
- return impactErrorResult("", { nextQueries }).details as {
186
- type: "impact";
187
- data: ImpactDetails;
188
- };
189
- }
190
-
191
177
  export function unavailableHealthDetails(reason: string): {
192
178
  type: "health";
193
179
  data: HealthDetails;
@@ -1,29 +1,115 @@
1
1
  import type { ConfidenceMode } from "@mrclrchtr/supi-code-runtime/api";
2
- import type { EvidenceListMetadata } from "../../analysis/evidence.ts";
3
- import type { TestSurfaceDetails } from "../../analysis/tests/test-discovery.ts";
2
+ import {
3
+ createEvidenceList,
4
+ createPartialEvidenceList,
5
+ type EvidenceListMetadata,
6
+ } from "../../analysis/evidence.ts";
7
+ import type { FindWorkflowOutcome } from "../../session/find-types.ts";
8
+ import {
9
+ assembledNextQueries,
10
+ assembleToolResult,
11
+ type ResultProvenance,
12
+ type ToolResultAssembly,
13
+ } from "./assembly.ts";
4
14
  import type { SearchDetails } from "./types.ts";
5
15
 
6
- export interface FindResultAssemblyInput {
7
- confidence: ConfidenceMode;
8
- scope: string | null;
9
- candidateCount: number;
10
- omittedCount?: number;
11
- evidenceLists?: EvidenceListMetadata[];
12
- nextQueries: string[];
13
- tests?: TestSurfaceDetails;
16
+ /** Presentation-neutral assembled find result. */
17
+ export interface FindResultAssembly {
18
+ outcome: Extract<FindWorkflowOutcome, { kind: "completed" }>;
19
+ assembled: ToolResultAssembly<Extract<FindWorkflowOutcome, { kind: "completed" }>["data"]>;
20
+ details: SearchDetails;
14
21
  }
15
22
 
16
- /** Assemble code_find/search-family details before presentation adapters render content. */
17
- export function assembleFindResult(input: FindResultAssemblyInput): SearchDetails {
23
+ /** Assemble one completed code-aware search outcome before presentation. */
24
+ export function assembleFindWorkflowResult(
25
+ outcome: Extract<FindWorkflowOutcome, { kind: "completed" }>,
26
+ ): FindResultAssembly {
27
+ const evidence = createFindEvidence(outcome);
28
+ const confidence: ConfidenceMode = outcome.data.kind === "semantic" ? "semantic" : "structural";
29
+ const nextQueries =
30
+ outcome.data.kind === "ast" && outcome.data.astKind === "call"
31
+ ? [
32
+ "Use code_graph references on a resolved target for symbol-identity relationships",
33
+ "Use PI grep for literal or regex source matches when it is active",
34
+ ]
35
+ : ["Change mode only when you need a different code-aware evidence substrate"];
36
+ const provenance = findProvenance(outcome.data.kind);
37
+ const assembled = assembleToolResult({
38
+ data: outcome.data,
39
+ sections: [
40
+ {
41
+ key: `find.${outcome.data.kind}`,
42
+ title: `${outcome.data.kind} matches`,
43
+ status: evidence.metadata.partialReason ? "partial" : "complete",
44
+ items: findItems(outcome.data),
45
+ confidence,
46
+ provenance,
47
+ },
48
+ ],
49
+ evidenceLists: [evidence.metadata],
50
+ nextQueries,
51
+ candidateCount: evidence.total,
52
+ confidence,
53
+ provenance,
54
+ });
55
+
18
56
  return {
19
- confidence: input.confidence,
20
- scope: input.scope,
21
- candidateCount: input.candidateCount,
22
- omittedCount:
23
- input.omittedCount ??
24
- (input.evidenceLists ?? []).reduce((sum, list) => sum + (list.omittedCount ?? 0), 0),
25
- evidenceLists: input.evidenceLists,
26
- nextQueries: input.nextQueries,
27
- tests: input.tests,
57
+ outcome,
58
+ assembled,
59
+ details: {
60
+ confidence,
61
+ scope: outcome.scopeLabel === "." ? null : outcome.scopeLabel,
62
+ candidateCount: evidence.total,
63
+ omittedCount: assembled.totals.omittedCount,
64
+ evidenceLists: [...assembled.evidenceLists],
65
+ nextQueries: assembledNextQueries(assembled),
66
+ ...(outcome.data.kind === "ast" ? { scan: outcome.data.result.scan } : {}),
67
+ },
28
68
  };
29
69
  }
70
+
71
+ function createFindEvidence(outcome: Extract<FindWorkflowOutcome, { kind: "completed" }>): {
72
+ total: number;
73
+ metadata: EvidenceListMetadata;
74
+ } {
75
+ if (outcome.data.kind === "semantic") {
76
+ const params = {
77
+ key: "find.semanticSymbols",
78
+ items: [...outcome.data.symbols],
79
+ maxResults: outcome.maxResults,
80
+ };
81
+ const evidence = outcome.data.partialReason
82
+ ? createPartialEvidenceList({ ...params, partialReason: "provider-limited" })
83
+ : createEvidenceList(params);
84
+ return { total: outcome.data.symbols.length, metadata: evidence.metadata };
85
+ }
86
+
87
+ const result = outcome.data.result;
88
+ const evidence = result.partialReason
89
+ ? createPartialEvidenceList({
90
+ key: "find.astMatches",
91
+ items: [...result.matches],
92
+ maxResults: outcome.maxResults,
93
+ partialReason: result.partialReason,
94
+ })
95
+ : createEvidenceList({
96
+ key: "find.astMatches",
97
+ items: [...result.matches],
98
+ maxResults: outcome.maxResults,
99
+ });
100
+ return { total: result.matches.length, metadata: evidence.metadata };
101
+ }
102
+
103
+ function findItems(
104
+ data: Extract<FindWorkflowOutcome, { kind: "completed" }>["data"],
105
+ ): readonly unknown[] {
106
+ return data.kind === "semantic" ? data.symbols : data.result.matches;
107
+ }
108
+
109
+ function findProvenance(
110
+ kind: Extract<FindWorkflowOutcome, { kind: "completed" }>["data"]["kind"],
111
+ ): ResultProvenance[] {
112
+ return kind === "semantic"
113
+ ? [{ source: "semantic", capability: "workspace-symbol" }]
114
+ : [{ source: "structural", capability: "tree-sitter" }];
115
+ }