@mrclrchtr/supi-code-intelligence 1.6.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 (310) hide show
  1. package/README.md +53 -24
  2. package/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  3. package/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  4. package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  5. package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  6. package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  7. package/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  8. package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  9. package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  10. package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  11. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  14. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  15. package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  16. package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  73. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
  74. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  75. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
  76. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
  77. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  78. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  79. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  80. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
  81. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  82. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  83. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  84. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  85. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  86. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  87. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  88. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  89. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  90. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  91. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  92. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  93. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  94. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  95. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  96. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  97. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  98. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  99. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  100. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  101. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  102. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  103. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  104. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  105. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  106. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  107. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  108. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  109. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  169. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  170. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  171. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  172. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  173. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  174. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  175. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  176. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  177. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  178. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  179. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  180. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  181. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  182. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  183. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  184. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  185. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  186. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  187. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
  188. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  189. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
  190. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
  191. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  192. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  193. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
  194. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +31 -0
  195. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
  196. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
  197. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  198. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  199. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  200. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  201. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  202. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
  203. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  204. package/node_modules/@mrclrchtr/supi-lsp/package.json +9 -3
  205. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +8 -5
  206. package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +79 -190
  207. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
  208. package/node_modules/@mrclrchtr/supi-lsp/src/config/server-config.ts +38 -0
  209. package/node_modules/@mrclrchtr/supi-lsp/src/config/types.ts +61 -387
  210. package/node_modules/@mrclrchtr/supi-lsp/src/format.ts +16 -8
  211. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
  212. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
  213. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
  214. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
  215. package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
  216. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
  217. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-project-info.ts +1 -1
  218. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
  219. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
  220. package/node_modules/@mrclrchtr/supi-lsp/src/session/lsp-state.ts +1 -1
  221. package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
  222. package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
  223. package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
  224. package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +6 -15
  225. package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
  226. package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
  227. package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
  228. package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
  229. package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
  230. package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
  231. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
  232. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  233. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  234. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  235. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  236. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  237. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  238. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  239. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  240. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  241. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  242. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  243. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  244. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  245. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  246. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
  247. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
  248. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
  249. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
  250. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
  251. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
  252. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
  253. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
  254. package/package.json +4 -4
  255. package/src/api.ts +16 -0
  256. package/src/architecture.ts +1 -1
  257. package/src/brief-focused.ts +5 -5
  258. package/src/brief.ts +11 -55
  259. package/src/code-intelligence.ts +12 -77
  260. package/src/index.ts +16 -0
  261. package/src/pattern-structured.ts +27 -27
  262. package/src/presentation/markdown/affected.ts +170 -0
  263. package/src/presentation/markdown/brief.ts +174 -0
  264. package/src/presentation/markdown/map.ts +54 -0
  265. package/src/presentation/markdown/overview.ts +59 -0
  266. package/src/presentation/markdown/pattern.ts +239 -0
  267. package/src/presentation/markdown/relations.ts +121 -0
  268. package/src/prioritization-signals.ts +13 -26
  269. package/src/query-params.ts +15 -0
  270. package/src/resolve-target.ts +60 -42
  271. package/src/search-helpers.ts +19 -6
  272. package/src/substrates/lsp-adapter.ts +197 -0
  273. package/src/substrates/tree-sitter-adapter.ts +173 -0
  274. package/src/substrates/types.ts +113 -0
  275. package/src/target-resolution.ts +37 -493
  276. package/src/targeting/query.ts +60 -0
  277. package/src/targeting/resolve-anchored.ts +80 -0
  278. package/src/targeting/resolve-file.ts +197 -0
  279. package/src/targeting/resolve-symbol.ts +110 -0
  280. package/src/targeting/types.ts +111 -0
  281. package/src/tool/execute-affected.ts +25 -0
  282. package/src/tool/execute-brief.ts +51 -0
  283. package/src/tool/execute-map.ts +35 -0
  284. package/src/tool/execute-pattern.ts +28 -0
  285. package/src/tool/execute-relations.ts +40 -0
  286. package/src/tool/guidance.ts +52 -12
  287. package/src/tool/register-tools.ts +32 -0
  288. package/src/tool/tool-specs.ts +165 -0
  289. package/src/tool/validation.ts +43 -0
  290. package/src/types.ts +10 -0
  291. package/src/use-case/build-overview.ts +36 -0
  292. package/src/use-case/generate-affected.ts +279 -0
  293. package/src/use-case/generate-brief.ts +324 -0
  294. package/src/use-case/generate-map.ts +176 -0
  295. package/src/use-case/generate-pattern.ts +270 -0
  296. package/src/use-case/generate-relations.ts +392 -0
  297. package/src/use-case/support/semantic-references.ts +114 -0
  298. package/src/use-case/types.ts +43 -0
  299. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
  300. package/src/actions/affected-action.ts +0 -439
  301. package/src/actions/brief-action.ts +0 -241
  302. package/src/actions/callees-action.ts +0 -155
  303. package/src/actions/callers-action.ts +0 -282
  304. package/src/actions/implementations-action.ts +0 -208
  305. package/src/actions/index-action.ts +0 -187
  306. package/src/actions/pattern-action.ts +0 -392
  307. package/src/providers/semantic-provider.ts +0 -34
  308. package/src/providers/structural-provider.ts +0 -26
  309. package/src/tool/action-specs.ts +0 -66
  310. package/src/tool-actions.ts +0 -100
