File Size Overall
  • There are 88 files with 6,889 lines of code.
    • 0 very long files (0 lines of code)
    • 1 long files (577 lines of code)
    • 8 medium size files (2,170 lines of code)
    • 16 small files (2,029 lines of code)
    • 63 very small files (2,113 lines of code)
0% | 8% | 31% | 29% | 30%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
py0% | 11% | 39% | 25% | 23%
tsx0% | 0% | 39% | 0% | 60%
yaml0% | 0% | 0% | 80% | 19%
ts0% | 0% | 0% | 24% | 75%
js0% | 0% | 0% | 0% | 100%
css0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
cjs0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
app0% | 29% | 12% | 12% | 45%
cli0% | 0% | 91% | 0% | 8%
ingestion0% | 0% | 53% | 0% | 46%
stores0% | 0% | 66% | 23% | 9%
models0% | 0% | 100% | 0% | 0%
evals0% | 0% | 16% | 54% | 29%
retrieval0% | 0% | 47% | 27% | 25%
templates0% | 0% | 0% | 87% | 12%
configs0% | 0% | 0% | 58% | 41%
extensions0% | 0% | 0% | 0% | 100%
prompts0% | 0% | 0% | 0% | 100%
telemetry0% | 0% | 0% | 0% | 100%
docker0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
main.py
in app/backend/app
577 20
pipeline.py
in ingestion
332 9
321 9
config.py
in cli
296 7
synthesis.py
in models
291 3
qgen.py
in evals/generator
257 5
KnowledgeDocumentsPanel.tsx
in app/frontend/src/components
236 5
pipeline.py
in retrieval
234 9
main.py
in cli
203 7
openai_evals.py
in evals/runners
195 5
auto_pipeline.py
in evals/generator
160 2
runner.py
in evals/graders
150 5
memory_store.py
in app/backend/app
145 2
local_judge.py
in evals/runners
144 5
reranker.py
in retrieval
134 8
114 6
114 -
harness.py
in evals
112 2
112 -
custom-qdrant.yaml
in templates
112 -
110 -
110 -
qdrant-hybrid.yaml
in templates
107 -
useStableOptions.ts
in app/frontend/src/chatkit-react
106 2
candidates.py
in evals/generator
104 3
assistant_agent.py
in app/backend/app
97 7
corpus_iter.py
in evals/generator
92 1
Home.tsx
in app/frontend/src/components
90 -
expansion.py
in retrieval
84 3
useChatKit.ts
in app/frontend/src/chatkit-react
83 1
ChatKit.tsx
in app/frontend/src/chatkit-react
80 -
79 -
openai.yaml
in templates
79 -
useThreadCitations.ts
in app/frontend/src/hooks
72 1
xml_aware.py
in ingestion/chunkers
65 3
ChatKitPanel.tsx
in app/frontend/src/components
65 1
DocumentPreviewModal.tsx
in app/frontend/src/components
64 2
utils.py
in ingestion/chunkers
60 5
my_chunker.py
in extensions
59 3
sampler.py
in evals/generator
53 1
schema.py
in evals/datasets
52 2
html.py
in evals/reporters
51 1
config.ts
in app/frontend/src/lib
50 -
retrieval.py
in evals/metrics
48 6
base.py
in stores
48 5
48 3
heading.py
in ingestion/chunkers
44 1
recursive.py
in ingestion/chunkers
41 2
ThemeToggle.tsx
in app/frontend/src/components
41 -
useKnowledgeDocuments.ts
in app/frontend/src/hooks
40 1
Large Files That Change Often (Top 4)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
File# lines≈ tokens
to read
# changes
(1y)
≈ lines edited
per change
lines read per
line changed
main.py
in app/backend/app
577 ~3k–10k 6 ~30 ~20
321 ~2k–5k 2 ~10 ~30
112 ~700–2k 2 ~100 ~1
79 ~500–1.5k 2 ~70 ~1

Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).

