@nxuss/lemma 1.31.1 → 1.33.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 +59 -2
- package/dist/cjs/api/server.js +1 -1
- package/dist/cjs/api/server.js.map +1 -1
- package/dist/cjs/autopilot/AutopilotWatcher.js +2 -2
- package/dist/cjs/autopilot/AutopilotWatcher.js.map +1 -1
- package/dist/cjs/autopilot/Notifier.d.ts.map +1 -1
- package/dist/cjs/autopilot/Notifier.js +0 -1
- package/dist/cjs/autopilot/Notifier.js.map +1 -1
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +18 -18
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/cli/stack.d.ts.map +1 -1
- package/dist/cjs/cli/stack.js.map +1 -1
- package/dist/cjs/cloud/TenantCache.d.ts.map +1 -1
- package/dist/cjs/cloud/TenantCache.js +0 -1
- package/dist/cjs/cloud/TenantCache.js.map +1 -1
- package/dist/cjs/cloud/server.js +4 -4
- package/dist/cjs/cloud/server.js.map +1 -1
- package/dist/cjs/cloud/store/FileBrainStore.d.ts.map +1 -1
- package/dist/cjs/cloud/store/FileBrainStore.js.map +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.d.ts.map +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.js +1 -1
- package/dist/cjs/cloud/store/PostgresBrainStore.js.map +1 -1
- package/dist/cjs/consensus/ConsensusEngine.d.ts.map +1 -1
- package/dist/cjs/consensus/ConsensusEngine.js +0 -1
- package/dist/cjs/consensus/ConsensusEngine.js.map +1 -1
- package/dist/cjs/core/GhostListener.d.ts.map +1 -1
- package/dist/cjs/core/GhostListener.js.map +1 -1
- package/dist/cjs/core/OrchestrationEngine.d.ts.map +1 -1
- package/dist/cjs/core/OrchestrationEngine.js +1 -1
- package/dist/cjs/core/OrchestrationEngine.js.map +1 -1
- package/dist/cjs/core/SubconsciousEngine.d.ts.map +1 -1
- package/dist/cjs/core/SubconsciousEngine.js.map +1 -1
- package/dist/cjs/core/router.d.ts.map +1 -1
- package/dist/cjs/core/router.js +2 -2
- package/dist/cjs/core/router.js.map +1 -1
- package/dist/cjs/embed/index.d.ts.map +1 -1
- package/dist/cjs/embed/index.js +0 -1
- package/dist/cjs/embed/index.js.map +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/infra/analyzers/DriftDetector.js +1 -1
- package/dist/cjs/infra/analyzers/DriftDetector.js.map +1 -1
- package/dist/cjs/infra/config.d.ts.map +1 -1
- package/dist/cjs/infra/mcp-tools.d.ts.map +1 -1
- package/dist/cjs/infra/mcp-tools.js +29 -5
- package/dist/cjs/infra/mcp-tools.js.map +1 -1
- package/dist/cjs/infra/providers/InfraProvider.d.ts.map +1 -1
- package/dist/cjs/infra/providers/JenkinsProvider.js +1 -1
- package/dist/cjs/infra/templates/jenkins/index.d.ts.map +1 -1
- package/dist/cjs/infra/templates/jenkins/index.js +8 -4
- package/dist/cjs/infra/templates/jenkins/index.js.map +1 -1
- package/dist/cjs/language-core/contracts/CapabilityMatrix.d.ts +10 -0
- package/dist/cjs/language-core/contracts/CapabilityMatrix.d.ts.map +1 -0
- package/dist/cjs/language-core/contracts/CapabilityMatrix.js +70 -0
- package/dist/cjs/language-core/contracts/CapabilityMatrix.js.map +1 -0
- package/dist/cjs/language-core/detection/detectProjectType.d.ts +17 -0
- package/dist/cjs/language-core/detection/detectProjectType.d.ts.map +1 -0
- package/dist/cjs/language-core/detection/detectProjectType.js +186 -0
- package/dist/cjs/language-core/detection/detectProjectType.js.map +1 -0
- package/dist/cjs/language-core/registry/adapterRegistry.d.ts +11 -0
- package/dist/cjs/language-core/registry/adapterRegistry.d.ts.map +1 -0
- package/dist/cjs/language-core/registry/adapterRegistry.js +45 -0
- package/dist/cjs/language-core/registry/adapterRegistry.js.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.d.ts +24 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.d.ts.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.js +199 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetDependencyGraph.js.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts +37 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.js +51 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetLanguageAdapter.js.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.d.ts +25 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.d.ts.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.js +241 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetPatchValidator.js.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.d.ts +18 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.d.ts.map +1 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.js +214 -0
- package/dist/cjs/languages/adapters/dotnet/DotNetSymbolGraph.js.map +1 -0
- package/dist/cjs/languages/csharp/csharpSymbols.d.ts +33 -0
- package/dist/cjs/languages/csharp/csharpSymbols.d.ts.map +1 -0
- package/dist/cjs/languages/csharp/csharpSymbols.js +274 -0
- package/dist/cjs/languages/csharp/csharpSymbols.js.map +1 -0
- package/dist/cjs/mcp/cognitiveMap.d.ts +39 -10
- package/dist/cjs/mcp/cognitiveMap.d.ts.map +1 -1
- package/dist/cjs/mcp/cognitiveMap.js +488 -31
- package/dist/cjs/mcp/cognitiveMap.js.map +1 -1
- package/dist/cjs/mcp/index.js +7 -1
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/mcp/tools/analysis.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/analysis.js +9 -0
- package/dist/cjs/mcp/tools/analysis.js.map +1 -1
- package/dist/cjs/mcp/tools/codenav.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/codenav.js +46 -77
- package/dist/cjs/mcp/tools/codenav.js.map +1 -1
- package/dist/cjs/mcp/tools/context-tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/context-tools.js +28 -0
- package/dist/cjs/mcp/tools/context-tools.js.map +1 -1
- package/dist/cjs/mcp/tools/depgraph.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/depgraph.js +15 -0
- package/dist/cjs/mcp/tools/depgraph.js.map +1 -1
- package/dist/cjs/mcp/tools/dev-utils.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/dev-utils.js +6 -0
- package/dist/cjs/mcp/tools/dev-utils.js.map +1 -1
- package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/devtools.js +51 -39
- package/dist/cjs/mcp/tools/devtools.js.map +1 -1
- package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/memory.js +10 -0
- package/dist/cjs/mcp/tools/memory.js.map +1 -1
- package/dist/cjs/mcp/tools/misc.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/misc.js +11 -0
- package/dist/cjs/mcp/tools/misc.js.map +1 -1
- package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/refactor.js +9 -3
- package/dist/cjs/mcp/tools/refactor.js.map +1 -1
- package/dist/cjs/mcp/tools/review.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/review.js +12 -11
- package/dist/cjs/mcp/tools/review.js.map +1 -1
- package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/workspace.js +46 -9
- package/dist/cjs/mcp/tools/workspace.js.map +1 -1
- package/dist/cjs/mcp/tools.d.ts +1 -0
- package/dist/cjs/mcp/tools.d.ts.map +1 -1
- package/dist/cjs/mcp/tools.js +44 -7
- package/dist/cjs/mcp/tools.js.map +1 -1
- package/dist/cjs/mcp/utils.d.ts +1 -1
- package/dist/cjs/mcp/utils.d.ts.map +1 -1
- package/dist/cjs/mcp/utils.js +124 -7
- package/dist/cjs/mcp/utils.js.map +1 -1
- package/dist/cjs/mcp/workspaceShared.js +1 -1
- package/dist/cjs/mcp/workspaceShared.js.map +1 -1
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.d.ts +1 -1
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.d.ts.map +1 -1
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.js +5 -5
- package/dist/cjs/pr-review/adapters/AzureDevOpsAdapter.js.map +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.d.ts +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.d.ts.map +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.js +1 -1
- package/dist/cjs/pr-review/adapters/GitHubAdapter.js.map +1 -1
- package/dist/cjs/pr-review/adapters/GitLabAdapter.d.ts +1 -1
- package/dist/cjs/pr-review/adapters/GitLabAdapter.d.ts.map +1 -1
- package/dist/cjs/pr-review/adapters/GitLabAdapter.js +1 -2
- package/dist/cjs/pr-review/adapters/GitLabAdapter.js.map +1 -1
- package/dist/cjs/pr-review/analyzers/RegressionDetector.d.ts +1 -1
- package/dist/cjs/pr-review/analyzers/RegressionDetector.d.ts.map +1 -1
- package/dist/cjs/pr-review/analyzers/RegressionDetector.js +1 -2
- package/dist/cjs/pr-review/analyzers/RegressionDetector.js.map +1 -1
- package/dist/cjs/pr-review/analyzers/SecurityScanner.js +2 -2
- package/dist/cjs/pr-review/analyzers/SecurityScanner.js.map +1 -1
- package/dist/cjs/pr-review/analyzers/StaticAnalyzer.d.ts.map +1 -1
- package/dist/cjs/pr-review/analyzers/StaticAnalyzer.js +0 -6
- package/dist/cjs/pr-review/analyzers/StaticAnalyzer.js.map +1 -1
- package/dist/cjs/protocol/flows.d.ts +4 -1
- package/dist/cjs/protocol/flows.d.ts.map +1 -1
- package/dist/cjs/protocol/flows.js +13 -8
- package/dist/cjs/protocol/flows.js.map +1 -1
- package/dist/cjs/protocol/validators.d.ts.map +1 -1
- package/dist/cjs/protocol/validators.js.map +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.d.ts +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.d.ts.map +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.js +1 -1
- package/dist/cjs/proxy/AgentMultiplexer.js.map +1 -1
- package/dist/cjs/proxy/Gatekeeper.js +0 -1
- package/dist/cjs/proxy/Gatekeeper.js.map +1 -1
- package/dist/cjs/security/MessageSanitizer.d.ts.map +1 -1
- package/dist/cjs/security/MessageSanitizer.js +2 -1
- package/dist/cjs/security/MessageSanitizer.js.map +1 -1
- package/dist/cjs/security/SecurityMiddleware.d.ts.map +1 -1
- package/dist/cjs/security/SecurityMiddleware.js.map +1 -1
- package/dist/cjs/speculative/SpeculativeEngine.d.ts.map +1 -1
- package/dist/cjs/speculative/SpeculativeEngine.js.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.d.ts +11 -0
- package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.js +9 -13
- package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
- package/dist/cjs/utils/AutoContextBundle.d.ts.map +1 -1
- package/dist/cjs/utils/AutoContextBundle.js.map +1 -1
- package/dist/cjs/utils/ClipboardWatcher.js +1 -1
- package/dist/cjs/utils/ClipboardWatcher.js.map +1 -1
- package/dist/cjs/utils/CommandEnv.d.ts +26 -0
- package/dist/cjs/utils/CommandEnv.d.ts.map +1 -0
- package/dist/cjs/utils/CommandEnv.js +91 -0
- package/dist/cjs/utils/CommandEnv.js.map +1 -0
- package/dist/cjs/utils/CommandSandbox.d.ts +42 -0
- package/dist/cjs/utils/CommandSandbox.d.ts.map +1 -0
- package/dist/cjs/utils/CommandSandbox.js +135 -0
- package/dist/cjs/utils/CommandSandbox.js.map +1 -0
- package/dist/cjs/utils/ContextSqueezer.js +1 -1
- package/dist/cjs/utils/ContextSqueezer.js.map +1 -1
- package/dist/cjs/utils/SearchCache.d.ts +2 -2
- package/dist/cjs/utils/SearchCache.d.ts.map +1 -1
- package/dist/cjs/utils/SearchCache.js +6 -6
- package/dist/cjs/utils/SearchCache.js.map +1 -1
- package/dist/cjs/utils/SurgicalASTInsert.d.ts.map +1 -1
- package/dist/cjs/utils/SurgicalASTInsert.js.map +1 -1
- package/dist/cjs/utils/SymbolSurgicalContext.js +3 -3
- package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
- package/dist/cjs/utils/WorkspaceSearch.d.ts +3 -1
- package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
- package/dist/cjs/utils/WorkspaceSearch.js +6 -2
- package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
- package/dist/cjs/utils/WormholeCompressor.js +3 -3
- package/dist/cjs/utils/WormholeCompressor.js.map +1 -1
- package/dist/esm/api/server.js +1 -1
- package/dist/esm/api/server.js.map +1 -1
- package/dist/esm/autopilot/AutopilotWatcher.js +2 -2
- package/dist/esm/autopilot/AutopilotWatcher.js.map +1 -1
- package/dist/esm/autopilot/Notifier.d.ts.map +1 -1
- package/dist/esm/autopilot/Notifier.js +0 -1
- package/dist/esm/autopilot/Notifier.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +18 -18
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/cli/stack.d.ts.map +1 -1
- package/dist/esm/cli/stack.js.map +1 -1
- package/dist/esm/cloud/TenantCache.d.ts.map +1 -1
- package/dist/esm/cloud/TenantCache.js +0 -1
- package/dist/esm/cloud/TenantCache.js.map +1 -1
- package/dist/esm/cloud/server.js +4 -4
- package/dist/esm/cloud/server.js.map +1 -1
- package/dist/esm/cloud/store/FileBrainStore.d.ts.map +1 -1
- package/dist/esm/cloud/store/FileBrainStore.js.map +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.d.ts.map +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.js +1 -1
- package/dist/esm/cloud/store/PostgresBrainStore.js.map +1 -1
- package/dist/esm/consensus/ConsensusEngine.d.ts.map +1 -1
- package/dist/esm/consensus/ConsensusEngine.js +0 -1
- package/dist/esm/consensus/ConsensusEngine.js.map +1 -1
- package/dist/esm/core/GhostListener.d.ts.map +1 -1
- package/dist/esm/core/GhostListener.js.map +1 -1
- package/dist/esm/core/OrchestrationEngine.d.ts.map +1 -1
- package/dist/esm/core/OrchestrationEngine.js +1 -1
- package/dist/esm/core/OrchestrationEngine.js.map +1 -1
- package/dist/esm/core/SubconsciousEngine.d.ts.map +1 -1
- package/dist/esm/core/SubconsciousEngine.js.map +1 -1
- package/dist/esm/core/router.d.ts.map +1 -1
- package/dist/esm/core/router.js +2 -2
- package/dist/esm/core/router.js.map +1 -1
- package/dist/esm/embed/index.d.ts.map +1 -1
- package/dist/esm/embed/index.js +0 -1
- package/dist/esm/embed/index.js.map +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/infra/analyzers/DriftDetector.js +1 -1
- package/dist/esm/infra/analyzers/DriftDetector.js.map +1 -1
- package/dist/esm/infra/config.d.ts.map +1 -1
- package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
- package/dist/esm/infra/mcp-tools.js +29 -5
- package/dist/esm/infra/mcp-tools.js.map +1 -1
- package/dist/esm/infra/providers/InfraProvider.d.ts.map +1 -1
- package/dist/esm/infra/providers/JenkinsProvider.js +1 -1
- package/dist/esm/infra/templates/jenkins/index.d.ts.map +1 -1
- package/dist/esm/infra/templates/jenkins/index.js +8 -4
- package/dist/esm/infra/templates/jenkins/index.js.map +1 -1
- package/dist/esm/language-core/contracts/CapabilityMatrix.d.ts +10 -0
- package/dist/esm/language-core/contracts/CapabilityMatrix.d.ts.map +1 -0
- package/dist/esm/language-core/contracts/CapabilityMatrix.js +66 -0
- package/dist/esm/language-core/contracts/CapabilityMatrix.js.map +1 -0
- package/dist/esm/language-core/detection/detectProjectType.d.ts +17 -0
- package/dist/esm/language-core/detection/detectProjectType.d.ts.map +1 -0
- package/dist/esm/language-core/detection/detectProjectType.js +150 -0
- package/dist/esm/language-core/detection/detectProjectType.js.map +1 -0
- package/dist/esm/language-core/registry/adapterRegistry.d.ts +11 -0
- package/dist/esm/language-core/registry/adapterRegistry.d.ts.map +1 -0
- package/dist/esm/language-core/registry/adapterRegistry.js +41 -0
- package/dist/esm/language-core/registry/adapterRegistry.js.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.d.ts +24 -0
- package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.d.ts.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.js +162 -0
- package/dist/esm/languages/adapters/dotnet/DotNetDependencyGraph.js.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts +37 -0
- package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.d.ts.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.js +44 -0
- package/dist/esm/languages/adapters/dotnet/DotNetLanguageAdapter.js.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.d.ts +25 -0
- package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.d.ts.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.js +201 -0
- package/dist/esm/languages/adapters/dotnet/DotNetPatchValidator.js.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.d.ts +18 -0
- package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.d.ts.map +1 -0
- package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.js +175 -0
- package/dist/esm/languages/adapters/dotnet/DotNetSymbolGraph.js.map +1 -0
- package/dist/esm/languages/csharp/csharpSymbols.d.ts +33 -0
- package/dist/esm/languages/csharp/csharpSymbols.d.ts.map +1 -0
- package/dist/esm/languages/csharp/csharpSymbols.js +268 -0
- package/dist/esm/languages/csharp/csharpSymbols.js.map +1 -0
- package/dist/esm/mcp/cognitiveMap.d.ts +39 -10
- package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -1
- package/dist/esm/mcp/cognitiveMap.js +442 -25
- package/dist/esm/mcp/cognitiveMap.js.map +1 -1
- package/dist/esm/mcp/index.js +7 -1
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/tools/analysis.d.ts.map +1 -1
- package/dist/esm/mcp/tools/analysis.js +9 -0
- package/dist/esm/mcp/tools/analysis.js.map +1 -1
- package/dist/esm/mcp/tools/codenav.d.ts.map +1 -1
- package/dist/esm/mcp/tools/codenav.js +47 -78
- package/dist/esm/mcp/tools/codenav.js.map +1 -1
- package/dist/esm/mcp/tools/context-tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools/context-tools.js +28 -0
- package/dist/esm/mcp/tools/context-tools.js.map +1 -1
- package/dist/esm/mcp/tools/depgraph.d.ts.map +1 -1
- package/dist/esm/mcp/tools/depgraph.js +15 -0
- package/dist/esm/mcp/tools/depgraph.js.map +1 -1
- package/dist/esm/mcp/tools/dev-utils.d.ts.map +1 -1
- package/dist/esm/mcp/tools/dev-utils.js +6 -0
- package/dist/esm/mcp/tools/dev-utils.js.map +1 -1
- package/dist/esm/mcp/tools/devtools.d.ts.map +1 -1
- package/dist/esm/mcp/tools/devtools.js +51 -39
- package/dist/esm/mcp/tools/devtools.js.map +1 -1
- package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
- package/dist/esm/mcp/tools/memory.js +10 -0
- package/dist/esm/mcp/tools/memory.js.map +1 -1
- package/dist/esm/mcp/tools/misc.d.ts.map +1 -1
- package/dist/esm/mcp/tools/misc.js +11 -0
- package/dist/esm/mcp/tools/misc.js.map +1 -1
- package/dist/esm/mcp/tools/refactor.d.ts.map +1 -1
- package/dist/esm/mcp/tools/refactor.js +9 -3
- package/dist/esm/mcp/tools/refactor.js.map +1 -1
- package/dist/esm/mcp/tools/review.d.ts.map +1 -1
- package/dist/esm/mcp/tools/review.js +12 -11
- package/dist/esm/mcp/tools/review.js.map +1 -1
- package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
- package/dist/esm/mcp/tools/workspace.js +46 -9
- package/dist/esm/mcp/tools/workspace.js.map +1 -1
- package/dist/esm/mcp/tools.d.ts +1 -0
- package/dist/esm/mcp/tools.d.ts.map +1 -1
- package/dist/esm/mcp/tools.js +45 -9
- package/dist/esm/mcp/tools.js.map +1 -1
- package/dist/esm/mcp/utils.d.ts +1 -1
- package/dist/esm/mcp/utils.d.ts.map +1 -1
- package/dist/esm/mcp/utils.js +124 -7
- package/dist/esm/mcp/utils.js.map +1 -1
- package/dist/esm/mcp/workspaceShared.js +1 -1
- package/dist/esm/mcp/workspaceShared.js.map +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.d.ts.map +1 -1
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js +5 -5
- package/dist/esm/pr-review/adapters/AzureDevOpsAdapter.js.map +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.d.ts.map +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.js +1 -1
- package/dist/esm/pr-review/adapters/GitHubAdapter.js.map +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.d.ts.map +1 -1
- package/dist/esm/pr-review/adapters/GitLabAdapter.js +1 -2
- package/dist/esm/pr-review/adapters/GitLabAdapter.js.map +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.d.ts.map +1 -1
- package/dist/esm/pr-review/analyzers/RegressionDetector.js +1 -2
- package/dist/esm/pr-review/analyzers/RegressionDetector.js.map +1 -1
- package/dist/esm/pr-review/analyzers/SecurityScanner.js +2 -2
- package/dist/esm/pr-review/analyzers/SecurityScanner.js.map +1 -1
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.d.ts.map +1 -1
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.js +0 -6
- package/dist/esm/pr-review/analyzers/StaticAnalyzer.js.map +1 -1
- package/dist/esm/protocol/flows.d.ts +4 -1
- package/dist/esm/protocol/flows.d.ts.map +1 -1
- package/dist/esm/protocol/flows.js +13 -8
- package/dist/esm/protocol/flows.js.map +1 -1
- package/dist/esm/protocol/validators.d.ts.map +1 -1
- package/dist/esm/protocol/validators.js.map +1 -1
- package/dist/esm/proxy/AgentMultiplexer.d.ts +1 -1
- package/dist/esm/proxy/AgentMultiplexer.d.ts.map +1 -1
- package/dist/esm/proxy/AgentMultiplexer.js +1 -1
- package/dist/esm/proxy/AgentMultiplexer.js.map +1 -1
- package/dist/esm/proxy/Gatekeeper.js +0 -1
- package/dist/esm/proxy/Gatekeeper.js.map +1 -1
- package/dist/esm/security/MessageSanitizer.d.ts.map +1 -1
- package/dist/esm/security/MessageSanitizer.js +2 -1
- package/dist/esm/security/MessageSanitizer.js.map +1 -1
- package/dist/esm/security/SecurityMiddleware.d.ts.map +1 -1
- package/dist/esm/security/SecurityMiddleware.js.map +1 -1
- package/dist/esm/speculative/SpeculativeEngine.d.ts.map +1 -1
- package/dist/esm/speculative/SpeculativeEngine.js.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.d.ts +11 -0
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +9 -13
- package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
- package/dist/esm/utils/AutoContextBundle.d.ts.map +1 -1
- package/dist/esm/utils/AutoContextBundle.js.map +1 -1
- package/dist/esm/utils/ClipboardWatcher.js +1 -1
- package/dist/esm/utils/ClipboardWatcher.js.map +1 -1
- package/dist/esm/utils/CommandEnv.d.ts +26 -0
- package/dist/esm/utils/CommandEnv.d.ts.map +1 -0
- package/dist/esm/utils/CommandEnv.js +84 -0
- package/dist/esm/utils/CommandEnv.js.map +1 -0
- package/dist/esm/utils/CommandSandbox.d.ts +42 -0
- package/dist/esm/utils/CommandSandbox.d.ts.map +1 -0
- package/dist/esm/utils/CommandSandbox.js +126 -0
- package/dist/esm/utils/CommandSandbox.js.map +1 -0
- package/dist/esm/utils/ContextSqueezer.js +1 -1
- package/dist/esm/utils/ContextSqueezer.js.map +1 -1
- package/dist/esm/utils/SearchCache.d.ts +2 -2
- package/dist/esm/utils/SearchCache.d.ts.map +1 -1
- package/dist/esm/utils/SearchCache.js +6 -6
- package/dist/esm/utils/SearchCache.js.map +1 -1
- package/dist/esm/utils/SurgicalASTInsert.d.ts.map +1 -1
- package/dist/esm/utils/SurgicalASTInsert.js.map +1 -1
- package/dist/esm/utils/SymbolSurgicalContext.js +3 -3
- package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
- package/dist/esm/utils/WorkspaceSearch.d.ts +3 -1
- package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
- package/dist/esm/utils/WorkspaceSearch.js +6 -2
- package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
- package/dist/esm/utils/WormholeCompressor.js +3 -3
- package/dist/esm/utils/WormholeCompressor.js.map +1 -1
- package/mcp-server.js +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { execFileSync } from "child_process";
|
|
2
|
+
import * as fs from "fs";
|
|
3
|
+
import * as os from "os";
|
|
4
|
+
import * as path from "path";
|
|
5
|
+
import { parseCSharpFile } from "../../csharp/csharpSymbols.js";
|
|
6
|
+
export function defaultDotNetRunner(args, cwd) {
|
|
7
|
+
return execFileSync("dotnet", args, {
|
|
8
|
+
cwd,
|
|
9
|
+
timeout: 120000,
|
|
10
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
11
|
+
encoding: "utf8",
|
|
12
|
+
maxBuffer: 8 * 1024 * 1024,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
let _dotnetAvailable = null;
|
|
16
|
+
/** Cached `dotnet --version` probe. Never throws. */
|
|
17
|
+
export function isDotnetAvailable() {
|
|
18
|
+
if (_dotnetAvailable !== null)
|
|
19
|
+
return _dotnetAvailable;
|
|
20
|
+
try {
|
|
21
|
+
execFileSync("dotnet", ["--version"], {
|
|
22
|
+
timeout: 15000,
|
|
23
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
24
|
+
});
|
|
25
|
+
_dotnetAvailable = true;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
_dotnetAvailable = false;
|
|
29
|
+
}
|
|
30
|
+
return _dotnetAvailable;
|
|
31
|
+
}
|
|
32
|
+
export function resetDotnetAvailabilityCache() {
|
|
33
|
+
_dotnetAvailable = null;
|
|
34
|
+
}
|
|
35
|
+
/** Nearest .csproj at or above the target file, relative to root. Null if none. */
|
|
36
|
+
export function findNearestCsproj(root, fileRel) {
|
|
37
|
+
const stop = path.resolve(root);
|
|
38
|
+
let dir = path.dirname(path.resolve(root, fileRel));
|
|
39
|
+
while (true) {
|
|
40
|
+
try {
|
|
41
|
+
const entries = fs.readdirSync(dir);
|
|
42
|
+
const hit = entries.find((f) => f.toLowerCase().endsWith(".csproj"));
|
|
43
|
+
if (hit)
|
|
44
|
+
return path.relative(stop, path.join(dir, hit)).replace(/\\/g, "/");
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
if (dir === stop)
|
|
50
|
+
return null;
|
|
51
|
+
const parent = path.dirname(dir);
|
|
52
|
+
if (parent === dir || parent.length < stop.length)
|
|
53
|
+
return null;
|
|
54
|
+
dir = parent;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const MAX_COPY_FILES = 100;
|
|
58
|
+
const MAX_COPY_BYTES = 5 * 1024 * 1024;
|
|
59
|
+
const COPY_EXTS = new Set([".cs", ".csproj", ".props", ".targets", ".sln"]);
|
|
60
|
+
function copyProjectForBuild(root, csprojRel, targetRel, patchedContent) {
|
|
61
|
+
const sandboxDir = fs.mkdtempSync(path.join(os.tmpdir(), "lemma-dotnet-"));
|
|
62
|
+
const projectDir = path.dirname(path.join(root, csprojRel));
|
|
63
|
+
const stack = [projectDir];
|
|
64
|
+
let files = 0;
|
|
65
|
+
let bytes = 0;
|
|
66
|
+
while (stack.length > 0) {
|
|
67
|
+
const dir = stack.pop();
|
|
68
|
+
let entries;
|
|
69
|
+
try {
|
|
70
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
71
|
+
}
|
|
72
|
+
catch {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
for (const e of entries) {
|
|
76
|
+
if (["bin", "obj", ".git", ".vs"].includes(e.name))
|
|
77
|
+
continue;
|
|
78
|
+
const abs = path.join(dir, e.name);
|
|
79
|
+
if (e.isDirectory()) {
|
|
80
|
+
stack.push(abs);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (!COPY_EXTS.has(path.extname(e.name).toLowerCase()))
|
|
84
|
+
continue;
|
|
85
|
+
if (files >= MAX_COPY_FILES)
|
|
86
|
+
break;
|
|
87
|
+
const rel = path.relative(projectDir, abs);
|
|
88
|
+
const dest = path.join(sandboxDir, rel);
|
|
89
|
+
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
90
|
+
if (path.relative(root, abs).replace(/\\/g, "/") === targetRel) {
|
|
91
|
+
fs.writeFileSync(dest, patchedContent, "utf8");
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const st = fs.statSync(abs);
|
|
95
|
+
if (bytes + st.size > MAX_COPY_BYTES)
|
|
96
|
+
continue;
|
|
97
|
+
fs.copyFileSync(abs, dest);
|
|
98
|
+
bytes += st.size;
|
|
99
|
+
}
|
|
100
|
+
files++;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return sandboxDir;
|
|
104
|
+
}
|
|
105
|
+
function bracketBalanced(content) {
|
|
106
|
+
const opens = (content.match(/[{[(]/g) || []).length;
|
|
107
|
+
const closes = (content.match(/[}\])]/g) || []).length;
|
|
108
|
+
return Math.abs(opens - closes) <= 2;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Three-level C# patch validation:
|
|
112
|
+
* 1. `dotnet build` on a temp copy of the owning project (real compiler).
|
|
113
|
+
* 2. Structural check (brackets + C# parse smoke) with an explicit disclaimer.
|
|
114
|
+
* 3. Never the TypeScript path — callers route here only for C# targets.
|
|
115
|
+
*/
|
|
116
|
+
export function validateCSharpPatch(root, fileRel, patchedContent, runner = defaultDotNetRunner, opts = {}) {
|
|
117
|
+
const balanced = bracketBalanced(patchedContent);
|
|
118
|
+
let structural;
|
|
119
|
+
try {
|
|
120
|
+
const s = parseCSharpFile(patchedContent);
|
|
121
|
+
const total = s.classes.length +
|
|
122
|
+
s.interfaces.length +
|
|
123
|
+
s.enums.length +
|
|
124
|
+
s.records.length +
|
|
125
|
+
s.structs.length;
|
|
126
|
+
structural = `parsed OK (${total} types, ${s.methods.length} methods)`;
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
return {
|
|
130
|
+
verdict: "DO NOT APPLY -- Issues Found",
|
|
131
|
+
syntaxBalanced: balanced,
|
|
132
|
+
csharpCheck: `C# structural parse failed: ${e?.message ?? e}`,
|
|
133
|
+
buildAttempted: false,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
const csproj = findNearestCsproj(root, fileRel);
|
|
137
|
+
if (!csproj) {
|
|
138
|
+
return {
|
|
139
|
+
verdict: balanced ? "SAFE TO APPLY" : "DO NOT APPLY -- Issues Found",
|
|
140
|
+
syntaxBalanced: balanced,
|
|
141
|
+
csharpCheck: `No .csproj found near ${fileRel} — structural check only (${structural}), NOT a build.`,
|
|
142
|
+
buildAttempted: false,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
const dotnetAvailable = opts.dotnetAvailable ?? isDotnetAvailable();
|
|
146
|
+
if (!dotnetAvailable) {
|
|
147
|
+
return {
|
|
148
|
+
verdict: balanced ? "SAFE TO APPLY" : "DO NOT APPLY -- Issues Found",
|
|
149
|
+
syntaxBalanced: balanced,
|
|
150
|
+
csharpCheck: `.NET SDK not available — structural check only (${structural}), NOT a build. Install dotnet for compiler validation.`,
|
|
151
|
+
buildAttempted: false,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const sandboxDir = copyProjectForBuild(root, csproj, fileRel, patchedContent);
|
|
155
|
+
try {
|
|
156
|
+
const projectName = path.basename(csproj);
|
|
157
|
+
let output;
|
|
158
|
+
let exitedOk = true;
|
|
159
|
+
try {
|
|
160
|
+
output = runner([
|
|
161
|
+
"build",
|
|
162
|
+
projectName,
|
|
163
|
+
"--nologo",
|
|
164
|
+
"-v:q",
|
|
165
|
+
"/p:ContinuousIntegrationBuild=true",
|
|
166
|
+
], sandboxDir);
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
exitedOk = false;
|
|
170
|
+
const stdout = typeof e?.stdout === "string" ? e.stdout : "";
|
|
171
|
+
const stderr = typeof e?.stderr === "string" ? e.stderr : "";
|
|
172
|
+
output = `${stdout}\n${stderr}`.trim() || e?.message || String(e);
|
|
173
|
+
}
|
|
174
|
+
const errors = output
|
|
175
|
+
.split("\n")
|
|
176
|
+
.filter((l) => /error\s+CS\d+/i.test(l))
|
|
177
|
+
.slice(0, 40);
|
|
178
|
+
// A thrown runner (timeout, spawn failure) is never a pass, even without CS errors.
|
|
179
|
+
const ok = exitedOk && errors.length === 0 && !/Build FAILED/i.test(output);
|
|
180
|
+
const tail = output.length > 4000 ? `…\n${output.slice(-4000)}` : output;
|
|
181
|
+
return {
|
|
182
|
+
verdict: ok && balanced ? "SAFE TO APPLY" : "DO NOT APPLY -- Issues Found",
|
|
183
|
+
syntaxBalanced: balanced,
|
|
184
|
+
csharpCheck: errors.length > 0
|
|
185
|
+
? errors.join("\n")
|
|
186
|
+
: ok
|
|
187
|
+
? `dotnet build passed.\n${tail}`
|
|
188
|
+
: `dotnet build failed.\n${tail}`,
|
|
189
|
+
buildAttempted: true,
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
try {
|
|
194
|
+
fs.rmSync(sandboxDir, { recursive: true, force: true });
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
// best-effort cleanup of the temp copy
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=DotNetPatchValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotNetPatchValidator.js","sourceRoot":"","sources":["../../../../../src/languages/adapters/dotnet/DotNetPatchValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type CSharpFileSymbols } from "../../csharp/csharpSymbols.js";
|
|
2
|
+
export interface DotNetHologramEntry {
|
|
3
|
+
file: string;
|
|
4
|
+
kind: string;
|
|
5
|
+
name: string;
|
|
6
|
+
line: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function symbolsForFile(root: string, rel: string): CSharpFileSymbols | null;
|
|
9
|
+
/** Compact whole-scope symbol map, mirroring the TS hologram's per-file shape. */
|
|
10
|
+
export declare function dotNetHologram(root: string, dirRel: string): {
|
|
11
|
+
entries: DotNetHologramEntry[];
|
|
12
|
+
filesScanned: number;
|
|
13
|
+
truncated: boolean;
|
|
14
|
+
};
|
|
15
|
+
export declare function formatDotNetHologram(root: string, dirRel: string): string;
|
|
16
|
+
/** Surgical slice: declaration + signature block for one type or Type.Method. */
|
|
17
|
+
export declare function dotNetSurgicalContext(root: string, rel: string, symbolName: string): string;
|
|
18
|
+
//# sourceMappingURL=DotNetSymbolGraph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotNetSymbolGraph.d.ts","sourceRoot":"","sources":["../../../../../src/languages/adapters/dotnet/DotNetSymbolGraph.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,4BAA4B,CAAC;AA4CpC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,iBAAiB,GAAG,IAAI,CAU1B;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb;IACD,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,CA+BA;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAqBzE;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,GACjB,MAAM,CAiER"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import * as fs from "fs";
|
|
2
|
+
import * as path from "path";
|
|
3
|
+
import { parseCSharpFile, } from "../../csharp/csharpSymbols.js";
|
|
4
|
+
const MAX_FILES = 200;
|
|
5
|
+
const MAX_SYMBOLS = 1000;
|
|
6
|
+
const MAX_SIG_LINES = 10;
|
|
7
|
+
function listCsFiles(root, dirRel) {
|
|
8
|
+
const out = [];
|
|
9
|
+
const base = path.join(root, dirRel);
|
|
10
|
+
const walk = (dir, rel) => {
|
|
11
|
+
if (out.length >= MAX_FILES)
|
|
12
|
+
return;
|
|
13
|
+
let entries;
|
|
14
|
+
try {
|
|
15
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
for (const e of entries) {
|
|
21
|
+
if (["node_modules", ".git", "bin", "obj", "dist", ".lemma"].includes(e.name))
|
|
22
|
+
continue;
|
|
23
|
+
const r = rel ? `${rel}/${e.name}` : e.name;
|
|
24
|
+
if (e.isDirectory())
|
|
25
|
+
walk(path.join(dir, e.name), r);
|
|
26
|
+
else if (e.name.toLowerCase().endsWith(".cs")) {
|
|
27
|
+
out.push(r);
|
|
28
|
+
if (out.length >= MAX_FILES)
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
walk(base, dirRel.replace(/^\//, "").replace(/\/$/, ""));
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
function findDeclLine(lines, name) {
|
|
37
|
+
const re = new RegExp(`\\b${name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\b`);
|
|
38
|
+
for (let i = 0; i < lines.length; i++) {
|
|
39
|
+
if (re.test(lines[i]))
|
|
40
|
+
return i + 1;
|
|
41
|
+
}
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
export function symbolsForFile(root, rel) {
|
|
45
|
+
let content;
|
|
46
|
+
try {
|
|
47
|
+
const st = fs.statSync(path.join(root, rel));
|
|
48
|
+
if (!st.isFile())
|
|
49
|
+
return null;
|
|
50
|
+
content = fs.readFileSync(path.join(root, rel), "utf8");
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
return parseCSharpFile(content);
|
|
56
|
+
}
|
|
57
|
+
/** Compact whole-scope symbol map, mirroring the TS hologram's per-file shape. */
|
|
58
|
+
export function dotNetHologram(root, dirRel) {
|
|
59
|
+
const files = listCsFiles(root, dirRel || "");
|
|
60
|
+
const entries = [];
|
|
61
|
+
let truncated = false;
|
|
62
|
+
for (const rel of files) {
|
|
63
|
+
const syms = symbolsForFile(root, rel);
|
|
64
|
+
if (!syms)
|
|
65
|
+
continue;
|
|
66
|
+
let lines = null;
|
|
67
|
+
const push = (kind, name) => {
|
|
68
|
+
if (entries.length >= MAX_SYMBOLS) {
|
|
69
|
+
truncated = true;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (!lines) {
|
|
73
|
+
try {
|
|
74
|
+
lines = fs.readFileSync(path.join(root, rel), "utf8").split("\n");
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
lines = [];
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
entries.push({ file: rel, kind, name, line: findDeclLine(lines, name) });
|
|
81
|
+
};
|
|
82
|
+
for (const n of syms.classes)
|
|
83
|
+
push("class", n);
|
|
84
|
+
for (const n of syms.interfaces)
|
|
85
|
+
push("interface", n);
|
|
86
|
+
for (const n of syms.enums)
|
|
87
|
+
push("enum", n);
|
|
88
|
+
for (const n of syms.records)
|
|
89
|
+
push("record", n);
|
|
90
|
+
for (const n of syms.structs)
|
|
91
|
+
push("struct", n);
|
|
92
|
+
for (const m of syms.methods)
|
|
93
|
+
push("method", m);
|
|
94
|
+
if (truncated)
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
return { entries, filesScanned: files.length, truncated };
|
|
98
|
+
}
|
|
99
|
+
export function formatDotNetHologram(root, dirRel) {
|
|
100
|
+
const { entries, filesScanned, truncated } = dotNetHologram(root, dirRel);
|
|
101
|
+
const lines = [
|
|
102
|
+
`### .NET symbol hologram for \`${dirRel || "."}\` (${filesScanned} .cs files, ${entries.length} symbols)`,
|
|
103
|
+
];
|
|
104
|
+
const byFile = new Map();
|
|
105
|
+
for (const e of entries) {
|
|
106
|
+
const list = byFile.get(e.file) ?? [];
|
|
107
|
+
list.push(e);
|
|
108
|
+
byFile.set(e.file, list);
|
|
109
|
+
}
|
|
110
|
+
for (const [file, list] of byFile) {
|
|
111
|
+
lines.push(`\n**${file}**`);
|
|
112
|
+
for (const e of list)
|
|
113
|
+
lines.push(` - ${e.kind} ${e.name}${e.line ? ` (line ${e.line})` : ""}`);
|
|
114
|
+
}
|
|
115
|
+
if (truncated)
|
|
116
|
+
lines.push(`\n(truncated at ${MAX_SYMBOLS} symbols — narrow dirPath for the full map)`);
|
|
117
|
+
return lines.join("\n");
|
|
118
|
+
}
|
|
119
|
+
/** Surgical slice: declaration + signature block for one type or Type.Method. */
|
|
120
|
+
export function dotNetSurgicalContext(root, rel, symbolName) {
|
|
121
|
+
let content;
|
|
122
|
+
try {
|
|
123
|
+
content = fs.readFileSync(path.join(root, rel), "utf8");
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return `Symbol \`${symbolName}\` not found: cannot read \`${rel}\`.`;
|
|
127
|
+
}
|
|
128
|
+
const syms = parseCSharpFile(content);
|
|
129
|
+
const lines = content.split("\n");
|
|
130
|
+
const [wantType, wantMember] = symbolName.includes(".")
|
|
131
|
+
? symbolName.split(".", 2)
|
|
132
|
+
: [null, symbolName];
|
|
133
|
+
const allTypes = [
|
|
134
|
+
...syms.classes,
|
|
135
|
+
...syms.interfaces,
|
|
136
|
+
...syms.enums,
|
|
137
|
+
...syms.records,
|
|
138
|
+
...syms.structs,
|
|
139
|
+
];
|
|
140
|
+
const header = syms.namespaces.length > 0
|
|
141
|
+
? `namespace ${syms.namespaces[0]};`
|
|
142
|
+
: "(global namespace)";
|
|
143
|
+
// Member lookup: Type.Member
|
|
144
|
+
if (wantType && allTypes.includes(wantType)) {
|
|
145
|
+
const hits = syms.methods.filter((m) => m === `${wantType}.${wantMember}`);
|
|
146
|
+
if (hits.length > 0) {
|
|
147
|
+
const idx = lines.findIndex((l) => new RegExp(`\\b${wantMember}\\s*\\(`).test(l));
|
|
148
|
+
const sig = idx >= 0
|
|
149
|
+
? lines
|
|
150
|
+
.slice(idx, Math.min(lines.length, idx + MAX_SIG_LINES))
|
|
151
|
+
.join("\n")
|
|
152
|
+
: `${wantType}.${wantMember}`;
|
|
153
|
+
return `# 🧬 Surgical Context: Symbol \`${symbolName}\` in \`${rel}\` (.NET)\n${header}\n## Declaration\n\`\`\`csharp\n${sig}\n\`\`\``;
|
|
154
|
+
}
|
|
155
|
+
const typeIdx = lines.findIndex((l) => new RegExp(`\\b${wantType}\\b`).test(l));
|
|
156
|
+
const decl = typeIdx >= 0
|
|
157
|
+
? lines.slice(typeIdx, Math.min(lines.length, typeIdx + 3)).join("\n")
|
|
158
|
+
: wantType;
|
|
159
|
+
return `# 🧬 Surgical Context: Symbol \`${symbolName}\` in \`${rel}\` (.NET)\n${header}\n## Declaration\n\`\`\`csharp\n${decl}\n\`\`\`\n(Member \`${wantMember}\` not found on \`${wantType}\`.)`;
|
|
160
|
+
}
|
|
161
|
+
// Bare type lookup
|
|
162
|
+
if (allTypes.includes(wantMember)) {
|
|
163
|
+
const idx = lines.findIndex((l) => new RegExp(`\\b${wantMember}\\b`).test(l));
|
|
164
|
+
const decl = idx >= 0
|
|
165
|
+
? lines.slice(idx, Math.min(lines.length, idx + 3)).join("\n")
|
|
166
|
+
: wantMember;
|
|
167
|
+
const members = syms.methods.filter((m) => m.startsWith(`${wantMember}.`));
|
|
168
|
+
const memberList = members.length > 0
|
|
169
|
+
? `\n## Members\n${members.map((m) => ` - ${m}`).join("\n")}`
|
|
170
|
+
: "";
|
|
171
|
+
return `# 🧬 Surgical Context: Symbol \`${symbolName}\` in \`${rel}\` (.NET)\n${header}\n## Declaration\n\`\`\`csharp\n${decl}\n\`\`\`${memberList}`;
|
|
172
|
+
}
|
|
173
|
+
return `Symbol \`${symbolName}\` not found in \`${rel}\` (.NET). Known types: ${allTypes.slice(0, 20).join(", ") || "(none)"}.`;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=DotNetSymbolGraph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotNetSymbolGraph.js","sourceRoot":"","sources":["../../../../../src/languages/adapters/dotnet/DotNetSymbolGraph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface CSharpFileSymbols {
|
|
2
|
+
namespaces: string[];
|
|
3
|
+
usings: string[];
|
|
4
|
+
classes: string[];
|
|
5
|
+
interfaces: string[];
|
|
6
|
+
enums: string[];
|
|
7
|
+
records: string[];
|
|
8
|
+
structs: string[];
|
|
9
|
+
/** Best-effort `TypeName.MethodName`; methods that cannot be attributed appear bare. */
|
|
10
|
+
methods: string[];
|
|
11
|
+
}
|
|
12
|
+
export interface CsprojInfo {
|
|
13
|
+
targetFrameworks: string[];
|
|
14
|
+
projectReferences: string[];
|
|
15
|
+
packageReferences: Array<{
|
|
16
|
+
name: string;
|
|
17
|
+
version?: string;
|
|
18
|
+
}>;
|
|
19
|
+
}
|
|
20
|
+
export declare const CSHARP_MAX_FILE_BYTES = 300000;
|
|
21
|
+
/**
|
|
22
|
+
* Replace comments and string/char literals with spaces (newlines preserved)
|
|
23
|
+
* so declaration regexes never match inside them.
|
|
24
|
+
*/
|
|
25
|
+
export declare function maskNonCode(content: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Deterministic line-based C# symbol extraction. Documented limits:
|
|
28
|
+
* methods are attributed to the innermost lexically-open type; expression edge
|
|
29
|
+
* cases (local functions, lambdas assigned to fields) are ignored by design.
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseCSharpFile(content: string): CSharpFileSymbols;
|
|
32
|
+
export declare function parseCsproj(content: string): CsprojInfo;
|
|
33
|
+
//# sourceMappingURL=csharpSymbols.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csharpSymbols.d.ts","sourceRoot":"","sources":["../../../../src/languages/csharp/csharpSymbols.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wFAAwF;IACxF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,qBAAqB,SAAU,CAAC;AA8B7C;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA4GnD;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,CAgGlE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAgCvD"}
|