@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
@@ -4,9 +4,9 @@
4
4
 
5
5
  import type { Theme } from "@earendil-works/pi-coding-agent";
6
6
  import { Container, Spacer, Text } from "@earendil-works/pi-tui";
7
- import { formatEvidenceBadge } from "@mrclrchtr/supi-code-runtime/api";
8
7
  import {
9
8
  type EvidenceEntry,
9
+ formatEvidenceEntry,
10
10
  type ResultOptios,
11
11
  renderEvidenceLines,
12
12
  renderMarkdownDetail,
@@ -14,12 +14,18 @@ import {
14
14
  type ToolResult,
15
15
  } from "../../ui/tui/common.ts";
16
16
  import type { CodeHealthToolParams } from "./execute.ts";
17
+ import { formatSemanticHealthState, readSemanticHealthState } from "./semantic-state.ts";
17
18
 
18
19
  /** ── renderCall ────────────────────────────────────────────────── */
19
20
 
20
21
  export function renderHealthCall(args: unknown, theme: Theme, _context: unknown): Text {
21
22
  const params = (args ?? {}) as CodeHealthToolParams;
22
- const sections = params.include?.length ? params.include.join(", ") : "diag, servers";
23
+ const sections =
24
+ params.include === undefined
25
+ ? "diag, servers"
26
+ : params.include.length > 0
27
+ ? params.include.join(", ")
28
+ : "none";
23
29
 
24
30
  let content = theme.fg("toolTitle", "code_health");
25
31
  content += ` ${theme.fg("accent", sections)}`;
@@ -59,8 +65,16 @@ export function renderHealthResult(
59
65
 
60
66
  // Expanded view
61
67
  container.addChild(buildStatusBar(data, theme));
68
+ const capabilityWarnings = readCapabilityWarnings(data);
69
+ if (capabilityWarnings.length > 0) {
70
+ container.addChild(new Spacer(1));
71
+ container.addChild(buildCapabilityWarnings(capabilityWarnings, theme));
72
+ }
62
73
  container.addChild(new Spacer(1));
63
74
  container.addChild(buildDiagnosticSummary(data, theme));
75
+ const diagnosticEntries = buildDiagnosticEntries(data, theme);
76
+ if (diagnosticEntries) container.addChild(diagnosticEntries);
77
+ container.addChild(buildHealthSectionSummary(data, theme));
64
78
 
65
79
  const lists = data?.evidenceLists as EvidenceEntry[] | undefined;
66
80
  if (lists && lists.length > 0) {
@@ -75,63 +89,275 @@ export function renderHealthResult(
75
89
 
76
90
  /** ── Helpers ───────────────────────────────────────────────────── */
77
91
 
92
+ interface HealthSectionSummary {
93
+ key: string;
94
+ status: "complete" | "partial" | "unavailable";
95
+ itemCount: number;
96
+ available: boolean;
97
+ }
98
+
78
99
  function buildCompactSummary(data: Record<string, unknown> | null, theme: Theme): Text {
79
- if (!data) {
100
+ const sections = readHealthSections(data);
101
+ if (sections.length === 0) {
80
102
  return new Text(theme.fg("dim", "No health data"), 0, 0);
81
103
  }
82
104
 
83
- const diagCount = (data.diagnosticFileCount as number) ?? 0;
84
- const serverCount = (data.serverCount as number) ?? 0;
85
- const lspStatus = (data.lspStatus as string) ?? "unknown";
105
+ const semanticRequested = sections.some(
106
+ (section) => section.key === "diagnostics" || section.key === "servers",
107
+ );
108
+ const segments = sections.map((section) => formatSectionSummary(section, undefined, theme));
109
+ if (semanticRequested) {
110
+ const semanticStatus = readSemanticStatus(data);
111
+ const statusColor = semanticStatus.startsWith("ready") ? "success" : "warning";
112
+ segments.push(`${theme.fg("dim", "lsp")} ${theme.fg(statusColor, semanticStatus)}`);
113
+ }
114
+ const capabilityWarningCount = readCapabilityWarnings(data).length;
115
+ if (capabilityWarningCount > 0) {
116
+ const label = capabilityWarningCount === 1 ? "capability warning" : "capability warnings";
117
+ segments.push(theme.fg("warning", `${capabilityWarningCount} ${label}`));
118
+ }
86
119
 
87
- const statusColor = lspStatus === "ready" ? "success" : "warning";
88
120
  const dot = theme.fg("dim", "·");
121
+ return new Text(segments.join(` ${dot} `), 0, 0);
122
+ }
89
123
 
90
- const segments = [
91
- `${theme.fg("dim", "diag")} ${theme.fg("success", theme.bold(`${diagCount}`))}${theme.fg("muted", " with issues")}`,
92
- `${theme.fg("dim", "servers")} ${theme.fg("muted", `${serverCount}`)}`,
93
- `${theme.fg("dim", "lsp")} ${theme.fg(statusColor, lspStatus)}`,
94
- ];
124
+ function formatSectionSummary(
125
+ section: HealthSectionSummary,
126
+ evidence: EvidenceEntry | undefined,
127
+ theme: Theme,
128
+ ): string {
129
+ const label = sectionLabel(section.key);
130
+ if (section.status === "unavailable" || !section.available) {
131
+ return `${theme.fg("dim", label)} ${theme.fg("warning", "unavailable")}`;
132
+ }
133
+ if (section.status === "partial") {
134
+ return `${theme.fg("dim", label)} ${theme.fg("warning", "partial")}`;
135
+ }
136
+ if (evidence) return theme.fg("success", theme.bold(formatEvidenceEntry(evidence)));
95
137
 
96
- return new Text(segments.join(` ${dot} `), 0, 0);
138
+ const suffix = section.key === "diagnostics" ? " with issues" : "";
139
+ return `${theme.fg("dim", label)} ${theme.fg("success", theme.bold(`${section.itemCount}`))}${theme.fg("muted", suffix)}`;
97
140
  }
98
141
 
99
142
  function buildStatusBar(data: Record<string, unknown> | null, theme: Theme): Text {
100
- if (!data) return new Text("", 0, 0);
143
+ const sections = readHealthSections(data);
144
+ const semanticRequested = sections.some(
145
+ (section) => section.key === "diagnostics" || section.key === "servers",
146
+ );
147
+ if (!data || !semanticRequested) return new Text("", 0, 0);
101
148
 
102
- const lspStatus = (data.lspStatus as string) ?? "unknown";
103
- const structuralStatus = (data.structuralStatus as string) ?? "unknown";
104
- const recovered = data.recovered;
149
+ const semanticStatus = readSemanticStatus(data);
150
+ const structuralStatus = readString(data, "structuralStatus");
151
+ const refreshStatus = readRefreshStatus(data);
105
152
 
106
- const lspColor = lspStatus.startsWith("ready") ? "success" : "warning";
153
+ const lspColor = semanticStatus.startsWith("ready") ? "success" : "warning";
107
154
  const structuralColor = structuralStatus === "ready" ? "success" : "muted";
108
155
 
109
- const lspLabel =
110
- lspStatus.includes("(recovered)") || !recovered ? lspStatus : `${lspStatus} (recovered)`;
111
-
112
- const lines: string[] = [
113
- `LSP: ${theme.fg(lspColor, lspLabel)}`,
114
- `Tree-sitter: ${theme.fg(structuralColor, structuralStatus)}`,
115
- ];
156
+ const lines: string[] = [`LSP: ${theme.fg(lspColor, semanticStatus)}`];
157
+ if (structuralStatus) {
158
+ lines.push(`Tree-sitter: ${theme.fg(structuralColor, structuralStatus)}`);
159
+ }
160
+ if (refreshStatus) lines.push(`Diagnostics: ${theme.fg("dim", refreshStatus)}`);
116
161
 
117
162
  return new Text(lines.join(" "), 0, 0);
118
163
  }
119
164
 
165
+ function readRefreshStatus(data: Record<string, unknown> | null): string | null {
166
+ const refresh = readRecord(data?.refresh);
167
+ if (!refresh) return null;
168
+
169
+ switch (refresh.kind) {
170
+ case "completed": {
171
+ const attempted = readNumber(refresh.attemptedActiveClients);
172
+ const restarted = readNumber(refresh.restartedClients);
173
+ const stale = readRecord(refresh.staleAssessment);
174
+ const noOp = attempted === 0 && restarted === 0;
175
+ const base = noOp
176
+ ? "refresh completed no-op"
177
+ : `refresh completed: ${attempted} clients targeted, ${restarted} restarted`;
178
+ return stale?.suspected === true
179
+ ? `${base}; stale pattern suspected in ${readNumber(stale.matchedFileCount)} files`
180
+ : base;
181
+ }
182
+ case "failed":
183
+ return `refresh failed${typeof refresh.reason === "string" ? `: ${refresh.reason}` : ""}`;
184
+ case "not-attempted":
185
+ return "refresh not attempted";
186
+ default:
187
+ return null;
188
+ }
189
+ }
190
+
191
+ function diagnosticEmptySummary(data: Record<string, unknown> | null): string {
192
+ return diagnosticScopeKind(data) === "file"
193
+ ? "No errors or warnings for file"
194
+ : "No reported issues in tracked files";
195
+ }
196
+
197
+ function diagnosticScopeKind(data: Record<string, unknown> | null): string | null {
198
+ const observation = readRecord(data?.diagnosticObservation);
199
+ const scope = readRecord(observation?.scope);
200
+ return typeof scope?.kind === "string" ? scope.kind : null;
201
+ }
202
+
203
+ function readRecord(value: unknown): Record<string, unknown> | null {
204
+ return typeof value === "object" && value !== null ? (value as Record<string, unknown>) : null;
205
+ }
206
+
207
+ function readNumber(value: unknown): number {
208
+ return typeof value === "number" ? value : 0;
209
+ }
210
+
211
+ interface RenderedCapabilityWarning {
212
+ message: string;
213
+ language?: string;
214
+ detail?: string;
215
+ }
216
+
217
+ function buildCapabilityWarnings(
218
+ warnings: readonly RenderedCapabilityWarning[],
219
+ theme: Theme,
220
+ ): Text {
221
+ const lines = [theme.fg("warning", theme.bold("Capability Warnings"))];
222
+ for (const warning of warnings) {
223
+ const language = warning.language ? `[${warning.language}] ` : "";
224
+ const detail = warning.detail ? ` — ${warning.detail}` : "";
225
+ lines.push(`${theme.fg("warning", "⚠")} ${language}${warning.message}${detail}`);
226
+ }
227
+ return new Text(lines.join("\n"), 0, 0);
228
+ }
229
+
230
+ function readCapabilityWarnings(data: Record<string, unknown> | null): RenderedCapabilityWarning[] {
231
+ const report = data?.capabilityWarnings;
232
+ if (typeof report !== "object" || report === null) return [];
233
+ const warnings = (report as Record<string, unknown>).warnings;
234
+ if (!Array.isArray(warnings)) return [];
235
+ return warnings.flatMap((warning) => {
236
+ if (typeof warning !== "object" || warning === null) return [];
237
+ const record = warning as Record<string, unknown>;
238
+ if (typeof record.message !== "string") return [];
239
+ return [
240
+ {
241
+ message: record.message,
242
+ ...(typeof record.language === "string" ? { language: record.language } : {}),
243
+ ...(typeof record.detail === "string" ? { detail: record.detail } : {}),
244
+ },
245
+ ];
246
+ });
247
+ }
248
+
249
+ function buildHealthSectionSummary(data: Record<string, unknown> | null, theme: Theme): Text {
250
+ const sections = readHealthSections(data).filter((section) => section.key !== "diagnostics");
251
+ if (sections.length === 0) return new Text("", 0, 0);
252
+
253
+ const lines = sections.map((section) => {
254
+ const label = section.key === "servers" ? "servers (workspace)" : sectionLabel(section.key);
255
+ if (section.status === "unavailable" || !section.available) {
256
+ return `${label} unavailable`;
257
+ }
258
+ return `${label} ${section.itemCount}`;
259
+ });
260
+ return new Text(theme.fg("muted", lines.join(" ")), 0, 0);
261
+ }
262
+
120
263
  function buildDiagnosticSummary(data: Record<string, unknown> | null, theme: Theme): Text {
121
- if (!data) return new Text("", 0, 0);
264
+ const section = readHealthSections(data).find((entry) => entry.key === "diagnostics");
265
+ if (!section) return new Text("", 0, 0);
266
+ if (section.status === "unavailable" || !section.available) {
267
+ return new Text(theme.fg("warning", "Diagnostics unavailable"), 0, 0);
268
+ }
269
+ const trackedFiles = diagnosticScopeKind(data) === "tracked-files";
270
+ if (section.status === "partial") {
271
+ return new Text(
272
+ theme.fg(
273
+ "warning",
274
+ trackedFiles ? "Tracked-file diagnostics partial" : "Diagnostics partial",
275
+ ),
276
+ 0,
277
+ 0,
278
+ );
279
+ }
280
+ if (section.itemCount === 0) {
281
+ return new Text(theme.fg("success", diagnosticEmptySummary(data)), 0, 0);
282
+ }
283
+
284
+ const fileLabel = `${trackedFiles ? "tracked " : ""}${section.itemCount === 1 ? "file" : "files"}`;
285
+ return new Text(
286
+ theme.fg("warning", theme.bold(`${section.itemCount} ${fileLabel} with issues`)),
287
+ 0,
288
+ 0,
289
+ );
290
+ }
122
291
 
123
- const diagCount = (data.diagnosticFileCount as number) ?? 0;
124
- if (diagCount === 0) {
125
- return new Text(theme.fg("success", "No diagnostics found"), 0, 0);
292
+ /** Render per-file diagnostic messages in expanded detailed mode. */
293
+ function buildDiagnosticEntries(data: Record<string, unknown> | null, theme: Theme): Text | null {
294
+ const observation = readRecord(data?.diagnosticObservation);
295
+ const entries = observation?.entries;
296
+ if (!Array.isArray(entries) || entries.length === 0) return null;
297
+
298
+ const lines: string[] = [];
299
+ for (const raw of entries) {
300
+ const entry = readRecord(raw);
301
+ if (!entry || !Array.isArray(entry.messages) || entry.messages.length === 0) continue;
302
+ lines.push(theme.fg("dim", ` ${typeof entry.file === "string" ? entry.file : ""}`));
303
+ for (const rawMsg of entry.messages) {
304
+ const formatted = formatDiagnosticMessage(readRecord(rawMsg), theme);
305
+ if (formatted) lines.push(formatted);
306
+ }
126
307
  }
127
308
 
128
- const badge = formatEvidenceBadge({
129
- shownCount: diagCount,
130
- totalCount: diagCount,
131
- omittedCount: 0,
132
- partialReason: null,
133
- label: "files with issues",
309
+ return lines.length > 0 ? new Text(lines.join("\n"), 0, 0) : null;
310
+ }
311
+
312
+ function formatDiagnosticMessage(msg: Record<string, unknown> | null, theme: Theme): string | null {
313
+ if (!msg || typeof msg.message !== "string") return null;
314
+ const line = typeof msg.line === "number" ? `L${msg.line} ` : "";
315
+ const isError = msg.severity === "error";
316
+ const color = isError ? "error" : "warning";
317
+ const icon = isError ? "✖" : "⚠";
318
+ const source = typeof msg.source === "string" ? ` [${msg.source}]` : "";
319
+ return ` ${theme.fg(color, `${icon} ${line}${msg.severity}${source}`)}: ${msg.message}`;
320
+ }
321
+
322
+ function readHealthSections(data: Record<string, unknown> | null): HealthSectionSummary[] {
323
+ const value = data?.sections;
324
+ if (!Array.isArray(value)) return [];
325
+
326
+ return value.flatMap((entry) => {
327
+ if (typeof entry !== "object" || entry === null) return [];
328
+ const record = entry as Record<string, unknown>;
329
+ const rawKey = typeof record.key === "string" ? record.key : "";
330
+ const key = rawKey.startsWith("health.") ? rawKey.slice("health.".length) : rawKey;
331
+ if (!key) return [];
332
+ return [
333
+ {
334
+ key,
335
+ status: isSectionStatus(record.status) ? record.status : "unavailable",
336
+ itemCount: typeof record.itemCount === "number" ? record.itemCount : 0,
337
+ available: record.available === true,
338
+ },
339
+ ];
134
340
  });
341
+ }
342
+
343
+ function isSectionStatus(value: unknown): value is HealthSectionSummary["status"] {
344
+ return value === "complete" || value === "partial" || value === "unavailable";
345
+ }
346
+
347
+ function readSemanticStatus(data: Record<string, unknown> | null): string {
348
+ return formatSemanticHealthState(readSemanticHealthState(data?.semanticState));
349
+ }
350
+
351
+ function readString(data: Record<string, unknown> | null, key: string): string | null {
352
+ const value = data?.[key];
353
+ return typeof value === "string" ? value : null;
354
+ }
355
+
356
+ const SECTION_LABELS: Record<string, string> = {
357
+ diagnostics: "diag",
358
+ servers: "servers",
359
+ };
135
360
 
136
- return new Text(theme.fg("warning", theme.bold(badge)), 0, 0);
361
+ function sectionLabel(key: string): string {
362
+ return SECTION_LABELS[key] ?? key;
137
363
  }
@@ -8,13 +8,11 @@
8
8
  export {
9
9
  contextErrorResult,
10
10
  healthErrorResult,
11
- impactErrorResult,
12
11
  inspectErrorResult,
13
12
  resolveErrorResult,
14
13
  searchErrorResult,
15
14
  unavailableContextDetails,
16
15
  unavailableHealthDetails,
17
- unavailableImpactDetails,
18
16
  unavailableInspectDetails,
19
17
  unavailableResolveDetails,
20
18
  unavailableSearchDetails,
@@ -3,8 +3,8 @@ import type { AgentToolUpdateCallback } from "@earendil-works/pi-coding-agent";
3
3
  /**
4
4
  * Emit a coarse progress beat to the agent runtime via `onUpdate`.
5
5
  *
6
- * Long-running code-intelligence executors (code_find ripgrep, code_impact
7
- * sweeps, code_graph `relations:["all"]`, code_health `refresh`, and
6
+ * Long-running code-intelligence executors (code_find AST Scan,
7
+ * code_graph `relations:["all"]`, code_health `refresh`, and
8
8
  * code_refactor_plan LSP requests) call this at a few natural checkpoints —
9
9
  * a start beat plus a couple of progress beats — so the UI can show the tool
10
10
  * is working. Beats must stay coarse: not chatty.
@@ -0,0 +1,11 @@
1
+ import type { WorkflowControl } from "../../session/workflow-control.ts";
2
+ import type { CodeIntelToolExecCtx } from "../../types/index.ts";
3
+ import { emitToolProgress } from "./progress.ts";
4
+
5
+ /** Translate Pi execution controls into presentation-free session controls. */
6
+ export function toWorkflowControl(ctx: CodeIntelToolExecCtx): WorkflowControl {
7
+ return {
8
+ signal: ctx.signal,
9
+ progress: (event) => emitToolProgress(ctx.onUpdate, `${event.intent}: ${event.message}`),
10
+ };
11
+ }
@@ -1,76 +1,36 @@
1
- /**
2
- * Tool executor for code_inspect — factual point inspection.
3
- */
1
+ /** Thin Pi adapter for session-owned point inspection. */
4
2
 
3
+ import type { InspectWorkflowInput } from "../../session/inspect-types.ts";
4
+ import type { SourcePointInput } from "../../session/target-input.ts";
5
5
  import type { CodeIntelResult, CodeIntelToolExecCtx } from "../../types/index.ts";
6
- import { focusedToolRules } from "../infra/cross-field.ts";
7
6
  import { unavailableInspectDetails } from "../infra/error-results.ts";
8
- import { gateSemanticReadiness, runPipe, validateParams } from "../infra/pipeline.ts";
9
- import { renderSemanticReadinessTimeout } from "../infra/readiness-message.ts";
10
- import { executeInspect } from "./orchestrate.ts";
7
+ import { toWorkflowControl } from "../infra/workflow-control.ts";
8
+ import { assembleInspectResult } from "../result/inspect.ts";
9
+ import { renderInspectResult } from "./markdown.ts";
11
10
 
12
11
  export interface CodeInspectToolParams {
13
- file: string;
14
- line: number;
15
- character: number;
12
+ point: SourcePointInput;
16
13
  maxResults?: number;
17
14
  }
18
15
 
19
16
  export async function executeInspectTool(
20
- params: Partial<CodeInspectToolParams>,
17
+ params: CodeInspectToolParams,
21
18
  ctx: CodeIntelToolExecCtx,
22
19
  ): Promise<CodeIntelResult> {
23
- return runPipe(
24
- params,
25
- ctx,
26
- [
27
- validateParams(focusedToolRules(), (msg) => ({
28
- content: msg,
29
- details: unavailableInspectDetails("validation error", [
30
- "Provide `file`, `line`, and `character` for point inspection",
31
- ]),
32
- })),
33
- gateSemanticReadiness("code_inspect", {
34
- fileParam: "file",
35
- onTimeout: () => ({
36
- content: renderSemanticReadinessTimeout("code_inspect", 15_000),
37
- details: unavailableInspectDetails("timeout", ["Retry shortly or check `code_health`"]),
38
- }),
39
- // Unavailable LSP passes through — the use-case layer renders
40
- // explicit unavailable-section notes.
41
- passThroughOnUnavailable: true,
42
- }),
43
- ],
44
- async (p, c) => {
45
- if (!p.file || p.line == null || p.character == null) {
46
- return {
47
- content: "**Error:** `code_inspect` requires `file`, `line`, and `character`.",
48
- details: unavailableInspectDetails("missing coordinates", [
49
- "Provide `file`, `line`, and `character` for point inspection",
50
- ]),
51
- };
52
- }
20
+ const outcome = await ctx.session.inspect(params as InspectWorkflowInput, toWorkflowControl(ctx));
21
+ if (outcome.kind === "unavailable") throw new Error(outcome.reason);
22
+ if (outcome.kind === "invalid-input") {
23
+ return {
24
+ content: `**Error:** ${outcome.message}`,
25
+ details: unavailableInspectDetails("invalid input", [
26
+ "Provide an existing file and exact 1-based point",
27
+ ]),
28
+ };
29
+ }
53
30
 
54
- const providerState = c.session.getProviders();
55
- const provider = providerState.kind === "ready" ? providerState.provider : null;
56
- const lspService =
57
- providerState.kind === "ready"
58
- ? providerState.lspService
59
- : { kind: "unavailable" as const, reason: "No provider" };
60
-
61
- // Let unavailable pass through — the use-case layer handles missing
62
- // providers with explicit unavailable-section notes.
63
- const result = await executeInspect(
64
- {
65
- file: p.file,
66
- line: p.line,
67
- character: p.character,
68
- maxResults: p.maxResults,
69
- },
70
- { provider, cwd: c.cwd, lspService },
71
- );
72
-
73
- return { content: result.content, details: { type: "inspect", data: result.details } };
74
- },
75
- );
31
+ const assembly = assembleInspectResult(outcome.data, outcome.nextQueries);
32
+ return {
33
+ content: renderInspectResult(assembly),
34
+ details: { type: "inspect", data: assembly.details },
35
+ };
76
36
  }