bin/LoraxMod.xml

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>LoraxMod</name>
    </assembly>
    <members>
        <member name="T:LoraxMod.Cmdlets.FindLoraxFunctionCommand">
            <summary>
            Language-specific function extraction (convenience wrapper).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxFunctionCommand.Code">
            <summary>
            Source code to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxFunctionCommand.FilePath">
            <summary>
            Path to source file to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxFunctionCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxFunctionCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.GetLoraxDependencyCommand">
            <summary>
            Extract import/include dependencies (convenience wrapper).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDependencyCommand.Code">
            <summary>
            Source code to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDependencyCommand.FilePath">
            <summary>
            Path to source file to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDependencyCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDependencyCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.GetLoraxDiffCommand">
            <summary>
            Semantic diff wrapper (convenience for Compare-LoraxAST).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.OldCode">
            <summary>
            Old version code.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.NewCode">
            <summary>
            New version code.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.OldPath">
            <summary>
            Path to old version file.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.NewPath">
            <summary>
            Path to new version file.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.IncludeFullText">
            <summary>
            Include full text in OldValue/NewValue (default: truncate to 100 chars).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxDiffCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.ConvertToLoraxASTCommand">
            <summary>
            Parse code to AST in one-shot mode (no session).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.ConvertToLoraxASTCommand.Code">
            <summary>
            Source code to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.ConvertToLoraxASTCommand.FilePath">
            <summary>
            Path to source file to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.ConvertToLoraxASTCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.ConvertToLoraxASTCommand.Recurse">
            <summary>
            Recursively extract all child nodes.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.ConvertToLoraxASTCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.FindLoraxNodeCommand">
            <summary>
            Find and extract nodes of specific types from AST.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxNodeCommand.Code">
            <summary>
            Source code to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxNodeCommand.FilePath">
            <summary>
            Path to source file to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxNodeCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxNodeCommand.NodeTypes">
            <summary>
            Node types to extract (e.g., 'function_declaration', 'class_definition').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.FindLoraxNodeCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.CompareLoraxASTCommand">
            <summary>
            Compute semantic diff between two code versions.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.OldCode">
            <summary>
            Old version code.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.NewCode">
            <summary>
            New version code.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.OldPath">
            <summary>
            Path to old version file.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.NewPath">
            <summary>
            Path to new version file.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.IncludeFullText">
            <summary>
            Include full text in OldValue/NewValue (default: truncate to 100 chars).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.CompareLoraxASTCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.GetLoraxSchemaCommand">
            <summary>
            Query tree-sitter grammar schemas without parsing code.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxSchemaCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxSchemaCommand.SchemaPath">
            <summary>
            Optional path to node-types.json schema file.
            If not specified, uses SchemaCache or local grammars.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxSchemaCommand.ListNodeTypes">
            <summary>
            List all node types in the schema.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxSchemaCommand.NodeType">
            <summary>
            Get fields for a specific node type.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxSchemaCommand.ExtractionPlan">
            <summary>
            Get extraction plan for a specific node type.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.GetLoraxSchemaCommand.ListAvailableLanguages">
            <summary>
            List available languages from SchemaCache.
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.StartLoraxParserSessionCommand">
            <summary>
            Start a parser session for batch processing.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.StartLoraxParserSessionCommand.SessionId">
            <summary>
            Session ID (unique identifier for this session).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.StartLoraxParserSessionCommand.Language">
            <summary>
            Language name (e.g., 'javascript', 'python').
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.StartLoraxParserSessionCommand.SchemaPath">
            <summary>
            Optional schema path (defaults to SchemaCache).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.InvokeLoraxParseCommand">
            <summary>
            Parse files using an existing session (batch pipeline mode).
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.InvokeLoraxParseCommand.SessionId">
            <summary>
            Session ID to use for parsing.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.InvokeLoraxParseCommand.Code">
            <summary>
            Source code to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.InvokeLoraxParseCommand.FilePath">
            <summary>
            Path to source file to parse.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.InvokeLoraxParseCommand.Recurse">
            <summary>
            Recursively extract all child nodes.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.InvokeLoraxParseCommand.ContinueOnError">
            <summary>
            Continue processing on error (don't throw).
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.StopLoraxParserSessionCommand">
            <summary>
            Stop a parser session and report statistics.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.StopLoraxParserSessionCommand.SessionId">
            <summary>
            Session ID to stop.
            </summary>
        </member>
        <member name="P:LoraxMod.Cmdlets.StopLoraxParserSessionCommand.ShowStats">
            <summary>
            Show session statistics.
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.ParserSession">
            <summary>
            Represents an active parser session for batch processing.
            </summary>
        </member>
        <member name="T:LoraxMod.Cmdlets.SessionManager">
            <summary>
            Static session storage for parser sessions.
            Manages lifecycle of parser instances across cmdlet calls.
            </summary>
        </member>
        <member name="M:LoraxMod.Cmdlets.SessionManager.AddSession(System.String,LoraxMod.Cmdlets.ParserSession)">
            <summary>
            Add a new session.
            </summary>
        </member>
        <member name="M:LoraxMod.Cmdlets.SessionManager.GetSession(System.String)">
            <summary>
            Get an existing session.
            </summary>
        </member>
        <member name="M:LoraxMod.Cmdlets.SessionManager.RemoveSession(System.String)">
            <summary>
            Remove and dispose a session.
            </summary>
        </member>
        <member name="M:LoraxMod.Cmdlets.SessionManager.GetSessionIds">
            <summary>
            Get all active session IDs.
            </summary>
        </member>
        <member name="M:LoraxMod.Cmdlets.SessionManager.ClearAll">
            <summary>
            Clear all sessions (for cleanup).
            </summary>
        </member>
        <member name="T:LoraxMod.ChangeType">
            <summary>
            Types of semantic changes between two ASTs.
            </summary>
        </member>
        <member name="T:LoraxMod.SemanticChange">
            <summary>
            Represents a semantic change between two AST versions.
            </summary>
        </member>
        <member name="M:LoraxMod.SemanticChange.ToDict">
            <summary>
            Convert to dictionary for JSON serialization.
            </summary>
        </member>
        <member name="T:LoraxMod.DiffResult">
            <summary>
            Complete diff result between two AST versions.
            </summary>
        </member>
        <member name="M:LoraxMod.DiffResult.ToDict">
            <summary>
            Convert to dictionary for JSON serialization.
            </summary>
        </member>
        <member name="T:LoraxMod.TreeDiffer">
            <summary>
            Compute semantic diff between two AST trees.
            PORTABLE: Uses SchemaReader for identity matching.
            </summary>
        </member>
        <member name="M:LoraxMod.TreeDiffer.Diff(LoraxMod.INodeInterface,LoraxMod.INodeInterface,System.String,System.Boolean)">
            <summary>
            Compute semantic diff between two AST trees.
            </summary>
            <param name="oldRoot">Root node of old version</param>
            <param name="newRoot">Root node of new version</param>
            <param name="pathPrefix">Path prefix for nested diffs</param>
            <param name="includeFullText">Store full text instead of truncated</param>
        </member>
        <member name="T:LoraxMod.INodeInterface">
            <summary>
            Interface for tree-sitter node-like objects.
            Allows extraction to work with any compatible AST node.
            </summary>
        </member>
        <member name="T:LoraxMod.ExtractedNode">
            <summary>
            Extracted node with structured data.
            </summary>
        </member>
        <member name="P:LoraxMod.ExtractedNode.Identity">
            <summary>
            Get identity (usually the name) of this node.
            </summary>
        </member>
        <member name="M:LoraxMod.ExtractedNode.ToDict">
            <summary>
            Convert to dictionary for JSON serialization.
            </summary>
        </member>
        <member name="T:LoraxMod.SchemaExtractor">
            <summary>
            Schema-driven extractor for AST nodes.
            PORTABLE: Works with any INodeInterface implementation.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaExtractor.ExtractNode(LoraxMod.INodeInterface)">
            <summary>
            Extract data from a single node using schema.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaExtractor.Extract(LoraxMod.INodeInterface,System.String)">
            <summary>
            Extract a specific semantic intent from a node.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaExtractor.ExtractField(LoraxMod.INodeInterface,System.String)">
            <summary>
            Extract a specific field from a node.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaExtractor.ExtractAll(LoraxMod.INodeInterface,System.Boolean)">
            <summary>
            Extract all data from a node and optionally its children.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaExtractor.ExtractByType(LoraxMod.INodeInterface,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Find and extract all nodes of specific types.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaExtractor.IsSignificant(LoraxMod.INodeInterface)">
            <summary>
            Check if a node is significant (exists in schema).
            Filters out anonymous tokens and unsupported node types.
            </summary>
        </member>
        <member name="T:LoraxMod.ModuleInitializer">
             <summary>
             Module initializer to configure native library resolution for tree-sitter DLLs.
             
             Solves: When LoraxMod.dll is loaded from external path (e.g., via PWSH_MCP_MODULES),
             .NET's default resolver doesn't search the module directory for P/Invoke dependencies.
             This causes all tree-sitter language DLLs to fail loading.
             
             Solution: Register custom resolver that searches runtimes/{RID}/native/ and bin/ directories.
             </summary>
        </member>
        <member name="T:LoraxMod.TreeSitterNode">
            <summary>
            Adapter to wrap TreeSitter.DotNet nodes as INodeInterface.
            </summary>
        </member>
        <member name="T:LoraxMod.Parser">
            <summary>
            High-level parser wrapping tree-sitter for a specific language.
            Uses TreeSitter.DotNet for native bindings.
            </summary>
        </member>
        <member name="F:LoraxMod.Parser.LanguageIdMap">
            <summary>
            Language ID mapping: User-friendly name -> TreeSitter.DotNet name.
            TreeSitter.DotNet uses hyphens (c-sharp) but users expect no hyphens (csharp).
            </summary>
        </member>
        <member name="M:LoraxMod.Parser.CreateAsync(System.String,System.String)">
            <summary>
            Create a parser for a language (async factory).
            </summary>
            <param name="language">Language name (e.g., 'javascript', 'python', 'csharp')</param>
            <param name="schemaPath">Optional path to node-types.json (uses SchemaCache if null)</param>
        </member>
        <member name="M:LoraxMod.Parser.Parse(System.String)">
            <summary>
            Parse source code into AST.
            </summary>
        </member>
        <member name="M:LoraxMod.Parser.ParseFile(System.String)">
            <summary>
            Parse a file into AST.
            </summary>
        </member>
        <member name="M:LoraxMod.Parser.ExtractAll(TreeSitter.Tree,System.Boolean)">
            <summary>
            Extract all data from tree root.
            </summary>
        </member>
        <member name="M:LoraxMod.Parser.ExtractByType(TreeSitter.Tree,System.Collections.Generic.IEnumerable{System.String})">
            <summary>
            Find and extract all nodes of specific types.
            </summary>
        </member>
        <member name="M:LoraxMod.Parser.Diff(System.String,System.String,System.Boolean)">
            <summary>
            Compute semantic diff between two code versions.
            </summary>
            <param name="oldCode">Old version source code</param>
            <param name="newCode">New version source code</param>
            <param name="includeFullText">Store full text instead of truncated</param>
        </member>
        <member name="M:LoraxMod.Parser.DiffFiles(System.String,System.String,System.Boolean)">
            <summary>
            Compute semantic diff between two files.
            </summary>
            <param name="oldPath">Path to old version file</param>
            <param name="newPath">Path to new version file</param>
            <param name="includeFullText">Store full text instead of truncated</param>
        </member>
        <member name="T:LoraxMod.MultiParser">
            <summary>
            Parser that handles multiple languages with auto-detection.
            </summary>
        </member>
        <member name="F:LoraxMod.MultiParser.Extensions">
            <summary>
            File extension to language mapping.
            </summary>
        </member>
        <member name="M:LoraxMod.MultiParser.GetParserAsync(System.String,System.String)">
            <summary>
            Get or create parser for a language.
            </summary>
        </member>
        <member name="M:LoraxMod.MultiParser.DetectLanguage(System.String)">
            <summary>
            Detect language from file extension.
            </summary>
        </member>
        <member name="M:LoraxMod.MultiParser.ParseAsync(System.String,System.String,System.String)">
            <summary>
            Parse code in a specific language.
            </summary>
        </member>
        <member name="M:LoraxMod.MultiParser.ParseFileAsync(System.String,System.String,System.String)">
            <summary>
            Parse file with optional auto-detection.
            </summary>
        </member>
        <member name="M:LoraxMod.MultiParser.Dispose">
            <summary>
            Dispose all cached parsers.
            </summary>
        </member>
        <member name="T:LoraxMod.SemanticIntents">
            <summary>
            Semantic intent mappings - abstract concepts to concrete field names.
            Same as Python version for cross-language consistency.
            </summary>
        </member>
        <member name="T:LoraxMod.SchemaReader">
            <summary>
            Reads and indexes tree-sitter node-types.json schema files.
            PORTABLE: Pure C#, no tree-sitter dependency.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.FromFile(System.String)">
            <summary>
            Load schema from JSON file path.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.FromJson(System.String)">
            <summary>
            Load schema from JSON string.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetNodeTypes">
            <summary>
            Get all node type names in schema.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.HasNodeType(System.String)">
            <summary>
            Check if node type exists in schema.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetFields(System.String)">
            <summary>
            Get fields defined for a node type.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetFieldNames(System.String)">
            <summary>
            Get list of field names for a node type.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.HasField(System.String,System.String)">
            <summary>
            Check if node type has a specific field.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetFieldTypes(System.String,System.String)">
            <summary>
            Get possible types for a field.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.ResolveIntent(System.String,System.String)">
            <summary>
            Resolve semantic intent to actual field name.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetExtractionPlan(System.String)">
            <summary>
            Get full extraction plan for a node type.
            Maps all semantic intents to available fields.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetIdentityField(System.String)">
            <summary>
            Get the identity field for a node type (usually 'name').
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaReader.GetChildrenTypes(System.String)">
            <summary>
            Get possible child node types (for nodes without named fields).
            Some nodes use positional children instead of named fields.
            </summary>
        </member>
        <member name="T:LoraxMod.SchemaCache">
             <summary>
             Schema cache for fetching and caching grammar files from GitHub.
             
             Fetches node-types.json and grammar.json from tree-sitter grammar repositories
             using the exact revisions specified in tree-sitter-language-pack's language_definitions.json.
             
             Cache is invalidated when loraxmod version changes.
             </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.GetCacheDir">
            <summary>
            Get versioned cache directory.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.FetchUrlAsync(System.String)">
            <summary>
            Fetch URL content.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.GetLanguageDefinitionsAsync">
            <summary>
            Get language definitions (repo URLs and revisions).
            Cached after first fetch.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.BuildFileUrl(System.Text.Json.JsonElement,System.String)">
            <summary>
            Build raw GitHub URL for a file in src/.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.FetchAndCacheAsync(System.String,System.String,System.String)">
            <summary>
            Fetch a file from GitHub and cache it.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.GetSchemaPathAsync(System.String)">
            <summary>
            Get path to cached node-types.json for a language.
            Fetches from GitHub if not cached.
            </summary>
            <param name="language">Language name (e.g., 'javascript', 'python')</param>
            <returns>Path to cached node-types.json</returns>
            <exception cref="T:System.ArgumentException">If language not found</exception>
            <exception cref="T:System.InvalidOperationException">If fetch fails</exception>
        </member>
        <member name="M:LoraxMod.SchemaCache.GetGrammarPathAsync(System.String)">
            <summary>
            Get path to cached grammar.json for a language.
            Fetches from GitHub if not cached.
            </summary>
            <param name="language">Language name (e.g., 'javascript', 'python')</param>
            <returns>Path to cached grammar.json</returns>
            <exception cref="T:System.ArgumentException">If language not found</exception>
            <exception cref="T:System.InvalidOperationException">If fetch fails</exception>
        </member>
        <member name="M:LoraxMod.SchemaCache.ClearCache">
            <summary>
            Clear all cached schemas.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.ListCachedSchemas">
            <summary>
            List languages with cached schemas.
            </summary>
        </member>
        <member name="M:LoraxMod.SchemaCache.GetAvailableLanguagesAsync">
            <summary>
            Get list of all available languages.
            </summary>
        </member>
    </members>
</doc>