@mrclrchtr/supi-code-intelligence 1.7.0 → 1.8.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 (307) hide show
  1. package/README.md +13 -2
  2. package/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  3. package/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  4. package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  5. package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  6. package/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  7. package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  8. package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  9. package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  10. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  11. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  14. package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
  15. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  16. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
  73. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  74. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  75. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  76. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
  77. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  78. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  79. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  80. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  81. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  82. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  83. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  84. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  85. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  86. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  87. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  88. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  89. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  90. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  91. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  92. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  93. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  94. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  95. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  96. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  97. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  98. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  99. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  100. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  101. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  102. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  103. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  104. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  105. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  106. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  107. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  108. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  109. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  169. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  170. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  171. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  172. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  173. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  174. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  175. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  176. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  177. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  178. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  179. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  180. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  181. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  182. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  183. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
  184. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  185. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
  186. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
  187. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  188. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  189. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
  190. package/node_modules/@mrclrchtr/{supi-tree-sitter/node_modules/web-tree-sitter/LICENSE → supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt} +16 -6
  191. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
  192. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
  193. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  194. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  195. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  196. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  197. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  198. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
  199. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  200. package/node_modules/@mrclrchtr/supi-lsp/package.json +2 -2
  201. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
  202. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
  203. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
  204. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
  205. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
  206. package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
  207. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
  208. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
  209. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
  210. package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
  211. package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
  212. package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
  213. package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +5 -14
  214. package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
  215. package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
  216. package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
  217. package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
  218. package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
  219. package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
  220. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
  221. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  222. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  223. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  224. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  225. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  226. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  227. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  228. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  229. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  230. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  231. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  232. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  233. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
  234. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
  235. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
  236. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
  237. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
  238. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
  239. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
  240. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
  241. package/package.json +4 -4
  242. package/src/api.ts +15 -0
  243. package/src/architecture.ts +1 -1
  244. package/src/brief.ts +9 -53
  245. package/src/code-intelligence.ts +6 -2
  246. package/src/index.ts +15 -0
  247. package/src/pattern-structured.ts +26 -26
  248. package/src/presentation/markdown/affected.ts +170 -0
  249. package/src/presentation/markdown/brief.ts +174 -0
  250. package/src/presentation/markdown/map.ts +54 -0
  251. package/src/presentation/markdown/overview.ts +59 -0
  252. package/src/presentation/markdown/pattern.ts +239 -0
  253. package/src/presentation/markdown/relations.ts +121 -0
  254. package/src/prioritization-signals.ts +1 -1
  255. package/src/resolve-target.ts +58 -40
  256. package/src/search-helpers.ts +17 -4
  257. package/src/substrates/lsp-adapter.ts +197 -0
  258. package/src/substrates/tree-sitter-adapter.ts +173 -0
  259. package/src/substrates/types.ts +113 -0
  260. package/src/target-resolution.ts +35 -416
  261. package/src/targeting/query.ts +60 -0
  262. package/src/targeting/resolve-anchored.ts +80 -0
  263. package/src/targeting/resolve-file.ts +197 -0
  264. package/src/targeting/resolve-symbol.ts +110 -0
  265. package/src/targeting/types.ts +111 -0
  266. package/src/tool/execute-affected.ts +3 -3
  267. package/src/tool/execute-brief.ts +29 -3
  268. package/src/tool/execute-map.ts +5 -2
  269. package/src/tool/execute-pattern.ts +5 -3
  270. package/src/tool/execute-relations.ts +15 -23
  271. package/src/tool/guidance.ts +30 -1
  272. package/src/tool/tool-specs.ts +29 -48
  273. package/src/use-case/build-overview.ts +36 -0
  274. package/src/use-case/generate-affected.ts +279 -0
  275. package/src/use-case/generate-brief.ts +324 -0
  276. package/src/{actions/map-action.ts → use-case/generate-map.ts} +30 -60
  277. package/src/use-case/generate-pattern.ts +270 -0
  278. package/src/use-case/generate-relations.ts +392 -0
  279. package/src/use-case/support/semantic-references.ts +114 -0
  280. package/src/use-case/types.ts +43 -0
  281. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/README.md +0 -265
  282. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs +0 -4661
  283. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs.map +0 -7
  284. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js +0 -4605
  285. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js.map +0 -7
  286. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm +0 -0
  287. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm.map +0 -57
  288. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/package.json +0 -100
  289. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs +0 -4063
  290. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs.map +0 -7
  291. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts +0 -1025
  292. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts.map +0 -58
  293. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts +0 -1025
  294. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +0 -58
  295. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js +0 -4007
  296. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js.map +0 -7
  297. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm +0 -0
  298. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm.map +0 -55
  299. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
  300. package/src/actions/affected-action.ts +0 -452
  301. package/src/actions/brief-action.ts +0 -378
  302. package/src/actions/callees-action.ts +0 -155
  303. package/src/actions/callers-action.ts +0 -253
  304. package/src/actions/implementations-action.ts +0 -172
  305. package/src/actions/pattern-action.ts +0 -392
  306. package/src/providers/semantic-provider.ts +0 -34
  307. package/src/providers/structural-provider.ts +0 -26
