@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,324 @@
1
+ // Brief orchestration use-case — dispatches by mode, coordinates substrate access,
2
+ // and returns fully rendered markdown content + details metadata.
3
+
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+ import type { ArchitectureModel } from "../architecture.ts";
7
+ import { findModuleForPath } from "../architecture.ts";
8
+ import { generateFocusedBrief, generateProjectBrief } from "../brief.ts";
9
+ import { renderAnchoredBrief, renderSymbolBrief } from "../presentation/markdown/brief.ts";
10
+ import { normalizePath } from "../search-helpers.ts";
11
+ import type { SemanticSubstrate, StructuralSubstrate } from "../substrates/types.ts";
12
+ import type { TargetResolutionResult } from "../target-resolution.ts";
13
+ import { resolveSymbolTarget } from "../target-resolution.ts";
14
+ import type { BriefDeps, BriefInput, BriefUseCaseResult } from "./types.ts";
15
+
16
+ // ── TreeSitterContext is an intermediate data shape from the use-case ──
17
+
18
+ export interface TreeSitterContext {
19
+ nodeInfo: { type: string; text: string; startLine: number; startCharacter: number } | null;
20
+ outline: Array<{ name: string; kind: string; startLine: number; endLine: number }>;
21
+ imports: Array<{ moduleSpecifier: string }>;
22
+ exports: Array<{ name: string; kind: string }>;
23
+ }
24
+
25
+ // ── Public entrypoint ─────────────────────────────────────────────────
26
+
27
+ export async function executeBrief(
28
+ input: BriefInput,
29
+ deps: BriefDeps,
30
+ ): Promise<BriefUseCaseResult> {
31
+ switch (input.kind) {
32
+ case "project":
33
+ if (deps.model) {
34
+ return executeProjectBrief(deps.model);
35
+ }
36
+ return noModelResult();
37
+ case "path":
38
+ return executePathBrief(input.path, deps);
39
+ case "file":
40
+ return executeFileBrief(input.file, deps);
41
+ case "anchored":
42
+ return executeAnchoredBrief(input, deps);
43
+ case "symbol":
44
+ return executeSymbolBrief(input.symbol, input.path, deps);
45
+ }
46
+ }
47
+
48
+ // ── Project brief ─────────────────────────────────────────────────────
49
+
50
+ function executeProjectBrief(model: ArchitectureModel): BriefUseCaseResult {
51
+ if (!model) {
52
+ return noModelResult();
53
+ }
54
+ const result = generateProjectBrief(model);
55
+ return { content: result.content, details: result.details };
56
+ }
57
+
58
+ // ── Path / file briefs ────────────────────────────────────────────────
59
+
60
+ function executePathBrief(requestPath: string, deps: BriefDeps): BriefUseCaseResult {
61
+ if (!deps.model) {
62
+ return noModelResult();
63
+ }
64
+ const resolved = normalizePath(requestPath, deps.cwd);
65
+ const result = generateFocusedBrief(deps.model, resolved);
66
+ return { content: result.content, details: result.details };
67
+ }
68
+
69
+ function executeFileBrief(file: string, deps: BriefDeps): BriefUseCaseResult {
70
+ if (!deps.model) {
71
+ return noModelResult();
72
+ }
73
+ const resolved = normalizePath(file, deps.cwd);
74
+ const result = generateFocusedBrief(deps.model, resolved);
75
+ return { content: result.content, details: result.details };
76
+ }
77
+
78
+ // ── Anchored brief ────────────────────────────────────────────────────
79
+
80
+ async function executeAnchoredBrief(
81
+ input: { file: string; line: number; character: number },
82
+ deps: BriefDeps,
83
+ ): Promise<BriefUseCaseResult> {
84
+ const { file, line, character } = input;
85
+ const resolvedFile = normalizePath(file, deps.cwd);
86
+
87
+ if (!fs.existsSync(resolvedFile)) {
88
+ return {
89
+ content: `**Error:** File not found: \`${file}\``,
90
+ details: {
91
+ confidence: "unavailable",
92
+ focusTarget: `${file}:${line}:${character}`,
93
+ startHere: [],
94
+ publicSurfaces: [],
95
+ dependencySummary: null,
96
+ omittedCount: 0,
97
+ nextQueries: [],
98
+ },
99
+ };
100
+ }
101
+
102
+ const relPath = path.relative(deps.cwd, resolvedFile);
103
+ const context = await gatherTreeSitterContext(deps.structural, relPath, line, character);
104
+
105
+ const details = {
106
+ confidence: "structural" as const,
107
+ focusTarget: `${relPath}:${line}:${character}`,
108
+ startHere: [] as Array<{ target: string; reason: string }>,
109
+ publicSurfaces: [] as string[],
110
+ dependencySummary: null as { moduleCount: number; edgeCount: number } | null,
111
+ omittedCount: 0,
112
+ nextQueries: [
113
+ `\`code_relations\` with \`kind: "callers"\`, \`file: "${relPath}"\`, \`line: ${line}\`, and \`character: ${character}\` for call sites`,
114
+ `\`code_affected\` with \`file: "${relPath}"\`, \`line: ${line}\`, and \`character: ${character}\` for impact analysis`,
115
+ ],
116
+ };
117
+
118
+ const rendered = renderAnchoredBrief({
119
+ relPath,
120
+ line,
121
+ character,
122
+ context,
123
+ model: deps.model ?? null,
124
+ details,
125
+ cwd: deps.cwd,
126
+ });
127
+
128
+ return rendered;
129
+ }
130
+
131
+ // ── Symbol brief ──────────────────────────────────────────────────────
132
+
133
+ async function executeSymbolBrief(
134
+ symbol: string,
135
+ scopePath: string | undefined,
136
+ deps: BriefDeps,
137
+ ): Promise<BriefUseCaseResult> {
138
+ if (!deps.model || deps.model.modules.length === 0) {
139
+ return {
140
+ content: `**Error:** Symbol brief requires a project model, which is not available.`,
141
+ details: {
142
+ confidence: "unavailable",
143
+ focusTarget: symbol,
144
+ startHere: [],
145
+ publicSurfaces: [],
146
+ dependencySummary: null,
147
+ omittedCount: 0,
148
+ nextQueries: ["Add a package.json or workspace manifest to enable architecture analysis"],
149
+ },
150
+ };
151
+ }
152
+
153
+ const semanticModule = await import("../substrates/lsp-adapter.ts");
154
+ const semantic: SemanticSubstrate = semanticModule.createSemanticSubstrate(deps.cwd);
155
+ const resolved = await resolveSymbolTarget(symbol, deps.cwd, semantic, {
156
+ path: scopePath,
157
+ });
158
+
159
+ if (resolved.kind === "error") {
160
+ return {
161
+ content: resolved.message,
162
+ details: {
163
+ confidence: "unavailable",
164
+ focusTarget: symbol,
165
+ startHere: [],
166
+ publicSurfaces: [],
167
+ dependencySummary: null,
168
+ omittedCount: 0,
169
+ nextQueries: [
170
+ "Use `file` + coordinates for a precise symbol brief, or enable LSP and retry",
171
+ ],
172
+ },
173
+ };
174
+ }
175
+
176
+ if (resolved.kind === "disambiguation") {
177
+ const disambiguationContent = formatDisambiguation(symbol, resolved);
178
+ return {
179
+ content: disambiguationContent,
180
+ details: {
181
+ confidence: "unavailable",
182
+ focusTarget: symbol,
183
+ startHere: [],
184
+ publicSurfaces: [],
185
+ dependencySummary: null,
186
+ omittedCount: resolved.omittedCount,
187
+ nextQueries: [
188
+ "Use `file` + coordinates for a precise symbol brief, or enable LSP and retry",
189
+ ],
190
+ },
191
+ };
192
+ }
193
+
194
+ const target = resolved.target;
195
+ const relPath = path.relative(deps.cwd, target.file);
196
+
197
+ const mod = findModuleForPath(deps.model, target.file);
198
+ const context = await gatherTreeSitterContext(
199
+ deps.structural,
200
+ relPath,
201
+ target.displayLine,
202
+ target.displayCharacter,
203
+ );
204
+
205
+ const details = {
206
+ confidence: target.confidence,
207
+ focusTarget: `${target.name ?? relPath}:${target.displayLine}:${target.displayCharacter}`,
208
+ startHere: [] as Array<{ target: string; reason: string }>,
209
+ publicSurfaces: [] as string[],
210
+ dependencySummary: mod ? { moduleCount: 1, edgeCount: mod.internalDeps.length } : null,
211
+ omittedCount: 0,
212
+ nextQueries: [
213
+ `\`code_relations\` with \`kind: "callers"\`, \`file: "${relPath}"\`, \`line: ${target.displayLine}\`, and \`character: ${target.displayCharacter}\` for call sites`,
214
+ `\`code_affected\` with \`file: "${relPath}"\`, \`line: ${target.displayLine}\`, and \`character: ${target.displayCharacter}\` for impact analysis`,
215
+ ],
216
+ };
217
+
218
+ const rendered = renderSymbolBrief({
219
+ relPath,
220
+ symbolName: target.name ?? "",
221
+ targetLine: target.displayLine,
222
+ targetCharacter: target.displayCharacter,
223
+ targetKind: target.kind,
224
+ context,
225
+ model: deps.model ?? null,
226
+ details,
227
+ cwd: deps.cwd,
228
+ });
229
+
230
+ return rendered;
231
+ }
232
+
233
+ // ── Helpers ───────────────────────────────────────────────────────────
234
+
235
+ async function gatherTreeSitterContext(
236
+ structural: StructuralSubstrate,
237
+ relPath: string,
238
+ line: number,
239
+ character: number,
240
+ ): Promise<TreeSitterContext> {
241
+ let nodeInfo: TreeSitterContext["nodeInfo"] = null;
242
+ let outline: TreeSitterContext["outline"] = [];
243
+ let imports: TreeSitterContext["imports"] = [];
244
+ let exports: TreeSitterContext["exports"] = [];
245
+
246
+ try {
247
+ const nodeResult = await structural.nodeAt(relPath, line, character);
248
+ if (nodeResult.kind === "success") {
249
+ nodeInfo = {
250
+ type: nodeResult.data.type,
251
+ text: nodeResult.data.text,
252
+ startLine: nodeResult.data.startLine,
253
+ startCharacter: nodeResult.data.startCharacter,
254
+ };
255
+ }
256
+
257
+ const outlineResult = await structural.outline(relPath);
258
+ if (outlineResult.kind === "success") {
259
+ outline = outlineResult.data.map((item) => ({
260
+ name: item.name,
261
+ kind: item.kind,
262
+ startLine: item.startLine,
263
+ endLine: item.endLine,
264
+ }));
265
+ }
266
+
267
+ const importsResult = await structural.imports(relPath);
268
+ if (importsResult.kind === "success") {
269
+ imports = importsResult.data;
270
+ }
271
+
272
+ const exportsResult = await structural.exports(relPath);
273
+ if (exportsResult.kind === "success") {
274
+ exports = exportsResult.data.map((item) => ({
275
+ name: item.name,
276
+ kind: item.kind,
277
+ }));
278
+ }
279
+ } catch {
280
+ // Tree-sitter not available
281
+ }
282
+
283
+ return { nodeInfo, outline, imports, exports };
284
+ }
285
+
286
+ function noModelResult(): BriefUseCaseResult {
287
+ return {
288
+ content:
289
+ "No project structure detected. This directory has no recognizable project metadata or source files.",
290
+ details: {
291
+ confidence: "unavailable",
292
+ focusTarget: null,
293
+ startHere: [],
294
+ publicSurfaces: [],
295
+ dependencySummary: null,
296
+ omittedCount: 0,
297
+ nextQueries: ["Add a package.json or pnpm-workspace.yaml to enable architecture analysis"],
298
+ },
299
+ };
300
+ }
301
+
302
+ function formatDisambiguation(
303
+ symbol: string,
304
+ result: Extract<TargetResolutionResult, { kind: "disambiguation" }>,
305
+ ): string {
306
+ const lines: string[] = [];
307
+ lines.push(`# Disambiguation needed for \`${symbol}\``);
308
+ lines.push("");
309
+ const omitNote = result.omittedCount > 0 ? ` (+${result.omittedCount} more)` : "";
310
+ lines.push(
311
+ `Found ${result.candidates.length} candidates${omitNote}. Rerun with anchored coordinates:`,
312
+ );
313
+ lines.push("");
314
+
315
+ for (const candidate of result.candidates) {
316
+ const kind = candidate.kind ? ` (${candidate.kind})` : "";
317
+ const container = candidate.container ? ` in ${candidate.container}` : "";
318
+ lines.push(
319
+ `${candidate.rank}. **${candidate.name}**${kind}${container} — \`${candidate.file}\`:${candidate.line}:${candidate.character}`,
320
+ );
321
+ }
322
+
323
+ return lines.join("\n");
324
+ }
@@ -0,0 +1,176 @@
1
+ // Map use-case — typed filesystem scanning for factual project/directory inventory.
2
+ // Produces structured data for the markdown renderer.
3
+
4
+ import * as fs from "node:fs";
5
+ import * as path from "node:path";
6
+
7
+ // ── Types ────────────────────────────────────────────────────────────
8
+
9
+ export interface MapStats {
10
+ byExtension: Map<string, number>;
11
+ byChildDir: Map<string, number>;
12
+ landmarkFiles: string[];
13
+ total: number;
14
+ }
15
+
16
+ export interface MapData {
17
+ scope: string;
18
+ stats: MapStats;
19
+ }
20
+
21
+ const SOURCE_EXTENSIONS = new Map([
22
+ [".ts", "TypeScript"],
23
+ [".tsx", "TSX"],
24
+ [".js", "JavaScript"],
25
+ [".jsx", "JSX"],
26
+ [".mts", "TypeScript"],
27
+ [".cts", "TypeScript"],
28
+ [".mjs", "JavaScript"],
29
+ [".cjs", "JavaScript"],
30
+ [".py", "Python"],
31
+ [".pyi", "Python"],
32
+ [".rs", "Rust"],
33
+ [".go", "Go"],
34
+ [".mod", "Go"],
35
+ [".java", "Java"],
36
+ [".kt", "Kotlin"],
37
+ [".kts", "Kotlin"],
38
+ [".rb", "Ruby"],
39
+ [".php", "PHP"],
40
+ [".swift", "Swift"],
41
+ [".cpp", "C++"],
42
+ [".hpp", "C++"],
43
+ [".cc", "C++"],
44
+ [".cxx", "C++"],
45
+ [".hxx", "C++ Header"],
46
+ [".c++", "C++"],
47
+ [".h++", "C++ Header"],
48
+ [".c", "C"],
49
+ [".h", "C Header"],
50
+ [".css", "CSS"],
51
+ [".scss", "SCSS"],
52
+ [".less", "Less"],
53
+ [".html", "HTML"],
54
+ [".htm", "HTML"],
55
+ [".xhtml", "HTML"],
56
+ [".json", "JSON"],
57
+ [".yaml", "YAML"],
58
+ [".yml", "YAML"],
59
+ [".toml", "TOML"],
60
+ [".md", "Markdown"],
61
+ [".sh", "Shell"],
62
+ [".bash", "Shell"],
63
+ [".zsh", "Shell"],
64
+ [".r", "R"],
65
+ [".sql", "SQL"],
66
+ [".cs", "C#"],
67
+ ]);
68
+
69
+ const LANDMARK_FILES = new Set([
70
+ "package.json",
71
+ "tsconfig.json",
72
+ "jsconfig.json",
73
+ "vite.config.ts",
74
+ "vitest.config.ts",
75
+ "jest.config.ts",
76
+ "playwright.config.ts",
77
+ "biome.json",
78
+ "eslint.config.js",
79
+ ".eslintrc.js",
80
+ "deno.json",
81
+ "deno.jsonc",
82
+ "Cargo.toml",
83
+ "go.mod",
84
+ "pyproject.toml",
85
+ "setup.py",
86
+ "requirements.txt",
87
+ "Makefile",
88
+ "justfile",
89
+ "Taskfile.yml",
90
+ "Dockerfile",
91
+ "docker-compose.yml",
92
+ ".env.example",
93
+ ".env.local.example",
94
+ ]);
95
+
96
+ const SKIP_DIRS = new Set(["node_modules", "dist", "build", ".git"]);
97
+
98
+ // ── Public entrypoint ────────────────────────────────────────────────
99
+
100
+ export function buildMapData(scopePath: string, cwd: string): MapData {
101
+ const stats = gatherStats(scopePath);
102
+ const scope = formatScope(scopePath, cwd);
103
+ return { scope, stats };
104
+ }
105
+
106
+ function gatherStats(scopePath: string): MapStats {
107
+ const stats: MapStats = {
108
+ byExtension: new Map<string, number>(),
109
+ byChildDir: new Map<string, number>(),
110
+ landmarkFiles: [],
111
+ total: 0,
112
+ };
113
+
114
+ walkDirectory(scopePath, "", stats);
115
+ return stats;
116
+ }
117
+
118
+ function walkDirectory(dir: string, rel: string, stats: MapStats): void {
119
+ const entries = readEntries(dir);
120
+ if (!entries) return;
121
+
122
+ for (const entry of entries) {
123
+ if (shouldSkipEntry(entry)) continue;
124
+ visitEntry(dir, rel, entry, stats);
125
+ }
126
+ }
127
+
128
+ function readEntries(dir: string): fs.Dirent[] | null {
129
+ try {
130
+ return fs.readdirSync(dir, { withFileTypes: true });
131
+ } catch {
132
+ return null;
133
+ }
134
+ }
135
+
136
+ function shouldSkipEntry(entry: fs.Dirent): boolean {
137
+ // Skip hidden directories and node_modules, but keep dot-prefixed landmark files
138
+ if (entry.name.startsWith(".") && entry.isDirectory()) return true;
139
+ return SKIP_DIRS.has(entry.name);
140
+ }
141
+
142
+ function visitEntry(dir: string, rel: string, entry: fs.Dirent, stats: MapStats): void {
143
+ const entryRel = rel ? `${rel}/${entry.name}` : entry.name;
144
+ const fullPath = path.join(dir, entry.name);
145
+
146
+ if (entry.isDirectory()) {
147
+ walkDirectory(fullPath, entryRel, stats);
148
+ return;
149
+ }
150
+
151
+ recordFileStats(entry.name, entryRel, stats);
152
+ }
153
+
154
+ function recordFileStats(entryName: string, entryRel: string, stats: MapStats): void {
155
+ stats.total++;
156
+ const ext = path.extname(entryName).toLowerCase();
157
+ stats.byExtension.set(ext, (stats.byExtension.get(ext) ?? 0) + 1);
158
+
159
+ const firstSegment = entryRel.split("/")[0];
160
+ if (firstSegment && entryRel.includes("/")) {
161
+ stats.byChildDir.set(firstSegment, (stats.byChildDir.get(firstSegment) ?? 0) + 1);
162
+ }
163
+
164
+ if (LANDMARK_FILES.has(entryName)) {
165
+ stats.landmarkFiles.push(entryRel);
166
+ }
167
+ }
168
+
169
+ function formatScope(scopePath: string, cwd: string): string {
170
+ const relative = path.relative(cwd, scopePath);
171
+ if (relative === "") return ".";
172
+ if (relative.startsWith(`..${path.sep}`) || relative === "..") return scopePath;
173
+ return relative.replaceAll(path.sep, "/");
174
+ }
175
+
176
+ export { SOURCE_EXTENSIONS };