arcade_agent — version local — recovered with pkg
graph TD
Default["Default\n(21 entities)"]
Algorithms["Algorithms\n(65 entities)"]
Exporters["Exporters\n(15 entities)"]
Parsers["Parsers\n(58 entities)"]
Tools["Tools\n(41 entities)"]
Algorithms --> Tools
Default --> Algorithms
Default --> Parsers
Exporters --> Tools
Tools --> Default
Tools --> Parsers
| Component | Responsibility | # | Entities |
|---|---|---|---|
| Default | Entities in (default) | 21 | budget._deep_copy, budget.enforce_budget, budget.estimate_tokens, budget.truncate_result, cache._cache_dir, cache.cache_key, cache.get_cached_graph, cache.invalidate_cache, ... (+13 more) |
| Algorithms | Entities in algorithms | 65 | algorithms.acdc.acdc, algorithms.arc._arc_cluster_name, algorithms.arc._avg_structural_sim, algorithms.arc._build_concern_vectors, algorithms.arc._cluster_responsibility, algorithms.arc._js_divergence, algorithms.arc._js_similarity, algorithms.arc._kl_divergence, ... (+57 more) |
| Exporters | Entities in exporters | 15 | exporters.dot._escape_dot, exporters.dot.export_dot, exporters.html.AlgorithmResult, exporters.html.build_snapshot_mermaid, exporters.html.export_comparison_html, exporters.html.export_evolution_html, exporters.html.export_html, exporters.json.build_component_summary, ... (+7 more) |
| Parsers | Entities in parsers | 58 | models.graph, parsers.base.LanguageParser, parsers.base.LanguageParser.file_extensions, parsers.base.LanguageParser.language, parsers.base.LanguageParser.parse, parsers.base.detect_language, parsers.base.get_parser, parsers.base.register_parser, ... (+50 more) |
| Tools | Entities in tools | 41 | tools.adapters.mcp._make_summary, tools.adapters.mcp._store, tools.adapters.mcp.get_server, tools.adapters.mcp.main, tools.explain_component.explain_component, tools.find_relevant._score_entity, tools.find_relevant._tokenize, tools.find_relevant.find_relevant, ... (+33 more) |
Circular dependency among 3 components: Algorithms <-> Default <-> Tools
Why: Dependency cycles make components tightly coupled — you cannot change, test, or deploy any component in the cycle independently. This hinders maintainability, increases build times, and makes the system harder to understand.
Fix: Break the cycle by introducing an interface/abstraction that one component depends on, inverting the dependency direction. Consider the Dependency Inversion Principle (DIP).
Affects: Algorithms, Default, Tools
Default contains 21 entities but only 7 internal dependencies (0.33 per entity), suggesting multiple responsibilities.
Why: Large components are harder to understand, test, and maintain. When their internals are also sparsely connected, that usually means the component is acting as a bucket for unrelated concerns rather than a cohesive module.
Fix: Consider splitting Default into smaller, focused components with single responsibilities.
Affects: Default
Tools contains 41 entities but only 7 internal dependencies (0.17 per entity), suggesting multiple responsibilities.
Why: Large components are harder to understand, test, and maintain. When their internals are also sparsely connected, that usually means the component is acting as a bucket for unrelated concerns rather than a cohesive module.
Fix: Consider splitting Tools into smaller, focused components with single responsibilities.
Affects: Tools
| Package | Entities |
|---|---|
parsers |
57 |
algorithms |
55 |
tools |
44 |
(default) |
19 |
exporters |
14 |
tools.adapters |
7 |
models |
4 |