@mrclrchtr/supi-code-intelligence 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/README.md +13 -2
  2. package/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  3. package/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  4. package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  5. package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  6. package/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  7. package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  8. package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  9. package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  10. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  11. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  14. package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
  15. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  16. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
  73. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  74. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  75. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  76. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
  77. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  78. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  79. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  80. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  81. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  82. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  83. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  84. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  85. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  86. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  87. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  88. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  89. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  90. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  91. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  92. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  93. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  94. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  95. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  96. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  97. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  98. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  99. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  100. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  101. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  102. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  103. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  104. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  105. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  106. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  107. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  108. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  109. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  169. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  170. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  171. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  172. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  173. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  174. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  175. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  176. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  177. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  178. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  179. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  180. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  181. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  182. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  183. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
  184. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  185. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
  186. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
  187. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  188. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  189. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
  190. package/node_modules/@mrclrchtr/{supi-tree-sitter/node_modules/web-tree-sitter/LICENSE → supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt} +16 -6
  191. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
  192. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
  193. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  194. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  195. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  196. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  197. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  198. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
  199. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  200. package/node_modules/@mrclrchtr/supi-lsp/package.json +2 -2
  201. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
  202. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
  203. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
  204. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
  205. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
  206. package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
  207. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
  208. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
  209. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
  210. package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
  211. package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
  212. package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
  213. package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +5 -14
  214. package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
  215. package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
  216. package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
  217. package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
  218. package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
  219. package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
  220. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
  221. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  222. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  223. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  224. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  225. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  226. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  227. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  228. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  229. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  230. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  231. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  232. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  233. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
  234. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
  235. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
  236. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
  237. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
  238. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
  239. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
  240. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
  241. package/package.json +4 -4
  242. package/src/api.ts +15 -0
  243. package/src/architecture.ts +1 -1
  244. package/src/brief.ts +9 -53
  245. package/src/code-intelligence.ts +6 -2
  246. package/src/index.ts +15 -0
  247. package/src/pattern-structured.ts +26 -26
  248. package/src/presentation/markdown/affected.ts +170 -0
  249. package/src/presentation/markdown/brief.ts +174 -0
  250. package/src/presentation/markdown/map.ts +54 -0
  251. package/src/presentation/markdown/overview.ts +59 -0
  252. package/src/presentation/markdown/pattern.ts +239 -0
  253. package/src/presentation/markdown/relations.ts +121 -0
  254. package/src/prioritization-signals.ts +1 -1
  255. package/src/resolve-target.ts +58 -40
  256. package/src/search-helpers.ts +17 -4
  257. package/src/substrates/lsp-adapter.ts +197 -0
  258. package/src/substrates/tree-sitter-adapter.ts +173 -0
  259. package/src/substrates/types.ts +113 -0
  260. package/src/target-resolution.ts +35 -416
  261. package/src/targeting/query.ts +60 -0
  262. package/src/targeting/resolve-anchored.ts +80 -0
  263. package/src/targeting/resolve-file.ts +197 -0
  264. package/src/targeting/resolve-symbol.ts +110 -0
  265. package/src/targeting/types.ts +111 -0
  266. package/src/tool/execute-affected.ts +3 -3
  267. package/src/tool/execute-brief.ts +29 -3
  268. package/src/tool/execute-map.ts +5 -2
  269. package/src/tool/execute-pattern.ts +5 -3
  270. package/src/tool/execute-relations.ts +15 -23
  271. package/src/tool/guidance.ts +30 -1
  272. package/src/tool/tool-specs.ts +29 -48
  273. package/src/use-case/build-overview.ts +36 -0
  274. package/src/use-case/generate-affected.ts +279 -0
  275. package/src/use-case/generate-brief.ts +324 -0
  276. package/src/{actions/map-action.ts → use-case/generate-map.ts} +30 -60
  277. package/src/use-case/generate-pattern.ts +270 -0
  278. package/src/use-case/generate-relations.ts +392 -0
  279. package/src/use-case/support/semantic-references.ts +114 -0
  280. package/src/use-case/types.ts +43 -0
  281. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/README.md +0 -265
  282. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs +0 -4661
  283. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs.map +0 -7
  284. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js +0 -4605
  285. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js.map +0 -7
  286. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm +0 -0
  287. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm.map +0 -57
  288. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/package.json +0 -100
  289. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs +0 -4063
  290. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs.map +0 -7
  291. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts +0 -1025
  292. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts.map +0 -58
  293. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts +0 -1025
  294. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +0 -58
  295. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js +0 -4007
  296. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js.map +0 -7
  297. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm +0 -0
  298. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm.map +0 -55
  299. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
  300. package/src/actions/affected-action.ts +0 -452
  301. package/src/actions/brief-action.ts +0 -378
  302. package/src/actions/callees-action.ts +0 -155
  303. package/src/actions/callers-action.ts +0 -253
  304. package/src/actions/implementations-action.ts +0 -172
  305. package/src/actions/pattern-action.ts +0 -392
  306. package/src/providers/semantic-provider.ts +0 -34
  307. package/src/providers/structural-provider.ts +0 -26
