@mrclrchtr/supi-code-intelligence 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +53 -24
  2. package/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  3. package/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  4. package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  5. package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  6. package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  7. package/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  8. package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  9. package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  10. package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  11. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  14. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  15. package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  16. package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  73. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
  74. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  75. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
  76. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
  77. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  78. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  79. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  80. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
  81. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  82. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  83. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  84. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  85. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  86. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  87. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  88. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  89. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  90. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  91. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  92. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  93. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  94. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  95. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  96. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  97. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  98. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  99. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  100. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  101. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  102. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  103. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  104. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  105. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  106. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  107. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  108. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  109. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  169. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  170. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  171. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  172. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  173. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  174. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  175. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  176. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  177. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  178. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  179. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  180. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  181. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  182. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  183. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  184. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  185. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  186. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  187. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
  188. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  189. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
  190. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
  191. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  192. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  193. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
  194. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +31 -0
  195. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
  196. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
  197. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  198. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  199. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  200. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  201. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  202. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
  203. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  204. package/node_modules/@mrclrchtr/supi-lsp/package.json +9 -3
  205. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +8 -5
  206. package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +79 -190
  207. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
  208. package/node_modules/@mrclrchtr/supi-lsp/src/config/server-config.ts +38 -0
  209. package/node_modules/@mrclrchtr/supi-lsp/src/config/types.ts +61 -387
  210. package/node_modules/@mrclrchtr/supi-lsp/src/format.ts +16 -8
  211. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
  212. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
  213. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
  214. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
  215. package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
  216. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
  217. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-project-info.ts +1 -1
  218. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
  219. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
  220. package/node_modules/@mrclrchtr/supi-lsp/src/session/lsp-state.ts +1 -1
  221. package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
  222. package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
  223. package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
  224. package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +6 -15
  225. package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
  226. package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
  227. package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
  228. package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
  229. package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
  230. package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
  231. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
  232. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  233. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  234. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  235. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  236. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  237. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  238. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  239. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  240. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  241. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  242. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  243. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  244. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  245. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  246. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
  247. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
  248. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
  249. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
  250. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
  251. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
  252. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
  253. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
  254. package/package.json +4 -4
  255. package/src/api.ts +16 -0
  256. package/src/architecture.ts +1 -1
  257. package/src/brief-focused.ts +5 -5
  258. package/src/brief.ts +11 -55
  259. package/src/code-intelligence.ts +12 -77
  260. package/src/index.ts +16 -0
  261. package/src/pattern-structured.ts +27 -27
  262. package/src/presentation/markdown/affected.ts +170 -0
  263. package/src/presentation/markdown/brief.ts +174 -0
  264. package/src/presentation/markdown/map.ts +54 -0
  265. package/src/presentation/markdown/overview.ts +59 -0
  266. package/src/presentation/markdown/pattern.ts +239 -0
  267. package/src/presentation/markdown/relations.ts +121 -0
  268. package/src/prioritization-signals.ts +13 -26
  269. package/src/query-params.ts +15 -0
  270. package/src/resolve-target.ts +60 -42
  271. package/src/search-helpers.ts +19 -6
  272. package/src/substrates/lsp-adapter.ts +197 -0
  273. package/src/substrates/tree-sitter-adapter.ts +173 -0
  274. package/src/substrates/types.ts +113 -0
  275. package/src/target-resolution.ts +37 -493
  276. package/src/targeting/query.ts +60 -0
  277. package/src/targeting/resolve-anchored.ts +80 -0
  278. package/src/targeting/resolve-file.ts +197 -0
  279. package/src/targeting/resolve-symbol.ts +110 -0
  280. package/src/targeting/types.ts +111 -0
  281. package/src/tool/execute-affected.ts +25 -0
  282. package/src/tool/execute-brief.ts +51 -0
  283. package/src/tool/execute-map.ts +35 -0
  284. package/src/tool/execute-pattern.ts +28 -0
  285. package/src/tool/execute-relations.ts +40 -0
  286. package/src/tool/guidance.ts +52 -12
  287. package/src/tool/register-tools.ts +32 -0
  288. package/src/tool/tool-specs.ts +165 -0
  289. package/src/tool/validation.ts +43 -0
  290. package/src/types.ts +10 -0
  291. package/src/use-case/build-overview.ts +36 -0
  292. package/src/use-case/generate-affected.ts +279 -0
  293. package/src/use-case/generate-brief.ts +324 -0
  294. package/src/use-case/generate-map.ts +176 -0
  295. package/src/use-case/generate-pattern.ts +270 -0
  296. package/src/use-case/generate-relations.ts +392 -0
  297. package/src/use-case/support/semantic-references.ts +114 -0
  298. package/src/use-case/types.ts +43 -0
  299. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
  300. package/src/actions/affected-action.ts +0 -439
  301. package/src/actions/brief-action.ts +0 -241
  302. package/src/actions/callees-action.ts +0 -155
  303. package/src/actions/callers-action.ts +0 -282
  304. package/src/actions/implementations-action.ts +0 -208
  305. package/src/actions/index-action.ts +0 -187
  306. package/src/actions/pattern-action.ts +0 -392
  307. package/src/providers/semantic-provider.ts +0 -34
  308. package/src/providers/structural-provider.ts +0 -26
  309. package/src/tool/action-specs.ts +0 -66
  310. package/src/tool-actions.ts +0 -100
