@mrclrchtr/supi-code-intelligence 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/README.md +13 -2
  2. package/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  3. package/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  4. package/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  5. package/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  6. package/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  7. package/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  8. package/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  9. package/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  10. package/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  11. package/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  12. package/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  13. package/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  14. package/node_modules/@mrclrchtr/supi-lsp/README.md +13 -8
  15. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  16. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  17. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  18. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  19. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  20. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  21. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  22. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  23. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  24. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  25. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  26. package/node_modules/@mrclrchtr/supi-lsp/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  27. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/License.txt +11 -0
  28. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/README.md +69 -0
  29. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  30. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/browser.js +7 -0
  31. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  32. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  33. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  34. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  35. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  36. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  37. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  38. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  39. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  40. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/connection.js +1214 -0
  41. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  42. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  43. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  44. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  45. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  46. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  47. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  48. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  49. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  50. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  51. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  52. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  53. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  54. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  55. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  56. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  57. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  58. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  59. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  60. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  61. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  62. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  63. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  64. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  65. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  66. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  67. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  68. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  69. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.cmd +5 -0
  70. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  71. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/node.js +7 -0
  72. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/package.json +45 -0
  73. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  74. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  75. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/License.txt +11 -0
  76. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/README.md +16 -0
  77. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.d.ts +6 -0
  78. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/browser.js +7 -0
  79. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +4 -0
  80. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/browser/main.js +28 -0
  81. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +58 -0
  82. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/api.js +77 -0
  83. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +187 -0
  84. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/connection.js +15 -0
  85. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +51 -0
  86. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/messages.js +44 -0
  87. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +1 -0
  88. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +43 -0
  89. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +86 -0
  90. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +42 -0
  91. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +66 -0
  92. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +32 -0
  93. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +35 -0
  94. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +24 -0
  95. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +3252 -0
  96. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +37 -0
  97. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +22 -0
  98. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +341 -0
  99. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +74 -0
  100. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +306 -0
  101. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +101 -0
  102. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +109 -0
  103. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +30 -0
  104. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +38 -0
  105. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +21 -0
  106. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +110 -0
  107. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +43 -0
  108. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +57 -0
  109. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +22 -0
  110. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +86 -0
  111. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +30 -0
  112. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +943 -0
  113. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +52 -0
  114. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +19 -0
  115. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +106 -0
  116. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +68 -0
  117. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +400 -0
  118. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +214 -0
  119. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +107 -0
  120. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +37 -0
  121. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +41 -0
  122. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +20 -0
  123. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +223 -0
  124. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +57 -0
  125. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +72 -0
  126. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +22 -0
  127. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +38 -0
  128. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +21 -0
  129. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +83 -0
  130. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +42 -0
  131. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +74 -0
  132. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +27 -0
  133. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +9 -0
  134. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +46 -0
  135. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +6 -0
  136. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/lib/node/main.js +28 -0
  137. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/metaModel.schema.json +783 -0
  138. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.cmd +5 -0
  139. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.d.ts +6 -0
  140. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node.js +7 -0
  141. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/License.txt +11 -0
  142. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/README.md +69 -0
  143. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.d.ts +6 -0
  144. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/browser.js +7 -0
  145. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  146. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/main.js +76 -0
  147. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +12 -0
  148. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/browser/ril.js +156 -0
  149. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  150. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/api.js +81 -0
  151. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  152. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/cancellation.js +96 -0
  153. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +358 -0
  154. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/connection.js +1212 -0
  155. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  156. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/disposable.js +16 -0
  157. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  158. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/encoding.js +70 -0
  159. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  160. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/events.js +128 -0
  161. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  162. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/is.js +35 -0
  163. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +53 -0
  164. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +398 -0
  165. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  166. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +152 -0
  167. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  168. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageReader.js +197 -0
  169. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  170. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +115 -0
  171. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  172. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/messages.js +306 -0
  173. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  174. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/ral.js +23 -0
  175. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  176. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/semaphore.js +68 -0
  177. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  178. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +76 -0
  179. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.d.ts +63 -0
  180. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/main.js +257 -0
  181. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +13 -0
  182. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/lib/node/ril.js +161 -0
  183. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.cmd +5 -0
  184. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.d.ts +6 -0
  185. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/node.js +7 -0
  186. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/package.json +45 -0
  187. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/thirdpartynotices.txt +16 -0
  188. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/node_modules/vscode-jsonrpc/typings/thenable.d.ts +5 -0
  189. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-protocol/package.json +45 -0
  190. package/node_modules/@mrclrchtr/{supi-tree-sitter/node_modules/web-tree-sitter/LICENSE → supi-lsp/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt} +16 -6
  191. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/License.txt +11 -0
  192. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/README.md +17 -0
  193. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +3139 -0
  194. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/main.js +2222 -0
  195. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/esm/package.json +3 -0
  196. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +3139 -0
  197. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/lib/umd/main.js +2272 -0
  198. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/package.json +38 -0
  199. package/node_modules/@mrclrchtr/supi-lsp/node_modules/vscode-languageserver-types/thirdpartynotices.txt +16 -0
  200. package/node_modules/@mrclrchtr/supi-lsp/package.json +2 -2
  201. package/node_modules/@mrclrchtr/supi-lsp/src/config/config.ts +1 -1
  202. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/diagnostic-injection.ts +182 -0
  203. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/session-lifecycle.ts +139 -0
  204. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/status-command.ts +38 -0
  205. package/node_modules/@mrclrchtr/supi-lsp/src/handlers/workspace-recovery.ts +92 -0
  206. package/node_modules/@mrclrchtr/supi-lsp/src/lsp.ts +15 -413
  207. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-helpers.ts +1 -1
  208. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager-workspace-symbol.ts +1 -1
  209. package/node_modules/@mrclrchtr/supi-lsp/src/manager/manager.ts +1 -1
  210. package/node_modules/@mrclrchtr/supi-lsp/src/session/scanner.ts +1 -1
  211. package/node_modules/@mrclrchtr/supi-lsp/src/session/service-registry.ts +1 -1
  212. package/node_modules/@mrclrchtr/supi-lsp/src/session/settings-registration.ts +1 -1
  213. package/node_modules/@mrclrchtr/supi-lsp/src/tool/guidance.ts +5 -14
  214. package/node_modules/@mrclrchtr/supi-lsp/src/tool/names.ts +12 -4
  215. package/node_modules/@mrclrchtr/supi-lsp/src/tool/register-tools.ts +2 -3
  216. package/node_modules/@mrclrchtr/supi-lsp/src/tool/service-actions.ts +141 -0
  217. package/node_modules/@mrclrchtr/supi-lsp/src/tool/tool-specs.ts +93 -93
  218. package/node_modules/@mrclrchtr/supi-lsp/src/utils.ts +1 -1
  219. package/node_modules/@mrclrchtr/supi-lsp/src/workspace-change.ts +40 -0
  220. package/node_modules/@mrclrchtr/supi-tree-sitter/README.md +26 -15
  221. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/package.json +13 -2
  222. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/api.ts +26 -92
  223. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/config.ts +11 -0
  224. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/context.ts +16 -0
  225. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/index.ts +26 -92
  226. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/path.ts +2 -0
  227. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/project.ts +15 -0
  228. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/session.ts +4 -0
  229. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings-ui.ts +2 -0
  230. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/settings.ts +9 -0
  231. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/substrate-types.ts +11 -0
  232. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/@mrclrchtr/supi-core/src/types.ts +2 -0
  233. package/node_modules/@mrclrchtr/supi-tree-sitter/package.json +2 -2
  234. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/runtime.ts +1 -1
  235. package/node_modules/@mrclrchtr/supi-tree-sitter/src/session/service-registry.ts +1 -1
  236. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/guidance.ts +29 -25
  237. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/handlers.ts +196 -0
  238. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/register-tools.ts +107 -0
  239. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/tool-specs.ts +117 -0
  240. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tree-sitter.ts +4 -300
  241. package/package.json +4 -4
  242. package/src/api.ts +15 -0
  243. package/src/architecture.ts +1 -1
  244. package/src/brief.ts +9 -53
  245. package/src/code-intelligence.ts +6 -2
  246. package/src/index.ts +15 -0
  247. package/src/pattern-structured.ts +26 -26
  248. package/src/presentation/markdown/affected.ts +170 -0
  249. package/src/presentation/markdown/brief.ts +174 -0
  250. package/src/presentation/markdown/map.ts +54 -0
  251. package/src/presentation/markdown/overview.ts +59 -0
  252. package/src/presentation/markdown/pattern.ts +239 -0
  253. package/src/presentation/markdown/relations.ts +121 -0
  254. package/src/prioritization-signals.ts +1 -1
  255. package/src/resolve-target.ts +58 -40
  256. package/src/search-helpers.ts +17 -4
  257. package/src/substrates/lsp-adapter.ts +197 -0
  258. package/src/substrates/tree-sitter-adapter.ts +173 -0
  259. package/src/substrates/types.ts +113 -0
  260. package/src/target-resolution.ts +35 -416
  261. package/src/targeting/query.ts +60 -0
  262. package/src/targeting/resolve-anchored.ts +80 -0
  263. package/src/targeting/resolve-file.ts +197 -0
  264. package/src/targeting/resolve-symbol.ts +110 -0
  265. package/src/targeting/types.ts +111 -0
  266. package/src/tool/execute-affected.ts +3 -3
  267. package/src/tool/execute-brief.ts +29 -3
  268. package/src/tool/execute-map.ts +5 -2
  269. package/src/tool/execute-pattern.ts +5 -3
  270. package/src/tool/execute-relations.ts +15 -23
  271. package/src/tool/guidance.ts +30 -1
  272. package/src/tool/tool-specs.ts +29 -48
  273. package/src/use-case/build-overview.ts +36 -0
  274. package/src/use-case/generate-affected.ts +279 -0
  275. package/src/use-case/generate-brief.ts +324 -0
  276. package/src/{actions/map-action.ts → use-case/generate-map.ts} +30 -60
  277. package/src/use-case/generate-pattern.ts +270 -0
  278. package/src/use-case/generate-relations.ts +392 -0
  279. package/src/use-case/support/semantic-references.ts +114 -0
  280. package/src/use-case/types.ts +43 -0
  281. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/README.md +0 -265
  282. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs +0 -4661
  283. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.cjs.map +0 -7
  284. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js +0 -4605
  285. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.js.map +0 -7
  286. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm +0 -0
  287. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/debug/web-tree-sitter.wasm.map +0 -57
  288. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/package.json +0 -100
  289. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs +0 -4063
  290. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.cjs.map +0 -7
  291. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts +0 -1025
  292. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.cts.map +0 -58
  293. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts +0 -1025
  294. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.d.ts.map +0 -58
  295. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js +0 -4007
  296. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.js.map +0 -7
  297. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm +0 -0
  298. package/node_modules/@mrclrchtr/supi-tree-sitter/node_modules/web-tree-sitter/web-tree-sitter.wasm.map +0 -55
  299. package/node_modules/@mrclrchtr/supi-tree-sitter/src/tool/action-specs.ts +0 -92
  300. package/src/actions/affected-action.ts +0 -452
  301. package/src/actions/brief-action.ts +0 -378
  302. package/src/actions/callees-action.ts +0 -155
  303. package/src/actions/callers-action.ts +0 -253
  304. package/src/actions/implementations-action.ts +0 -172
  305. package/src/actions/pattern-action.ts +0 -392
  306. package/src/providers/semantic-provider.ts +0 -34
  307. package/src/providers/structural-provider.ts +0 -26
