@mrclrchtr/supi-code-intelligence 3.2.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (556) hide show
  1. package/README.md +154 -435
  2. package/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  3. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  4. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  5. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  6. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  7. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  8. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  9. package/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  10. package/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  11. package/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  12. package/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  13. package/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  14. package/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  15. package/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  16. package/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  17. package/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  18. package/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  19. package/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  20. package/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  21. package/node_modules/@mrclrchtr/supi-lsp/README.md +72 -62
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  41. package/node_modules/@mrclrchtr/supi-lsp/package.json +4 -5
  42. package/node_modules/@mrclrchtr/supi-lsp/src/api.ts +9 -9
  43. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +70 -41
  44. package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +16 -13
  45. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +2 -2
  46. package/node_modules/@mrclrchtr/supi-lsp/src/config/lsp-settings.ts +0 -2
  47. package/node_modules/@mrclrchtr/supi-lsp/src/index.ts +6 -6
  48. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-diagnostics.ts +5 -95
  49. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-recovery.ts +4 -3
  50. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +44 -6
  51. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +47 -65
  52. package/node_modules/@mrclrchtr/supi-lsp/src/provider/lsp-semantic-provider.ts +132 -79
  53. package/node_modules/@mrclrchtr/supi-lsp/src/provider/refactor-planning.ts +6 -14
  54. package/node_modules/@mrclrchtr/supi-lsp/src/session/readiness.ts +38 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-controller.ts +87 -75
  56. package/node_modules/@mrclrchtr/supi-lsp/src/session/runtime-registration.ts +5 -5
  57. package/node_modules/@mrclrchtr/supi-lsp/src/session/{service-registry.ts → runtime-registry.ts} +163 -71
  58. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +4 -0
  59. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/README.md +8 -0
  60. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  61. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  62. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  63. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  64. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  65. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  66. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/package.json +2 -2
  67. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/api.ts +10 -1
  68. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/capability/types.ts +19 -29
  69. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/index.ts +7 -1
  70. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/query-result.ts +42 -0
  71. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/src/types.ts +15 -10
  72. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +2 -4
  73. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +0 -4
  74. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/evidence-badge.ts +3 -2
  75. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +0 -4
  76. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/llm.ts +0 -10
  77. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path-utils.ts +19 -15
  78. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +4 -21
  79. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm +0 -0
  80. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/bash/tree-sitter-bash.wasm.json +2 -2
  81. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm +0 -0
  82. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/c/tree-sitter-c.wasm.json +2 -2
  83. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm +0 -0
  84. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/go/tree-sitter-go.wasm.json +2 -2
  85. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm +0 -0
  86. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/javascript/tree-sitter-javascript.wasm.json +2 -2
  87. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm +0 -0
  88. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/kotlin/tree-sitter-kotlin.wasm.json +2 -2
  89. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm +0 -0
  90. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/python/tree-sitter-python.wasm.json +2 -2
  91. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm +0 -0
  92. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/r/tree-sitter-r.wasm.json +2 -2
  93. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/rust/tree-sitter-rust.wasm.json +1 -1
  94. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm +0 -0
  95. package/node_modules/@mrclrchtr/supi-tree-sitter/resources/grammars/sql/tree-sitter-sql.wasm.json +3 -3
  96. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-kotlin-wasm.mjs +6 -0
  97. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/generate-sql-wasm.mjs +18 -4
  98. package/node_modules/@mrclrchtr/supi-tree-sitter/scripts/vendor-wasm.mjs +17 -1
  99. package/node_modules/@mrclrchtr/supi-tree-sitter/src/api.ts +2 -0
  100. package/node_modules/@mrclrchtr/supi-tree-sitter/src/coordinates.ts +20 -41
  101. package/node_modules/@mrclrchtr/supi-tree-sitter/src/index.ts +2 -0
  102. package/node_modules/@mrclrchtr/supi-tree-sitter/src/language.ts +7 -0
  103. package/node_modules/@mrclrchtr/supi-tree-sitter/src/operation-support.ts +40 -0
  104. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/session.ts +9 -7
  105. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/call-sites.ts +6 -1
  106. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/callees.ts +76 -37
  107. package/node_modules/yaml/LICENSE +13 -0
  108. package/node_modules/yaml/README.md +172 -0
  109. package/node_modules/yaml/bin.mjs +11 -0
  110. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  111. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  112. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  113. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  114. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  115. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  116. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  117. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  118. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  119. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  120. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +225 -0
  121. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  122. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  123. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  124. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  125. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  126. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  127. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  128. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  129. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  130. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  131. package/node_modules/yaml/browser/dist/errors.js +57 -0
  132. package/node_modules/yaml/browser/dist/index.js +17 -0
  133. package/node_modules/yaml/browser/dist/log.js +11 -0
  134. package/node_modules/yaml/browser/dist/nodes/Alias.js +116 -0
  135. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  136. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  137. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  138. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  139. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  140. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  141. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  142. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  143. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  144. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  145. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  146. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  147. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  148. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  149. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  150. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  151. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  152. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  153. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  154. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  155. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  156. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  157. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  158. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  159. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  160. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  161. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  162. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  163. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  164. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  165. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  166. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  167. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  168. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  169. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  170. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  171. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  172. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  173. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  174. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  175. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  176. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  177. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  178. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  179. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  180. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  181. package/node_modules/yaml/browser/dist/util.js +11 -0
  182. package/node_modules/yaml/browser/dist/visit.js +233 -0
  183. package/node_modules/yaml/browser/index.js +5 -0
  184. package/node_modules/yaml/browser/package.json +3 -0
  185. package/node_modules/yaml/dist/cli.d.ts +8 -0
  186. package/node_modules/yaml/dist/cli.mjs +201 -0
  187. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  188. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  189. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  190. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  191. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  192. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  193. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  194. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  195. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  196. package/node_modules/yaml/dist/compose/composer.js +224 -0
  197. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  198. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  199. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  200. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  201. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  202. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  203. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  204. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  205. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  206. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  207. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  208. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +227 -0
  209. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  210. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  211. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  212. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  213. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  214. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  215. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  216. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  217. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  218. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  219. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  220. package/node_modules/yaml/dist/doc/Document.js +337 -0
  221. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  222. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  223. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  224. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  225. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  226. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  227. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  228. package/node_modules/yaml/dist/doc/directives.js +178 -0
  229. package/node_modules/yaml/dist/errors.d.ts +21 -0
  230. package/node_modules/yaml/dist/errors.js +62 -0
  231. package/node_modules/yaml/dist/index.d.ts +25 -0
  232. package/node_modules/yaml/dist/index.js +50 -0
  233. package/node_modules/yaml/dist/log.d.ts +3 -0
  234. package/node_modules/yaml/dist/log.js +19 -0
  235. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  236. package/node_modules/yaml/dist/nodes/Alias.js +118 -0
  237. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  238. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  239. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  240. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  241. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  242. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  243. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  244. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  245. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  246. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  247. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  248. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  249. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  250. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  251. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  252. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  253. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  254. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  255. package/node_modules/yaml/dist/options.d.ts +350 -0
  256. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  257. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  258. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  259. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  260. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  261. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  262. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  263. package/node_modules/yaml/dist/parse/cst.js +112 -0
  264. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  265. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  266. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  267. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  268. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  269. package/node_modules/yaml/dist/parse/parser.js +980 -0
  270. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  271. package/node_modules/yaml/dist/public-api.js +107 -0
  272. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  273. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  274. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  275. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  276. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  277. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  278. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  279. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  280. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  281. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  282. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  283. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  284. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  285. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  286. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  287. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  288. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  289. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  290. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  291. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  292. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  293. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  294. package/node_modules/yaml/dist/schema/tags.js +99 -0
  295. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  296. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  297. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  298. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  299. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  300. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  301. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  302. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  303. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  304. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  305. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  306. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  307. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  308. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  309. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  310. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  311. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  312. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  313. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  314. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  315. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  316. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  317. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  318. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  319. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  320. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  321. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  322. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  323. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  324. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  325. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  326. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  327. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  328. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  329. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  330. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  331. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  332. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  333. package/node_modules/yaml/dist/test-events.js +134 -0
  334. package/node_modules/yaml/dist/util.d.ts +16 -0
  335. package/node_modules/yaml/dist/util.js +28 -0
  336. package/node_modules/yaml/dist/visit.d.ts +102 -0
  337. package/node_modules/yaml/dist/visit.js +236 -0
  338. package/node_modules/yaml/package.json +97 -0
  339. package/node_modules/yaml/util.js +2 -0
  340. package/package.json +9 -8
  341. package/src/analysis/architecture/discovery.ts +213 -227
  342. package/src/analysis/architecture/manifest.ts +147 -0
  343. package/src/analysis/architecture/model.ts +119 -52
  344. package/src/analysis/architecture/workspace-config.ts +229 -0
  345. package/src/analysis/{coverage/coverage-warnings.ts → capability/capability-warnings.ts} +41 -78
  346. package/src/analysis/evidence.ts +22 -5
  347. package/src/analysis/health/diagnostics.ts +183 -0
  348. package/src/analysis/health/recovery.ts +39 -0
  349. package/src/analysis/health/signals.ts +20 -0
  350. package/src/analysis/instruction-files.ts +60 -48
  351. package/src/analysis/provider.ts +31 -12
  352. package/src/analysis/readiness.ts +29 -9
  353. package/src/{tool/refactor-apply → analysis/refactor}/apply.ts +120 -26
  354. package/src/analysis/refactor/position.ts +6 -0
  355. package/src/analysis/refactor/safety.ts +4 -11
  356. package/src/analysis/references/locations.ts +20 -0
  357. package/src/analysis/references/semantic-refs.ts +21 -11
  358. package/src/{tool/graph → analysis/relations}/implementations.ts +27 -23
  359. package/src/analysis/relations/provider-locations.ts +179 -0
  360. package/src/{tool/graph → analysis/relations}/references.ts +25 -21
  361. package/src/{tool/graph → analysis/relations}/types.ts +4 -19
  362. package/src/analysis/search/ast-scan.ts +376 -0
  363. package/src/analysis/search/call-name.ts +68 -0
  364. package/src/analysis/search/deadline.ts +84 -0
  365. package/src/analysis/search/paths.ts +88 -0
  366. package/src/analysis/search/pattern.ts +290 -246
  367. package/src/analysis/target/anchored.ts +72 -27
  368. package/src/analysis/target/file.ts +292 -132
  369. package/src/analysis/target/identity.ts +237 -0
  370. package/src/analysis/target/symbol.ts +169 -86
  371. package/src/analysis/target/types.ts +36 -4
  372. package/src/api.ts +21 -4
  373. package/src/app/app.ts +53 -46
  374. package/src/extension.ts +68 -66
  375. package/src/session/capability-adapter.ts +26 -118
  376. package/src/session/find-types.ts +38 -0
  377. package/src/session/find-workflow.ts +141 -0
  378. package/src/session/graph/collect.ts +181 -0
  379. package/src/session/graph-types.ts +77 -0
  380. package/src/session/graph-workflow.ts +152 -0
  381. package/src/session/health-types.ts +134 -0
  382. package/src/session/health-workflow.ts +341 -0
  383. package/src/session/input/common.ts +216 -0
  384. package/src/session/input/health-refactor.ts +169 -0
  385. package/src/session/input/workflows.ts +211 -0
  386. package/src/session/inspect/collect.ts +304 -0
  387. package/src/session/inspect/file-point.ts +69 -0
  388. package/src/session/inspect-types.ts +78 -0
  389. package/src/session/inspect-workflow.ts +157 -0
  390. package/src/session/orientation/collect.ts +718 -0
  391. package/src/session/orientation/context-facts.ts +319 -0
  392. package/src/session/orientation/context-sections.ts +352 -0
  393. package/src/session/orientation-types.ts +97 -0
  394. package/src/session/orientation-workflow.ts +307 -0
  395. package/src/session/refactor-plans.ts +1 -1
  396. package/src/session/refactor-types.ts +51 -0
  397. package/src/session/refactor-workflow.ts +263 -0
  398. package/src/session/session.ts +263 -234
  399. package/src/session/target-candidates.ts +60 -0
  400. package/src/session/target-input.ts +98 -0
  401. package/src/session/target-store.ts +132 -29
  402. package/src/session/target-workflow.ts +254 -302
  403. package/src/session/workflow-control.ts +35 -0
  404. package/src/substrate/lsp/lifecycle.ts +9 -22
  405. package/src/substrate/lsp/maintenance.ts +75 -0
  406. package/src/substrate/lsp/recovery.ts +41 -25
  407. package/src/substrate/lsp/settings.ts +1 -10
  408. package/src/substrate/lsp/state.ts +2 -13
  409. package/src/tool/find/ast-kinds.ts +35 -0
  410. package/src/tool/find/execute.ts +22 -113
  411. package/src/tool/find/markdown.ts +85 -221
  412. package/src/tool/find/modes.ts +5 -0
  413. package/src/tool/find/render.ts +57 -0
  414. package/src/tool/find/tui.ts +1 -1
  415. package/src/tool/graph/calls-md.ts +17 -30
  416. package/src/tool/graph/execute.ts +42 -103
  417. package/src/tool/graph/implementations-md.ts +32 -54
  418. package/src/tool/graph/markdown-base.ts +73 -196
  419. package/src/tool/graph/provider-location-md.ts +9 -0
  420. package/src/tool/graph/references-md.ts +34 -27
  421. package/src/tool/graph/tui.ts +8 -26
  422. package/src/tool/guidance.ts +31 -48
  423. package/src/tool/health/execute.ts +15 -56
  424. package/src/tool/health/markdown.ts +199 -148
  425. package/src/tool/health/semantic-state.ts +24 -0
  426. package/src/tool/health/tui.ts +262 -36
  427. package/src/tool/infra/error-results.ts +0 -2
  428. package/src/tool/infra/progress.ts +2 -2
  429. package/src/tool/infra/workflow-control.ts +11 -0
  430. package/src/tool/inspect/execute.ts +23 -63
  431. package/src/tool/inspect/markdown.ts +114 -95
  432. package/src/tool/inspect/tui.ts +7 -7
  433. package/src/tool/orientation/execute.ts +50 -37
  434. package/src/tool/orientation/markdown.ts +26 -31
  435. package/src/tool/orientation/tui.ts +41 -39
  436. package/src/tool/refactor-apply/execute.ts +23 -9
  437. package/src/tool/refactor-apply/tui.ts +7 -3
  438. package/src/tool/refactor-plan/execute.ts +44 -61
  439. package/src/tool/refactor-plan/markdown.ts +33 -56
  440. package/src/tool/refactor-plan/tui.ts +10 -11
  441. package/src/tool/register.ts +6 -5
  442. package/src/tool/resolve/execute.ts +23 -69
  443. package/src/tool/resolve/markdown.ts +125 -114
  444. package/src/tool/resolve/tui.ts +11 -9
  445. package/src/tool/result/assembly.ts +125 -0
  446. package/src/tool/result/errors.ts +20 -34
  447. package/src/tool/result/find.ts +107 -21
  448. package/src/tool/result/graph.ts +163 -64
  449. package/src/tool/result/health.ts +170 -73
  450. package/src/tool/result/inspect.ts +183 -41
  451. package/src/tool/result/orientation.ts +118 -16
  452. package/src/tool/result/refactor.ts +101 -21
  453. package/src/tool/result/resolve.ts +243 -80
  454. package/src/tool/result/types.ts +100 -56
  455. package/src/tool/schemas.ts +160 -231
  456. package/src/tool/specs.ts +57 -168
  457. package/src/types/details.ts +2 -4
  458. package/src/types/execution.ts +6 -15
  459. package/src/types/index.ts +2 -4
  460. package/src/types/tool-names.ts +1 -2
  461. package/src/ui/footer.ts +3 -3
  462. package/src/ui/markdown/gather.ts +17 -65
  463. package/src/ui/markdown/overview-data.ts +143 -21
  464. package/src/ui/markdown/overview.ts +27 -8
  465. package/src/ui/markdown/types.ts +12 -16
  466. package/src/ui/status-command.ts +39 -31
  467. package/src/ui/status-overlay.ts +23 -15
  468. package/src/ui/tui/common.ts +121 -74
  469. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  470. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  471. package/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  472. package/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  473. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  474. package/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  475. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  476. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  477. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  478. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  479. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  480. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  481. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-augmentation.ts +0 -82
  482. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-context.ts +0 -116
  483. package/node_modules/@mrclrchtr/supi-lsp/src/diagnostics/diagnostic-display.ts +0 -69
  484. package/node_modules/@mrclrchtr/supi-lsp/src/manager/capability-index.ts +0 -24
  485. package/node_modules/@mrclrchtr/supi-lsp/src/manager/client-pool.ts +0 -33
  486. package/node_modules/@mrclrchtr/supi-lsp/src/manager/diagnostic-store.ts +0 -51
  487. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-stale-resync.ts +0 -47
  488. package/node_modules/@mrclrchtr/supi-lsp/src/manager/recovery-coordinator.ts +0 -37
  489. package/node_modules/@mrclrchtr/supi-lsp/src/manager/workspace-router.ts +0 -44
  490. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  491. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  492. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-code-runtime/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  493. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/abort-utils.ts +0 -31
  494. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +0 -11
  495. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +0 -2
  496. package/src/analysis/brief/directory.ts +0 -324
  497. package/src/analysis/brief/enrich.ts +0 -157
  498. package/src/analysis/brief/file.ts +0 -84
  499. package/src/analysis/brief/inventory.ts +0 -177
  500. package/src/analysis/brief/main.ts +0 -176
  501. package/src/analysis/brief/models.ts +0 -75
  502. package/src/analysis/brief/public-brief.ts +0 -179
  503. package/src/analysis/brief/summarize.ts +0 -208
  504. package/src/analysis/brief/types.ts +0 -27
  505. package/src/analysis/brief/use-case.ts +0 -264
  506. package/src/analysis/search/ripgrep.ts +0 -558
  507. package/src/analysis/signals/git.ts +0 -89
  508. package/src/analysis/signals/project.ts +0 -189
  509. package/src/analysis/target/bridge.ts +0 -152
  510. package/src/analysis/target/file-resolution.ts +0 -125
  511. package/src/analysis/target/planner.ts +0 -92
  512. package/src/analysis/target/query.ts +0 -74
  513. package/src/analysis/target/resolve-common.ts +0 -115
  514. package/src/analysis/target/service.ts +0 -229
  515. package/src/analysis/tests/likely-tests.ts +0 -174
  516. package/src/analysis/tests/test-discovery.ts +0 -540
  517. package/src/analysis/tests/vitest.ts +0 -87
  518. package/src/app/manager.ts +0 -65
  519. package/src/substrate/lsp/diagnostic-injection.ts +0 -203
  520. package/src/substrate/lsp/overrides.ts +0 -132
  521. package/src/tool/find/orchestrate.ts +0 -317
  522. package/src/tool/find/semantic-search.ts +0 -128
  523. package/src/tool/graph/collect-relation.ts +0 -372
  524. package/src/tool/graph/orchestrate.ts +0 -259
  525. package/src/tool/health/orchestrate.ts +0 -151
  526. package/src/tool/health/sections/diagnostics.ts +0 -182
  527. package/src/tool/health/sections/recovery.ts +0 -89
  528. package/src/tool/health/sections/signals.ts +0 -89
  529. package/src/tool/impact/analysis.ts +0 -220
  530. package/src/tool/impact/change-set-impact.ts +0 -152
  531. package/src/tool/impact/execute.ts +0 -125
  532. package/src/tool/impact/file-level-impact.ts +0 -82
  533. package/src/tool/impact/markdown.ts +0 -283
  534. package/src/tool/impact/orchestrate.ts +0 -97
  535. package/src/tool/impact/result.ts +0 -2
  536. package/src/tool/impact/single-impact.ts +0 -90
  537. package/src/tool/impact/tui.ts +0 -39
  538. package/src/tool/impact/types.ts +0 -34
  539. package/src/tool/infra/cross-field.ts +0 -335
  540. package/src/tool/infra/pipeline.ts +0 -334
  541. package/src/tool/infra/readiness-message.ts +0 -5
  542. package/src/tool/inspect/orchestrate.ts +0 -154
  543. package/src/tool/orientation/deps.ts +0 -63
  544. package/src/tool/orientation/mode.ts +0 -139
  545. package/src/tool/orientation/orchestrate.ts +0 -475
  546. package/src/tool/orientation/precise-target.ts +0 -253
  547. package/src/tool/params.ts +0 -15
  548. package/src/tool/refactor-apply/markdown.ts +0 -118
  549. package/src/tool/refactor-apply/orchestrate.ts +0 -84
  550. package/src/tool/refactor-plan/orchestrate.ts +0 -355
  551. package/src/tool/resolve/orchestrate.ts +0 -38
  552. package/src/tool/result/impact.ts +0 -50
  553. package/src/ui/markdown/brief.ts +0 -218
  554. package/src/ui/message-renderer.ts +0 -121
  555. package/src/ui/tui/index.ts +0 -37
  556. /package/src/{tool/graph → analysis/relations}/callees.ts +0 -0
