New:Socket for Asana Is Now Available.Learn more
Get Started

Fuse

Package Overview
Dependencies
Maintainers
1
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fuse - nuget Package Compare versions

Comparing version
3.2.0
to
4.0.0
services/metadata/...a6e475ee7eca4f5a8de7e59c68b7e3c0.psmdcp

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

+260
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost/4.14.0-3.25262.10": {
"dependencies": {
"Microsoft.Build.Locator": "1.6.10",
"Microsoft.CodeAnalysis.NetAnalyzers": "8.0.0-preview.23468.1",
"Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers": "3.3.4-beta1.22504.1",
"Microsoft.DotNet.XliffTasks": "9.0.0-beta.25255.5",
"Microsoft.VisualStudio.Threading.Analyzers": "17.13.2",
"Newtonsoft.Json": "13.0.3",
"Roslyn.Diagnostics.Analyzers": "3.11.0-beta1.24081.1",
"System.Collections.Immutable": "9.0.0",
"System.CommandLine": "2.0.0-beta4.24528.1"
},
"runtime": {
"Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.dll": {}
},
"resources": {
"cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "cs"
},
"de/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "de"
},
"es/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "es"
},
"fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "fr"
},
"it/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "it"
},
"ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "ja"
},
"ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "ko"
},
"pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "pl"
},
"pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "pt-BR"
},
"ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "ru"
},
"tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "tr"
},
"zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "zh-Hans"
},
"zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Build.Locator/1.6.10": {
"runtime": {
"lib/net6.0/Microsoft.Build.Locator.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.6.10.57384"
}
}
},
"Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {},
"Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {},
"Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {},
"Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {},
"Microsoft.DotNet.XliffTasks/9.0.0-beta.25255.5": {},
"Microsoft.VisualStudio.Threading.Analyzers/17.13.2": {},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
"dependencies": {
"Microsoft.CodeAnalysis.BannedApiAnalyzers": "3.11.0-beta1.24081.1",
"Microsoft.CodeAnalysis.PublicApiAnalyzers": "3.11.0-beta1.24081.1"
}
},
"System.Collections.Immutable/9.0.0": {
"dependencies": {
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
},
"runtime": {
"lib/netstandard2.0/System.Collections.Immutable.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.CommandLine/2.0.0-beta4.24528.1": {
"dependencies": {
"System.Memory": "4.5.5"
},
"runtime": {
"lib/netstandard2.0/System.CommandLine.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.24.52801"
}
},
"resources": {
"lib/netstandard2.0/cs/System.CommandLine.resources.dll": {
"locale": "cs"
},
"lib/netstandard2.0/de/System.CommandLine.resources.dll": {
"locale": "de"
},
"lib/netstandard2.0/es/System.CommandLine.resources.dll": {
"locale": "es"
},
"lib/netstandard2.0/fr/System.CommandLine.resources.dll": {
"locale": "fr"
},
"lib/netstandard2.0/it/System.CommandLine.resources.dll": {
"locale": "it"
},
"lib/netstandard2.0/ja/System.CommandLine.resources.dll": {
"locale": "ja"
},
"lib/netstandard2.0/ko/System.CommandLine.resources.dll": {
"locale": "ko"
},
"lib/netstandard2.0/pl/System.CommandLine.resources.dll": {
"locale": "pl"
},
"lib/netstandard2.0/pt-BR/System.CommandLine.resources.dll": {
"locale": "pt-BR"
},
"lib/netstandard2.0/ru/System.CommandLine.resources.dll": {
"locale": "ru"
},
"lib/netstandard2.0/tr/System.CommandLine.resources.dll": {
"locale": "tr"
},
"lib/netstandard2.0/zh-Hans/System.CommandLine.resources.dll": {
"locale": "zh-Hans"
},
"lib/netstandard2.0/zh-Hant/System.CommandLine.resources.dll": {
"locale": "zh-Hant"
}
}
},
"System.Memory/4.5.5": {},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {}
}
},
"libraries": {
"Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost/4.14.0-3.25262.10": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.Build.Locator/1.6.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DJhCkTGqy1LMJzEmG/2qxRTMHwdPc3WdVoGQI5o5mKHVo4dsHrCMLIyruwU/NSvPNSdvONlaf7jdFXnAMuxAuA==",
"path": "microsoft.build.locator/1.6.10",
"hashPath": "microsoft.build.locator.1.6.10.nupkg.sha512"
},
"Microsoft.CodeAnalysis.BannedApiAnalyzers/3.11.0-beta1.24081.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DH6L3rsbjppLrHM2l2/NKbnMaYd0NFHx2pjZaFdrVcRkONrV3i9FHv6Id8Dp6/TmjhXQsJVJJFbhhjkpuP1xxg==",
"path": "microsoft.codeanalysis.bannedapianalyzers/3.11.0-beta1.24081.1",
"hashPath": "microsoft.codeanalysis.bannedapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
},
"Microsoft.CodeAnalysis.NetAnalyzers/8.0.0-preview.23468.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZhIvyxmUCqb8OiU/VQfxfuAmIB4lQsjqhMVYKeoyxzSI+d7uR5Pzx3ZKoaIhPizQ15wa4lnyD6wg3TnSJ6P4LA==",
"path": "microsoft.codeanalysis.netanalyzers/8.0.0-preview.23468.1",
"hashPath": "microsoft.codeanalysis.netanalyzers.8.0.0-preview.23468.1.nupkg.sha512"
},
"Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers/3.3.4-beta1.22504.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2XRlqPAzVke7Sb80+UqaC7o57OwfK+tIr+aIOxrx41RWDMeR2SBUW7kL4sd6hfLFfBNsLo3W5PT+UwfvwPaOzA==",
"path": "microsoft.codeanalysis.performancesensitiveanalyzers/3.3.4-beta1.22504.1",
"hashPath": "microsoft.codeanalysis.performancesensitiveanalyzers.3.3.4-beta1.22504.1.nupkg.sha512"
},
"Microsoft.CodeAnalysis.PublicApiAnalyzers/3.11.0-beta1.24081.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3bYGBihvoNO0rhCOG1U9O50/4Q8suZ+glHqQLIAcKvnodSnSW+dYWYzTNb1UbS8pUS8nAUfxSFMwuMup/G5DtQ==",
"path": "microsoft.codeanalysis.publicapianalyzers/3.11.0-beta1.24081.1",
"hashPath": "microsoft.codeanalysis.publicapianalyzers.3.11.0-beta1.24081.1.nupkg.sha512"
},
"Microsoft.DotNet.XliffTasks/9.0.0-beta.25255.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bb0fZB5ViPscdfYeWlmtyXJMzNkgcpkV5RWmXktfV9lwIUZgNZmFotUXrdcTyZzrN7v1tQK/Y6BGnbkP9gEsXg==",
"path": "microsoft.dotnet.xlifftasks/9.0.0-beta.25255.5",
"hashPath": "microsoft.dotnet.xlifftasks.9.0.0-beta.25255.5.nupkg.sha512"
},
"Microsoft.VisualStudio.Threading.Analyzers/17.13.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Qcd8IlaTXZVq3wolBnzby1P7kWihdWaExtD8riumiKuG1sHa8EgjV/o70TMjTaeUMhomBbhfdC9OPwAHoZfnjQ==",
"path": "microsoft.visualstudio.threading.analyzers/17.13.2",
"hashPath": "microsoft.visualstudio.threading.analyzers.17.13.2.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"Roslyn.Diagnostics.Analyzers/3.11.0-beta1.24081.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-reHqZCDKifA+DURcL8jUfYkMGL4FpgNt5LI0uWTS6IpM8kKVbu/kO8byZsqfhBu4wUzT3MBDcoMfzhZPdENIpg==",
"path": "roslyn.diagnostics.analyzers/3.11.0-beta1.24081.1",
"hashPath": "roslyn.diagnostics.analyzers.3.11.0-beta1.24081.1.nupkg.sha512"
},
"System.Collections.Immutable/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QhkXUl2gNrQtvPmtBTQHb0YsUrDiDQ2QS09YbtTTiSjGcf7NBqtYbrG/BE06zcBPCKEwQGzIv13IVdXNOSub2w==",
"path": "system.collections.immutable/9.0.0",
"hashPath": "system.collections.immutable.9.0.0.nupkg.sha512"
},
"System.CommandLine/2.0.0-beta4.24528.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Xt8tsSU8yd0ZpbT9gl5DAwkMYWLo8PV1fq2R/belrUbHVVOIKqhLfbWksbdknUDpmzMHZenBtD6AGAp9uJTa2w==",
"path": "system.commandline/2.0.0-beta4.24528.1",
"hashPath": "system.commandline.2.0.0-beta4.24528.1.nupkg.sha512"
},
"System.Memory/4.5.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"path": "system.memory/4.5.5",
"hashPath": "system.memory.4.5.5.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg==",
"path": "system.runtime.compilerservices.unsafe/6.0.0",
"hashPath": "system.runtime.compilerservices.unsafe.6.0.0.nupkg.sha512"
}
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
},
"rollForward": "Major",
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
}
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"fuse-build-capture/4.0.0": {
"dependencies": {
"Basic.CompilerLog.Util": "0.9.47",
"Fuse.Reduction": "4.0.0",
"Fuse.Semantics": "4.0.0",
"Microsoft.CodeAnalysis.CSharp": "4.14.0",
"Microsoft.CodeAnalysis.VisualBasic": "4.14.0"
},
"runtime": {
"fuse-build-capture.dll": {}
}
},
"Basic.CompilerLog.Util/0.9.47": {
"dependencies": {
"MSBuild.StructuredLogger": "2.3.204",
"MessagePack": "3.1.7",
"Microsoft.Bcl.Memory": "10.0.9",
"Microsoft.CodeAnalysis": "4.8.0",
"Microsoft.CodeAnalysis.CSharp": "4.14.0",
"Microsoft.CodeAnalysis.VisualBasic": "4.14.0",
"Microsoft.Extensions.ObjectPool": "10.0.9"
},
"runtime": {
"lib/net10.0/Basic.CompilerLog.Util.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"DotNet.Glob/3.1.3": {
"runtime": {
"lib/netcoreapp2.1/DotNet.Glob.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Humanizer.Core/2.14.1": {
"runtime": {
"lib/net6.0/Humanizer.dll": {
"assemblyVersion": "2.14.0.0",
"fileVersion": "2.14.1.48190"
}
}
},
"MessagePack/3.1.7": {
"dependencies": {
"MessagePack.Annotations": "3.1.7",
"Microsoft.NET.StringTools": "17.11.4"
},
"runtime": {
"lib/net9.0/MessagePack.dll": {
"assemblyVersion": "3.1.7.0",
"fileVersion": "3.1.7.0"
}
}
},
"MessagePack.Annotations/3.1.7": {
"runtime": {
"lib/netstandard2.0/MessagePack.Annotations.dll": {
"assemblyVersion": "3.1.7.0",
"fileVersion": "3.1.7.0"
}
}
},
"Microsoft.Bcl.Memory/10.0.9": {
"runtime": {
"lib/net10.0/Microsoft.Bcl.Memory.dll": {
"assemblyVersion": "10.0.0.9",
"fileVersion": "10.0.926.27113"
}
}
},
"Microsoft.Build/17.7.2": {
"dependencies": {
"Microsoft.Build.Framework": "17.7.2",
"Microsoft.NET.StringTools": "17.11.4",
"System.Configuration.ConfigurationManager": "9.0.0",
"System.Reflection.MetadataLoadContext": "7.0.0",
"System.Security.Permissions": "9.0.0"
},
"runtime": {
"lib/net7.0/Microsoft.Build.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "17.7.2.37605"
}
}
},
"Microsoft.Build.Framework/17.7.2": {
"dependencies": {
"System.Security.Permissions": "9.0.0"
},
"runtime": {
"lib/net7.0/Microsoft.Build.Framework.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "17.7.2.37605"
}
}
},
"Microsoft.Build.Locator/1.7.8": {
"runtime": {
"lib/net6.0/Microsoft.Build.Locator.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.7.8.28074"
}
}
},
"Microsoft.Build.Tasks.Core/17.7.2": {
"dependencies": {
"Microsoft.Build.Framework": "17.7.2",
"Microsoft.Build.Utilities.Core": "17.7.2",
"Microsoft.NET.StringTools": "17.11.4",
"Microsoft.VisualStudio.Setup.Configuration.Interop": "3.2.2146",
"System.CodeDom": "7.0.0",
"System.Configuration.ConfigurationManager": "9.0.0",
"System.Resources.Extensions": "9.0.0",
"System.Security.Cryptography.Pkcs": "7.0.2",
"System.Security.Cryptography.Xml": "7.0.1",
"System.Security.Permissions": "9.0.0"
},
"runtime": {
"lib/net7.0/Microsoft.Build.Tasks.Core.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "17.7.2.37605"
}
}
},
"Microsoft.Build.Utilities.Core/17.7.2": {
"dependencies": {
"Microsoft.Build.Framework": "17.7.2",
"Microsoft.NET.StringTools": "17.11.4",
"Microsoft.VisualStudio.Setup.Configuration.Interop": "3.2.2146",
"System.Configuration.ConfigurationManager": "9.0.0",
"System.Security.Permissions": "9.0.0"
},
"runtime": {
"lib/net7.0/Microsoft.Build.Utilities.Core.dll": {
"assemblyVersion": "15.1.0.0",
"fileVersion": "17.7.2.37605"
}
}
},
"Microsoft.CodeAnalysis/4.8.0": {
"dependencies": {
"Microsoft.CodeAnalysis.CSharp.Workspaces": "4.14.0",
"Microsoft.CodeAnalysis.VisualBasic.Workspaces": "4.8.0"
}
},
"Microsoft.CodeAnalysis.Common/4.14.0": {
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp/4.14.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "4.14.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp.Workspaces/4.14.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.CodeAnalysis.CSharp": "4.14.0",
"Microsoft.CodeAnalysis.Common": "4.14.0",
"Microsoft.CodeAnalysis.Workspaces.Common": "4.14.0",
"System.Composition": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.VisualBasic/4.14.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "4.14.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.VisualBasic.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.VisualBasic.Workspaces/4.8.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "4.14.0",
"Microsoft.CodeAnalysis.VisualBasic": "4.14.0",
"Microsoft.CodeAnalysis.Workspaces.Common": "4.14.0"
},
"runtime": {
"lib/net7.0/Microsoft.CodeAnalysis.VisualBasic.Workspaces.dll": {
"assemblyVersion": "4.8.0.0",
"fileVersion": "4.800.23.55801"
}
},
"resources": {
"lib/net7.0/cs/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "cs"
},
"lib/net7.0/de/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "de"
},
"lib/net7.0/es/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "es"
},
"lib/net7.0/fr/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "fr"
},
"lib/net7.0/it/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "it"
},
"lib/net7.0/ja/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "ja"
},
"lib/net7.0/ko/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "ko"
},
"lib/net7.0/pl/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "pl"
},
"lib/net7.0/pt-BR/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "pt-BR"
},
"lib/net7.0/ru/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "ru"
},
"lib/net7.0/tr/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "tr"
},
"lib/net7.0/zh-Hans/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "zh-Hans"
},
"lib/net7.0/zh-Hant/Microsoft.CodeAnalysis.VisualBasic.Workspaces.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.Workspaces.Common/4.14.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.CodeAnalysis.Common": "4.14.0",
"System.Composition": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.Workspaces.MSBuild/4.14.0": {
"dependencies": {
"Humanizer.Core": "2.14.1",
"Microsoft.Build": "17.7.2",
"Microsoft.Build.Framework": "17.7.2",
"Microsoft.Build.Tasks.Core": "17.7.2",
"Microsoft.Build.Utilities.Core": "17.7.2",
"Microsoft.CodeAnalysis.Workspaces.Common": "4.14.0",
"Microsoft.Extensions.DependencyInjection": "9.0.0",
"Microsoft.Extensions.Logging": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.3",
"Microsoft.Extensions.Options": "9.0.0",
"Microsoft.Extensions.Primitives": "9.0.0",
"Newtonsoft.Json": "13.0.3",
"System.CodeDom": "7.0.0",
"System.Composition": "9.0.0",
"System.Configuration.ConfigurationManager": "9.0.0",
"System.Diagnostics.EventLog": "9.0.0",
"System.Resources.Extensions": "9.0.0",
"System.Security.Cryptography.Pkcs": "7.0.2",
"System.Security.Cryptography.ProtectedData": "9.0.0",
"System.Security.Cryptography.Xml": "7.0.1",
"System.Security.Permissions": "9.0.0",
"System.Windows.Extensions": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.CodeAnalysis.ExternalAccess.RazorCompiler.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
},
"lib/net9.0/Microsoft.CodeAnalysis.Workspaces.MSBuild.dll": {
"assemblyVersion": "4.14.0.0",
"fileVersion": "4.1400.25.26210"
}
},
"resources": {
"lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "cs"
},
"lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "de"
},
"lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "es"
},
"lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "fr"
},
"lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "it"
},
"lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "ja"
},
"lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "ko"
},
"lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "pl"
},
"lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "pt-BR"
},
"lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "ru"
},
"lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "tr"
},
"lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "zh-Hans"
},
"lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Data.Sqlite/9.0.0": {
"dependencies": {
"Microsoft.Data.Sqlite.Core": "9.0.0",
"SQLitePCLRaw.bundle_e_sqlite3": "3.0.3",
"SQLitePCLRaw.core": "3.0.3"
}
},
"Microsoft.Data.Sqlite.Core/9.0.0": {
"dependencies": {
"SQLitePCLRaw.core": "3.0.3"
},
"runtime": {
"lib/net8.0/Microsoft.Data.Sqlite.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52902"
}
}
},
"Microsoft.Extensions.DependencyInjection/9.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.3": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.326.7603"
}
}
},
"Microsoft.Extensions.Logging/9.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.3",
"Microsoft.Extensions.Options": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/10.0.3": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3"
},
"runtime": {
"lib/net10.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.326.7603"
}
}
},
"Microsoft.Extensions.ObjectPool/10.0.9": {
"runtime": {
"lib/net10.0/Microsoft.Extensions.ObjectPool.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.926.27113"
}
}
},
"Microsoft.Extensions.Options/9.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3",
"Microsoft.Extensions.Primitives": "9.0.0"
},
"runtime": {
"lib/net9.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"Microsoft.Extensions.Primitives/9.0.0": {
"runtime": {
"lib/net9.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"Microsoft.NET.StringTools/17.11.4": {
"runtime": {
"lib/net8.0/Microsoft.NET.StringTools.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "17.11.4.40609"
}
}
},
"Microsoft.VisualStudio.Setup.Configuration.Interop/3.2.2146": {
"runtime": {
"lib/netstandard2.1/Microsoft.VisualStudio.Setup.Configuration.Interop.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "3.2.2146.50370"
}
}
},
"MSBuild.StructuredLogger/2.3.204": {
"dependencies": {
"Microsoft.Build.Framework": "17.7.2",
"Microsoft.Build.Utilities.Core": "17.7.2"
},
"runtime": {
"lib/net10.0/StructuredLogger.dll": {
"assemblyVersion": "2.3.0.0",
"fileVersion": "2.3.204.27911"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
},
"SourceGear.sqlite3/3.50.4.5": {
"runtimeTargets": {
"runtimes/android-arm/native/libe_sqlite3.so": {
"rid": "android-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/android-arm64/native/libe_sqlite3.so": {
"rid": "android-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/android-x64/native/libe_sqlite3.so": {
"rid": "android-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/android-x86/native/libe_sqlite3.so": {
"rid": "android-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/browser-wasm/nativeassets/net9.0/e_sqlite3.a": {
"rid": "browser-wasm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/ios-arm/native/e_sqlite3.a": {
"rid": "ios-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/ios-arm64/native/e_sqlite3.a": {
"rid": "ios-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/iossimulator-arm64/native/e_sqlite3.a": {
"rid": "iossimulator-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/iossimulator-x64/native/e_sqlite3.a": {
"rid": "iossimulator-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/iossimulator-x86/native/e_sqlite3.a": {
"rid": "iossimulator-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm/native/libe_sqlite3.so": {
"rid": "linux-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-arm64/native/libe_sqlite3.so": {
"rid": "linux-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-armel/native/libe_sqlite3.so": {
"rid": "linux-armel",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-mips64/native/libe_sqlite3.so": {
"rid": "linux-mips64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-arm/native/libe_sqlite3.so": {
"rid": "linux-musl-arm",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-arm64/native/libe_sqlite3.so": {
"rid": "linux-musl-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-riscv64/native/libe_sqlite3.so": {
"rid": "linux-musl-riscv64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-s390x/native/libe_sqlite3.so": {
"rid": "linux-musl-s390x",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-musl-x64/native/libe_sqlite3.so": {
"rid": "linux-musl-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-ppc64le/native/libe_sqlite3.so": {
"rid": "linux-ppc64le",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-riscv64/native/libe_sqlite3.so": {
"rid": "linux-riscv64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-s390x/native/libe_sqlite3.so": {
"rid": "linux-s390x",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x64/native/libe_sqlite3.so": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/linux-x86/native/libe_sqlite3.so": {
"rid": "linux-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/maccatalyst-arm64/native/libe_sqlite3.dylib": {
"rid": "maccatalyst-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/maccatalyst-x64/native/libe_sqlite3.dylib": {
"rid": "maccatalyst-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-arm64/native/libe_sqlite3.dylib": {
"rid": "osx-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/libe_sqlite3.dylib": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-arm64/native/e_sqlite3.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/e_sqlite3.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x86/native/e_sqlite3.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "0.0.0.0"
}
}
},
"SQLitePCLRaw.bundle_e_sqlite3/3.0.3": {
"dependencies": {
"SQLitePCLRaw.config.e_sqlite3": "3.0.3",
"SourceGear.sqlite3": "3.50.4.5"
}
},
"SQLitePCLRaw.config.e_sqlite3/3.0.3": {
"dependencies": {
"SQLitePCLRaw.provider.e_sqlite3": "3.0.3"
},
"runtime": {
"lib/net8.0/SQLitePCLRaw.batteries_v2.dll": {
"assemblyVersion": "3.0.3.3048",
"fileVersion": "3.0.3.3048"
}
}
},
"SQLitePCLRaw.core/3.0.3": {
"runtime": {
"lib/net8.0/SQLitePCLRaw.core.dll": {
"assemblyVersion": "3.0.3.3048",
"fileVersion": "3.0.3.3048"
}
}
},
"SQLitePCLRaw.provider.e_sqlite3/3.0.3": {
"dependencies": {
"SQLitePCLRaw.core": "3.0.3"
},
"runtime": {
"lib/net8.0/SQLitePCLRaw.provider.e_sqlite3.dll": {
"assemblyVersion": "3.0.3.3048",
"fileVersion": "3.0.3.3048"
}
}
},
"System.CodeDom/7.0.0": {
"runtime": {
"lib/net7.0/System.CodeDom.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51805"
}
}
},
"System.Composition/9.0.0": {
"dependencies": {
"System.Composition.AttributedModel": "9.0.0",
"System.Composition.Convention": "9.0.0",
"System.Composition.Hosting": "9.0.0",
"System.Composition.Runtime": "9.0.0",
"System.Composition.TypedParts": "9.0.0"
}
},
"System.Composition.AttributedModel/9.0.0": {
"runtime": {
"lib/net9.0/System.Composition.AttributedModel.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.Convention/9.0.0": {
"dependencies": {
"System.Composition.AttributedModel": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Composition.Convention.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.Hosting/9.0.0": {
"dependencies": {
"System.Composition.Runtime": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Composition.Hosting.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.Runtime/9.0.0": {
"runtime": {
"lib/net9.0/System.Composition.Runtime.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Composition.TypedParts/9.0.0": {
"dependencies": {
"System.Composition.AttributedModel": "9.0.0",
"System.Composition.Hosting": "9.0.0",
"System.Composition.Runtime": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Composition.TypedParts.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Configuration.ConfigurationManager/9.0.0": {
"dependencies": {
"System.Diagnostics.EventLog": "9.0.0",
"System.Security.Cryptography.ProtectedData": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Configuration.ConfigurationManager.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Diagnostics.EventLog/9.0.0": {
"runtime": {
"lib/net9.0/System.Diagnostics.EventLog.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
},
"runtimeTargets": {
"runtimes/win/lib/net9.0/System.Diagnostics.EventLog.Messages.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
},
"runtimes/win/lib/net9.0/System.Diagnostics.EventLog.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Formats.Nrbf/9.0.0": {
"runtime": {
"lib/net9.0/System.Formats.Nrbf.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.IO.Hashing/9.0.0": {
"runtime": {
"lib/net9.0/System.IO.Hashing.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Reflection.MetadataLoadContext/7.0.0": {
"runtime": {
"lib/net7.0/System.Reflection.MetadataLoadContext.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.22.51805"
}
}
},
"System.Resources.Extensions/9.0.0": {
"dependencies": {
"System.Formats.Nrbf": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Resources.Extensions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Security.Cryptography.Pkcs/7.0.2": {
"runtime": {
"lib/net7.0/System.Security.Cryptography.Pkcs.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.723.27404"
}
},
"runtimeTargets": {
"runtimes/win/lib/net7.0/System.Security.Cryptography.Pkcs.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.723.27404"
}
}
},
"System.Security.Cryptography.ProtectedData/9.0.0": {
"runtime": {
"lib/net9.0/System.Security.Cryptography.ProtectedData.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Security.Cryptography.Xml/7.0.1": {
"dependencies": {
"System.Security.Cryptography.Pkcs": "7.0.2"
},
"runtime": {
"lib/net7.0/System.Security.Cryptography.Xml.dll": {
"assemblyVersion": "7.0.0.0",
"fileVersion": "7.0.222.60605"
}
}
},
"System.Security.Permissions/9.0.0": {
"dependencies": {
"System.Windows.Extensions": "9.0.0"
},
"runtime": {
"lib/net9.0/System.Security.Permissions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"System.Windows.Extensions/9.0.0": {
"runtime": {
"lib/net9.0/System.Windows.Extensions.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
},
"runtimeTargets": {
"runtimes/win/lib/net9.0/System.Windows.Extensions.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
},
"Fuse.Collection/4.0.0": {
"dependencies": {
"DotNet.Glob": "3.1.3"
},
"runtime": {
"Fuse.Collection.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
},
"Fuse.Indexing/4.0.0": {
"dependencies": {
"Fuse.Collection": "4.0.0",
"Fuse.Reduction": "4.0.0",
"Microsoft.Data.Sqlite": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.3",
"SQLitePCLRaw.bundle_e_sqlite3": "3.0.3",
"System.IO.Hashing": "9.0.0"
},
"runtime": {
"Fuse.Indexing.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
},
"Fuse.Plugins.Abstractions/4.0.0": {
"runtime": {
"Fuse.Plugins.Abstractions.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
},
"Fuse.Plugins.Languages.CSharp.Roslyn/4.0.0": {
"dependencies": {
"Fuse.Plugins.Abstractions": "4.0.0",
"Microsoft.CodeAnalysis.CSharp": "4.14.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.3"
},
"runtime": {
"Fuse.Plugins.Languages.CSharp.Roslyn.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
},
"Fuse.Reduction/4.0.0": {
"dependencies": {
"Fuse.Collection": "4.0.0",
"Fuse.Plugins.Abstractions": "4.0.0",
"Microsoft.Data.Sqlite": "9.0.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.3",
"SQLitePCLRaw.bundle_e_sqlite3": "3.0.3",
"System.IO.Hashing": "9.0.0"
},
"runtime": {
"Fuse.Reduction.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
},
"Fuse.Semantics/4.0.0": {
"dependencies": {
"Fuse.Collection": "4.0.0",
"Fuse.Indexing": "4.0.0",
"Fuse.Plugins.Abstractions": "4.0.0",
"Fuse.Plugins.Languages.CSharp.Roslyn": "4.0.0",
"Microsoft.Build.Locator": "1.7.8",
"Microsoft.CodeAnalysis.CSharp": "4.14.0",
"Microsoft.CodeAnalysis.CSharp.Workspaces": "4.14.0",
"Microsoft.CodeAnalysis.Workspaces.MSBuild": "4.14.0",
"Microsoft.Extensions.Logging.Abstractions": "10.0.3"
},
"runtime": {
"Fuse.Semantics.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
}
}
},
"libraries": {
"fuse-build-capture/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Basic.CompilerLog.Util/0.9.47": {
"type": "package",
"serviceable": true,
"sha512": "sha512-t/kTUCiHcqSuR1oDvALKBeXXX7vQI1VSnVFW5JqWRSXeb3S2D62qQqxUV6VWp/Wzac/xK6jvgs3epa7MvqRnWw==",
"path": "basic.compilerlog.util/0.9.47",
"hashPath": "basic.compilerlog.util.0.9.47.nupkg.sha512"
},
"DotNet.Glob/3.1.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hOfHw7MLJw/tbXaFwR1oiDb+dIXDp8URTxp5Pco42OOhiw77wrUNx6v6syNygHZbWwYdXQocL2Mo1l5FnfDVjg==",
"path": "dotnet.glob/3.1.3",
"hashPath": "dotnet.glob.3.1.3.nupkg.sha512"
},
"Humanizer.Core/2.14.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==",
"path": "humanizer.core/2.14.1",
"hashPath": "humanizer.core.2.14.1.nupkg.sha512"
},
"MessagePack/3.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gXpifaxbhfBqh8bVToQn9j+OgCnhXWMbRCV7RQIbCVa9CNJG1fY6oHAYYl+ER3Tb9uUIHiQ5QbGiGwwFhoagbA==",
"path": "messagepack/3.1.7",
"hashPath": "messagepack.3.1.7.nupkg.sha512"
},
"MessagePack.Annotations/3.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IW1yX9viarFl/Dsio5G+pM90JkOSW4xhAiJcKxPPF5rzyp2/yCpieWju8G99QLEmaQeze2uQMEskUBA59YZmkw==",
"path": "messagepack.annotations/3.1.7",
"hashPath": "messagepack.annotations.3.1.7.nupkg.sha512"
},
"Microsoft.Bcl.Memory/10.0.9": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Ot6xtHSjibECjp8mP41wch9GUSeGTXtUUc7M2MthKtiFmvPBMpvp6d8RwBJOtg/ia5PE0iR05PRy1ZVBAOmaeQ==",
"path": "microsoft.bcl.memory/10.0.9",
"hashPath": "microsoft.bcl.memory.10.0.9.nupkg.sha512"
},
"Microsoft.Build/17.7.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AmWnumxsMiRycFfE3kq/XnFFTAoPpCWl3UuiKQWCa5Z0+hBKVoiydzS2iXJGd3x+jry+qaTR9GzoezjV9NFT5A==",
"path": "microsoft.build/17.7.2",
"hashPath": "microsoft.build.17.7.2.nupkg.sha512"
},
"Microsoft.Build.Framework/17.7.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-F+SglYQv6ij5RK4Bmd1X4q01E2ry4M8/huTIZ/1Vk7ZoxdT2J3vmV23cnJZsA/ZLunOTv3B905TU5J1eFmWNPw==",
"path": "microsoft.build.framework/17.7.2",
"hashPath": "microsoft.build.framework.17.7.2.nupkg.sha512"
},
"Microsoft.Build.Locator/1.7.8": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sPy10x527Ph16S2u0yGME4S6ohBKJ69WfjeGG/bvELYeZVmJdKjxgnlL8cJJJLGV/cZIRqSfB12UDB8ICakOog==",
"path": "microsoft.build.locator/1.7.8",
"hashPath": "microsoft.build.locator.1.7.8.nupkg.sha512"
},
"Microsoft.Build.Tasks.Core/17.7.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CmI+mDQ44GWVv0mxFcGYlvek838kK3PgNvXPo/1/Q5/Tc97tajO611uZAj2wNfwJ1kjsCef2Mza4d+SVSyd3Mg==",
"path": "microsoft.build.tasks.core/17.7.2",
"hashPath": "microsoft.build.tasks.core.17.7.2.nupkg.sha512"
},
"Microsoft.Build.Utilities.Core/17.7.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-soXfaIBW904uEP6WTDv7EbiT0vRfBdNIcqOOEOfyy27WEa8DaXVPQJYSlsDGycS7uTnYU8vlROJbbmlCTBL7hg==",
"path": "microsoft.build.utilities.core/17.7.2",
"hashPath": "microsoft.build.utilities.core.17.7.2.nupkg.sha512"
},
"Microsoft.CodeAnalysis/4.8.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-g5eTgZVyBr4k1zxvJeVrJ1nDvBHrDt7XX2Uo7UWRoF9GdzOv9od4WtOeL1/e86ifgwX/H7H1Vs5u2OCdv0HYpQ==",
"path": "microsoft.codeanalysis/4.8.0",
"hashPath": "microsoft.codeanalysis.4.8.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Common/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==",
"path": "microsoft.codeanalysis.common/4.14.0",
"hashPath": "microsoft.codeanalysis.common.4.14.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==",
"path": "microsoft.codeanalysis.csharp/4.14.0",
"hashPath": "microsoft.codeanalysis.csharp.4.14.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp.Workspaces/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QkgCEM4qJo6gdtblXtNgHqtykS61fxW+820hx5JN6n9DD4mQtqNB+6fPeJ3GQWg6jkkGz6oG9yZq7H3Gf0zwYw==",
"path": "microsoft.codeanalysis.csharp.workspaces/4.14.0",
"hashPath": "microsoft.codeanalysis.csharp.workspaces.4.14.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.VisualBasic/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AVGOptT9LlETb6BjTkK58XHi1xx7XO8KLbtpPfpwjNckoYoCgdkFz/LS1LfhE1Sq/OTqToqpBUJ48FvVhdKHeA==",
"path": "microsoft.codeanalysis.visualbasic/4.14.0",
"hashPath": "microsoft.codeanalysis.visualbasic.4.14.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.VisualBasic.Workspaces/4.8.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4fNpQX8LRV0ZCfB6+rr9s61zdhNpN6Bgow/kmvsO2Gm5KtzbOUPijbUZex26wJwRHyW+ZYoatTRd449A7+D3Wg==",
"path": "microsoft.codeanalysis.visualbasic.workspaces/4.8.0",
"hashPath": "microsoft.codeanalysis.visualbasic.workspaces.4.8.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Workspaces.Common/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wNVK9JrqjqDC/WgBUFV6henDfrW87NPfo98nzah/+M/G1D6sBOPtXwqce3UQNn+6AjTnmkHYN1WV9XmTlPemTw==",
"path": "microsoft.codeanalysis.workspaces.common/4.14.0",
"hashPath": "microsoft.codeanalysis.workspaces.common.4.14.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Workspaces.MSBuild/4.14.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YU7Sguzm1Cuhi2U6S0DRKcVpqAdBd2QmatpyE0KqYMJogJ9E27KHOWGUzAOjsyjAM7sNaUk+a8VPz24knDseFw==",
"path": "microsoft.codeanalysis.workspaces.msbuild/4.14.0",
"hashPath": "microsoft.codeanalysis.workspaces.msbuild.4.14.0.nupkg.sha512"
},
"Microsoft.Data.Sqlite/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lw6wthgXGx3r/U775k1UkUAWIn0kAT0wj4ZRq0WlhPx4WAOiBsIjgDKgWkXcNTGT0KfHiClkM+tyPVFDvxeObw==",
"path": "microsoft.data.sqlite/9.0.0",
"hashPath": "microsoft.data.sqlite.9.0.0.nupkg.sha512"
},
"Microsoft.Data.Sqlite.Core/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cFfZjFL+tqzGYw9lB31EkV1IWF5xRQNk2k+MQd+Cf86Gl6zTeAoiZIFw5sRB1Z8OxpEC7nu+nTDsLSjieBAPTw==",
"path": "microsoft.data.sqlite.core/9.0.0",
"hashPath": "microsoft.data.sqlite.core.9.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MCPrg7v3QgNMr0vX4vzRXvkNGgLg8vKWX0nKCWUxu2uPyMsaRgiRc1tHBnbTcfJMhMKj2slE/j2M9oGkd25DNw==",
"path": "microsoft.extensions.dependencyinjection/9.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.9.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bwGMrRcAMWx2s/RDgja97p27rxSz2pEQW0+rX5cWAUWVETVJ/eyxGfjAl8vuG5a+lckWmPIE+vcuaZNVB5YDdw==",
"path": "microsoft.extensions.dependencyinjection.abstractions/10.0.3",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.10.0.3.nupkg.sha512"
},
"Microsoft.Extensions.Logging/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-crjWyORoug0kK7RSNJBTeSE6VX8IQgLf3nUpTB9m62bPXp/tzbnOsnbe8TXEG0AASNaKZddnpHKw7fET8E++Pg==",
"path": "microsoft.extensions.logging/9.0.0",
"hashPath": "microsoft.extensions.logging.9.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/10.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lxl0WLk7ROgBFAsjcOYjQ8/DVK+VMszxGBzUhgtQmAsTNldLL5pk9NG/cWTsXHq0lUhUEAtZkEE7jOGOA8bGKQ==",
"path": "microsoft.extensions.logging.abstractions/10.0.3",
"hashPath": "microsoft.extensions.logging.abstractions.10.0.3.nupkg.sha512"
},
"Microsoft.Extensions.ObjectPool/10.0.9": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KZENCkfqO7Ciax6goUWQHDSxKH+x763hkBWMz9KpE87EyKW+EKEas9EFe9i1KgtQShG8KwKxaeJ5gd9sj6TuTQ==",
"path": "microsoft.extensions.objectpool/10.0.9",
"hashPath": "microsoft.extensions.objectpool.10.0.9.nupkg.sha512"
},
"Microsoft.Extensions.Options/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-y2146b3jrPI3Q0lokKXdKLpmXqakYbDIPDV6r3M8SqvSf45WwOTzkyfDpxnZXJsJQEpAsAqjUq5Pu8RCJMjubg==",
"path": "microsoft.extensions.options/9.0.0",
"hashPath": "microsoft.extensions.options.9.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg==",
"path": "microsoft.extensions.primitives/9.0.0",
"hashPath": "microsoft.extensions.primitives.9.0.0.nupkg.sha512"
},
"Microsoft.NET.StringTools/17.11.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mudqUHhNpeqIdJoUx2YDWZO/I9uEDYVowan89R6wsomfnUJQk6HteoQTlNjZDixhT2B4IXMkMtgZtoceIjLRmA==",
"path": "microsoft.net.stringtools/17.11.4",
"hashPath": "microsoft.net.stringtools.17.11.4.nupkg.sha512"
},
"Microsoft.VisualStudio.Setup.Configuration.Interop/3.2.2146": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gMq8uGy8zTIp0kQGTI45buZC3JOStGJyjGD8gksskk83aQISW65IESErLE/WDT7Bdy+QWbdUi7QyO1LEzUSOFA==",
"path": "microsoft.visualstudio.setup.configuration.interop/3.2.2146",
"hashPath": "microsoft.visualstudio.setup.configuration.interop.3.2.2146.nupkg.sha512"
},
"MSBuild.StructuredLogger/2.3.204": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jdp9zBMKBQU7xNV4FrvVVchASLUn0plE0cIqK3X7kwjvqyCp559IT8xfTldoG5tm4xMqR4VhVsKkDT9MCktobg==",
"path": "msbuild.structuredlogger/2.3.204",
"hashPath": "msbuild.structuredlogger.2.3.204.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"SourceGear.sqlite3/3.50.4.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UtnipXhJYZKQOQIfpws/msLK7IRhMplE1CZCaZLIQXRnGD474QVpO/J9nMlQQY8NZueGz1aidjoxDRnrC1NT3Q==",
"path": "sourcegear.sqlite3/3.50.4.5",
"hashPath": "sourcegear.sqlite3.3.50.4.5.nupkg.sha512"
},
"SQLitePCLRaw.bundle_e_sqlite3/3.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Zt8jmSL5zcDWGk8rmzhWBJ6IRyLWh1yWS04Pg72+GIvo3Ba4E/rG4Y/4l7AWlSEogEbzyKRTCXUAs1v/O7Pkkg==",
"path": "sqlitepclraw.bundle_e_sqlite3/3.0.3",
"hashPath": "sqlitepclraw.bundle_e_sqlite3.3.0.3.nupkg.sha512"
},
"SQLitePCLRaw.config.e_sqlite3/3.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-caP/ap0X2fyVmstCXu5ueOmcr2XWAxA2XyKghV7H4bOAFmq3nWcsGl9q44iY1HYG+i8Qr4G9XEqdfti0rV6/ZQ==",
"path": "sqlitepclraw.config.e_sqlite3/3.0.3",
"hashPath": "sqlitepclraw.config.e_sqlite3.3.0.3.nupkg.sha512"
},
"SQLitePCLRaw.core/3.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bjm6FY4lZyP+t7GmiuvSM0QXpFihAvyE0Y9O2yibm3g95AAWJPNnHOKVNJGyPTGIKuK7Pr4Wh8Rd8/aOtAclQw==",
"path": "sqlitepclraw.core/3.0.3",
"hashPath": "sqlitepclraw.core.3.0.3.nupkg.sha512"
},
"SQLitePCLRaw.provider.e_sqlite3/3.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-wd+fGvZTrr3BJNe48opSczmC176Okd61ZgoZNQcdvZwkek6to978ccdpcFmNo5GHxCnk29KwT+f+lAZYgfLVZg==",
"path": "sqlitepclraw.provider.e_sqlite3/3.0.3",
"hashPath": "sqlitepclraw.provider.e_sqlite3.3.0.3.nupkg.sha512"
},
"System.CodeDom/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-GLltyqEsE5/3IE+zYRP5sNa1l44qKl9v+bfdMcwg+M9qnQf47wK3H0SUR/T+3N4JEQXF3vV4CSuuo0rsg+nq2A==",
"path": "system.codedom/7.0.0",
"hashPath": "system.codedom.7.0.0.nupkg.sha512"
},
"System.Composition/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==",
"path": "system.composition/9.0.0",
"hashPath": "system.composition.9.0.0.nupkg.sha512"
},
"System.Composition.AttributedModel/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==",
"path": "system.composition.attributedmodel/9.0.0",
"hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512"
},
"System.Composition.Convention/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==",
"path": "system.composition.convention/9.0.0",
"hashPath": "system.composition.convention.9.0.0.nupkg.sha512"
},
"System.Composition.Hosting/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==",
"path": "system.composition.hosting/9.0.0",
"hashPath": "system.composition.hosting.9.0.0.nupkg.sha512"
},
"System.Composition.Runtime/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==",
"path": "system.composition.runtime/9.0.0",
"hashPath": "system.composition.runtime.9.0.0.nupkg.sha512"
},
"System.Composition.TypedParts/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==",
"path": "system.composition.typedparts/9.0.0",
"hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512"
},
"System.Configuration.ConfigurationManager/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PdkuMrwDhXoKFo/JxISIi9E8L+QGn9Iquj2OKDWHB6Y/HnUOuBouF7uS3R4Hw3FoNmwwMo6hWgazQdyHIIs27A==",
"path": "system.configuration.configurationmanager/9.0.0",
"hashPath": "system.configuration.configurationmanager.9.0.0.nupkg.sha512"
},
"System.Diagnostics.EventLog/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-qd01+AqPhbAG14KtdtIqFk+cxHQFZ/oqRSCoxU1F+Q6Kv0cl726sl7RzU9yLFGd4BUOKdN4XojXF0pQf/R6YeA==",
"path": "system.diagnostics.eventlog/9.0.0",
"hashPath": "system.diagnostics.eventlog.9.0.0.nupkg.sha512"
},
"System.Formats.Nrbf/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-F/6tNE+ckmdFeSQAyQo26bQOqfPFKEfZcuqnp4kBE6/7jP26diP+QTHCJJ6vpEfaY6bLy+hBLiIQUSxSmNwLkA==",
"path": "system.formats.nrbf/9.0.0",
"hashPath": "system.formats.nrbf.9.0.0.nupkg.sha512"
},
"System.IO.Hashing/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-seeO8icDfED/Qwl9PDFUx2Gf/7xv7dPsMnw5PnRwNZuz4EWMpy0wIVohC4MfCcTIoJgp+KUrWG4WH3NPSusQOA==",
"path": "system.io.hashing/9.0.0",
"hashPath": "system.io.hashing.9.0.0.nupkg.sha512"
},
"System.Reflection.MetadataLoadContext/7.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-z9PvtMJra5hK8n+g0wmPtaG7HQRZpTmIPRw5Z0LEemlcdQMHuTD5D7OAY/fZuuz1L9db++QOcDF0gJTLpbMtZQ==",
"path": "system.reflection.metadataloadcontext/7.0.0",
"hashPath": "system.reflection.metadataloadcontext.7.0.0.nupkg.sha512"
},
"System.Resources.Extensions/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tvhuT1D2OwPROdL1kRWtaTJliQo0WdyhvwDpd8RM997G7m3Hya5nhbYhNTS75x6Vu+ypSOgL5qxDCn8IROtCxw==",
"path": "system.resources.extensions/9.0.0",
"hashPath": "system.resources.extensions.9.0.0.nupkg.sha512"
},
"System.Security.Cryptography.Pkcs/7.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-xhFNJOcQSWhpiVGLLBQYoxAltQSQVycMkwaX1z7I7oEdT9Wr0HzSM1yeAbfoHaERIYd5s6EpLSOLs2qMchSKlA==",
"path": "system.security.cryptography.pkcs/7.0.2",
"hashPath": "system.security.cryptography.pkcs.7.0.2.nupkg.sha512"
},
"System.Security.Cryptography.ProtectedData/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CJW+x/F6fmRQ7N6K8paasTw9PDZp4t7G76UjGNlSDgoHPF0h08vTzLYbLZpOLEJSg35d5wy2jCXGo84EN05DpQ==",
"path": "system.security.cryptography.protecteddata/9.0.0",
"hashPath": "system.security.cryptography.protecteddata.9.0.0.nupkg.sha512"
},
"System.Security.Cryptography.Xml/7.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MCxBCtH0GrDuvU63ZODwQHQZPchb24pUAX3MfZ6b13qg246ZD10PRdOvay8C9HBPfCXkymUNwFPEegud7ax2zg==",
"path": "system.security.cryptography.xml/7.0.1",
"hashPath": "system.security.cryptography.xml.7.0.1.nupkg.sha512"
},
"System.Security.Permissions/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-H2VFD4SFVxieywNxn9/epb63/IOcPPfA0WOtfkljzNfu7GCcHIBQNuwP6zGCEIi7Ci/oj8aLPUNK9sYImMFf4Q==",
"path": "system.security.permissions/9.0.0",
"hashPath": "system.security.permissions.9.0.0.nupkg.sha512"
},
"System.Windows.Extensions/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-U9msthvnH2Fsw7xwAvIhNHOdnIjOQTwOc8Vd0oGOsiRcGMGoBFlUD6qtYawRUoQdKH9ysxesZ9juFElt1Jw/7A==",
"path": "system.windows.extensions/9.0.0",
"hashPath": "system.windows.extensions.9.0.0.nupkg.sha512"
},
"Fuse.Collection/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fuse.Indexing/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fuse.Plugins.Abstractions/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fuse.Plugins.Languages.CSharp.Roslyn/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fuse.Reduction/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Fuse.Semantics/4.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

{
"runtimeOptions": {
"tfm": "net10.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
<?xml version="1.0"?>
<doc>
<assembly>
<name>fuse-build-capture</name>
</assembly>
<members>
<member name="T:Fuse.BuildCaptureWorker.BuildCaptureRehydrator">
<summary>
Runs a repository's own build once with a binary log and rehydrates exact Roslyn compilations from the
recorded compiler invocations (N4 tier-1). Lives in the standalone worker executable so its
Basic.CompilerLog.Util Roslyn closure never shares a process with the parent's MSBuildWorkspace, which the
two would conflict over; this type never invokes MSBuildWorkspace.
</summary>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.CaptureAsync(System.String,System.TimeSpan,System.Threading.CancellationToken)">
<summary>
Builds the target and rehydrates its C# compilations, reporting each project's outcome.
</summary>
<param name="buildTarget">The absolute path to the solution or project to build.</param>
<param name="buildTimeout">The maximum time to allow the build to run.</param>
<param name="cancellationToken">A token to cancel the capture.</param>
<returns>The capture result: the achieved outcome plus one entry per rehydrated C# compilation.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.ExportCompilerLogAsync(System.String,System.String,System.TimeSpan,System.Threading.CancellationToken)">
<summary>
Builds the target and exports a portable compiler log (<c>.complog</c>) to <paramref name="complogPath" />
(C2). The complog packages the compiler inputs (source, reference closure, generated documents, and
command lines) self-contained and, unlike the binary log, WITHOUT the build's environment variables, so
it is the artifact a bundle ships. Also rehydrates and returns the extracted graph so the caller can
package the graph alongside the complog. The binary log is deleted; the complog is left at the path.
</summary>
<param name="buildTarget">The absolute path to the solution or project to build.</param>
<param name="complogPath">The absolute path to write the portable compiler log to.</param>
<param name="buildTimeout">The maximum time to allow the build to run.</param>
<param name="cancellationToken">A token to cancel the capture.</param>
<returns>The capture result (the extracted graph) on success, or a concrete failure; the complog is at <paramref name="complogPath" /> on success.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.CheckAsync(System.String,System.String,System.String,System.TimeSpan,System.Threading.CancellationToken)">
<summary>
Speculatively typechecks a proposed single-file patch: builds and rehydrates the compilations, replaces
the target file's syntax tree with the proposed content in memory, and returns the compiler diagnostics
for that document (R1). No disk write of the patch, no second build.
</summary>
<param name="buildTarget">The absolute path to the solution or project to build and capture.</param>
<param name="relativeFilePath">The repo-relative path of the file being changed.</param>
<param name="newContent">The proposed full new content of that file.</param>
<param name="buildTimeout">The maximum time to allow the capture build to run.</param>
<param name="cancellationToken">A token to cancel the check.</param>
<returns>The diagnostics for the changed document, or an abstention when capture is unavailable.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.CheckFromLog(System.String,System.String,System.String,System.Threading.CancellationToken)">
<summary>
Speculatively typechecks a proposed single-file patch against a captured compiler log (a <c>.complog</c>
or a binary log) WITHOUT building (C2). Rehydrates the compilations recorded in the log, replaces the
target file's syntax tree with the proposed content in memory, and returns the compiler diagnostics for
that document. This is the oracle-grade check answer on a machine that cannot restore or build: the
compilation comes from the bundle's portable compiler log, not a fresh build.
</summary>
<param name="logPath">The path to the portable compiler log (or binary log) to rehydrate.</param>
<param name="relativeFilePath">The repo-relative path of the file being changed.</param>
<param name="newContent">The proposed full new content of that file.</param>
<param name="cancellationToken">A token to cancel the check.</param>
<returns>The diagnostics for the changed document, or an abstention when the file is not in the log.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.MergeFragmentsToBundle(System.String,System.String,System.Threading.CancellationToken)">
<summary>
Merges per-project fragment binary logs into a version-2 bundle's inputs (G4): converts each fragment
binlog to a portable per-project compiler log under <paramref name="complogOutDir" /> (fail-closed
secret scanned, exactly as a direct capture) and returns the merged extracted graph. The caller
assembles the bundle from the written complogs and the returned graph. Fails closed: any secret finding
or scan error deletes every written complog and returns a failure, so a merged bundle never ships a
secret a fragment exposed.
</summary>
<param name="fragmentsDir">The directory holding per-project fragment binary logs (<c>*.binlog</c>).</param>
<param name="complogOutDir">The directory to write the per-project portable compiler logs to.</param>
<param name="cancellationToken">A token to cancel the merge.</param>
<returns>The merged graph, or a failure when no fragment recorded a C# compilation or a secret was found.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.MergeFragments(System.Collections.Generic.IReadOnlyList{System.String},System.Threading.CancellationToken)">
<summary>
Merges per-project capture fragments (G4): rehydrates each fragment log and unions the resulting
projects into one capture result, so a bundle assembled from fragments carries the same extracted graph
as a direct whole-solution capture. Each fragment is a per-project binary (or compiler) log; a fragment
that records no C# compilation contributes nothing. The union is deduplicated by
<see cref="P:Fuse.Indexing.CapturedProject.FilePath" /> then project name, so a fragment that a dependency build caused
to also record a referenced project does not double-count it.
</summary>
<param name="fragmentLogPaths">The per-project fragment log paths (binary or compiler logs).</param>
<param name="cancellationToken">A token to cancel the merge.</param>
<returns>The unioned capture result, or a failure when no fragment recorded a C# compilation.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.BuildCaptureRehydrator.RehydrateFromBinlog(System.String,System.Threading.CancellationToken)">
<summary>
Rehydrates the C# compilations recorded in a binary log. Exposed so a test can rehydrate a binlog it
produced without re-running a build.
</summary>
<param name="binlogPath">The path to the binary log.</param>
<param name="cancellationToken">A token to cancel the read.</param>
<returns>The capture result with one entry per rehydrated C# compilation.</returns>
</member>
<member name="T:Fuse.BuildCaptureWorker.ComplogSecretFinding">
<summary>
A secret found in a compiler-log artifact that would ship in a capture bundle (C2): the match class and the
labelled artifact it was found in. The secret value itself is never carried, so a fail-closed report names
what class of secret was matched and where, never the secret.
</summary>
<param name="Kind">The secret class (for example <c>connection-string</c>, <c>high-entropy</c>), never the value.</param>
<param name="Label">The artifact the match was in (for example <c>generated:Foo.g.cs</c> or <c>additionalfile:appsettings.json</c>).</param>
</member>
<member name="M:Fuse.BuildCaptureWorker.ComplogSecretFinding.#ctor(System.String,System.String)">
<summary>
A secret found in a compiler-log artifact that would ship in a capture bundle (C2): the match class and the
labelled artifact it was found in. The secret value itself is never carried, so a fail-closed report names
what class of secret was matched and where, never the secret.
</summary>
<param name="Kind">The secret class (for example <c>connection-string</c>, <c>high-entropy</c>), never the value.</param>
<param name="Label">The artifact the match was in (for example <c>generated:Foo.g.cs</c> or <c>additionalfile:appsettings.json</c>).</param>
</member>
<member name="P:Fuse.BuildCaptureWorker.ComplogSecretFinding.Kind">
<summary>The secret class (for example <c>connection-string</c>, <c>high-entropy</c>), never the value.</summary>
</member>
<member name="P:Fuse.BuildCaptureWorker.ComplogSecretFinding.Label">
<summary>The artifact the match was in (for example <c>generated:Foo.g.cs</c> or <c>additionalfile:appsettings.json</c>).</summary>
</member>
<member name="T:Fuse.BuildCaptureWorker.ComplogSecretScanner">
<summary>
Fail-closed secret scanner for the portable compiler log that a capture bundle ships (C2). It scans the
build-injected artifacts a bundle newly exposes - the generated documents (source generators can embed a
value read at build time) and the additional files the compilation carried (configuration such as
appsettings that a build includes) - with the same <see cref="T:Fuse.Reduction.Security.ISecretRedactor" /> the reduction pipeline
uses. The repository's own source is not scanned: it is the repository's pre-existing exposure (already in
version control), not a new bundle exposure, and scanning it would false-positive on a repository's own
secret-handling test data.
</summary>
<remarks>
The scan is fail-closed by contract: any finding, or any error that prevents a complete scan, must be
treated by the caller as "do not ship the bundle". The scanner returns the first finding (a single match is
enough to fail the capture), naming its class and artifact but never the value.
</remarks>
</member>
<member name="M:Fuse.BuildCaptureWorker.ComplogSecretScanner.FindFirstSecret(System.Collections.Generic.IEnumerable{System.ValueTuple{System.String,System.String}},Fuse.Reduction.Security.ISecretRedactor)">
<summary>
Scans a sequence of labelled texts for secrets, returning the first finding or null when all are clean.
Pure and deterministic - the unit-testable core, independent of any compiler log.
</summary>
<param name="texts">The labelled texts to scan (label plus content).</param>
<param name="redactor">The secret detector.</param>
<returns>The first secret finding (class plus label), or null when no text contains a secret.</returns>
</member>
<member name="M:Fuse.BuildCaptureWorker.ComplogSecretScanner.ScanCompilerLog(System.String,Fuse.Reduction.Security.ISecretRedactor,System.Threading.CancellationToken)">
<summary>
Scans the generated documents and additional files recorded in a compiler log for secrets. Reads the
compiler log (a binlog or complog) and gathers, across each C# compiler call, the generated syntax
trees and additional-text contents, then delegates to <see cref="M:Fuse.BuildCaptureWorker.ComplogSecretScanner.FindFirstSecret(System.Collections.Generic.IEnumerable{System.ValueTuple{System.String,System.String}},Fuse.Reduction.Security.ISecretRedactor)" />.
</summary>
<param name="compilerLogPath">The path to the compiler log (a <c>.complog</c> or <c>.binlog</c>).</param>
<param name="redactor">The secret detector; defaults to the shipped <see cref="T:Fuse.Reduction.Security.DefaultSecretRedactor" />.</param>
<param name="cancellationToken">A token to cancel the scan.</param>
<returns>The first secret finding, or null when the scanned artifacts are clean.</returns>
</member>
</members>
</doc>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

<?xml version="1.0"?>
<doc>
<assembly>
<name>Fuse.Plugins.Abstractions</name>
</assembly>
<members>
<member name="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1">
<summary>
Resolves a single <typeparamref name="TCapability"/> implementation by file extension.
Last registration for a given extension wins, allowing a specialized module to override a default.
</summary>
<typeparam name="TCapability">The language capability type to resolve, such as <see cref="T:Fuse.Plugins.Abstractions.Reducers.IContentReducer" />.</typeparam>
</member>
<member name="M:Fuse.Plugins.Abstractions.CapabilityRegistry`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
<summary>
Initializes a new instance of the <see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1"/> class.
</summary>
<param name="capabilities">Registered capability implementations.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.CapabilityRegistry`1.TryResolve(System.String)">
<summary>
Resolves the registered capability for a file extension.
</summary>
<param name="extension">The file extension to resolve, including the leading dot. Matched case-insensitively.</param>
<returns>
The capability registered for <paramref name="extension" />, or <see langword="null" /> when none is
registered.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Dependencies.IDependencyExtractor">
<summary>
Extracts referenced type names from source content for dependency-graph construction.
</summary>
<remarks>
Produces a best-effort approximation: it may miss dynamically dispatched dependencies and may
produce false positives from type names appearing in comments or strings. Resolved by file extension
through <see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1" /> using
<see cref="P:Fuse.Plugins.Abstractions.ILanguageCapability.SupportedExtensions" />. Implementations must be stateless to allow
concurrent extraction across files.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Dependencies.IDependencyExtractor.ExtractReferencedTypes(System.String)">
<summary>
Extracts the type names referenced by the content.
</summary>
<param name="content">
Source content to scan. Must not be <see langword="null" />; an empty string yields an empty list.
</param>
<returns>
The distinct referenced type names found, as a best-effort approximation. Empty when no references
are detected.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Dependencies.ITypeNameLocator">
<summary>
Locates type definitions within source content for a specific language, mapping declared types to
the file that declares them.
</summary>
<remarks>
Resolved by file extension through <see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1" /> using
<see cref="P:Fuse.Plugins.Abstractions.ILanguageCapability.SupportedExtensions" />. Used alongside <see cref="T:Fuse.Plugins.Abstractions.Dependencies.IDependencyExtractor" />
to index which file owns each type when building a dependency graph. Implementations must be stateless
to allow concurrent scanning across files.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Dependencies.ITypeNameLocator.ContainsTypeDefinition(System.String,System.String)">
<summary>
Determines whether the content declares a type with the given name.
</summary>
<param name="content">Source content to scan. Must not be <see langword="null" />.</param>
<param name="typeName">Simple name of the type to look for.</param>
<returns>
<see langword="true" /> when the content declares a type named <paramref name="typeName" />;
otherwise <see langword="false" />.
</returns>
</member>
<member name="M:Fuse.Plugins.Abstractions.Dependencies.ITypeNameLocator.ExtractDefinedTypes(System.String)">
<summary>
Extracts the names of all types defined in the content for dependency-graph indexing.
</summary>
<param name="content">
Source content to scan. Must not be <see langword="null" />; an empty string yields an empty list.
</param>
<returns>The simple names of every type declared in the content. Empty when none are found.</returns>
</member>
<member name="M:Fuse.Plugins.Abstractions.Dependencies.ITypeNameLocator.ExtractDefinedSymbols(System.String)">
<summary>
Extracts declared symbol names (types and, where the language allows, members such as methods and
properties) for relevance ranking. The default returns only the declared types.
</summary>
<param name="content">
Source content to scan. Must not be <see langword="null" />; an empty string yields an empty list.
</param>
<returns>
The declared symbol names used to populate the high-weight symbol field of the relevance index.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.ILanguageCapability">
<summary>
Base contract for any per-language plugin resolved by file extension through
<see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1" />.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.ILanguageCapability.SupportedExtensions">
<summary>
The file extensions this capability handles, each including the leading dot (for example, <c>.cs</c>).
Matched case-insensitively during resolution.
</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Maps.CsprojProjectReferenceParser">
<summary>
Extracts <c>ProjectReference</c> include paths from raw <c>.csproj</c> text.
</summary>
<remarks>
References resolved through imported targets, MSBuild properties, or globs are not recovered; only
literal <c>&lt;ProjectReference Include="..."&gt;</c> elements are matched.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Maps.CsprojProjectReferenceParser.EnumerateIncludePaths(System.String)">
<summary>
Returns the include path of every <c>ProjectReference</c> element in the supplied content.
</summary>
<param name="csprojContent">The raw <c>.csproj</c> file text.</param>
<returns>Normalized forward-slash include paths, in document order.</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Maps.IProjectGraphGenerator">
<summary>
Generates a compact solution and project reference graph from .NET project files.
</summary>
<remarks>
Optional capability. When registered, the orchestrator prepends the generated graph to output only
for files whose extension is listed in <see cref="P:Fuse.Plugins.Abstractions.Maps.IProjectGraphGenerator.SupportedExtensions" />.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Maps.IProjectGraphGenerator.SupportedExtensions">
<summary>
The file extensions this generator can scan, each including the leading dot (for example, <c>.csproj</c>).
</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Maps.IProjectGraphGenerator.Generate(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Builds a compact project dependency table from the supplied file contents.
</summary>
<param name="fileContents">
Normalized file paths mapped to raw source content. Only entries with a supported extension are scanned.
</param>
<returns>
A rendered project dependency table ready to prepend to output. Empty when no project references are found.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Maps.IRouteMapGenerator">
<summary>
Generates a compact HTTP route map from ASP.NET source files.
</summary>
<remarks>
Optional capability. When registered, the orchestrator prepends the generated map to output only for
files whose extension is listed in <see cref="P:Fuse.Plugins.Abstractions.Maps.IRouteMapGenerator.SupportedExtensions" />.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Maps.IRouteMapGenerator.SupportedExtensions">
<summary>
The file extensions this generator can scan, each including the leading dot (for example, <c>.cs</c>).
</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Maps.IRouteMapGenerator.Generate(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Builds a compact verb/path/handler table from the supplied file contents.
</summary>
<param name="fileContents">
Normalized file paths mapped to raw source content. Only entries with a supported extension are scanned.
</param>
<returns>
A rendered table of HTTP verb, path, and handler rows ready to prepend to output. Empty when no routes
are found.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Markers.ISemanticMarkerGenerator">
<summary>
Generates structural <see cref="T:Fuse.Plugins.Abstractions.Markers.SemanticMarker" /> annotations describing the types declared in
source content.
</summary>
<remarks>
Resolved by file extension through <see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1" /> using
<see cref="P:Fuse.Plugins.Abstractions.ILanguageCapability.SupportedExtensions" />. Implementations must be stateless to allow
concurrent generation across files.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Markers.ISemanticMarkerGenerator.GenerateMarkers(System.String)">
<summary>
Generates one semantic marker per type declaration found in the content.
</summary>
<param name="content">
Source content to analyze. Must not be <see langword="null" />; an empty string yields an empty list.
</param>
<returns>
One <see cref="T:Fuse.Plugins.Abstractions.Markers.SemanticMarker" /> per type declaration found, in declaration order. Empty when the
content declares no types.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Markers.SemanticMarker">
<summary>
A structural annotation for a single type declaration, surfaced to consumers as an inline
<c>&lt;!-- fuse:type ... --&gt;</c> comment.
</summary>
<param name="TypeName">Simple name of the declared type.</param>
<param name="Kind">Declaration kind, such as <c>class</c>, <c>interface</c>, <c>record</c>, or <c>struct</c>.</param>
<param name="Implements">Base type and interface names the type derives from or implements.</param>
<param name="DependsOn">Referenced type names that the type depends on.</param>
<param name="ConstructorParameterTypes">Parameter type names of the type's primary or first constructor.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.Markers.SemanticMarker.#ctor(System.String,System.String,System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyList{System.String},System.Collections.Generic.IReadOnlyList{System.String})">
<summary>
A structural annotation for a single type declaration, surfaced to consumers as an inline
<c>&lt;!-- fuse:type ... --&gt;</c> comment.
</summary>
<param name="TypeName">Simple name of the declared type.</param>
<param name="Kind">Declaration kind, such as <c>class</c>, <c>interface</c>, <c>record</c>, or <c>struct</c>.</param>
<param name="Implements">Base type and interface names the type derives from or implements.</param>
<param name="DependsOn">Referenced type names that the type depends on.</param>
<param name="ConstructorParameterTypes">Parameter type names of the type's primary or first constructor.</param>
</member>
<member name="P:Fuse.Plugins.Abstractions.Markers.SemanticMarker.TypeName">
<summary>Simple name of the declared type.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Markers.SemanticMarker.Kind">
<summary>Declaration kind, such as <c>class</c>, <c>interface</c>, <c>record</c>, or <c>struct</c>.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Markers.SemanticMarker.Implements">
<summary>Base type and interface names the type derives from or implements.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Markers.SemanticMarker.DependsOn">
<summary>Referenced type names that the type depends on.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Markers.SemanticMarker.ConstructorParameterTypes">
<summary>Parameter type names of the type's primary or first constructor.</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Markers.SemanticMarker.ToComment">
<summary>
Renders the marker as a single-line XML comment suitable for prepending to a file entry.
</summary>
<returns>
A <c>&lt;!-- fuse:type ... --&gt;</c> comment. Empty list fields are rendered as the literal <c>none</c>.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Options.ReductionLevel">
<summary>
The single dial controlling how aggressively C# source is reduced. Each level expands to a fixed set
of C# transform decisions (see <see cref="T:Fuse.Plugins.Abstractions.Options.ReductionOptions" />), replacing the former cluster of
overlapping per-transform booleans.
</summary>
<remarks>
<see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.None" />, <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard" />, and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive" /> form an increasing
text-reduction scale that preserves source shape. <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Skeleton" /> and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.PublicApi" />
are a different representation: structural signatures with bodies removed, which is why they are not a
simple continuation of the text scale. Orthogonal concerns (redaction, minification, route map, project
graph, semantic markers, generated-code collapse) remain separate flags on <see cref="T:Fuse.Plugins.Abstractions.Options.ReductionOptions" />.
</remarks>
</member>
<member name="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.None">
<summary>No C# structural reduction. Whitespace normalization and the orthogonal flags still apply.</summary>
</member>
<member name="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard">
<summary>Removes C# comments, <c>using</c> directives, namespace wrappers, and <c>#region</c> directives.</summary>
</member>
<member name="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive">
<summary>The <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard" /> removals plus aggressive whitespace and syntax compression.</summary>
</member>
<member name="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Skeleton">
<summary>Emits structural skeletons (type and member signatures) with bodies removed.</summary>
</member>
<member name="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.PublicApi">
<summary>Like <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Skeleton" /> but keeps only public and protected members.</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Options.ReductionOptions">
<summary>
Configuration options for the content reduction pipeline.
</summary>
<remarks>
The single <see cref="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.Level" /> dial controls C# structural reduction intensity; the per-transform
decisions (comment, using, namespace, and region removal, aggressive compression, skeleton and
public-API extraction) are derived from it. The remaining flags are orthogonal to that scale and
control whitespace normalization, minification for HTML, Razor, and XML, redaction, and the optional
prepended sections (route map, project graph, pattern summary, semantic markers).
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.Level">
<summary>
The C# structural reduction level. Drives the derived C# transform flags.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.TrimContent">
<summary>
Gets a value indicating whether leading and trailing whitespace is trimmed from each line.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.UseCondensing">
<summary>
Gets a value indicating whether blank lines are collapsed.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.MinifyXmlFiles">
<summary>
Gets a value indicating whether XML-based files are minified.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.MinifyHtmlAndRazor">
<summary>
Gets a value indicating whether HTML and Razor view files are minified.
</summary>
<remarks>
<c>.razor</c> files are always minified regardless of this setting.
<c>.cshtml</c>, <c>.html</c>, and <c>.htm</c> files respect this flag.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.IncludeSemanticMarkers">
<summary>
Gets a value indicating whether structural annotation comments are prepended to file entries.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.IncludePatternSummary">
<summary>
Gets a value indicating whether a cross-codebase pattern summary is detected and appended.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.EnableRedaction">
<summary>
Gets a value indicating whether secrets are redacted before token counting.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.IncludeRedactReport">
<summary>
Gets a value indicating whether a redaction count summary is appended to output.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.IncludeRouteMap">
<summary>
Gets a value indicating whether an ASP.NET route map is prepended to output.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.IncludeProjectGraph">
<summary>
Gets a value indicating whether a solution/project graph is prepended to output.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.CollapseGeneratedCode">
<summary>
Gets a value indicating whether EF Core migrations, model snapshots, and other machine-generated C#
are collapsed to their signatures, dropping the large auto-generated method bodies.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.RemoveCSharpComments">
<summary>C# comments are removed at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard" /> and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive" />.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.RemoveCSharpUsings">
<summary>C# <c>using</c> directives are removed at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard" /> and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive" />.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.RemoveCSharpNamespaces">
<summary>C# namespace declarations are removed at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard" /> and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive" />.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.RemoveCSharpRegions">
<summary>C# <c>#region</c> directives are removed at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Standard" /> and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive" />.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.AggressiveCSharpReduction">
<summary>Aggressive whitespace and syntax compression runs only at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Aggressive" />.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.SkeletonMode">
<summary>Skeleton extraction runs at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.Skeleton" /> and <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.PublicApi" />.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Options.ReductionOptions.PublicApiMode">
<summary>Skeleton extraction is restricted to public and protected members only at <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.PublicApi" />.</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Options.ReductionOptions.#ctor(Fuse.Plugins.Abstractions.Options.ReductionLevel,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:Fuse.Plugins.Abstractions.Options.ReductionOptions" /> record.
</summary>
<param name="level">The C# structural reduction level. Defaults to <see cref="F:Fuse.Plugins.Abstractions.Options.ReductionLevel.None" />.</param>
<param name="trimContent">Whether per-line leading and trailing whitespace is trimmed.</param>
<param name="useCondensing">Whether blank lines are collapsed.</param>
<param name="minifyXmlFiles">Whether XML-based files are minified.</param>
<param name="minifyHtmlAndRazor">Whether HTML and Razor view files are minified.</param>
<param name="includeSemanticMarkers">Whether structural annotation comments are prepended.</param>
<param name="includePatternSummary">Whether a cross-codebase pattern summary is appended.</param>
<param name="enableRedaction">Whether secrets are redacted before token counting.</param>
<param name="includeRedactReport">Whether a redaction count summary is appended.</param>
<param name="includeRouteMap">Whether an ASP.NET route map is prepended.</param>
<param name="includeProjectGraph">Whether a solution/project graph is prepended.</param>
<param name="collapseGeneratedCode">Whether machine-generated C# bodies are collapsed to signatures.</param>
</member>
<member name="T:Fuse.Plugins.Abstractions.Outline.ISymbolChunkExtractor">
<summary>
Splits a source file into member-level <see cref="T:Fuse.Plugins.Abstractions.Outline.SymbolChunk" />s: one chunk per declared member, each
carrying its full text and line span. This is the capability behind symbol-level retrieval and packing
and behind near-duplicate body deduplication, both of which need member body spans the outline does not
expose.
</summary>
<remarks>
Roslyn supplies member-level chunks for C#; other languages may register their own extractors.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Outline.ISymbolChunkExtractor.ExtractChunks(System.String)">
<summary>
Extracts the member-level chunks from the supplied content.
</summary>
<param name="content">
Source content to split. Must not be <see langword="null" />; an empty string yields an empty list.
</param>
<returns>
One <see cref="T:Fuse.Plugins.Abstractions.Outline.SymbolChunk" /> per declared member, in declaration order. Empty when the content
declares no members the extractor can resolve.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Outline.ISymbolOutlineExtractor">
<summary>
Extracts a structural outline (declared types and their members) from a source file, used to build a
cheap table-of-contents view that lets an agent see what a file contains before paying to read it.
</summary>
<remarks>
This capability is distinct from <see cref="T:Fuse.Plugins.Abstractions.Skeleton.ISkeletonExtractor" />: a skeleton renders
signature text suitable for inclusion in fused output, whereas an outline returns structured names for a
navigation index. A regex implementation is best-effort and may miss members in code with heavy
conditional compilation; a semantic implementation registered later overrides it by extension.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Outline.ISymbolOutlineExtractor.ExtractOutline(System.String)">
<summary>
Extracts the declared types and their members from the supplied content.
</summary>
<param name="content">
Source content to scan. Must not be <see langword="null" />; an empty string yields an empty list.
</param>
<returns>
One <see cref="T:Fuse.Plugins.Abstractions.Outline.OutlineSymbol" /> per declared type, in declaration order. Empty when the content
declares no types.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Outline.ISymbolSliceExtractor">
<summary>
Reduces a source file to a single named member in full plus the signatures of everything else, so a
large file can be scoped to just the member a task is about (for example <c>OrderService.Charge</c> and
the shell of its type, not all of its other methods).
</summary>
<remarks>
This is the capability behind symbol-level scoping. A precise (semantic) implementation is required to
resolve member boundaries reliably; the regex tier does not provide one, so symbol-level scoping is part
of the opt-in precision tier.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Outline.ISymbolSliceExtractor.ExtractSlice(System.String,System.String)">
<summary>
Returns a copy of the content in which only members named <paramref name="memberName" /> keep their
bodies and every other member is reduced to its signature.
</summary>
<param name="content">The source content to slice. Must not be <see langword="null" />.</param>
<param name="memberName">The simple name of the member to keep in full (may match several overloads).</param>
<returns>
The sliced content, or <see langword="null" /> when the content declares no member with that name,
so the caller can fall back to the whole file.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Outline.OutlineSymbol">
<summary>
A single declared symbol in a source file's structural outline: a type together with the names of the
members it declares.
</summary>
<param name="Kind">
The declaration keyword for the symbol, such as <c>class</c>, <c>interface</c>, <c>record</c>,
<c>struct</c>, or <c>enum</c>. Languages that do not distinguish kinds may use a single label.
</param>
<param name="Name">The simple (unqualified) name of the type.</param>
<param name="Members">
The simple names of members declared directly on the type (methods, properties, enum members), in
declaration order. Empty when the type declares no members or the extractor cannot resolve them.
</param>
<remarks>
An outline is a navigation aid, not a precise API surface: a best-effort extractor may omit members it
cannot resolve and a precise extractor may include accessibility the outline does not record. Consumers
should treat the member list as indicative rather than authoritative.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Outline.OutlineSymbol.#ctor(System.String,System.String,System.Collections.Generic.IReadOnlyList{System.String})">
<summary>
A single declared symbol in a source file's structural outline: a type together with the names of the
members it declares.
</summary>
<param name="Kind">
The declaration keyword for the symbol, such as <c>class</c>, <c>interface</c>, <c>record</c>,
<c>struct</c>, or <c>enum</c>. Languages that do not distinguish kinds may use a single label.
</param>
<param name="Name">The simple (unqualified) name of the type.</param>
<param name="Members">
The simple names of members declared directly on the type (methods, properties, enum members), in
declaration order. Empty when the type declares no members or the extractor cannot resolve them.
</param>
<remarks>
An outline is a navigation aid, not a precise API surface: a best-effort extractor may omit members it
cannot resolve and a precise extractor may include accessibility the outline does not record. Consumers
should treat the member list as indicative rather than authoritative.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.OutlineSymbol.Kind">
<summary>
The declaration keyword for the symbol, such as <c>class</c>, <c>interface</c>, <c>record</c>,
<c>struct</c>, or <c>enum</c>. Languages that do not distinguish kinds may use a single label.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.OutlineSymbol.Name">
<summary>The simple (unqualified) name of the type.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.OutlineSymbol.Members">
<summary>
The simple names of members declared directly on the type (methods, properties, enum members), in
declaration order. Empty when the type declares no members or the extractor cannot resolve them.
</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Outline.SymbolChunk">
<summary>
A single member-level slice of a source file: one declared member together with its full text and the
line range it occupies. Chunks are the unit of symbol-level retrieval and packing, where selection moves
from whole files to the individual members a task needs.
</summary>
<param name="SymbolKind">
The member kind, such as <c>method</c>, <c>property</c>, <c>constructor</c>, <c>field</c>, <c>event</c>,
or <c>enum-member</c>. Languages that do not distinguish kinds may use a single label.
</param>
<param name="SymbolName">The simple (unqualified) name of the member.</param>
<param name="ParentType">
The simple name of the type that declares the member, or <see langword="null" /> when the member is not
nested in a type.
</param>
<param name="Content">
The member's source text, including its signature and body, as a standalone fragment that parses on its
own. Used both as the indexed body and as the text inlined into a thin host skeleton.
</param>
<param name="StartLine">The 1-based line at which the member begins, inclusive.</param>
<param name="EndLine">The 1-based line at which the member ends, inclusive.</param>
<param name="StableId">
A collision-free identity for the member: namespace, the full containing-type chain (with generic
arity), the member name, and for methods and constructors the generic arity and parameter type list.
Unlike <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" /> it distinguishes overloads, nested types that share a simple parent
name, the same member name across namespaces, and members of partial classes, so member operations
(selection, thin-skeleton assembly, body deduplication, slicing) key on it rather than on the
display name. When an extractor cannot compute the components it falls back to <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" />.
</param>
<remarks>
A precise (semantic) extractor resolves member boundaries from a parse tree; a regex extractor produces
coarser but coherent boundaries by brace-depth scanning and may merge members it cannot separate. Both
guarantee that <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.Content" /> for a method or property body is independently parseable, which the
body-integrity check relies on.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Outline.SymbolChunk.#ctor(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String)">
<summary>
A single member-level slice of a source file: one declared member together with its full text and the
line range it occupies. Chunks are the unit of symbol-level retrieval and packing, where selection moves
from whole files to the individual members a task needs.
</summary>
<param name="SymbolKind">
The member kind, such as <c>method</c>, <c>property</c>, <c>constructor</c>, <c>field</c>, <c>event</c>,
or <c>enum-member</c>. Languages that do not distinguish kinds may use a single label.
</param>
<param name="SymbolName">The simple (unqualified) name of the member.</param>
<param name="ParentType">
The simple name of the type that declares the member, or <see langword="null" /> when the member is not
nested in a type.
</param>
<param name="Content">
The member's source text, including its signature and body, as a standalone fragment that parses on its
own. Used both as the indexed body and as the text inlined into a thin host skeleton.
</param>
<param name="StartLine">The 1-based line at which the member begins, inclusive.</param>
<param name="EndLine">The 1-based line at which the member ends, inclusive.</param>
<param name="StableId">
A collision-free identity for the member: namespace, the full containing-type chain (with generic
arity), the member name, and for methods and constructors the generic arity and parameter type list.
Unlike <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" /> it distinguishes overloads, nested types that share a simple parent
name, the same member name across namespaces, and members of partial classes, so member operations
(selection, thin-skeleton assembly, body deduplication, slicing) key on it rather than on the
display name. When an extractor cannot compute the components it falls back to <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" />.
</param>
<remarks>
A precise (semantic) extractor resolves member boundaries from a parse tree; a regex extractor produces
coarser but coherent boundaries by brace-depth scanning and may merge members it cannot separate. Both
guarantee that <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.Content" /> for a method or property body is independently parseable, which the
body-integrity check relies on.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.SymbolKind">
<summary>
The member kind, such as <c>method</c>, <c>property</c>, <c>constructor</c>, <c>field</c>, <c>event</c>,
or <c>enum-member</c>. Languages that do not distinguish kinds may use a single label.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.SymbolName">
<summary>The simple (unqualified) name of the member.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.ParentType">
<summary>
The simple name of the type that declares the member, or <see langword="null" /> when the member is not
nested in a type.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.Content">
<summary>
The member's source text, including its signature and body, as a standalone fragment that parses on its
own. Used both as the indexed body and as the text inlined into a thin host skeleton.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.StartLine">
<summary>The 1-based line at which the member begins, inclusive.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.EndLine">
<summary>The 1-based line at which the member ends, inclusive.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.StableId">
<summary>
A collision-free identity for the member: namespace, the full containing-type chain (with generic
arity), the member name, and for methods and constructors the generic arity and parameter type list.
Unlike <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" /> it distinguishes overloads, nested types that share a simple parent
name, the same member name across namespaces, and members of partial classes, so member operations
(selection, thin-skeleton assembly, body deduplication, slicing) key on it rather than on the
display name. When an extractor cannot compute the components it falls back to <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" />.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName">
<summary>
The fully qualified member name (<c>ParentType.SymbolName</c>), or the simple name when the member
has no parent type. Intended for display (provenance, markers); use <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.Identity" /> to key
member operations, since <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" /> collides for overloads and like-named members.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.Identity">
<summary>
The collision-free identity used to key member operations: <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.StableId" /> when the extractor
computed one, otherwise <see cref="P:Fuse.Plugins.Abstractions.Outline.SymbolChunk.QualifiedName" />.
</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Patterns.DetectedPattern">
<summary>
A detected cross-cutting code pattern, produced by an <see cref="T:Fuse.Plugins.Abstractions.Patterns.IPatternDetector" />.
</summary>
<param name="PatternName">Display name of the detected pattern.</param>
<param name="Summary">Human-readable description of what was detected.</param>
<param name="OccurrenceCount">Number of occurrences found across the fused files.</param>
<param name="Examples">Representative example snippets or locations illustrating the pattern.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.DetectedPattern.#ctor(System.String,System.String,System.Int32,System.Collections.Generic.IReadOnlyList{System.String})">
<summary>
A detected cross-cutting code pattern, produced by an <see cref="T:Fuse.Plugins.Abstractions.Patterns.IPatternDetector" />.
</summary>
<param name="PatternName">Display name of the detected pattern.</param>
<param name="Summary">Human-readable description of what was detected.</param>
<param name="OccurrenceCount">Number of occurrences found across the fused files.</param>
<param name="Examples">Representative example snippets or locations illustrating the pattern.</param>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.DetectedPattern.PatternName">
<summary>Display name of the detected pattern.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.DetectedPattern.Summary">
<summary>Human-readable description of what was detected.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.DetectedPattern.OccurrenceCount">
<summary>Number of occurrences found across the fused files.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.DetectedPattern.Examples">
<summary>Representative example snippets or locations illustrating the pattern.</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot">
<summary>
Minimal file snapshot supplied to an <see cref="T:Fuse.Plugins.Abstractions.Patterns.IPatternDetector" /> for cross-file pattern detection.
</summary>
<param name="NormalizedPath">Forward-slash normalized path of the file relative to the source root.</param>
<param name="Content">Reduced content of the file as it appears in the fused output.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot.#ctor(System.String,System.String)">
<summary>
Minimal file snapshot supplied to an <see cref="T:Fuse.Plugins.Abstractions.Patterns.IPatternDetector" /> for cross-file pattern detection.
</summary>
<param name="NormalizedPath">Forward-slash normalized path of the file relative to the source root.</param>
<param name="Content">Reduced content of the file as it appears in the fused output.</param>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot.NormalizedPath">
<summary>Forward-slash normalized path of the file relative to the source root.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot.Content">
<summary>Reduced content of the file as it appears in the fused output.</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Patterns.IPatternDetector">
<summary>
Detects a single cross-cutting code pattern across the full set of fused files.
</summary>
<remarks>
Detection is heuristic and scans reduced content rather than a parsed model, so results favor recall
over precision and may include false positives. See <see cref="T:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase" /> for the
batch-accumulation base class implementations typically derive from.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.IPatternDetector.PatternName">
<summary>
The display name of the pattern, used to label the detected summary.
</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.IPatternDetector.Detect(System.Collections.Generic.IReadOnlyList{Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot})">
<summary>
Detects the pattern across the supplied fused files.
</summary>
<param name="fusedFiles">The fused file snapshots to analyze.</param>
<returns>
A <see cref="T:Fuse.Plugins.Abstractions.Patterns.DetectedPattern" /> summarizing the occurrences, or <see langword="null" /> when the
pattern is absent.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase">
<summary>
Base class for <see cref="T:Fuse.Plugins.Abstractions.Patterns.IPatternDetector" /> implementations that detect a pattern by accumulating
signals across files in a single pass.
</summary>
<remarks>
The accumulation lifecycle runs in three phases per detection: reset
(<see cref="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.ResetAccumulation" />), one analyze call per file (<see cref="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.AccumulateFile(Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot)" />), then a
finalize call (<see cref="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.CompleteAccumulation" />). The public phase methods are also exposed
individually so a host can drive the lifecycle while streaming files, reusing one detector instance
across runs. Detectors are therefore stateful and must not be invoked concurrently.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.PatternName">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.Detect(System.Collections.Generic.IReadOnlyList{Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot})">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.ResetAccumulation">
<summary>
Resets per-run accumulation state before a new batch begins.
</summary>
<remarks>Call before the first <see cref="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.AccumulateFile(Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot)" /> of each detection run.</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.AccumulateFile(Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot)">
<summary>
Accumulates pattern signals from a single fused file snapshot.
</summary>
<param name="file">The fused file snapshot to analyze and fold into accumulation state.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.CompleteAccumulation">
<summary>
Builds the final detected pattern from the accumulated state.
</summary>
<returns>
The <see cref="T:Fuse.Plugins.Abstractions.Patterns.DetectedPattern" /> for the run, or <see langword="null" /> when the pattern was not
detected.
</returns>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.ResetInternal">
<summary>
Resets the derived detector's internal accumulation state.
</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.AnalyzeFile(Fuse.Plugins.Abstractions.Patterns.FusedFileSnapshot)">
<summary>
Analyzes a single file snapshot and updates the derived detector's accumulation state.
</summary>
<param name="file">The fused file snapshot to analyze.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.Patterns.PatternDetectorBase.BuildResult">
<summary>
Builds the detected pattern from the derived detector's accumulated state.
</summary>
<returns>
The <see cref="T:Fuse.Plugins.Abstractions.Patterns.DetectedPattern" /> for the run, or <see langword="null" /> when the pattern was not
detected.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Reducers.IContentReducer">
<summary>
Reduces file content for a specific file extension, applying language-aware transformations
such as comment stripping, whitespace condensing, or structural compression.
</summary>
<remarks>
A reducer is resolved by file extension through <see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1" /> using
<see cref="P:Fuse.Plugins.Abstractions.ILanguageCapability.SupportedExtensions" />. Implementations must be pure and stateless:
reduction may run concurrently across files on multiple threads.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Reducers.IContentReducer.Reduce(System.String,Fuse.Plugins.Abstractions.Options.ReductionOptions)">
<summary>
Applies extension-specific reduction to the supplied content.
</summary>
<param name="content">
The normalized file content to reduce. Must not be <see langword="null" />; an empty string
yields an empty result.
</param>
<param name="options">The reduction options governing which transformations are applied for the current run.</param>
<returns>
The reduced content. Returns the input unchanged when no enabled option applies to this reducer.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Reducers.IGeneratedCodeDetector">
<summary>
Detects machine-generated C# (for example EF Core migrations and model snapshots) and optionally
collapses generated method bodies to signatures.
</summary>
<remarks>
Host and reduction paths resolve this capability through dependency injection so callers outside the
C# plugin do not reference the collapser implementation directly.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Reducers.IGeneratedCodeDetector.IsGenerated(System.String)">
<summary>
Returns whether the content looks like machine-generated C# that is worth flagging or collapsing.
</summary>
<param name="content">The C# source to inspect.</param>
<returns><see langword="true" /> when the file appears to be generated.</returns>
</member>
<member name="M:Fuse.Plugins.Abstractions.Reducers.IGeneratedCodeDetector.Collapse(System.String)">
<summary>
Collapses generated method bodies when the content is recognized as generated; otherwise returns
the content unchanged.
</summary>
<param name="content">The C# source to collapse.</param>
<returns>The collapsed content, or the original when it is not recognized as generated.</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Scoping.RankedFile">
<summary>
A ranked file and its relevance score.
</summary>
<param name="Path">The normalized relative path of the ranked file.</param>
<param name="Score">The relevance score; higher is more relevant.</param>
</member>
<member name="M:Fuse.Plugins.Abstractions.Scoping.RankedFile.#ctor(System.String,System.Double)">
<summary>
A ranked file and its relevance score.
</summary>
<param name="Path">The normalized relative path of the ranked file.</param>
<param name="Score">The relevance score; higher is more relevant.</param>
</member>
<member name="P:Fuse.Plugins.Abstractions.Scoping.RankedFile.Path">
<summary>The normalized relative path of the ranked file.</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Scoping.RankedFile.Score">
<summary>The relevance score; higher is more relevant.</summary>
</member>
<member name="T:Fuse.Plugins.Abstractions.Skeleton.ISkeletonExtractor">
<summary>
Extracts a structural skeleton from reduced source content, retaining type and member signatures
while suppressing method bodies.
</summary>
<remarks>
Resolved by file extension through <see cref="T:Fuse.Plugins.Abstractions.CapabilityRegistry`1" /> using
<see cref="P:Fuse.Plugins.Abstractions.ILanguageCapability.SupportedExtensions" />. Implementations must be stateless to allow
concurrent extraction across files.
</remarks>
</member>
<member name="M:Fuse.Plugins.Abstractions.Skeleton.ISkeletonExtractor.ExtractSkeleton(System.String,System.Boolean)">
<summary>
Extracts structural signatures from the supplied content, dropping implementation bodies.
</summary>
<param name="content">
Already-reduced source content. Must not be <see langword="null" />; an empty string yields an
empty result.
</param>
<param name="publicApiOnly">
When <see langword="true" />, emits only public and protected members; when <see langword="false" />,
emits members of all accessibility levels.
</param>
<returns>
Skeleton content with method bodies suppressed. Returns content with no extractable structure unchanged.
</returns>
</member>
</members>
</doc>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

<?xml version="1.0"?>
<doc>
<assembly>
<name>Fuse.Plugins.Languages.CSharp.Roslyn</name>
</assembly>
<members>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.Extensions.RoslynServiceCollectionExtensions">
<summary>
Registers the Roslyn structural tier for C#.
</summary>
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.Extensions.RoslynServiceCollectionExtensions.AddCSharpRoslyn(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Registers Roslyn implementations of the C# skeleton, dependency, type-name, outline, slice, chunk,
route-map, and semantic-marker capabilities.
</summary>
<param name="services">The service collection to add the capabilities to.</param>
<returns>The same <paramref name="services" /> instance, to allow call chaining.</returns>
<remarks>
Call this after <c>AddCSharpLanguage</c> (typically via <c>AddFuse</c>) so Roslyn supplies
every structural capability for <c>.cs</c>.
</remarks>
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.Maps.RoslynRouteMapGenerator">
<summary>
Builds an HTTP route map from ASP.NET controller actions and minimal-API registrations in
<c>.cs</c> files using Roslyn syntax analysis.
</summary>
<remarks>
Attribute routes built from constants or interpolation are not resolved; verb-only actions fall back
to the handler name as the path. Rows are emitted in case-insensitive order inside a
<c>&lt;!-- fuse:route-map --&gt;</c> comment block.
</remarks>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.Maps.RoslynRouteMapGenerator.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.Maps.RoslynRouteMapGenerator.Generate(System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.Markers.RoslynSemanticMarkerGenerator">
<summary>
Generates one <see cref="T:Fuse.Plugins.Abstractions.Markers.SemanticMarker" /> per type declaration in <c>.cs</c> content using Roslyn
syntax analysis, capturing the type kind, implemented interfaces, constructor parameter types, and
inferred dependencies.
</summary>
<remarks>
The parser is error-tolerant, so skeleton and aggressively reduced content that is no longer
well-formed C# still yields markers from the partial tree. Record primary-constructor parameters are
not treated as constructor dependencies; that matches the prior regex generator.
</remarks>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.Markers.RoslynSemanticMarkerGenerator.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.Markers.RoslynSemanticMarkerGenerator.GenerateMarkers(System.String)">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynDependencyExtractor">
<summary>
Roslyn-based <see cref="T:Fuse.Plugins.Abstractions.Dependencies.IDependencyExtractor" />. Collects referenced type names from the parsed syntax
tree rather than by regex, so it captures references the regex extractor misses (return types, generic
arguments, object creations, base types, attributes) and does not create edges from text in comments or
strings, which the parser classifies as trivia.
</summary>
<remarks>
This is syntax-level, not full semantic binding: it identifies type-position identifiers without
resolving them across a compilation. It is a substantially more accurate approximation than the regex
extractor, not a guaranteed-complete call graph.
</remarks>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynDependencyExtractor.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynDependencyExtractor.ExtractReferencedTypes(System.String)">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynOutlineExtractor">
<summary>
Roslyn-based <see cref="T:Fuse.Plugins.Abstractions.Outline.ISymbolOutlineExtractor" />. Produces a precise type-and-member outline from the
parsed tree, attributing each member to its declaring type without the regex extractor's brace counting.
</summary>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynOutlineExtractor.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynOutlineExtractor.ExtractOutline(System.String)">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSkeletonExtractor">
<summary>
Roslyn-based <see cref="T:Fuse.Plugins.Abstractions.Skeleton.ISkeletonExtractor" />. Parses the C# syntax tree and removes member bodies,
keeping type and member signatures.
</summary>
<remarks>
Unlike the regex skeleton extractor, this works from a parsed tree, so conditional compilation, partial
classes, and braces inside strings do not desynchronize a depth counter. This is the fix for the
skeleton collapse the regex extractor exhibits on heavily conditional code.
</remarks>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSkeletonExtractor.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSkeletonExtractor.ExtractSkeleton(System.String,System.Boolean)">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSymbolChunkExtractor">
<summary>
Roslyn-based <see cref="T:Fuse.Plugins.Abstractions.Outline.ISymbolChunkExtractor" />. Produces one chunk per declared member from the parsed
tree, attributing each to its declaring type and recording its precise source span.
</summary>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSymbolChunkExtractor.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSymbolChunkExtractor.ExtractChunks(System.String)">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSymbolSliceExtractor">
<summary>
Roslyn-based <see cref="T:Fuse.Plugins.Abstractions.Outline.ISymbolSliceExtractor" />. Keeps the named member in full and reduces every other
member of the file to its signature.
</summary>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSymbolSliceExtractor.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynSymbolSliceExtractor.ExtractSlice(System.String,System.String)">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynTypeNameLocator">
<summary>
Roslyn-based <see cref="T:Fuse.Plugins.Abstractions.Dependencies.ITypeNameLocator" />. Locates declared types and members from the parsed syntax
tree, so partial classes and conditional compilation do not confuse declaration detection.
</summary>
</member>
<member name="P:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynTypeNameLocator.SupportedExtensions">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynTypeNameLocator.ContainsTypeDefinition(System.String,System.String)">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynTypeNameLocator.ExtractDefinedTypes(System.String)">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Languages.CSharp.Roslyn.RoslynTypeNameLocator.ExtractDefinedSymbols(System.String)">
<inheritdoc />
</member>
</members>
</doc>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

+1
-3

@@ -6,3 +6,2 @@ <?xml version="1.0" encoding="utf-8"?>

<Default Extension="a" ContentType="application/octet" />
<Default Extension="aar" ContentType="application/octet" />
<Default Extension="config" ContentType="application/octet" />

@@ -13,3 +12,2 @@ <Default Extension="dll" ContentType="application/octet" />

<Default Extension="json" ContentType="application/octet" />
<Default Extension="lib" ContentType="application/octet" />
<Default Extension="md" ContentType="application/octet" />

@@ -20,3 +18,3 @@ <Default Extension="nuspec" ContentType="application/octet" />

<Default Extension="xml" ContentType="application/octet" />
<Default Extension="zip" ContentType="application/octet" />
<Override PartName="/tools/net10.0/any/build-capture/fuse-build-capture" ContentType="application/octet" />
</Types>

@@ -5,16 +5,16 @@ <?xml version="1.0" encoding="utf-8"?>

<id>Fuse</id>
<version>3.2.0</version>
<version>4.0.0</version>
<authors>Litenova Solutions</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<license type="expression">Apache-2.0</license>
<licenseUrl>https://licenses.nuget.org/Apache-2.0</licenseUrl>
<readme>README.md</readme>
<projectUrl>https://github.com/Litenova-Solutions/Fuse</projectUrl>
<description>A .NET-native codebase context optimizer for AI-assisted development. Fuse collects source files, reduces them for token efficiency, and emits a single structured payload that an agent or developer can consume in one call. Available as a global tool and an MCP server.</description>
<description>An MCP server for AI coding agents on .NET. Fuse typechecks a proposed edit against the compiler before the agent writes it, computes the blast radius of a change, stages compiler-executed refactors as verified diffs, and resolves DI, route, and handler wiring from a Roslyn graph. Also a CLI for scoped, reduced codebase context.</description>
<copyright>Copyright © Litenova Solutions 2026</copyright>
<tags>mcp dotnet-tool llm codebase context fusion csharp token-reduction</tags>
<tags>mcp dotnet-tool llm ai-agent roslyn typecheck codebase context csharp</tags>
<packageTypes>
<packageType name="DotnetTool" />
</packageTypes>
<repository type="git" url="https://github.com/Litenova-Solutions/Fuse.git" commit="8a5b103d871cb93ff46a97fa4437862792307d47" />
<repository type="git" url="https://github.com/Litenova-Solutions/Fuse.git" commit="bea2770e0fdf6731c5b76cffe9bbd6ba744b7c61" />
</metadata>
</package>
+48
-25

@@ -8,3 +8,3 @@ <!-- mcp-name: io.github.Litenova-Solutions/fuse -->

<p align="center">
<b>A faster, cheaper, more accurate AI coding assistant on your .NET codebase.</b>
<b>Typecheck your AI agent's .NET edits against the compiler before they land.</b>
</p>

@@ -25,3 +25,3 @@

<a href="https://dotnet.microsoft.com/download"><img src="https://img.shields.io/badge/.NET-10.0-512BD4?logo=dotnet&logoColor=white" alt=".NET 10"></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/Litenova-Solutions/Fuse?color=6d4aff" alt="License: MIT"></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/Litenova-Solutions/Fuse?color=6d4aff" alt="License: Apache 2.0"></a>
</p>

@@ -31,6 +31,14 @@

Fuse is a Model Context Protocol server that makes your AI coding assistant (Claude Code, Cursor, GitHub Copilot) faster, cheaper, and more accurate on .NET code. Its one concrete edge: it understands how your code is actually wired (which service implements an interface, which handler runs a request, which action a route hits) by reading the code with Roslyn, so the assistant answers from the real graph instead of guessing from file names and grep. Context for a task arrives scoped and reduced in one call, so the agent spends fewer tokens and fewer round-trips. The same engine is also a `fuse` CLI.
Fuse is a Model Context Protocol server that connects your AI coding agent (Claude Code, Cursor, GitHub Copilot) to the .NET compiler. It typechecks a proposed edit before the agent writes it (`fuse_check`), computes the blast radius of a change (`fuse_impact`), stages compiler-executed refactors as diffs that compile or are not handed over (`fuse_refactor`), and resolves how the code is actually wired (which service implements an interface, which handler runs a request, which action a route hits) from a Roslyn graph rather than file names and grep. Every answer carries a grade so the agent knows what it is trusting, and Fuse abstains when it cannot answer at compiler grade. Scoped, reduced context and ranked retrieval are the supporting machinery that feed those answers. The same engine is also a `fuse` CLI.
Full documentation: **[fuse.codes](https://fuse.codes/docs)**.
<p align="center">
<img src="assets/demo/fuse-check-demo.gif" alt="Terminal demo: an AI agent proposes an edit to OrderService.cs that references OrderOptions.MaxItemCount (a member that does not exist); fuse_check returns the real CS1061 diagnostic and a repair packet naming the fix (replace MaxItemCount with MaxItems) at oracle grade, before the edit lands; the corrected edit checks clean, with no dotnet build round-trip." width="820">
</p>
<p align="center">
<img src="assets/fuse-loop-diagram.svg" alt="The Fuse verify loop: an agent proposes an edit; fuse_check typechecks it before it lands, returning diagnostics and a repair packet without a build; the agent applies the repair and re-checks; when clean, fuse_test runs only the covering tests; done. The path this replaces is the full dotnet build and dotnet test round-trip." width="820">
</p>
Full documentation: **[fuse.codes](https://fuse.codes/docs)**. Contributors and roadmap planners: see [briefing.md](briefing.md) for architecture, benchmark evidence, and plan history.
## Install

@@ -80,7 +88,17 @@

Fuse exposes verbs an agent uses while it works. Two carry most of the value:
Fuse exposes verbs an agent uses while it works. The ones that carry the identity verify and scope a change:
```text
# Check an edit against the compiler before writing it (oracle-grade, or it abstains)
fuse_check file="OrderService.cs" content="<proposed edit>"
-> CS1061 at OrderService.cs:41: 'Order' has no member 'TotalAmount'
repair packet: 'Total' exists on Order; 'TotalAmount' does not
grade: oracle
# Blast radius: what a signature change breaks, before touching it
fuse_impact symbol="IBasketService.Checkout"
-> callers, implementers, referencing types from the typed graph
# Resolve .NET wiring: which implementation does the container give for IBasketService?
fuse_resolve service="IBasketService"
fuse_find kind="service" query="IBasketService"
-> BasketService (src/ApplicationCore/Services/BasketService.cs)

@@ -92,3 +110,3 @@ edge: di_resolves_to (registered services.AddScoped<IBasketService, BasketService>())

-> changed files + support files (the interface a changed type implements, its consumers)
100% of changed files kept, ~958 tokens median, with provenance for each file
100% of changed files kept, ~1,026 tokens median, with provenance for each file
```

@@ -100,10 +118,11 @@

|------|--------------|
| `fuse_map` | Workspace map (symbols, routes, counts). The cheap first call. |
| `fuse_localize` | Rank candidate files for a task. Refuses and hands back a map when the task names no code. |
| `fuse_resolve` | Resolve wiring: service to implementation, request to handler, route to action, config to options. |
| `fuse_workspace` | Status and lifecycle: index mode and verify grade (`status`), build or refresh (`index`), symbols/routes/counts (`map`), per-project load diagnosis (`doctor`), and the one explicit tree-write path (`apply`). The cheap first call. |
| `fuse_find` | The find union: exact symbol/path/text lookup; resolve wiring (service, request, route, config); a symbol's exact signature; its callers and implementers; or rank candidate files for a task (refuses and hands back a map when the task names no code). |
| `fuse_check` | Typecheck a proposed single-file edit against the build-captured compilation; repair packets on API-shape errors. Oracle-grade, build-grade, or abstains. |
| `fuse_impact` | Blast radius for a symbol: callers, implementers, referencing types from the typed graph; also a NuGet upgrade break set. |
| `fuse_test` | Run the covering tests for a symbol, scoped by filter so the whole suite never runs. |
| `fuse_refactor` | Compiler-executed, verify-gated refactors staged as a diff: rename, change-signature, extract-interface, move-type, apply-codefix. |
| `fuse_review` | Diff-first semantic impact and packed context for a change, with the public API delta and a PR handoff packet. |
| `fuse_context` | Emit scoped, reduced source (with provenance) for selected seeds. |
| `fuse_review` | Diff-first semantic impact and packed context for a change. |
| `fuse_neighbors` | Graph neighborhood of a file, callers and implementers of a symbol, central files of an area. |
| `fuse_find` | Exact symbol, path, or text lookup. |
| `fuse_index` | Build or refresh the persistent semantic index (the read tools build it on first use). |
| `fuse_reduce` | Compact a known set of files or raw content. |

@@ -114,9 +133,12 @@ Tool parameters and the full catalog: [MCP Tools](https://fuse.codes/docs/reference/mcp-tools).

Fuse is judged as a semantic engine, not a token compressor: can it resolve .NET wiring, scope a change precisely, help an agent, and stay honest on a vague query. Every figure below is recorded under `tests/benchmarks/results` and reproduced with `fuse eval <suite>`; the full methodology, the corpus, and the modes where Fuse is weak are on the [benchmarks page](https://fuse.codes/docs/project/benchmarks). Numbers are counted with the `o200k_base` tokenizer over a commit-pinned corpus (Scrutor, Ardalis.Specification, NodaTime, and the eShopOnWeb application).
Fuse is judged as a compiler-grade semantic engine: can it verify an edit honestly, resolve .NET wiring, scope a change precisely, help an agent, and stay honest on a vague query. Every figure below is recorded under `tests/benchmarks/results` and reproduced with `fuse eval <suite>`; the full methodology and the modes where Fuse is weak are on the [benchmarks page](https://fuse.codes/docs/project/benchmarks). Numbers come from a fixed set of 24 real open-source .NET libraries pinned by commit, with the eShopOnWeb application as a supplementary run.
- **Resolves .NET wiring deterministically.** On the wiring fixture, the extracted semantic graph matches the hand-built edge ground truth exactly (22 of 22 edges, recall and precision 1.0): DI registration and injection, MediatR request-to-handler, ASP.NET route-to-action, EF Core, decorators, options binding, and more. This is the moat a lexical or tree-sitter index cannot follow.
- **Scopes a change with precision.** Over 53 real merged pull requests, `fuse review` keeps 100 percent of the changed files at 79.8 percent precision in a median 958 returned tokens, adding the semantic blast radius (callers, DI consumers, handlers) on top. A grep baseline reaches 53 percent recall at 14 percent precision.
- **Honest on open-ended localization.** From a task title alone, with no git base, `fuse localize` recalls about 15 percent of the changed files: the weakest mode, reported straight. Rather than return a low-precision guess on a no-signal title, Fuse refuses and hands back a navigation map (correct-refusal rate 100 percent on no-signal titles).
- **Helps a real agent.** Driving Claude (sonnet-4-6) over 12 pull requests, the Fuse MCP arm edged out bare filesystem tools on file recall (30 versus 26 percent) at comparable token cost, on a small, model-dependent sample.
- **Token-efficient context.** The Roslyn skeleton keeps essentially all public API while removing roughly 37 to 55 percent of tokens at skeleton level (a support number; the headline is "a PR in about a thousand tokens").
- **Verifies an edit without lying.** Over 1,000 compiler-checked edits (500 breaking, 500 neutral, generated by Roslyn and labeled by the compiler) plus 8 curated cases, `fuse_check` had zero false green and zero false red. Reproduce with `fuse eval checkgate --mutations 500`. (`checkgate.json`)
- **Finishes more tasks with fewer silent failures.** In a 234-run comparison driving Claude with and without Fuse, the Fuse arm finished 89% of tasks correctly (verified by the project's own tests) against the native arm's 82%, with fewer silent wrong answers (8 versus 9). Build round-trips were essentially equal (3.1 versus 3.2). Reproduce with `FUSE_LOOP_RUN=1 fuse eval loop`. (`loop.json`)
- **Fast compiler verdicts when resident.** With the resident workspace enabled (opt-in `FUSE_RESIDENT=1`, environment-dependent), speculative checks answered at P50 31.2 ms and P95 42.4 ms at NodaTime scale. Reproduce with `fuse resident-latency <path>`. (`resident-latency.json`)
- **Resolves .NET wiring deterministically.** On the wiring fixture, the extracted graph matches hand-built ground truth exactly (24 of 24 edges). (`semantics.json`)
- **Scopes a change with precision.** Over 69 real merged pull requests, `fuse review` keeps 100% of changed files at 93.4% precision in a median 1,026 returned tokens. A grep baseline reaches 67% recall at 8% precision. (`review.json`)
- **Honest on open-ended localization.** From a task title alone, `fuse localize` recalls 37.7% of changed files: the weakest mode, reported straight. On no-signal titles, Fuse refuses and hands back a navigation map instead of guessing. (`localize.json`)
- **Helps a real agent.** Driving Claude over 12 pull requests, the Fuse MCP arm edged out bare filesystem tools on file recall (30% versus 26%) at comparable token cost, on a small sample. (`agent.json`)
- **Token-efficient context.** The Roslyn skeleton keeps essentially all public API while removing 38 to 44% of tokens at skeleton level, 47 to 60% at public-API level. (`reduce.json`)

@@ -132,3 +154,3 @@ No head-to-head ranking against other tools is claimed here; the measured peer comparison (with the exact reproduction command and every caveat) lives on the [benchmarks page](https://fuse.codes/docs/project/benchmarks).

fuse localize ./src --task "discount rounding at checkout"
fuse dotnet --directory ./src --level skeleton # architecture overview, signatures only
fuse reduce --files src/Program.cs --level skeleton
```

@@ -140,4 +162,5 @@

- **Solid: .NET semantic context.** The Roslyn-backed wiring graph, change-impact review, and warm millisecond retrieval are the mature core.
- **Default-on, offline dense retrieval.** A small local embedding model is fetched once and cached, then runs entirely offline; lexical is the fallback when no model is present.
- **Solid: compiler-backed verification and the wiring graph.** The Roslyn-backed wiring graph (24 of 24 edges), speculative typecheck with repair packets, blast-radius impact, compiler-executed rename staged as a diff, change-impact review, and warm millisecond retrieval are the mature core.
- **Growing: the resident verified-edit loop.** The current program (see the [Roadmap](https://fuse.codes/docs/project/roadmap)) makes the compilation resident so truth arrives within a second after an edit without a build, adds out-of-process covering-test execution, and grades every verify answer so it never shrugs.
- **Supporting machinery: retrieval and reduction.** Ranked localization is the fallback when a task names no anchor; skeleton reduction fits scoped context to a token budget. Both feed the verification and resolution answers above.
- **Early: multi-language.** Non-C# languages are supported at the syntax tier (token-efficient context and search); the deep typed graph is .NET-only for now.

@@ -152,3 +175,3 @@

Core/ Pipeline and engine: Fuse.Collection, Fuse.Reduction, Fuse.Emission,
Fuse.Fusion, plus the V3 semantic stack (Fuse.Indexing, Fuse.Semantics,
Fuse.Fusion, plus the semantic stack (Fuse.Indexing, Fuse.Semantics,
Fuse.Retrieval, Fuse.Context).

@@ -176,2 +199,2 @@ Host/ Fuse.Cli: the CLI commands and the MCP server.

MIT. Copyright (c) 2026 Litenova Solutions. See [LICENSE](LICENSE).
Apache 2.0. Copyright (c) 2026 Litenova Solutions. See [LICENSE](LICENSE) and [NOTICE](NOTICE).

@@ -18,4 +18,6 @@ <?xml version="1.0"?>

<param name="Notes">Warnings/notes.</param>
<param name="ApiDelta">The rendered public-API delta section (T2) for a review plan, when present.</param>
<param name="Claims">The rendered graded-claims block (U2) for the answer, when present.</param>
</member>
<member name="M:Fuse.Context.ContextJsonDto.#ctor(System.String,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IReadOnlyList{Fuse.Context.ContextFileDto},System.Collections.Generic.IReadOnlyList{System.String})">
<member name="M:Fuse.Context.ContextJsonDto.#ctor(System.String,System.String,System.String,System.Int32,System.Int32,System.Collections.Generic.IReadOnlyList{Fuse.Context.ContextFileDto},System.Collections.Generic.IReadOnlyList{System.String},System.String,System.String)">
<summary>

@@ -31,2 +33,4 @@ The JSON shape of an emitted semantic context.

<param name="Notes">Warnings/notes.</param>
<param name="ApiDelta">The rendered public-API delta section (T2) for a review plan, when present.</param>
<param name="Claims">The rendered graded-claims block (U2) for the answer, when present.</param>
</member>

@@ -54,2 +58,8 @@ <member name="P:Fuse.Context.ContextJsonDto.Mode">

</member>
<member name="P:Fuse.Context.ContextJsonDto.ApiDelta">
<summary>The rendered public-API delta section (T2) for a review plan, when present.</summary>
</member>
<member name="P:Fuse.Context.ContextJsonDto.Claims">
<summary>The rendered graded-claims block (U2) for the answer, when present.</summary>
</member>
<member name="T:Fuse.Context.ContextFileDto">

@@ -226,3 +236,3 @@ <summary>

</member>
<member name="M:Fuse.Context.SemanticContextEmitter.Emit(Fuse.Retrieval.ContextPlan,Fuse.Context.RenderedContext,Fuse.Context.ContextOutputFormat,System.String,System.String,System.Collections.Generic.IReadOnlyCollection{System.String})">
<member name="M:Fuse.Context.SemanticContextEmitter.Emit(Fuse.Retrieval.ContextPlan,Fuse.Context.RenderedContext,Fuse.Context.ContextOutputFormat,System.String,System.String,System.Collections.Generic.IReadOnlyCollection{System.String},System.String,System.String)">
<summary>

@@ -237,2 +247,3 @@ Emits the rendered context in the requested format.

<param name="unchangedPaths">Paths to emit as a reference (body omitted) because they were already sent unchanged in the session.</param>
<param name="apiDeltaSection">The rendered public-API delta section (T2) for a review plan, or null to omit.</param>
<returns>The emitted payload.</returns>

@@ -357,3 +368,3 @@ </member>

</member>
<member name="M:Fuse.Context.SemanticManifestBuilder.Build(Fuse.Retrieval.ContextPlan,System.String,System.String)">
<member name="M:Fuse.Context.SemanticManifestBuilder.Build(Fuse.Retrieval.ContextPlan,System.String,System.String,System.String,System.String)">
<summary>

@@ -365,2 +376,10 @@ Builds the manifest body (without comment delimiters) for a plan.

<param name="changedSince">The git base ref for review plans, or null to omit.</param>
<param name="apiDeltaSection">
The rendered public-API delta section (T2) for a review plan, or null to omit. Emitted ahead of the
seeds so a breaking change is the first thing the agent reads.
</param>
<param name="claimsSection">
The rendered graded-claims block (U2) for the answer, or null to omit. Emitted ahead of the seeds,
after the API delta, so the graded evidence trail is read before the source.
</param>
<returns>The manifest body text.</returns>

@@ -367,0 +386,0 @@ </member>

@@ -821,71 +821,2 @@ <?xml version="1.0"?>

</member>
<member name="T:Fuse.Plugins.Abstractions.Scoping.IReranker">
<summary>
Reorders a query's BM25 candidate pool by blending the lexical score with a dense query-to-document
similarity, so a file whose meaning matches the query can outrank one that merely shares more words.
</summary>
<remarks>
This is an optional capability: when no implementation is registered (no model present, offline, or the
feature is off) the query path runs on the lexical BM25F ranking alone, which is the guaranteed
no-model, no-network floor. An implementation embeds the query and each candidate's text representation
with a small in-process model and returns the candidates reordered by the blended score. It must be
deterministic for a given model and inputs, and must not throw for an empty or single-item pool.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Scoping.IReranker.IsAvailable">
<summary>
Whether the reranker is ready to score (its model is loaded or loadable). When <see langword="false" />,
callers keep the lexical ordering rather than invoking <see cref="M:Fuse.Plugins.Abstractions.Scoping.IReranker.Rerank(System.String,System.Collections.Generic.IReadOnlyList{Fuse.Plugins.Abstractions.Scoping.RankedFile},System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})" />.
</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Scoping.IReranker.Rerank(System.String,System.Collections.Generic.IReadOnlyList{Fuse.Plugins.Abstractions.Scoping.RankedFile},System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<summary>
Reorders <paramref name="candidates" /> by blending each candidate's existing (lexical) score with the
dense similarity between <paramref name="query" /> and the candidate's text from
<paramref name="documentText" />.
</summary>
<param name="query">The raw query text.</param>
<param name="candidates">The lexical candidate pool, each with its BM25 score in <see cref="P:Fuse.Plugins.Abstractions.Scoping.RankedFile.Score" />.</param>
<param name="documentText">
The text representation to embed per candidate path (for example declared symbols, the path, and a
content sketch). A path absent from the map is treated as empty text and keeps its lexical rank.
</param>
<returns>
The candidates reordered by the blended score, highest first. Returns the input order unchanged when
the reranker is unavailable or the pool has fewer than two items.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder">
<summary>
Embeds text into a dense vector so two pieces of text can be compared by meaning rather than by shared
words. Used to persist a per-chunk embedding index at indexing time and to embed a query at retrieval
time, so a prose query can rank a chunk it does not share tokens with.
</summary>
<remarks>
This is an optional capability: when no implementation is registered (no model present, offline, or the
feature is off) the retrieval path stays on the lexical BM25F ranking, which is the guaranteed no-model,
no-network floor. An implementation must be deterministic for a given model and input, must return a
unit-length vector of <see cref="P:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder.Dimension" /> components (so a dot product is a cosine similarity), and
must return an empty array for empty or untokenizable input rather than throwing.
</remarks>
</member>
<member name="P:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder.IsAvailable">
<summary>
Whether the embedder is ready to embed (its model is loaded or loadable). When
<see langword="false" />, callers skip embedding and keep the lexical ranking.
</summary>
</member>
<member name="P:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder.Dimension">
<summary>The dimension of the vectors this embedder produces.</summary>
</member>
<member name="M:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder.Embed(System.String)">
<summary>
Embeds a single text into a unit-length dense vector.
</summary>
<param name="text">The text to embed.</param>
<returns>
A unit-length vector of <see cref="P:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder.Dimension" /> components, or an empty array for empty or
untokenizable input.
</returns>
</member>
<member name="T:Fuse.Plugins.Abstractions.Scoping.RankedFile">

@@ -892,0 +823,0 @@ <summary>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

<?xml version="1.0"?>
<doc>
<assembly>
<name>Fuse.Plugins.Rerank.Onnx</name>
</assembly>
<members>
<member name="T:Fuse.Plugins.Rerank.Onnx.DenseModelProvisioner">
<summary>
Ensures the bundled dense embedding model is present in the user-data cache so the dense retrieval
channel is on by default. The model is fetched once and cached on first index; every later run, and
all query-time work, is fully offline.
</summary>
<remarks>
This is the "fetch-once-and-cache on first run" half of the dense-by-default policy. It runs only on the
indexing path (never at query time, so the no-network-at-query-time rule holds), is idempotent (a present
model is a fast no-op), and degrades gracefully: when the fetch fails (genuinely offline, or a blocked
download) it logs and returns, leaving retrieval on the deterministic lexical fallback. It honors the
opt-out (<c>FUSE_DENSE</c> set to a falsy value), so a caller who does not want the dense channel pays no
download. The integrity-pinned <see cref="T:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader" /> backs the fetch, so a truncated or
tampered download is rejected rather than loaded.
</remarks>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.DenseModelProvisioner.IsDenseEnabled">
<summary>
Whether the dense channel is enabled. Dense is on by default; it is disabled only when
<c>FUSE_DENSE</c> is explicitly set to a falsy value (<c>0</c>, <c>false</c>, <c>no</c>, or <c>off</c>,
case-insensitive). Absent an explicit opt-out, Fuse provisions and
uses the bundled embedding model.
</summary>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.DenseModelProvisioner.EnsureModelAsync(System.IProgress{System.String},Microsoft.Extensions.Logging.ILogger,System.Threading.CancellationToken)">
<summary>
Ensures the default bi-encoder embedding model is cached, fetching it once if absent. Safe to call on
every index: it returns immediately when dense is disabled or the model is already present, and never
throws (a failed fetch leaves the lexical fallback in place).
</summary>
<param name="progress">An optional sink for human-readable download progress lines.</param>
<param name="logger">An optional logger; a failed fetch is logged once at warning level.</param>
<param name="cancellationToken">A token to cancel the download.</param>
<returns><see langword="true" /> when the model is present after the call; otherwise <see langword="false" />.</returns>
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker">
<summary>
An <see cref="T:Fuse.Plugins.Abstractions.Scoping.IReranker" /> that reorders the BM25 candidate pool with an in-process cross-encoder
(ms-marco-MiniLM-L-6-v2), scoring each query-to-document pair jointly so the query attends directly to a
candidate's text rather than comparing two independently pooled embeddings.
</summary>
<remarks>
A cross-encoder is the more accurate reranker family but costs one model run per candidate (its score is
pair-specific, so no document-side embedding can be cached). The model loads lazily on the first rerank
and is reused across calls; when it is absent or fails to load the reranker reports unavailable and the
lexical ordering is kept, so retrieval stays on the lexical path when no model is present. The cross-encoder logit and the
lexical score are min-max normalized over the pool before blending, so neither signal's raw scale leaks
into the blend.
</remarks>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker.#ctor(System.String,System.String,Microsoft.Extensions.Logging.ILogger{Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker})">
<summary>
Initializes a new instance of the <see cref="T:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker" /> class over the cached model files.
</summary>
<param name="onnxModelPath">Path to the quantized ONNX graph.</param>
<param name="vocabPath">Path to the WordPiece vocabulary.</param>
<param name="logger">Optional logger; a load failure is logged once and then the reranker stays unavailable.</param>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker.IsAvailable">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker.Rerank(System.String,System.Collections.Generic.IReadOnlyList{Fuse.Plugins.Abstractions.Scoping.RankedFile},System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker.Dispose">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker">
<summary>
An <see cref="T:Fuse.Plugins.Abstractions.Scoping.IReranker" /> that reorders the BM25 candidate pool with an in-process all-MiniLM-L6-v2
sentence embedder, blending the lexical score with dense query-to-document similarity so a file whose
meaning matches the query can outrank one that merely shares more words.
</summary>
<remarks>
The model loads lazily on the first rerank and is then reused across calls (ONNX Runtime sessions are
safe for concurrent inference). When the model is absent or fails to load the reranker reports
unavailable and callers keep the lexical ordering, so retrieval stays on the lexical path when no model is present. Both the
lexical and dense signals are min-max normalized over the pool before blending, so the blend is free of
each signal's raw scale.
</remarks>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker.#ctor(System.String,System.String,Microsoft.Extensions.Logging.ILogger{Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker})">
<summary>
Initializes a new instance of the <see cref="T:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker" /> class over the cached model files.
</summary>
<param name="onnxModelPath">Path to the quantized ONNX graph.</param>
<param name="vocabPath">Path to the WordPiece vocabulary.</param>
<param name="logger">Optional logger; a load failure is logged once and then the reranker stays unavailable.</param>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker.IsAvailable">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker.Rerank(System.String,System.Collections.Generic.IReadOnlyList{Fuse.Plugins.Abstractions.Scoping.RankedFile},System.Collections.Generic.IReadOnlyDictionary{System.String,System.String})">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker.Dispose">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder">
<summary>
An <see cref="T:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder" /> backed by the in-process all-MiniLM-L6-v2 sentence model, used to
persist a per-chunk embedding index at indexing time and to embed a query at retrieval time.
</summary>
<remarks>
The model loads lazily on first use and is then reused (ONNX Runtime sessions are safe for concurrent
inference). When the model is absent or fails to load, <see cref="P:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.IsAvailable" /> reports false and the
retrieval path stays lexical, so retrieval stays on the lexical path when no model is present.
</remarks>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.#ctor(System.String,System.String,Microsoft.Extensions.Logging.ILogger{Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder})">
<summary>
Initializes a new instance of the <see cref="T:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder" /> class over the cached model files.
</summary>
<param name="onnxModelPath">Path to the quantized ONNX graph.</param>
<param name="vocabPath">Path to the WordPiece vocabulary.</param>
<param name="logger">Optional logger; a load failure is logged once and then the embedder stays unavailable.</param>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.CreateDefault(Microsoft.Extensions.Logging.ILogger{Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder})">
<summary>
Creates an embedder over the model in the Fuse user-data cache, present or not. The instance reports
unavailable until the model files exist, so this is safe to construct unconditionally.
</summary>
<param name="logger">An optional logger.</param>
<returns>An embedder bound to the default cached model location.</returns>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.IsAvailable">
<inheritdoc />
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.Dimension">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.Embed(System.String)">
<inheritdoc />
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder.Dispose">
<inheritdoc />
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader">
<summary>
Downloads and verifies the dense rerank model files into the user-data cache, and reports or clears
them. This is the explicit, opt-in fetch the CLI <c>fuse models</c> command drives; nothing here runs
during scoping.
</summary>
<remarks>
Files come from the public ONNX export of all-MiniLM-L6-v2 and are pinned by SHA-256, so a truncated or
tampered download is rejected rather than loaded. The total is about 23 MB (a quantized graph plus a
vocabulary).
</remarks>
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.ModelFile">
<summary>One file the model needs: where it goes in the cache, where it comes from, and its expected hash.</summary>
<param name="RelativePath">Path under the model directory, using <c>/</c> separators.</param>
<param name="Url">Source URL.</param>
<param name="Sha256">Expected lowercase hex SHA-256 of the file contents.</param>
<param name="Bytes">Approximate size in bytes, for the size shown before download.</param>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.ModelFile.#ctor(System.String,System.String,System.String,System.Int64)">
<summary>One file the model needs: where it goes in the cache, where it comes from, and its expected hash.</summary>
<param name="RelativePath">Path under the model directory, using <c>/</c> separators.</param>
<param name="Url">Source URL.</param>
<param name="Sha256">Expected lowercase hex SHA-256 of the file contents.</param>
<param name="Bytes">Approximate size in bytes, for the size shown before download.</param>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.ModelFile.RelativePath">
<summary>Path under the model directory, using <c>/</c> separators.</summary>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.ModelFile.Url">
<summary>Source URL.</summary>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.ModelFile.Sha256">
<summary>Expected lowercase hex SHA-256 of the file contents.</summary>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.ModelFile.Bytes">
<summary>Approximate size in bytes, for the size shown before download.</summary>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.Files">
<summary>The files that make up the default bi-encoder model, in download order.</summary>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.FilesFor(System.String)">
<summary>
The files that make up a given model, in download order.
</summary>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns>The file manifest for the model.</returns>
<exception cref="T:System.ArgumentException">Thrown when the model identifier is not a known rerank model.</exception>
</member>
<member name="P:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.TotalBytes">
<summary>The total download size in bytes across the default model's files.</summary>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.DownloadAsync(System.IProgress{System.String},System.Threading.CancellationToken,System.String)">
<summary>
Downloads any missing or corrupt file of a model into the cache, verifying each against its pinned hash.
</summary>
<param name="progress">Optional sink for human-readable per-file progress lines.</param>
<param name="cancellationToken">Token used to cancel the download.</param>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns>A task that completes when every file is present and verified.</returns>
<exception cref="T:System.InvalidOperationException">Thrown when a downloaded file fails its integrity check.</exception>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.Verify(System.String,System.String)">
<summary>
Verifies a file against an expected SHA-256.
</summary>
<param name="path">The file to hash.</param>
<param name="expectedSha256">The expected lowercase hex digest.</param>
<returns><see langword="true" /> when the file's hash matches; otherwise <see langword="false" />.</returns>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelDownloader.Remove(System.String)">
<summary>
Removes a cached model directory, if present.
</summary>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns><see langword="true" /> when a directory was deleted; <see langword="false" /> when none existed.</returns>
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.RerankModelLocator">
<summary>
Resolves the on-disk location of the dense rerank model in the Fuse user-data cache, so the reranker can
check whether a model is present without downloading and load it when it is.
</summary>
<remarks>
The cache root is <c>FUSE_USER_DATA</c> when set, otherwise <c>~/.fuse</c>; the model lives under
<c>{root}/models/all-MiniLM-L6-v2</c> with the quantized ONNX graph at <c>onnx/model_quantized.onnx</c>
and the WordPiece vocabulary at <c>vocab.txt</c>. This type performs no network access: download is a
separate, explicit step, and an absent model means the query path stays lexical.
</remarks>
</member>
<member name="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId">
<summary>The model identifier (and cache subdirectory name) of the default bi-encoder dense reranker.</summary>
</member>
<member name="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.CrossEncoderModelId">
<summary>The model identifier (and cache subdirectory name) of the cross-encoder reranker.</summary>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelDirectory(System.String)">
<summary>
The directory holding the cached files for a model, whether or not they are present.
</summary>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns>The absolute path to <c>{userData}/models/{modelId}</c>.</returns>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.OnnxModelPath(System.String)">
<summary>The expected path to a model's quantized ONNX graph.</summary>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns>The absolute path to the model file, which may not exist.</returns>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.VocabPath(System.String)">
<summary>The expected path to a model's WordPiece vocabulary.</summary>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns>The absolute path to the vocabulary file, which may not exist.</returns>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.IsModelPresent(System.String)">
<summary>
Whether both files of a model are present on disk and so the reranker can load without a download.
</summary>
<param name="modelId">The model identifier; defaults to the bi-encoder <see cref="F:Fuse.Plugins.Rerank.Onnx.RerankModelLocator.ModelId" />.</param>
<returns><see langword="true" /> when the ONNX graph and vocabulary both exist; otherwise <see langword="false" />.</returns>
</member>
<member name="T:Fuse.Plugins.Rerank.Onnx.RerankServiceCollectionExtensions">
<summary>
Dependency-injection registration for the ONNX dense reranker.
</summary>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankServiceCollectionExtensions.AddOnnxDenseReranker(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Registers <see cref="T:Fuse.Plugins.Rerank.Onnx.OnnxDenseReranker" /> as the <see cref="T:Fuse.Plugins.Abstractions.Scoping.IReranker" /> when its model is present
in the user-data cache; otherwise registers nothing, so the orchestrator receives no reranker and the
query path stays on the lexical BM25F floor.
</summary>
<param name="services">The service collection to add to.</param>
<returns>The same <paramref name="services" /> instance for chaining.</returns>
<remarks>
Registration is gated on file presence rather than always registering, so a build with no model
downloaded is byte-identical in behavior to one without the assembly. The reranker still loads the
model lazily on first use and degrades to lexical if that load fails.
<para>
<c>FUSE_RERANK_MODEL=cross</c> selects the cross-encoder (<see cref="T:Fuse.Plugins.Rerank.Onnx.OnnxCrossEncoderReranker" />)
when its model is present; the default <c>bi</c> uses the bi-encoder. The cross-encoder is more
accurate per query-document pair but runs the model once per candidate, so it is the slower arm.
</para>
</remarks>
</member>
<member name="M:Fuse.Plugins.Rerank.Onnx.RerankServiceCollectionExtensions.AddOnnxTextEmbedder(Microsoft.Extensions.DependencyInjection.IServiceCollection)">
<summary>
Registers <see cref="T:Fuse.Plugins.Rerank.Onnx.OnnxTextEmbedder" /> as the <see cref="T:Fuse.Plugins.Abstractions.Scoping.ITextEmbedder" /> so the indexer persists
a vector per chunk and the dense retrieval channel is on by default. Registers nothing only when the
dense channel is explicitly opted out of (<c>FUSE_DENSE</c> falsy), in which case indexing and
retrieval stay byte-identical to a build without dense.
</summary>
<param name="services">The service collection to add to.</param>
<returns>The same <paramref name="services" /> instance for chaining.</returns>
<remarks>
Dense is on by default: the bundled embedding model is fetched once and cached on first index (see
<see cref="T:Fuse.Plugins.Rerank.Onnx.DenseModelProvisioner" />), and all query-time work is offline. The embedder is registered
even when the model file is not yet present, because it loads lazily and reports unavailable until the
model is cached, so registration is safe before provisioning runs. When the model is genuinely absent
(offline, fetch blocked) the embedder stays unavailable and the deterministic lexical path is the
graceful fallback. The no-rewrite rule is unchanged: the query string is embedded, never paraphrased.
</remarks>
</member>
</members>
</doc>

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet