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