@@ -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
+ }
@@ -1,6 +1,22 @@
1
+ // Map use-case — typed filesystem scanning for factual project/directory inventory.
2
+ // Produces structured data for the markdown renderer.
3
+
1
4
  import * as fs from "node:fs";
2
5
  import * as path from "node:path";
3
- import type { CodeIntelResult, MapDetails } from "../types.ts";
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
+ }
4
20
 
5
21
  const SOURCE_EXTENSIONS = new Map([
6
22
  [".ts", "TypeScript"],
@@ -79,30 +95,16 @@ const LANDMARK_FILES = new Set([
79
95
 
80
96
  const SKIP_DIRS = new Set(["node_modules", "dist", "build", ".git"]);
81
97
 
82
- interface FileStats {
83
- byExtension: Map<string, number>;
84
- byChildDir: Map<string, number>;
85
- landmarkFiles: string[];
86
- total: number;
87
- }
98
+ // ── Public entrypoint ────────────────────────────────────────────────
88
99
 
89
- export function executeMapAction(scopePath: string, cwd: string): CodeIntelResult {
100
+ export function buildMapData(scopePath: string, cwd: string): MapData {
90
101
  const stats = gatherStats(scopePath);
91
102
  const scope = formatScope(scopePath, cwd);
92
- const content = formatMap(scope, stats);
93
- const details: MapDetails = {
94
- scope,
95
- totalFiles: stats.total,
96
- childDirectoryCount: stats.byChildDir.size,
97
- landmarkCount: stats.landmarkFiles.length,
98
- nextQueries: ["`code_brief` for prioritized context on this scope"],
99
- };
100
-
101
- return { content, details: { type: "map", data: details } };
103
+ return { scope, stats };
102
104
  }
103
105
 
104
- function gatherStats(scopePath: string): FileStats {
105
- const stats: FileStats = {
106
+ function gatherStats(scopePath: string): MapStats {
107
+ const stats: MapStats = {
106
108
  byExtension: new Map<string, number>(),
107
109
  byChildDir: new Map<string, number>(),
108
110
  landmarkFiles: [],
@@ -113,7 +115,7 @@ function gatherStats(scopePath: string): FileStats {
113
115
  return stats;
114
116
  }
115
117
 
116
- function walkDirectory(dir: string, rel: string, stats: FileStats): void {
118
+ function walkDirectory(dir: string, rel: string, stats: MapStats): void {
117
119
  const entries = readEntries(dir);
118
120
  if (!entries) return;
119
121
 
@@ -132,10 +134,12 @@ function readEntries(dir: string): fs.Dirent[] | null {
132
134
  }
133
135
 
134
136
  function shouldSkipEntry(entry: fs.Dirent): boolean {
135
- return entry.name.startsWith(".") || SKIP_DIRS.has(entry.name);
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);
136
140
  }
137
141
 
138
- function visitEntry(dir: string, rel: string, entry: fs.Dirent, stats: FileStats): void {
142
+ function visitEntry(dir: string, rel: string, entry: fs.Dirent, stats: MapStats): void {
139
143
  const entryRel = rel ? `${rel}/${entry.name}` : entry.name;
140
144
  const fullPath = path.join(dir, entry.name);
141
145
 
@@ -147,7 +151,7 @@ function visitEntry(dir: string, rel: string, entry: fs.Dirent, stats: FileStats
147
151
  recordFileStats(entry.name, entryRel, stats);
148
152
  }
149
153
 
150
- function recordFileStats(entryName: string, entryRel: string, stats: FileStats): void {
154
+ function recordFileStats(entryName: string, entryRel: string, stats: MapStats): void {
151
155
  stats.total++;
152
156
  const ext = path.extname(entryName).toLowerCase();
153
157
  stats.byExtension.set(ext, (stats.byExtension.get(ext) ?? 0) + 1);
@@ -162,45 +166,11 @@ function recordFileStats(entryName: string, entryRel: string, stats: FileStats):
162
166
  }
163
167
  }
164
168
 
165
- function formatMap(scope: string, stats: FileStats): string {
166
- const lines: string[] = [];
167
-
168
- lines.push(`# Code Map: ${scope}`);
169
- lines.push("");
170
- lines.push(`**Files:** ${stats.total} total`);
171
- for (const [ext, count] of [...stats.byExtension.entries()]
172
- .sort((a, b) => b[1] - a[1])
173
- .slice(0, 10)) {
174
- const label = SOURCE_EXTENSIONS.get(ext) ?? (ext || "(no extension)");
175
- lines.push(`- ${label}: ${count}`);
176
- }
177
- if (stats.byExtension.size > 10) {
178
- lines.push(`- _+${stats.byExtension.size - 10} more extensions_`);
179
- }
180
- lines.push("");
181
-
182
- if (stats.byChildDir.size > 0) {
183
- lines.push("**Child directories:**");
184
- for (const [dir, count] of [...stats.byChildDir.entries()].sort((a, b) => b[1] - a[1])) {
185
- lines.push(`- ${dir}/ (${count} file${count !== 1 ? "s" : ""})`);
186
- }
187
- lines.push("");
188
- }
189
-
190
- if (stats.landmarkFiles.length > 0) {
191
- lines.push("**Landmark files:**");
192
- for (const file of stats.landmarkFiles) {
193
- lines.push(`- \`${file}\``);
194
- }
195
- lines.push("");
196
- }
197
-
198
- return lines.join("\n");
199
- }
200
-
201
169
  function formatScope(scopePath: string, cwd: string): string {
202
170
  const relative = path.relative(cwd, scopePath);
203
171
  if (relative === "") return ".";
204
172
  if (relative.startsWith(`..${path.sep}`) || relative === "..") return scopePath;
205
173
  return relative.replaceAll(path.sep, "/");
206
174
  }
175
+
176
+ export { SOURCE_EXTENSIONS };