@@ -1,17 +1,20 @@
1
- // Target resolution — resolve symbol references to concrete file positions
2
- // for semantic actions (callers, callees, implementations, affected).
3
- // biome-ignore-all lint/nursery/noExcessiveLinesPerFile: anchored, symbol, and file-surface target resolution intentionally live together to share resolution helpers
1
+ /**
2
+ * Target resolution facade that delegates to the structured targeting pipeline
3
+ * while preserving backward-compatible types and exports for existing consumers.
4
+ *
5
+ * New code should import from `./targeting/` directly.
6
+ */
4
7
 
5
- import * as fs from "node:fs";
6
- import * as path from "node:path";
7
- import { isWithinOrEqual } from "@mrclrchtr/supi-core/api";
8
- import { type Position, type SessionLspService, toLspPosition } from "@mrclrchtr/supi-lsp/api";
9
- import { getSemanticService, getSemanticServiceState } from "./providers/semantic-provider.ts";
10
- import { withStructuralSession } from "./providers/structural-provider.ts";
8
+ import { type Position, toLspPosition } from "@mrclrchtr/supi-lsp/api";
11
9
  import { normalizePath } from "./search-helpers.ts";
12
- import { highestConfidence } from "./semantic-action-helpers.ts";
10
+ import type { SemanticSubstrate, StructuralSubstrate } from "./substrates/types.ts";
11
+ import { resolveAnchoredTarget as resolveAnchored } from "./targeting/resolve-anchored.ts";
12
+ import { resolveFileTargetGroup as resolveFile } from "./targeting/resolve-file.ts";
13
+ import { resolveSymbolTarget as resolveSymbol } from "./targeting/resolve-symbol.ts";
13
14
  import type { ConfidenceMode, DisambiguationCandidate } from "./types.ts";
14
15
 
