# romario-francisco-soares/craft-anything architecture

> Architecture diagram of the GitHub repository romario-francisco-soares/craft-anything, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/romario-francisco-soares/craft-anything
- Repository: https://github.com/romario-francisco-soares/craft-anything

## Overview

Craft Anything is a Rust clean-room reverse-engineering and recreation product, exposed through desktop, CLI, MCP, and a limited in-browser file viewer. Its documented main workflow is Study → Build → Check → Ready: a user selects a target and desired result, inspection tools gather observations, a coding agent builds a separate project, and checks guide refinement. The graph preserves the major inspection, evidence, agent, and interface branches. Arrows cite README claims or visible source references; dashed links with null evidence mark connections whose implementation was not sampled.

Main entry points: [`crates/engine/src/tools/investigation_tools.rs`](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/tools/investigation_tools.rs) (Inspection tools), [`crates/engine/src/tool.rs`](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/tool.rs) (Tool engine), [`crates/engine/src/session.rs`](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/session.rs) (Session state), [`crates/ai/src/rebuild/mod.rs`](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/rebuild/mod.rs) (Rebuild workflow)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User interfaces"]
  node_desktop["Desktop app<br/>[main.rs]"]
  node_workbench["Workbench UI<br/>[engine_ui.rs]"]
  node_cli["CLI<br/>[main.rs]"]
  node_browser["Browser viewer<br/>[viewer.rs]"]
  node_mcp["MCP server<br/>[lib.rs]"]
end

subgraph group_orchestration["Project orchestration"]
  node_engine["Tool engine<br/>[tool.rs]"]
  node_session[("Session state<br/>[session.rs]")]
  node_project[("Project store<br/>[project.rs]")]
  node_target["Target handling<br/>[target.rs]"]
  node_cleanroom["Clean-room policy<br/>[clean_room.rs]"]
end

subgraph group_inspection["Study and inspection"]
  node_toolset["Inspection tools"]
  node_formats["File formats<br/>[pe.rs]"]
  node_disassembly["Program analysis<br/>[program.rs]"]
  node_jsanalysis["JavaScript analysis<br/>[facts.rs]"]
  node_evidence[("Evidence ledger<br/>[lib.rs]")]
end

subgraph group_buildcheck["Build and validation"]
  node_rebuild["Rebuild workflow<br/>[mod.rs]"]
  node_analysis["Comparison analysis<br/>[native.rs]"]
end

subgraph group_integrations["AI and integrations"]
  node_agent["Coding agents<br/>[mod.rs]"]
  node_aihub["AI hub<br/>[agent.rs]"]
  node_externaltools["Inspection engines<br/>[lib.rs]"]
end

node_user(("User"))

node_user -->|"starts work"| node_desktop
node_user -->|"runs commands"| node_cli
node_user -->|"opens file"| node_browser
node_user -->|"connects agent"| node_mcp
node_desktop -.->|"presents workflow"| node_workbench
node_desktop -->|"starts engine"| node_engine
node_cli -.->|"dispatches tools"| node_engine
node_mcp -->|"exposes tools"| node_engine
node_browser -->|"triages files"| node_formats
node_engine -->|"uses session"| node_session
node_session -->|"opens targets"| node_target
node_session -->|"persists evidence"| node_project
node_session -->|"applies policy"| node_cleanroom
node_engine -.->|"dispatches inspection"| node_toolset
node_toolset -.->|"parses files"| node_formats
node_toolset -.->|"analyzes programs"| node_disassembly
node_toolset -.->|"inspects scripts"| node_jsanalysis
node_toolset -.->|"records findings"| node_evidence
node_user -->|"requests recreation"| node_rebuild
node_rebuild -->|"asks agent build"| node_agent
node_agent -.->|"writes project"| node_project
node_rebuild -->|"checks result"| node_analysis
node_analysis -->|"guides refinement"| node_rebuild
node_agent -.->|"uses AI backend"| node_aihub
node_toolset -.->|"uses engines"| node_externaltools

