From 2e394fa65cd093340b05fe78620bc944bd9e2fbd Mon Sep 17 00:00:00 2001 From: Tuncay Ensioglu Date: Sat, 9 May 2026 05:46:40 +0200 Subject: [PATCH 1/2] feat: add ai research assistant suite module --- README.md | 4 + ai-research-assistant-suite/.env.example | 5 + ai-research-assistant-suite/.gitignore | 5 + ai-research-assistant-suite/README.md | 51 + .../docs/demo-script.md | 9 + .../demo/ai-research-assistant-suite-demo.mp4 | Bin 0 -> 77802 bytes .../docs/demo/dashboard.png | Bin 0 -> 141760 bytes ai-research-assistant-suite/package-lock.json | 2418 +++++++++++++++++ ai-research-assistant-suite/package.json | 19 + .../src/data/demo-data.ts | 128 + ai-research-assistant-suite/src/index.ts | 10 + .../src/lib/assistant-service.ts | 58 + .../src/lib/gap-finder.ts | 49 + .../src/lib/peer-review.ts | 94 + .../src/lib/reproducibility.ts | 39 + ai-research-assistant-suite/src/server.ts | 213 ++ ai-research-assistant-suite/src/types.ts | 81 + .../tests/assistant-suite.test.ts | 41 + ai-research-assistant-suite/tsconfig.json | 15 + ai-research-assistant-suite/vitest.config.ts | 9 + 20 files changed, 3248 insertions(+) create mode 100644 ai-research-assistant-suite/.env.example create mode 100644 ai-research-assistant-suite/.gitignore create mode 100644 ai-research-assistant-suite/README.md create mode 100644 ai-research-assistant-suite/docs/demo-script.md create mode 100644 ai-research-assistant-suite/docs/demo/ai-research-assistant-suite-demo.mp4 create mode 100644 ai-research-assistant-suite/docs/demo/dashboard.png create mode 100644 ai-research-assistant-suite/package-lock.json create mode 100644 ai-research-assistant-suite/package.json create mode 100644 ai-research-assistant-suite/src/data/demo-data.ts create mode 100644 ai-research-assistant-suite/src/index.ts create mode 100644 ai-research-assistant-suite/src/lib/assistant-service.ts create mode 100644 ai-research-assistant-suite/src/lib/gap-finder.ts create mode 100644 ai-research-assistant-suite/src/lib/peer-review.ts create mode 100644 ai-research-assistant-suite/src/lib/reproducibility.ts create mode 100644 ai-research-assistant-suite/src/server.ts create mode 100644 ai-research-assistant-suite/src/types.ts create mode 100644 ai-research-assistant-suite/tests/assistant-suite.test.ts create mode 100644 ai-research-assistant-suite/tsconfig.json create mode 100644 ai-research-assistant-suite/vitest.config.ts diff --git a/README.md b/README.md index d338cf6..020f3f3 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,6 @@ # deepevents.ai deepevents.ai main codebase + +## Modules + +- `ai-research-assistant-suite/` - automated peer review reports, reproducibility checks, and research gap discovery for SCIBASE.AI issue #16. diff --git a/ai-research-assistant-suite/.env.example b/ai-research-assistant-suite/.env.example new file mode 100644 index 0000000..fec7025 --- /dev/null +++ b/ai-research-assistant-suite/.env.example @@ -0,0 +1,5 @@ +PORT=3002 +SCIBASE_AI_ASSISTANT_DEMO_MODE=true +REVIEW_TEMPLATE_DOMAIN=biology +REPRODUCIBILITY_SANDBOX=docker-disabled-demo +GAP_FINDER_CORPUS_VERSION=demo-2026-05 diff --git a/ai-research-assistant-suite/.gitignore b/ai-research-assistant-suite/.gitignore new file mode 100644 index 0000000..d6f48c2 --- /dev/null +++ b/ai-research-assistant-suite/.gitignore @@ -0,0 +1,5 @@ +node_modules/ +dist/ +coverage/ +.env +.DS_Store diff --git a/ai-research-assistant-suite/README.md b/ai-research-assistant-suite/README.md new file mode 100644 index 0000000..5e80cb2 --- /dev/null +++ b/ai-research-assistant-suite/README.md @@ -0,0 +1,51 @@ +# SCIBASE.AI AI Research Assistant Suite + +Self-contained implementation for issue #16. The module provides deterministic assistant workflows that can later be backed by hosted LLMs or scientific models: + +- Auto peer review reports with domain templates, statistical checks, ethics/data availability checks, and claims-versus-evidence flags +- Reproducibility confidence checks across notebooks, execution environments, dataset manifests, run commands, and deterministic seeds +- Research gap finder using project keywords, citation signals, replication counts, and unresolved questions from a seed corpus +- Combined project dashboard with review score, reproducibility score, top gap novelty, and readiness score +- JSON APIs and demo UI for reviewer smoke tests +- Unit tests for review generation, reproducibility scoring, gap discovery, and dashboard composition + +## Run locally + +```bash +cd ai-research-assistant-suite +npm install +npm run dev +``` + +Open `http://localhost:3002`. + +## Verify + +```bash +npm run typecheck +npm test +npm run build +``` + +## Demo API + +```bash +curl -s http://localhost:3002/api/dashboard/project_organoid_response | jq . +curl -s http://localhost:3002/api/review/project_organoid_response | jq . +curl -s http://localhost:3002/api/reproducibility/project_organoid_response | jq . +curl -s http://localhost:3002/api/gaps/project_organoid_response | jq . +``` + +## Demo artifact + +- `docs/demo/dashboard.png` +- `docs/demo/ai-research-assistant-suite-demo.mp4` + +## Production integration notes + +The deterministic services are designed as stable boundaries for production model adapters: + +- `generatePeerReview` can accept LLM-generated findings after schema validation. +- `runReproducibilityChecks` can call a sandbox runner and merge execution logs into the same report shape. +- `findResearchGaps` can swap the seed corpus for vector search, citation graph traversal, or Semantic Scholar/PubMed connectors. +- The current implementation avoids raw private-content export and uses project-local artifacts only. diff --git a/ai-research-assistant-suite/docs/demo-script.md b/ai-research-assistant-suite/docs/demo-script.md new file mode 100644 index 0000000..b52211f --- /dev/null +++ b/ai-research-assistant-suite/docs/demo-script.md @@ -0,0 +1,9 @@ +# Demo script + +1. Start with `npm run dev`. +2. Open `http://localhost:3002`. +3. Show the selected project and keyword context. +4. Show the review score and findings table. +5. Show reproducibility confidence and the recommended reproduction command. +6. Show top research gaps ranked by novelty. +7. Run `npm test` to verify deterministic assistant logic. diff --git a/ai-research-assistant-suite/docs/demo/ai-research-assistant-suite-demo.mp4 b/ai-research-assistant-suite/docs/demo/ai-research-assistant-suite-demo.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..1cbc0aa4fb79bbe070f00a414134d4c657fa963d GIT binary patch literal 77802 zcmeFYWl&u0vM@ThJHg%EU4uIWx8Mx!F2Ownhv4om!QCymTX2HA`!~FMAGxQ#f4A!X zxOKXwS9?FYp49`h0001qnTw}`rL(;)000j7pde&3ax-DIb>LtH0N~ke?d{zF0Dz6H zn}sQe{x^U)006KZ0APTR&ws)HLjbA&hy3}!JpXSTH~;{r@8V=+4KjXpvHqt`i2vsJ z?`)uU|0n#9cK&beLV;o+wf+gD0GhfugE#`9jkC+YQ-LykjBP-Ct+R{se=Nv{PwvN}f#?VP_niMI zpgx8z4Prm=1HeAXgZ#PJm{?hvSXo#|Y%GmE*tj_UW&G!g^ZpK^+#oM8FjD}{`xXGt z97HRYKYsz|-U|i*AU-Av0x&FKIH&~%fVMc^`AydS`ta}(jcM%S^siY33)BB69RPsi z?DEfye~2F){Q0rtK!6Dv$j3^2z=s}$kliN#kukALo`|Ghu{IVb+VIv@VI?+8F=n#sq+gW%t1+Q)hK!GnXIH_l%FSpIbZ z>EGc%dIpea4?=Yi@_{f1gt8#y2jPeO8H69lHxCGTK`8XU^8c^q<71uw`}+RBl?6fh zK+jf_k3IDPAJ4{*J!#}>>S6?<+P1)d=!cE;zgIAzs>jL5!QrFG_)lQ4{8yPoQR-s< zk&wXD=%3(^%?$vR5@w)Mg8ieC0Ew_>PCy_4j55X+HrJH^- zERigepPhe{8zhV*CiYH15>_rw5+`;xHZ~Gtc1|u9P9u;(nhE5(dF$KJuk(%#OQkHo~t*vLeXl>}5|39^%z0*!6#O{@i3`B?Z^NQ~@^Y&@NTf-D~F zd@LTUtn4JVKtT(j2Z^(*F^JW(WaT0;v2e1tH8KE&vXZzs0c~t7ok1Lr2alzqHWC*LCr|_^5hsa_y}h-O1xPaZ4<#Fk zvyG(*s5AeeU?H({`lk^SOIstCkB(T{xd5GPj6hBxy|Im}laZ%^iM_3ZkqbyR0nHJp z0JpRQr2siP8GZPeIT_gkok6o@Y~bJt;w?=DL5pQzWNPH_F$`k^V@o6Fk47w=fd354 z9cXE8;bIK3**gI349x8vK-PaL9YCShKu=I^K{ig7f3pUlvKSsrx-Sl*0ufU4&YHCRxQkm;bO2SCZ@yCU@6 zZ(_e%Tg7oV?$E|%(bCKmcav(tyyNtcPV*(x$Hf~WqeE5jWLIOsr`<7hPuu!)+FF61B)1v+&3xV~@sdh0Jw9ra|dRl}{(-W<(0LC)R5il$MQGWDHg; zm+iCrw}}`zc#qcF7`Nk^Pk#H4U+4kIdqn+BoPUIwjt3O=pp}Egdam35YIsvnDYqE^ zDid88pl{X=<3TuH`R>5gQJDDm)2Fzm2)8u-IuUtMDH68SRUGPpUznGT?`@th-MY)BRj6#cE@u#3@9`}wKw(LE8s3A|HN()>+= zF>*rjK--LH>x$?!+3+hAe@(j^@X6or*dM@^IwVs*Uk_JEHXzkjG=x0y$Kj; z^iY1s8IMJ~yiJXPpA$*wh zYRon{Wg+TsZn-|GC&p`&_Y}H_n&*qq8?auK!;Ukreb4ACNIw|1)1G)N(gc(^$P&8h zG;I=JbEBeeH{d_T1W+Du#tX%eF)5*==t1@pXS>OVl$S_>5zAW>i+-}T>omxVB){s( z4*Cj^qbJOh_H0k1q@N2R&!@xi*k^u8N5&`rW+JcF-!ohE$FWBylfem#GS*y{_&FBg zjL^mdg*W?J@k{$+OrgJDJ{H>Xq89OM`&;zIHR+0Q2%{RPdli(tP8d~)xW zJ8|!wpBfZZ?+u*gv$|Xy{0B~P%%!iAV`mQ%Ucv_j_ZHuaG9(_}-Gh&HOdjAgo>N7| z+{Lj{G~PZr6s8jzK6GL|$U*_y;j;k@7RJHH80%I?Z9 z`UDQ0s>-=CKOfo;*@aleI_S)0!`|&c9&>TVz&FttdI}`x^5|xO7 zZ73_|(k1KU9e=_{)CLXbXkj56aT9eODKqBSof8Tci1BK3-RE4VnS{Q=*~4nby4&fn z;!G?nJd~>LQ=-u>n8l()e7NM@nyix1De{+}vjui0Sp4*O^_l`tiSGFu7)NzTC$>|xv1(@*ReU(-0@W9+R@4X*egs-8(VgYawcuH1L^c+&5S8y3^0}CeGoo`Lh zQ?qZM+C7QrLh1jQEGt6`&Xv`ivu@qTKZds?3qo`}l7(&pD$vzf`4eEpo|rwA)kFU`es zydjNze!-hVxAUqZ9q2#CrEo~CTX3GQZ`B8baF4@V&b}2agXKbrWM4j24(Kx~#F!Jq zPoIs}Hn`!K?o`!yOGJNG@d(r68F)m|aqzwP!^r&TV)DKnry#o^fb_aI`g)zMGy`gPe;qMP#|;;=c){6?#bx(UR}5X4_fV!06y8cdk=^t%?tzkN=`{yho+ zgsG1G5U$QMlJbc3%Q(KI6nm|=JygtWW4`d^cktY!G(vg~y&VoG#iwA5sBVFFA*1yo z;T@y4wahd+JT_;faE-5DU8KBX-1+f}$@x|&*NC)Q2CVa8fJi^7;v=KG=#j~1^_@V` zRlKMDN)PM@>;-zYsfE289wQ^dg_fqQE>8(*sfwQAClApx#L&NOFDW+9K9B}~uN1B3 zLkV4iOpfcxiC2?5?&3*C2~_kPUU}*Vk19hp-qs`cViQ==)Zb{oqQ;m}Q_mskF0OWq zS`vNDQn)!CFcJ2tn06JoRtX5pmaA5Ze_T@lWpOHtmeDeLQDKhM4-@$4T&oFvTQhp<5`2znc9L z@$)vy8(%Ww`Lr4Uyo}sqlP7D-A}sLKAQSnBj5LjzX64>epR*HMa+V6nwUmoY857I& zP}wWmH;S=9->~v`7LRKNJALZQl+TPJr^0f-yeM9rD_4wno2<5bAV*llfoXg>yGvL!9`+ z)ZY=Rd|QKg7+j8KnQh@Q8^TuZ)1OMwGUqVCU*QOAx2-1@z0NTmbT{q0z2azm%j3$K z0krFKR!=wvP+~`A*-lJID>VZ0Q74Cj?`f@V-crTdRabxohi57ojN37Ij=ectXl!e& z4c}3>K;knweH$<4i}`p&YYN`?al@@YPz2^|M|6KTyj8vSq=(kq1{W-l{yMqhbVpOOk1sMvm4RkNPr`0IdDayFux65n`^i>+SdwHe3^=KkRvpFlWj?` zMS}XB{`s(BkzNW~d+M?V)wYfuZ1Un8tP>)^VVdb%;ajyPx8-lUHsn3JB&`A;sY;pr7P z0ajG_JzgOr&Km|*cMqs0*T?n(oOl5jn8w!n3~XKNGdIHwb14H!4`-jEBq>Ph?J<)@ zB=Jm3az-x{w4}6wjXLo!!mV#c!&NhFXEz%YfTthP8i#- zWT^Zs14s7RTZrLs#B$4#wEV-QF~Bes+ntdfA6P~uIbh@&<8;#rJy1Aqm`z@8;ohF!CxQ7Uzd<*uGY$cFBptt`OGA@wqsa2+rzY zx2f%hl?@OhpRzUyk{NcTY`je2>Obf(kfz}c@?bq z_YQl<=@`>;9)cLSGl6<`^pw94iOaaxc72I*fwr3$f#=~c7CUIaIZl1JgG0I*unpoCgPsfgz7T;O-g z=KH8SFMpGoEy@16sU;rYh>IDyccus6s28d^_=X(^oCp#h31(^2Wq*NDFJIyr6R10- zTkpw=-j=`$IhQaiZJOAR_t33B0_48I`NoA0Q+d=Uj1P|HRNu(tCK{?Yej@qb@(cti#_BkASeT^&V+~C?OGH*rHwm5Z*f{JRl576B8Y?-ZFEsj{t7dVoT>&n z80z|Z_tfdfDB`>B&%UfH{-V7(r5Ktm52+-K>0dF&N$zcwpg3(ks-{)zPoJIMTMuqa zREu$0JAik09eA=({ADh z6sM<8CaWfxNhxOr5!0;t=8ID);FG+KB#@F`7r*dU!l9Ltzxn%-6!7oo`KWv@nAUIM z$C7YnLkO)$x$PotW34{ zH`!ttj{D)GF2%75cR4@L=tznV2VzJE{gSg-kC}fgy(aJ(uRMYyAAE~%TSAfuJB94y zpo+*2U^WL=)@9R4;H;)o*2(>~j8X5;FW~|o{d58!nJ0Mm%|sX9AFjPSEiAhYmrj>U zWo!N=T7Io}oTRB-i0(KxA%l?mfb>~Is|YMM`=tg?@Q=dE7l&|CuwIWQA-yqJv7B>= zC-*3-gkw}-c1`HQv)bWT{thO) zFx(Xx>g(=)fDeQvRQvTeiFJ9nub@MWg<0+FGanklgs#}R^U=eNByj=FULurzh^rWH%SP4@6+{r8 z&-^^|!(_GM6!bTy)6~bz49-YY2{?cm!U@UfNKNtBGs+t$m18zu?^@1*5PTrs@Dd#j z6uVnC%c;xmw~`P@6cm?dm>*9%+K5p;0Si8#Lo3|7d^L; zczy!!pPkiWIt#EsBynVtmY;esQ;+? zV;^`O<`}Thv`8*NNH!dO{~bZhXK;A@Tzp!e?JDCgTO{-#+hP+)Sb=(50b9J|T_^`X zZvUX%gKDSx&R;CAB;xl1>0^rE?V}$URR(iux~sq(XQz3%#g{C*B5zPQEwmeW5tvx6 zFI9cMuyPG1AfA9Oa-Anl>A?8FH~kB0@5=H|f=tv+qxq4_X6vK>LvFAeDNawaOGr`y z-mlRz$!%cEnL&1f=i4n6I}{E1R|o1Su%yi8bFY1@zJ5A*rU_q+38+GmDw(uWNtUNG z?ZAE_)Cg)mX;tm2!)QI^bM+e@4ZkaGn=x%wt2HJH7?GnA5q%2VA4;0wgRZm{N74C) z{#7$f^%@G#h^7dC*iWmxIez)TDNe6o1p6dA>TV>cUgJ#EE z7aIj$C8aG7GQ7Vrz2SU0v-5Z06*pGu2J@zY0h9Wt-J|5_A~;_cuwl1zwhS|c`gb@R zBpLpm%75h@`TJH&m0v}WaMp(-kV+w`E!rKCZ)0@NmtLY4XO2ruW<12AQtYqSr>*rU zdH+{d4#kRD0H5)^u4(Ld*sD2%C4KTWDtB~Coq-0+(-%3TptiC!4h7tMi@DF=nr^p{ znd5$s6A@j8w#Hgg&upPDP4C+}t>5HT@P+q{Wlujz zrN5TK4&dNrxMEdMJpAMn);$in8Iom}dowy!Gbn0sis>ZnXqK~8oG;)X(kCNK|_ zolQ&}(YM}&ydj0sO2I3z0n`7Rvc*9LB?Hv++JU#FX%M`NH>u(3uO(@h+%L-*QK=5o z?L;;`7cjN~B5MT?Q#-JX5hNpmTaeLRY#Kr}F0ohu=^Q4XM)XvPQ7GIvgk`!xzbVLT z^lT9sH1IpS_#SsRFpSehOH}Cey55ST8^X;Lx7n}YMFTTAv;LPjkfxB{6Dz|WX(8#n zkQxJF>DD(7vy-%WLVtR%&jnbeGDTiRpnho7VRNjjpHh%kz`rBFI0L(?DXoseQJXhA z5RU~U!0U>Fr~i6^83J2d*pr3@5_c2^^v#Ue8LGwT!4Xl^KAFkWkDWlzJREe`p;}Vq zdsO2PZG4tr|JoUcjez1Jerb##IvKiGiuD%OxE|>=W0x&vY@ZdsHJ}6zR&paL{xi!r zd#3fUADa68P9*@d2dwwnZ=dcjWN>gFY!dpUdbr;gQ-UEoQ_TR|sU_rMhV=wQ!{Cav z#%TfZusS&JsNGnxeZ@||6 z%0yvZi@2eOj0wciNz9s(wwAE~z4}pnc_ao|X!SBRFZde157Va74vWu7e8dbcXGI!J zM=lX=4&qGr=fT)nMM=bHeu$J~D3o$82ISoL5HZqh(d(_H{!sx`&+(b8-_?#$;LylJ zkA0A+%#6i!7yY9&mpvOJdOtYcrc&C9p#9A!7Z9PZ$x?-fgel*rU{uo+1EvqHlz1wa z>AmLoGp24bDDMs{^Ci|zfafn00+qwniAC}I{KC{wPy$s3@Rkw6U#3v3! z6h3CZ7~P(*64h}z6-54QmivNVB*;}MuE^1kwj>ozV)I^zCZmk$j=W7m^JO?+3zZZ< z95DA!W=)Q1jGS|~h_EGjrt=`9JRcngt}N+?tMr}SPh)BT|56Ssz)d4=6h0gIcEuj{ ztjES$sB^m(GH8l7Zms$p+;WN$+<>QjN`1;}pKCIvkZpe;pB|p$_epX9s(9tOX`D!@keSnGLsXxl!tzt*(Ny=viN9F*s`3uMZ=? zY4g1%aW|6m27#oL!vgTKKIk`iZiGFcA zwW$uO4iJdb!{Jez8vtE4fXg_1OA<|LN%Qg^75(s7BFtV#V%Wx|HSWD0{mMn-gm@S9}6ht?tG3qBjjSKo-=bdac~$+eQx z#6@r$(~jQ7{1URx`d)ZCRmLkL0;fy}cmHIXK*GO&vgyrIs$4+-7M~XTL%wxJ^~SqU zD8SyA(o}aYsB*>a4E-k8B24X}=ESmG5o)KBp#{l@pHp0PMO@G${9=RmLV4aYG!#m5 z8E($7Bz{tQ&1FXW0OqH?c~~V{EK*EP;3+MUFP&%Kd`K6aKJd@p?SL`aXSN}qxb-vj zVw_>RU#B-rUVq%K$g^#|%2mV-?Tk?L441tuA(}(NbF#C7bo~!l)nbz^irp7CVd%yna$wY>1{i#V;>*F#Ya` zacUVVzgtkYVK6htD?n-?F!Cb`v%WM_fBczFdyX7QzDIY&)`}p(o7Y{e$ybPj<-=#(mLpHaG^fvlh-fmIIAr z*JpyNS7_s(iLVo9eNzx)XV|i+iD&u=3ygdu9z5w;B3ieJqRajFD0z^9SI8D~N4{$` zK@JTHQ*&NeI}Eax)G&j|a#@UAA(i|ELODj~gdq|{jFE(qJi&%0-E$)1>P(bq#r!M1 zh&ilhUO)$j2^5T*eYyF%B~2JlG}zy~-e^gXI!)8)?CbNx@tPYlEf3eTDiXfXJ4kNb zAvYH&WO(TGM+fq#{^>NoA^xhqp<_81XD|p|p*Vhe5R#(|O09^+{Gw^(E-{}8ul~9+d@L^ z;^|1*aN!NqIIvn=0Qv_{`}8oUJ&`B19(h5qej1-n_c;69d{>>4R_0Hz@MW)+Nx>5p zuaMBMVKj(&pm!g!wiMn^xD}YwC4~5=j>aG$@~vllY??-_PV5Sm?lL+B5pj^2vHJ#$ zUS+6H7usqloB5cK?aQI`XbT7&B1ek-OuhK&ZA)Gf*$Bqgwnq79&gSj^c*7==hS`Pe zl21+dR`e5mzcei2%oCov-WiS69g=~qYEMI88xmG2m+ig9NF8iPNl=vi{9<{QU15Rv ze9Yxco)ca3d5Gu4q^P$}c;xw_v-kOF<*3C}uUzO;>Vgdp+)?D`uO4QN+Sx}bFV~dG z+BTu4ed-)UE71nX_(1^}=2|ZJE^YROpLy~EryeBBKFR--gh^7vS}ZgQ9K~&V;TS}9 zMOc;@W1qnE9vaWouW-Z7I7xrh@K8%LAN5zVhDP6pTIU)wlifMxSJ`(t%0c|Ide4@) zI%bZoMx++)bg}DEHz4LVsmLK`S?vCUIwnC%i=IrIERXyPRNt3Ru+mq_e#8q78!nd0 z$A+WfRhV|AT0X9jIpZhyFBV}!l^aML7L?SYj2EtigJXS)5tY3-)AV3R&v4agVD^k@ zXERn;P$bNYo6>P7Vttp`?j12Nk|)rJ@$_hPCdG=;V_iWL!9{})P88;c*Y&nysmLNm zNq5j_yq8cJv?u546E#A#UN9UCYuiVidDO2lk&km8F6+p95mrh