16
+ // ── Re-exported legacy types ──────────────────────────────────────────
17
+
15
18
  export interface ResolvedTarget {
16
19
  file: string;
17
20
  /** 0-based position for LSP API */
@@ -46,8 +49,11 @@ export function toZeroBased(line: number, character: number): Position {
46
49
  return toLspPosition(line, character);
47
50
  }
48
51
 
52
+ // ── Anchored resolver ─────────────────────────────────────────────────
53
+
49
54
  /**
50
55
  * Resolve a target from anchored coordinates (file + line + character).
56
+ * Delegates to the new targeting pipeline after normalizing the file path.
51
57
  */
52
58
  export function resolveAnchoredTarget(
53
59
  file: string,
@@ -56,80 +62,39 @@ export function resolveAnchoredTarget(
56
62
  cwd: string,
57
63
  ): TargetResolutionResult {
58
64
  const resolvedFile = normalizePath(file, cwd);
65
+ const outcome = resolveAnchored(resolvedFile, line, character);
59
66
 
60
- if (!fs.existsSync(resolvedFile)) {
61
- return { kind: "error", message: `File not found: \`${file}\`` };
62
- }
63
-
64
- if (isBinaryFile(resolvedFile)) {
67
+ if (outcome.kind === "resolved") {
65
68
  return {
66
- kind: "error",
67
- message: `File type not supported for semantic analysis: \`${file}\`. Use \`code_pattern\` for explicit text search.`,
69
+ kind: "resolved",
70
+ target: outcome.target as ResolvedTarget,
68
71
  };
69
72
  }
70
73
 
71
- const position = toZeroBased(line, character);
72
-
73
- return {
74
- kind: "resolved",
75
- target: {
76
- file: resolvedFile,
77
- position,
78
- displayLine: line,
79
- displayCharacter: character,
80
- name: null,
81
- kind: null,
82
- confidence: "semantic",
83
- },
84
- };
74
+ return outcome as TargetResolutionResult;
85
75
  }
86
76
 
77
+ // ── File-level target group ───────────────────────────────────────────
78
+
87
79
  /**
88
80
  * Resolve a file-only request into a group of actionable targets.
89
- * Prefers LSP document symbols when available and falls back to Tree-sitter export discovery.
81
+ * Delegates to the new targeting pipeline with optional structural substrate.
90
82
  */
91
83
  export async function resolveFileTargetGroup(
92
84
  file: string,
93
85
  cwd: string,
86
+ structural?: StructuralSubstrate,
94
87
  ): Promise<{ kind: "resolved"; group: ResolvedTargetGroup } | { kind: "error"; message: string }> {
95
- const resolvedFile = normalizePath(file, cwd);
96
-
97
- if (!fs.existsSync(resolvedFile)) {
98
- return { kind: "error", message: `File not found: \`${file}\`` };
99
- }
100
-
101
- if (isBinaryFile(resolvedFile)) {
102
- return {
103
- kind: "error",
104
- message: `File type not supported for semantic analysis: \`${file}\`. Use \`code_pattern\` for explicit text search.`,
105
- };
106
- }
107
-
108
- const relPath = path.relative(cwd, resolvedFile);
109
- const structuralTargets = await resolveFileTargetsViaTreeSitter(relPath, resolvedFile, cwd);
110
- const lspTargets = await resolveFileTargetsViaLsp(resolvedFile, cwd, structuralTargets);
111
- const targets = lspTargets ?? structuralTargets;
112
-
113
- if (!targets || targets.length === 0) {
114
- return {
115
- kind: "error",
116
- message:
117
- `**Error:** File-level semantic exploration is not available for \`${file}\`. ` +
118
- "Provide `line` and `character`, or a `symbol` for discovery.",
119
- };
120
- }
121
-
88
+ const outcome = await resolveFile(file, cwd, { structural });
89
+ if (outcome.kind === "error") return outcome;
122
90
  return {
123
91
  kind: "resolved",
124
- group: {
125
- file: resolvedFile,
126
- displayName: relPath,
127
- targets,
128
- confidence: highestConfidence(targets.map((target) => target.confidence)),
129
- },
92
+ group: outcome.group as ResolvedTargetGroup,
130
93
  };
131
94
  }
132
95
 
96
+ // ── Symbol resolver ───────────────────────────────────────────────────
97
+
133
98
  /**
134
99
  * Resolve a target from symbol discovery — finds matching declarations.
135
100
  * Symbol discovery is semantic-only; it does not fall back to text search.
@@ -137,367 +102,21 @@ export async function resolveFileTargetGroup(
137
102
  export async function resolveSymbolTarget(
138
103
  symbol: string,
139
104
  cwd: string,
105
+ semantic: SemanticSubstrate,
140
106
  options?: {
141
107
  path?: string;
142
108
  kind?: string;
143
109
  exportedOnly?: boolean;
144
110
  },
145
111
  ): Promise<TargetResolutionResult> {
146
- const lspState = await getSemanticServiceState(cwd, { waitForReady: true });
147
-
148
- if (lspState.kind !== "ready") {
149
- return {
150
- kind: "error",
151
- message:
152
- `Symbol discovery for \`${symbol}\` requires active LSP. ` +
153
- "Use `file` + coordinates, or enable LSP and retry.",
154
- };
155
- }
156
-
157
- return resolveSymbolViaLsp(symbol, cwd, lspState.service, options);
158
- }
159
-
160
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: pre-existing — not introduced by this change
161
- async function resolveSymbolViaLsp(
162
- symbol: string,
163
- cwd: string,
164
- lsp: SessionLspService,
165
- options?: { path?: string; kind?: string; exportedOnly?: boolean },
166
- ): Promise<TargetResolutionResult> {
167
- const results = await lsp.workspaceSymbol(symbol);
168
- if (!results || results.length === 0) {
169
- return { kind: "error", message: `Symbol not found: \`${symbol}\`` };
170
- }
171
-
172
- // Filter by path scope
173
- const scopePath = options?.path ? normalizePath(options.path, cwd) : null;
174
- let candidates = results.filter((s) => {
175
- if (!("location" in s) || !s.location) return false;
176
- const uri = s.location.uri;
177
- const filePath = uri.startsWith("file://") ? decodeURIComponent(uri.slice(7)) : uri;
178
- if (scopePath && !isWithinOrEqual(scopePath, filePath)) return false;
179
- return true;
180
- });
181
-
182
- // Filter by kind
183
- if (options?.kind) {
184
- const kindLower = options.kind.toLowerCase();
185
- candidates = candidates.filter((s) => {
186
- const symbolKind = symbolKindName(s.kind);
187
- return symbolKind.toLowerCase().includes(kindLower);
188
- });
189
- }
190
-
191
- // Filter to exported symbols only (heuristic: non-local SymbolKinds)
192
- if (options?.exportedOnly) {
193
- candidates = candidates.filter((s) => {
194
- // LSP workspace symbols don't expose export visibility directly.
195
- // Filter out SymbolKinds that are typically local/private (Variable, Field, Property).
196
- const NON_EXPORTED_KINDS = new Set([7, 8, 13]); // Property, Field, Variable
197
- return !NON_EXPORTED_KINDS.has(s.kind);
198
- });
199
- }
200
-
201
- if (candidates.length === 0) {
202
- return {
203
- kind: "error",
204
- message: `Symbol not found: \`${symbol}\`${scopePath ? ` in path \`${options?.path}\`` : ""}`,
205
- };
206
- }
207
-
208
- if (candidates.length === 1) {
209
- const c = candidates[0];
210
- const rawLoc = "location" in c ? c.location : null;
211
- // WorkspaceSymbol.location may be Location | { uri: string }; we need range.
212
- const loc =
213
- rawLoc && "range" in rawLoc
214
- ? (rawLoc as { uri: string; range: { start: { line: number; character: number } } })
215
- : null;
216
- if (!loc) {
217
- return { kind: "error", message: `Symbol not found: \`${symbol}\`` };
218
- }
219
- const filePath = loc.uri.startsWith("file://") ? decodeURIComponent(loc.uri.slice(7)) : loc.uri;
112
+ const outcome = await resolveSymbol(symbol, cwd, semantic, options);
220
113
 
114
+ if (outcome.kind === "resolved") {
221
115
  return {
222
116
  kind: "resolved",
223
- target: {
224
- file: filePath,
225
- position: loc.range.start,
226
- displayLine: loc.range.start.line + 1,
227
- displayCharacter: loc.range.start.character + 1,
228
- name: c.name,
229
- kind: symbolKindName(c.kind),
230
- confidence: "semantic",
231
- },
117
+ target: outcome.target as ResolvedTarget,
232
118
  };
233
119
  }
234
120
 
235
- // Multiple candidates — return disambiguation
236
- const MAX_CANDIDATES = 8;
237
- const disambiguated = candidates
238
- .slice(0, MAX_CANDIDATES)
239
- .map((c, idx) => mapCandidateToDisambiguation(c, idx, cwd));
240
-
241
- return {
242
- kind: "disambiguation",
243
- candidates: disambiguated,
244
- omittedCount: Math.max(0, candidates.length - MAX_CANDIDATES),
245
- };
246
- }
247
-
248
- async function resolveFileTargetsViaLsp(
249
- resolvedFile: string,
250
- cwd: string,
251
- structuralTargets: ResolvedTarget[] | null,
252
- ): Promise<ResolvedTarget[] | null> {
253
- const lsp = await getSemanticService(cwd, { waitForReady: true });
254
- if (!lsp) return null;
255
-
256
- const symbols = await lsp.documentSymbols(resolvedFile);
257
- if (!symbols || symbols.length === 0) {
258
- return structuralTargets;
259
- }
260
-
261
- const topLevel = flattenDocumentSymbols(symbols)
262
- .filter((symbol) => !symbol.container)
263
- .map((symbol) =>
264
- createResolvedTarget({
265
- file: resolvedFile,
266
- line: symbol.line,
267
- character: symbol.character,
268
- name: symbol.name,
269
- kind: symbol.kind,
270
- confidence: "semantic",
271
- }),
272
- );
273
-
274
- if (topLevel.length === 0) {
275
- return structuralTargets;
276
- }
277
-
278
- if (!structuralTargets || structuralTargets.length === 0) {
279
- return dedupeTargets(topLevel);
280
- }
281
-
282
- const matched = structuralTargets.map((target) => {
283
- const byName = topLevel.find((candidate) => candidate.name === target.name);
284
- return byName ?? target;
285
- });
286
-
287
- return dedupeTargets(matched);
288
- }
289
-
290
- async function resolveFileTargetsViaTreeSitter(
291
- relPath: string,
292
- resolvedFile: string,
293
- cwd: string,
294
- ): Promise<ResolvedTarget[] | null> {
295
- try {
296
- return await withStructuralSession(cwd, async (tsSession) => {
297
- const exportsResult = await tsSession.exports(relPath);
298
- if (exportsResult.kind !== "success" || exportsResult.data.length === 0) {
299
- return null;
300
- }
301
-
302
- return dedupeTargets(
303
- exportsResult.data.map((record) =>
304
- createResolvedTarget({
305
- file: resolvedFile,
306
- line: record.range.startLine,
307
- character: record.range.startCharacter,
308
- name: record.name,
309
- kind: record.kind,
310
- confidence: "structural",
311
- }),
312
- ),
313
- );
314
- });
315
- } catch {
316
- return null;
317
- }
318
- }
319
-
320
- function flattenDocumentSymbols(
321
- symbols: Array<{
322
- name: string;
323
- kind: number;
324
- selectionRange?: { start: { line: number; character: number } };
325
- location?: { range: { start: { line: number; character: number } } };
326
- children?: Array<unknown>;
327
- }>,
328
- container: string | null = null,
329
- ): Array<{
330
- name: string;
331
- kind: string;
332
- line: number;
333
- character: number;
334
- container: string | null;
335
- }> {
336
- const flattened: Array<{
337
- name: string;
338
- kind: string;
339
- line: number;
340
- character: number;
341
- container: string | null;
342
- }> = [];
343
-
344
- for (const symbol of symbols) {
345
- const start = symbol.selectionRange?.start ?? symbol.location?.range.start;
346
- if (!start) continue;
347
-
348
- flattened.push({
349
- name: symbol.name,
350
- kind: symbolKindName(symbol.kind),
351
- line: start.line + 1,
352
- character: start.character + 1,
353
- container,
354
- });
355
-
356
- if (Array.isArray(symbol.children) && symbol.children.length > 0) {
357
- flattened.push(
358
- ...flattenDocumentSymbols(
359
- symbol.children as Array<{
360
- name: string;
361
- kind: number;
362
- selectionRange?: { start: { line: number; character: number } };
363
- location?: { range: { start: { line: number; character: number } } };
364
- children?: Array<unknown>;
365
- }>,
366
- symbol.name,
367
- ),
368
- );
369
- }
370
- }
371
-
372
- return flattened;
373
- }
374
-
375
- function createResolvedTarget(input: {
376
- file: string;
377
- line: number;
378
- character: number;
379
- name: string;
380
- kind: string | null;
381
- confidence: ConfidenceMode;
382
- }): ResolvedTarget {
383
- return {
384
- file: input.file,
385
- position: toZeroBased(input.line, input.character),
386
- displayLine: input.line,
387
- displayCharacter: input.character,
388
- name: input.name,
389
- kind: input.kind,
390
- confidence: input.confidence,
391
- };
392
- }
393
-
394
- function dedupeTargets(targets: ResolvedTarget[]): ResolvedTarget[] {
395
- const deduped = new Map<string, ResolvedTarget>();
396
- for (const target of targets) {
397
- const key = `${target.name ?? ""}:${target.displayLine}:${target.displayCharacter}`;
398
- if (!deduped.has(key)) {
399
- deduped.set(key, target);
400
- }
401
- }
402
- return [...deduped.values()];
403
- }
404
-
405
- // ── Helpers ───────────────────────────────────────────────────────────
406
-
407
- function mapCandidateToDisambiguation(
408
- c: {
409
- name: string;
410
- kind: number;
411
- containerName?: string | null;
412
- location?: { uri: string } | null;
413
- },
414
- idx: number,
415
- cwd: string,
416
- ): DisambiguationCandidate {
417
- const loc = c.location;
418
- const filePath = loc
419
- ? loc.uri.startsWith("file://")
420
- ? decodeURIComponent(loc.uri.slice(7))
421
- : loc.uri
422
- : "";
423
- const relPath = filePath ? path.relative(cwd, filePath) : "";
424
- const rangeObj =
425
- loc && "range" in loc
426
- ? (loc as unknown as { range: { start: { line: number; character: number } } }).range
427
- : null;
428
-
429
- return {
430
- name: c.name,
431
- kind: symbolKindName(c.kind),
432
- container: "containerName" in c ? (c.containerName ?? null) : null,
433
- file: relPath,
434
- line: rangeObj ? rangeObj.start.line + 1 : 0,
435
- character: rangeObj ? rangeObj.start.character + 1 : 0,
436
- reason: relPath,
437
- rank: idx + 1,
438
- };
439
- }
440
-
441
- const BINARY_EXTENSIONS = new Set([
442
- ".png",
443
- ".jpg",
444
- ".jpeg",
445
- ".gif",
446
- ".webp",
447
- ".bmp",
448
- ".ico",
449
- ".woff",
450
- ".woff2",
451
- ".ttf",
452
- ".eot",
453
- ".zip",
454
- ".tar",
455
- ".gz",
456
- ".bz2",
457
- ".pdf",
458
- ".doc",
459
- ".docx",
460
- ".exe",
461
- ".dll",
462
- ".so",
463
- ".dylib",
464
- ".wasm",
465
- ".node",
466
- ]);
467
-
468
- function isBinaryFile(filePath: string): boolean {
469
- return BINARY_EXTENSIONS.has(path.extname(filePath).toLowerCase());
470
- }
471
-
472
- /** Map LSP SymbolKind to a human-readable name. */
473
- function symbolKindName(kind: number): string {
474
- const kinds: Record<number, string> = {
475
- 1: "File",
476
- 2: "Module",
477
- 3: "Namespace",
478
- 4: "Package",
479
- 5: "Class",
480
- 6: "Method",
481
- 7: "Property",
482
- 8: "Field",
483
- 9: "Constructor",
484
- 10: "Enum",
485
- 11: "Interface",
486
- 12: "Function",
487
- 13: "Variable",
488
- 14: "Constant",
489
- 15: "String",
490
- 16: "Number",
491
- 17: "Boolean",
492
- 18: "Array",
493
- 19: "Object",
494
- 20: "Key",
495
- 21: "Null",
496
- 22: "EnumMember",
497
- 23: "Struct",
498
- 24: "Event",
499
- 25: "Operator",
500
- 26: "TypeParameter",
501
- };
502
- return kinds[kind] ?? "Unknown";
121
+ return outcome as TargetResolutionResult;
503
122
  }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Query normalization — converts raw tool/action parameters into a
3
+ * pre-classified {@link NormalizedQuery}.
4
+ *
5
+ * This is the first step in the targeting pipeline. Callers receive
6
+ * a disambiguated query kind so downstream resolvers can dispatch
7
+ * without re-checking input shapes.
8
+ */
9
+
10
+ import type { NormalizedQuery } from "./types.ts";
11
+
12
+ export interface QueryInput {
13
+ path?: string;
14
+ file?: string;
15
+ line?: number;
16
+ character?: number;
17
+ symbol?: string;
18
+ kind?: string;
19
+ exportedOnly?: boolean;
20
+ }
21
+
22
+ /**
23
+ * Normalize a raw params bag into a typed {@link NormalizedQuery}.
24
+ *
25
+ * Priority order:
26
+ * 1. anchored: file + line + character
27
+ * 2. file: file without coordinates
28
+ * 3. symbol: symbol without file
29
+ * 4. invalid: neither file nor symbol
30
+ */
31
+ export function normalizeQuery(input: QueryInput): NormalizedQuery {
32
+ if (input.file && input.line != null && input.character != null) {
33
+ return {
34
+ kind: "anchored",
35
+ file: input.file,
36
+ line: input.line,
37
+ character: input.character,
38
+ };
39
+ }
40
+
41
+ if (input.file) {
42
+ return { kind: "file", file: input.file };
43
+ }
44
+
45
+ if (input.symbol) {
46
+ return {
47
+ kind: "symbol",
48
+ symbol: input.symbol,
49
+ path: input.path,
50
+ symbolKind: input.kind,
51
+ exportedOnly: input.exportedOnly,
52
+ };
53
+ }
54
+
55
+ return {
56
+ kind: "invalid",
57
+ reason:
58
+ "Semantic actions require either anchored coordinates (`file`, `line`, `character`) or a `symbol` for discovery.",
59
+ };
60
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Anchored target resolution — resolves a file + position pair into a
3
+ * typed target outcome using purely filesystem-level validation.
4
+ *
5
+ * This resolver does not require LSP or Tree-sitter. It validates
6
+ * file existence, binary-file guards, and produces the necessary
7
+ * position conversions for downstream semantic operations.
8
+ */
9
+
10
+ import * as fs from "node:fs";
11
+ import * as path from "node:path";
12
+
13
+ const BINARY_EXTENSIONS = new Set([
14
+ ".png",
15
+ ".jpg",
16
+ ".jpeg",
17
+ ".gif",
18
+ ".webp",
19
+ ".bmp",
20
+ ".ico",
21
+ ".woff",
22
+ ".woff2",
23
+ ".ttf",
24
+ ".eot",
25
+ ".zip",
26
+ ".tar",
27
+ ".gz",
28
+ ".bz2",
29
+ ".pdf",
30
+ ".doc",
31
+ ".docx",
32
+ ".exe",
33
+ ".dll",
34
+ ".so",
35
+ ".dylib",
36
+ ".wasm",
37
+ ".node",
38
+ ]);
39
+
40
+ function isBinaryFile(filePath: string): boolean {
41
+ return BINARY_EXTENSIONS.has(path.extname(filePath).toLowerCase());
42
+ }
43
+
44
+ /**
45
+ * Resolve an anchored target from file + position.
46
+ *
47
+ * @param file - absolute path to the file
48
+ * @param line - 1-based line
49
+ * @param character - 1-based character
50
+ * @returns Typed outcome: resolved or error
51
+ */
52
+ export function resolveAnchoredTarget(
53
+ file: string,
54
+ line: number,
55
+ character: number,
56
+ ): import("./types.ts").TargetOutcome {
57
+ if (!fs.existsSync(file)) {
58
+ return { kind: "error", message: `File not found: \`${file}\`` };
59
+ }
60
+
61
+ if (isBinaryFile(file)) {
62
+ return {
63
+ kind: "error",
64
+ message: `File type not supported for semantic analysis: \`${file}\`. Use \`code_pattern\` for explicit text search.`,
65
+ };
66
+ }
67
+
68
+ return {
69
+ kind: "resolved",
70
+ target: {
71
+ file,
72
+ position: { line: line - 1, character: character - 1 },
73
+ displayLine: line,
74
+ displayCharacter: character,
75
+ name: null,
76
+ kind: null,
77
+ confidence: "semantic",
78
+ },
79
+ };
80
+ }