@@ -0,0 +1,114 @@
1
+ // Shared low-level helpers for reference collection, aggregation, and formatting.
2
+ // Moved from src/actions/semantic-references.ts into the use-case support layer.
3
+
4
+ import * as path from "node:path";
5
+ import { filterOutDeclaration, isInProjectPath, uriToFile } from "../../search-helpers.ts";
6
+ import { dedupeFileLineRefs, highestConfidence } from "../../semantic-action-helpers.ts";
7
+ import type { SemanticSubstrate } from "../../substrates/types.ts";
8
+ import type { ResolvedTarget } from "../../target-resolution.ts";
9
+ import type { ConfidenceMode } from "../../types.ts";
10
+
11
+ export interface FileLineRef {
12
+ file: string;
13
+ line: number;
14
+ }
15
+
16
+ export interface ReferenceCollection {
17
+ refs: FileLineRef[];
18
+ confidence: ConfidenceMode;
19
+ externalCount: number;
20
+ }
21
+
22
+ /**
23
+ * Collect semantic references for a target, filtering out the declaration itself
24
+ * and partitioning project vs external (node_modules/out-of-tree) references.
25
+ */
26
+ export async function collectReferences(
27
+ target: ResolvedTarget,
28
+ cwd: string,
29
+ semantic: SemanticSubstrate,
30
+ ): Promise<ReferenceCollection> {
31
+ const locs = await semantic.references(target.file, target.position);
32
+ if (!locs) {
33
+ return { refs: [], confidence: "unavailable", externalCount: 0 };
34
+ }
35
+
36
+ let externalCount = 0;
37
+ for (const ref of locs) {
38
+ const filePath = uriToFile(ref.uri);
39
+ if (!isInProjectPath(filePath, cwd)) {
40
+ externalCount++;
41
+ }
42
+ }
43
+
44
+ const filtered = filterOutDeclaration(locs, target.file, target.position);
45
+ const projectRefs: FileLineRef[] = [];
46
+ for (const ref of filtered) {
47
+ const filePath = uriToFile(ref.uri);
48
+ if (isInProjectPath(filePath, cwd)) {
49
+ projectRefs.push({ file: path.relative(cwd, filePath), line: ref.range.start.line + 1 });
50
+ }
51
+ }
52
+
53
+ return { refs: projectRefs, confidence: "semantic", externalCount };
54
+ }
55
+
56
+ /**
57
+ * Run a collection function across multiple targets and aggregate the results.
58
+ * Deduplicates refs by file:line, merges confidence, and sums external counts.
59
+ */
60
+ export async function aggregatePerTarget<T extends ReferenceCollection>(
61
+ targets: ResolvedTarget[],
62
+ collectFn: (target: ResolvedTarget) => Promise<T>,
63
+ ): Promise<ReferenceCollection> {
64
+ if (targets.length === 0) {
65
+ return { refs: [], confidence: "unavailable", externalCount: 0 };
66
+ }
67
+
68
+ const results = await Promise.all(targets.map(collectFn));
69
+ const combinedRefs = dedupeFileLineRefs(results.flatMap((r) => r.refs));
70
+ const combinedConfidence = highestConfidence(results.map((r) => r.confidence));
71
+ const combinedExternal = results.reduce((sum, r) => sum + r.externalCount, 0);
72
+
73
+ return { refs: combinedRefs, confidence: combinedConfidence, externalCount: combinedExternal };
74
+ }
75
+
76
+ /**
77
+ * Append a formatted reference list to a lines array.
78
+ * Groups refs by file, caps per-file lines at 5, and caps total files at maxResults.
79
+ */
80
+ export function formatReferenceList(
81
+ lines: string[],
82
+ refs: FileLineRef[],
83
+ maxResults: number,
84
+ _cwd: string,
85
+ ): void {
86
+ if (refs.length === 0) return;
87
+
88
+ const byFile = new Map<string, number[]>();
89
+ for (const ref of refs) {
90
+ const group = byFile.get(ref.file) ?? [];
91
+ group.push(ref.line);
92
+ byFile.set(ref.file, group);
93
+ }
94
+
95
+ let shown = 0;
96
+ for (const [file, locations] of byFile) {
97
+ if (shown >= maxResults) break;
98
+ lines.push(`### ${file}`);
99
+ for (const loc of locations.slice(0, 5)) {
100
+ lines.push(`- L${loc}`);
101
+ }
102
+ if (locations.length > 5) {
103
+ lines.push(`- _+${locations.length - 5} more in this file_`);
104
+ }
105
+ lines.push("");
106
+ shown++;
107
+ }
108
+
109
+ if (byFile.size > maxResults) {
110
+ lines.push(
111
+ `_+${byFile.size - maxResults} more files omitted. Narrow with \`path\` or increase \`maxResults\`._`,
112
+ );
113
+ }
114
+ }
@@ -0,0 +1,43 @@
1
+ // Shared typed data interfaces between use-case and presentation layers.
2
+
3
+ import type { ArchitectureModel } from "../architecture.ts";
4
+ import type { StructuralSubstrate } from "../substrates/types.ts";
5
+ import type { BriefDetails } from "../types.ts";
6
+
7
+ // ── Overview use-case ────────────────────────────────────────────────
8
+
9
+ export interface OverviewModule {
10
+ name: string;
11
+ shortName: string;
12
+ description: string | null;
13
+ isLeaf: boolean;
14
+ internalDeps: string[];
15
+ }
16
+
17
+ export interface OverviewData {
18
+ projectName: string | null;
19
+ projectDescription: string | null;
20
+ modules: OverviewModule[];
21
+ omittedModuleCount: number;
22
+ gitContextOverview: string | null;
23
+ }
24
+
25
+ // ── Brief use-case ───────────────────────────────────────────────────
26
+
27
+ export type BriefInput =
28
+ | { kind: "project" }
29
+ | { kind: "path"; path: string }
30
+ | { kind: "file"; file: string }
31
+ | { kind: "anchored"; file: string; line: number; character: number }
32
+ | { kind: "symbol"; symbol: string; path?: string };
33
+
34
+ export interface BriefDeps {
35
+ model: ArchitectureModel | null;
36
+ structural: StructuralSubstrate;
37
+ cwd: string;
38
+ }
39
+
40
+ export interface BriefUseCaseResult {
41
+ content: string;
42
+ details: BriefDetails;
43
+ }
@@ -1,92 +0,0 @@
1
- /**
2
- * Single source of truth for the public `tree_sitter` action surface.
3
- *
4
- * Tool registration, validation, and prompt guidance should derive from these
5
- * specs so the action list and per-action requirements do not drift apart.
6
- */
7
- export const TREE_SITTER_ACTION_SPECS = [
8
- {
9
- name: "outline",
10
- guidanceGroup: "js-ts-structure",
11
- languageScope: "js-ts-only",
12
- requiresPosition: false,
13
- requiresQuery: false,
14
- },
15
- {
16
- name: "imports",
17
- guidanceGroup: "js-ts-structure",
18
- languageScope: "js-ts-only",
19
- requiresPosition: false,
20
- requiresQuery: false,
21
- },
22
- {
23
- name: "exports",
24
- guidanceGroup: "js-ts-structure",
25
- languageScope: "js-ts-only",
26
- requiresPosition: false,
27
- requiresQuery: false,
28
- },
29
- {
30
- name: "node_at",
31
- guidanceGroup: "node-at",
32
- languageScope: "all-supported",
33
- requiresPosition: true,
34
- requiresQuery: false,
35
- },
36
- {
37
- name: "query",
38
- guidanceGroup: "query",
39
- languageScope: "all-supported",
40
- requiresPosition: false,
41
- requiresQuery: true,
42
- },
43
- {
44
- name: "callees",
45
- guidanceGroup: "callees",
46
- languageScope: "many-supported",
47
- requiresPosition: true,
48
- requiresQuery: false,
49
- },
50
- ] as const;
51
-
52
- export type TreeSitterAction = (typeof TREE_SITTER_ACTION_SPECS)[number]["name"];
53
- export type TreeSitterActionSpec = (typeof TREE_SITTER_ACTION_SPECS)[number];
54
- export type TreeSitterGuidanceGroup = TreeSitterActionSpec["guidanceGroup"];
55
-
56
- /** Ordered action names for schemas, validation messages, and docs. */
57
- export const TREE_SITTER_ACTION_NAMES = TREE_SITTER_ACTION_SPECS.map(
58
- (spec) => spec.name,
59
- ) as readonly TreeSitterAction[];
60
-
61
- const TREE_SITTER_ACTION_NAME_SET = new Set<string>(TREE_SITTER_ACTION_NAMES);
62
- const TREE_SITTER_ACTION_SPEC_MAP = new Map<TreeSitterAction, TreeSitterActionSpec>(
63
- TREE_SITTER_ACTION_SPECS.map((spec) => [spec.name, spec]),
64
- );
65
-
66
- /** Check whether a runtime string is a supported `tree_sitter` action. */
67
- export function isTreeSitterAction(action: string): action is TreeSitterAction {
68
- return TREE_SITTER_ACTION_NAME_SET.has(action);
69
- }
70
-
71
- /** Look up the spec for one supported `tree_sitter` action. */
72
- export function getTreeSitterActionSpec(action: TreeSitterAction): TreeSitterActionSpec {
73
- const spec = TREE_SITTER_ACTION_SPEC_MAP.get(action);
74
- if (!spec) {
75
- throw new Error(`Unknown tree_sitter action: ${action}`);
76
- }
77
- return spec;
78
- }
79
-
80
- /** Get the ordered action names that belong to one prompt-guidance group. */
81
- export function getTreeSitterActionNamesByGuidanceGroup(
82
- group: TreeSitterGuidanceGroup,
83
- ): TreeSitterAction[] {
84
- return TREE_SITTER_ACTION_SPECS.filter((spec) => spec.guidanceGroup === group).map(
85
- (spec) => spec.name,
86
- );
87
- }
88
-
89
- /** Format the public action list for validation messages and docs. */
90
- export function formatTreeSitterActionList(): string {
91
- return TREE_SITTER_ACTION_NAMES.join(", ");
92
- }
@@ -1,439 +0,0 @@
1
- // Affected action — blast-radius analysis for a symbol change.
2
- // biome-ignore-all lint/nursery/noExcessiveLinesPerFile: file-level and single-target affected flows share helpers to keep the blast-radius logic in one place
3
-
4
- import * as path from "node:path";
5
- import { buildArchitectureModel, findModuleForPath, getDependents } from "../architecture.ts";
6
- import {
7
- appendPrioritySignalsSection,
8
- summarizePrioritySignalsForFiles,
9
- } from "../prioritization-signals.ts";
10
- import { getSemanticService } from "../providers/semantic-provider.ts";
11
- import { resolveTarget } from "../resolve-target.ts";
12
- import {
13
- escapeRegex,
14
- filterOutDeclaration,
15
- isInProjectPath,
16
- normalizePath,
17
- runRipgrep,
18
- uriToFile,
19
- } from "../search-helpers.ts";
20
- import {
21
- dedupeFileLineRefs,
22
- highestConfidence,
23
- isResolvedTargetGroup,
24
- } from "../semantic-action-helpers.ts";
25
- import type { ResolvedTarget, ResolvedTargetGroup } from "../target-resolution.ts";
26
- import type { ActionParams } from "../tool-actions.ts";
27
- import type { AffectedDetails, CodeIntelResult, ConfidenceMode } from "../types.ts";
28
-
29
- export async function executeAffectedAction(
30
- params: ActionParams,
31
- cwd: string,
32
- ): Promise<CodeIntelResult> {
33
- const target = await resolveTarget(params, cwd);
34
- if (typeof target === "string") {
35
- return {
36
- content: target,
37
- details: {
38
- type: "affected" as const,
39
- data: {
40
- confidence: "unavailable",
41
- directCount: 0,
42
- downstreamCount: 0,
43
- riskLevel: "low",
44
- checkNext: [],
45
- likelyTests: [],
46
- omittedCount: 0,
47
- nextQueries: ["Provide `file`, `line`, `character` or a `symbol` to resolve the target"],
48
- },
49
- },
50
- };
51
- }
52
-
53
- if (isResolvedTargetGroup(target)) {
54
- return executeFileLevelAffected(target, params, cwd);
55
- }
56
-
57
- const symbolName =
58
- target.name ?? `symbol at ${path.relative(cwd, target.file)}:${target.displayLine}`;
59
- return executeSingleAffected(target, symbolName, params, cwd);
60
- }
61
-
62
- interface GatheredRef {
63
- file: string;
64
- line: number;
65
- }
66
-
67
- interface ImpactAnalysis {
68
- confidence: ConfidenceMode;
69
- affectedFiles: Set<string>;
70
- affectedModules: Set<string>;
71
- downstreamCount: number;
72
- checkNext: string[];
73
- likelyTests: string[];
74
- riskLevel: "low" | "medium" | "high";
75
- externalRefs: number;
76
- }
77
-
78
- async function executeSingleAffected(
79
- target: ResolvedTarget,
80
- symbolName: string,
81
- params: ActionParams,
82
- cwd: string,
83
- ): Promise<CodeIntelResult> {
84
- const refs = await gatherReferences(target, params, cwd);
85
- const model = await buildArchitectureModel(cwd);
86
- const analysis = analyzeImpact(refs, model, target.name, cwd);
87
-
88
- const prioritySignals = summarizePrioritySignalsForFiles(
89
- cwd,
90
- analysis.affectedFiles.size > 0 ? [...analysis.affectedFiles] : [target.file],
91
- );
92
- const content = formatAffectedOutput(symbolName, refs, analysis, params, prioritySignals);
93
- const details: AffectedDetails = {
94
- confidence: analysis.confidence,
95
- directCount: refs.refs.length,
96
- downstreamCount: analysis.downstreamCount,
97
- riskLevel: analysis.riskLevel,
98
- checkNext: analysis.checkNext,
99
- likelyTests: analysis.likelyTests,
100
- omittedCount: computeOmittedCount(analysis.externalRefs, analysis.affectedFiles.size, params),
101
- nextQueries: [
102
- "`code_intel brief` on the most-affected module for deeper context",
103
- `\`code_intel callers\` with \`symbol: "${symbolName}"\` for grouped call-site detail`,
104
- ],
105
- prioritySignals,
106
- };
107
- return { content, details: { type: "affected" as const, data: details } };
108
- }
109
-
110
- async function executeFileLevelAffected(
111
- targetGroup: ResolvedTargetGroup,
112
- params: ActionParams,
113
- cwd: string,
114
- ): Promise<CodeIntelResult> {
115
- const perTarget = await Promise.all(
116
- targetGroup.targets.map(async (target) => ({
117
- target,
118
- refs: await gatherReferences(target, params, cwd),
119
- })),
120
- );
121
-
122
- const combinedRefs = dedupeFileLineRefs(perTarget.flatMap((entry) => entry.refs.refs));
123
- const combinedExternal = perTarget.reduce((sum, entry) => sum + entry.refs.externalCount, 0);
124
- const combinedConfidence = highestConfidence(perTarget.map((entry) => entry.refs.confidence));
125
- const model = await buildArchitectureModel(cwd);
126
- const analysis = analyzeImpact(
127
- { refs: combinedRefs, confidence: combinedConfidence, externalCount: combinedExternal },
128
- model,
129
- null,
130
- cwd,
131
- );
132
-
133
- const prioritySignals = summarizePrioritySignalsForFiles(
134
- cwd,
135
- analysis.affectedFiles.size > 0 ? [...analysis.affectedFiles] : [targetGroup.file],
136
- );
137
-
138
- const lines: string[] = [];
139
- lines.push(`# Affected: \`${targetGroup.displayName}\``);
140
- lines.push("");
141
- const totalRefs = combinedRefs.length + combinedExternal;
142
- const refSummary =
143
- combinedExternal > 0
144
- ? `${totalRefs} refs (${combinedRefs.length} direct + ${combinedExternal} external)`
145
- : `${totalRefs} ref${totalRefs !== 1 ? "s" : ""}`;
146
- lines.push(formatFileLevelAffectedHeader(targetGroup.targets.length, refSummary, analysis));
147
- lines.push("");
148
-
149
- lines.push("## Exported Targets");
150
- for (const entry of perTarget) {
151
- lines.push(
152
- `- \`${entry.target.name ?? "symbol"}\` — ${entry.refs.refs.length} ref${entry.refs.refs.length !== 1 ? "s" : ""}`,
153
- );
154
- }
155
- lines.push("");
156
-
157
- addRiskSection(lines, analysis, totalRefs);
158
- addReferencesSection(lines, combinedRefs, params.maxResults ?? 8);
159
- appendPrioritySignalsSection(lines, prioritySignals);
160
- addCheckNextSection(lines, analysis.checkNext);
161
- addTestsSection(lines, analysis.likelyTests);
162
- lines.push("## Next");
163
- lines.push("- `code_intel brief` on the most-affected module for deeper context");
164
- lines.push("- Use `file` + coordinates to inspect one exported target precisely");
165
- lines.push("");
166
-
167
- const details: AffectedDetails = {
168
- confidence: analysis.confidence,
169
- directCount: combinedRefs.length,
170
- downstreamCount: analysis.downstreamCount,
171
- riskLevel: analysis.riskLevel,
172
- checkNext: analysis.checkNext,
173
- likelyTests: analysis.likelyTests,
174
- omittedCount: computeOmittedCount(analysis.externalRefs, analysis.affectedFiles.size, params),
175
- nextQueries: [
176
- "`code_intel brief` on the most-affected module for deeper context",
177
- "Use `file` + coordinates to inspect one exported target precisely",
178
- ],
179
- prioritySignals,
180
- };
181
-
182
- return { content: lines.join("\n"), details: { type: "affected" as const, data: details } };
183
- }
184
-
185
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: multi-source reference gathering with fallback logic
186
- async function gatherReferences(
187
- target: ResolvedTarget,
188
- params: ActionParams,
189
- cwd: string,
190
- ): Promise<{ refs: GatheredRef[]; confidence: ConfidenceMode; externalCount: number }> {
191
- const lsp = await getSemanticService(cwd, { waitForReady: true });
192
- const refs: GatheredRef[] = [];
193
- let externalCount = 0;
194
-
195
- if (lsp) {
196
- const lspRefs = await lsp.references(target.file, target.position);
197
- if (lspRefs && lspRefs.length > 0) {
198
- const filtered = filterOutDeclaration(lspRefs, target.file, target.position);
199
- for (const ref of filtered) {
200
- const filePath = uriToFile(ref.uri);
201
- if (isInProjectPath(filePath, cwd)) {
202
- refs.push({ file: path.relative(cwd, filePath), line: ref.range.start.line + 1 });
203
- } else {
204
- externalCount++;
205
- }
206
- }
207
- return { refs, confidence: "semantic", externalCount };
208
- }
209
- }
210
-
211
- if (target.name) {
212
- const scopePath = params.path ? normalizePath(params.path, cwd) : cwd;
213
- const pattern = `\\b${escapeRegex(target.name)}\\b`;
214
- const matches = runRipgrep(pattern, scopePath, cwd, { maxMatches: 30 });
215
- for (const m of matches) {
216
- if (!isDeclarationMatch(m.file, m.line, target, cwd)) {
217
- refs.push({ file: path.relative(cwd, path.resolve(cwd, m.file)), line: m.line });
218
- }
219
- }
220
- return { refs, confidence: "heuristic", externalCount: 0 };
221
- }
222
-
223
- return { refs, confidence: "unavailable", externalCount: 0 };
224
- }
225
-
226
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: impact analysis with downstream module traversal
227
- function analyzeImpact(
228
- result: { refs: GatheredRef[]; confidence: ConfidenceMode; externalCount: number },
229
- model: Awaited<ReturnType<typeof buildArchitectureModel>>,
230
- symbolName: string | null,
231
- cwd: string,
232
- ): ImpactAnalysis {
233
- const affectedFiles = new Set(result.refs.map((r) => r.file));
234
- const affectedModules = new Set<string>();
235
- const checkNext: string[] = [];
236
- let downstreamCount = 0;
237
-
238
- if (model) {
239
- for (const file of affectedFiles) {
240
- const mod = findModuleForPath(model, path.resolve(cwd, file));
241
- if (mod) affectedModules.add(mod.name);
242
- }
243
-
244
- const downstreamModules = new Set<string>();
245
- const queue = [...affectedModules];
246
- while (queue.length > 0) {
247
- const modName = queue.shift() as string;
248
- for (const dep of getDependents(model, modName)) {
249
- if (!affectedModules.has(dep.name) && !downstreamModules.has(dep.name)) {
250
- downstreamModules.add(dep.name);
251
- queue.push(dep.name);
252
- }
253
- }
254
- }
255
- downstreamCount = downstreamModules.size;
256
-
257
- for (const modName of [...affectedModules, ...downstreamModules].slice(0, 3)) {
258
- const mod = model.modules.find((m) => m.name === modName);
259
- if (mod) checkNext.push(`${mod.name.replace(/^@[^/]+\//, "")} (\`${mod.relativePath}\`)`);
260
- }
261
- }
262
-
263
- const likelyTests = findLikelyTests(affectedFiles, symbolName);
264
- const totalRefs = result.refs.length + result.externalCount;
265
- const riskLevel = assessRisk(totalRefs, affectedModules.size, downstreamCount);
266
-
267
- return {
268
- confidence: result.confidence,
269
- affectedFiles,
270
- affectedModules,
271
- downstreamCount,
272
- checkNext,
273
- likelyTests,
274
- riskLevel,
275
- externalRefs: result.externalCount,
276
- };
277
- }
278
-
279
- function findLikelyTests(affectedFiles: Set<string>, _symbolName: string | null): string[] {
280
- const tests: string[] = [];
281
- for (const file of affectedFiles) {
282
- if (file.includes("test") || file.includes("spec") || file.includes("__tests__")) {
283
- tests.push(file);
284
- }
285
- }
286
- return tests.slice(0, 3);
287
- }
288
-
289
- function assessRisk(
290
- directCount: number,
291
- moduleCount: number,
292
- downstreamCount: number,
293
- ): "low" | "medium" | "high" {
294
- if (directCount > 10 || moduleCount > 3 || downstreamCount > 1) return "high";
295
- if (directCount > 3 || moduleCount > 1 || downstreamCount >= 1) return "medium";
296
- return "low";
297
- }
298
-
299
- // biome-ignore lint/complexity/useMaxParams: affected formatting keeps related inputs explicit for readability
300
- function formatAffectedOutput(
301
- symbolName: string,
302
- result: { refs: GatheredRef[]; confidence: ConfidenceMode; externalCount: number },
303
- analysis: ImpactAnalysis,
304
- params: ActionParams,
305
- prioritySignals: import("../prioritization-signals.ts").PrioritySignalsSummary | null,
306
- ): string {
307
- const totalRefs = result.refs.length + analysis.externalRefs;
308
- const lines: string[] = [];
309
-
310
- lines.push(`# Affected: \`${symbolName}\``);
311
- lines.push("");
312
- const refSummary =
313
- analysis.externalRefs > 0
314
- ? `${totalRefs} refs (${result.refs.length} direct + ${analysis.externalRefs} external)`
315
- : `${totalRefs} ref${totalRefs !== 1 ? "s" : ""}`;
316
- lines.push(
317
- `**Risk: ${analysis.riskLevel.toUpperCase()}** | ${refSummary} | ${analysis.affectedFiles.size} file${analysis.affectedFiles.size !== 1 ? "s" : ""} | ${analysis.affectedModules.size} module${analysis.affectedModules.size !== 1 ? "s" : ""} | ${analysis.downstreamCount} downstream (${analysis.confidence})`,
318
- );
319
- if (analysis.externalRefs > 0) {
320
- lines.push(
321
- "_External references are not listed individually (node_modules, .pnpm, or out-of-tree)_",
322
- );
323
- }
324
- lines.push("");
325
-
326
- addRiskSection(lines, analysis, totalRefs);
327
- addReferencesSection(lines, result.refs, params.maxResults ?? 8);
328
- appendPrioritySignalsSection(lines, prioritySignals);
329
- addCheckNextSection(lines, analysis.checkNext);
330
- addTestsSection(lines, analysis.likelyTests);
331
- addAffectedNextQueries(lines, symbolName, analysis);
332
-
333
- return lines.join("\n");
334
- }
335
-
336
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: risk level formatting with conditional branching
337
- function addRiskSection(lines: string[], analysis: ImpactAnalysis, directCount: number): void {
338
- lines.push("## Risk Assessment");
339
- const { riskLevel, affectedFiles, affectedModules, downstreamCount } = analysis;
340
- if (riskLevel === "low") {
341
- lines.push(
342
- `\`low\` — ${directCount} ref${directCount !== 1 ? "s" : ""}, local, no downstream dependents.`,
343
- );
344
- } else if (riskLevel === "medium") {
345
- lines.push(
346
- `\`medium\` — ${directCount} ref${directCount !== 1 ? "s" : ""} across ${affectedFiles.size} file${affectedFiles.size !== 1 ? "s" : ""}${downstreamCount > 0 ? `, ${downstreamCount} downstream` : ""}.`,
347
- );
348
- } else {
349
- lines.push(
350
- `\`high\` — ${directCount} ref${directCount !== 1 ? "s" : ""} across ${affectedFiles.size} file${affectedFiles.size !== 1 ? "s" : ""} in ${affectedModules.size} module${affectedModules.size !== 1 ? "s" : ""}${downstreamCount > 0 ? `, ${downstreamCount} downstream` : ""}.`,
351
- );
352
- }
353
- lines.push("");
354
- }
355
-
356
- function addReferencesSection(lines: string[], refs: GatheredRef[], maxFiles: number): void {
357
- if (refs.length === 0) return;
358
- lines.push("## Direct References");
359
- const byFile = new Map<string, number[]>();
360
- for (const ref of refs) {
361
- const fileLines = byFile.get(ref.file) ?? [];
362
- fileLines.push(ref.line);
363
- byFile.set(ref.file, fileLines);
364
- }
365
-
366
- let shown = 0;
367
- for (const [file, fileLines] of byFile) {
368
- if (shown >= maxFiles) break;
369
- const lineStr = fileLines
370
- .slice(0, 5)
371
- .map((l) => `L${l}`)
372
- .join(", ");
373
- const extra = fileLines.length > 5 ? ` +${fileLines.length - 5} more` : "";
374
- lines.push(`- \`${file}\` ${lineStr}${extra}`);
375
- shown++;
376
- }
377
- if (byFile.size > maxFiles) {
378
- lines.push(`- _+${byFile.size - maxFiles} more files omitted_`);
379
- }
380
- lines.push("");
381
- }
382
-
383
- function addCheckNextSection(lines: string[], checkNext: string[]): void {
384
- if (checkNext.length === 0) return;
385
- lines.push("## Check Next");
386
- for (const item of checkNext.slice(0, 3)) {
387
- lines.push(`- ${item}`);
388
- }
389
- lines.push("");
390
- }
391
-
392
- function addTestsSection(lines: string[], tests: string[]): void {
393
- if (tests.length === 0) return;
394
- lines.push("## Likely Tests");
395
- for (const t of tests.slice(0, 3)) {
396
- lines.push(`- \`${t}\``);
397
- }
398
- lines.push("");
399
- }
400
-
401
- function computeOmittedCount(
402
- externalRefs: number,
403
- affectedFileCount: number,
404
- params: ActionParams,
405
- ): number {
406
- return externalRefs + Math.max(0, affectedFileCount - (params.maxResults ?? 8));
407
- }
408
-
409
- function formatFileLevelAffectedHeader(
410
- targetCount: number,
411
- refSummary: string,
412
- analysis: ImpactAnalysis,
413
- ): string {
414
- return `**Risk: ${analysis.riskLevel.toUpperCase()}** | ${targetCount} exported target${targetCount !== 1 ? "s" : ""} | ${refSummary} | ${analysis.affectedFiles.size} file${analysis.affectedFiles.size !== 1 ? "s" : ""} | ${analysis.affectedModules.size} module${analysis.affectedModules.size !== 1 ? "s" : ""} | ${analysis.downstreamCount} downstream (${analysis.confidence})`;
415
- }
416
-
417
- function addAffectedNextQueries(
418
- lines: string[],
419
- symbolName: string,
420
- analysis: ImpactAnalysis,
421
- ): void {
422
- lines.push("## Next");
423
- if (analysis.checkNext.length > 0) {
424
- lines.push("- `code_intel brief` on the most-affected module for deeper context");
425
- }
426
- lines.push(
427
- `- \`code_intel callers\` with \`symbol: "${symbolName}"\` for grouped call-site detail`,
428
- );
429
- lines.push("");
430
- }
431
-
432
- function isDeclarationMatch(
433
- file: string,
434
- line: number,
435
- target: ResolvedTarget,
436
- cwd: string,
437
- ): boolean {
438
- return path.resolve(cwd, file) === target.file && line === target.displayLine;
439
- }