@@ -1,8 +1,9 @@
1
1
  /**
2
- * Workspace code-intelligence session facade.
2
+ * Workspace code-intelligence session.
3
3
  *
4
- * Per-workspace facade that owns session-scoped state (targets, plans,
5
- * coverage warnings) and provides typed workflow methods for all
4
+ *
5
+ * Per-workspace module that owns session-scoped state (targets, plans,
6
+ * Capability Warnings) and provides typed workflow methods for all
6
7
  * public code_* tools. Tool executors receive this session explicitly
7
8
  * through their execution context; the session centralizes provider
8
9
  * access, target resolution, plan management, and readiness policy.
@@ -15,19 +16,35 @@
15
16
  * @mrclrchtr/supi-code-intelligence — internal, not exported via api.ts
16
17
  */
17
18
 
19
+ import { realpathSync } from "node:fs";
18
20
  import * as path from "node:path";
19
21
  import type { SessionEntry } from "@earendil-works/pi-coding-agent";
20
- import {
21
- getDefaultWorkspaceRuntime,
22
- type SemanticProvider,
23
- type StructuralProvider,
24
- } from "@mrclrchtr/supi-code-runtime/api";
25
22
  import type { LspRuntimeController } from "@mrclrchtr/supi-lsp/api";
26
- import { CoverageWarningState } from "../analysis/coverage/coverage-warnings.ts";
27
- import type { CodeProvider } from "../analysis/provider.ts";
28
- import { getCodeProvider } from "../analysis/provider.ts";
29
23
  import { type CapabilityAdapter, WorkspaceCapabilityAdapter } from "./capability-adapter.ts";
