Last modified by Robert Schaub on 2026/02/08 08:31

Show last authors
1 {{info}}
2 **Current Implementation (v2.6.33)** - Two-service architecture: Next.js web app for UI and analysis, .NET API for job persistence.
3 {{/info}}
4
5 = High-Level Architecture =
6
7 {{mermaid}}
8
9 graph TB
10 subgraph Client[Client Layer]
11 BROWSER[Web Browser]
12 end
13
14 subgraph NextJS[Next.js Web App]
15 ANALYZE[analyze page]
16 JOBS[jobs page]
17 JOBVIEW[jobs id page]
18 ANALYZE_API[api fh analyze]
19 JOBS_API[api fh jobs]
20 RUN_JOB[api internal run-job]
21 ORCH[orchestrated.ts]
22 CANON[monolithic-canonical.ts]
23 SHARED[Shared Modules]
24 WEBSEARCH[web-search.ts]
25 MBFC[source-reliability.ts]
26 end
27
28 subgraph DotNet[.NET API]
29 DOTNET_API[ASP.NET Core API]
30 JOBS_CTRL[JobsController]
31 HEALTH_CTRL[HealthController]
32 SQLITE[(SQLite factharbor.db)]
33 end
34
35 subgraph External[External Services]
36 LLM[LLM Providers]
37 SEARCH[Search Providers]
38 end
39
40 BROWSER --> ANALYZE
41 BROWSER --> JOBS
42 BROWSER --> JOBVIEW
43 ANALYZE --> ANALYZE_API
44 ANALYZE_API --> DOTNET_API
45 DOTNET_API --> SQLITE
46 RUN_JOB --> ORCH
47 RUN_JOB --> CANON
48 ORCH --> SHARED
49 CANON --> SHARED
50 ORCH --> LLM
51 CANON --> LLM
52 ORCH --> WEBSEARCH
53 WEBSEARCH --> SEARCH
54 SHARED --> MBFC
55
56 {{/mermaid}}
57
58 == Component Summary ==
59
60 |= Component |= Technology |= Purpose
61 | **Web App** | Next.js 14 | UI, API routes, AKEL pipeline
62 | **API** | ASP.NET Core | Job persistence, health checks
63 | **Database** | SQLite | Jobs, events, results (JSON blob)
64 | **LLM** | AI SDK | Multi-provider LLM abstraction
65 | **Search** | Google CSE / SerpAPI | Web search for evidence
66
67 == Key Files ==
68
69 |= File |= Lines |= Purpose
70 | ##orchestrated.ts## | ~9000 | Main orchestrated pipeline
71 | ##monolithic-canonical.ts## | ~1100 | Monolithic canonical pipeline
72 | ##scopes.ts## | ~600 | Scope detection
73 | ##aggregation.ts## | ~300 | Verdict aggregation
74
75 == Environment Variables ==
76
77 |= Variable |= Default |= Purpose
78 | ##LLM_PROVIDER## | anthropic | Primary LLM provider
79 | ##FH_SEARCH_ENABLED## | true | Enable web search
80 | ##FH_DETERMINISTIC## | true | Zero temperature