@@ -0,0 +1,239 @@
1
+ // Pattern search markdown renderer — all formatting for literal, regex, and structured search results.
2
+
3
+ import type { StructuredMatch, StructuredPatternResult } from "../../pattern-structured.ts";
4
+ import type { RgMatch } from "../../search-helpers.ts";
5
+ import { groupByFile } from "../../search-helpers.ts";
6
+ import type { StructuralSubstrate } from "../../substrates/types.ts";
7
+
8
+ // ── Structured search formatting ─────────────────────────────────────
9
+
10
+ // biome-ignore lint/complexity/useMaxParams: structured empty-state with optional result parameter keeps partial-warning logic together
11
+ export function renderStructuredEmptyState(
12
+ pattern: string,
13
+ kind: "definition" | "export" | "import",
14
+ relScope: string,
15
+ _structural?: StructuralSubstrate,
16
+ result?: StructuredPatternResult,
17
+ ): string {
18
+ const lines = [`No ${kind} matches found for \`${pattern}\` in \`${relScope}\`.`];
19
+ if (result && result.omittedCount > 0 && result.partialReason) {
20
+ lines.push("");
21
+ if (result.partialReason === "timeout") {
22
+ lines.push(
23
+ `_Partial structured results — scan timed out with +${result.omittedCount} file${result.omittedCount !== 1 ? "s" : ""} omitted. Narrow \`path\` or \`pattern\` for complete coverage._`,
24
+ );
25
+ } else {
26
+ lines.push(
27
+ `_Partial structured results — +${result.omittedCount} file${result.omittedCount !== 1 ? "s" : ""} omitted after reaching the structured scan cap. Narrow \`path\` or \`pattern\` for complete coverage._`,
28
+ );
29
+ }
30
+ }
31
+ return lines.join("\n");
32
+ }
33
+
34
+ export function renderStructuredMatches(
35
+ pattern: string,
36
+ kind: "definition" | "export" | "import",
37
+ relScope: string,
38
+ result: StructuredPatternResult,
39
+ ): string {
40
+ const grouped = new Map<string, StructuredMatch[]>();
41
+ for (const match of result.matches) {
42
+ const group = grouped.get(match.file) ?? [];
43
+ group.push(match);
44
+ grouped.set(match.file, group);
45
+ }
46
+
47
+ const kindLabel =
48
+ kind === "definition" ? "Definitions" : kind === "export" ? "Exports" : "Imports";
49
+ const lines: string[] = [];
50
+ lines.push(`# Pattern ${kindLabel}: \`${pattern}\``);
51
+ lines.push("");
52
+ lines.push(
53
+ `**${result.matches.length} match${result.matches.length !== 1 ? "es" : ""}** across **${grouped.size} file${grouped.size !== 1 ? "s" : ""}** in \`${relScope}\``,
54
+ );
55
+ const partialWarning = formatPartialStructuredWarning(result);
56
+ if (partialWarning) {
57
+ lines.push(partialWarning);
58
+ }
59
+ lines.push("");
60
+
61
+ if (kind === "definition" || kind === "export") {
62
+ addDuplicateSummary(lines, result.matches);
63
+ }
64
+
65
+ for (const [file, fileMatches] of grouped) {
66
+ lines.push(`### ${file}`);
67
+ for (const match of fileMatches.slice(0, 8)) {
68
+ lines.push(`- \`${match.name}\` (${match.kind}) L${match.line}`);
69
+ }
70
+ if (fileMatches.length > 8) {
71
+ lines.push(`- _+${fileMatches.length - 8} more in this file_`);
72
+ }
73
+ lines.push("");
74
+ }
75
+
76
+ return lines.join("\n");
77
+ }
78
+
79
+ function formatPartialStructuredWarning(result: StructuredPatternResult): string | null {
80
+ if (!result.partialReason || result.omittedCount <= 0) return null;
81
+
82
+ if (result.partialReason === "timeout") {
83
+ return `_Partial structured results — scan timed out with +${result.omittedCount} file${result.omittedCount !== 1 ? "s" : ""} omitted. Narrow \`path\` or \`pattern\` for complete coverage._`;
84
+ }
85
+
86
+ return `_Partial structured results — +${result.omittedCount} file${result.omittedCount !== 1 ? "s" : ""} omitted after reaching the structured scan cap. Narrow \`path\` or \`pattern\` for complete coverage._`;
87
+ }
88
+
89
+ function addDuplicateSummary(lines: string[], matches: StructuredMatch[]): void {
90
+ const byName = new Map<string, Set<string>>();
91
+ for (const match of matches) {
92
+ const files = byName.get(match.name) ?? new Set<string>();
93
+ files.add(match.file);
94
+ byName.set(match.name, files);
95
+ }
96
+
97
+ const duplicates = [...byName.entries()]
98
+ .map(([name, files]) => ({ name, files: [...files].sort((a, b) => a.localeCompare(b)) }))
99
+ .filter((entry) => entry.files.length > 1)
100
+ .sort((a, b) => b.files.length - a.files.length || a.name.localeCompare(b.name));
101
+
102
+ if (duplicates.length === 0) return;
103
+
104
+ lines.push("## Duplicate Definitions");
105
+ for (const duplicate of duplicates.slice(0, 8)) {
106
+ lines.push(
107
+ `- \`${duplicate.name}\` — defined in ${duplicate.files.length} files: ${duplicate.files
108
+ .map((file) => `\`${file}\``)
109
+ .join(", ")}`,
110
+ );
111
+ }
112
+ if (duplicates.length > 8) {
113
+ lines.push(`- _+${duplicates.length - 8} more duplicates_`);
114
+ }
115
+ lines.push("");
116
+ }
117
+
118
+ // ── Text search formatting ──────────────────────────────────────────
119
+
120
+ export function renderRegexError(pattern: string, error: string): string {
121
+ const errLines = error
122
+ .split("\n")
123
+ .map((line) => line.trim())
124
+ .filter(Boolean);
125
+ const detail =
126
+ [...errLines]
127
+ .reverse()
128
+ .find((line) => line.startsWith("error:"))
129
+ ?.replace(/^error:\s*/, "") ??
130
+ errLines.at(-1) ??
131
+ "ripgrep rejected the regex.";
132
+ return `**Error:** Invalid regex pattern \`${pattern}\`: ${detail}`;
133
+ }
134
+
135
+ export function renderPatternResults(
136
+ pattern: string,
137
+ relScope: string,
138
+ matches: RgMatch[],
139
+ maxResults: number,
140
+ ): string {
141
+ const lines: string[] = [];
142
+ lines.push(`# Pattern: \`${pattern}\``);
143
+ lines.push("");
144
+ lines.push(`**${matches.length} match${matches.length > 1 ? "es" : ""}** in \`${relScope}\``);
145
+ lines.push("");
146
+
147
+ const byFile = groupByFile(matches);
148
+ let shown = 0;
149
+ for (const [file, fileMatches] of byFile) {
150
+ if (shown >= maxResults) break;
151
+ lines.push(`### ${file}`);
152
+ const renderedLines = new Set<number>();
153
+ const matchLines = new Set(fileMatches.map((match) => match.line));
154
+ for (const m of fileMatches.slice(0, 5)) {
155
+ renderMatchWithContext(lines, m, renderedLines, matchLines, pattern);
156
+ }
157
+ if (fileMatches.length > 5) {
158
+ lines.push(`- _+${fileMatches.length - 5} more in this file_`);
159
+ }
160
+ lines.push("");
161
+ shown++;
162
+ }
163
+
164
+ if (byFile.size > maxResults) {
165
+ lines.push(
166
+ `_+${byFile.size - maxResults} more files omitted. Narrow \`path\` or increase \`maxResults\`._`,
167
+ );
168
+ }
169
+ lines.push("");
170
+ lines.push("_Text search — results may include comments, strings, or unrelated matches._");
171
+ lines.push("");
172
+
173
+ return lines.join("\n");
174
+ }
175
+
176
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: context-line rendering with before/after/skip logic is clearer as one function
177
+ // biome-ignore lint/complexity/useMaxParams: options-object refactor would reduce readability for this rendering helper
178
+ function renderMatchWithContext(
179
+ lines: string[],
180
+ m: RgMatch,
181
+ renderedLines: Set<number>,
182
+ matchLines: Set<number>,
183
+ _pattern: string,
184
+ ): void {
185
+ if (m.context) {
186
+ for (const c of m.context.filter((cx) => cx.line < m.line)) {
187
+ if (renderedLines.has(c.line) || matchLines.has(c.line)) continue;
188
+ lines.push(` L${c.line}: ${c.text.slice(0, 120)}`);
189
+ renderedLines.add(c.line);
190
+ }
191
+ }
192
+ if (!renderedLines.has(m.line)) {
193
+ lines.push(`- L${m.line}: \`${(m.text || "").slice(0, 120)}\``);
194
+ renderedLines.add(m.line);
195
+ }
196
+ if (m.context) {
197
+ for (const c of m.context.filter((cx) => cx.line > m.line)) {
198
+ if (renderedLines.has(c.line) || matchLines.has(c.line)) continue;
199
+ lines.push(` L${c.line}: ${c.text.slice(0, 120)}`);
200
+ renderedLines.add(c.line);
201
+ }
202
+ }
203
+ }
204
+
205
+ export function renderPatternSummary(
206
+ pattern: string,
207
+ relScope: string,
208
+ matches: RgMatch[],
209
+ maxResults: number,
210
+ ): string {
211
+ const byFile = groupByFile(matches);
212
+ const sorted = [...byFile.entries()].sort((a, b) => b[1].length - a[1].length);
213
+
214
+ const lines: string[] = [];
215
+ lines.push(`# Pattern Summary: \`${pattern}\``);
216
+ lines.push("");
217
+ lines.push(
218
+ `**${matches.length} match${matches.length > 1 ? "es" : ""}** across **${byFile.size} file${byFile.size > 1 ? "s" : ""}** in \`${relScope}\``,
219
+ );
220
+ lines.push("");
221
+
222
+ for (const [file, fileMatches] of sorted.slice(0, maxResults)) {
223
+ const lineNums = [...new Set(fileMatches.map((m) => m.line))].sort((a, b) => a - b).slice(0, 3);
224
+ const extra = fileMatches.length > 3 ? ` (+${fileMatches.length - 3} more)` : "";
225
+ const linesStr = lineNums.join(", ");
226
+ lines.push(
227
+ `- \`${file}\` — ${fileMatches.length} match${fileMatches.length > 1 ? "es" : ""}${linesStr ? ` at L${linesStr}` : ""}${extra}`,
228
+ );
229
+ }
230
+
231
+ if (sorted.length > maxResults) {
232
+ lines.push(`- _+${sorted.length - maxResults} more files omitted_`);
233
+ }
234
+ lines.push("");
235
+ lines.push("_Text search — results may include comments, strings, or unrelated matches._");
236
+ lines.push("");
237
+
238
+ return lines.join("\n");
239
+ }
@@ -0,0 +1,121 @@
1
+ // Relations markdown renderer — consumes use-case data and produces markdown content.
2
+
3
+ import { isInProjectPath, uriToFile } from "../../search-helpers.ts";
4
+ import type { ReferenceCollection } from "../../use-case/support/semantic-references.ts";
5
+ import { formatReferenceList } from "../../use-case/support/semantic-references.ts";
6
+
7
+ // ── Callers ──────────────────────────────────────────────────────────
8
+
9
+ export function renderCallersResult(
10
+ symbolName: string,
11
+ result: ReferenceCollection,
12
+ cwd: string,
13
+ maxResults: number,
14
+ ): string {
15
+ const lines: string[] = [];
16
+ lines.push(`# Callers of \`${symbolName}\``);
17
+ lines.push("");
18
+ lines.push(
19
+ `**${result.refs.length} reference${result.refs.length !== 1 ? "s" : ""}** (${result.confidence})`,
20
+ );
21
+ if (result.externalCount > 0) {
22
+ lines.push(
23
+ `_+${result.externalCount} external reference${result.externalCount !== 1 ? "s" : ""}_`,
24
+ );
25
+ }
26
+ lines.push("");
27
+
28
+ formatReferenceList(lines, result.refs, maxResults, cwd);
29
+ return lines.join("\n");
30
+ }
31
+
32
+ // ── Implementations ──────────────────────────────────────────────────
33
+
34
+ // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: implementation rendering with project/external splitting and formatting is clearer as one function
35
+ export function renderImplementationsResult(
36
+ locations: Array<{
37
+ uri?: string;
38
+ targetUri?: string;
39
+ range?: { start: { line: number } };
40
+ targetRange?: { start: { line: number } };
41
+ targetSelectionRange?: { start: { line: number } };
42
+ }>,
43
+ cwd: string,
44
+ maxResults: number,
45
+ ): string {
46
+ const projectLocs = locations.filter((loc) => {
47
+ const uri = loc.uri ?? loc.targetUri ?? "";
48
+ const filePath = uriToFile(uri);
49
+ return filePath && isInProjectPath(filePath, cwd);
50
+ });
51
+ const externalLocs = locations.filter((loc) => {
52
+ const uri = loc.uri ?? loc.targetUri ?? "";
53
+ const filePath = uriToFile(uri);
54
+ return !filePath || !isInProjectPath(filePath, cwd);
55
+ });
56
+
57
+ const lines: string[] = [];
58
+ lines.push("# Implementations (semantic)");
59
+ lines.push("");
60
+ if (projectLocs.length > 0) {
61
+ lines.push(
62
+ `**${projectLocs.length} implementation${projectLocs.length !== 1 ? "s" : ""}** in the project`,
63
+ );
64
+ lines.push("");
65
+ for (const loc of projectLocs.slice(0, maxResults)) {
66
+ const uri = loc.uri ?? loc.targetUri ?? "";
67
+ const filePath = uriToFile(uri);
68
+ const range = loc.targetSelectionRange ?? loc.targetRange ?? loc.range;
69
+ if (filePath && range) {
70
+ lines.push(`- \`${filePath}:${(range as { start: { line: number } }).start.line + 1}\``);
71
+ } else if (filePath) {
72
+ lines.push(`- \`${filePath}\``);
73
+ }
74
+ }
75
+ lines.push("");
76
+ }
77
+
78
+ if (externalLocs.length > 0) {
79
+ lines.push(
80
+ `_+${externalLocs.length} external location${externalLocs.length !== 1 ? "s" : ""} (outside this project)_`,
81
+ );
82
+ lines.push("");
83
+ }
84
+
85
+ lines.push(
86
+ "_Semantic analysis. Use `code_pattern` only when you explicitly want text-search hints for likely implementations._",
87
+ );
88
+ lines.push("");
89
+
90
+ return lines.join("\n");
91
+ }
92
+
93
+ // ── Callees ──────────────────────────────────────────────────────────
94
+
95
+ export function renderCalleesResult(
96
+ data: { enclosingScope: { name: string }; callees: Array<{ name: string; startLine: number }> },
97
+ relPath: string,
98
+ maxResults: number,
99
+ ): string {
100
+ const lines: string[] = [];
101
+ lines.push(`# Callees of \`${data.enclosingScope.name}\` (structural)`);
102
+ lines.push("");
103
+ lines.push(
104
+ `**${data.callees.length} outgoing call${data.callees.length > 1 ? "s" : ""}** from \`${data.enclosingScope.name}\` in \`${relPath}\``,
105
+ );
106
+ lines.push("");
107
+
108
+ const shown = data.callees.slice(0, maxResults);
109
+ for (const c of shown) {
110
+ lines.push(`- \`${c.name}\` (L${c.startLine})`);
111
+ }
112
+ if (data.callees.length > maxResults) {
113
+ lines.push(`- _+${data.callees.length - maxResults} more_`);
114
+ }
115
+ lines.push("");
116
+ lines.push(
117
+ "_Structural analysis — may include unresolved or qualified names. Use `lsp_hover` with `file`, `line`, and `character` for precise type information._",
118
+ );
119
+ lines.push("");
120
+ return lines.join("\n");
121
+ }
@@ -1,5 +1,5 @@
1
1
  import * as path from "node:path";