Files With Most Units (Top 50)
File# lines# units
main.py
in app/backend/app
577 20
pipeline.py
in ingestion
332 9
321 9
pipeline.py
in retrieval
234 9
reranker.py
in retrieval
134 8
assistant_agent.py
in app/backend/app
97 7
config.py
in cli
296 7
main.py
in cli
203 7
retrieval.py
in evals/metrics
48 6
114 6
qgen.py
in evals/generator
257 5
openai_evals.py
in evals/runners
195 5
local_judge.py
in evals/runners
144 5
runner.py
in evals/graders
150 5
utils.py
in ingestion/chunkers
60 5
KnowledgeDocumentsPanel.tsx
in app/frontend/src/components
236 5
base.py
in stores
48 5
qa.py
in evals/metrics
22 4
documents.py
in app/backend/app
23 4
candidates.py
in evals/generator
104 3
xml_aware.py
in ingestion/chunkers
65 3
19 3
synthesis.py
in models
291 3
48 3
my_chunker.py
in extensions
59 3
expansion.py
in retrieval
84 3
harness.py
in evals
112 2
schema.py
in evals/datasets
52 2
auto_pipeline.py
in evals/generator
160 2
canonicalize.py
in evals/generator
36 2
judge_prompts.py
in evals/graders
22 2
recursive.py
in ingestion/chunkers
41 2
DocumentPreviewModal.tsx
in app/frontend/src/components
64 2
useColorScheme.ts
in app/frontend/src/hooks
37 2
useStableOptions.ts
in app/frontend/src/chatkit-react
106 2
memory_store.py
in app/backend/app
145 2
corpus_iter.py
in evals/generator
92 1
sampler.py
in evals/generator
53 1
md.py
in evals/reporters
30 1
html.py
in evals/reporters
51 1
rubrics.py
in evals
32 1
schema.py
in evals/graders
19 1
hybrid.py
in ingestion/chunkers
28 1
heading.py
in ingestion/chunkers
44 1
vite.config.ts
in app/frontend
20 1
ChatKitPanel.tsx
in app/frontend/src/components
65 1
useThreadCitations.ts
in app/frontend/src/hooks
72 1
useKnowledgeDocuments.ts
in app/frontend/src/hooks
40 1
useChatKit.ts
in app/frontend/src/chatkit-react
83 1
citations.py
in retrieval
21 1
Files With Long Lines (Top 9)

There are 9 files with lines longer than 120 characters. In total, there are 28 long lines.

File# lines# units# long lines
KnowledgeDocumentsPanel.tsx
in app/frontend/src/components
236 5 10
Home.tsx
in app/frontend/src/components
90 - 4
qgen.py
in evals/generator
257 5 3
pipeline.py
in ingestion
332 9 3
DocumentPreviewModal.tsx
in app/frontend/src/components
64 2 3
321 9 2
ThemeToggle.tsx
in app/frontend/src/components
41 - 1
ChatKitPanel.tsx
in app/frontend/src/components
65 1 1
reranker.py
in retrieval
134 8 1
Correlations

File Size vs. Commits (all time): 4 points

stores/openai_file_search.py x: 2 commits (all time) y: 321 lines of code configs/default.openai.yaml x: 2 commits (all time) y: 79 lines of code configs/default.qdrant.yaml x: 2 commits (all time) y: 112 lines of code app/backend/app/main.py x: 6 commits (all time) y: 577 lines of code
577.0
lines of code
  min: 79.0
  average: 272.25
  25th percentile: 87.25
  median: 216.5
  75th percentile: 513.0
  max: 577.0
0 6.0
commits (all time)
min: 2.0 | average: 3.0 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 5.0 | max: 6.0

File Size vs. Contributors (all time): 4 points

stores/openai_file_search.py x: 1 contributors (all time) y: 321 lines of code configs/default.openai.yaml x: 2 contributors (all time) y: 79 lines of code configs/default.qdrant.yaml x: 2 contributors (all time) y: 112 lines of code app/backend/app/main.py x: 3 contributors (all time) y: 577 lines of code
577.0
lines of code
  min: 79.0
  average: 272.25
  25th percentile: 87.25
  median: 216.5
  75th percentile: 513.0
  max: 577.0
0 3.0
contributors (all time)
min: 1.0 | average: 2.0 | 25th percentile: 1.25 | median: 2.0 | 75th percentile: 2.75 | max: 3.0

File Size vs. Commits (30 days): 0 points

No data for "commits (30d)" vs. "lines of code".

File Size vs. Contributors (30 days): 0 points

No data for "contributors (30d)" vs. "lines of code".


File Size vs. Commits (90 days): 0 points

No data for "commits (90d)" vs. "lines of code".

File Size vs. Contributors (90 days): 0 points

No data for "contributors (90d)" vs. "lines of code".

About This Analysis
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...