arcade-agent — version v0.2.0 — recovered with pkg
graph TD
Algorithms["Algorithms\n(76 entities)"]
Budget["Budget\n(5 entities)"]
Cache["Cache\n(5 entities)"]
Ci["Ci\n(46 entities)"]
Exporters["Exporters\n(17 entities)"]
Incremental["Incremental\n(5 entities)"]
Parsers["Parsers\n(103 entities)"]
Serialization["Serialization\n(11 entities)"]
Tools["Tools\n(63 entities)"]
Algorithms --> Tools
Cache --> Serialization
Ci --> Algorithms
Ci --> Exporters
Ci --> Serialization
Ci --> Tools
Serialization --> Algorithms
Serialization --> Parsers
Tools --> Algorithms
Tools --> Budget
Tools --> Cache
Tools --> Exporters
Tools --> Parsers
Tools --> Serialization
| Component | Responsibility | # | Entities |
|---|---|---|---|
| Algorithms | Entities in algorithms | 76 | arcade_agent.algorithms.acdc.acdc, arcade_agent.algorithms.arc._arc_cluster_name, arcade_agent.algorithms.arc._avg_structural_sim, arcade_agent.algorithms.arc._build_concern_vectors, arcade_agent.algorithms.arc._cluster_responsibility, arcade_agent.algorithms.arc._js_divergence, arcade_agent.algorithms.arc._js_similarity, arcade_agent.algorithms.arc._kl_divergence, ... (+68 more) |
| Budget | Entities in budget | 5 | arcade_agent.budget._deep_copy, arcade_agent.budget.enforce_budget, arcade_agent.budget.estimate_tokens, arcade_agent.budget.truncate_result, arcade_agent.tools.adapters.mcp._apply_budget |
| Cache | Entities in cache | 5 | arcade_agent.cache._cache_dir, arcade_agent.cache.cache_key, arcade_agent.cache.get_cached_graph, arcade_agent.cache.invalidate_cache, arcade_agent.cache.put_cached_graph |
| Ci | Entities in ci | 46 | arcade_agent.ci.arch_diff._delta, arcade_agent.ci.arch_diff._display_value, arcade_agent.ci.arch_diff.build_report, arcade_agent.ci.arch_diff.main, arcade_agent.ci.compare_baseline._all_metric_values, arcade_agent.ci.compare_baseline._build_component_rows, arcade_agent.ci.compare_baseline._build_dependency_rows, arcade_agent.ci.compare_baseline._build_metric_rows, ... (+38 more) |
| Exporters | Entities in exporters | 17 | arcade_agent.ci.compare_baseline._write_step_summary, arcade_agent.ci.compare_baseline.build_comment, arcade_agent.ci.compare_baseline.main, arcade_agent.exporters.dot._escape_dot, arcade_agent.exporters.dot.export_dot, arcade_agent.exporters.html.AlgorithmResult, arcade_agent.exporters.html.build_snapshot_mermaid, arcade_agent.exporters.html.export_comparison_html, ... (+9 more) |
| Incremental | Entities in incremental | 5 | arcade_agent.incremental.ExtractCache, arcade_agent.incremental.ExtractCache.__init__, arcade_agent.incremental.ExtractCache.get_or_extract, arcade_agent.incremental._facts_to_json, arcade_agent.incremental.file_key |
| Parsers | Entities in parsers | 103 | arcade_agent.ci.run_self_analysis._filter_non_architectural_entities, arcade_agent.incremental._facts_from_json, arcade_agent.models.graph, arcade_agent.parsers.base.LanguageParser, arcade_agent.parsers.base.LanguageParser.file_extensions, arcade_agent.parsers.base.LanguageParser.language, arcade_agent.parsers.base.LanguageParser.parse, arcade_agent.parsers.base.detect_language, ... (+95 more) |
| Serialization | Entities in serialization | 11 | arcade_agent.serialization._serialize_dataclass_dict, arcade_agent.serialization.architecture_to_dict, arcade_agent.serialization.dict_to_architecture, arcade_agent.serialization.dict_to_graph, arcade_agent.serialization.graph_to_dict, arcade_agent.serialization.load_architecture, arcade_agent.serialization.load_graph, arcade_agent.serialization.save_architecture, ... (+3 more) |
| Tools | Entities in tools | 63 | arcade_agent.ci.compare_baseline._run_a2a_comparison, arcade_agent.tools.adapters.mcp._build_server, arcade_agent.tools.adapters.mcp._make_summary, arcade_agent.tools.adapters.mcp._store, arcade_agent.tools.adapters.mcp.get_server, arcade_agent.tools.adapters.mcp.main, arcade_agent.tools.analyze.AnalysisResult, arcade_agent.tools.analyze.PartialAnalysisError, ... (+55 more) |
Circular dependency among 4 components: Algorithms <-> Cache <-> Serialization <-> 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, Cache, Serialization, Tools
Ci contains 46 entities but only 0 internal dependencies (0.00 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 Ci into smaller, focused components with single responsibilities.
Affects: Ci
Tools contains 63 entities but only 21 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 Tools into smaller, focused components with single responsibilities.
Affects: Tools
| Package | Entities |
|---|---|
arcade_agent.parsers |
100 |
arcade_agent.algorithms |
67 |
arcade_agent.tools |
62 |
arcade_agent.ci |
52 |
arcade_agent |
25 |
arcade_agent.exporters |
14 |
arcade_agent.tools.adapters |
7 |
arcade_agent.models |
4 |