@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,196 @@
1
+ // Per-action handler functions for the focused tree_sitter tool surface.
2
+ //
3
+ // Each handler receives only the parameters it needs (no action dispatch).
4
+ // Handlers are shared between the extension factory (tree-sitter.ts) and the
5
+ // tool registration layer (register-tools.ts).
6
+
7
+ import { detectGrammar, isJsTsGrammar } from "../language.ts";
8
+ import type { TreeSitterRuntime } from "../session/runtime.ts";
9
+ import {
10
+ formatNonSuccess,
11
+ formatOutlineItemsCapped,
12
+ MAX_ITEMS,
13
+ truncate,
14
+ truncatedNotice,
15
+ truncateText,
16
+ } from "./formatting.ts";
17
+ import { collectOutline } from "./outline.ts";
18
+ import { extractExports, extractImports, lookupCalleesAt, lookupNodeAt } from "./structure.ts";
19
+
20
+ // ---------------------------------------------------------------------------
21
+ // Outline — JS/TS only
22
+ // ---------------------------------------------------------------------------
23
+
24
+ export async function handleOutline(runtime: TreeSitterRuntime, file: string): Promise<string> {
25
+ const parseResult = await runtime.parseFile(file);
26
+ if (parseResult.kind !== "success") return formatNonSuccess(parseResult);
27
+ if (!isJsTsGrammar(parseResult.data.grammarId)) {
28
+ return "Unsupported language: outline is only supported for JavaScript and TypeScript files";
29
+ }
30
+
31
+ const { tree, source } = parseResult.data;
32
+ let items: ReturnType<typeof collectOutline>;
33
+ try {
34
+ items = collectOutline(tree.rootNode, source);
35
+ } finally {
36
+ tree.delete();
37
+ }
38
+
39
+ if (items.length === 0) return `No structural declarations found in ${file}`;
40
+
41
+ const lines = [`## Outline: ${file}`, ""];
42
+ const { omitted } = formatOutlineItemsCapped(items, lines, MAX_ITEMS);
43
+ if (omitted) lines.push("", truncatedNotice(omitted, "outline items"));
44
+ return lines.join("\n");
45
+ }
46
+
47
+ // ---------------------------------------------------------------------------
48
+ // Imports — JS/TS only
49
+ // ---------------------------------------------------------------------------
50
+
51
+ export async function handleImports(runtime: TreeSitterRuntime, file: string): Promise<string> {
52
+ const grammarId = detectGrammar(file);
53
+ if (grammarId && !isJsTsGrammar(grammarId)) {
54
+ return "Unsupported language: imports is only supported for JavaScript and TypeScript files";
55
+ }
56
+ const result = await extractImports(runtime, file);
57
+ if (result.kind !== "success") return formatNonSuccess(result);
58
+
59
+ const { data: imports } = result;
60
+ if (imports.length === 0) return `No imports found in ${file}`;
61
+
62
+ const { included, truncated } = truncate(imports, MAX_ITEMS);
63
+ const lines = [`## Imports: ${file}`, ""];
64
+ for (const imp of included) {
65
+ const r = imp.range;
66
+ lines.push(`- "${imp.moduleSpecifier}" (L${r.startLine}:${r.startCharacter})`);
67
+ }
68
+ if (truncated) lines.push("", truncatedNotice(truncated, "imports"));
69
+ return lines.join("\n");
70
+ }
71
+
72
+ // ---------------------------------------------------------------------------
73
+ // Exports — JS/TS only
74
+ // ---------------------------------------------------------------------------
75
+
76
+ export async function handleExports(runtime: TreeSitterRuntime, file: string): Promise<string> {
77
+ const grammarId = detectGrammar(file);
78
+ if (grammarId && !isJsTsGrammar(grammarId)) {
79
+ return "Unsupported language: exports is only supported for JavaScript and TypeScript files";
80
+ }
81
+ const result = await extractExports(runtime, file);
82
+ if (result.kind !== "success") return formatNonSuccess(result);
83
+
84
+ const { data: exports } = result;
85
+ if (exports.length === 0) return `No exports found in ${file}`;
86
+
87
+ const { included, truncated } = truncate(exports, MAX_ITEMS);
88
+ const lines = [`## Exports: ${file}`, ""];
89
+ for (const exp of included) {
90
+ const r = exp.range;
91
+ const from = exp.moduleSpecifier ? ` from "${exp.moduleSpecifier}"` : "";
92
+ lines.push(`- ${exp.kind}: ${exp.name}${from} (L${r.startLine}:${r.startCharacter})`);
93
+ }
94
+ if (truncated) lines.push("", truncatedNotice(truncated, "exports"));
95
+ return lines.join("\n");
96
+ }
97
+
98
+ // ---------------------------------------------------------------------------
99
+ // Node at position — all supported grammars
100
+ // ---------------------------------------------------------------------------
101
+
102
+ export async function handleNodeAt(
103
+ runtime: TreeSitterRuntime,
104
+ file: string,
105
+ line: number,
106
+ character: number,
107
+ ): Promise<string> {
108
+ const result = await lookupNodeAt(runtime, file, line, character);
109
+ if (result.kind !== "success") return formatNonSuccess(result);
110
+
111
+ const { data } = result;
112
+ const lines = [
113
+ `## Node at ${file}:${line}:${character}`,
114
+ "",
115
+ `**Type:** ${data.type}`,
116
+ `**Range:** L${data.range.startLine}:${data.range.startCharacter} — L${data.range.endLine}:${data.range.endCharacter}`,
117
+ `**Text:** ${truncateText(data.text, 200)}`,
118
+ ];
119
+
120
+ if (data.ancestry.length > 0) {
121
+ lines.push("", "**Ancestry:**");
122
+ const { included, truncated } = truncate(data.ancestry, MAX_ITEMS);
123
+ for (const ancestor of included) {
124
+ lines.push(
125
+ `- ${ancestor.type} (L${ancestor.range.startLine}:${ancestor.range.startCharacter}-L${ancestor.range.endLine}:${ancestor.range.endCharacter})`,
126
+ );
127
+ }
128
+ if (truncated) lines.push("", truncatedNotice(truncated, "ancestry entries"));
129
+ }
130
+
131
+ return lines.join("\n");
132
+ }
133
+
134
+ // ---------------------------------------------------------------------------
135
+ // Query — all supported grammars
136
+ // ---------------------------------------------------------------------------
137
+
138
+ export async function handleQuery(
139
+ runtime: TreeSitterRuntime,
140
+ file: string,
141
+ query: string,
142
+ ): Promise<string> {
143
+ const result = await runtime.queryFile(file, query);
144
+ if (result.kind !== "success") return formatNonSuccess(result);
145
+
146
+ const { data: captures } = result;
147
+ if (captures.length === 0) return `No matches for query in ${file}`;
148
+
149
+ const { included, truncated } = truncate(captures, MAX_ITEMS);
150
+ const lines = [`## Query results: ${file}`, ""];
151
+ for (const capture of included) {
152
+ const r = capture.range;
153
+ lines.push(
154
+ `- ${capture.name}: ${capture.nodeType} (L${r.startLine}:${r.startCharacter}-L${r.endLine}:${r.endCharacter})`,
155
+ );
156
+ lines.push(` \`${truncateText(capture.text, 120)}\``);
157
+ }
158
+ if (truncated) lines.push("", truncatedNotice(truncated, "captures"));
159
+ return lines.join("\n");
160
+ }
161
+
162
+ // ---------------------------------------------------------------------------
163
+ // Callees — many supported grammars
164
+ // ---------------------------------------------------------------------------
165
+
166
+ export async function handleCallees(
167
+ runtime: TreeSitterRuntime,
168
+ file: string,
169
+ line: number,
170
+ character: number,
171
+ ): Promise<string> {
172
+ const result = await lookupCalleesAt(runtime, file, line, character);
173
+ if (result.kind !== "success") return formatNonSuccess(result);
174
+
175
+ const { enclosingScope, callees } = result.data;
176
+ if (callees.length === 0) {
177
+ return `No outgoing calls found in \`${enclosingScope.name}\` at ${file}:${line}:${character}`;
178
+ }
179
+
180
+ const lines: string[] = [];
181
+ lines.push(`## Callees: ${file}:${line}:${character}`);
182
+ lines.push("");
183
+ lines.push(
184
+ `**${callees.length} outgoing call${callees.length > 1 ? "s" : ""}** from \`${enclosingScope.name}\` at L${enclosingScope.range.startLine}-L${enclosingScope.range.endLine}`,
185
+ );
186
+ lines.push("");
187
+
188
+ for (const c of callees.slice(0, MAX_ITEMS)) {
189
+ lines.push(`- \`${c.name}\` (L${c.range.startLine})`);
190
+ }
191
+ if (callees.length > MAX_ITEMS) {
192
+ lines.push("", truncatedNotice(callees.length - MAX_ITEMS, "callees"));
193
+ }
194
+
195
+ return lines.join("\n");
196
+ }
@@ -0,0 +1,107 @@
1
+ // Focused tool registration for the tree_sitter extension.
2
+ //
3
+ // Derives tool metadata, schemas, and prompt surfaces from tool-specs.ts.
4
+ // Handler functions from ./handlers.ts do the actual work.
5
+
6
+ import type { AgentToolResult, ExtensionAPI } from "@earendil-works/pi-coding-agent";
7
+ import type { TreeSitterRuntime } from "../session/runtime.ts";
8
+ import {
9
+ handleCallees,
10
+ handleExports,
11
+ handleImports,
12
+ handleNodeAt,
13
+ handleOutline,
14
+ handleQuery,
15
+ } from "./handlers.ts";
16
+ import {
17
+ getTreeSitterToolSpec,
18
+ PARAM_SCHEMAS,
19
+ TREE_SITTER_TOOL_SPECS,
20
+ type TreeSitterToolName,
21
+ } from "./tool-specs.ts";
22
+
23
+ function notInitializedResult(): AgentToolResult<Record<string, unknown>> {
24
+ return {
25
+ content: [{ type: "text", text: "Tree-sitter not initialized. Start a new session first." }],
26
+ details: {},
27
+ };
28
+ }
29
+
30
+ function textResult(text: string): AgentToolResult<Record<string, unknown>> {
31
+ return { content: [{ type: "text", text }], details: {} };
32
+ }
33
+
34
+ /** Wraps a handler call into a pi-compatible execute function. */
35
+ function createExecute(
36
+ fn: (runtime: TreeSitterRuntime, params: Record<string, unknown>) => Promise<string> | string,
37
+ getRuntime: () => TreeSitterRuntime | undefined,
38
+ ) {
39
+ // biome-ignore lint/complexity/useMaxParams: pi ToolDefinition.execute signature
40
+ return async (
41
+ _toolCallId: string,
42
+ params: Record<string, unknown>,
43
+ _signal: AbortSignal | undefined,
44
+ _onUpdate: unknown,
45
+ _ctx: { cwd: string },
46
+ ): Promise<AgentToolResult<Record<string, unknown>>> => {
47
+ const runtime = getRuntime();
48
+ if (!runtime) return notInitializedResult();
49
+
50
+ // Guard against direct execute calls (tests, tool reuse) that bypass pi's schema validation
51
+ if (!params.file || typeof params.file !== "string") {
52
+ return textResult("Validation error: `file` is required.");
53
+ }
54
+
55
+ try {
56
+ const text = await fn(runtime, params);
57
+ return textResult(text);
58
+ } catch (error) {
59
+ return textResult(`Error: ${error instanceof Error ? error.message : String(error)}`);
60
+ }
61
+ };
62
+ }
63
+
64
+ // ── Handler dispatch map ───────────────────────────────────────────────
65
+
66
+ type HandlerFn = (
67
+ runtime: TreeSitterRuntime,
68
+ params: Record<string, unknown>,
69
+ ) => Promise<string> | string;
70
+
71
+ const HANDLER_MAP: Record<TreeSitterToolName, HandlerFn> = {
72
+ tree_sitter_outline: (runtime, params) => handleOutline(runtime, String(params.file)),
73
+ tree_sitter_imports: (runtime, params) => handleImports(runtime, String(params.file)),
74
+ tree_sitter_exports: (runtime, params) => handleExports(runtime, String(params.file)),
75
+ tree_sitter_node_at: (runtime, params) =>
76
+ handleNodeAt(runtime, String(params.file), Number(params.line), Number(params.character)),
77
+ tree_sitter_query: (runtime, params) =>
78
+ handleQuery(runtime, String(params.file), String(params.query)),
79
+ tree_sitter_callees: (runtime, params) =>
80
+ handleCallees(runtime, String(params.file), Number(params.line), Number(params.character)),
81
+ };
82
+
83
+ // ── Registration ───────────────────────────────────────────────────────
84
+
85
+ /**
86
+ * Register 6 focused tree-sitter tools.
87
+ *
88
+ * @param pi — extension API
89
+ * @param getRuntime — thunk returning the current runtime (or undefined before session_start)
90
+ */
91
+ export function registerFocusedTreeSitterTools(
92
+ pi: ExtensionAPI,
93
+ getRuntime: () => TreeSitterRuntime | undefined,
94
+ ): void {
95
+ for (const spec of TREE_SITTER_TOOL_SPECS) {
96
+ const spec2 = getTreeSitterToolSpec(spec.name);
97
+ pi.registerTool({
98
+ name: spec2.name,
99
+ label: spec2.label,
100
+ description: spec2.description,
101
+ promptSnippet: spec2.promptSnippet,
102
+ promptGuidelines: spec2.promptGuidelines,
103
+ parameters: PARAM_SCHEMAS[spec2.paramSchemaKey],
104
+ execute: createExecute(HANDLER_MAP[spec2.name], getRuntime),
105
+ });
106
+ }
107
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Single source of truth for the split `tree_sitter_*` tool surface.
3
+ *
4
+ * Tool registration, guidance, and parameter validation should derive
5
+ * from these specs so the public surface does not drift from the
6
+ * metadata that drives it.
7
+ */
8
+
9
+ import { Type } from "typebox";
10
+
11
+ // ── Shared parameter fragments ─────────────────────────────────────────
12
+
13
+ const FileParam = Type.String({ description: "File path" });
14
+ const LineParam = Type.Number({ description: "1-based line", minimum: 1 });
15
+ const CharacterParam = Type.Number({
16
+ description: "1-based UTF-16 column",
17
+ minimum: 1,
18
+ });
19
+ const QueryParam = Type.String({ description: "Tree-sitter query" });
20
+
21
+ export const PARAM_SCHEMAS = {
22
+ fileOnly: Type.Object({ file: FileParam }, { additionalProperties: false }),
23
+ fileLineChar: Type.Object(
24
+ { file: FileParam, line: LineParam, character: CharacterParam },
25
+ { additionalProperties: false },
26
+ ),
27
+ fileQuery: Type.Object({ file: FileParam, query: QueryParam }, { additionalProperties: false }),
28
+ } as const;
29
+
30
+ export type ParamSchemaKey = keyof typeof PARAM_SCHEMAS;
31
+
32
+ // ── Tool names ─────────────────────────────────────────────────────────
33
+
34
+ export const TREE_SITTER_TOOL_NAMES = [
35
+ "tree_sitter_outline",
36
+ "tree_sitter_imports",
37
+ "tree_sitter_exports",
38
+ "tree_sitter_node_at",
39
+ "tree_sitter_query",
40
+ "tree_sitter_callees",
41
+ ] as const;
42
+
43
+ export type TreeSitterToolName = (typeof TREE_SITTER_TOOL_NAMES)[number];
44
+
45
+ // ── Per-tool metadata ──────────────────────────────────────────────────
46
+
47
+ export interface TreeSitterToolSpec {
48
+ name: TreeSitterToolName;
49
+ label: string;
50
+ description: string;
51
+ promptSnippet: string;
52
+ promptGuidelines: string[];
53
+ paramSchemaKey: ParamSchemaKey;
54
+ }
55
+
56
+ export const TREE_SITTER_TOOL_SPECS: readonly TreeSitterToolSpec[] = [
57
+ {
58
+ name: "tree_sitter_outline",
59
+ label: "Tree-sitter Outline",
60
+ description: "Shallow JS/TS outline of top-level declarations and supported members.",
61
+ promptSnippet: "tree_sitter_outline — quick JS/TS outline",
62
+ promptGuidelines: ["Use tree_sitter_outline(file) for a quick JS/TS outline."],
63
+ paramSchemaKey: "fileOnly",
64
+ },
65
+ {
66
+ name: "tree_sitter_imports",
67
+ label: "Tree-sitter Imports",
68
+ description: "List imports in a JS/TS file.",
69
+ promptSnippet: "tree_sitter_imports — JS/TS imports",
70
+ promptGuidelines: ["Use tree_sitter_imports(file) to inspect JS/TS dependencies."],
71
+ paramSchemaKey: "fileOnly",
72
+ },
73
+ {
74
+ name: "tree_sitter_exports",
75
+ label: "Tree-sitter Exports",
76
+ description: "List exports in a JS/TS file.",
77
+ promptSnippet: "tree_sitter_exports — JS/TS exports",
78
+ promptGuidelines: ["Use tree_sitter_exports(file) to inspect JS/TS exports."],
79
+ paramSchemaKey: "fileOnly",
80
+ },
81
+ {
82
+ name: "tree_sitter_node_at",
83
+ label: "Tree-sitter Node At",
84
+ description: "Show the syntax node and ancestry at a file position.",
85
+ promptSnippet: "tree_sitter_node_at — syntax node at a position",
86
+ promptGuidelines: ["Use tree_sitter_node_at(file,line,character) for the exact syntax node."],
87
+ paramSchemaKey: "fileLineChar",
88
+ },
89
+ {
90
+ name: "tree_sitter_query",
91
+ label: "Tree-sitter Query",
92
+ description: "Run a custom Tree-sitter query against a file.",
93
+ promptSnippet: "tree_sitter_query — custom AST query",
94
+ promptGuidelines: ["Use tree_sitter_query(file,query) for custom AST matching."],
95
+ paramSchemaKey: "fileQuery",
96
+ },
97
+ {
98
+ name: "tree_sitter_callees",
99
+ label: "Tree-sitter Callees",
100
+ description: "List outgoing callees from the enclosing scope at a file position.",
101
+ promptSnippet: "tree_sitter_callees — outgoing callees",
102
+ promptGuidelines: ["Use tree_sitter_callees(file,line,character) for outgoing calls."],
103
+ paramSchemaKey: "fileLineChar",
104
+ },
105
+ ];
106
+
107
+ // ── Lookup helpers ─────────────────────────────────────────────────────
108
+
109
+ const TREE_SITTER_TOOL_SPEC_MAP = new Map<TreeSitterToolName, TreeSitterToolSpec>(
110
+ TREE_SITTER_TOOL_SPECS.map((spec) => [spec.name, spec]),
111
+ );
112
+
113
+ export function getTreeSitterToolSpec(toolName: TreeSitterToolName): TreeSitterToolSpec {
114
+ const spec = TREE_SITTER_TOOL_SPEC_MAP.get(toolName);
115
+ if (!spec) throw new Error(`Unknown tree_sitter tool: ${toolName}`);
116
+ return spec;
117
+ }