2
- import { readJsonFile } from "@mrclrchtr/supi-core/api";
2
+ import { readJsonFile } from "@mrclrchtr/supi-core/config";
3
3
  import { getSessionLspService } from "@mrclrchtr/supi-lsp/api";
4
4
 
5
5
  export interface PrioritySignalsSummary {
@@ -1,3 +1,12 @@
1
+ /**
2
+ * Action-facing target resolution — routes normalized queries and
3
+ * maps typed resolver outcomes to user-facing strings and legacy types.
4
+ *
5
+ * This is the thin orchestration layer between tool/action params and
6
+ * the typed targeting pipeline. Formatting of disambiguation/error
7
+ * outcomes happens here, at the action boundary.
8
+ */
9
+
1
10
  import type { CodeQueryParams as ActionParams } from "./query-params.ts";
2
11
  import {
3
12
  type ResolvedTarget,
@@ -6,32 +15,44 @@ import {
6
15
  resolveFileTargetGroup,
7
16
  resolveSymbolTarget,
8
17
  } from "./target-resolution.ts";
18
+ import { normalizeQuery } from "./targeting/query.ts";
19
+ import type { ResolverDeps, TargetOutcome } from "./targeting/types.ts";
9
20
 
10
21
  /**
11
- * Resolve a target from action params. Returns either a target, a file-level target group,
12
- * or a string error/disambiguation message to return directly.
22
+ * Resolve a target from action params.
23
+ *
24
+ * Returns either a {@link ResolvedTarget}, a {@link ResolvedTargetGroup},
25
+ * or a user-facing error/disambiguation string.
13
26
  */
14
27
  export async function resolveTarget(
15
28
  params: ActionParams,
16
29
  cwd: string,
30
+ semantic?: import("./substrates/types.ts").SemanticSubstrate,
17
31
  ): Promise<ResolvedTarget | ResolvedTargetGroup | string> {
18
- if (!params.file && !params.symbol) {
19
- return "**Error:** Semantic actions require either anchored coordinates (`file`, `line`, `character`) or a `symbol` for discovery.";
20
- }
32
+ const query = normalizeQuery(params);
21
33
 
22
- if (params.file && params.line != null && params.character != null) {
23
- return resolveAnchored(params.file, params.line, params.character, cwd);
24
- }
34
+ switch (query.kind) {
35
+ case "anchored":
36
+ return resolveAnchored(query.file, query.line, query.character, cwd);
25
37
 
26
- if (params.file && !params.symbol) {
27
- return resolveByFile(params.file, cwd);
28
- }
38
+ case "file":
39
+ return resolveByFile(query.file, cwd);
29
40
 
30
- if (params.symbol) {
31
- return resolveBySymbol(params, cwd);
32
- }
41
+ case "symbol": {
42
+ if (!semantic) {
43
+ return "**Error:** Symbol discovery requires active LSP. Use `file` + coordinates, or enable LSP and retry.";
44
+ }
45
+ const deps: ResolverDeps = { cwd, semantic };
46
+ return resolveBySymbol(query.symbol, deps, {
47
+ path: query.path,
48
+ kind: query.symbolKind,
49
+ exportedOnly: query.exportedOnly,
50
+ });
51
+ }
33
52
 
34
- return "**Error:** Could not resolve target.";
53
+ case "invalid":
54
+ return `**Error:** ${query.reason}`;
55
+ }
35
56
  }
36
57
 
37
58
  function resolveAnchored(
@@ -43,7 +64,7 @@ function resolveAnchored(
43
64
  const result = resolveAnchoredTarget(file, line, character, cwd);
44
65
  if (result.kind === "error") return result.message;
45
66
  if (result.kind === "resolved") return result.target;
46
- return "**Error:** Unexpected disambiguation for anchored target.";
67
+ return "**Error:** Unexpected resolution outcome.";
47
68
  }
48
69
 
49
70
  async function resolveByFile(file: string, cwd: string): Promise<ResolvedTargetGroup | string> {
@@ -53,38 +74,35 @@ async function resolveByFile(file: string, cwd: string): Promise<ResolvedTargetG
53
74
  }
54
75
 
55
76
  async function resolveBySymbol(
56
- params: ActionParams,
57
- cwd: string,
77
+ symbol: string,
78
+ deps: ResolverDeps,
79
+ options?: { path?: string; kind?: string; exportedOnly?: boolean },
58
80
  ): Promise<ResolvedTarget | string> {
59
- const result = await resolveSymbolTarget(params.symbol ?? "", cwd, {
60
- path: params.path,
61
- kind: params.kind,
62
- exportedOnly: params.exportedOnly,
63
- });
81
+ const outcome: TargetOutcome = await resolveSymbolTarget(
82
+ symbol,
83
+ deps.cwd,
84
+ // biome-ignore lint/style/noNonNullAssertion: semantic is always set for symbol queries
85
+ deps.semantic!,
86
+ options,
87
+ );
64
88
 
65
- if (result.kind === "error") return result.message;
66
- if (result.kind === "resolved") return result.target;
89
+ if (outcome.kind === "resolved") {
90
+ return outcome.target as ResolvedTarget;
91
+ }
92
+
93
+ if (outcome.kind === "error") {
94
+ return outcome.message;
95
+ }
67
96
 
68
- return formatDisambiguation(params, result);
97
+ return formatDisambiguation(symbol, outcome);
69
98
  }
70
99
 
71
100
  function formatDisambiguation(
72
- params: ActionParams,
73
- result: {
74
- candidates: Array<{
75
- name: string;
76
- kind: string | null;
77
- container: string | null;
78
- file: string;
79
- line: number;
80
- character: number;
81
- rank: number;
82
- }>;
83
- omittedCount: number;
84
- },
101
+ symbol: string,
102
+ result: Extract<TargetOutcome, { kind: "disambiguation" }>,
85
103
  ): string {
86
104
  const lines: string[] = [];
87
- lines.push(`# Disambiguation needed for \`${params.symbol}\``);
105
+ lines.push(`# Disambiguation needed for \`${symbol}\``);
88
106
  lines.push("");
89
107
  const omitNote = result.omittedCount > 0 ? ` (+${result.omittedCount} more)` : "";
90
108
  lines.push(
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { execFileSync } from "node:child_process";
4
4
  import * as path from "node:path";
5
- import { resolveToolPath, uriToFile as uriToFileShared } from "@mrclrchtr/supi-core/api";
5
+ import { resolveToolPath, uriToFile as uriToFileShared } from "@mrclrchtr/supi-core/path";
6
6
 
7
7
  const LOW_SIGNAL_DIRS = new Set([
8
8
  "node_modules",
@@ -80,7 +80,12 @@ export function runRipgrep(
80
80
  pattern: string,
81
81
  scopePath: string,
82
82
  cwd: string,
83
- opts?: { maxMatches?: number; contextLines?: number; filterLowSignal?: boolean },
83
+ opts?: {
84
+ maxMatches?: number;
85
+ contextLines?: number;
86
+ literal?: boolean;
87
+ filterLowSignal?: boolean;
88
+ },
84
89
  ): RgMatch[] {
85
90
  return runRipgrepDetailed(pattern, scopePath, cwd, opts).matches;
86
91
  }
@@ -93,7 +98,12 @@ export function runRipgrepDetailed(
93
98
  pattern: string,
94
99
  scopePath: string,
95
100
  cwd: string,
96
- opts?: { maxMatches?: number; contextLines?: number; filterLowSignal?: boolean },
101
+ opts?: {
102
+ maxMatches?: number;
103
+ contextLines?: number;
104
+ literal?: boolean;
105
+ filterLowSignal?: boolean;
106
+ },
97
107
  ): RipgrepRunResult {
98
108
  const filter = opts?.filterLowSignal ?? true;
99
109
 
@@ -114,12 +124,15 @@ export function runRipgrepDetailed(
114
124
  function buildRipgrepArgs(
115
125
  pattern: string,
116
126
  scopePath: string,
117
- opts?: { maxMatches?: number; contextLines?: number },
127
+ opts?: { maxMatches?: number; contextLines?: number; literal?: boolean },
118
128
  ): string[] {
119
129
  const args = ["--json", "-m", String(opts?.maxMatches ?? 30)];
120
130
  if ((opts?.contextLines ?? 0) > 0) {
121
131
  args.push("-C", String(opts?.contextLines ?? 0));
122
132
  }
133
+ if (opts?.literal) {
134
+ args.push("-F");
135
+ }
123
136
  args.push("-e", pattern, scopePath);
124
137
  return args;
125
138
  }