THU-MAIC/OpenMAIC

Open Multi-Agent Interactive Classroom — Get an immersive, multi-agent learning experience in just one click

TypeScript★ 35,504+837 that day#10 on trending

Analyzed September 11, 2026 at d5be393 (main) with jscpd 5.4.0 in 1.5s. Code duplication went from 5.01% on Sep 1 to 4.95% on Sep 11.

4.95%duplicated code · 16,408 of 331,452 lines
935clones in code
1,451code files of 2,696 scanned
8.23%duplicated over all files · 2,814 clones

The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code, and 6 generated files: lib/video-export/emit-hyperframes/katex-assets.ts, lib/video-export/emit-hyperframes/noto-cjk-assets.ts, lib/video-export/emit-hyperframes/noto-script-font-assets.ts, packages/@openmaic/renderer/scripts/generate-fonts-css.mjs, packages/@openmaic/renderer/scripts/generate-katex-fonts.mjs, packages/@openmaic/renderer/src/snapshot/katex-fonts-embed.ts.

Largest clones in the code

  • 1029 lines in 2 placestypescript5,440 tokens
    3import { ShapePathFormulasKeys } from '@openmaic/dsl';
    4
    5export interface ShapePoolItem {
    6  viewBox: [number, number];
    7  path: string;
    8  special?: boolean;
    9  pathFormula?: ShapePathFormulasKeys;
    10  outlined?: boolean;
    11  pptxShapeType?: string;
    12  title?: string;
    

    First 10 of 1029 lines.

  • 247 lines in 2 placestypescript2,432 tokens
    30export const SHAPE_PATH_FORMULAS: Record<string, ShapePathFormula> = {
    31  [ShapePathFormulasKeys.ROUND_RECT]: {
    32    editable: true,
    33    defaultValue: [0.125],
    34    range: [[0, 0.5]],
    35    relative: ['left'],
    36    getBaseSize: [(width, height) => Math.min(width, height)],
    37    formula: (width, height, values) => {
    38      const radius = Math.min(width, height) * values![0];
    39      return `M ${radius} 0 L ${width - radius} 0 Q ${width} 0 ${width} ${radius} L ${width} ${height - radius} Q ${width} ${height} ${width - radius} ${height…
    

    First 10 of 247 lines.

  • 684 lines in 2 placestypescript1,797 tokens
    16import type { SceneOutline } from '@/lib/types/generation';
    17
    18export type {
    19  PBLProject,
    20  PBLRole,
    21  PBLDocument,
    22  PBLScenarioConfig,
    23  PBLScenarioCharacter,
    24  PBLSceneVisual,
    25  PBLThreadSeat,
    

    First 10 of 684 lines.

7 more
Largest clones over all files, tests and data included
By format, code only
FormatFilesLinesClonesDuplicated linesDuplication
typescript990231,02256010,2554.44%
tsx37484,1012324,1004.88%
javascript7315,2811432,05313.43%
bash13874000%
perl1174000%
By format, all files
FormatFilesLinesClonesDuplicated linesDuplication
typescript1,874435,0702,05232,7047.52%
tsx42592,5033575,5055.95%
json8249,19720210,05820.44%
javascript8516,0701482,18413.59%
markdown13220,885283791.81%
txt7789919925.22%
css83,5637511.43%
yaml271,6764663.94%
text236504558.46%
markup121,0652211.97%

Trending appearances

DayRankStarsFilesLinesClonesAll filesCodeHealthCommit
Sep 11, 2026#1035,504 (+837)2,696622,6312,8148.23%4.95%—d5be393
Sep 2, 2026#329,790 (+3,128)2,643610,0502,7348.25%5.01%—d4ef5fa
Sep 1, 2026#328,806 (+2,824)2,643610,0502,7348.25%5.01%—32bfd19

Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.