| 8 | |
| 9 | @dataclass(frozen=True) |
| 10 | class CommandGraph: |
| 11 | builtins: tuple[PortingModule, ...] |
| 12 | plugin_like: tuple[PortingModule, ...] |
| 13 | skill_like: tuple[PortingModule, ...] |
| 14 | |
| 15 | def flattened(self) -> tuple[PortingModule, ...]: |
| 16 | return self.builtins + self.plugin_like + self.skill_like |
| 17 | |
| 18 | def as_markdown(self) -> str: |
| 19 | lines = [ |
| 20 | '# Command Graph', |
| 21 | '', |
| 22 | f'Builtins: {len(self.builtins)}', |
| 23 | f'Plugin-like commands: {len(self.plugin_like)}', |
| 24 | f'Skill-like commands: {len(self.skill_like)}', |
| 25 | ] |
| 26 | return '\n'.join(lines) |
| 27 | |
| 28 | |
| 29 | def build_command_graph() -> CommandGraph: |
no outgoing calls
no test coverage detected