@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
@@ -1,392 +0,0 @@
1
- // Pattern action — bounded, scope-aware text search.
2
- // biome-ignore-all lint/nursery/noExcessiveLinesPerFile: text and structured pattern flows share one formatter and matcher pipeline
3
-
4
- import {
5
- getStructuredPatternMatches,
6
- isStructuredPatternKind,
7
- type StructuredMatch,
8
- type StructuredPatternResult,
9
- } from "../pattern-structured.ts";
10
- import type { RgMatch } from "../search-helpers.ts";
11
- import {
12
- escapeRegex,
13
- groupByFile,
14
- normalizePath,
15
- runRipgrep,
16
- runRipgrepDetailed,
17
- } from "../search-helpers.ts";
18
- import type { ActionParams } from "../tool-actions.ts";
19
- import type { CodeIntelResult, SearchDetails } from "../types.ts";
20
-
21
- /**
22
- * Execute the bounded text-search action.
23
- *
24
- * Public `pattern` input is treated as a literal string by default. Callers can
25
- * opt into raw ripgrep regex semantics with `regex: true`; malformed regex
26
- * patterns are surfaced as explicit user-facing errors instead of being
27
- * collapsed into a misleading no-match response.
28
- */
29
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: function has multiple distinct paths (validation, regex vs literal, summary vs detailed, structured vs text, zero vs results) that are clearer when explicit than when split
30
- export async function executePatternAction(
31
- params: ActionParams,
32
- cwd: string,
33
- ): Promise<CodeIntelResult> {
34
- if (!params.pattern) {
35
- return {
36
- content: "**Error:** `pattern` action requires a `pattern` parameter.",
37
- details: undefined,
38
- };
39
- }
40
-
41
- const maxResults = params.maxResults ?? 8;
42
- const contextLines = params.contextLines ?? 1;
43
- const scopePath = params.path ? normalizePath(params.path, cwd) : cwd;
44
- const relScope = params.path ?? ".";
45
-
46
- if (isStructuredPatternKind(params.kind)) {
47
- const structured = await getStructuredPatternMatches(
48
- { ...params, pattern: params.pattern, kind: params.kind },
49
- scopePath,
50
- cwd,
51
- relScope,
52
- );
53
- if (typeof structured === "string") {
54
- const errorDetails: SearchDetails = {
55
- confidence: "unavailable",
56
- scope: params.path ?? null,
57
- candidateCount: 0,
58
- omittedCount: 0,
59
- nextQueries: ["Fix the regex pattern and retry"],
60
- };
61
- return { content: structured, details: { type: "search", data: errorDetails } };
62
- }
63
-
64
- if (structured) {
65
- if (structured.matches.length === 0) {
66
- return {
67
- content: formatStructuredEmptyState(params.pattern, params.kind, relScope, structured),
68
- details: {
69
- type: "search",
70
- data: {
71
- confidence: "structural",
72
- scope: params.path ?? null,
73
- candidateCount: 0,
74
- omittedCount: structured.omittedCount,
75
- nextQueries: [
76
- "Try a broader `pattern`, or omit `kind` for plain text search",
77
- "Narrow `path` if the structured scan was partial",
78
- ],
79
- },
80
- },
81
- };
82
- }
83
-
84
- return {
85
- content: formatStructuredMatches(params.pattern, params.kind, relScope, structured),
86
- details: {
87
- type: "search",
88
- data: {
89
- confidence: "structural",
90
- scope: params.path ?? null,
91
- candidateCount: structured.matches.length,
92
- omittedCount: structured.omittedCount,
93
- nextQueries: [
94
- "Omit `kind` for plain text matches",
95
- "Use `summary: true` for broader textual distribution",
96
- ],
97
- },
98
- },
99
- };
100
- }
101
- }
102
-
103
- const matches = params.regex
104
- ? getRegexMatches({
105
- pattern: params.pattern,
106
- scopePath,
107
- cwd,
108
- maxResults,
109
- contextLines,
110
- summary: params.summary,
111
- })
112
- : runRipgrep(escapeRegex(params.pattern), scopePath, cwd, {
113
- maxMatches: params.summary ? undefined : maxResults * 3,
114
- contextLines,
115
- filterLowSignal: true,
116
- });
117
-
118
- if (typeof matches === "string") {
119
- const errorDetails: SearchDetails = {
120
- confidence: "unavailable",
121
- scope: params.path ?? null,
122
- candidateCount: 0,
123
- omittedCount: 0,
124
- nextQueries: ["Fix the regex pattern and retry"],
125
- };
126
- return { content: matches, details: { type: "search", data: errorDetails } };
127
- }
128
-
129
- if (matches.length === 0) {
130
- const emptyDetails: SearchDetails = {
131
- confidence: "heuristic",
132
- scope: params.path ?? null,
133
- candidateCount: 0,
134
- omittedCount: 0,
135
- nextQueries: params.regex
136
- ? ["Set `regex: false` for literal matching"]
137
- : ["Set `regex: true` for regex matching"],
138
- };
139
- return {
140
- content: `No matches found for \`${params.pattern}\` in \`${relScope}\`.`,
141
- details: { type: "search", data: emptyDetails },
142
- };
143
- }
144
-
145
- const content = params.summary
146
- ? formatPatternSummary(params.pattern, relScope, matches, maxResults)
147
- : formatPatternResults(params.pattern, relScope, matches, maxResults);
148
-
149
- const details: SearchDetails = {
150
- confidence: "heuristic",
151
- scope: params.path ?? null,
152
- candidateCount: matches.length,
153
- omittedCount: 0,
154
- nextQueries: params.regex
155
- ? ["Set `regex: false` for literal matching"]
156
- : ["Set `regex: true` for regex matching"],
157
- };
158
- return { content, details: { type: "search" as const, data: details } };
159
- }
160
-
161
- function formatStructuredEmptyState(
162
- pattern: string,
163
- kind: "definition" | "export" | "import",
164
- relScope: string,
165
- result: StructuredPatternResult,
166
- ): string {
167
- const lines = [`No ${kind} matches found for \`${pattern}\` in \`${relScope}\`.`];
168
- const partialWarning = formatPartialStructuredWarning(result);
169
- if (partialWarning) {
170
- lines.push("");
171
- lines.push(partialWarning);
172
- }
173
- return lines.join("\n");
174
- }
175
-
176
- function formatStructuredMatches(
177
- pattern: string,
178
- kind: "definition" | "export" | "import",
179
- relScope: string,
180
- result: StructuredPatternResult,
181
- ): string {
182
- const grouped = new Map<string, StructuredMatch[]>();
183
- for (const match of result.matches) {
184
- const group = grouped.get(match.file) ?? [];
185
- group.push(match);
186
- grouped.set(match.file, group);
187
- }
188
-
189
- const kindLabel =
190
- kind === "definition" ? "Definitions" : kind === "export" ? "Exports" : "Imports";
191
- const lines: string[] = [];
192
- lines.push(`# Pattern ${kindLabel}: \`${pattern}\``);
193
- lines.push("");
194
- lines.push(
195
- `**${result.matches.length} match${result.matches.length !== 1 ? "es" : ""}** across **${grouped.size} file${grouped.size !== 1 ? "s" : ""}** in \`${relScope}\``,
196
- );
197
- const partialWarning = formatPartialStructuredWarning(result);
198
- if (partialWarning) {
199
- lines.push(partialWarning);
200
- }
201
- lines.push("");
202
-
203
- if (kind === "definition" || kind === "export") {
204
- addDuplicateSummary(lines, result.matches);
205
- }
206
-
207
- for (const [file, fileMatches] of grouped) {
208
- lines.push(`### ${file}`);
209
- for (const match of fileMatches.slice(0, 8)) {
210
- lines.push(`- \`${match.name}\` (${match.kind}) L${match.line}`);
211
- }
212
- if (fileMatches.length > 8) {
213
- lines.push(`- _+${fileMatches.length - 8} more in this file_`);
214
- }
215
- lines.push("");
216
- }
217
-
218
- return lines.join("\n");
219
- }
220
-
221
- function formatPartialStructuredWarning(result: StructuredPatternResult): string | null {
222
- if (!result.partialReason || result.omittedCount <= 0) return null;
223
-
224
- if (result.partialReason === "timeout") {
225
- return `_Partial structured results — scan timed out with +${result.omittedCount} file${result.omittedCount !== 1 ? "s" : ""} omitted. Narrow \`path\` or \`pattern\` for complete coverage._`;
226
- }
227
-
228
- 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._`;
229
- }
230
-
231
- function addDuplicateSummary(lines: string[], matches: StructuredMatch[]): void {
232
- const byName = new Map<string, Set<string>>();
233
- for (const match of matches) {
234
- const files = byName.get(match.name) ?? new Set<string>();
235
- files.add(match.file);
236
- byName.set(match.name, files);
237
- }
238
-
239
- const duplicates = [...byName.entries()]
240
- .map(([name, files]) => ({ name, files: [...files].sort((a, b) => a.localeCompare(b)) }))
241
- .filter((entry) => entry.files.length > 1)
242
- .sort((a, b) => b.files.length - a.files.length || a.name.localeCompare(b.name));
243
-
244
- if (duplicates.length === 0) return;
245
-
246
- lines.push("## Duplicate Definitions");
247
- for (const duplicate of duplicates.slice(0, 8)) {
248
- lines.push(
249
- `- \`${duplicate.name}\` — defined in ${duplicate.files.length} files: ${duplicate.files
250
- .map((file) => `\`${file}\``)
251
- .join(", ")}`,
252
- );
253
- }
254
- if (duplicates.length > 8) {
255
- lines.push(`- _+${duplicates.length - 8} more duplicates_`);
256
- }
257
- lines.push("");
258
- }
259
-
260
- function getRegexMatches(options: {
261
- pattern: string;
262
- scopePath: string;
263
- cwd: string;
264
- maxResults: number;
265
- contextLines: number;
266
- summary?: boolean;
267
- }): RgMatch[] | string {
268
- const result = runRipgrepDetailed(options.pattern, options.scopePath, options.cwd, {
269
- maxMatches: options.summary ? undefined : options.maxResults * 3,
270
- contextLines: options.contextLines,
271
- filterLowSignal: true,
272
- });
273
-
274
- if (result.error) {
275
- return formatRegexError(options.pattern, result.error);
276
- }
277
-
278
- return result.matches;
279
- }
280
-
281
- function formatRegexError(pattern: string, error: string): string {
282
- const lines = error
283
- .split("\n")
284
- .map((line) => line.trim())
285
- .filter(Boolean);
286
- const detail =
287
- [...lines]
288
- .reverse()
289
- .find((line) => line.startsWith("error:"))
290
- ?.replace(/^error:\s*/, "") ??
291
- lines.at(-1) ??
292
- "ripgrep rejected the regex.";
293
- return `**Error:** Invalid regex pattern \`${pattern}\`: ${detail}`;
294
- }
295
-
296
- function formatPatternResults(
297
- pattern: string,
298
- relScope: string,
299
- matches: RgMatch[],
300
- maxResults: number,
301
- ): string {
302
- const lines: string[] = [];
303
- lines.push(`# Pattern: \`${pattern}\``);
304
- lines.push("");
305
- lines.push(`**${matches.length} match${matches.length > 1 ? "es" : ""}** in \`${relScope}\``);
306
- lines.push("");
307
-
308
- const byFile = groupByFile(matches);
309
- let shown = 0;
310
- for (const [file, fileMatches] of byFile) {
311
- if (shown >= maxResults) break;
312
- lines.push(`### ${file}`);
313
- const renderedLines = new Set<number>();
314
- const matchLines = new Set(fileMatches.map((match) => match.line));
315
- for (const m of fileMatches.slice(0, 5)) {
316
- renderMatchWithContext(lines, m, renderedLines, matchLines);
317
- }
318
- if (fileMatches.length > 5) {
319
- lines.push(`- _+${fileMatches.length - 5} more in this file_`);
320
- }
321
- lines.push("");
322
- shown++;
323
- }
324
-
325
- if (byFile.size > maxResults) {
326
- lines.push(
327
- `_+${byFile.size - maxResults} more files omitted. Narrow with \`path\` or increase \`maxResults\`._`,
328
- );
329
- }
330
-
331
- return lines.join("\n");
332
- }
333
-
334
- function formatPatternSummary(
335
- pattern: string,
336
- relScope: string,
337
- matches: RgMatch[],
338
- maxResults: number,
339
- ): string {
340
- const byFile = groupByFile(matches);
341
- const byDir = new Map<string, number>();
342
- for (const [file] of byFile) {
343
- const dir = file.includes("/") ? file.split("/").slice(0, -1).join("/") : ".";
344
- byDir.set(dir, (byDir.get(dir) ?? 0) + 1);
345
- }
346
-
347
- const lines: string[] = [];
348
- lines.push(`# Pattern Summary: \`${pattern}\``);
349
- lines.push("");
350
- lines.push(
351
- `**${matches.length} match${matches.length > 1 ? "es" : ""}** across **${byFile.size} file${byFile.size !== 1 ? "s" : ""}** in \`${relScope}\``,
352
- );
353
- lines.push("");
354
-
355
- const sortedDirs = [...byDir.entries()].sort((a, b) => b[1] - a[1]).slice(0, maxResults);
356
- for (const [dir, count] of sortedDirs) {
357
- lines.push(`- \`${dir}/\` — ${count} file${count !== 1 ? "s" : ""}`);
358
- }
359
-
360
- if (byDir.size > maxResults) {
361
- lines.push(`- _+${byDir.size - maxResults} more directories_`);
362
- }
363
-
364
- lines.push("");
365
- return lines.join("\n");
366
- }
367
-
368
- function renderMatchWithContext(
369
- lines: string[],
370
- m: RgMatch,
371
- renderedLines: Set<number>,
372
- matchLines: Set<number>,
373
- ): void {
374
- if (m.context) {
375
- for (const c of m.context.filter((cx) => cx.line < m.line)) {
376
- if (renderedLines.has(c.line) || matchLines.has(c.line)) continue;
377
- lines.push(` L${c.line}: ${c.text.slice(0, 120)}`);
378
- renderedLines.add(c.line);
379
- }
380
- }
381
- if (!renderedLines.has(m.line)) {
382
- lines.push(`- L${m.line}: \`${m.text.slice(0, 120)}\``);
383
- renderedLines.add(m.line);
384
- }
385
- if (m.context) {
386
- for (const c of m.context.filter((cx) => cx.line > m.line)) {
387
- if (renderedLines.has(c.line) || matchLines.has(c.line)) continue;
388
- lines.push(` L${c.line}: ${c.text.slice(0, 120)}`);
389
- renderedLines.add(c.line);
390
- }
391
- }
392
- }
@@ -1,34 +0,0 @@
1
- import {
2
- getSessionLspService,
3
- type SessionLspService,
4
- type SessionLspServiceState,
5
- waitForSessionLspService,
6
- } from "@mrclrchtr/supi-lsp/api";
7
-
8
- export interface SemanticProviderOptions {
9
- waitForReady?: boolean;
10
- timeoutMs?: number;
11
- }
12
-
13
- export const DEFAULT_SEMANTIC_WAIT_MS = 250;
14
-
15
- /** Acquire the current session-scoped LSP service, optionally waiting for startup. */
16
- export async function getSemanticService(
17
- cwd: string,
18
- options: SemanticProviderOptions = {},
19
- ): Promise<SessionLspService | null> {
20
- const state = await getSemanticServiceState(cwd, options);
21
- return state.kind === "ready" ? state.service : null;
22
- }
23
-
24
- /** Read the current LSP service state with an optional short wait for readiness. */
25
- export async function getSemanticServiceState(
26
- cwd: string,
27
- options: SemanticProviderOptions = {},
28
- ): Promise<SessionLspServiceState> {
29
- const current = getSessionLspService(cwd);
30
- if (!options.waitForReady || current.kind !== "pending") {
31
- return current;
32
- }
33
- return waitForSessionLspService(cwd, options.timeoutMs ?? DEFAULT_SEMANTIC_WAIT_MS);
34
- }
@@ -1,26 +0,0 @@
1
- import {
2
- createTreeSitterSession,
3
- getSessionTreeSitterService,
4
- type TreeSitterService,
5
- } from "@mrclrchtr/supi-tree-sitter/api";
6
-
7
- /**
8
- * Run work against the shared session-scoped Tree-sitter service when available,
9
- * falling back to a short-lived owned session otherwise.
10
- */
11
- export async function withStructuralSession<T>(
12
- cwd: string,
13
- fn: (session: TreeSitterService) => Promise<T>,
14
- ): Promise<T> {
15
- const current = getSessionTreeSitterService(cwd);
16
- if (current.kind === "ready") {
17
- return fn(current.service);
18
- }
19
-
20
- const session = createTreeSitterSession(cwd);
21
- try {
22
- return await fn(session);
23
- } finally {
24
- session.dispose();
25
- }
26
- }
@@ -1,66 +0,0 @@
1
- /**
2
- * Single source of truth for the public `code_intel` action surface.
3
- *
4
- * The action list, prompt guidance, and router validation should derive from
5
- * these specs so the high-level orchestration tool stays internally coherent.
6
- */
7
- export const CODE_INTEL_ACTION_SPECS = [
8
- {
9
- name: "brief",
10
- promptGuideline:
11
- 'Use code_intel with `action: "brief"` for a project, package, directory, file, or anchored-position brief before opening more files.',
12
- },
13
- {
14
- name: "callers",
15
- promptGuideline:
16
- 'Use code_intel with `action: "callers"` to find who invokes a symbol or file-level surface before falling back to text search.',
17
- },
18
- {
19
- name: "callees",
20
- promptGuideline:
21
- 'Use code_intel with `action: "callees"` for outgoing calls from a function or method at a known `file`, `line`, and `character`.',
22
- },
23
- {
24
- name: "implementations",
25
- promptGuideline:
26
- 'Use code_intel with `action: "implementations"` to find which concrete types implement a declaration.',
27
- },
28
- {
29
- name: "affected",
30
- promptGuideline:
31
- 'Use code_intel with `action: "affected"` before edits for blast radius, downstream modules, risk, and likely follow-up checks or tests.',
32
- },
33
- {
34
- name: "pattern",
35
- promptGuideline:
36
- 'Use code_intel with `action: "pattern"` for bounded search within a path; `pattern` is literal by default, set `regex: true` for regex, and use `kind: "definition" | "export" | "import"` for structured search.',
37
- },
38
- {
39
- name: "index",
40
- promptGuideline:
41
- 'Use code_intel with `action: "index"` for a project map, top-level directories, language mix, or landmark files.',
42
- },
43
- ] as const;
44
-
45
- export type CodeIntelAction = (typeof CODE_INTEL_ACTION_SPECS)[number]["name"];
46
- export type CodeIntelActionSpec = (typeof CODE_INTEL_ACTION_SPECS)[number];
47
-
48
- /** Ordered action names for schemas, validation messages, and docs. */
49
- export const CODE_INTEL_ACTION_NAMES = CODE_INTEL_ACTION_SPECS.map(
50
- (spec) => spec.name,
51
- ) as readonly CodeIntelAction[];
52
-
53
- const CODE_INTEL_ACTION_NAME_SET = new Set<string>(CODE_INTEL_ACTION_NAMES);
54
-
55
- /** Check whether a runtime string is a supported `code_intel` action. */
56
- export function isCodeIntelAction(action: string): action is CodeIntelAction {
57
- return CODE_INTEL_ACTION_NAME_SET.has(action);
58
- }
59
-
60
- /** Format the public action list for validation messages and docs. */
61
- export function formatCodeIntelActionList(options?: { fenced?: boolean }): string {
62
- if (options?.fenced) {
63
- return CODE_INTEL_ACTION_NAMES.map((name) => `\`${name}\``).join(", ");
64
- }
65
- return CODE_INTEL_ACTION_NAMES.join(", ");
66
- }
@@ -1,100 +0,0 @@
1
- // Tool action router — dispatches code_intel actions to specific implementations.
2
-
3
- import * as fs from "node:fs";
4
- import { executeAffectedAction } from "./actions/affected-action.ts";
5
- import { executeBriefAction } from "./actions/brief-action.ts";
6
- import { executeCalleesAction } from "./actions/callees-action.ts";
7
- import { executeCallersAction } from "./actions/callers-action.ts";
8
- import { executeImplementationsAction } from "./actions/implementations-action.ts";
9
- import { executeIndexAction } from "./actions/index-action.ts";
10
- import { executePatternAction } from "./actions/pattern-action.ts";
11
- import { normalizePath } from "./search-helpers.ts";
12
- import {
13
- type CodeIntelAction,
14
- formatCodeIntelActionList,
15
- isCodeIntelAction,
16
- } from "./tool/action-specs.ts";
17
- import type { CodeIntelResult } from "./types.ts";
18
-
19
- export type { CodeIntelAction } from "./tool/action-specs.ts";
20
-
21
- /** Flat parameter bag shared by `code_intel` action handlers. */
22
- export interface ActionParams {
23
- action: CodeIntelAction;
24
- path?: string;
25
- file?: string;
26
- line?: number;
27
- character?: number;
28
- symbol?: string;
29
- /** Text search input for `action: "pattern"`; treated as literal unless `regex` is true. */
30
- pattern?: string;
31
- /** Opt into raw ripgrep regex semantics for `action: "pattern"`. */
32
- regex?: boolean;
33
- kind?: string;
34
- exportedOnly?: boolean;
35
- maxResults?: number;
36
- contextLines?: number;
37
- /** Aggregate counts by directory instead of line-level matches (pattern action only). */
38
- summary?: boolean;
39
- }
40
-
41
- type ActionHandler = (
42
- params: ActionParams,
43
- cwd: string,
44
- ) => CodeIntelResult | Promise<CodeIntelResult>;
45
-
46
- const ACTION_HANDLERS: Record<CodeIntelAction, ActionHandler> = {
47
- brief: executeBriefAction,
48
- callers: executeCallersAction,
49
- callees: executeCalleesAction,
50
- implementations: executeImplementationsAction,
51
- affected: executeAffectedAction,
52
- pattern: executePatternAction,
53
- index: (_params, cwd) => executeIndexAction(cwd),
54
- };
55
-
56
- /**
57
- * Main action dispatcher — validates params and routes to specific action handlers.
58
- * Returns structured content with optional metadata details per action type.
59
- */
60
- export async function executeAction(
61
- params: ActionParams,
62
- ctx: { cwd: string },
63
- ): Promise<CodeIntelResult> {
64
- const cwd = ctx.cwd;
65
- const error = validateParams(params, cwd);
66
- if (error) return { content: error, details: undefined };
67
-
68
- return ACTION_HANDLERS[params.action](params, cwd);
69
- }
70
-
71
- function validateParams(params: ActionParams, cwd: string): string | null {
72
- if (!params.action || !isCodeIntelAction(params.action)) {
73
- return `**Error:** Unknown action \`${params.action ?? "(none)"}\`. Supported: ${formatCodeIntelActionList({ fenced: true })}.`;
74
- }
75
-
76
- if (params.path && (params.line != null || params.character != null)) {
77
- return "**Error:** `line` and `character` require `file`, not `path`. Use `path` to scope/focus; use `file` to anchor a position.";
78
- }
79
-
80
- if (params.file) {
81
- const resolvedFile = normalizePath(params.file, cwd);
82
- if (fs.existsSync(resolvedFile) && fs.statSync(resolvedFile).isDirectory()) {
83
- return "**Error:** `file` points to a directory. Use `path` to scope a directory; use `file` to anchor a position in a file.";
84
- }
85
- }
86
-
87
- if ((params.line != null || params.character != null) && !params.file) {
88
- return "**Error:** `line` and `character` require `file`.";
89
- }
90
-
91
- if (
92
- params.action === "pattern" &&
93
- params.kind &&
94
- !new Set(["definition", "export", "import"]).has(params.kind)
95
- ) {
96
- return "**Error:** `pattern` action `kind` must be one of `definition`, `export`, or `import`.";
97
- }
98
-
99
- return null;
100
- }