24
+ import type { FindWorkflowInput, FindWorkflowOutcome } from "./find-types.ts";
25
+ import { runFindWorkflow } from "./find-workflow.ts";
26
+ import type { GraphWorkflowInput, GraphWorkflowOutcome } from "./graph-types.ts";
27
+ import { runGraphWorkflow } from "./graph-workflow.ts";
28
+ import type {
29
+ HealthRefreshAttempt,
30
+ HealthWorkflowInput,
31
+ HealthWorkflowOutcome,
32
+ } from "./health-types.ts";
33
+ import { runHealthWorkflow } from "./health-workflow.ts";
34
+ import { parseResolveRequest } from "./input/common.ts";
35
+ import type { InspectWorkflowInput, InspectWorkflowOutcome } from "./inspect-types.ts";
36
+ import { runInspectWorkflow } from "./inspect-workflow.ts";
37
+ import type { OrientationWorkflowInput, OrientationWorkflowOutcome } from "./orientation-types.ts";
38
+ import { runOrientationWorkflow } from "./orientation-workflow.ts";
30
39
  import { getPlan, type RefactorPlan, removePlan, storePlan } from "./refactor-plans.ts";
40
+ import type {
41
+ RefactorApplyWorkflowInput,
42
+ RefactorApplyWorkflowOutcome,
43
+ RefactorPlanWorkflowInput,
44
+ RefactorPlanWorkflowOutcome,
45
+ } from "./refactor-types.ts";
46
+ import { runRefactorApplyWorkflow, runRefactorPlanWorkflow } from "./refactor-workflow.ts";
47
+ import type { ResolveTargetInput, TargetInput } from "./target-input.ts";
31
48
  import {
32
49
  getWorkflowTarget,
33
50
  registerWorkflowTarget,
@@ -38,43 +55,70 @@ import {
38
55
  } from "./target-store.ts";
39
56
  import {
40
57
  resolveTargetWorkflow,
41
- type TargetWorkflowInput,
42
58
  type TargetWorkflowOutcome,
43
59
  type TargetWorkflowPolicy,
44
60
  } from "./target-workflow.ts";
61
+ import { reportProgress, throwIfAborted, type WorkflowControl } from "./workflow-control.ts";
45
62
 
46
63
  // ── Re-export types consumed by callers ───────────────────────────────
47
64
 
48
- export type { CoverageWarningState } from "../analysis/coverage/coverage-warnings.ts";
49
- export type { CodeProvider, CodeProviderState } from "../analysis/provider.ts";
50
65
  export type { CapabilityAdapter } from "./capability-adapter.ts";
66
+ export type {
67
+ FindMode,
68
+ FindWorkflowData,
69
+ FindWorkflowInput,
70
+ FindWorkflowOutcome,
71
+ } from "./find-types.ts";
72
+ export type {
73
+ GraphRelationKind,
74
+ GraphSection,
75
+ GraphWorkflowInput,
76
+ GraphWorkflowOutcome,
77
+ RequestedGraphRelation,
78
+ } from "./graph-types.ts";
79
+ export type {
80
+ HealthData,
81
+ HealthSection,
82
+ HealthWorkflowInput,
83
+ HealthWorkflowOutcome,
84
+ } from "./health-types.ts";
85
+ export type {
86
+ InspectResultData,
87
+ InspectWorkflowInput,
88
+ InspectWorkflowOutcome,
89
+ } from "./inspect-types.ts";
90
+ export type {
91
+ OrientationFocusInput,
92
+ OrientationWorkflowInput,
93
+ OrientationWorkflowOutcome,
94
+ } from "./orientation-types.ts";
51
95
  export type { RefactorPlan } from "./refactor-plans.ts";
96
+ export type {
97
+ PublicSourceRange,
98
+ RefactorApplyWorkflowInput,
99
+ RefactorApplyWorkflowOutcome,
100
+ RefactorOperationInput,
101
+ RefactorPlanWorkflowInput,
102
+ RefactorPlanWorkflowOutcome,
103
+ } from "./refactor-types.ts";
104
+ export type {
105
+ GraphTargetInput,
106
+ OrientationTargetInput,
107
+ RefactorTargetInput,
108
+ ResolveTargetInput,
109
+ SourcePointInput,
110
+ SymbolTargetInput,
111
+ TargetInput,
112
+ TargetSymbolKind,
113
+ } from "./target-input.ts";
52
114
  export type {
53
115
  TargetLookupResult,
54
116
  TargetRegistrationInput,
55
117
  TargetRegistrationOutput,
56
118
  TargetStoreEntry,
57
119
  } from "./target-store.ts";
58
- export type {
59
- TargetWorkflowInput,
60
- TargetWorkflowOutcome,
61
- TargetWorkflowPolicy,
62
- } from "./target-workflow.ts";
63
-
64
- // ── Target ID expansion result ────────────────────────────────────────
65
-
66
- export type TargetIdExpansionResult =
67
- | {
68
- kind: "ok";
69
- file: string;
70
- line: number;
71
- character: number;
72
- targetName: string | null;
73
- targetKind: string | null;
74
- entry: TargetStoreEntry;
75
- }
76
- | { kind: "not-provided" }
77
- | { kind: "error"; message: string };
120
+ export type { TargetWorkflowOutcome, TargetWorkflowPolicy } from "./target-workflow.ts";
121
+ export type { WorkflowControl, WorkflowProgressEvent } from "./workflow-control.ts";
78
122
 
79
123
  // ── Session class ─────────────────────────────────────────────────────
80
124
 
@@ -93,7 +137,10 @@ export class WorkspaceCodeIntelligenceSession {
93
137
  readonly #capability: CapabilityAdapter;
94
138
 
95
139
  /** Whether the hidden architecture overview has been injected. */
96
- hasInjectedOverview = false;
140
+ #hasInjectedOverview = false;
141
+
142
+ /** Most recent explicit diagnostic refresh attempt, including its established outcome. */
143
+ #lastHealthRefreshAttempt: HealthRefreshAttempt | null = null;
97
144
 
98
145
  /** Session-scoped workflow target storage (targetId → entry). */
99
146
  readonly #workflowTargets = new Map<string, TargetStoreEntry>();
@@ -101,53 +148,189 @@ export class WorkspaceCodeIntelligenceSession {
101
148
  /** Session-scoped refactor plan storage (planId → plan). */
102
149
  readonly #refactorPlans = new Map<string, RefactorPlan>();
103
150
 
104
- /**
105
- * Coverage warning state for deduplication and grace-period timing.
106
- */
107
- readonly coverageWarningState = new CoverageWarningState();
108
-
109
151
  /** Absolute instruction files already loaded by PI's native context-file mechanism. */
110
- readonly nativeInstructionPaths = new Set<string>();
152
+ readonly #nativeInstructionPaths = new Set<string>();
111
153
 
112
154
  /** Absolute directories whose instruction files were already surfaced by code_orientation. */
113
- readonly surfacedInstructionDirs = new Set<string>();
155
+ readonly #surfacedInstructionDirs = new Set<string>();
114
156
 
115
157
  /**
116
158
  * Optional LSP controller reference — attached by LSP lifecycle module
117
- * for coverage evaluation and server management.
159
+ * for Capability Warning evaluation and server management.
118
160
  */
119
- lspController: LspRuntimeController | null = null;
161
+ #lspController: LspRuntimeController | null = null;
120
162
 
121
- /**
122
- * Optional Tree-sitter controller reference — attached by TS lifecycle
123
- * module for structural provider lifecycle management.
124
- */
125
- tsController: import("@mrclrchtr/supi-tree-sitter/api").TreeSitterRuntimeController | null = null;
163
+ /** Workspace sentinel snapshot for change detection across explicit queries. */
164
+ #sentinelSnapshot: Map<string, number> = new Map();
165
+
166
+ /** Whether the project owning this session is trusted for config loading. */
167
+ #projectTrusted = false;
126
168
 
127
169
  constructor(cwd: string, capability?: CapabilityAdapter) {
128
170
  this.cwd = cwd;
129
171
  this.#capability = capability ?? new WorkspaceCapabilityAdapter();
130
172
  }
131
173
 
174
+ /** Record whether project-local configuration may be read for this session. */
175
+ setProjectTrusted(trusted: boolean): void {
176
+ this.#projectTrusted = trusted;
177
+ }
178
+
179
+ /** Attach lifecycle-owned LSP state without exposing it to Tool adapters. */
180
+ attachLspController(controller: LspRuntimeController | null): void {
181
+ this.#lspController = controller;
182
+ }
183
+
184
+ /**
185
+ * Seed the sentinel snapshot from lifecycle-owned state after session start.
186
+ * Called by the extension entry point after LSP initialization.
187
+ */
188
+ seedSentinelSnapshot(snapshot: Map<string, number>): void {
189
+ this.#sentinelSnapshot = snapshot;
190
+ }
191
+
192
+ /** Restore overview state from the active session branch. */
193
+ restoreOverviewInjection(): void {
194
+ this.#hasInjectedOverview = true;
195
+ }
196
+
197
+ /** Atomically claim first-turn overview injection for this workspace session. */
198
+ claimOverviewInjection(): boolean {
199
+ if (this.#hasInjectedOverview) return false;
200
+ this.#hasInjectedOverview = true;
201
+ return true;
202
+ }
203
+
132
204
  // ── Target workflow (deep seam) ───────────────────────────────────
133
205
 
134
206
  /**
135
207
  * Resolve target input into an immutable resolved target.
136
208
  *
137
- * This is the deep module interface. Tool executors call this instead
138
- * of `expandTargetId` or direct `resolveTarget`/`resolveAnchoredSymbolTarget`
139
- * calls. Returns typed outcomes — no markdown, no mutated params.
209
+ * This is the deep module interface. Tool executors use it instead of
210
+ * bypassing session policy through one-off target adapters. Returns typed
211
+ * outcomes — no markdown and no mutated parameters.
140
212
  */
141
213
  async resolveTarget(
142
- input: TargetWorkflowInput,
214
+ input: TargetInput,
143
215
  policy: TargetWorkflowPolicy,
144
216
  ): Promise<TargetWorkflowOutcome> {
145
- return resolveTargetWorkflow(input, policy, {
217
+ return resolveTargetWorkflow(input, policy, this.targetWorkflowDeps());
218
+ }
219
+
220
+ /** Resolve one public target source and register its session-scoped handle. */
221
+ async resolve(
222
+ input: { readonly target: ResolveTargetInput; readonly maxResults?: number },
223
+ control?: WorkflowControl,
224
+ ): Promise<TargetWorkflowOutcome> {
225
+ const parsed = parseResolveRequest(input);
226
+ if (parsed.kind === "invalid-input") return parsed;
227
+ const request = parsed.value;
228
+ throwIfAborted(control);
229
+ reportProgress(control, {
230
+ intent: "resolve",
231
+ phase: "target",
232
+ message: "Resolving target evidence",
233
+ });
234
+ return resolveTargetWorkflow(
235
+ request.target,
236
+ {
237
+ fileLevelAllowed: true,
238
+ nameAnchorRequired: false,
239
+ maxResults: request.maxResults,
240
+ },
241
+ this.targetWorkflowDeps(),
242
+ );
243
+ }
244
+
245
+ /** Collect evidence-backed workspace health facts. */
246
+ async health(
247
+ input: HealthWorkflowInput,
248
+ control?: WorkflowControl,
249
+ ): Promise<HealthWorkflowOutcome> {
250
+ return runHealthWorkflow(
251
+ input,
252
+ {
253
+ cwd: this.cwd,
254
+ capability: this.#capability,
255
+ lspController: this.#lspController,
256
+ lastRefreshAttempt: this.#lastHealthRefreshAttempt,
257
+ trackRefreshAttempt: (attempt) => {
258
+ this.#lastHealthRefreshAttempt = attempt;
259
+ },
260
+ sentinelSnapshot: this.#sentinelSnapshot,
261
+ },
262
+ control,
263
+ );
264
+ }
265
+
266
+ /** Search one explicit structural or semantic substrate. */
267
+ async find(input: FindWorkflowInput, control?: WorkflowControl): Promise<FindWorkflowOutcome> {
268
+ return runFindWorkflow(input, { cwd: this.cwd, capability: this.#capability }, control);
269
+ }
270
+
271
+ /** Orient around the workspace or one exact focus. */
272
+ async orient(
273
+ input: OrientationWorkflowInput,
274
+ control?: WorkflowControl,
275
+ ): Promise<OrientationWorkflowOutcome> {
276
+ return runOrientationWorkflow(
277
+ input,
278
+ {
279
+ ...this.targetWorkflowDeps(),
280
+ nativeInstructionPaths: this.#nativeInstructionPaths,
281
+ surfacedInstructionDirs: this.#surfacedInstructionDirs,
282
+ markInstructionDirsSurfaced: (directories) => this.markInstructionDirsSurfaced(directories),
283
+ projectTrusted: this.#projectTrusted,
284
+ },
285
+ control,
286
+ );
287
+ }
288
+
289
+ /** Plan one precise semantic refactor without mutating files. */
290
+ async planRefactor(
291
+ input: RefactorPlanWorkflowInput,
292
+ control?: WorkflowControl,
293
+ ): Promise<RefactorPlanWorkflowOutcome> {
294
+ return runRefactorPlanWorkflow(input, this.refactorWorkflowDeps(), control);
295
+ }
296
+
297
+ /** Revalidate and apply one stored refactor plan. */
298
+ async applyRefactor(
299
+ input: RefactorApplyWorkflowInput,
300
+ control?: WorkflowControl,
301
+ ): Promise<RefactorApplyWorkflowOutcome> {
302
+ return runRefactorApplyWorkflow(input, this.refactorWorkflowDeps(), control);
303
+ }
304
+
305
+ /** Inspect one exact source point with available semantic and structural evidence. */
306
+ async inspect(
307
+ input: InspectWorkflowInput,
308
+ control?: WorkflowControl,
309
+ ): Promise<InspectWorkflowOutcome> {
310
+ return runInspectWorkflow(input, { cwd: this.cwd, capability: this.#capability }, control);
311
+ }
312
+
313
+ /** Collect evidence-backed relations for one exact target. */
314
+ async graph(input: GraphWorkflowInput, control?: WorkflowControl): Promise<GraphWorkflowOutcome> {
315
+ return runGraphWorkflow(input, this.targetWorkflowDeps(), control);
316
+ }
317
+
318
+ private refactorWorkflowDeps() {
319
+ return {
320
+ ...this.targetWorkflowDeps(),
321
+ storePlan: (plan: RefactorPlan) => this.#storePlan(plan),
322
+ getPlan: (id: string) => this.#getPlan(id),
323
+ removePlan: (id: string) => this.#removePlan(id),
324
+ };
325
+ }
326
+
327
+ private targetWorkflowDeps() {
328
+ return {
146
329
  cwd: this.cwd,
147
330
  capability: this.#capability,
148
- lookupTargetId: (id) => this.lookupTargetId(id),
149
- registerTarget: (inp) => this.registerTarget(inp),
150
- });
331
+ lookupTargetId: (id: string) => this.#lookupTargetId(id),
332
+ registerTarget: (input: TargetRegistrationInput) => this.#registerTarget(input),
333
+ };
151
334
  }
152
335
 
153
336
  // ── Instruction-file state ───────────────────────────────────────
@@ -155,183 +338,73 @@ export class WorkspaceCodeIntelligenceSession {
155
338
  /** Remember instruction/context file paths already loaded by PI natively. */
156
339
  captureNativeInstructionPaths(files: Array<{ path: string }>): void {
157
340
  for (const file of files) {
158
- this.nativeInstructionPaths.add(path.resolve(this.cwd, file.path));
341
+ const resolved = path.resolve(this.cwd, file.path);
342
+ // Resolve to real path so dedup aligns with the realpath-aware
343
+ // instruction-file lookup in findInstructionFilesForDirectory.
344
+ try {
345
+ this.#nativeInstructionPaths.add(path.resolve(realpathSync(resolved)));
346
+ } catch {
347
+ this.#nativeInstructionPaths.add(resolved);
348
+ }
159
349
  }
160
350
  }
161
351
 
162
352
  /** Mark directory-local instruction files as surfaced after a successful orientation render. */
163
353
  markInstructionDirsSurfaced(directories: string[]): void {
164
354
  for (const directory of directories) {
165
- this.surfacedInstructionDirs.add(path.resolve(this.cwd, directory));
355
+ this.#surfacedInstructionDirs.add(path.resolve(this.cwd, directory));
166
356
  }
167
357
  }
168
358
 
169
359
  /** Clear instruction-file dedup state after compaction. */
170
360
  resetSurfacedInstructionDirs(): void {
171
- this.surfacedInstructionDirs.clear();
361
+ this.#surfacedInstructionDirs.clear();
172
362
  }
173
363
 
174
364
  /** Reconstruct surfaced instruction directories from branch tool-result details after compaction. */
175
365
  reconstructInstructionState(branch: SessionEntry[]): void {
176
- this.surfacedInstructionDirs.clear();
366
+ this.#surfacedInstructionDirs.clear();
177
367
  const entries = entriesAfterLatestCompaction(branch);
178
368
  for (const entry of entries) {
179
369
  for (const directory of extractInstructionDirectories(entry)) {
180
- this.surfacedInstructionDirs.add(path.resolve(this.cwd, directory));
370
+ this.#surfacedInstructionDirs.add(path.resolve(this.cwd, directory));
181
371
  }
182
372
  }
183
373
  }
184
374
 
185
- // ── Provider access ───────────────────────────────────────────────
375
+ // ── Private session stores ───────────────────────────────────────
186
376
 
187
- /**
188
- * Get the composite code provider state for this workspace.
189
- * Combines semantic (LSP) and structural (tree-sitter) capabilities
190
- * along with LSP service state.
191
- */
192
- getProviders(): import("../analysis/provider.ts").CodeProviderState {
193
- return getCodeProvider(this.cwd);
194
- }
195
-
196
- /**
197
- * Get the ready composite code provider, or null if unavailable.
198
- */
199
- getProvider(): CodeProvider | null {
200
- const state = this.getProviders();
201
- return state.kind === "ready" ? state.provider : null;
202
- }
203
-
204
- /**
205
- * Get the semantic provider from the shared runtime.
206
- */
207
- getSemanticProvider(): SemanticProvider | null {
208
- const ws = getDefaultWorkspaceRuntime().getWorkspace(this.cwd);
209
- if (
210
- (ws.semantic.state.kind === "ready" || ws.semantic.state.kind === "pending") &&
211
- ws.semantic.provider !== null
212
- ) {
213
- return ws.semantic.provider as SemanticProvider;
214
- }
215
- return null;
216
- }
217
-
218
- /**
219
- * Get the structural provider from the shared runtime.
220
- */
221
- getStructuralProvider(): StructuralProvider | null {
222
- const ws = getDefaultWorkspaceRuntime().getWorkspace(this.cwd);
223
- if (ws.structural.state.kind === "ready" && ws.structural.provider !== null) {
224
- return ws.structural.provider as StructuralProvider;
225
- }
226
- return null;
227
- }
228
-
229
- /**
230
- * Get the raw workspace state from the shared runtime.
231
- *
232
- * Exposes semantic/structural state and provider refs for tools
233
- * that need detailed status (e.g. code_health). Prefer higher-level
234
- * methods (`getProvider()`, `getSemanticProvider()`) when you only
235
- * need a ready provider reference.
236
- */
237
- getWorkspaceState() {
238
- return getDefaultWorkspaceRuntime().getWorkspace(this.cwd);
239
- }
240
-
241
- // ── Target resolution ─────────────────────────────────────────────
242
-
243
- /**
244
- * Look up a stored target by targetId in this session's store.
245
- */
246
- lookupTargetId(targetId: string): TargetLookupResult {
377
+ #lookupTargetId(targetId: string): TargetLookupResult {
247
378
  return getWorkflowTarget(this.#workflowTargets, targetId);
248
379
  }
249
380
 
250
- /**
251
- * Register a resolved target in this session's store and return
252
- * stable session-scoped handles.
253
- */
254
- registerTarget(input: TargetRegistrationInput): TargetRegistrationOutput {
381
+ #registerTarget(input: TargetRegistrationInput): TargetRegistrationOutput {
255
382
  return registerWorkflowTarget(this.#workflowTargets, this.cwd, input);
256
383
  }
257
384
 
258
- /**
259
- * Expand an optional targetId from tool params into anchored
260
- * file/line/character.
261
- *
262
- * Usage at the top of each target-oriented executor:
263
- *
264
- * ```ts
265
- * const expansion = session.expandTargetId(params);
266
- * if (expansion.kind === "error") return errorResult(expansion.message);
267
- * if (expansion.kind === "ok") {
268
- * params.file = expansion.file;
269
- * params.line = expansion.line;
270
- * params.character = expansion.character;
271
- * }
272
- * ```
273
- */
274
- expandTargetId(params: {
275
- targetId?: string;
276
- file?: string;
277
- line?: number;
278
- character?: number;
279
- symbol?: string;
280
- }): TargetIdExpansionResult {
281
- return expandSessionTargetId(this, params);
282
- }
283
-
284
- /**
285
- * Look up a targetId without expanding into file/line/character.
286
- * Returns the raw store entry or an error.
287
- */
288
- lookupTargetEntry(targetId: string): TargetLookupResult {
289
- return getWorkflowTarget(this.#workflowTargets, targetId);
290
- }
291
-
292
- // ── Plan store ────────────────────────────────────────────────────
293
-
294
- /**
295
- * Store a refactor plan and return its planId.
296
- */
297
- storePlan(plan: RefactorPlan): string {
385
+ #storePlan(plan: RefactorPlan): string {
298
386
  return storePlan(this.#refactorPlans, plan);
299
387
  }
300
388
 
301
- /**
302
- * Retrieve a plan by id, or undefined.
303
- */
304
- getPlan(id: string): RefactorPlan | undefined {
389
+ #getPlan(id: string): RefactorPlan | undefined {
305
390
  return getPlan(this.#refactorPlans, id);
306
391
  }
307
392
 
308
- /**
309
- * Remove a plan after successful apply.
310
- */
311
- removePlan(id: string): void {
393
+ #removePlan(id: string): void {
312
394
  removePlan(this.#refactorPlans, id);
313
395
  }
314
396
 
315
- // ── Introspection (for tests / debugging) ───────────────────────
316
-
317
- /** Number of stored targets (for test isolation checks). */
318
- get targetCount(): number {
319
- return this.#workflowTargets.size;
320
- }
321
-
322
- /** Number of stored refactor plans (for test isolation checks). */
323
- get planCount(): number {
324
- return this.#refactorPlans.size;
325
- }
326
-
327
397
  // ── Cleanup ───────────────────────────────────────────────────────
328
398
 
329
399
  /** Clear all session-scoped stores. */
330
400
  clearStores(): void {
331
401
  this.#refactorPlans.clear();
332
402
  this.#workflowTargets.clear();
333
- this.surfacedInstructionDirs.clear();
334
- this.nativeInstructionPaths.clear();
403
+ this.#surfacedInstructionDirs.clear();
404
+ this.#nativeInstructionPaths.clear();
405
+ this.#sentinelSnapshot.clear();
406
+ this.#lspController = null;
407
+ this.#projectTrusted = false;
335
408
  }
336
409
  }
337
410
 
@@ -359,47 +432,3 @@ function extractInstructionDirectories(entry: SessionEntry): string[] {
359
432
  .map((file) => file.directory)
360
433
  .filter((directory): directory is string => typeof directory === "string");
361
434
  }
362
-
363
- // ── Standalone target-id expansion helper ─────────────────────────────
364
-
365
- /**
366
- * Expand an optional targetId into anchored file/line/character params
367
- * using the given session's store.
368
- *
369
- * Exported separately so executors that already hold a session ref
370
- * can call it directly, without going through an ad-hoc session factory.
371
- */
372
- export function expandSessionTargetId(
373
- session: WorkspaceCodeIntelligenceSession,
374
- params: {
375
- targetId?: string;
376
- file?: string;
377
- line?: number;
378
- character?: number;
379
- symbol?: string;
380
- },
381
- ): TargetIdExpansionResult {
382
- const targetId = params.targetId;
383
- if (targetId === undefined || targetId === null) {
384
- return { kind: "not-provided" };
385
- }
386
-
387
- const result = session.lookupTargetEntry(targetId);
388
- if (result.kind === "unavailable") {
389
- return {
390
- kind: "error",
391
- message: `**Error:** ${result.reason}`,
392
- };
393
- }
394
-
395
- const { entry } = result;
396
- return {
397
- kind: "ok",
398
- file: entry.file,
399
- line: entry.displayLine,
400
- character: entry.displayCharacter,
401
- targetName: entry.name,
402
- targetKind: entry.kind,
403
- entry,
404
- };
405
- }
@@ -0,0 +1,60 @@
1
+ import { canonicalDeclarationKind } from "../analysis/target/identity.ts";
2
+ import type { TargetOutcome } from "../analysis/target/types.ts";
3
+ import type {
4
+ AnchorKind,
5
+ TargetRegistrationInput,
6
+ TargetRegistrationOutput,
7
+ } from "./target-store.ts";
8
+
9
+ /** Registered candidate returned when target selection remains unresolved. */
10
+ export interface TargetWorkflowCandidate {
11
+ readonly targetId: string;
12
+ readonly name: string;
13
+ readonly kind: string | null;
14
+ readonly container: string | null;
15
+ readonly file: string;
16
+ readonly line: number;
17
+ readonly character: number;
18
+ readonly rank: number;
19
+ readonly anchorKind: AnchorKind;
20
+ }
21
+
22
+ /** Materialize only the bounded candidates already selected by the resolver. */
23
+ export function registerTargetCandidates(
24
+ candidates: Extract<TargetOutcome, { kind: "disambiguation" | "kind-mismatch" }>["candidates"],
25
+ registerTarget: (input: TargetRegistrationInput) => TargetRegistrationOutput,
26
+ ): ReadonlyArray<TargetWorkflowCandidate> {
27
+ return Object.freeze(
28
+ candidates.map((candidate) => {
29
+ const registered = registerTarget({
30
+ file: candidate.file,
31
+ position: { line: candidate.line - 1, character: candidate.character - 1 },
32
+ declarationPosition: {
33
+ line: candidate.declarationAnchor.line - 1,
34
+ character: candidate.declarationAnchor.character - 1,
35
+ },
36
+ declarationOccurrence: candidate.declarationOccurrence,
37
+ displayLine: candidate.line,
38
+ displayCharacter: candidate.character,
39
+ name: candidate.name,
40
+ kind: candidate.kind,
41
+ identityKind: candidate.identityKind ?? canonicalDeclarationKind(candidate.kind),
42
+ confidence: "semantic",
43
+ provenance: candidate.provenance ?? ["semantic"],
44
+ anchorKind: candidate.anchorKind,
45
+ container: candidate.container,
46
+ });
47
+ return Object.freeze({
48
+ targetId: registered.targetId,
49
+ name: candidate.name,
50
+ kind: candidate.kind,
51
+ container: candidate.container,
52
+ file: candidate.file,
53
+ line: candidate.line,
54
+ character: candidate.character,
55
+ rank: candidate.rank,
56
+ anchorKind: candidate.anchorKind,
57
+ });
58
+ }),
59
+ );
60
+ }