@mrclrchtr/supi-code-intelligence 1.6.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +53 -24
  2. package/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  3. package/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  4. package/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  5. package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  6. package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  7. package/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  8. package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  9. package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  10. package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  11. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  14. package/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  15. package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  16. package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  73. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
  74. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  75. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
  76. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
  77. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  78. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  79. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  80. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
  81. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  82. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  83. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  84. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  85. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  86. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  87. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  88. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  89. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  90. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  91. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  92. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  93. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  94. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  95. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  96. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  97. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  98. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  99. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  100. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  101. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  102. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  103. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  104. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  105. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  106. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  107. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  108. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  109. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  169. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  170. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  171. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  172. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  173. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  174. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  175. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  176. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  177. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  178. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  179. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  180. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  181. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  182. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  183. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  184. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  185. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  186. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  187. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
  188. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  189. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
  190. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
  191. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  192. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  193. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
  194. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +31 -0
  195. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
  196. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
  197. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  198. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  199. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  200. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  201. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  202. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
  203. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  204. package/node_modules/@mrclrchtr/supi-lsp/package.json +9 -3
  205. package/node_modules/@mrclrchtr/supi-lsp/src/client/client.ts +8 -5
  206. package/node_modules/@mrclrchtr/supi-lsp/src/client/transport.ts +79 -190
  207. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
  208. package/node_modules/@mrclrchtr/supi-lsp/src/config/server-config.ts +38 -0
  209. package/node_modules/@mrclrchtr/supi-lsp/src/config/types.ts +61 -387
  210. package/node_modules/@mrclrchtr/supi-lsp/src/format.ts +16 -8
  211. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
  212. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
  213. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
  214. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
  215. package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
  216. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
  217. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-project-info.ts +1 -1
  218. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
  219. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
  220. package/node_modules/@mrclrchtr/supi-lsp/src/session/lsp-state.ts +1 -1
  221. package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
  222. package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
  223. package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
  224. package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +6 -15
  225. package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
  226. package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
  227. package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
  228. package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
  229. package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
  230. package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
  231. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
  232. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +18 -3
  233. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +27 -82
  234. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config/config.ts +1 -1
  235. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  236. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  237. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +27 -82
  238. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  239. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  240. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  241. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  242. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  243. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  244. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/tool-framework.ts +116 -0
  245. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  246. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
  247. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
  248. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
  249. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
  250. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
  251. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
  252. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
  253. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
  254. package/package.json +4 -4
  255. package/src/api.ts +16 -0
  256. package/src/architecture.ts +1 -1
  257. package/src/brief-focused.ts +5 -5
  258. package/src/brief.ts +11 -55
  259. package/src/code-intelligence.ts +12 -77
  260. package/src/index.ts +16 -0
  261. package/src/pattern-structured.ts +27 -27
  262. package/src/presentation/markdown/affected.ts +170 -0
  263. package/src/presentation/markdown/brief.ts +174 -0
  264. package/src/presentation/markdown/map.ts +54 -0
  265. package/src/presentation/markdown/overview.ts +59 -0
  266. package/src/presentation/markdown/pattern.ts +239 -0
  267. package/src/presentation/markdown/relations.ts +121 -0
  268. package/src/prioritization-signals.ts +13 -26
  269. package/src/query-params.ts +15 -0
  270. package/src/resolve-target.ts +60 -42
  271. package/src/search-helpers.ts +19 -6
  272. package/src/substrates/lsp-adapter.ts +197 -0
  273. package/src/substrates/tree-sitter-adapter.ts +173 -0
  274. package/src/substrates/types.ts +113 -0
  275. package/src/target-resolution.ts +37 -493
  276. package/src/targeting/query.ts +60 -0
  277. package/src/targeting/resolve-anchored.ts +80 -0
  278. package/src/targeting/resolve-file.ts +197 -0
  279. package/src/targeting/resolve-symbol.ts +110 -0
  280. package/src/targeting/types.ts +111 -0
  281. package/src/tool/execute-affected.ts +25 -0
  282. package/src/tool/execute-brief.ts +51 -0
  283. package/src/tool/execute-map.ts +35 -0
  284. package/src/tool/execute-pattern.ts +28 -0
  285. package/src/tool/execute-relations.ts +40 -0
  286. package/src/tool/guidance.ts +52 -12
  287. package/src/tool/register-tools.ts +32 -0
  288. package/src/tool/tool-specs.ts +165 -0
  289. package/src/tool/validation.ts +43 -0
  290. package/src/types.ts +10 -0
  291. package/src/use-case/build-overview.ts +36 -0
  292. package/src/use-case/generate-affected.ts +279 -0
  293. package/src/use-case/generate-brief.ts +324 -0
  294. package/src/use-case/generate-map.ts +176 -0
  295. package/src/use-case/generate-pattern.ts +270 -0
  296. package/src/use-case/generate-relations.ts +392 -0
  297. package/src/use-case/support/semantic-references.ts +114 -0
  298. package/src/use-case/types.ts +43 -0
  299. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
  300. package/src/actions/affected-action.ts +0 -439
  301. package/src/actions/brief-action.ts +0 -241
  302. package/src/actions/callees-action.ts +0 -155
  303. package/src/actions/callers-action.ts +0 -282
  304. package/src/actions/implementations-action.ts +0 -208
  305. package/src/actions/index-action.ts +0 -187
  306. package/src/actions/pattern-action.ts +0 -392
  307. package/src/providers/semantic-provider.ts +0 -34
  308. package/src/providers/structural-provider.ts +0 -26
  309. package/src/tool/action-specs.ts +0 -66
  310. package/src/tool-actions.ts +0 -100
