@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,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
+ }
@@ -0,0 +1,197 @@
1
+ /**
2
+ * File-surface target resolution — discovers actionable targets within a file
3
+ * using injected semantic (LSP document symbols) and structural (Tree-sitter exports)
4
+ * substrates with explicit fallback policy.
5
+ *
6
+ * Policy: LSP document symbols preferred (semantic). Falls back to Tree-sitter
7
+ * exports (structural) when LSP is unavailable or returns no results.
8
+ */
9
+
10
+ import * as fs from "node:fs";
11
+ import * as path from "node:path";
12
+ import { normalizePath } from "../search-helpers.ts";
13
+ import { highestConfidence } from "../semantic-action-helpers.ts";
14
+ import { createStructuralSubstrate } from "../substrates/tree-sitter-adapter.ts";
15
+ import type { SemanticSubstrate, StructuralSubstrate } from "../substrates/types.ts";
16
+ import type { ResolvedTargetData, ResolvedTargetGroupData } from "./types.ts";
17
+
18
+ const BINARY_EXTENSIONS = new Set([
19
+ ".png",
20
+ ".jpg",
21
+ ".jpeg",
22
+ ".gif",
23
+ ".webp",
24
+ ".bmp",
25
+ ".ico",
26
+ ".woff",
27
+ ".woff2",
28
+ ".ttf",
29
+ ".eot",
30
+ ".zip",
31
+ ".tar",
32
+ ".gz",
33
+ ".bz2",
34
+ ".pdf",
35
+ ".doc",
36
+ ".docx",
37
+ ".exe",
38
+ ".dll",
39
+ ".so",
40
+ ".dylib",
41
+ ".wasm",
42
+ ".node",
43
+ ]);
44
+
45
+ function isBinaryFile(filePath: string): boolean {
46
+ return BINARY_EXTENSIONS.has(path.extname(filePath).toLowerCase());
47
+ }
48
+
49
+ /**
50
+ * Resolve a file into a group of discoverable targets.
51
+ *
52
+ * @param file - the file path (absolute or cwd-relative)
53
+ * @param cwd - session working directory
54
+ * @param deps - injected substrates (both optional)
55
+ * @returns typed group outcome or error
56
+ */
57
+ export async function resolveFileTargetGroup(
58
+ file: string,
59
+ cwd: string,
60
+ deps: {
61
+ semantic?: SemanticSubstrate;
62
+ structural?: StructuralSubstrate;
63
+ } = {},
64
+ ): Promise<
65
+ { kind: "resolved"; group: ResolvedTargetGroupData } | { kind: "error"; message: string }
66
+ > {
67
+ const resolvedFile = normalizePath(file, cwd);
68
+
69
+ if (!fs.existsSync(resolvedFile)) {
70
+ return { kind: "error", message: `File not found: \`${file}\`` };
71
+ }
72
+
73
+ if (isBinaryFile(resolvedFile)) {
74
+ return {
75
+ kind: "error",
76
+ message: `File type not supported for semantic analysis: \`${file}\`. Use \`code_pattern\` for explicit text search.`,
77
+ };
78
+ }
79
+
80
+ const relPath = path.relative(cwd, resolvedFile);
81
+
82
+ // Try structure-based discovery first (faster, no LSP needed)
83
+ const structuralTargets = await resolveViaStructral(relPath, resolvedFile, cwd, deps.structural);
84
+
85
+ // Try semantic discovery (richer), preferring it over structural
86
+ const semanticTargets = await resolveViaSemantic(resolvedFile, deps.semantic, structuralTargets);
87
+
88
+ const targets = semanticTargets ?? structuralTargets;
89
+
90
+ if (!targets || targets.length === 0) {
91
+ return {
92
+ kind: "error",
93
+ message:
94
+ `**Error:** File-level semantic exploration is not available for \`${file}\`. ` +
95
+ "Provide `line` and `character`, or a `symbol` for discovery.",
96
+ };
97
+ }
98
+
99
+ return {
100
+ kind: "resolved",
101
+ group: {
102
+ file: resolvedFile,
103
+ displayName: relPath,
104
+ targets,
105
+ confidence: highestConfidence(targets.map((t) => t.confidence)),
106
+ },
107
+ };
108
+ }
109
+
110
+ // ── Resolution helpers ───────────────────────────────────────────────
111
+
112
+ async function resolveViaSemantic(
113
+ resolvedFile: string,
114
+ semantic?: SemanticSubstrate,
115
+ structuralTargets: ResolvedTargetData[] | null = null,
116
+ ): Promise<ResolvedTargetData[] | null> {
117
+ if (!semantic) return structuralTargets;
118
+
119
+ try {
120
+ const symbols = await semantic.documentSymbols(resolvedFile);
121
+ if (!symbols || symbols.length === 0) return structuralTargets;
122
+
123
+ const topLevel = symbols
124
+ .filter((s) => !s.container)
125
+ .map((s) => ({
126
+ file: resolvedFile,
127
+ position: { line: s.line - 1, character: s.character - 1 },
128
+ displayLine: s.line,
129
+ displayCharacter: s.character,
130
+ name: s.name,
131
+ kind: s.kind,
132
+ confidence: "semantic" as const,
133
+ }));
134
+
135
+ if (topLevel.length === 0) return structuralTargets;
136
+ if (!structuralTargets || structuralTargets.length === 0) return dedupeTargets(topLevel);
137
+
138
+ const matched = structuralTargets.map((target) => {
139
+ const byName = topLevel.find((candidate) => candidate.name === target.name);
140
+ return byName ?? target;
141
+ });
142
+
143
+ return dedupeTargets(matched);
144
+ } catch {
145
+ return structuralTargets;
146
+ }
147
+ }
148
+
149
+ async function resolveViaStructral(
150
+ relPath: string,
151
+ resolvedFile: string,
152
+ cwd: string,
153
+ structural?: StructuralSubstrate,
154
+ ): Promise<ResolvedTargetData[] | null> {
155
+ // Resolve a substrate to use — prefer injected, fall back to auto-created
156
+ const substrate = structural ?? createFallbackSubstrate(cwd);
157
+ if (!substrate) return null;
158
+
159
+ try {
160
+ const exportsResult = await substrate.exports(relPath);
161
+ if (exportsResult.kind !== "success" || exportsResult.data.length === 0) return null;
162
+
163
+ return dedupeTargets(
164
+ exportsResult.data.map((record) => ({
165
+ file: resolvedFile,
166
+ position: { line: record.startLine - 1, character: record.startCharacter - 1 },
167
+ displayLine: record.startLine,
168
+ displayCharacter: record.startCharacter,
169
+ name: record.name,
170
+ kind: record.kind,
171
+ confidence: "structural" as const,
172
+ })),
173
+ );
174
+ } catch {
175
+ return null;
176
+ }
177
+ }
178
+
179
+ /** Create a fallback structural substrate from a working directory. */
180
+ function createFallbackSubstrate(dir: string): StructuralSubstrate | null {
181
+ try {
182
+ return createStructuralSubstrate(dir);
183
+ } catch {
184
+ return null;
185
+ }
186
+ }
187
+
188
+ function dedupeTargets(targets: ResolvedTargetData[]): ResolvedTargetData[] {
189
+ const deduped = new Map<string, ResolvedTargetData>();
190
+ for (const target of targets) {
191
+ const key = `${target.name ?? ""}:${target.displayLine}:${target.displayCharacter}`;
192
+ if (!deduped.has(key)) {
193
+ deduped.set(key, target);
194
+ }
195
+ }
196
+ return [...deduped.values()];
197
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Symbol target resolution — discovers symbols via the semantic substrate
3
+ * and returns typed outcomes (resolved, disambiguation, or error).
4
+ *
5
+ * This resolver is semantic-only: it does not fall back to text search
6
+ * or heuristic guessing. Ambiguous matches produce explicit disambiguation.
7
+ */
8
+
9
+ import * as path from "node:path";
10
+ import { isWithinOrEqual } from "@mrclrchtr/supi-core/project";
11
+ import type { SemanticSubstrate } from "../substrates/types.ts";
12
+ import type { DisambiguationCandidateData, TargetOutcome } from "./types.ts";
13
+
14
+ const MAX_CANDIDATES = 8;
15
+ const NON_EXPORTED_KINDS = new Set(["Variable", "Field", "Property"]);
16
+
17
+ /**
18
+ * Resolve a symbol via the semantic substrate.
19
+ *
20
+ * @param symbol - the symbol name to search for
21
+ * @param cwd - session working directory
22
+ * @param semantic - the semantic substrate (LSP-backed)
23
+ * @param options - optional filters: path scope, kind filter, exported-only
24
+ * @returns Typed outcome: resolved, disambiguation, or error
25
+ */
26
+ export async function resolveSymbolTarget(
27
+ symbol: string,
28
+ cwd: string,
29
+ semantic: SemanticSubstrate,
30
+ options?: {
31
+ path?: string;
32
+ kind?: string;
33
+ exportedOnly?: boolean;
34
+ },
35
+ ): Promise<TargetOutcome> {
36
+ const results = await semantic.workspaceSymbols(symbol);
37
+ if (results === null) {
38
+ return {
39
+ kind: "error",
40
+ message: `Symbol discovery for \`${symbol}\` requires active LSP. Use \`file\` + coordinates, or enable LSP and retry.`,
41
+ };
42
+ }
43
+ if (results.length === 0) {
44
+ return { kind: "error", message: `Symbol not found: \`${symbol}\`` };
45
+ }
46
+
47
+ // Filter by path scope
48
+ const scopePath = options?.path ? path.resolve(cwd, options.path) : null;
49
+ let candidates = results.filter((s) => {
50
+ if (scopePath && !isWithinOrEqual(scopePath, s.file)) return false;
51
+ return true;
52
+ });
53
+
54
+ // Filter by kind
55
+ if (options?.kind) {
56
+ const kindLower = options.kind.toLowerCase();
57
+ candidates = candidates.filter((s) => s.kind.toLowerCase().includes(kindLower));
58
+ }
59
+
60
+ // Filter to exported symbols only
61
+ if (options?.exportedOnly) {
62
+ candidates = candidates.filter((s) => !NON_EXPORTED_KINDS.has(s.kind));
63
+ }
64
+
65
+ // Range-less candidates (line=0,char=0) come from URI-only workspace symbols.
66
+ // Keep them for disambiguation but don't promote to single-match resolution.
67
+ const ranged = candidates.filter((s) => s.line > 0 || s.character > 0);
68
+
69
+ if (ranged.length === 1) {
70
+ const c = ranged[0];
71
+ return {
72
+ kind: "resolved",
73
+ target: {
74
+ file: c.file,
75
+ position: { line: c.line - 1, character: c.character - 1 },
76
+ displayLine: c.line,
77
+ displayCharacter: c.character,
78
+ name: c.name,
79
+ kind: c.kind,
80
+ confidence: "semantic",
81
+ },
82
+ };
83
+ }
84
+
85
+ // All candidates lost or only rangeless
86
+ if (candidates.length === 0) {
87
+ return {
88
+ kind: "error",
89
+ message: `Symbol not found: \`${symbol}\`${scopePath ? ` in path \`${options?.path}\`` : ""}`,
90
+ };
91
+ }
92
+
93
+ // Multiple candidates — return disambiguation
94
+ const candidatesOut = candidates.slice(0, MAX_CANDIDATES).map((c, idx) => ({
95
+ name: c.name,
96
+ kind: c.kind,
97
+ container: c.container ?? null,
98
+ file: path.relative(cwd, c.file),
99
+ line: c.line,
100
+ character: c.character,
101
+ reason: path.relative(cwd, c.file),
102
+ rank: idx + 1,
103
+ })) satisfies DisambiguationCandidateData[];
104
+
105
+ return {
106
+ kind: "disambiguation",
107
+ candidates: candidatesOut,
108
+ omittedCount: Math.max(0, candidates.length - MAX_CANDIDATES),
109
+ };
110
+ }
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Targeting types — normalized query and typed outcomes for the
3
+ * target-resolution pipeline.
4
+ *
5
+ * These types decouple request normalization from resolution implementation
6
+ * and keep action-facing code focused on routing, not string building.
7
+ */
8
+
9
+ import type { SemanticSubstrate, StructuralSubstrate } from "../substrates/types.ts";
10
+
11
+ // ── Normalized query ──────────────────────────────────────────────────
12
+
13
+ /**
14
+ * A pre-classified target request extracted from tool/action parameters.
15
+ *
16
+ * The pipeline normalizes incoming params into one of these shapes
17
+ * so each resolver phase can operate on an already-disambiguated query.
18
+ */
19
+ export type NormalizedQuery =
20
+ | {
21
+ kind: "anchored";
22
+ file: string;
23
+ line: number;
24
+ character: number;
25
+ }
26
+ | {
27
+ kind: "file";
28
+ file: string;
29
+ }
30
+ | {
31
+ kind: "symbol";
32
+ symbol: string;
33
+ path?: string;
34
+ symbolKind?: string;
35
+ exportedOnly?: boolean;
36
+ }
37
+ | {
38
+ kind: "invalid";
39
+ reason: string;
40
+ };
41
+
42
+ // ── Resolver dependency injection ─────────────────────────────────────
43
+
44
+ /**
45
+ * Substrates and context injected into the resolution pipeline.
46
+ *
47
+ * Passed from the action/tool entrypoint rather than constructed
48
+ * inside resolver internals, so fallback policy is explicit.
49
+ */
50
+ export interface ResolverDeps {
51
+ cwd: string;
52
+ semantic?: SemanticSubstrate;
53
+ structural?: StructuralSubstrate;
54
+ }
55
+
56
+ // ── Typed resolution outcomes ─────────────────────────────────────────
57
+
58
+ /**
59
+ * A successfully resolved anchored target with 0-/1-based positions.
60
+ */
61
+ export interface ResolvedTargetData {
62
+ file: string;
63
+ /** 0-based position for LSP calls */
64
+ position: { line: number; character: number };
65
+ /** 1-based position for user display */
66
+ displayLine: number;
67
+ displayCharacter: number;
68
+ name: string | null;
69
+ kind: string | null;
70
+ confidence: "semantic" | "structural" | "heuristic" | "unavailable";
71
+ }
72
+
73
+ /**
74
+ * A file-level target group with one or more discoverable targets.
75
+ */
76
+ export interface ResolvedTargetGroupData {
77
+ file: string;
78
+ displayName: string;
79
+ targets: ResolvedTargetData[];
80
+ confidence: "semantic" | "structural" | "heuristic" | "unavailable";
81
+ }
82
+
83
+ /**
84
+ * A disambiguation candidate for symbol searches with multiple matches.
85
+ */
86
+ export interface DisambiguationCandidateData {
87
+ name: string;
88
+ kind: string | null;
89
+ container: string | null;
90
+ file: string;
91
+ line: number;
92
+ character: number;
93
+ reason: string;
94
+ rank: number;
95
+ }
96
+
97
+ /**
98
+ * Typed outcome of a resolution attempt.
99
+ *
100
+ * Actions consume these to produce user-facing strings/details;
101
+ * the resolution pipeline itself stays presentation-agnostic.
102
+ */
103
+ export type TargetOutcome =
104
+ | { kind: "resolved"; target: ResolvedTargetData }
105
+ | { kind: "group"; group: ResolvedTargetGroupData }
106
+ | {
107
+ kind: "disambiguation";
108
+ candidates: DisambiguationCandidateData[];
109
+ omittedCount: number;
110
+ }
111
+ | { kind: "error"; message: string };
@@ -0,0 +1,25 @@
1
+ import type { CodeIntelResult } from "../types.ts";
2
+ import { executeAffected } from "../use-case/generate-affected.ts";
3
+ import { validateFocusedToolParams } from "./validation.ts";
4
+
5
+ export interface CodeAffectedToolParams {
6
+ file?: string;
7
+ line?: number;
8
+ character?: number;
9
+ symbol?: string;
10
+ exportedOnly?: boolean;
11
+ maxResults?: number;
12
+ }
13
+
14
+ /** Execute the public code_affected tool through the affected use-case. */
15
+ export async function executeAffectedTool(
16
+ params: CodeAffectedToolParams,
17
+ ctx: { cwd: string },
18
+ ): Promise<CodeIntelResult> {
19
+ const error = validateFocusedToolParams(params, ctx.cwd);
20
+ if (error) {
21
+ return { content: error, details: undefined };
22
+ }
23
+
24
+ return executeAffected(params, { cwd: ctx.cwd });
25
+ }
@@ -0,0 +1,51 @@
1
+ import { buildArchitectureModel } from "../architecture.ts";
2
+ import { createStructuralSubstrate } from "../substrates/tree-sitter-adapter.ts";
3
+ import type { CodeIntelResult } from "../types.ts";
4
+ import { executeBrief } from "../use-case/generate-brief.ts";
5
+ import type { BriefInput } from "../use-case/types.ts";
6
+ import { validateFocusedToolParams } from "./validation.ts";
7
+
8
+ export interface CodeBriefToolParams {
9
+ path?: string;
10
+ file?: string;
11
+ line?: number;
12
+ character?: number;
13
+ symbol?: string;
14
+ maxResults?: number;
15
+ }
16
+
17
+ /** Execute the public code_brief tool through the use-case/presentation layers. */
18
+ export async function executeBriefTool(
19
+ params: CodeBriefToolParams,
20
+ ctx: { cwd: string },
21
+ ): Promise<CodeIntelResult> {
22
+ const error = validateFocusedToolParams(params, ctx.cwd);
23
+ if (error) {
24
+ return { content: error, details: undefined };
25
+ }
26
+
27
+ const structural = createStructuralSubstrate(ctx.cwd);
28
+ const model = await buildArchitectureModel(ctx.cwd);
29
+
30
+ const input: BriefInput = determineInput(params);
31
+ const deps = { model, structural, cwd: ctx.cwd };
32
+
33
+ const result = await executeBrief(input, deps);
34
+ return { content: result.content, details: { type: "brief", data: result.details } };
35
+ }
36
+
37
+ function determineInput(params: CodeBriefToolParams): BriefInput {
38
+ if (params.file && params.line != null && params.character != null) {
39
+ return { kind: "anchored", file: params.file, line: params.line, character: params.character };
40
+ }
41
+ if (params.symbol) {
42
+ return { kind: "symbol", symbol: params.symbol, path: params.path };
43
+ }
44
+ if (params.path) {
45
+ return { kind: "path", path: params.path };
46
+ }
47
+ if (params.file) {
48
+ return { kind: "file", file: params.file };
49
+ }
50
+ return { kind: "project" };
51
+ }
@@ -0,0 +1,35 @@
1
+ import * as fs from "node:fs";
2
+ import { renderMap } from "../presentation/markdown/map.ts";
3
+ import { normalizePath } from "../search-helpers.ts";
4
+ import type { CodeIntelResult } from "../types.ts";
5
+ import { buildMapData } from "../use-case/generate-map.ts";
6
+
7
+ export interface CodeMapToolParams {
8
+ path?: string;
9
+ }
10
+
11
+ /** Execute the public code_map tool with focused directory validation. */
12
+ export async function executeMapTool(
13
+ params: CodeMapToolParams,
14
+ ctx: { cwd: string },
15
+ ): Promise<CodeIntelResult> {
16
+ const scopePath = params.path ? normalizePath(params.path, ctx.cwd) : ctx.cwd;
17
+
18
+ if (!fs.existsSync(scopePath)) {
19
+ return {
20
+ content: `**Error:** code_map path not found: \`${params.path ?? scopePath}\``,
21
+ details: undefined,
22
+ };
23
+ }
24
+
25
+ if (!fs.statSync(scopePath).isDirectory()) {
26
+ return {
27
+ content: "**Error:** code_map requires a directory path, not a file.",
28
+ details: undefined,
29
+ };
30
+ }
31
+
32
+ const data = buildMapData(scopePath, ctx.cwd);
33
+ const rendered = renderMap(data);
34
+ return { content: rendered.content, details: { type: "map", data: rendered.details } };
35
+ }
@@ -0,0 +1,28 @@
1
+ import { createStructuralSubstrate } from "../substrates/tree-sitter-adapter.ts";
2
+ import type { CodeIntelResult } from "../types.ts";
3
+ import { executePattern } from "../use-case/generate-pattern.ts";
4
+ import { validatePatternToolParams } from "./validation.ts";
5
+
6
+ export interface CodePatternToolParams {
7
+ path?: string;
8
+ pattern: string;
9
+ regex?: boolean;
10
+ kind?: string;
11
+ maxResults?: number;
12
+ contextLines?: number;
13
+ summary?: boolean;
14
+ }
15
+
16
+ /** Execute the public code_pattern tool through the pattern use-case. */
17
+ export async function executePatternTool(
18
+ params: CodePatternToolParams,
19
+ ctx: { cwd: string },
20
+ ): Promise<CodeIntelResult> {
21
+ const error = validatePatternToolParams(params, ctx.cwd);
22
+ if (error) {
23
+ return { content: error, details: undefined };
24
+ }
25
+
26
+ const structural = createStructuralSubstrate(ctx.cwd);
27
+ return executePattern(params, { cwd: ctx.cwd, structural });
28
+ }
@@ -0,0 +1,40 @@
1
+ import type { CodeIntelResult } from "../types.ts";
2
+ import type { RelationsInput } from "../use-case/generate-relations.ts";
3
+ import { executeRelations } from "../use-case/generate-relations.ts";
4
+ import type { CodeRelationsKind } from "./tool-specs.ts";
5
+ import { validateFocusedToolParams } from "./validation.ts";
6
+
7
+ export interface CodeRelationsToolParams {
8
+ kind: CodeRelationsKind;
9
+ path?: string;
10
+ file?: string;
11
+ line?: number;
12
+ character?: number;
13
+ symbol?: string;
14
+ exportedOnly?: boolean;
15
+ maxResults?: number;
16
+ }
17
+
18
+ /** Execute the public code_relations tool through the relations use-case. */
19
+ export async function executeRelationsTool(
20
+ params: CodeRelationsToolParams,
21
+ ctx: { cwd: string },
22
+ ): Promise<CodeIntelResult> {
23
+ const error = validateFocusedToolParams(params, ctx.cwd);
24
+ if (error) {
25
+ return { content: error, details: undefined };
26
+ }
27
+
28
+ const input: RelationsInput = {
29
+ kind: params.kind,
30
+ path: params.path,
31
+ file: params.file,
32
+ line: params.line,
33
+ character: params.character,
34
+ symbol: params.symbol,
35
+ exportedOnly: params.exportedOnly,
36
+ maxResults: params.maxResults,
37
+ };
38
+
39
+ return executeRelations(input, { cwd: ctx.cwd });
40
+ }