ai-research-survey

Systematic scan of agentic development research. What's signal, what's noise.
git clone https://git.shiptheloop.com/ai-research-survey.git
Log | Files | Refs

data.ts (4599B)


      1 export interface ChecklistItem {
      2   category: string;
      3   question: string;
      4   applies: boolean;
      5   answer: boolean;
      6   justification: string;
      7 }
      8 
      9 export interface Claim {
     10   claim: string;
     11   supported: string;
     12 }
     13 
     14 export interface RedFlag {
     15   flag: string;
     16   detail: string;
     17 }
     18 
     19 export interface PaperIndex {
     20   id: string;
     21   title: string;
     22   year: number;
     23   venue: string;
     24   tags: string[];
     25   score: number | null;
     26   archetype: string | null;
     27   games: string[];
     28   arxiv_id: string;
     29   doi: string;
     30   code_url: string | null;
     31   dna: (number | null)[] | null;
     32   paper_type: string | null;
     33   engagement: (number | null)[] | null;
     34 }
     35 
     36 export interface PaperDetail extends PaperIndex {
     37   category_scores: Record<string, number>;
     38   claims: Claim[];
     39   red_flags: RedFlag[];
     40   checklist: ChecklistItem[];
     41   key_findings: string;
     42   active_modules: string[];
     43   source_url: string;
     44 }
     45 
     46 export interface HistBin {
     47   lo: number;
     48   hi: number;
     49   count: number;
     50 }
     51 
     52 export interface Pipeline {
     53   registry_total: number;
     54   v5_opus: number;
     55   v5_haiku: number;
     56   deprecated_scan: number;
     57   not_scanned: number;
     58 }
     59 
     60 export interface Dashboard {
     61   n: number;
     62   median: number;
     63   mean: number;
     64   full_reproducibility_pct: number;
     65   histogram: HistBin[];
     66   category_rates: Record<string, number>;
     67   year_trends: Record<string, { n: number; mean: number; median: number }>;
     68   game_pcts: Record<string, number>;
     69   archetype_counts: Record<string, number>;
     70   tag_counts: Record<string, number>;
     71   pipeline: Pipeline;
     72 }
     73 
     74 export interface QuestionRate {
     75   rate: number;
     76   n: number;
     77 }
     78 
     79 export interface GroupStat {
     80   n: number;
     81   mean: number;
     82   median: number;
     83 }
     84 
     85 export interface Findings {
     86   question_rates: Record<string, QuestionRate>;
     87   year_category_trends: Record<string, Record<string, number>>;
     88   venue_stats: Record<string, GroupStat>;
     89   citation_band_stats: Record<string, GroupStat>;
     90   optimism_rigor: Record<string, { positive_n: number; positive_mean: number; nuanced_n: number; nuanced_mean: number; gap: number }>;
     91   homophily: { threshold: number; baseline_pct: number; high_cite_high_pct: number; high_cite_total: number };
     92   sampling_effect: { checkpoints: { n: number; median: number }[] };
     93   benchmark_monoculture: Record<string, { benchmark_only: number; total: number; pct: number }>;
     94   funding_gap: Record<string, GroupStat>;
     95   repro_detail: Record<string, QuestionRate | number> & { full_pass_count: number; full_pass_pct: number };
     96   game_pcts: Record<string, number>;
     97   network_insights: {
     98     foundational: { id: string; title: string; in_degree: number; score: number | null }[];
     99     quality_contagion: Record<string, { n: number; mean: number }>;
    100     rigor_diffusion: { id: string; title: string; score: number | null; in_degree: number; citer_mean: number | null; citer_n: number }[];
    101   };
    102   correlation: {
    103     categories: string[];
    104     matrix: { r: number | null; n: number }[][];
    105   };
    106   pca: {
    107     points: { id: string; x: number; y: number; archetype: string; score: number }[];
    108     categories: string[];
    109     pc1_loadings: number[];
    110     pc2_loadings: number[];
    111     pc1_variance_pct: number;
    112     pc2_variance_pct: number;
    113   };
    114 }
    115 
    116 export interface TensionClaim {
    117   paper_id: string;
    118   claim: string;
    119   supported: string;
    120   score: number;
    121   year: number | null;
    122 }
    123 
    124 export interface TensionSides {
    125   positive: TensionClaim[];
    126   nuanced: TensionClaim[];
    127 }
    128 
    129 export interface Tensions {
    130   productivity: TensionSides;
    131   benchmarks: TensionSides;
    132   agents: TensionSides;
    133   security: TensionSides;
    134   code_quality: TensionSides;
    135   scaling: TensionSides;
    136   [key: string]: TensionSides;
    137 }
    138 
    139 export interface NetNode {
    140   id: string;
    141   title: string;
    142   score: number | null;
    143   year: number | null;
    144   in_degree: number;
    145   out_degree: number;
    146   has_scan: boolean;
    147 }
    148 
    149 export interface CitationNetwork {
    150   nodes: NetNode[];
    151   edges: [string, string][];
    152 }
    153 
    154 const cache: Record<string, unknown> = {};
    155 
    156 async function fetchJson<T>(path: string): Promise<T> {
    157   if (cache[path]) return cache[path] as T;
    158   const resp = await fetch(path);
    159   const data = await resp.json();
    160   cache[path] = data;
    161   return data as T;
    162 }
    163 
    164 export const loadDashboard = () => fetchJson<Dashboard>('/data/dashboard.json');
    165 export const loadFindings = () => fetchJson<Findings>('/data/findings.json');
    166 export const loadPapersIndex = () => fetchJson<PaperIndex[]>('/data/papers-index.json');
    167 export const loadPaperDetail = (slug: string) => fetchJson<PaperDetail>(`/data/papers/${slug}.json`);
    168 export const loadNetwork = () => fetchJson<CitationNetwork>('/data/network.json');
    169 export const loadTensions = () => fetchJson<Tensions>('/data/tensions.json');

Impressum · Datenschutz