@@ -1,41 +1,20 @@
1
- // Tree-sitter extension entry point — registers the `tree_sitter` tool with pi.
1
+ // Tree-sitter extension entry point — registers 6 focused tree_sitter_* tools.
2
2
 
3
- import { StringEnum } from "@earendil-works/pi-ai";
4
3
  import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
5
- import { Type } from "typebox";
6
- import { detectGrammar, isJsTsGrammar } from "./language.ts";
7
4
  import { TreeSitterRuntime } from "./session/runtime.ts";
8
5
  import {
9
6
  clearSessionTreeSitterService,
10
7
  setSessionTreeSitterService,
11
8
  } from "./session/service-registry.ts";
12
9
  import { createTreeSitterService } from "./session/session.ts";
13
- import {
14
- formatTreeSitterActionList,
15
- getTreeSitterActionSpec,
16
- isTreeSitterAction,
17
- TREE_SITTER_ACTION_NAMES,
18
- type TreeSitterAction,
19
- } from "./tool/action-specs.ts";
20
- import {
21
- formatNonSuccess,
22
- formatOutlineItemsCapped,
23
- MAX_ITEMS,
24
- truncate,
25
- truncatedNotice,
26
- truncateText,
27
- validationError,
28
- } from "./tool/formatting.ts";
29
- import { promptGuidelines, promptSnippet, toolDescription } from "./tool/guidance.ts";
30
- import { collectOutline } from "./tool/outline.ts";
31
- import { extractExports, extractImports, lookupCalleesAt, lookupNodeAt } from "./tool/structure.ts";
32
-
33
- const TreeSitterActionEnum = StringEnum(TREE_SITTER_ACTION_NAMES);
10
+ import { registerFocusedTreeSitterTools } from "./tool/register-tools.ts";
34
11
 