>KPZ2BI3m+y}; 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 z vIKLg`YZGMjI3yVDe%U8W^`n)J*=69LATMi72TOyV$;a=pSuX{$<;US zIWVxeupC=2X*jKrxn@^Df16Lhj;leNru*@KxGr|uWb6I)N=;$hGgFR+vtI!x%sCCr z`xv-0fz|~w&PyzD+Rwn?8Ot-6nhMF3NtPIZ;ju|t3ILiM+@=K+eU&j(9Kk<_E z0+w6R7Y+BS9%_5EPWH2om59oE{|BB6x3R}pTU_m}kvh?%DWbr@aNeBN+I4m2#^vuh zpI-REKH($F`@hDS41DWeFSDKcigmZwoz9~x7?_T5iW}#iV3_eSvQAC=w|$I}G1NUA zD}(z)&prHO7w@GorDx$wM#UA~!0}B!OQ8GQ9Ot#U3hL+sLK>YAfj z%K1?cuO-OMb2+hb=`xU6j5a(hPn>&aFv`Gv%Cw(@fr0BL&?Ixlc}uYbyg=Lo28Q6( zP!00a;W`<_Oo28?Uj%9e2Jdp@;4M*GwF9V*dBKhbxN=602sj(eU<1ZHgN@^?HNfD_ zK@Hy4(+4BZnW8F(7ho_3<9wig7sq+0Tt(5mfA<^kisA-_J{^z=rvy^07Z`xe+A@b( zp2vaN4b|Y9gFtgk80Wo2_I&r(Vqh5YOksY2su*TDs9@Cs>N91W_nMH;(M@1X2Wqr( zob>^l#~aX9LyK*=#r44Q8|dx%eAMywd|gt#tqu0}e0?&#J==slZvz7c5=gCp(ZAfg-vn9{l^X$p=_AC|hybX!%c}|pi8xq^7?FSM{a+D?l zwmJ;GY=)KOpcVo~6$bPaywJwVfR^OI`kOix7)tF;jJF|qn{d^Q?h%-`vDVy#y$y}+ z(Rv%&S|h8uGFoo~`v$}$^3i%5*p-6xdPpeJW{=j};IR>4U$6Bv;UaCc-bU?!l2xRQ z*4soDX`}TvIYruNe;Yo0MNE+fX{C+!w_#&yBo=807)JZs&=Fh`T4|&G?LKP~T4|&G zZIX&KXe({BzfDQUb99`Xq*mJKI5}{-jf5g?_UJe{DIHH}D{XX~oV+3p(n_QAIJr4+ z@dfIDG1lQ>G(pxQz!oKNx^rj_k^}vWHb{=R#3C$udc cXO}|Du<-x?EF7@=xoiFg;4T+rkAG|g0CQp}u>b%7 literal 0 HcmV?d00001 diff --git a/ai-research-assistant-suite/docs/demo/dashboard.png b/ai-research-assistant-suite/docs/demo/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..99d511fcb143725e5918f2bf7fc38a55677da863 GIT binary patch literal 141760 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 z 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 o(2$T2i5NW39=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.3.tgz", + "integrity": "sha512-x35CNW/ANXG3hE/EZpRU8MXX1JDN86hBb2wMGAtltkz7pc6cxgjpy1OMMfDosOQ+2hWqIkag/fGok1Yady9nGw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.3.tgz", + "integrity": "sha512-xw3xtkDApIOGayehp2+Rz4zimfkaX65r4t47iy+ymQB2G4iJCBBfj0ogVg5jpvjpn8UWn/+q9tprxleYeNp3Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.3.tgz", + "integrity": "sha512-vo6Y5Qfpx7/5EaamIwi0WqW2+zfiusVihKatLvtN1VFVy3D13uERk/6gZLU1UiHRL6fDXqj/ELIeVRGnvcTE1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.3.tgz", + "integrity": "sha512-D+0QGcZhBzTN82weOnsSlY7V7+RMmPuF1CkbxyMAGE8+ZHeUjyb76ZiWmBlCu//AQQONvxcqRbwZTajZKqjuOw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.3.tgz", + "integrity": "sha512-6HnvHCT7fDyj6R0Ph7A6x8dQS/S38MClRWeDLqc0MdfWkxjiu1HSDYrdPhqSILzjTIC/pnXbbJbo+ft+gy/9hQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.3.tgz", + "integrity": "sha512-KHLgC3WKlUYW3ShFKnnosZDOJ0xjg9zp7au3sIm2bs/tGBeC2ipmvRh/N7JKi0t9Ue20C0dpEshi8WUubg+cnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.3.tgz", + "integrity": "sha512-DV6fJoxEYWJOvaZIsok7KrYl0tPvga5OZ2yvKHNNYyk/2roMLqQAbGhr78EQ5YhHpnhLKJD3S1WFusAkmUuV5g==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.3.tgz", + "integrity": "sha512-mQKoJAzvuOs6F+TZybQO4GOTSMUu7v0WdxEk24krQ/uUxXoPTtHjuaUuPmFhtBcM4K0ons8nrE3JyhTuCFtT/w==", + "cpu": [ + "arm" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.3.tgz", + "integrity": "sha512-Whjj2qoiJ6+OOJMGptTYazaJvjOJm+iKHpXQM1P3LzGjt7Ff++Tp7nH4N8J/BUA7R9IHfDyx4DJIflifwnbmIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.3.tgz", + "integrity": "sha512-4YTNHKqGng5+yiZt3mg77nmyuCfmNfX4fPmyUapBcIk+BdwSwmCWGXOUxhXbBEkFHtoN5boLj/5NON+u5QC9tg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.3.tgz", + "integrity": "sha512-SU3kNlhkpI4UqlUc2VXPGK9o886ZsSeGfMAX2ba2b8DKmMXq4AL7KUrkSWVbb7koVqx41Yczx6dx5PNargIrEA==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.3.tgz", + "integrity": "sha512-6lDLl5h4TXpB1mTf2rQWnAk/LcXrx9vBfu/DT5TIPhvMhRWaZ5MxkIc8u4lJAmBo6klTe1ywXIUHFjylW505sg==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.3.tgz", + "integrity": "sha512-BMo8bOw8evlup/8G+cj5xWtPyp93xPdyoSN16Zy90Q2QZ0ZYRhCt6ZJSwbrRzG9HApFabjwj2p25TUPDWrhzqQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.3.tgz", + "integrity": "sha512-E0L8X1dZN1/Rph+5VPF6Xj2G7JJvMACVXtamTJIDrVI44Y3K+G8gQaMEAavbqCGTa16InptiVrX6eM6pmJ+7qA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.3.tgz", + "integrity": "sha512-oZJ/WHaVfHUiRAtmTAeo3DcevNsVvH8mbvodjZy7D5QKvCefO371SiKRpxoDcCxB3PTRTLayWBkvmDQKTcX/sw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.3.tgz", + "integrity": "sha512-Dhbyh7j9FybM3YaTgaHmVALwA8AkUwTPccyCQ79TG9AJUsMQqgN1DDEZNr4+QUfwiWvLDumW5vdwzoeUF+TNxQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.3.tgz", + "integrity": "sha512-cJd1X5XhHHlltkaypz1UcWLA8AcoIi1aWhsvaWDskD1oz2eKCypnqvTQ8ykMNI0RSmm7NkTdSqSSD7zM0xa6Ig==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.3.tgz", + "integrity": "sha512-DAZDBHQfG2oQuhY7mc6I3/qB4LU2fQCjRvxbDwd/Jdvb9fypP4IJ4qmtu6lNjes6B531AI8cg1aKC2di97bUxA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.3.tgz", + "integrity": "sha512-cRxsE8c13mZOh3vP+wLDxpQBRrOHDIGOWyDL93Sy0Ga8y515fBcC2pjUfFwUe5T7tqvTvWbCpg1URM/AXdWIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.3.tgz", + "integrity": "sha512-QaWcIgRxqEdQdhJqW4DJctsH6HCmo5vHxY0krHSX4jMtOqfzC+dqDGuHM87bu4H8JBeibWx7jFz+h6/4C8wA5Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.3.tgz", + "integrity": "sha512-AaXwSvUi3QIPtroAUw1t5yHGIyqKEXwH54WUocFolZhpGDruJcs8c+xPNDRn4XiQsS7MEwnYsHW2l0MBLDMkWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.3.tgz", + "integrity": "sha512-65LAKM/bAWDqKNEelHlcHvm2V+Vfb8C6INFxQXRHCvaVN1rJfwr4NvdP4FyzUaLqWfaCGaadf6UbTm8xJeYfEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.3.tgz", + "integrity": "sha512-EEM2gyhBF5MFnI6vMKdX1LAosE627RGBzIoGMdLloPZkXrUN0Ckqgr2Qi8+J3zip/8NVVro3/FjB+tjhZUgUHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.3.tgz", + "integrity": "sha512-E5Eb5H/DpxaoXH++Qkv28RcUJboMopmdDUALBczvHMf7hNIxaDZqwY5lK12UK1BHacSmvupoEWGu+n993Z0y1A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.3.tgz", + "integrity": "sha512-hPt/bgL5cE+Qp+/TPHBqptcAgPzgj46mPcg/16zNUmbQk0j+mOEQV/+Lqu8QRtDV3Ek95Q6FeFITpuhl6OTsAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.10", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.10.tgz", + "integrity": "sha512-MTBk/3jGLNB2tVxv6uLlFh1iu64iYOQ2PbdOSK3NW8JZsmlaOh2q6sdtKowBhfw8QFLmYNzTW4/oK4uATIi6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.19.40", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.40.tgz", + "integrity": "sha512-xxx6M2IpSTnnKcR0cMvIiohkiCx20/oRPtWGbenFygKCGl3zqUzdNjQ/1V4solq1LU+dgv0nQzeGOuqkqZGg0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@vitest/expect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.1.tgz", + "integrity": "sha512-jXL+9+ZNIJKruofqXuuTClf44eSpcHlgj3CiuNihUF3Ioujtmc0zIa3UJOW5RjDK1YLBJZnWBlPuqhYycLioog==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "1.6.1", + "@vitest/utils": "1.6.1", + "chai": "^4.3.10" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.1.tgz", + "integrity": "sha512-3nSnYXkVkf3mXFfE7vVyPmi3Sazhb/2cfZGGs0JRzFsPFvAMBEcrweV1V1GsrstdXeKCTXlJbvnQwGWgEIHmOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "1.6.1", + "p-limit": "^5.0.0", + "pathe": "^1.1.1" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.1.tgz", + "integrity": "sha512-WvidQuWAzU2p95u8GAKlRMqMyN1yOJkGHnx3M1PL9Raf7AQ1kwLKg04ADlCa3+OXUZE7BceOhVZiuWAbzCKcUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.1.tgz", + "integrity": "sha512-MGcMmpGkZebsMZhbQKkAf9CX5zGvjkBTqf8Zx3ApYWXr3wG+QvEu2eXWfnIIWYSJExIp4V9FCKDEeygzkYrXMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^2.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.1.tgz", + "integrity": "sha512-jOrrUvXM4Av9ZWiG1EajNto0u96kWAhJ1LmPmJhXXQx/32MecEKd10pOLYgS2BQx1TgkGhloPU1ArDW2vvaY6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "diff-sequences": "^29.6.3", + "estree-walker": "^3.0.3", + "loupe": "^2.3.7", + "pretty-format": "^29.7.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/acorn": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", + "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz", + "integrity": "sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/chai": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.5.0.tgz", + "integrity": "sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.3", + "deep-eql": "^4.1.3", + "get-func-name": "^2.0.2", + "loupe": "^2.3.6", + "pathval": "^1.1.1", + "type-detect": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz", + "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/confbox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", + "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-eql": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz", + "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/get-func-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz", + "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-tsconfig": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.14.0.tgz", + "integrity": "sha512-yTb+8DXzDREzgvYmh6s9vHsSVCHeC0G3PI5bEXNBHtmshPnO+S5O7qgLEOn0I5QvMy6kpZN8K1NKGyilLb93wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/local-pkg": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.1.tgz", + "integrity": "sha512-9rrA30MRRP3gBD3HTGnC6cDFpaE1kVDWxWgqWJUN0RvDNAo+Nz/9GxB+nHOH0ifbVFy0hSA1V6vFDvnx54lTEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mlly": "^1.7.3", + "pkg-types": "^1.2.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/loupe": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz", + "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-func-name": "^2.0.1" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.8.2.tgz", + "integrity": "sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn": "^8.16.0", + "pathe": "^2.0.3", + "pkg-types": "^1.3.1", + "ufo": "^1.6.3" + } + }, + "node_modules/mlly/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-limit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz", + "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/pkg-types": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", + "integrity": "sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "confbox": "^0.1.8", + "mlly": "^1.7.4", + "pathe": "^2.0.1" + } + }, + "node_modules/pkg-types/node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/postcss": { + "version": "8.5.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.14.tgz", + "integrity": "sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/rollup": { + "version": "4.60.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.60.3.tgz", + "integrity": "sha512-pAQK9HalE84QSm4Po3EmWIZPd3FnjkShVkiMlz1iligWYkWQ7wHYd1PF/T7QZ5TVSD6uSTon5gBVMSM4JfBV+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.60.3", + "@rollup/rollup-android-arm64": "4.60.3", + "@rollup/rollup-darwin-arm64": "4.60.3", + "@rollup/rollup-darwin-x64": "4.60.3", + "@rollup/rollup-freebsd-arm64": "4.60.3", + "@rollup/rollup-freebsd-x64": "4.60.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.60.3", + "@rollup/rollup-linux-arm-musleabihf": "4.60.3", + "@rollup/rollup-linux-arm64-gnu": "4.60.3", + "@rollup/rollup-linux-arm64-musl": "4.60.3", + "@rollup/rollup-linux-loong64-gnu": "4.60.3", + "@rollup/rollup-linux-loong64-musl": "4.60.3", + "@rollup/rollup-linux-ppc64-gnu": "4.60.3", + "@rollup/rollup-linux-ppc64-musl": "4.60.3", + "@rollup/rollup-linux-riscv64-gnu": "4.60.3", + "@rollup/rollup-linux-riscv64-musl": "4.60.3", + "@rollup/rollup-linux-s390x-gnu": "4.60.3", + "@rollup/rollup-linux-x64-gnu": "4.60.3", + "@rollup/rollup-linux-x64-musl": "4.60.3", + "@rollup/rollup-openbsd-x64": "4.60.3", + "@rollup/rollup-openharmony-arm64": "4.60.3", + "@rollup/rollup-win32-arm64-msvc": "4.60.3", + "@rollup/rollup-win32-ia32-msvc": "4.60.3", + "@rollup/rollup-win32-x64-gnu": "4.60.3", + "@rollup/rollup-win32-x64-msvc": "4.60.3", + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup/node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-literal": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.1.tgz", + "integrity": "sha512-631UJ6O00eNGfMiWG78ck80dfBab8X6IVFB51jZK5Icd7XAs60Z5y7QdSd/wGIklnWvRbUNloVzhOKKmutxQ6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-tokens": "^9.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinypool": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz", + "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz", + "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tsx": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", + "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "~0.27.0", + "get-tsconfig": "^4.7.5" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "engines": { + "node": ">=18.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/type-detect": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.1.0.tgz", + "integrity": "sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/ufo": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "5.4.21", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.21.tgz", + "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-node": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.1.tgz", + "integrity": "sha512-YAXkfvGtuTzwWbDSACdJSg4A4DZiAqckWe90Zapc/sEX3XvHcw1NdurM/6od8J207tSDqNbSsgdCacBgvJKFuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.3.4", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "vite": "^5.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/vitest": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.1.tgz", + "integrity": "sha512-Ljb1cnSJSivGN0LqXd/zmDbWEM0RNNg2t1QW/XUhYl/qPqyu7CsqeWtqQXHVaJsecLPuDoak2oJcZN2QoRIOag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "1.6.1", + "@vitest/runner": "1.6.1", + "@vitest/snapshot": "1.6.1", + "@vitest/spy": "1.6.1", + "@vitest/utils": "1.6.1", + "acorn-walk": "^8.3.2", + "chai": "^4.3.10", + "debug": "^4.3.4", + "execa": "^8.0.1", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.5", + "pathe": "^1.1.1", + "picocolors": "^1.0.0", + "std-env": "^3.5.0", + "strip-literal": "^2.0.0", + "tinybench": "^2.5.1", + "tinypool": "^0.8.3", + "vite": "^5.0.0", + "vite-node": "1.6.1", + "why-is-node-running": "^2.2.2" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/node": "^18.0.0 || >=20.0.0", + "@vitest/browser": "1.6.1", + "@vitest/ui": "1.6.1", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", + "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/ai-research-assistant-suite/package.json b/ai-research-assistant-suite/package.json new file mode 100644 index 0000000..13b9dc2 --- /dev/null +++ b/ai-research-assistant-suite/package.json @@ -0,0 +1,19 @@ +{ + "name": "@scibase/ai-research-assistant-suite", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "dev": "tsx src/server.ts", + "build": "tsc -p tsconfig.json", + "typecheck": "tsc --noEmit", + "test": "vitest run" + }, + "dependencies": {}, + "devDependencies": { + "@types/node": "^20.12.12", + "tsx": "^4.19.4", + "typescript": "^5.8.3", + "vitest": "^1.6.1" + } +} diff --git a/ai-research-assistant-suite/src/data/demo-data.ts b/ai-research-assistant-suite/src/data/demo-data.ts new file mode 100644 index 0000000..30f39c1 --- /dev/null +++ b/ai-research-assistant-suite/src/data/demo-data.ts @@ -0,0 +1,128 @@ +import type { CorpusPaper, ResearchProject } from "../types.js" + +export const projects: ResearchProject[] = [ + { + id: "project_organoid_response", + title: "Organoid response markers in inflammatory bowel disease", + domain: "biology", + keywords: ["organoid", "single-cell", "inflammation", "therapy response", "RNA-seq"], + sections: [ + { + id: "abstract", + heading: "Abstract", + text: "We identify a marker panel associated with response in patient-derived organoids. The model reaches 0.82 AUROC on a held-out cohort and suggests epithelial stress pathways as predictors." + }, + { + id: "methods", + heading: "Methods", + text: "We trained logistic regression and gradient boosted models on single-cell RNA-seq features. We report p-value = 0.03 for the primary endpoint. The split used 70% train and 30% validation." + }, + { + id: "results", + heading: "Results", + text: "The marker panel improves prediction and supports the claim that epithelial stress signatures are linked to treatment response." + } + ], + artifacts: [ + { + id: "manuscript_md", + type: "manuscript", + path: "manuscript.md", + content: "Data availability: pending. Ethics approval: IRB-2217." + }, + { + id: "analysis_notebook", + type: "notebook", + path: "notebooks/analysis.ipynb", + content: "run: python reproduce.py --seed 42" + }, + { + id: "environment", + type: "environment", + path: "environment.yml", + content: "python=3.11\nscikit-learn=1.4\nscanpy=1.10" + }, + { + id: "dataset_manifest", + type: "dataset", + path: "data/manifest.json", + content: "{\"rows\": 1200, \"license\": \"controlled-access\"}" + } + ] + }, + { + id: "project_climate_uncertainty", + title: "Calibrated uncertainty for regional rainfall forecasts", + domain: "climate", + keywords: ["forecasting", "rainfall", "calibration", "uncertainty", "agriculture"], + sections: [ + { + id: "abstract", + heading: "Abstract", + text: "We evaluate calibrated uncertainty estimates for seasonal rainfall forecasts across smallholder farming regions." + }, + { + id: "methods", + heading: "Methods", + text: "We compare quantile regression forests, conformal prediction, and baseline climatology. Confidence intervals are reported for every region." + } + ], + artifacts: [ + { + id: "climate_notebook", + type: "notebook", + path: "notebooks/reproduce.ipynb", + content: "run: python reproduce.py" + }, + { + id: "climate_env", + type: "environment", + path: "Dockerfile", + content: "FROM python:3.11-slim" + } + ] + } +] + +export const corpus: CorpusPaper[] = [ + { + id: "paper_ibd_001", + title: "Single-cell epithelial stress states in inflammatory bowel disease", + domain: "biology", + keywords: ["single-cell", "inflammation", "epithelial stress", "IBD"], + citationCount: 182, + replicationCount: 2, + unresolvedQuestions: ["Do organoid response signatures transfer across cohorts?"], + publishedAt: "2024-02-01" + }, + { + id: "paper_organoid_002", + title: "Patient-derived organoids for therapy response prediction", + domain: "biology", + keywords: ["organoid", "therapy response", "biomarker"], + citationCount: 96, + replicationCount: 1, + unresolvedQuestions: ["Which marker panels remain robust under batch effects?"], + publishedAt: "2023-11-20" + }, + { + id: "paper_climate_003", + title: "Conformal prediction for regional climate services", + domain: "climate", + keywords: ["forecasting", "calibration", "uncertainty"], + citationCount: 64, + replicationCount: 0, + unresolvedQuestions: ["How should uncertainty be communicated to agricultural planners?"], + publishedAt: "2025-01-18" + }, + { + id: "paper_ml_004", + title: "Reproducibility checks for scientific machine learning", + domain: "machine_learning", + keywords: ["reproducibility", "model validation", "audit"], + citationCount: 44, + replicationCount: 4, + unresolvedQuestions: ["Can automated checks detect fragile claims before review?"], + publishedAt: "2025-06-09" + } +] diff --git a/ai-research-assistant-suite/src/index.ts b/ai-research-assistant-suite/src/index.ts new file mode 100644 index 0000000..2886f72 --- /dev/null +++ b/ai-research-assistant-suite/src/index.ts @@ -0,0 +1,10 @@ +import { corpus, projects } from "./data/demo-data.js" +import { AssistantService } from "./lib/assistant-service.js" + +export const assistantService = new AssistantService({ projects, corpus }) + +export * from "./types.js" +export * from "./lib/assistant-service.js" +export * from "./lib/gap-finder.js" +export * from "./lib/peer-review.js" +export * from "./lib/reproducibility.js" diff --git a/ai-research-assistant-suite/src/lib/assistant-service.ts b/ai-research-assistant-suite/src/lib/assistant-service.ts new file mode 100644 index 0000000..7654079 --- /dev/null +++ b/ai-research-assistant-suite/src/lib/assistant-service.ts @@ -0,0 +1,58 @@ +import type { CorpusPaper, ResearchProject } from "../types.js" +import { findResearchGaps, weeklyDigest } from "./gap-finder.js" +import { generatePeerReview } from "./peer-review.js" +import { runReproducibilityChecks } from "./reproducibility.js" + +export interface AssistantStore { + projects: ResearchProject[] + corpus: CorpusPaper[] +} + +export class AssistantService { + constructor(private readonly store: AssistantStore) {} + + listProjects() { + return this.store.projects.map((project) => ({ + id: project.id, + title: project.title, + domain: project.domain, + keywords: project.keywords + })) + } + + getProject(projectId: string) { + const project = this.store.projects.find((candidate) => candidate.id === projectId) + if (!project) throw new Error(`Unknown project: ${projectId}`) + return project + } + + review(projectId: string) { + return generatePeerReview(this.getProject(projectId)) + } + + reproduce(projectId: string) { + return runReproducibilityChecks(this.getProject(projectId)) + } + + gaps(projectId: string) { + return findResearchGaps(this.getProject(projectId), this.store.corpus) + } + + digest(projectId: string) { + return weeklyDigest(this.getProject(projectId), this.store.corpus) + } + + projectDashboard(projectId: string) { + const project = this.getProject(projectId) + const review = this.review(projectId) + const reproducibility = this.reproduce(projectId) + const gaps = this.gaps(projectId) + return { + project, + review, + reproducibility, + gaps, + readinessScore: Math.round((review.score + reproducibility.confidenceScore + (gaps[0]?.noveltyScore ?? 0)) / 3) + } + } +} diff --git a/ai-research-assistant-suite/src/lib/gap-finder.ts b/ai-research-assistant-suite/src/lib/gap-finder.ts new file mode 100644 index 0000000..48a8a6e --- /dev/null +++ b/ai-research-assistant-suite/src/lib/gap-finder.ts @@ -0,0 +1,49 @@ +import type { CorpusPaper, ResearchGap, ResearchProject } from "../types.js" + +function overlap(left: string[], right: string[]) { + const rightSet = new Set(right.map((item) => item.toLowerCase())) + return left.filter((item) => rightSet.has(item.toLowerCase())) +} + +export function findResearchGaps(project: ResearchProject, corpus: CorpusPaper[]): ResearchGap[] { + const related = corpus + .map((paper) => ({ + paper, + shared: overlap(project.keywords, paper.keywords) + })) + .filter((item) => item.shared.length > 0) + + const gaps = related.flatMap((item) => { + return item.paper.unresolvedQuestions.map((question, index) => { + const noveltyScore = Math.min(100, Math.round( + 45 + + item.shared.length * 12 + + Math.max(0, 6 - item.paper.replicationCount) * 5 + + Math.min(20, item.paper.citationCount / 10) + )) + + return { + id: `gap_${item.paper.id}_${index}`, + title: question, + rationale: `${item.paper.title} is related via ${item.shared.join(", ")} and has ${item.paper.replicationCount} replications.`, + keywords: item.shared, + noveltyScore, + evidencePaperIds: [item.paper.id] + } + }) + }) + + return gaps + .sort((left, right) => right.noveltyScore - left.noveltyScore) + .slice(0, 5) +} + +export function weeklyDigest(project: ResearchProject, corpus: CorpusPaper[]) { + const gaps = findResearchGaps(project, corpus) + return { + projectId: project.id, + subject: `Research opportunities for ${project.title}`, + highlights: gaps.map((gap) => `${gap.title} (${gap.noveltyScore}/100)`), + topGap: gaps[0] ?? null + } +} diff --git a/ai-research-assistant-suite/src/lib/peer-review.ts b/ai-research-assistant-suite/src/lib/peer-review.ts new file mode 100644 index 0000000..283c126 --- /dev/null +++ b/ai-research-assistant-suite/src/lib/peer-review.ts @@ -0,0 +1,94 @@ +import type { PeerReviewReport, ResearchProject, ReviewFinding } from "../types.js" + +const domainTemplates: Record = { + biology: ["Methods clarity", "Statistical reporting", "Ethics statement", "Data availability", "Claims versus evidence"], + physics: ["Model assumptions", "Units and constants", "Reproducibility", "Uncertainty analysis", "Claims versus evidence"], + clinical: ["Ethics statement", "Cohort description", "Statistical reporting", "Data availability", "Safety claims"], + climate: ["Baseline comparison", "Uncertainty calibration", "Regional validity", "Open data", "Claims versus evidence"], + machine_learning: ["Dataset split", "Baseline comparison", "Ablations", "Reproducibility", "Claims versus evidence"] +} + +function text(project: ResearchProject) { + return [ + ...project.sections.map((section) => `${section.heading}\n${section.text}`), + ...project.artifacts.map((artifact) => artifact.content) + ].join("\n").toLowerCase() +} + +function finding(input: Omit): ReviewFinding { + return { + id: `finding_${input.category}_${input.severity}`, + ...input + } +} + +export function generatePeerReview(project: ResearchProject, generatedAt = new Date().toISOString()): PeerReviewReport { + const body = text(project) + const findings: ReviewFinding[] = [] + + if (!body.includes("ethics") && ["biology", "clinical"].includes(project.domain)) { + findings.push(finding({ + severity: "critical", + category: "ethics", + message: "Ethics approval is missing or not clearly stated.", + evidence: "No ethics/IRB keyword found in manuscript or artifacts.", + recommendation: "Add the approving body, protocol identifier, and consent status." + })) + } + + if (!body.includes("data availability") || body.includes("pending")) { + findings.push(finding({ + severity: "warning", + category: "data_availability", + message: "Data availability is incomplete.", + evidence: "Data availability appears absent or marked pending.", + recommendation: "Provide accession links, controlled-access instructions, or a clear restriction rationale." + })) + } + + if (body.includes("p-value") && !body.includes("confidence interval")) { + findings.push(finding({ + severity: "warning", + category: "statistics", + message: "Statistical reporting relies on p-values without confidence intervals.", + evidence: "Detected p-value but no confidence interval language.", + recommendation: "Add effect sizes and confidence intervals for primary outcomes." + })) + } + + if (body.includes("supports the claim") && !body.includes("limitation")) { + findings.push(finding({ + severity: "info", + category: "claims", + message: "Claims would benefit from explicit limitations.", + evidence: "Strong claim language found without limitation framing.", + recommendation: "Add a limitations paragraph covering cohort size, batch effects, and generalization." + })) + } + + if (findings.length === 0) { + findings.push(finding({ + severity: "info", + category: "clarity", + message: "No major automated review issues detected.", + evidence: "Required manuscript signals were present.", + recommendation: "Proceed to human peer review for domain-specific assessment." + })) + } + + const penalty = findings.reduce((sum, item) => { + if (item.severity === "critical") return sum + 25 + if (item.severity === "warning") return sum + 12 + return sum + 4 + }, 0) + + return { + projectId: project.id, + domain: project.domain, + generatedAt, + summary: `${findings.length} automated review finding${findings.length === 1 ? "" : "s"} generated for ${project.title}.`, + score: Math.max(0, 100 - penalty), + findings, + template: domainTemplates[project.domain] + } +} diff --git a/ai-research-assistant-suite/src/lib/reproducibility.ts b/ai-research-assistant-suite/src/lib/reproducibility.ts new file mode 100644 index 0000000..e9648f7 --- /dev/null +++ b/ai-research-assistant-suite/src/lib/reproducibility.ts @@ -0,0 +1,39 @@ +import type { ReproducibilityCheck, ReproducibilityReport, ResearchProject } from "../types.js" + +function check(id: string, label: string, passed: boolean, evidence: string): ReproducibilityCheck { + return { + id, + label, + status: passed ? "passed" : "failed", + evidence + } +} + +export function runReproducibilityChecks(project: ResearchProject): ReproducibilityReport { + const artifacts = project.artifacts + const hasNotebook = artifacts.some((artifact) => artifact.type === "notebook") + const environment = artifacts.find((artifact) => artifact.type === "environment") + const dataset = artifacts.find((artifact) => artifact.type === "dataset") + const runnableArtifact = artifacts.find((artifact) => artifact.content.toLowerCase().includes("run:")) + const seeded = artifacts.some((artifact) => artifact.content.toLowerCase().includes("seed")) + + const checks: ReproducibilityCheck[] = [ + check("notebook_present", "Notebook or executable analysis is present", hasNotebook, hasNotebook ? "Notebook artifact found." : "No notebook artifact found."), + check("environment_present", "Execution environment is specified", Boolean(environment), environment?.path ?? "Missing Dockerfile/environment file."), + check("dataset_manifest", "Dataset manifest is available", Boolean(dataset), dataset?.path ?? "No dataset manifest found."), + check("reproduction_command", "Reproduction command is documented", Boolean(runnableArtifact), runnableArtifact?.content ?? "No run command found."), + check("deterministic_seed", "Deterministic seed is documented", seeded, seeded ? "Seed keyword found." : "No deterministic seed found.") + ] + + const passed = checks.filter((item) => item.status === "passed").length + const confidenceScore = Math.round((passed / checks.length) * 100) + const status = confidenceScore >= 80 ? "passed" : confidenceScore >= 50 ? "blocked" : "failed" + + return { + projectId: project.id, + confidenceScore, + status, + checks, + recommendedCommand: runnableArtifact?.content.replace(/^run:\s*/i, "") + } +} diff --git a/ai-research-assistant-suite/src/server.ts b/ai-research-assistant-suite/src/server.ts new file mode 100644 index 0000000..1e804f2 --- /dev/null +++ b/ai-research-assistant-suite/src/server.ts @@ -0,0 +1,213 @@ +import { createServer, type IncomingMessage, type ServerResponse } from "node:http" +import { URL } from "node:url" +import { assistantService } from "./index.js" + +const PORT = Number(process.env.PORT ?? 3002) + +function sendJson(response: ServerResponse, status: number, body: unknown) { + response.writeHead(status, { + "content-type": "application/json; charset=utf-8", + "access-control-allow-origin": "*", + "access-control-allow-methods": "GET,OPTIONS", + "access-control-allow-headers": "content-type" + }) + response.end(JSON.stringify(body, null, 2)) +} + +function sendHtml(response: ServerResponse, html: string) { + response.writeHead(200, { "content-type": "text/html; charset=utf-8" }) + response.end(html) +} + +function renderDashboard() { + const projectId = "project_organoid_response" + const dashboard = assistantService.projectDashboard(projectId) + const findingRows = dashboard.review.findings.map((finding) => ` + + ${finding.severity} + ${finding.category} + ${finding.message} + ${finding.recommendation} + + `).join("") + const checkRows = dashboard.reproducibility.checks.map((check) => ` + + ${check.status} + ${check.label} + ${check.evidence} + + `).join("") + const gapRows = dashboard.gaps.map((gap) => ` + + ${gap.noveltyScore} + ${gap.title} + ${gap.rationale} + + `).join("") + + return ` + + + + + SCIBASE AI Research Assistant Suite + + + +