@@ -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
- import * as fs from "node:fs";
2
1
  import * as path from "node:path";
2
+ import { readJsonFile } from "@mrclrchtr/supi-core/config";
3
3
  import { getSessionLspService } from "@mrclrchtr/supi-lsp/api";
4
4
 
5
5
  export interface PrioritySignalsSummary {
@@ -106,22 +106,18 @@ function loadDiagnostics(
106
106
 
107
107
  function loadCoverageSummary(cwd: string): Map<string, number> {
108
108
  const coveragePath = path.join(cwd, "coverage", "coverage-summary.json");
109
- if (!fs.existsSync(coveragePath)) return new Map();
110
-
111
- try {
112
- const parsed = JSON.parse(fs.readFileSync(coveragePath, "utf-8")) as Record<string, unknown>;
113
- const map = new Map<string, number>();
114
- for (const [file, value] of Object.entries(parsed)) {
115
- if (file === "total" || typeof value !== "object" || value === null) continue;
116
- const linesPct = getPct(value, "lines");
117
- const statementsPct = getPct(value, "statements");
118
- const pct = Math.min(linesPct ?? 100, statementsPct ?? 100);
119
- map.set(path.resolve(cwd, file), pct);
120
- }
121
- return map;
122
- } catch {
123
- return new Map();
109
+ const parsed = readJsonFile(coveragePath);
110
+ if (!parsed) return new Map();
111
+
112
+ const map = new Map<string, number>();
113
+ for (const [file, value] of Object.entries(parsed)) {
114
+ if (file === "total" || typeof value !== "object" || value === null) continue;
115
+ const linesPct = getPct(value, "lines");
116
+ const statementsPct = getPct(value, "statements");
117
+ const pct = Math.min(linesPct ?? 100, statementsPct ?? 100);
118
+ map.set(path.resolve(cwd, file), pct);
124
119
  }
120
+ return map;
125
121
  }
126
122
 
127
123
  function loadUnusedFiles(cwd: string): Set<string> {
@@ -157,16 +153,7 @@ function loadUnusedExports(cwd: string): Array<{ file: string; name: string }> {
157
153
  }
158
154
 
159
155
  function loadKnipJson(cwd: string): Record<string, unknown> | null {
160
- const knipPath = path.join(cwd, "knip.json");
161
- if (!fs.existsSync(knipPath)) return null;
162
- try {
163
- const parsed = JSON.parse(fs.readFileSync(knipPath, "utf-8"));
164
- return typeof parsed === "object" && parsed !== null
165
- ? (parsed as Record<string, unknown>)
166
- : null;
167
- } catch {
168
- return null;
169
- }
156
+ return readJsonFile(path.join(cwd, "knip.json"));
170
157
  }
171
158
 
172
159
  function getPct(value: object, key: string): number | null {
@@ -0,0 +1,15 @@
1
+ /** Shared parameter bag for internal code-intelligence actions. */
2
+ export interface CodeQueryParams {
3
+ path?: string;
4
+ file?: string;
5
+ line?: number;
6
+ character?: number;
7
+ symbol?: string;
8
+ pattern?: string;
9
+ regex?: boolean;
10
+ kind?: string;
11
+ exportedOnly?: boolean;
12
+ maxResults?: number;
13
+ contextLines?: number;
14
+ summary?: boolean;
15
+ }
@@ -1,3 +1,13 @@
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
+
10
+ import type { CodeQueryParams as ActionParams } from "./query-params.ts";
1
11
  import {
2
12
  type ResolvedTarget,
3
13
  type ResolvedTargetGroup,
@@ -5,33 +15,44 @@ import {
5
15
  resolveFileTargetGroup,
6
16
  resolveSymbolTarget,
7
17
  } from "./target-resolution.ts";
8
- import type { ActionParams } from "./tool-actions.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(
@@ -104,7 +122,7 @@ function formatDisambiguation(
104
122
  if (result.candidates.length > 0) {
105
123
  const first = result.candidates[0];
106
124
  lines.push(
107
- `Example: \`{ "action": "${params.action}", "file": "${first.file}", "line": ${first.line}, "character": ${first.character} }\``,
125
+ `Example: rerun with \`file: "${first.file}"\`, \`line: ${first.line}\`, and \`character: ${first.character}\`.`,
108
126
  );
109
127
  }
110
128
 
@@ -1,8 +1,8 @@
1
- // Shared search helpers for code_intel actions.
1
+ // Shared search helpers for code-intelligence search and routing helpers.
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",
@@ -71,7 +71,7 @@ export interface RipgrepRunResult {
71
71
  /**
72
72
  * Run ripgrep with JSON output and parse matches, filtering low-signal paths.
73
73
  *
74
- * This helper preserves the historical behavior used by most `code_intel`
74
+ * This helper preserves the historical behavior used by internal
75
75
  * actions: any ripgrep execution failure is treated like an empty match set.
76
76
  * Call `runRipgrepDetailed()` when a caller needs to surface regex parse errors
77
77
  * or other non-no-match failures to the agent.
@@ -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
  }