35
12
  export default function treeSitterExtension(pi: ExtensionAPI) {
36
13
  let runtime: TreeSitterRuntime | undefined;
37
14
  let activeCwd: string | null = null;
38
15
 
16
+ registerFocusedTreeSitterTools(pi, () => runtime);
17
+
39
18
  pi.on("session_start", (_event, ctx) => {
40
19
  if (runtime && activeCwd) {
41
20
  clearSessionTreeSitterService(activeCwd);
@@ -55,279 +34,4 @@ export default function treeSitterExtension(pi: ExtensionAPI) {
55
34
  runtime = undefined;
56
35
  activeCwd = null;
57
36
  });
58
-
59
- pi.registerTool({
60
- name: "tree_sitter",
61
- label: "Tree-sitter",
62
- description: toolDescription,
63
- promptGuidelines,
64
- promptSnippet,
65
- parameters: Type.Object({
66
- action: TreeSitterActionEnum,
67
- file: Type.Optional(Type.String({ description: "File path (relative or absolute)" })),
68
- line: Type.Optional(Type.Number({ description: "1-based line number" })),
69
- character: Type.Optional(Type.Number({ description: "1-based column number (UTF-16)" })),
70
- query: Type.Optional(Type.String({ description: "Tree-sitter query string" })),
71
- }),
72
- // biome-ignore lint/complexity/useMaxParams: pi ToolDefinition.execute signature
73
- async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
74
- if (!runtime) {
75
- return {
76
- content: [
77
- { type: "text", text: "Tree-sitter not initialized. Start a new session first." },
78
- ],
79
- details: {},
80
- };
81
- }
82
-
83
- const text = await executeToolAction(runtime, params);
84
- return {
85
- content: [{ type: "text", text }],
86
- details: {},
87
- };
88
- },
89
- });
90
- }
91
-
92
- type ToolParams = {
93
- action?: string;
94
- file?: string;
95
- line?: number;
96
- character?: number;
97
- query?: string;
98
- };
99
-
100
- interface ValidatedToolParams {
101
- action: TreeSitterAction;
102
- file: string;
103
- line?: number;
104
- character?: number;
105
- query?: string;
106
- }
107
-
108
- const SUPPORTED_ACTIONS_TEXT = formatTreeSitterActionList();
109
-
110
- const ACTION_HANDLERS: Record<
111
- TreeSitterAction,
112
- (runtime: TreeSitterRuntime, params: ValidatedToolParams) => Promise<string>
113
- > = {
114
- outline: (runtime, params) => handleOutline(runtime, params.file),
115
- imports: (runtime, params) => handleImports(runtime, params.file),
116
- exports: (runtime, params) => handleExports(runtime, params.file),
117
- node_at: (runtime, params) =>
118
- handleNodeAt(runtime, params.file, params.line as number, params.character as number),
119
- query: (runtime, params) => handleQuery(runtime, params.file, params.query as string),
120
- callees: (runtime, params) =>
121
- handleCallees(runtime, params.file, params.line as number, params.character as number),
122
- };
123
-
124
- async function executeToolAction(runtime: TreeSitterRuntime, params: ToolParams): Promise<string> {
125
- const validated = validateToolParams(params);
126
- if (typeof validated === "string") {
127
- return validated;
128
- }
129
-
130
- return ACTION_HANDLERS[validated.action](runtime, validated);
131
- }
132
-
133
- function validateToolParams(params: ToolParams): ValidatedToolParams | string {
134
- if (!params.action) {
135
- return validationError(`\`action\` is required. Supported: ${SUPPORTED_ACTIONS_TEXT}.`);
136
- }
137
-
138
- if (!isTreeSitterAction(params.action)) {
139
- return validationError(
140
- `Unknown action: ${params.action}. Supported: ${SUPPORTED_ACTIONS_TEXT}`,
141
- );
142
- }
143
-
144
- if (!params.file) {
145
- return validationError("`file` is required for all actions.");
146
- }
147
-
148
- const spec = getTreeSitterActionSpec(params.action);
149
- if (spec.requiresPosition) {
150
- const lineError = validatePositiveInteger("line", params.line, params.action);
151
- if (lineError) return lineError;
152
-
153
- const characterError = validatePositiveInteger("character", params.character, params.action);
154
- if (characterError) return characterError;
155
- }
156
-
157
- if (spec.requiresQuery && (!params.query || params.query.trim().length === 0)) {
158
- return validationError("`query` is required and must be non-empty.");
159
- }
160
-
161
- return {
162
- action: params.action,
163
- file: params.file,
164
- line: params.line,
165
- character: params.character,
166
- query: params.query,
167
- };
168
- }
169
-
170
- function validatePositiveInteger(
171
- field: "line" | "character",
172
- value: number | undefined,
173
- action: TreeSitterAction,
174
- ): string | null {
175
- if (value === undefined || !Number.isInteger(value) || value < 1) {
176
- return validationError(`\`${field}\` must be a positive 1-based integer for ${action} action.`);
177
- }
178
- return null;
179
- }
180
-
181
- async function handleOutline(runtime: TreeSitterRuntime, file: string): Promise<string> {
182
- const parseResult = await runtime.parseFile(file);
183
- if (parseResult.kind !== "success") return formatNonSuccess(parseResult);
184
- if (!isJsTsGrammar(parseResult.data.grammarId)) {
185
- return `Unsupported language: outline is only supported for JavaScript and TypeScript files`;
186
- }
187
-
188
- const { tree, source } = parseResult.data;
189
- let items: ReturnType<typeof collectOutline>;
190
- try {
191
- items = collectOutline(tree.rootNode, source);
192
- } finally {
193
- tree.delete();
194
- }
195
-
196
- if (items.length === 0) return `No structural declarations found in ${file}`;
197
-
198
- const lines = [`## Outline: ${file}`, ""];
199
- const { omitted } = formatOutlineItemsCapped(items, lines, MAX_ITEMS);
200
- if (omitted) lines.push("", truncatedNotice(omitted, "outline items"));
201
- return lines.join("\n");
202
- }
203
-
204
- async function handleImports(runtime: TreeSitterRuntime, file: string): Promise<string> {
205
- const grammarId = detectGrammar(file);
206
- if (grammarId && !isJsTsGrammar(grammarId)) {
207
- return `Unsupported language: imports is only supported for JavaScript and TypeScript files`;
208
- }
209
- const result = await extractImports(runtime, file);
210
- if (result.kind !== "success") return formatNonSuccess(result);
211
-
212
- const { data: imports } = result;
213
- if (imports.length === 0) return `No imports found in ${file}`;
214
-
215
- const { included, truncated } = truncate(imports, MAX_ITEMS);
216
- const lines = [`## Imports: ${file}`, ""];
217
- for (const imp of included) {
218
- const r = imp.range;
219
- lines.push(`- "${imp.moduleSpecifier}" (L${r.startLine}:${r.startCharacter})`);
220
- }
221
- if (truncated) lines.push("", truncatedNotice(truncated, "imports"));
222
- return lines.join("\n");
223
- }
224
-
225
- async function handleExports(runtime: TreeSitterRuntime, file: string): Promise<string> {
226
- const grammarId = detectGrammar(file);
227
- if (grammarId && !isJsTsGrammar(grammarId)) {
228
- return `Unsupported language: exports is only supported for JavaScript and TypeScript files`;
229
- }
230
- const result = await extractExports(runtime, file);
231
- if (result.kind !== "success") return formatNonSuccess(result);
232
-
233
- const { data: exports } = result;
234
- if (exports.length === 0) return `No exports found in ${file}`;
235
-
236
- const { included, truncated } = truncate(exports, MAX_ITEMS);
237
- const lines = [`## Exports: ${file}`, ""];
238
- for (const exp of included) {
239
- const r = exp.range;
240
- const from = exp.moduleSpecifier ? ` from "${exp.moduleSpecifier}"` : "";
241
- lines.push(`- ${exp.kind}: ${exp.name}${from} (L${r.startLine}:${r.startCharacter})`);
242
- }
243
- if (truncated) lines.push("", truncatedNotice(truncated, "exports"));
244
- return lines.join("\n");
245
- }
246
-
247
- async function handleNodeAt(
248
- runtime: TreeSitterRuntime,
249
- file: string,
250
- line: number,
251
- character: number,
252
- ): Promise<string> {
253
- const result = await lookupNodeAt(runtime, file, line, character);
254
- if (result.kind !== "success") return formatNonSuccess(result);
255
-
256
- const { data } = result;
257
- const lines = [
258
- `## Node at ${file}:${line}:${character}`,
259
- "",
260
- `**Type:** ${data.type}`,
261
- `**Range:** L${data.range.startLine}:${data.range.startCharacter} — L${data.range.endLine}:${data.range.endCharacter}`,
262
- `**Text:** ${truncateText(data.text, 200)}`,
263
- ];
264
-
265
- if (data.ancestry.length > 0) {
266
- lines.push("", "**Ancestry:**");
267
- const { included, truncated } = truncate(data.ancestry, MAX_ITEMS);
268
- for (const ancestor of included) {
269
- lines.push(
270
- `- ${ancestor.type} (L${ancestor.range.startLine}:${ancestor.range.startCharacter}-L${ancestor.range.endLine}:${ancestor.range.endCharacter})`,
271
- );
272
- }
273
- if (truncated) lines.push("", truncatedNotice(truncated, "ancestry entries"));
274
- }
275
-
276
- return lines.join("\n");
277
- }
278
-
279
- async function handleQuery(
280
- runtime: TreeSitterRuntime,
281
- file: string,
282
- query: string,
283
- ): Promise<string> {
284
- const result = await runtime.queryFile(file, query);
285
- if (result.kind !== "success") return formatNonSuccess(result);
286
-
287
- const { data: captures } = result;
288
- if (captures.length === 0) return `No matches for query in ${file}`;
289
-
290
- const { included, truncated } = truncate(captures, MAX_ITEMS);
291
- const lines = [`## Query results: ${file}`, ""];
292
- for (const capture of included) {
293
- const r = capture.range;
294
- lines.push(
295
- `- ${capture.name}: ${capture.nodeType} (L${r.startLine}:${r.startCharacter}-L${r.endLine}:${r.endCharacter})`,
296
- );
297
- lines.push(` \`${truncateText(capture.text, 120)}\``);
298
- }
299
- if (truncated) lines.push("", truncatedNotice(truncated, "captures"));
300
- return lines.join("\n");
301
- }
302
-
303
- async function handleCallees(
304
- runtime: TreeSitterRuntime,
305
- file: string,
306
- line: number,
307
- character: number,
308
- ): Promise<string> {
309
- const result = await lookupCalleesAt(runtime, file, line, character);
310
- if (result.kind !== "success") return formatNonSuccess(result);
311
-
312
- const { enclosingScope, callees } = result.data;
313
- if (callees.length === 0) {
314
- return `No outgoing calls found in \`${enclosingScope.name}\` at ${file}:${line}:${character}`;
315
- }
316
-
317
- const lines: string[] = [];
318
- lines.push(`## Callees: ${file}:${line}:${character}`);
319
- lines.push("");
320
- lines.push(
321
- `**${callees.length} outgoing call${callees.length > 1 ? "s" : ""}** from \`${enclosingScope.name}\` at L${enclosingScope.range.startLine}-L${enclosingScope.range.endLine}`,
322
- );
323
- lines.push("");
324
-
325
- for (const c of callees.slice(0, MAX_ITEMS)) {
326
- lines.push(`- \`${c.name}\` (L${c.range.startLine})`);
327
- }
328
- if (callees.length > MAX_ITEMS) {
329
- lines.push("", truncatedNotice(callees.length - MAX_ITEMS, "callees"));
330
- }
331
-
332
- return lines.join("\n");
333
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mrclrchtr/supi-code-intelligence",
3
- "version": "1.6.0",
3
+ "version": "1.8.0",
4
4
  "description": "SuPi Code Intelligence extension — architecture briefs, caller/callee analysis, impact assessment, and pattern search for pi",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -19,9 +19,9 @@
19
19
  "src/**/*.ts"
20
20
  ],
21
21
  "dependencies": {
22
- "@mrclrchtr/supi-core": "1.6.0",
23
- "@mrclrchtr/supi-lsp": "1.6.0",
24
- "@mrclrchtr/supi-tree-sitter": "1.6.0"
22
+ "@mrclrchtr/supi-lsp": "1.8.0",
23
+ "@mrclrchtr/supi-core": "1.8.0",
24
+ "@mrclrchtr/supi-tree-sitter": "1.8.0"
25
25
  },
26
26
  "bundledDependencies": [
27
27
  "@mrclrchtr/supi-core",
package/src/api.ts CHANGED
@@ -9,6 +9,21 @@ export {
9
9
  } from "./architecture.ts";
10
10
 
11
11
  export { generateFocusedBrief, generateOverview, generateProjectBrief } from "./brief.ts";
12
+ export { createSemanticSubstrate } from "./substrates/lsp-adapter.ts";
13
+ export { createStructuralSubstrate } from "./substrates/tree-sitter-adapter.ts";
14
+
15
+ // Substrate adapters
16
+ export type {
17
+ CalleesData,
18
+ CodeSymbol,
19
+ ExportData,
20
+ ImportData,
21
+ NodeAtData,
22
+ OutlineData,
23
+ SemanticSubstrate,
24
+ StructuralResult,
25
+ StructuralSubstrate,
26
+ } from "./substrates/types.ts";
12
27
  export type { ResolvedTarget, TargetResolutionResult } from "./target-resolution.ts";
13
28
  export {
14
29
  normalizePath,
@@ -23,5 +38,6 @@ export type {
23
38
  CodeIntelResult,
24
39
  ConfidenceMode,
25
40
  DisambiguationCandidate,
41
+ MapDetails,
26
42
  SearchDetails,
27
43
  } from "./types.ts";
@@ -3,7 +3,7 @@
3
3
 
4
4
  import * as fs from "node:fs";
5
5
  import * as path from "node:path";
6
- import { findProjectRoot, isWithinOrEqual, walkProject } from "@mrclrchtr/supi-core/api";
6
+ import { findProjectRoot, isWithinOrEqual, walkProject } from "@mrclrchtr/supi-core/project";
7
7
 
8
8
  // ── Types ─────────────────────────────────────────────────────────────
9
9
 
@@ -183,13 +183,13 @@ function addDependentsSection(
183
183
  const depShort = dep.name.replace(/^@[^/]+\//, "");
184
184
  lines.push(`- ${depShort} (\`${dep.relativePath}\`)`);
185
185
  }
186
- nextQueries.push("`code_intel affected` before modifying exports from this module");
186
+ nextQueries.push("`code_affected` before modifying exports from this module");
187
187
  }
188
188
 
189
189
  if (mod.entrypoints.length > 0) {
190
190
  const ep = mod.entrypoints[0];
191
191
  nextQueries.push(
192
- `\`code_intel brief\` with \`file: "${mod.relativePath}/${ep.replace(/^\.\//, "")}"\` for entrypoint details`,
192
+ `\`code_brief\` with \`file: "${mod.relativePath}/${ep.replace(/^\.\//, "")}"\` for entrypoint details`,
193
193
  );
194
194
  }
195
195
  }
@@ -276,7 +276,7 @@ function formatNonModuleDir(ctx: NonModuleDirContext): void {
276
276
  lines.push(`- Exports: ${summary.exportCount}`);
277
277
  lines.push("");
278
278
  nextQueries.push(
279
- `\`code_intel pattern\` with \`path: "${relPath || originalPath}"\` to inspect a specific nested symbol`,
279
+ `\`code_pattern\` with \`path: "${relPath || originalPath}"\` to inspect a specific nested symbol`,
280
280
  );
281
281
  }
282
282
 
@@ -334,11 +334,11 @@ function generateFileBrief(
334
334
  }
335
335
 
336
336
  nextQueries.push(
337
- `\`code_intel callers\` with \`file: "${relPath}"\` and a line/character for call-site analysis`,
337
+ `\`code_relations\` with \`kind: "callers"\`, \`file: "${relPath}"\`, and a line/character for call-site analysis`,
338
338
  );
339
339
  if (mod) {
340
340
  nextQueries.push(
341
- `\`code_intel brief\` with \`path: "${mod.relativePath}"\` for the containing module overview`,
341
+ `\`code_brief\` with \`path: "${mod.relativePath}"\` for the containing module overview`,
342
342
  );
343
343
  }
344
344
 
package/src/brief.ts CHANGED
@@ -1,9 +1,12 @@
1
- // Brief generationcompact overviews and project briefs from the architecture model.
1
+ // Public facadedelegates to the new use-case and presentation layers.
2
+ // Existing callers (api.ts, index.ts, code-intelligence.ts) remain compatible.
2
3
 
3
4
  import type { ArchitectureModel } from "./architecture.ts";
4
5
  import { getDependents } from "./architecture.ts";
5
6
  import { formatGitContext, gatherGitContext } from "./git-context.ts";
7
+ import { renderOverview } from "./presentation/markdown/overview.ts";
6
8
  import type { BriefDetails, ConfidenceMode } from "./types.ts";
9
+ import { buildOverviewData } from "./use-case/build-overview.ts";
7
10
 
8
11
  // Re-export focused brief generation
9
12
  export { generateFocusedBrief } from "./brief-focused.ts";
@@ -13,60 +16,13 @@ export { generateFocusedBrief } from "./brief-focused.ts";
13
16
  /**
14
17
  * Generate a compact architecture overview for first-turn session injection.
15
18
  * Targets roughly 500 tokens or less; prefers dense module-edge format.
19
+ *
20
+ * Delegates to use-case/build-overview + presentation/markdown/overview.
16
21
  */
17
- // biome-ignore lint/complexity/noExcessiveCognitiveComplexity: overview formatting with module/edge budget logic
18
22
  export function generateOverview(model: ArchitectureModel): string | null {
19
- if (model.modules.length === 0) return null;
20
-
21
- const lines: string[] = [];
22
- lines.push("# Project: Code Intelligence Overview");
23
- lines.push("");
24
-
25
- if (model.name) {
26
- lines.push(`**${model.name}**${model.description ? ` — ${model.description}` : ""}`);
27
- lines.push("");
28
- }
29
-
30
- // Dense module-edge format (budget: ~8 modules, ~8 edges)
31
- const modules = model.modules.slice(0, 8);
32
- const dependedOn = new Set(model.edges.map((e) => e.to));
33
-
34
- lines.push("## Modules");
35
- lines.push("");
36
-
37
- for (const mod of modules) {
38
- const isLeaf = !dependedOn.has(mod.name);
39
- const deps = mod.internalDeps.filter((d) => modules.some((m) => m.name === d));
40
- const shortName = mod.name.replace(/^@[^/]+\//, "");
41
-
42
- if (deps.length === 0) {
43
- lines.push(
44
- `- **${shortName}**${isLeaf ? " (leaf)" : ""}${mod.description ? ` — ${mod.description}` : ""}`,
45
- );
46
- } else {
47
- const depNames = deps.slice(0, 4).map((d) => d.replace(/^@[^/]+\//, ""));
48
- const depStr = depNames.join(", ");
49
- const suffix = deps.length > 4 ? ` +${deps.length - 4} more` : "";
50
- lines.push(
51
- `- **${shortName}** → ${depStr}${suffix}${mod.description ? ` — ${mod.description}` : ""}`,
52
- );
53
- }
54
- }
55
-
56
- if (model.modules.length > 8) {
57
- lines.push(`- _+${model.modules.length - 8} more modules omitted_`);
58
- }
59
-
60
- lines.push("");
61
-
62
- const gitCtx = gatherGitContext(model.root);
63
- if (gitCtx) {
64
- lines.push(formatGitContext(gitCtx));
65
- }
66
-
67
- lines.push("_Use `code_intel brief` for deeper context on any module or file._");
68
-
69
- return lines.join("\n");
23
+ const data = buildOverviewData(model);
24
+ if (!data) return null;
25
+ return renderOverview(data);
70
26
  }
71
27
 
72
28
  // ── Full-project brief ────────────────────────────────────────────────
@@ -208,11 +164,11 @@ function buildNextQueries(model: ArchitectureModel, publicSurfaces: string[]): s
208
164
  if (model.modules.length > 0) {
209
165
  const firstMod = model.modules[0];
210
166
  nextQueries.push(
211
- `\`code_intel brief\` with \`path: "${firstMod.relativePath}"\` for a focused module brief`,
167
+ `\`code_brief\` with \`path: "${firstMod.relativePath}"\` for a focused module brief`,
212
168
  );
213
169
  }
214
170
  if (publicSurfaces.length > 0) {
215
- nextQueries.push("`code_intel affected` before modifying shared exports");
171
+ nextQueries.push("`code_affected` before modifying shared exports");
216
172
  }
217
173
  return nextQueries;
218
174
  }
@@ -1,22 +1,17 @@
1
- // Code Intelligence extension entry point — registers the `code_intel` tool with pi.
2
- // Provides architecture briefs, caller/callee analysis, impact assessment, and pattern search.
1
+ // Code Intelligence extension entry point — registers the focused code-intelligence tools.
2
+ // Provides architecture briefs, project maps, relationship tracing, impact assessment, and pattern search.
3
3
 
4
- import { StringEnum } from "@earendil-works/pi-ai";
5
4
  import type { BeforeAgentStartEventResult, ExtensionAPI } from "@earendil-works/pi-coding-agent";
6
- import { Type } from "typebox";
7
5
  import { buildArchitectureModel } from "./architecture.ts";
8
- import { generateOverview } from "./brief.ts";
9
- import { CODE_INTEL_ACTION_NAMES, type CodeIntelAction } from "./tool/action-specs.ts";
10
- import { promptGuidelines, promptSnippet, toolDescription } from "./tool/guidance.ts";
11
- import { executeAction } from "./tool-actions.ts";
6
+ import { renderOverview } from "./presentation/markdown/overview.ts";
7
+ import { registerCodeIntelligenceTools } from "./tool/register-tools.ts";
8
+ import { buildOverviewData } from "./use-case/build-overview.ts";
12
9
 
13
10
  const OVERVIEW_CUSTOM_TYPE = "code-intelligence-overview";
14
11
 
15
- const CodeIntelActionEnum = StringEnum(CODE_INTEL_ACTION_NAMES);
16
-
17
12
  /**
18
- * Register the `code_intel` tool and inject a lightweight architecture overview
19
- * once per session.
13
+ * Register the focused code-intelligence tools and inject a lightweight
14
+ * architecture overview once per session.
20
15
  */
21
16
  export default function codeIntelligenceExtension(pi: ExtensionAPI) {
22
17
  let hasInjectedOverview = false;
@@ -43,7 +38,10 @@ export default function codeIntelligenceExtension(pi: ExtensionAPI) {
43
38
  const model = await buildArchitectureModel(ctx.cwd);
44
39
  if (!model || model.modules.length === 0) return;
45
40
 
46
- const overview = generateOverview(model);
41
+ const data = buildOverviewData(model);
42
+ if (!data) return;
43
+
44
+ const overview = renderOverview(data);
47
45
  if (!overview) return;
48
46
 
49
47
  return {
@@ -56,68 +54,5 @@ export default function codeIntelligenceExtension(pi: ExtensionAPI) {
56
54
  },
57
55
  );
58
56
 
59
- pi.registerTool({
60
- name: "code_intel",
61
- label: "Code Intelligence",
62
- description: toolDescription,
63
- parameters: Type.Object({
64
- action: CodeIntelActionEnum,
65
- path: Type.Optional(
66
- Type.String({ description: "Scope or focus path (package, directory, or file)" }),
67
- ),
68
- file: Type.Optional(
69
- Type.String({
70
- description:
71
- "Anchored target file (use with line/character) or a file-level semantic target for brief/callers/affected",
72
- }),
73
- ),
74
- line: Type.Optional(Type.Number({ description: "1-based line number for anchored target" })),
75
- character: Type.Optional(
76
- Type.Number({ description: "1-based character column (UTF-16) for anchored target" }),
77
- ),
78
- symbol: Type.Optional(
79
- Type.String({ description: "Symbol name for discovery-based resolution" }),
80
- ),
81
- pattern: Type.Optional(
82
- Type.String({
83
- description: "Text search pattern (pattern action only; literal by default)",
84
- }),
85
- ),
86
- regex: Type.Optional(
87
- Type.Boolean({
88
- description: "Use regex semantics for pattern action (default: false, literal search)",
89
- }),
90
- ),
91
- kind: Type.Optional(
92
- Type.String({
93
- description:
94
- "Symbol kind filter for discovery, or pattern kind (`definition` | `export` | `import`) for structured searches",
95
- }),
96
- ),
97
- exportedOnly: Type.Optional(
98
- Type.Boolean({ description: "Limit discovery to exported symbols" }),
99
- ),
100
- maxResults: Type.Optional(Type.Number({ description: "Maximum results to return" })),
101
- contextLines: Type.Optional(Type.Number({ description: "Context lines around matches" })),
102
- summary: Type.Optional(
103
- Type.Boolean({
104
- description:
105
- "Aggregate counts by directory instead of line-level matches (pattern action only)",
106
- }),
107
- ),
108
- }),
109
- promptSnippet,
110
- promptGuidelines,
111
- // biome-ignore lint/complexity/useMaxParams: pi ToolDefinition.execute signature
112
- execute: async (_toolCallId, params, _signal, _onUpdate, ctx) => {
113
- const { content, details } = await executeAction(
114
- params as unknown as { action: CodeIntelAction } & Record<string, unknown>,
115
- { cwd: ctx.cwd },
116
- );
117
- return {
118
- content: [{ type: "text", text: content }],
119
- details,
120
- };
121
- },
122
- });
57
+ registerCodeIntelligenceTools(pi);
123
58
  }
package/src/index.ts CHANGED
@@ -10,6 +10,21 @@ export {
10
10
  } from "./architecture.ts";
11
11
 
12
12
  export { generateFocusedBrief, generateOverview, generateProjectBrief } from "./brief.ts";
13
+ export { createSemanticSubstrate } from "./substrates/lsp-adapter.ts";
14
+ export { createStructuralSubstrate } from "./substrates/tree-sitter-adapter.ts";
15
+
16
+ // Substrate adapters
17
+ export type {
18
+ CalleesData,
19
+ CodeSymbol,
20
+ ExportData,
21
+ ImportData,
22
+ NodeAtData,
23
+ OutlineData,
24
+ SemanticSubstrate,
25
+ StructuralResult,
26
+ StructuralSubstrate,
27
+ } from "./substrates/types.ts";
13
28
  export type { ResolvedTarget, TargetResolutionResult } from "./target-resolution.ts";
14
29
  export {
15
30
  normalizePath,
@@ -24,5 +39,6 @@ export type {
24
39
  CodeIntelResult,
25
40
  ConfidenceMode,
26
41
  DisambiguationCandidate,
42
+ MapDetails,
27
43
  SearchDetails,
28
44
  } from "./types.ts";