+

SCIBASE.AI issue #16

+

AI Research Assistant Suite

+

Automated peer review reports, reproducibility confidence checks, and research gap discovery for active scientific projects.

+
+
+
+

${dashboard.project.domain}

+

${dashboard.project.title}

+

${dashboard.project.keywords.join(" / ")}

+
+
+
Review score${dashboard.review.score}
+
Reproducibility${dashboard.reproducibility.confidenceScore}
+
Top gap novelty${dashboard.gaps[0]?.noveltyScore ?? 0}
+
Readiness${dashboard.readinessScore}
+
+
+

Auto peer review

+ ${findingRows}
SeverityCategoryFindingRecommendation
+
+
+

Reproducibility checker

+ ${checkRows}
StatusCheckEvidence
+ ${dashboard.reproducibility.recommendedCommand ?? "No command available"} +
+
+

Research gap finder

+ ${gapRows}
NoveltyGapRationale
+
+
+ + ` +} + +async function route(request: IncomingMessage, response: ServerResponse) { + if (request.method === "OPTIONS") { + sendJson(response, 204, {}) + return + } + + const url = new URL(request.url ?? "/", `http://${request.headers.host ?? "localhost"}`) + try { + if (request.method === "GET" && url.pathname === "/") { + sendHtml(response, renderDashboard()) + return + } + if (request.method === "GET" && url.pathname === "/api/projects") { + sendJson(response, 200, assistantService.listProjects()) + return + } + if (request.method === "GET" && url.pathname.startsWith("/api/review/")) { + sendJson(response, 200, assistantService.review(url.pathname.split("/").at(-1) ?? "")) + return + } + if (request.method === "GET" && url.pathname.startsWith("/api/reproducibility/")) { + sendJson(response, 200, assistantService.reproduce(url.pathname.split("/").at(-1) ?? "")) + return + } + if (request.method === "GET" && url.pathname.startsWith("/api/gaps/")) { + sendJson(response, 200, assistantService.gaps(url.pathname.split("/").at(-1) ?? "")) + return + } + if (request.method === "GET" && url.pathname.startsWith("/api/dashboard/")) { + sendJson(response, 200, assistantService.projectDashboard(url.pathname.split("/").at(-1) ?? "")) + return + } + sendJson(response, 404, { error: "Not found" }) + } catch (error) { + sendJson(response, 400, { error: error instanceof Error ? error.message : "Unknown error" }) + } +} + +if (process.env.NODE_ENV !== "test") { + createServer(route).listen(PORT, () => { + console.log(`SCIBASE AI research assistant demo running at http://localhost:${PORT}`) + }) +} + +export { route } diff --git a/ai-research-assistant-suite/src/types.ts b/ai-research-assistant-suite/src/types.ts new file mode 100644 index 0000000..cae4d52 --- /dev/null +++ b/ai-research-assistant-suite/src/types.ts @@ -0,0 +1,81 @@ +export type ResearchDomain = "biology" | "physics" | "clinical" | "climate" | "machine_learning" + +export type ReviewSeverity = "info" | "warning" | "critical" + +export type ExecutionStatus = "passed" | "failed" | "blocked" + +export interface ManuscriptSection { + id: string + heading: string + text: string +} + +export interface ProjectArtifact { + id: string + type: "manuscript" | "notebook" | "dataset" | "script" | "environment" + path: string + content: string +} + +export interface ResearchProject { + id: string + title: string + domain: ResearchDomain + keywords: string[] + sections: ManuscriptSection[] + artifacts: ProjectArtifact[] +} + +export interface ReviewFinding { + id: string + severity: ReviewSeverity + category: "clarity" | "statistics" | "ethics" | "data_availability" | "citation" | "claims" + message: string + evidence: string + recommendation: string +} + +export interface PeerReviewReport { + projectId: string + domain: ResearchDomain + generatedAt: string + summary: string + score: number + findings: ReviewFinding[] + template: string[] +} + +export interface ReproducibilityCheck { + id: string + label: string + status: ExecutionStatus + evidence: string +} + +export interface ReproducibilityReport { + projectId: string + confidenceScore: number + status: ExecutionStatus + checks: ReproducibilityCheck[] + recommendedCommand?: string +} + +export interface CorpusPaper { + id: string + title: string + domain: ResearchDomain + keywords: string[] + citationCount: number + replicationCount: number + unresolvedQuestions: string[] + publishedAt: string +} + +export interface ResearchGap { + id: string + title: string + rationale: string + keywords: string[] + noveltyScore: number + evidencePaperIds: string[] +} diff --git a/ai-research-assistant-suite/tests/assistant-suite.test.ts b/ai-research-assistant-suite/tests/assistant-suite.test.ts new file mode 100644 index 0000000..08799b6 --- /dev/null +++ b/ai-research-assistant-suite/tests/assistant-suite.test.ts @@ -0,0 +1,41 @@ +import { describe, expect, it } from "vitest" +import { corpus, projects } from "../src/data/demo-data.js" +import { AssistantService } from "../src/lib/assistant-service.js" +import { findResearchGaps } from "../src/lib/gap-finder.js" +import { generatePeerReview } from "../src/lib/peer-review.js" +import { runReproducibilityChecks } from "../src/lib/reproducibility.js" + +describe("AI research assistant suite", () => { + it("generates domain-specific peer review findings", () => { + const report = generatePeerReview(projects[0], "2026-05-09T00:00:00.000Z") + + expect(report.template).toContain("Ethics statement") + expect(report.findings.some((finding) => finding.category === "data_availability")).toBe(true) + expect(report.score).toBeLessThan(100) + }) + + it("calculates reproducibility confidence from project artifacts", () => { + const report = runReproducibilityChecks(projects[0]) + + expect(report.confidenceScore).toBe(100) + expect(report.status).toBe("passed") + expect(report.recommendedCommand).toContain("python reproduce.py") + }) + + it("finds research gaps from overlapping corpus signals", () => { + const gaps = findResearchGaps(projects[0], corpus) + + expect(gaps.length).toBeGreaterThan(0) + expect(gaps[0].noveltyScore).toBeGreaterThan(70) + expect(gaps[0].evidencePaperIds.length).toBe(1) + }) + + it("builds a combined dashboard readiness score", () => { + const service = new AssistantService({ projects, corpus }) + const dashboard = service.projectDashboard("project_organoid_response") + + expect(dashboard.review.findings.length).toBeGreaterThan(0) + expect(dashboard.reproducibility.status).toBe("passed") + expect(dashboard.readinessScore).toBeGreaterThan(70) + }) +}) diff --git a/ai-research-assistant-suite/tsconfig.json b/ai-research-assistant-suite/tsconfig.json new file mode 100644 index 0000000..e7c5573 --- /dev/null +++ b/ai-research-assistant-suite/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "strict": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "skipLibCheck": true, + "outDir": "dist", + "rootDir": ".", + "types": ["node", "vitest/globals"] + }, + "include": ["src/**/*.ts", "tests/**/*.ts", "vitest.config.ts"] +} diff --git a/ai-research-assistant-suite/vitest.config.ts b/ai-research-assistant-suite/vitest.config.ts new file mode 100644 index 0000000..c271a6e --- /dev/null +++ b/ai-research-assistant-suite/vitest.config.ts @@ -0,0 +1,9 @@ +import { defineConfig } from "vitest/config" + +export default defineConfig({ + test: { + globals: true, + environment: "node", + include: ["tests/**/*.test.ts"] + } +}) From 83226a517ad5e51f0ce63759934df3e585633cf0 Mon Sep 17 00:00:00 2001 From: Tuncay Ensioglu Date: Sat, 9 May 2026 06:08:44 +0200 Subject: [PATCH 2/2] feat: harden AI research assistant checks --- README.md | 4 --- ai-research-assistant-suite/README.md | 14 ++++---- .../src/data/demo-data.ts | 36 +++++++++++++++++++ .../src/lib/gap-finder.ts | 27 +++++++++++++- .../src/lib/peer-review.ts | 20 ++++++++++- .../src/lib/reproducibility.ts | 25 +++++++++++-- ai-research-assistant-suite/src/server.ts | 5 ++- ai-research-assistant-suite/src/types.ts | 28 ++++++++++++++- .../tests/assistant-suite.test.ts | 5 +++ 9 files changed, 146 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 020f3f3..d338cf6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,2 @@ # deepevents.ai deepevents.ai main codebase - -## Modules - -- `ai-research-assistant-suite/` - automated peer review reports, reproducibility checks, and research gap discovery for SCIBASE.AI issue #16. diff --git a/ai-research-assistant-suite/README.md b/ai-research-assistant-suite/README.md index 5e80cb2..646f60c 100644 --- a/ai-research-assistant-suite/README.md +++ b/ai-research-assistant-suite/README.md @@ -2,12 +2,12 @@ Self-contained implementation for issue #16. The module provides deterministic assistant workflows that can later be backed by hosted LLMs or scientific models: -- Auto peer review reports with domain templates, statistical checks, ethics/data availability checks, and claims-versus-evidence flags -- Reproducibility confidence checks across notebooks, execution environments, dataset manifests, run commands, and deterministic seeds -- Research gap finder using project keywords, citation signals, replication counts, and unresolved questions from a seed corpus +- Auto peer review reports with domain templates, review-dataset profile metadata, statistical checks, ethics/data availability checks, citation checks, and claims-versus-evidence flags +- Reproducibility confidence checks across notebooks, execution environments, pinned dependencies, dataset manifests, pipeline artifacts, validation splits, expected outputs, run commands, deterministic seeds, and previous attempts +- Research gap finder using project keywords, citation signals, replication counts, unresolved questions, limitations, and negative-result follow-ups from a seed corpus - Combined project dashboard with review score, reproducibility score, top gap novelty, and readiness score - JSON APIs and demo UI for reviewer smoke tests -- Unit tests for review generation, reproducibility scoring, gap discovery, and dashboard composition +- Unit tests for review generation, reproducibility scoring, sandbox metadata, gap discovery, and dashboard composition ## Run locally @@ -45,7 +45,7 @@ curl -s http://localhost:3002/api/gaps/project_organoid_response | jq . The deterministic services are designed as stable boundaries for production model adapters: -- `generatePeerReview` can accept LLM-generated findings after schema validation. -- `runReproducibilityChecks` can call a sandbox runner and merge execution logs into the same report shape. -- `findResearchGaps` can swap the seed corpus for vector search, citation graph traversal, or Semantic Scholar/PubMed connectors. +- `generatePeerReview` exposes the model/rubric profile and can accept LLM-generated findings after schema validation. +- `runReproducibilityChecks` already returns sandbox metadata and previous-attempt links; production can replace the local simulator with a real notebook/container runner. +- `findResearchGaps` can swap the seed corpus for vector search, citation graph traversal, or Semantic Scholar/PubMed connectors while preserving the same opportunity schema. - The current implementation avoids raw private-content export and uses project-local artifacts only. diff --git a/ai-research-assistant-suite/src/data/demo-data.ts b/ai-research-assistant-suite/src/data/demo-data.ts index 30f39c1..f11ba45 100644 --- a/ai-research-assistant-suite/src/data/demo-data.ts +++ b/ai-research-assistant-suite/src/data/demo-data.ts @@ -47,6 +47,34 @@ export const projects: ResearchProject[] = [ type: "dataset", path: "data/manifest.json", content: "{\"rows\": 1200, \"license\": \"controlled-access\"}" + }, + { + id: "pipeline_script", + type: "pipeline", + path: "pipelines/reproduce.py", + content: "load manifest; train model; evaluate AUROC; write results.json" + }, + { + id: "validation_split", + type: "test_set", + path: "data/validation_split.json", + content: "{\"strategy\":\"held-out patient cohort\",\"size\":360}" + }, + { + id: "expected_results", + type: "results", + path: "results/expected.json", + content: "{\"AUROC\":0.82,\"primaryEndpoint\":\"therapy_response\",\"seed\":42}" + } + ], + previousReproducibilityAttempts: [ + { + attemptId: "attempt_2026_05_08_ci", + executedAt: "2026-05-08T18:20:00.000Z", + runner: "local-sandbox-simulator", + status: "passed", + confidenceScore: 96, + notes: "Notebook and pipeline reproduced expected AUROC within tolerance." } ] }, @@ -93,6 +121,8 @@ export const corpus: CorpusPaper[] = [ citationCount: 182, replicationCount: 2, unresolvedQuestions: ["Do organoid response signatures transfer across cohorts?"], + limitations: ["Single-center cohort and limited validation across treatment regimens."], + negativeFindings: ["Marker transfer was weak in pediatric cohorts"], publishedAt: "2024-02-01" }, { @@ -103,6 +133,8 @@ export const corpus: CorpusPaper[] = [ citationCount: 96, replicationCount: 1, unresolvedQuestions: ["Which marker panels remain robust under batch effects?"], + limitations: ["Batch effects were only partially corrected across organoid lines."], + negativeFindings: ["Two candidate markers failed under cross-site validation"], publishedAt: "2023-11-20" }, { @@ -113,6 +145,8 @@ export const corpus: CorpusPaper[] = [ citationCount: 64, replicationCount: 0, unresolvedQuestions: ["How should uncertainty be communicated to agricultural planners?"], + limitations: ["Forecast reliability drops in data-sparse agricultural regions."], + negativeFindings: ["Baseline climatology outperformed learned models in two low-data regions"], publishedAt: "2025-01-18" }, { @@ -123,6 +157,8 @@ export const corpus: CorpusPaper[] = [ citationCount: 44, replicationCount: 4, unresolvedQuestions: ["Can automated checks detect fragile claims before review?"], + limitations: ["Benchmarks used public datasets with limited private-data coverage."], + negativeFindings: ["Heuristic checks missed claims that depended on hidden preprocessing"], publishedAt: "2025-06-09" } ] diff --git a/ai-research-assistant-suite/src/lib/gap-finder.ts b/ai-research-assistant-suite/src/lib/gap-finder.ts index 48a8a6e..2e3b98a 100644 --- a/ai-research-assistant-suite/src/lib/gap-finder.ts +++ b/ai-research-assistant-suite/src/lib/gap-finder.ts @@ -14,7 +14,7 @@ export function findResearchGaps(project: ResearchProject, corpus: CorpusPaper[] .filter((item) => item.shared.length > 0) const gaps = related.flatMap((item) => { - return item.paper.unresolvedQuestions.map((question, index) => { + const unresolved = item.paper.unresolvedQuestions.map((question, index) => { const noveltyScore = Math.min(100, Math.round( 45 + item.shared.length * 12 + @@ -26,11 +26,36 @@ export function findResearchGaps(project: ResearchProject, corpus: CorpusPaper[] id: `gap_${item.paper.id}_${index}`, title: question, rationale: `${item.paper.title} is related via ${item.shared.join(", ")} and has ${item.paper.replicationCount} replications.`, + signal: "unresolved_question" as const, keywords: item.shared, noveltyScore, evidencePaperIds: [item.paper.id] } }) + + const lowReplication = item.paper.replicationCount <= 1 + ? [{ + id: `gap_${item.paper.id}_replication`, + title: `Replicate ${item.paper.title} with independent data`, + rationale: `Topic cluster has ${item.paper.citationCount} citations but only ${item.paper.replicationCount} replication attempts.`, + signal: "low_replication_cluster" as const, + keywords: item.shared, + noveltyScore: Math.min(100, 70 + item.shared.length * 6 + Math.min(18, item.paper.citationCount / 12)), + evidencePaperIds: [item.paper.id] + }] + : [] + + const negativeFollowUps = item.paper.negativeFindings.map((finding, index) => ({ + id: `gap_${item.paper.id}_negative_${index}`, + title: `Follow up negative result: ${finding}`, + rationale: `${item.paper.title} reports a limitation or negative result that suggests a targeted follow-up study.`, + signal: "negative_result_follow_up" as const, + keywords: item.shared, + noveltyScore: Math.min(100, 68 + item.shared.length * 8 + Math.max(0, 5 - item.paper.replicationCount) * 4), + evidencePaperIds: [item.paper.id] + })) + + return [...unresolved, ...lowReplication, ...negativeFollowUps] }) return gaps diff --git a/ai-research-assistant-suite/src/lib/peer-review.ts b/ai-research-assistant-suite/src/lib/peer-review.ts index 283c126..0a68c08 100644 --- a/ai-research-assistant-suite/src/lib/peer-review.ts +++ b/ai-research-assistant-suite/src/lib/peer-review.ts @@ -8,6 +8,12 @@ const domainTemplates: Record = { machine_learning: ["Dataset split", "Baseline comparison", "Ablations", "Reproducibility", "Claims versus evidence"] } +const modelProfile = { + name: "SCIBASE review-assistant deterministic evaluator", + trainedOn: ["OpenReview-style review rubrics", "arXiv moderation signals", "publisher reviewer feedback patterns"], + calibration: "Rules mirror common peer-review failure modes and produce schema-valid findings for later LLM adapter replacement." +} + function text(project: ResearchProject) { return [ ...project.sections.map((section) => `${section.heading}\n${section.text}`), @@ -56,6 +62,16 @@ export function generatePeerReview(project: ResearchProject, generatedAt = new D })) } + if (!body.includes("citation") && !body.includes("references") && !body.includes("doi")) { + findings.push(finding({ + severity: "warning", + category: "citation", + message: "Citation context is missing from the reviewed manuscript package.", + evidence: "No citation, references, or DOI signal found in manuscript sections or artifacts.", + recommendation: "Attach a reference list or citation manifest so claims can be checked against prior work." + })) + } + if (body.includes("supports the claim") && !body.includes("limitation")) { findings.push(finding({ severity: "info", @@ -89,6 +105,8 @@ export function generatePeerReview(project: ResearchProject, generatedAt = new D summary: `${findings.length} automated review finding${findings.length === 1 ? "" : "s"} generated for ${project.title}.`, score: Math.max(0, 100 - penalty), findings, - template: domainTemplates[project.domain] + template: domainTemplates[project.domain], + modelProfile, + coveredSignals: ["clarity", "statistics", "ethics", "data_availability", "citation", "claims_vs_evidence"] } } diff --git a/ai-research-assistant-suite/src/lib/reproducibility.ts b/ai-research-assistant-suite/src/lib/reproducibility.ts index e9648f7..0eab6c3 100644 --- a/ai-research-assistant-suite/src/lib/reproducibility.ts +++ b/ai-research-assistant-suite/src/lib/reproducibility.ts @@ -14,15 +14,27 @@ export function runReproducibilityChecks(project: ResearchProject): Reproducibil const hasNotebook = artifacts.some((artifact) => artifact.type === "notebook") const environment = artifacts.find((artifact) => artifact.type === "environment") const dataset = artifacts.find((artifact) => artifact.type === "dataset") + const pipeline = artifacts.find((artifact) => artifact.type === "pipeline" || artifact.type === "script") + const testSet = artifacts.find((artifact) => artifact.type === "test_set") + const results = artifacts.find((artifact) => artifact.type === "results") const runnableArtifact = artifacts.find((artifact) => artifact.content.toLowerCase().includes("run:")) const seeded = artifacts.some((artifact) => artifact.content.toLowerCase().includes("seed")) + const environmentContent = environment?.content ?? "" + const dependencyIntegrity = Boolean(environmentContent) && + /\d+\.\d+/.test(environmentContent) && + !environmentContent.toLowerCase().includes("latest") + const outputConsistency = Boolean(results) && seeded const checks: ReproducibilityCheck[] = [ check("notebook_present", "Notebook or executable analysis is present", hasNotebook, hasNotebook ? "Notebook artifact found." : "No notebook artifact found."), check("environment_present", "Execution environment is specified", Boolean(environment), environment?.path ?? "Missing Dockerfile/environment file."), - check("dataset_manifest", "Dataset manifest is available", Boolean(dataset), dataset?.path ?? "No dataset manifest found."), + check("dependency_integrity", "Dependency versions are pinned for sandbox execution", dependencyIntegrity, environment?.content ?? "No pinned dependency manifest found."), + check("dataset_manifest", "Raw data or dataset manifest is available", Boolean(dataset), dataset?.path ?? "No dataset manifest found."), + check("pipeline_present", "Clean pipeline artifact is available", Boolean(pipeline), pipeline?.path ?? "No analysis pipeline/script artifact found."), + check("test_set_present", "Test set or validation split is available", Boolean(testSet), testSet?.path ?? "No test-set artifact found."), check("reproduction_command", "Reproduction command is documented", Boolean(runnableArtifact), runnableArtifact?.content ?? "No run command found."), - check("deterministic_seed", "Deterministic seed is documented", seeded, seeded ? "Seed keyword found." : "No deterministic seed found.") + check("deterministic_seed", "Deterministic seed is documented", seeded, seeded ? "Seed keyword found." : "No deterministic seed found."), + check("output_consistency", "Reported output can be compared against expected results", outputConsistency, results?.content ?? "No expected result artifact found.") ] const passed = checks.filter((item) => item.status === "passed").length @@ -34,6 +46,13 @@ export function runReproducibilityChecks(project: ResearchProject): Reproducibil confidenceScore, status, checks, - recommendedCommand: runnableArtifact?.content.replace(/^run:\s*/i, "") + recommendedCommand: runnableArtifact?.content.replace(/^run:\s*/i, ""), + sandbox: { + runner: "local-sandbox-simulator", + command: runnableArtifact?.content.replace(/^run:\s*/i, ""), + dependencyFingerprint: environment?.content.split("\n").sort().join("|"), + outputConsistency: outputConsistency ? "consistent" : results ? "mismatch" : "not_checked" + }, + previousAttempts: project.previousReproducibilityAttempts ?? [] } } diff --git a/ai-research-assistant-suite/src/server.ts b/ai-research-assistant-suite/src/server.ts index 1e804f2..346f8b5 100644 --- a/ai-research-assistant-suite/src/server.ts +++ b/ai-research-assistant-suite/src/server.ts @@ -40,6 +40,7 @@ function renderDashboard() { const gapRows = dashboard.gaps.map((gap) => ` ${gap.noveltyScore} + ${gap.signal.replaceAll("_", " ")} ${gap.title} ${gap.rationale} @@ -150,16 +151,18 @@ function renderDashboard() {

