docs: update architecture diagrams

This commit is contained in:
Archlens Bot
2026-06-17 08:41:00 +00:00
parent c4fb1ed699
commit f671cdacf8
3 changed files with 157 additions and 157 deletions

View File

@@ -1,10 +1,10 @@
graph TD
Application[Application]
Domain[Domain]
Presentation[Presentation]
Domain[Domain]
Adapters[Adapters]
Presentation -->|1 dep| Application
Application[Application]
Application -->|2 deps| Domain
Presentation -->|11 deps| Adapters
Adapters -->|24 deps| Domain
Presentation -->|1 dep| Domain
Application -->|2 deps| Domain
Presentation -->|1 dep| Application
Adapters -->|24 deps| Domain

View File

@@ -16,19 +16,19 @@ graph TD
archlens_html[archlens-html]
end
archlens_application --> archlens_domain
archlens --> archlens_tree_sitter
archlens --> archlens_application
archlens --> archlens_d2
archlens --> archlens_toml_config
archlens --> archlens_domain
archlens --> archlens_file_writer
archlens --> archlens_tree_sitter
archlens --> archlens_cargo_workspace
archlens --> archlens_mermaid
archlens --> archlens_stdout_writer
archlens --> archlens_html
archlens --> archlens_ascii
archlens --> archlens_file_writer
archlens --> archlens_cargo_workspace
archlens --> archlens_stdout_writer
archlens --> archlens_python_project
archlens --> archlens_walkdir
archlens --> archlens_html
archlens --> archlens_d2
archlens --> archlens_mermaid
archlens_tree_sitter --> archlens_domain
archlens_walkdir --> archlens_domain
archlens_mermaid --> archlens_domain

View File