click node_desktop "https://github.com/romario-francisco-soares/craft-anything/blob/main/apps/craft-anything/src/main.rs"
click node_workbench "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ui-egui/src/engine_ui.rs"
click node_cli "https://github.com/romario-francisco-soares/craft-anything/blob/main/apps/craft-anything-cli/src/main.rs"
click node_browser "https://github.com/romario-francisco-soares/craft-anything/blob/main/apps/craft-anything-web/src/viewer.rs"
click node_mcp "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/mcp/src/lib.rs"
click node_engine "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/tool.rs"
click node_session "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/session.rs"
click node_project "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/project.rs"
click node_target "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/target.rs"
click node_cleanroom "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/clean_room.rs"
click node_toolset "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/tools/investigation_tools.rs"
click node_formats "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/formats/src/pe.rs"
click node_disassembly "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/disasm/src/program.rs"
click node_jsanalysis "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/js/src/facts.rs"
click node_evidence "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/evidence/src/lib.rs"
click node_rebuild "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/rebuild/mod.rs"
click node_analysis "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/analysis/src/native.rs"
click node_agent "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/cli_agents/mod.rs"
click node_aihub "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/agent.rs"
click node_externaltools "https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engines/src/lib.rs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_desktop,node_workbench,node_cli,node_browser,node_mcp,node_user toneBlue
class node_engine,node_session,node_project,node_target,node_cleanroom toneAmber
class node_toolset,node_formats,node_disassembly,node_jsanalysis,node_evidence toneMint
class node_rebuild,node_analysis toneRose
class node_agent,node_aihub,node_externaltools toneIndigo
```

## Components

### User interfaces

- [Desktop app](https://github.com/romario-francisco-soares/craft-anything/blob/main/apps/craft-anything/src/main.rs): `apps/craft-anything/src/main.rs`
- [Workbench UI](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ui-egui/src/engine_ui.rs): `crates/ui-egui/src/engine_ui.rs`
- [CLI](https://github.com/romario-francisco-soares/craft-anything/blob/main/apps/craft-anything-cli/src/main.rs): `apps/craft-anything-cli/src/main.rs`
- [Browser viewer](https://github.com/romario-francisco-soares/craft-anything/blob/main/apps/craft-anything-web/src/viewer.rs): `apps/craft-anything-web/src/viewer.rs`
- [MCP server](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/mcp/src/lib.rs): `crates/mcp/src/lib.rs`

### Project orchestration

- [Tool engine](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/tool.rs): `crates/engine/src/tool.rs`
- [Session state](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/session.rs): `crates/engine/src/session.rs`
- [Project store](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/project.rs): `crates/engine/src/project.rs`
- [Target handling](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/target.rs): `crates/engine/src/target.rs`
- [Clean-room policy](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/clean_room.rs): `crates/engine/src/clean_room.rs`

### Study and inspection

- [Inspection tools](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engine/src/tools/investigation_tools.rs): `crates/engine/src/tools/investigation_tools.rs`
- [File formats](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/formats/src/pe.rs): `crates/formats/src/pe.rs`
- [Program analysis](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/disasm/src/program.rs): `crates/disasm/src/program.rs`
- [JavaScript analysis](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/js/src/facts.rs): `crates/js/src/facts.rs`
- [Evidence ledger](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/evidence/src/lib.rs): `crates/evidence/src/lib.rs`

### Build and validation

- [Rebuild workflow](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/rebuild/mod.rs): `crates/ai/src/rebuild/mod.rs`
- [Comparison analysis](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/analysis/src/native.rs): `crates/analysis/src/native.rs`

### AI and integrations

- [Coding agents](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/cli_agents/mod.rs): `crates/ai/src/cli_agents/mod.rs`
- [AI hub](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/ai/src/agent.rs): `crates/ai/src/agent.rs`
- [Inspection engines](https://github.com/romario-francisco-soares/craft-anything/blob/main/crates/engines/src/lib.rs): `crates/engines/src/lib.rs`

### Other components

- **User**

## Connections

- User → Desktop app: starts work (evidence: `README.md`)
- User → CLI: runs commands (evidence: `README.md`)
- User → Browser viewer: opens file (evidence: `README.md`)
- User → MCP server: connects agent (evidence: `README.md`)
- Desktop app → Workbench UI: presents workflow
- Desktop app → Tool engine: starts engine (evidence: `apps/craft-anything/src/main.rs`)
- CLI → Tool engine: dispatches tools
- MCP server → Tool engine: exposes tools (evidence: `README.md`)
- Browser viewer → File formats: triages files
- Tool engine → Session state: uses session (evidence: `crates/engine/src/tool.rs`)
- Session state → Target handling: opens targets (evidence: `crates/engine/src/session.rs`)
- Session state → Project store: persists evidence (evidence: `crates/engine/src/session.rs`)
- Session state → Clean-room policy: applies policy (evidence: `crates/engine/src/session.rs`)
- Tool engine → Inspection tools: dispatches inspection
- Inspection tools → File formats: parses files
- Inspection tools → Program analysis: analyzes programs
- Inspection tools → JavaScript analysis: inspects scripts
- Inspection tools → Evidence ledger: records findings
- User → Rebuild workflow: requests recreation (evidence: `README.md`)
- Rebuild workflow → Coding agents: asks agent build (evidence: `README.md`)
- Coding agents → Project store: writes project
- Rebuild workflow → Comparison analysis: checks result (evidence: `README.md`)
- Comparison analysis → Rebuild workflow: guides refinement (evidence: `README.md`)
- Coding agents → AI hub: uses AI backend
- Inspection tools → Inspection engines: uses engines