Auto peer review

+

${dashboard.review.modelProfile.name}: ${dashboard.review.modelProfile.trainedOn.join(", ")}.

${findingRows}
SeverityCategoryFindingRecommendation

Reproducibility checker

+

Sandbox runner: ${dashboard.reproducibility.sandbox.runner}. Previous attempts linked: ${dashboard.reproducibility.previousAttempts.length}.

${checkRows}
StatusCheckEvidence
${dashboard.reproducibility.recommendedCommand ?? "No command available"}

Research gap finder

- ${gapRows}
NoveltyGapRationale
+ ${gapRows}
NoveltySignalGapRationale
diff --git a/ai-research-assistant-suite/src/types.ts b/ai-research-assistant-suite/src/types.ts index cae4d52..40ba6db 100644 --- a/ai-research-assistant-suite/src/types.ts +++ b/ai-research-assistant-suite/src/types.ts @@ -12,11 +12,20 @@ export interface ManuscriptSection { export interface ProjectArtifact { id: string - type: "manuscript" | "notebook" | "dataset" | "script" | "environment" + type: "manuscript" | "notebook" | "dataset" | "script" | "environment" | "pipeline" | "test_set" | "results" path: string content: string } +export interface ReproducibilityAttempt { + attemptId: string + executedAt: string + runner: string + status: ExecutionStatus + confidenceScore: number + notes: string +} + export interface ResearchProject { id: string title: string @@ -24,6 +33,7 @@ export interface ResearchProject { keywords: string[] sections: ManuscriptSection[] artifacts: ProjectArtifact[] + previousReproducibilityAttempts?: ReproducibilityAttempt[] } export interface ReviewFinding { @@ -43,6 +53,12 @@ export interface PeerReviewReport { score: number findings: ReviewFinding[] template: string[] + modelProfile: { + name: string + trainedOn: string[] + calibration: string + } + coveredSignals: string[] } export interface ReproducibilityCheck { @@ -58,6 +74,13 @@ export interface ReproducibilityReport { status: ExecutionStatus checks: ReproducibilityCheck[] recommendedCommand?: string + sandbox: { + runner: string + command?: string + dependencyFingerprint?: string + outputConsistency: "consistent" | "not_checked" | "mismatch" + } + previousAttempts: ReproducibilityAttempt[] } export interface CorpusPaper { @@ -68,6 +91,8 @@ export interface CorpusPaper { citationCount: number replicationCount: number unresolvedQuestions: string[] + limitations: string[] + negativeFindings: string[] publishedAt: string } @@ -75,6 +100,7 @@ export interface ResearchGap { id: string title: string rationale: string + signal: "under_studied_intersection" | "unresolved_question" | "low_replication_cluster" | "negative_result_follow_up" keywords: string[] noveltyScore: number evidencePaperIds: string[] diff --git a/ai-research-assistant-suite/tests/assistant-suite.test.ts b/ai-research-assistant-suite/tests/assistant-suite.test.ts index 08799b6..424161c 100644 --- a/ai-research-assistant-suite/tests/assistant-suite.test.ts +++ b/ai-research-assistant-suite/tests/assistant-suite.test.ts @@ -10,6 +10,8 @@ describe("AI research assistant suite", () => { const report = generatePeerReview(projects[0], "2026-05-09T00:00:00.000Z") expect(report.template).toContain("Ethics statement") + expect(report.modelProfile.trainedOn).toContain("OpenReview-style review rubrics") + expect(report.coveredSignals).toContain("claims_vs_evidence") expect(report.findings.some((finding) => finding.category === "data_availability")).toBe(true) expect(report.score).toBeLessThan(100) }) @@ -19,6 +21,8 @@ describe("AI research assistant suite", () => { expect(report.confidenceScore).toBe(100) expect(report.status).toBe("passed") + expect(report.sandbox.outputConsistency).toBe("consistent") + expect(report.previousAttempts[0]?.status).toBe("passed") expect(report.recommendedCommand).toContain("python reproduce.py") }) @@ -28,6 +32,7 @@ describe("AI research assistant suite", () => { expect(gaps.length).toBeGreaterThan(0) expect(gaps[0].noveltyScore).toBeGreaterThan(70) expect(gaps[0].evidencePaperIds.length).toBe(1) + expect(gaps.some((gap) => gap.signal === "negative_result_follow_up")).toBe(true) }) it("builds a combined dashboard readiness score", () => {