@@ -1,36 +1,7 @@
classDiagram
namespace Domain {
class OutputConfig
class DiagramLevel
class RenderOutput
class RenderedFile
class SourceFile
class ModuleName
class Language
class FilePath
class RelationshipKind
class Visibility
class CodeElementKind
class RuleKind
class RuleViolation
class BoundaryRule
class AnalysisConfig
class AnalysisResult
class AnalysisWarning
class Relationship
class CodeElement
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
class OutputWriter
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
class DomainError
}
namespace Application {
class AnalyzeCodebase
class AnalyzeCodebaseResult
namespace Presentation {
class Cli
class Command
}
namespace Adapters {
class MermaidRenderer
@@ -64,10 +35,149 @@ classDiagram
class MemberToml
class PackageSection
}
namespace Presentation {
class Cli
class Command
namespace Application {
class AnalyzeCodebase
class AnalyzeCodebaseResult
}
namespace Domain {
class OutputConfig
class DiagramLevel
class RenderOutput
class RenderedFile
class SourceFile
class ModuleName
class Language
class FilePath
class RelationshipKind
class Visibility
class CodeElementKind
class RuleKind
class RuleViolation
class BoundaryRule
class AnalysisConfig
class AnalysisResult
class AnalysisWarning
class Relationship
class CodeElement
class FileDiscovery
class ConfigLoader
class ProjectAnalyzer
class OutputWriter
class DiagramRenderer
class SourceAnalyzer
class CodeGraph
class DomainError
}
Cli : command Option
Cli : path PathBuf
Cli : level String
Cli : format String
Cli : output Option
Cli : config Option
Cli : scope Option
Cli : exclude Vec
Cli : include_tests bool
Cli : no_weights bool
Cli : watch bool
Cli : since Option
Cli : split_by_module bool
Cli : strict bool
Cli : check bool
Cli : verbose u8
MermaidRenderer : level DiagramLevel
MermaidRenderer : show_weights bool
MermaidRenderer : +new() -] Self
MermaidRenderer : +with_level(level DiagramLevel) -] Self
MermaidRenderer : +with_weights(show bool) -] Self
MermaidRenderer : -display_name(qualified str) -] str
MermaidRenderer : -format_element_name(element CodeElement) -] String
MermaidRenderer : -format_visibility(visibility Visibility) -] static str
MermaidRenderer : -render_class_diagram(graph CodeGraph) -] String
MermaidRenderer : -push_class_lines(lines mut Vec[String], deferred mut Vec[String], element CodeElement, indent str, in_namespace bool)
MermaidRenderer : -render_module_flowchart(graph CodeGraph) -] String
MermaidRenderer : -render_project_flowchart(graph CodeGraph) -] String
MermaidRenderer : -sanitize_id(name str) -] String
AsciiRenderer : +new() -] Self
AsciiRenderer : -format_kind(element CodeElement) -] static str
PythonProjectAnalyzer : +new() -] Self
<<private>> ProjectSection
ProjectSection : name Option
ProjectSection : dependencies Vec
<<private>> PoetrySection
PoetrySection : name Option
PoetrySection : dependencies HashMap
<<private>> ToolSection
ToolSection : poetry PoetrySection
<<private>> PyprojectToml
PyprojectToml : project Option
PyprojectToml : tool ToolSection
WalkdirDiscovery : +new() -] Self
WalkdirDiscovery : -detect_language(path Path) -] Option[Language]
WalkdirDiscovery : -is_test_file(path Path, language Language) -] bool
WalkdirDiscovery : -is_excluded(path Path, root Path, excludes [String]) -] bool
TreeSitterAnalyzer : rust RustExtractor
TreeSitterAnalyzer : python PythonExtractor
TreeSitterAnalyzer : +new() -] Self
TreeSitterAnalyzer : -extractor_for(language Language) -] Option[dyn LanguageExtractor]
FileOutputWriter : output_path OutputPath
FileOutputWriter : +new(output_dir PathBuf) -] Self
FileOutputWriter : +single_file(path PathBuf) -] Self
<<private>> OutputPath
StdoutOutputWriter : +new() -] Self
<<private>> RawRules
RawRules : allow Vec
RawRules : deny Vec
<<private>> RawConfig
RawConfig : analysis RawAnalysis
RawConfig : output RawOutput
RawConfig : modules HashMap
RawConfig : rules RawRules
<<private>> RawAnalysis
RawAnalysis : exclude Vec
RawAnalysis : level Option
<<private>> RawOutput
RawOutput : format Option
RawOutput : path Option
RawOutput : split_by_module bool
TomlConfigLoader : raw RawConfig
TomlConfigLoader : +from_path(path Path) -] Result[Self, DomainError]
TomlConfigLoader : -parse_level(level Option[String]) -] DiagramLevel
D2Renderer : level DiagramLevel
D2Renderer : +new() -] Self
D2Renderer : +with_level(level DiagramLevel) -] Self
HtmlRenderer : +new() -] Self
<<private>> GraphData
GraphData : nodes Vec
GraphData : edges Vec
<<private>> NodeData
NodeData : id String
NodeData : label String
NodeData : module String
NodeData : kind String
NodeData : fields Vec
NodeData : methods Vec
<<private>> EdgeData
EdgeData : source String
EdgeData : target String
EdgeData : kind String
CargoWorkspaceAnalyzer : +new() -] Self
<<private>> WorkspaceToml
WorkspaceToml : workspace Option
<<private>> WorkspaceSection
WorkspaceSection : members Vec
<<private>> MemberToml
MemberToml : package Option
MemberToml : dependencies HashMap
<<private>> PackageSection
PackageSection : name String
AnalyzeCodebase : file_discovery F
AnalyzeCodebase : source_analyzer S
AnalyzeCodebase : +new(file_discovery F, source_analyzer S) -] Self
AnalyzeCodebase : +execute(root Path, config AnalysisConfig) -] Result[AnalyzeCodebaseResult, DomainError]
AnalyzeCodebaseResult : graph CodeGraph
AnalyzeCodebaseResult : warnings Vec
AnalyzeCodebaseResult : +graph() -] CodeGraph
AnalyzeCodebaseResult : +warnings() -] [AnalysisWarning]
OutputConfig : split_by_module bool
OutputConfig : output_path Option
OutputConfig : +with_split_by_module(split bool) -] Self
@@ -197,116 +307,6 @@ classDiagram
CodeGraph : +qualify() -] CodeGraph
CodeGraph : +cross_module_deps_for(module ModuleName) -] Vec[(ModuleName, usize)]
CodeGraph : +subgraph_by_module(module ModuleName) -] CodeGraph
AnalyzeCodebase : file_discovery F
AnalyzeCodebase : source_analyzer S
AnalyzeCodebase : +new(file_discovery F, source_analyzer S) -] Self
AnalyzeCodebase : +execute(root Path, config AnalysisConfig) -] Result[AnalyzeCodebaseResult, DomainError]
AnalyzeCodebaseResult : graph CodeGraph
AnalyzeCodebaseResult : warnings Vec
AnalyzeCodebaseResult : +graph() -] CodeGraph
AnalyzeCodebaseResult : +warnings() -] [AnalysisWarning]
MermaidRenderer : level DiagramLevel
MermaidRenderer : show_weights bool
MermaidRenderer : +new() -] Self
MermaidRenderer : +with_level(level DiagramLevel) -] Self
MermaidRenderer : +with_weights(show bool) -] Self
MermaidRenderer : -display_name(qualified str) -] str
MermaidRenderer : -format_element_name(element CodeElement) -] String
MermaidRenderer : -format_visibility(visibility Visibility) -] static str
MermaidRenderer : -render_class_diagram(graph CodeGraph) -] String
MermaidRenderer : -push_class_lines(lines mut Vec[String], deferred mut Vec[String], element CodeElement, indent str, in_namespace bool)
MermaidRenderer : -render_module_flowchart(graph CodeGraph) -] String
MermaidRenderer : -render_project_flowchart(graph CodeGraph) -] String
MermaidRenderer : -sanitize_id(name str) -] String
AsciiRenderer : +new() -] Self
AsciiRenderer : -format_kind(element CodeElement) -] static str
PythonProjectAnalyzer : +new() -] Self
<<private>> ProjectSection
ProjectSection : name Option
ProjectSection : dependencies Vec
<<private>> PoetrySection
PoetrySection : name Option
PoetrySection : dependencies HashMap
<<private>> ToolSection
ToolSection : poetry PoetrySection
<<private>> PyprojectToml
PyprojectToml : project Option
PyprojectToml : tool ToolSection
WalkdirDiscovery : +new() -] Self
WalkdirDiscovery : -detect_language(path Path) -] Option[Language]
WalkdirDiscovery : -is_test_file(path Path, language Language) -] bool
WalkdirDiscovery : -is_excluded(path Path, root Path, excludes [String]) -] bool
TreeSitterAnalyzer : rust RustExtractor
TreeSitterAnalyzer : python PythonExtractor
TreeSitterAnalyzer : +new() -] Self
TreeSitterAnalyzer : -extractor_for(language Language) -] Option[dyn LanguageExtractor]
FileOutputWriter : output_path OutputPath
FileOutputWriter : +new(output_dir PathBuf) -] Self
FileOutputWriter : +single_file(path PathBuf) -] Self
<<private>> OutputPath
StdoutOutputWriter : +new() -] Self
<<private>> RawRules
RawRules : allow Vec
RawRules : deny Vec
<<private>> RawConfig
RawConfig : analysis RawAnalysis
RawConfig : output RawOutput
RawConfig : modules HashMap
RawConfig : rules RawRules
<<private>> RawAnalysis
RawAnalysis : exclude Vec
RawAnalysis : level Option
<<private>> RawOutput
RawOutput : format Option
RawOutput : path Option
RawOutput : split_by_module bool
TomlConfigLoader : raw RawConfig
TomlConfigLoader : +from_path(path Path) -] Result[Self, DomainError]
TomlConfigLoader : -parse_level(level Option[String]) -] DiagramLevel
D2Renderer : level DiagramLevel
D2Renderer : +new() -] Self
D2Renderer : +with_level(level DiagramLevel) -] Self
HtmlRenderer : +new() -] Self
<<private>> GraphData
GraphData : nodes Vec
GraphData : edges Vec
<<private>> NodeData
NodeData : id String
NodeData : label String
NodeData : module String
NodeData : kind String
NodeData : fields Vec
NodeData : methods Vec
<<private>> EdgeData
EdgeData : source String
EdgeData : target String
EdgeData : kind String
CargoWorkspaceAnalyzer : +new() -] Self
<<private>> WorkspaceToml
WorkspaceToml : workspace Option
<<private>> WorkspaceSection
WorkspaceSection : members Vec
<<private>> MemberToml
MemberToml : package Option
MemberToml : dependencies HashMap
<<private>> PackageSection
PackageSection : name String
Cli : command Option
Cli : path PathBuf
Cli : level String
Cli : format String
Cli : output Option
Cli : config Option
Cli : scope Option
Cli : exclude Vec
Cli : include_tests bool
Cli : no_weights bool
Cli : watch bool
Cli : since Option
Cli : split_by_module bool
Cli : strict bool
Cli : check bool
Cli : verbose u8
SourceFile --> FilePath
SourceFile --> Language
RuleViolation --> RuleKind