@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,270 @@
1
+ // Pattern orchestration use-case — bounded, scope-aware text search.
2
+ // Coordinates ripgrep literal/regex search and structured tree-sitter search,
3
+ // returning fully rendered content + details metadata.
4
+
5
+ import { getStructuredPatternMatches, isStructuredPatternKind } from "../pattern-structured.ts";
6
+ import {
7
+ renderPatternResults,
8
+ renderPatternSummary,
9
+ renderRegexError,
10
+ renderStructuredEmptyState,
11
+ renderStructuredMatches,
12
+ } from "../presentation/markdown/pattern.ts";
13
+ import type { CodeQueryParams } from "../query-params.ts";
14
+ import type { RgMatch } from "../search-helpers.ts";
15
+ import { normalizePath, runRipgrep, runRipgrepDetailed } from "../search-helpers.ts";
16
+ import type { StructuralSubstrate } from "../substrates/types.ts";
17
+ import type { CodeIntelResult, SearchDetails } from "../types.ts";
18
+
19
+ export interface PatternInput {
20
+ pattern: string;
21
+ path?: string;
22
+ regex?: boolean;
23
+ kind?: string;
24
+ maxResults?: number;
25
+ contextLines?: number;
26
+ summary?: boolean;
27
+ }
28
+
29
+ export interface PatternDeps {
30
+ cwd: string;
31
+ structural?: StructuralSubstrate;
32
+ }
33
+
34
+ /** Execute the pattern search use-case. */
35
+ export async function executePattern(
36
+ input: PatternInput,
37
+ deps: PatternDeps,
38
+ ): Promise<CodeIntelResult> {
39
+ if (!input.pattern) {
40
+ return {
41
+ content: "**Error:** `pattern` action requires a `pattern` parameter.",
42
+ details: undefined,
43
+ };
44
+ }
45
+
46
+ const maxResults = input.maxResults ?? 8;
47
+ const contextLines = input.contextLines ?? 1;
48
+ const scopePath = input.path ? normalizePath(input.path, deps.cwd) : deps.cwd;
49
+ const relScope = input.path ?? ".";
50
+
51
+ if (isStructuredPatternKind(input.kind)) {
52
+ return executeStructuredSearch(
53
+ input,
54
+ input.kind,
55
+ scopePath,
56
+ deps.cwd,
57
+ relScope,
58
+ maxResults,
59
+ deps.structural,
60
+ );
61
+ }
62
+
63
+ const matches = input.regex
64
+ ? getRegexMatches({
65
+ pattern: input.pattern,
66
+ scopePath,
67
+ cwd: deps.cwd,
68
+ maxResults,
69
+ contextLines,
70
+ summary: input.summary,
71
+ })
72
+ : runRipgrep(input.pattern, scopePath, deps.cwd, {
73
+ maxMatches: input.summary ? undefined : maxResults * 3,
74
+ contextLines,
75
+ literal: true,
76
+ filterLowSignal: true,
77
+ });
78
+
79
+ if (typeof matches === "string") {
80
+ const errorDetails: SearchDetails = {
81
+ confidence: "unavailable",
82
+ scope: input.path ?? null,
83
+ candidateCount: 0,
84
+ omittedCount: 0,
85
+ nextQueries: ["Fix the regex pattern and retry"],
86
+ };
87
+ return { content: matches, details: { type: "search", data: errorDetails } };
88
+ }
89
+
90
+ if (matches.length === 0) {
91
+ return formatEmptyResult(input, relScope);
92
+ }
93
+
94
+ const content = input.summary
95
+ ? renderPatternSummary(input.pattern, relScope, matches, maxResults)
96
+ : renderPatternResults(input.pattern, relScope, matches, maxResults);
97
+
98
+ const details: SearchDetails = {
99
+ confidence: "heuristic",
100
+ scope: input.path ?? null,
101
+ candidateCount: matches.length,
102
+ omittedCount: 0,
103
+ nextQueries: input.regex
104
+ ? ["Set `regex: false` for literal matching"]
105
+ : ["Set `regex: true` for regex matching"],
106
+ };
107
+ return { content, details: { type: "search" as const, data: details } };
108
+ }
109
+
110
+ // ── Structured search ────────────────────────────────────────────────
111
+
112
+ // biome-ignore lint/complexity/useMaxParams: structured-search parameters are clearer as positional when linking input, scope, and substrate
113
+ async function executeStructuredSearch(
114
+ input: PatternInput,
115
+ kind: "definition" | "export" | "import",
116
+ scopePath: string,
117
+ cwd: string,
118
+ relScope: string,
119
+ _maxResults: number,
120
+ structural?: StructuralSubstrate,
121
+ ): Promise<CodeIntelResult> {
122
+ if (!structural) {
123
+ return {
124
+ content: `**Error:** Structured ${kind} search requires tree-sitter, which is not available.`,
125
+ details: undefined,
126
+ };
127
+ }
128
+
129
+ const structured = await getStructuredPatternMatches(
130
+ { ...input, pattern: input.pattern, kind },
131
+ scopePath,
132
+ cwd,
133
+ relScope,
134
+ structural,
135
+ );
136
+
137
+ if (typeof structured === "string") {
138
+ const errorDetails: SearchDetails = {
139
+ confidence: "unavailable",
140
+ scope: input.path ?? null,
141
+ candidateCount: 0,
142
+ omittedCount: 0,
143
+ nextQueries: ["Fix the regex pattern and retry"],
144
+ };
145
+ return { content: structured, details: { type: "search", data: errorDetails } };
146
+ }
147
+
148
+ if (!structured || structured.matches.length === 0) {
149
+ const content = renderStructuredEmptyState(
150
+ input.pattern,
151
+ kind as "definition" | "export" | "import",
152
+ relScope,
153
+ structural,
154
+ structured ?? undefined,
155
+ );
156
+ return {
157
+ content,
158
+ details: {
159
+ type: "search",
160
+ data: {
161
+ confidence: "structural",
162
+ scope: input.path ?? null,
163
+ candidateCount: 0,
164
+ omittedCount: structured?.omittedCount ?? 0,
165
+ nextQueries: [
166
+ "Try a broader `pattern`, or omit `kind` for plain text search",
167
+ "Narrow `path` if the structured scan was partial",
168
+ ],
169
+ },
170
+ },
171
+ };
172
+ }
173
+
174
+ return {
175
+ content: renderStructuredMatches(
176
+ input.pattern,
177
+ kind as "definition" | "export" | "import",
178
+ relScope,
179
+ structured,
180
+ ),
181
+ details: {
182
+ type: "search",
183
+ data: {
184
+ confidence: "structural",
185
+ scope: input.path ?? null,
186
+ candidateCount: structured.matches.length,
187
+ omittedCount: structured.omittedCount,
188
+ nextQueries: [
189
+ "Omit `kind` for plain text matches",
190
+ "Use `summary: true` for broader textual distribution",
191
+ ],
192
+ },
193
+ },
194
+ };
195
+ }
196
+
197
+ // ── Helpers ──────────────────────────────────────────────────────────
198
+
199
+ const REGEX_HINT_CHARS = /[|.*+?^${}()[\]\\]/;
200
+
201
+ function hasRegexChars(pattern: string): boolean {
202
+ return REGEX_HINT_CHARS.test(pattern);
203
+ }
204
+
205
+ function formatEmptyResult(input: PatternInput, relScope: string): CodeIntelResult {
206
+ const emptyDetails: SearchDetails = {
207
+ confidence: "heuristic",
208
+ scope: input.path ?? null,
209
+ candidateCount: 0,
210
+ omittedCount: 0,
211
+ nextQueries: input.regex
212
+ ? ["Set `regex: false` for literal matching"]
213
+ : ["Set `regex: true` for regex matching"],
214
+ };
215
+ const hint = input.regex
216
+ ? ""
217
+ : hasRegexChars(input.pattern)
218
+ ? " — pattern contains regex-like characters; set `regex: true` for regex matching"
219
+ : " — set `regex: true` for regex matching";
220
+ return {
221
+ content: `No matches found for \`${input.pattern}\` in \`${relScope}\`${hint}.`,
222
+ details: { type: "search", data: emptyDetails },
223
+ };
224
+ }
225
+
226
+ function getRegexMatches(options: {
227
+ pattern: string;
228
+ scopePath: string;
229
+ cwd: string;
230
+ maxResults: number;
231
+ contextLines: number;
232
+ summary?: boolean;
233
+ }): RgMatch[] | string {
234
+ const result = runRipgrepDetailed(options.pattern, options.scopePath, options.cwd, {
235
+ maxMatches: options.summary ? undefined : options.maxResults * 3,
236
+ contextLines: options.contextLines,
237
+ filterLowSignal: true,
238
+ });
239
+
240
+ if (result.error) {
241
+ return renderRegexError(options.pattern, result.error);
242
+ }
243
+
244
+ return result.matches;
245
+ }
246
+
247
+ // ── Backward-compatible wrapper for test migrations ────────────────
248
+
249
+ /**
250
+ * Backward-compatible wrapper for tests that call the old (params, cwd) signature.
251
+ * Prefer {@link executePattern} with the typed PatternInput/PatternDeps interface.
252
+ */
253
+ export async function executePatternAction(
254
+ params: CodeQueryParams,
255
+ cwd: string,
256
+ structural?: StructuralSubstrate,
257
+ ): Promise<CodeIntelResult> {
258
+ return executePattern(
259
+ {
260
+ pattern: params.pattern ?? "",
261
+ path: params.path,
262
+ regex: params.regex,
263
+ kind: params.kind,
264
+ maxResults: params.maxResults,
265
+ contextLines: params.contextLines,
266
+ summary: params.summary,
267
+ },
268
+ { cwd, structural },
269
+ );
270
+ }
@@ -0,0 +1,392 @@
1
+ // Relations orchestration use-case — dispatches by kind (callers/callees/implementations),
2
+ // coordinates target resolution and substrate access, and returns fully rendered results.
3
+ import * as path from "node:path";
4
+ import {
5
+ renderCalleesResult,
6
+ renderCallersResult,
7
+ renderImplementationsResult,
8
+ } from "../presentation/markdown/relations.ts";
9
+ import { resolveTarget } from "../resolve-target.ts";
10
+ import { isInProjectPath, uriToFile } from "../search-helpers.ts";
11
+ import { isResolvedTargetGroup } from "../semantic-action-helpers.ts";
12
+ import type { SemanticSubstrate, StructuralSubstrate } from "../substrates/types.ts";
13
+ import type { ResolvedTarget, ResolvedTargetGroup } from "../target-resolution.ts";
14
+ import type { CodeIntelResult, SearchDetails } from "../types.ts";
15
+ import { aggregatePerTarget, collectReferences } from "./support/semantic-references.ts";
16
+ export interface RelationsInput {
17
+ kind: "callers" | "callees" | "implementations";
18
+ path?: string;
19
+ file?: string;
20
+ line?: number;
21
+ character?: number;
22
+ symbol?: string;
23
+ exportedOnly?: boolean;
24
+ maxResults?: number;
25
+ }
26
+ type RelationsResolutionParams = Omit<RelationsInput, "kind">;
27
+ export interface RelationsDeps {
28
+ cwd: string;
29
+ }
30
+ export async function executeRelations(
31
+ input: RelationsInput,
32
+ deps: RelationsDeps,
33
+ ): Promise<CodeIntelResult> {
34
+ const { kind: _kind, ...resolutionParams } = input;
35
+ switch (input.kind) {
36
+ case "callers":
37
+ return executeCallers(resolutionParams, deps);
38
+ case "callees":
39
+ return executeCallees(resolutionParams, deps);
40
+ case "implementations":
41
+ return executeImplementations(resolutionParams, deps);
42
+ }
43
+ }
44
+ async function executeCallers(
45
+ input: RelationsResolutionParams,
46
+ deps: RelationsDeps,
47
+ ): Promise<CodeIntelResult> {
48
+ const semantic: SemanticSubstrate = await import("../substrates/lsp-adapter.ts").then((m) =>
49
+ m.createSemanticSubstrate(deps.cwd),
50
+ );
51
+ const target = await resolveTarget(input, deps.cwd, semantic);
52
+ if (typeof target === "string") {
53
+ return {
54
+ content: target,
55
+ details: {
56
+ type: "search" as const,
57
+ data: {
58
+ confidence: "unavailable",
59
+ scope: null,
60
+ candidateCount: 0,
61
+ omittedCount: 0,
62
+ nextQueries: ["Provide `file`, `line`, `character` or a `symbol` to resolve the target"],
63
+ },
64
+ },
65
+ };
66
+ }
67
+ if (isResolvedTargetGroup(target)) {
68
+ return executeFileLevelCallers(target, input, deps.cwd, semantic);
69
+ }
70
+ return executeSingleCallers(target, input, deps.cwd, semantic);
71
+ }
72
+ async function executeSingleCallers(
73
+ target: ResolvedTarget,
74
+ input: RelationsResolutionParams,
75
+ cwd: string,
76
+ semantic: SemanticSubstrate,
77
+ ): Promise<CodeIntelResult> {
78
+ const result = await collectReferences(target, cwd, semantic);
79
+ if (result.refs.length > 0) {
80
+ const symbolName = target.name ?? "symbol";
81
+ const content = renderCallersResult(symbolName, result, cwd, input.maxResults ?? 5);
82
+ const details: SearchDetails = {
83
+ confidence: result.confidence,
84
+ scope: input.path ?? null,
85
+ candidateCount: result.refs.length,
86
+ omittedCount: result.externalCount,
87
+ nextQueries: [
88
+ "`code_affected` for impact analysis",
89
+ "Use `code_pattern` only when you explicitly want text-search hints",
90
+ ],
91
+ };
92
+ return { content, details: { type: "search" as const, data: details } };
93
+ }
94
+ if (target.name) {
95
+ return {
96
+ content: `No references found for \`${target.name}\` (${result.confidence}).`,
97
+ details: {
98
+ type: "search" as const,
99
+ data: {
100
+ confidence: result.confidence,
101
+ scope: input.path ?? null,
102
+ candidateCount: 0,
103
+ omittedCount: 0,
104
+ nextQueries: ["Use `code_affected` before editing a broadly referenced target"],
105
+ },
106
+ },
107
+ };
108
+ }
109
+ const relPath = path.relative(cwd, target.file);
110
+ return {
111
+ content: `No caller data available for ${relPath}:${target.displayLine}:${target.displayCharacter}.`,
112
+ details: {
113
+ type: "search" as const,
114
+ data: {
115
+ confidence: "unavailable",
116
+ scope: input.path ?? null,
117
+ candidateCount: 0,
118
+ omittedCount: 0,
119
+ nextQueries: ["Enable LSP for semantic caller resolution or use `code_pattern` explicitly"],
120
+ },
121
+ },
122
+ };
123
+ }
124
+ async function executeFileLevelCallers(
125
+ targetGroup: ResolvedTargetGroup,
126
+ input: RelationsResolutionParams,
127
+ cwd: string,
128
+ semantic: SemanticSubstrate,
129
+ ): Promise<CodeIntelResult> {
130
+ const aggregated = await aggregatePerTarget(targetGroup.targets, (target) =>
131
+ collectReferences(target, cwd, semantic),
132
+ );
133
+ const perTarget = await Promise.all(
134
+ targetGroup.targets.map(async (target) => ({
135
+ target,
136
+ result: await collectReferences(target, cwd, semantic),
137
+ })),
138
+ );
139
+ const withRefs = perTarget.filter((entry) => entry.result.refs.length > 0);
140
+ const lines: string[] = [];
141
+ lines.push(`# Callers in \`${targetGroup.displayName}\``);
142
+ lines.push("");
143
+ lines.push(
144
+ `**${targetGroup.targets.length} exported target${targetGroup.targets.length !== 1 ? "s" : ""}** | **${aggregated.refs.length} reference${aggregated.refs.length !== 1 ? "s" : ""}** (${aggregated.confidence})`,
145
+ );
146
+ if (aggregated.externalCount > 0) {
147
+ lines.push(
148
+ `_+${aggregated.externalCount} external reference${aggregated.externalCount !== 1 ? "s" : ""}_`,
149
+ );
150
+ }
151
+ lines.push("");
152
+ for (const entry of withRefs) {
153
+ lines.push(`## \`${entry.target.name ?? "symbol"}\``);
154
+ const { formatReferenceList } = await import("./support/semantic-references.ts");
155
+ formatReferenceList(lines, entry.result.refs, input.maxResults ?? 5, cwd);
156
+ lines.push("");
157
+ }
158
+ if (withRefs.length === 0) {
159
+ lines.push("No caller references found for the discovered file-level targets.");
160
+ lines.push("");
161
+ }
162
+ const details: SearchDetails = {
163
+ confidence: aggregated.confidence,
164
+ scope: input.path ?? null,
165
+ candidateCount: aggregated.refs.length,
166
+ omittedCount: aggregated.externalCount,
167
+ nextQueries: [
168
+ "`code_affected` for impact analysis",
169
+ "Use `file` + coordinates to drill into one symbol precisely",
170
+ ],
171
+ };
172
+ return { content: lines.join("\n"), details: { type: "search" as const, data: details } };
173
+ }
174
+ async function executeImplementations(
175
+ input: RelationsResolutionParams,
176
+ deps: RelationsDeps,
177
+ ): Promise<CodeIntelResult> {
178
+ const semantic: SemanticSubstrate = await import("../substrates/lsp-adapter.ts").then((m) =>
179
+ m.createSemanticSubstrate(deps.cwd),
180
+ );
181
+ const target = await resolveTarget(input, deps.cwd, semantic);
182
+ if (typeof target === "string") {
183
+ return {
184
+ content: target,
185
+ details: {
186
+ type: "search" as const,
187
+ data: {
188
+ confidence: "unavailable",
189
+ scope: null,
190
+ candidateCount: 0,
191
+ omittedCount: 0,
192
+ nextQueries: ["Provide `file`, `line`, `character` or a `symbol` to resolve the target"],
193
+ },
194
+ },
195
+ };
196
+ }
197
+ if (isResolvedTargetGroup(target)) {
198
+ return {
199
+ content: `**Error:** File-level implementation discovery is not available for \`${path.relative(deps.cwd, target.file)}\`.\n\nProvide \`line\` and \`character\`, or a \`symbol\` for discovery.`,
200
+ details: {
201
+ type: "search" as const,
202
+ data: {
203
+ confidence: "unavailable",
204
+ scope: input.path ?? null,
205
+ candidateCount: 0,
206
+ omittedCount: 0,
207
+ nextQueries: ["Use `file` + coordinates or `symbol` for implementation lookup"],
208
+ },
209
+ },
210
+ };
211
+ }
212
+ const relPath = path.relative(deps.cwd, target.file);
213
+ const impls = await semantic.implementation(target.file, target.position);
214
+ if (impls) {
215
+ if (impls.length > 0) {
216
+ const content = renderImplementationsResult(impls, deps.cwd, input.maxResults ?? 8);
217
+ const { project: projectLocs, external: externalLocs } = partitionImpls(impls, deps.cwd);
218
+ const searchDetails: SearchDetails = {
219
+ confidence: "semantic",
220
+ scope: input.path ?? null,
221
+ candidateCount: projectLocs.length,
222
+ omittedCount: externalLocs.length,
223
+ nextQueries: [
224
+ "`code_affected` before changing implementations",
225
+ "`code_brief` on containing modules for deeper context",
226
+ ],
227
+ };
228
+ return { content, details: { type: "search" as const, data: searchDetails } };
229
+ }
230
+ return {
231
+ content: target.name
232
+ ? `No implementations found for \`${target.name}\`.`
233
+ : `No implementations found for ${relPath}:${target.displayLine}:${target.displayCharacter}.`,
234
+ details: {
235
+ type: "search" as const,
236
+ data: {
237
+ confidence: "semantic",
238
+ scope: input.path ?? null,
239
+ candidateCount: 0,
240
+ omittedCount: 0,
241
+ nextQueries: [
242
+ "`code_pattern` only if you explicitly want text-search hints for likely implementations",
243
+ ],
244
+ },
245
+ },
246
+ };
247
+ }
248
+ return {
249
+ content: target.name
250
+ ? `No implementations found for \`${target.name}\`.`
251
+ : `No implementations found for ${relPath}:${target.displayLine}:${target.displayCharacter}.`,
252
+ details: {
253
+ type: "search" as const,
254
+ data: {
255
+ confidence: "unavailable",
256
+ scope: input.path ?? null,
257
+ candidateCount: 0,
258
+ omittedCount: 0,
259
+ nextQueries: ["Enable LSP for semantic implementation resolution."],
260
+ },
261
+ },
262
+ };
263
+ }
264
+ function partitionImpls(
265
+ locations: Array<{
266
+ uri?: string;
267
+ targetUri?: string;
268
+ range?: { start: { line: number } };
269
+ targetRange?: { start: { line: number } };
270
+ }>,
271
+ cwd: string,
272
+ ): { project: typeof locations; external: typeof locations } {
273
+ const project: typeof locations = [];
274
+ const external: typeof locations = [];
275
+ for (const loc of locations) {
276
+ const uri = loc.uri ?? loc.targetUri ?? "";
277
+ const filePath = uriToFile(uri);
278
+ if (filePath && isInProjectPath(filePath, cwd)) {
279
+ project.push(loc);
280
+ } else {
281
+ external.push(loc);
282
+ }
283
+ }
284
+ return { project, external };
285
+ }
286
+ async function executeCallees(
287
+ input: RelationsResolutionParams,
288
+ deps: RelationsDeps,
289
+ ): Promise<CodeIntelResult> {
290
+ const semantic: SemanticSubstrate = await import("../substrates/lsp-adapter.ts").then((m) =>
291
+ m.createSemanticSubstrate(deps.cwd),
292
+ );
293
+ const structural: StructuralSubstrate = await import("../substrates/tree-sitter-adapter.ts").then(
294
+ (m) => m.createStructuralSubstrate(deps.cwd),
295
+ );
296
+ const target = await resolveTarget(input, deps.cwd, semantic);
297
+ if (typeof target === "string") {
298
+ return {
299
+ content: target,
300
+ details: {
301
+ type: "search" as const,
302
+ data: {
303
+ confidence: "unavailable",
304
+ scope: null,
305
+ candidateCount: 0,
306
+ omittedCount: 0,
307
+ nextQueries: ["Provide `file`, `line`, `character` or a `symbol` to resolve the target"],
308
+ },
309
+ },
310
+ };
311
+ }
312
+ if (isResolvedTargetGroup(target)) {
313
+ return {
314
+ content: `**Error:** File-level callee discovery is not available for \`${path.relative(deps.cwd, target.file)}\`.\n\nProvide \`line\` and \`character\`, or a \`symbol\` for discovery.`,
315
+ details: {
316
+ type: "search" as const,
317
+ data: {
318
+ confidence: "unavailable",
319
+ scope: input.path ?? null,
320
+ candidateCount: 0,
321
+ omittedCount: 0,
322
+ nextQueries: ["Use `file` + coordinates or `symbol` for callee lookup"],
323
+ },
324
+ },
325
+ };
326
+ }
327
+ const relPath = path.relative(deps.cwd, target.file);
328
+ try {
329
+ const result = await structural.calleesAt(relPath, target.displayLine, target.displayCharacter);
330
+ if (result.kind !== "success") {
331
+ return {
332
+ content: `No callee data available for ${relPath}:${target.displayLine}:${target.displayCharacter}.\n\nUse \`tree_sitter_callees\` with \`file\`, \`line\`, and \`character\` for structural drill-down.`,
333
+ details: {
334
+ type: "search" as const,
335
+ data: {
336
+ confidence: "unavailable",
337
+ scope: null,
338
+ candidateCount: 0,
339
+ omittedCount: 0,
340
+ nextQueries: [
341
+ "Use `lsp_hover` with `file`, `line`, and `character` for type-aware analysis on this file",
342
+ ],
343
+ },
344
+ },
345
+ };
346
+ }
347
+ if (result.data.callees.length === 0) {
348
+ return {
349
+ content: `No callee data available for ${relPath}:${target.displayLine}:${target.displayCharacter}.\n\nUse \`tree_sitter_callees\` with \`file\`, \`line\`, and \`character\` for structural drill-down.`,
350
+ details: {
351
+ type: "search" as const,
352
+ data: {
353
+ confidence: "structural",
354
+ scope: null,
355
+ candidateCount: 0,
356
+ omittedCount: 0,
357
+ nextQueries: [
358
+ "Use `lsp_hover` with `file`, `line`, and `character` for type-aware analysis on this file",
359
+ ],
360
+ },
361
+ },
362
+ };
363
+ }
364
+ const content = renderCalleesResult(result.data, relPath, input.maxResults ?? 8);
365
+ const details: SearchDetails = {
366
+ confidence: "structural",
367
+ scope: null,
368
+ candidateCount: result.data.callees.length,
369
+ omittedCount: Math.max(0, result.data.callees.length - (input.maxResults ?? 8)),
370
+ nextQueries: [
371
+ "Use `lsp_hover` with `file`, `line`, and `character` for precise type information on callees",
372
+ ],
373
+ };
374
+ return { content, details: { type: "search" as const, data: details } };
375
+ } catch {
376
+ return {
377
+ content: `No callee data available for ${relPath}:${target.displayLine}:${target.displayCharacter}.\n\nUse \`tree_sitter_callees\` with \`file\`, \`line\`, and \`character\` for structural drill-down.`,
378
+ details: {
379
+ type: "search" as const,
380
+ data: {
381
+ confidence: "unavailable",
382
+ scope: null,
383
+ candidateCount: 0,
384
+ omittedCount: 0,
385
+ nextQueries: [
386
+ "Use `lsp_hover` with `file`, `line`, and `character` for type-aware analysis on this file",
387
+ ],
388
+ },
389
+ },
390
+ };
391
+ }
392
+ }