From 45994b592e601e8f2277069da831ca657799011b Mon Sep 17 00:00:00 2001 From: Ashish-dwi99 Date: Thu, 26 Mar 2026 16:44:39 +0530 Subject: [PATCH] chore: Dhee-V1 release - rename engram to dhee and clean repository for public push --- .claude-plugin/marketplace.json | 30 - .cursor/rules/engram-continuity.mdc | 12 - .gitignore | 70 +- AGENTS.md | 14 +- CLAUDE.md | 28 - CURSOR.md | 28 - Dockerfile | 30 +- README.md | 498 +- dashboard/.gitignore | 43 - dashboard/README.md | 36 - dashboard/eslint.config.mjs | 18 - dashboard/next.config.ts | 7 - dashboard/package-lock.json | 8898 --------------- dashboard/package.json | 51 - dashboard/postcss.config.mjs | 7 - dashboard/public/file.svg | 1 - dashboard/public/globe.svg | 1 - dashboard/public/next.svg | 1 - dashboard/public/vercel.svg | 1 - dashboard/public/window.svg | 1 - dashboard/src/app/categories/page.tsx | 5 - dashboard/src/app/conflicts/page.tsx | 5 - dashboard/src/app/constellation/page.tsx | 5 - dashboard/src/app/cortex/page.tsx | 36 - dashboard/src/app/dashboard/page.tsx | 5 - dashboard/src/app/favicon.ico | Bin 25931 -> 0 bytes dashboard/src/app/globals.css | 128 - dashboard/src/app/hippocampus/page.tsx | 39 - dashboard/src/app/layout.tsx | 37 - dashboard/src/app/memories/page.tsx | 5 - dashboard/src/app/page.tsx | 176 - dashboard/src/app/profiles/page.tsx | 103 - dashboard/src/app/scenes/page.tsx | 5 - dashboard/src/app/staging/page.tsx | 5 - dashboard/src/app/synapses/page.tsx | 99 - .../src/components/brain/brain-canvas.tsx | 216 - .../components/categories/category-tree.tsx | 68 - .../components/clusters/cluster-canvas.tsx | 171 - .../components/clusters/cluster-toolbar.tsx | 55 - .../components/conflicts/conflict-card.tsx | 80 - .../constellation/graph-controls.tsx | 46 - .../components/constellation/graph-legend.tsx | 35 - .../constellation/graph-renderer.ts | 134 - .../components/constellation/memory-graph.tsx | 86 - .../components/dashboard/categories-bar.tsx | 62 - .../components/dashboard/decay-sparkline.tsx | 69 - .../src/components/dashboard/layer-donut.tsx | 61 - .../src/components/dashboard/stat-card.tsx | 44 - .../components/dashboard/stat-cards-row.tsx | 70 - .../hippocampus/forgetting-dashboard.tsx | 98 - .../components/hippocampus/scene-corridor.tsx | 71 - .../hippocampus/sleep-visualizer.tsx | 114 - .../hippocampus/trace-cascade-viz.tsx | 89 - .../src/components/layout/neural-sidebar.tsx | 90 - dashboard/src/components/layout/sidebar.tsx | 68 - dashboard/src/components/layout/top-bar.tsx | 45 - .../components/memories/memory-filters.tsx | 22 - .../src/components/memories/memory-table.tsx | 72 - .../memory-inspector/category-tab.tsx | 26 - .../components/memory-inspector/echo-tab.tsx | 127 - .../components/memory-inspector/fadem-tab.tsx | 199 - .../memory-inspector/history-timeline.tsx | 55 - .../memory-inspector/inspector-actions.tsx | 161 - .../memory-inspector/inspector-panel.tsx | 105 - .../components/memory-inspector/trace-tab.tsx | 148 - .../components/profiles/identity-rings.tsx | 136 - .../src/components/profiles/profile-card.tsx | 110 - .../src/components/scenes/scene-card.tsx | 71 - .../src/components/shared/category-pill.tsx | 19 - .../src/components/shared/empty-state.tsx | 21 - .../src/components/shared/glass-card.tsx | 30 - .../src/components/shared/layer-badge.tsx | 19 - dashboard/src/components/shared/pulse-dot.tsx | 27 - .../components/shared/strength-indicator.tsx | 35 - .../src/components/staging/commit-card.tsx | 119 - .../components/synapses/conflict-synapse.tsx | 97 - .../components/synapses/staging-synapse.tsx | 111 - .../src/components/synapses/synapse-graph.tsx | 171 - dashboard/src/lib/api/categories.ts | 17 - dashboard/src/lib/api/client.ts | 46 - dashboard/src/lib/api/conflicts.ts | 22 - dashboard/src/lib/api/constellation.ts | 13 - dashboard/src/lib/api/decay.ts | 12 - dashboard/src/lib/api/memories.ts | 47 - dashboard/src/lib/api/profiles.ts | 11 - dashboard/src/lib/api/scenes.ts | 19 - dashboard/src/lib/api/staging.ts | 28 - dashboard/src/lib/api/stats.ts | 13 - dashboard/src/lib/hooks/use-categories.ts | 11 - dashboard/src/lib/hooks/use-conflicts.ts | 8 - dashboard/src/lib/hooks/use-constellation.ts | 10 - dashboard/src/lib/hooks/use-decay-log.ts | 10 - dashboard/src/lib/hooks/use-memories.ts | 14 - dashboard/src/lib/hooks/use-memory.ts | 14 - dashboard/src/lib/hooks/use-profiles.ts | 7 - dashboard/src/lib/hooks/use-scenes.ts | 7 - .../src/lib/hooks/use-scroll-progress.ts | 27 - dashboard/src/lib/hooks/use-staging.ts | 8 - dashboard/src/lib/hooks/use-stats.ts | 7 - dashboard/src/lib/stores/cluster-store.ts | 32 - dashboard/src/lib/stores/filter-store.ts | 26 - dashboard/src/lib/stores/graph-store.ts | 31 - dashboard/src/lib/stores/inspector-store.ts | 24 - dashboard/src/lib/types/category.ts | 13 - dashboard/src/lib/types/conflict.ts | 12 - dashboard/src/lib/types/constellation.ts | 21 - dashboard/src/lib/types/memory.ts | 49 - dashboard/src/lib/types/profile.ts | 17 - dashboard/src/lib/types/scene.ts | 11 - dashboard/src/lib/types/staging.ts | 11 - dashboard/src/lib/types/stats.ts | 7 - dashboard/src/lib/utils/cluster-layout.ts | 124 - dashboard/src/lib/utils/colors.ts | 30 - dashboard/src/lib/utils/decay-math.ts | 32 - dashboard/src/lib/utils/format.ts | 37 - dashboard/src/lib/utils/neural-palette.ts | 74 - dashboard/src/workers/force-layout.worker.ts | 77 - dashboard/tsconfig.json | 34 - data/arc-agi-3-agents | 1 - data/arc-agi/evaluation/00576224.json | 1 - data/arc-agi/evaluation/009d5c81.json | 1 - data/arc-agi/evaluation/00dbd492.json | 1 - data/arc-agi/evaluation/03560426.json | 1 - data/arc-agi/evaluation/05a7bcf2.json | 1 - data/arc-agi/evaluation/0607ce86.json | 1 - data/arc-agi/evaluation/0692e18c.json | 1 - data/arc-agi/evaluation/070dd51e.json | 1 - data/arc-agi/evaluation/08573cc6.json | 1 - data/arc-agi/evaluation/0934a4d8.json | 1 - data/arc-agi/evaluation/09c534e7.json | 1 - data/arc-agi/evaluation/0a1d4ef5.json | 1 - data/arc-agi/evaluation/0a2355a6.json | 1 - data/arc-agi/evaluation/0b17323b.json | 1 - data/arc-agi/evaluation/0bb8deee.json | 1 - data/arc-agi/evaluation/0becf7df.json | 1 - data/arc-agi/evaluation/0c786b71.json | 1 - data/arc-agi/evaluation/0c9aba6e.json | 1 - data/arc-agi/evaluation/0d87d2a6.json | 1 - data/arc-agi/evaluation/0e671a1a.json | 1 - data/arc-agi/evaluation/0f63c0b9.json | 1 - data/arc-agi/evaluation/103eff5b.json | 1 - data/arc-agi/evaluation/11e1fe23.json | 1 - data/arc-agi/evaluation/12422b43.json | 1 - data/arc-agi/evaluation/12997ef3.json | 1 - data/arc-agi/evaluation/12eac192.json | 1 - data/arc-agi/evaluation/136b0064.json | 1 - data/arc-agi/evaluation/13713586.json | 1 - data/arc-agi/evaluation/137f0df0.json | 1 - data/arc-agi/evaluation/140c817e.json | 1 - data/arc-agi/evaluation/14754a24.json | 1 - data/arc-agi/evaluation/15113be4.json | 1 - data/arc-agi/evaluation/15663ba9.json | 1 - data/arc-agi/evaluation/15696249.json | 1 - data/arc-agi/evaluation/16b78196.json | 1 - data/arc-agi/evaluation/17b80ad2.json | 1 - data/arc-agi/evaluation/17cae0c1.json | 1 - data/arc-agi/evaluation/18419cfa.json | 1 - data/arc-agi/evaluation/184a9768.json | 1 - data/arc-agi/evaluation/195ba7dc.json | 1 - data/arc-agi/evaluation/1990f7a8.json | 1 - data/arc-agi/evaluation/19bb5feb.json | 1 - data/arc-agi/evaluation/1a2e2828.json | 1 - data/arc-agi/evaluation/1a6449f1.json | 1 - data/arc-agi/evaluation/1acc24af.json | 1 - data/arc-agi/evaluation/1c02dbbe.json | 1 - data/arc-agi/evaluation/1c0d0a4b.json | 1 - data/arc-agi/evaluation/1c56ad9f.json | 1 - data/arc-agi/evaluation/1d0a4b61.json | 1 - data/arc-agi/evaluation/1d398264.json | 1 - data/arc-agi/evaluation/1da012fc.json | 1 - data/arc-agi/evaluation/1e81d6f9.json | 1 - data/arc-agi/evaluation/1e97544e.json | 1 - data/arc-agi/evaluation/2037f2c7.json | 1 - data/arc-agi/evaluation/2072aba6.json | 1 - data/arc-agi/evaluation/20818e16.json | 1 - data/arc-agi/evaluation/20981f0e.json | 1 - data/arc-agi/evaluation/212895b5.json | 1 - data/arc-agi/evaluation/21f83797.json | 1 - data/arc-agi/evaluation/22a4bbc2.json | 1 - data/arc-agi/evaluation/25094a63.json | 1 - data/arc-agi/evaluation/2546ccf6.json | 1 - data/arc-agi/evaluation/256b0a75.json | 1 - data/arc-agi/evaluation/2685904e.json | 1 - data/arc-agi/evaluation/2697da3f.json | 1 - data/arc-agi/evaluation/2753e76c.json | 1 - data/arc-agi/evaluation/27a77e38.json | 1 - data/arc-agi/evaluation/27f8ce4f.json | 1 - data/arc-agi/evaluation/281123b4.json | 1 - data/arc-agi/evaluation/292dd178.json | 1 - data/arc-agi/evaluation/29700607.json | 1 - data/arc-agi/evaluation/2a5f8217.json | 1 - data/arc-agi/evaluation/2b01abd0.json | 1 - data/arc-agi/evaluation/2c0b0aff.json | 1 - data/arc-agi/evaluation/2c737e39.json | 1 - data/arc-agi/evaluation/2f0c5170.json | 1 - data/arc-agi/evaluation/310f3251.json | 1 - data/arc-agi/evaluation/3194b014.json | 1 - data/arc-agi/evaluation/319f2597.json | 1 - data/arc-agi/evaluation/31adaf00.json | 1 - data/arc-agi/evaluation/31d5ba1a.json | 1 - data/arc-agi/evaluation/32e9702f.json | 1 - data/arc-agi/evaluation/332efdb3.json | 1 - data/arc-agi/evaluation/3391f8c0.json | 1 - data/arc-agi/evaluation/33b52de3.json | 1 - data/arc-agi/evaluation/3490cc26.json | 1 - data/arc-agi/evaluation/34b99a2b.json | 1 - data/arc-agi/evaluation/351d6448.json | 1 - data/arc-agi/evaluation/358ba94e.json | 1 - data/arc-agi/evaluation/37d3e8b2.json | 1 - data/arc-agi/evaluation/3979b1a8.json | 1 - data/arc-agi/evaluation/3a301edc.json | 1 - data/arc-agi/evaluation/3b4c2228.json | 1 - data/arc-agi/evaluation/3d31c5b3.json | 1 - data/arc-agi/evaluation/3ed85e70.json | 1 - data/arc-agi/evaluation/3ee1011a.json | 1 - data/arc-agi/evaluation/3f23242b.json | 1 - data/arc-agi/evaluation/40f6cd08.json | 1 - data/arc-agi/evaluation/414297c0.json | 1 - data/arc-agi/evaluation/423a55dc.json | 1 - data/arc-agi/evaluation/42918530.json | 1 - data/arc-agi/evaluation/42a15761.json | 1 - data/arc-agi/evaluation/4364c1c4.json | 1 - data/arc-agi/evaluation/456873bc.json | 1 - data/arc-agi/evaluation/45737921.json | 1 - data/arc-agi/evaluation/45bbe264.json | 1 - data/arc-agi/evaluation/477d2879.json | 1 - data/arc-agi/evaluation/47996f11.json | 1 - data/arc-agi/evaluation/48131b3c.json | 1 - data/arc-agi/evaluation/4852f2fa.json | 1 - data/arc-agi/evaluation/48f8583b.json | 1 - data/arc-agi/evaluation/4aab4007.json | 1 - data/arc-agi/evaluation/4acc7107.json | 1 - data/arc-agi/evaluation/4b6b68e5.json | 1 - data/arc-agi/evaluation/4c177718.json | 1 - data/arc-agi/evaluation/4cd1b7b2.json | 1 - data/arc-agi/evaluation/4e45f183.json | 1 - data/arc-agi/evaluation/4e469f39.json | 1 - data/arc-agi/evaluation/4f537728.json | 1 - data/arc-agi/evaluation/4ff4c9da.json | 1 - data/arc-agi/evaluation/505fff84.json | 1 - data/arc-agi/evaluation/506d28a5.json | 1 - data/arc-agi/evaluation/50a16a69.json | 1 - data/arc-agi/evaluation/50aad11f.json | 1 - data/arc-agi/evaluation/50f325b5.json | 1 - data/arc-agi/evaluation/516b51b7.json | 1 - data/arc-agi/evaluation/5207a7b5.json | 1 - data/arc-agi/evaluation/5289ad53.json | 1 - data/arc-agi/evaluation/52fd389e.json | 1 - data/arc-agi/evaluation/54db823b.json | 1 - data/arc-agi/evaluation/55059096.json | 1 - data/arc-agi/evaluation/551d5bf1.json | 1 - data/arc-agi/evaluation/55783887.json | 1 - data/arc-agi/evaluation/575b1a71.json | 1 - data/arc-agi/evaluation/5783df64.json | 1 - data/arc-agi/evaluation/5833af48.json | 1 - data/arc-agi/evaluation/58743b76.json | 1 - data/arc-agi/evaluation/58e15b12.json | 1 - data/arc-agi/evaluation/59341089.json | 1 - data/arc-agi/evaluation/5a5a2103.json | 1 - data/arc-agi/evaluation/5af49b42.json | 1 - data/arc-agi/evaluation/5b526a93.json | 1 - data/arc-agi/evaluation/5b692c0f.json | 1 - data/arc-agi/evaluation/5b6cbef5.json | 1 - data/arc-agi/evaluation/5d2a5c43.json | 1 - data/arc-agi/evaluation/5ffb2104.json | 1 - data/arc-agi/evaluation/604001fa.json | 1 - data/arc-agi/evaluation/60a26a3e.json | 1 - data/arc-agi/evaluation/60c09cac.json | 1 - data/arc-agi/evaluation/626c0bcc.json | 1 - data/arc-agi/evaluation/62ab2642.json | 1 - data/arc-agi/evaluation/62b74c02.json | 1 - data/arc-agi/evaluation/639f5a19.json | 1 - data/arc-agi/evaluation/642248e4.json | 1 - data/arc-agi/evaluation/642d658d.json | 1 - data/arc-agi/evaluation/64a7c07e.json | 1 - data/arc-agi/evaluation/66e6c45b.json | 1 - data/arc-agi/evaluation/66f2d22f.json | 1 - data/arc-agi/evaluation/67636eac.json | 1 - data/arc-agi/evaluation/67b4a34d.json | 1 - data/arc-agi/evaluation/67c52801.json | 1 - data/arc-agi/evaluation/68b67ca3.json | 1 - data/arc-agi/evaluation/692cd3b6.json | 1 - data/arc-agi/evaluation/695367ec.json | 1 - data/arc-agi/evaluation/696d4842.json | 1 - data/arc-agi/evaluation/69889d6e.json | 1 - data/arc-agi/evaluation/6a11f6da.json | 1 - data/arc-agi/evaluation/6ad5bdfd.json | 1 - data/arc-agi/evaluation/6df30ad6.json | 1 - data/arc-agi/evaluation/6ea4a07e.json | 1 - data/arc-agi/evaluation/6f473927.json | 1 - data/arc-agi/evaluation/7039b2d7.json | 1 - data/arc-agi/evaluation/705a3229.json | 1 - data/arc-agi/evaluation/712bf12e.json | 1 - data/arc-agi/evaluation/72207abc.json | 1 - data/arc-agi/evaluation/72a961c9.json | 1 - data/arc-agi/evaluation/73182012.json | 1 - data/arc-agi/evaluation/73c3b0d8.json | 1 - data/arc-agi/evaluation/73ccf9c2.json | 1 - data/arc-agi/evaluation/759f3fd3.json | 1 - data/arc-agi/evaluation/762cd429.json | 1 - data/arc-agi/evaluation/770cc55f.json | 1 - data/arc-agi/evaluation/782b5218.json | 1 - data/arc-agi/evaluation/79369cc6.json | 1 - data/arc-agi/evaluation/7953d61e.json | 1 - data/arc-agi/evaluation/79fb03f4.json | 1 - data/arc-agi/evaluation/7bb29440.json | 1 - data/arc-agi/evaluation/7c8af763.json | 1 - data/arc-agi/evaluation/7c9b52a0.json | 1 - data/arc-agi/evaluation/7d18a6fb.json | 1 - data/arc-agi/evaluation/7d1f7ee8.json | 1 - data/arc-agi/evaluation/7d419a02.json | 1 - data/arc-agi/evaluation/7e02026e.json | 1 - data/arc-agi/evaluation/7ee1c6ea.json | 1 - data/arc-agi/evaluation/817e6c09.json | 1 - data/arc-agi/evaluation/81c0276b.json | 1 - data/arc-agi/evaluation/833dafe3.json | 1 - data/arc-agi/evaluation/845d6e51.json | 1 - data/arc-agi/evaluation/84db8fc4.json | 1 - data/arc-agi/evaluation/84f2aca1.json | 1 - data/arc-agi/evaluation/8597cfd7.json | 1 - data/arc-agi/evaluation/85b81ff1.json | 1 - data/arc-agi/evaluation/85fa5666.json | 1 - data/arc-agi/evaluation/8719f442.json | 1 - data/arc-agi/evaluation/88207623.json | 1 - data/arc-agi/evaluation/891232d6.json | 1 - data/arc-agi/evaluation/896d5239.json | 1 - data/arc-agi/evaluation/8a371977.json | 1 - data/arc-agi/evaluation/8b28cd80.json | 1 - data/arc-agi/evaluation/8ba14f53.json | 1 - data/arc-agi/evaluation/8cb8642d.json | 1 - data/arc-agi/evaluation/8dae5dfc.json | 1 - data/arc-agi/evaluation/8e2edd66.json | 1 - data/arc-agi/evaluation/8ee62060.json | 1 - data/arc-agi/evaluation/8fbca751.json | 1 - data/arc-agi/evaluation/90347967.json | 1 - data/arc-agi/evaluation/903d1b4a.json | 1 - data/arc-agi/evaluation/9110e3c5.json | 1 - data/arc-agi/evaluation/917bccba.json | 1 - data/arc-agi/evaluation/929ab4e9.json | 1 - data/arc-agi/evaluation/92e50de0.json | 1 - data/arc-agi/evaluation/9356391f.json | 1 - data/arc-agi/evaluation/93b4f4b3.json | 1 - data/arc-agi/evaluation/93c31fbe.json | 1 - data/arc-agi/evaluation/94133066.json | 1 - data/arc-agi/evaluation/94414823.json | 1 - data/arc-agi/evaluation/94be5b80.json | 1 - data/arc-agi/evaluation/95a58926.json | 1 - data/arc-agi/evaluation/963f59bc.json | 1 - data/arc-agi/evaluation/96a8c0cd.json | 1 - data/arc-agi/evaluation/97239e3d.json | 1 - data/arc-agi/evaluation/9772c176.json | 1 - data/arc-agi/evaluation/981571dc.json | 1 - data/arc-agi/evaluation/992798f6.json | 1 - data/arc-agi/evaluation/99306f82.json | 1 - data/arc-agi/evaluation/9a4bb226.json | 1 - data/arc-agi/evaluation/9b2a60aa.json | 1 - data/arc-agi/evaluation/9b365c51.json | 1 - data/arc-agi/evaluation/9b4c17c4.json | 1 - data/arc-agi/evaluation/9bebae7a.json | 1 - data/arc-agi/evaluation/9c1e755f.json | 1 - data/arc-agi/evaluation/9c56f360.json | 1 - data/arc-agi/evaluation/9caba7c3.json | 1 - data/arc-agi/evaluation/9ddd00f0.json | 1 - data/arc-agi/evaluation/9def23fe.json | 1 - data/arc-agi/evaluation/9f27f097.json | 1 - data/arc-agi/evaluation/a04b2602.json | 1 - data/arc-agi/evaluation/a096bf4d.json | 1 - data/arc-agi/evaluation/a3f84088.json | 1 - data/arc-agi/evaluation/a406ac07.json | 1 - data/arc-agi/evaluation/a57f2f04.json | 1 - data/arc-agi/evaluation/a59b95c0.json | 1 - data/arc-agi/evaluation/a680ac02.json | 1 - data/arc-agi/evaluation/a8610ef7.json | 1 - data/arc-agi/evaluation/a934301b.json | 1 - data/arc-agi/evaluation/aa18de87.json | 1 - data/arc-agi/evaluation/aa300dc3.json | 1 - data/arc-agi/evaluation/aa4ec2a5.json | 1 - data/arc-agi/evaluation/aab50785.json | 1 - data/arc-agi/evaluation/ac0c5833.json | 1 - data/arc-agi/evaluation/ac2e8ecf.json | 1 - data/arc-agi/evaluation/ac3e2b04.json | 1 - data/arc-agi/evaluation/ac605cbb.json | 1 - data/arc-agi/evaluation/ad7e01d0.json | 1 - data/arc-agi/evaluation/ae58858e.json | 1 - data/arc-agi/evaluation/aee291af.json | 1 - data/arc-agi/evaluation/af22c60d.json | 1 - data/arc-agi/evaluation/af24b4cc.json | 1 - data/arc-agi/evaluation/b0722778.json | 1 - data/arc-agi/evaluation/b0f4d537.json | 1 - data/arc-agi/evaluation/b15fca0b.json | 1 - data/arc-agi/evaluation/b1fc8b8e.json | 1 - data/arc-agi/evaluation/b20f7c8b.json | 1 - data/arc-agi/evaluation/b457fec5.json | 1 - data/arc-agi/evaluation/b4a43f3b.json | 1 - data/arc-agi/evaluation/b7999b51.json | 1 - data/arc-agi/evaluation/b7cb93ac.json | 1 - data/arc-agi/evaluation/b7f8a4d8.json | 1 - data/arc-agi/evaluation/b7fb29bc.json | 1 - data/arc-agi/evaluation/b942fd60.json | 1 - data/arc-agi/evaluation/b9630600.json | 1 - data/arc-agi/evaluation/ba9d41b8.json | 1 - data/arc-agi/evaluation/baf41dbf.json | 1 - data/arc-agi/evaluation/bb52a14b.json | 1 - data/arc-agi/evaluation/bbb1b8b6.json | 1 - data/arc-agi/evaluation/bc4146bd.json | 1 - data/arc-agi/evaluation/bcb3040b.json | 1 - data/arc-agi/evaluation/bd14c3bf.json | 1 - data/arc-agi/evaluation/be03b35f.json | 1 - data/arc-agi/evaluation/bf32578f.json | 1 - data/arc-agi/evaluation/bf699163.json | 1 - data/arc-agi/evaluation/bf89d739.json | 1 - data/arc-agi/evaluation/c074846d.json | 1 - data/arc-agi/evaluation/c1990cce.json | 1 - data/arc-agi/evaluation/c3202e5a.json | 1 - data/arc-agi/evaluation/c35c1b4c.json | 1 - data/arc-agi/evaluation/c48954c1.json | 1 - data/arc-agi/evaluation/c62e2108.json | 1 - data/arc-agi/evaluation/c64f1187.json | 1 - data/arc-agi/evaluation/c658a4bd.json | 1 - data/arc-agi/evaluation/c663677b.json | 1 - data/arc-agi/evaluation/c6e1b8da.json | 1 - data/arc-agi/evaluation/c7d4e6ad.json | 1 - data/arc-agi/evaluation/c87289bb.json | 1 - data/arc-agi/evaluation/c8b7cc0f.json | 1 - data/arc-agi/evaluation/c92b942c.json | 1 - data/arc-agi/evaluation/c97c0139.json | 1 - data/arc-agi/evaluation/ca8de6ea.json | 1 - data/arc-agi/evaluation/ca8f78db.json | 1 - data/arc-agi/evaluation/cad67732.json | 1 - data/arc-agi/evaluation/cb227835.json | 1 - data/arc-agi/evaluation/ccd554ac.json | 1 - data/arc-agi/evaluation/cd3c21df.json | 1 - data/arc-agi/evaluation/ce039d91.json | 1 - data/arc-agi/evaluation/ce8d95cc.json | 1 - data/arc-agi/evaluation/cf133acc.json | 1 - data/arc-agi/evaluation/cfb2ce5a.json | 1 - data/arc-agi/evaluation/d017b73f.json | 1 - data/arc-agi/evaluation/d19f7514.json | 1 - data/arc-agi/evaluation/d282b262.json | 1 - data/arc-agi/evaluation/d2acf2cb.json | 1 - data/arc-agi/evaluation/d304284e.json | 1 - data/arc-agi/evaluation/d37a1ef5.json | 1 - data/arc-agi/evaluation/d47aa2ff.json | 1 - data/arc-agi/evaluation/d492a647.json | 1 - data/arc-agi/evaluation/d4b1c2b1.json | 1 - data/arc-agi/evaluation/d4c90558.json | 1 - data/arc-agi/evaluation/d56f2372.json | 1 - data/arc-agi/evaluation/d5c634a2.json | 1 - data/arc-agi/evaluation/d931c21c.json | 1 - data/arc-agi/evaluation/d94c3b52.json | 1 - data/arc-agi/evaluation/da2b0fe3.json | 1 - data/arc-agi/evaluation/da515329.json | 1 - data/arc-agi/evaluation/dc2aa30b.json | 1 - data/arc-agi/evaluation/dc2e9a9d.json | 1 - data/arc-agi/evaluation/dd2401ed.json | 1 - data/arc-agi/evaluation/de493100.json | 1 - data/arc-agi/evaluation/df8cc377.json | 1 - data/arc-agi/evaluation/e0fb7511.json | 1 - data/arc-agi/evaluation/e133d23d.json | 1 - data/arc-agi/evaluation/e1baa8a4.json | 1 - data/arc-agi/evaluation/e1d2900e.json | 1 - data/arc-agi/evaluation/e2092e0c.json | 1 - data/arc-agi/evaluation/e21a174a.json | 1 - data/arc-agi/evaluation/e345f17b.json | 1 - data/arc-agi/evaluation/e4075551.json | 1 - data/arc-agi/evaluation/e41c6fd3.json | 1 - data/arc-agi/evaluation/e57337a4.json | 1 - data/arc-agi/evaluation/e5790162.json | 1 - data/arc-agi/evaluation/e5c44e8f.json | 1 - data/arc-agi/evaluation/e619ca6e.json | 1 - data/arc-agi/evaluation/e633a9e5.json | 1 - data/arc-agi/evaluation/e66aafb8.json | 1 - data/arc-agi/evaluation/e681b708.json | 1 - data/arc-agi/evaluation/e69241bd.json | 1 - data/arc-agi/evaluation/e6de6e8f.json | 1 - data/arc-agi/evaluation/e74e1818.json | 1 - data/arc-agi/evaluation/e760a62e.json | 1 - data/arc-agi/evaluation/e7639916.json | 1 - data/arc-agi/evaluation/e78887d1.json | 1 - data/arc-agi/evaluation/e7a25a18.json | 1 - data/arc-agi/evaluation/e7b06bea.json | 1 - data/arc-agi/evaluation/e7dd8335.json | 1 - data/arc-agi/evaluation/e872b94a.json | 1 - data/arc-agi/evaluation/e88171ec.json | 1 - data/arc-agi/evaluation/e95e3d8e.json | 1 - data/arc-agi/evaluation/e99362f0.json | 1 - data/arc-agi/evaluation/e9ac8c9e.json | 1 - data/arc-agi/evaluation/e9b4f6fc.json | 1 - data/arc-agi/evaluation/e9bb6954.json | 1 - data/arc-agi/evaluation/e9c9d9a1.json | 1 - data/arc-agi/evaluation/ea959feb.json | 1 - data/arc-agi/evaluation/ea9794b1.json | 1 - data/arc-agi/evaluation/ecaa0ec1.json | 1 - data/arc-agi/evaluation/ed74f2f2.json | 1 - data/arc-agi/evaluation/ed98d772.json | 1 - data/arc-agi/evaluation/ef26cbf6.json | 1 - data/arc-agi/evaluation/f0afb749.json | 1 - data/arc-agi/evaluation/f0df5ff0.json | 1 - data/arc-agi/evaluation/f21745ec.json | 1 - data/arc-agi/evaluation/f3b10344.json | 1 - data/arc-agi/evaluation/f3cdc58f.json | 1 - data/arc-agi/evaluation/f3e62deb.json | 1 - data/arc-agi/evaluation/f4081712.json | 1 - data/arc-agi/evaluation/f45f5ca7.json | 1 - data/arc-agi/evaluation/f5aa3634.json | 1 - data/arc-agi/evaluation/f5c89df1.json | 1 - data/arc-agi/evaluation/f823c43c.json | 1 - data/arc-agi/evaluation/f83cb3f6.json | 1 - data/arc-agi/evaluation/f8be4b64.json | 1 - data/arc-agi/evaluation/f9a67cb5.json | 1 - data/arc-agi/evaluation/f9d67f8b.json | 1 - data/arc-agi/evaluation/fafd9572.json | 1 - data/arc-agi/evaluation/fb791726.json | 1 - data/arc-agi/evaluation/fc754716.json | 1 - data/arc-agi/evaluation/fd096ab6.json | 1 - data/arc-agi/evaluation/fd4b2b02.json | 1 - data/arc-agi/evaluation/fe9372f3.json | 1 - data/arc-agi/evaluation/fea12743.json | 1 - data/arc-agi/evaluation/ff72ca3e.json | 1 - data/arc-agi/results_direct.json | 3674 ------- data/arc-agi/results_memory.json | 3592 ------ data/arc-agi/training/007bbfb7.json | 1 - data/arc-agi/training/00d62c1b.json | 1 - data/arc-agi/training/017c7c7b.json | 1 - data/arc-agi/training/025d127b.json | 1 - data/arc-agi/training/045e512c.json | 1 - data/arc-agi/training/0520fde7.json | 1 - data/arc-agi/training/05269061.json | 1 - data/arc-agi/training/05f2a901.json | 1 - data/arc-agi/training/06df4c85.json | 1 - data/arc-agi/training/08ed6ac7.json | 1 - data/arc-agi/training/09629e4f.json | 1 - data/arc-agi/training/0962bcdd.json | 1 - data/arc-agi/training/0a938d79.json | 1 - data/arc-agi/training/0b148d64.json | 1 - data/arc-agi/training/0ca9ddb6.json | 1 - data/arc-agi/training/0d3d703e.json | 1 - data/arc-agi/training/0dfd9992.json | 1 - data/arc-agi/training/0e206a2e.json | 1 - data/arc-agi/training/10fcaaa3.json | 1 - data/arc-agi/training/11852cab.json | 1 - data/arc-agi/training/1190e5a7.json | 1 - data/arc-agi/training/137eaa0f.json | 1 - data/arc-agi/training/150deff5.json | 1 - data/arc-agi/training/178fcbfb.json | 1 - data/arc-agi/training/1a07d186.json | 1 - data/arc-agi/training/1b2d62fb.json | 1 - data/arc-agi/training/1b60fb0c.json | 1 - data/arc-agi/training/1bfc4729.json | 1 - data/arc-agi/training/1c786137.json | 1 - data/arc-agi/training/1caeab9d.json | 1 - data/arc-agi/training/1cf80156.json | 1 - data/arc-agi/training/1e0a9b12.json | 1 - data/arc-agi/training/1e32b0e9.json | 1 - data/arc-agi/training/1f0c79e5.json | 1 - data/arc-agi/training/1f642eb9.json | 1 - data/arc-agi/training/1f85a75f.json | 1 - data/arc-agi/training/1f876c06.json | 1 - data/arc-agi/training/1fad071e.json | 1 - data/arc-agi/training/2013d3e2.json | 1 - data/arc-agi/training/2204b7a8.json | 1 - data/arc-agi/training/22168020.json | 1 - data/arc-agi/training/22233c11.json | 1 - data/arc-agi/training/2281f1f4.json | 1 - data/arc-agi/training/228f6490.json | 1 - data/arc-agi/training/22eb0ac0.json | 1 - data/arc-agi/training/234bbc79.json | 1 - data/arc-agi/training/23581191.json | 1 - data/arc-agi/training/239be575.json | 1 - data/arc-agi/training/23b5c85d.json | 1 - data/arc-agi/training/253bf280.json | 1 - data/arc-agi/training/25d487eb.json | 1 - data/arc-agi/training/25d8a9c8.json | 1 - data/arc-agi/training/25ff71a9.json | 1 - data/arc-agi/training/264363fd.json | 1 - data/arc-agi/training/272f95fa.json | 1 - data/arc-agi/training/27a28665.json | 1 - data/arc-agi/training/28bf18c6.json | 1 - data/arc-agi/training/28e73c20.json | 1 - data/arc-agi/training/29623171.json | 1 - data/arc-agi/training/29c11459.json | 1 - data/arc-agi/training/29ec7d0e.json | 1 - data/arc-agi/training/2bcee788.json | 1 - data/arc-agi/training/2bee17df.json | 1 - data/arc-agi/training/2c608aff.json | 1 - data/arc-agi/training/2dc579da.json | 1 - data/arc-agi/training/2dd70a9a.json | 1 - data/arc-agi/training/2dee498d.json | 1 - data/arc-agi/training/31aa019c.json | 1 - data/arc-agi/training/321b1fc6.json | 1 - data/arc-agi/training/32597951.json | 1 - data/arc-agi/training/3345333e.json | 1 - data/arc-agi/training/3428a4f5.json | 1 - data/arc-agi/training/3618c87e.json | 1 - data/arc-agi/training/3631a71a.json | 1 - data/arc-agi/training/363442ee.json | 1 - data/arc-agi/training/36d67576.json | 1 - data/arc-agi/training/36fdfd69.json | 1 - data/arc-agi/training/3906de3d.json | 1 - data/arc-agi/training/39a8645d.json | 1 - data/arc-agi/training/39e1d7f9.json | 1 - data/arc-agi/training/3aa6fb7a.json | 1 - data/arc-agi/training/3ac3eb23.json | 1 - data/arc-agi/training/3af2c5a8.json | 1 - data/arc-agi/training/3bd67248.json | 1 - data/arc-agi/training/3bdb4ada.json | 1 - data/arc-agi/training/3befdf3e.json | 1 - data/arc-agi/training/3c9b0459.json | 1 - data/arc-agi/training/3de23699.json | 1 - data/arc-agi/training/3e980e27.json | 1 - data/arc-agi/training/3eda0437.json | 1 - data/arc-agi/training/3f7978a0.json | 1 - data/arc-agi/training/40853293.json | 1 - data/arc-agi/training/4093f84a.json | 1 - data/arc-agi/training/41e4d17e.json | 1 - data/arc-agi/training/4258a5f9.json | 1 - data/arc-agi/training/4290ef0e.json | 1 - data/arc-agi/training/42a50994.json | 1 - data/arc-agi/training/4347f46a.json | 1 - data/arc-agi/training/444801d8.json | 1 - data/arc-agi/training/445eab21.json | 1 - data/arc-agi/training/447fd412.json | 1 - data/arc-agi/training/44d8ac46.json | 1 - data/arc-agi/training/44f52bb0.json | 1 - data/arc-agi/training/4522001f.json | 1 - data/arc-agi/training/4612dd53.json | 1 - data/arc-agi/training/46442a0e.json | 1 - data/arc-agi/training/469497ad.json | 1 - data/arc-agi/training/46f33fce.json | 1 - data/arc-agi/training/47c1f68c.json | 1 - data/arc-agi/training/484b58aa.json | 1 - data/arc-agi/training/48d8fb45.json | 1 - data/arc-agi/training/4938f0c2.json | 1 - data/arc-agi/training/496994bd.json | 1 - data/arc-agi/training/49d1d64f.json | 1 - data/arc-agi/training/4be741c5.json | 1 - data/arc-agi/training/4c4377d9.json | 1 - data/arc-agi/training/4c5c2cf0.json | 1 - data/arc-agi/training/50846271.json | 1 - data/arc-agi/training/508bd3b6.json | 1 - data/arc-agi/training/50cb2852.json | 1 - data/arc-agi/training/5117e062.json | 1 - data/arc-agi/training/5168d44c.json | 1 - data/arc-agi/training/539a4f51.json | 1 - data/arc-agi/training/53b68214.json | 1 - data/arc-agi/training/543a7ed5.json | 1 - data/arc-agi/training/54d82841.json | 1 - data/arc-agi/training/54d9e175.json | 1 - data/arc-agi/training/5521c0d9.json | 1 - data/arc-agi/training/5582e5ca.json | 1 - data/arc-agi/training/5614dbcf.json | 1 - data/arc-agi/training/56dc2b01.json | 1 - data/arc-agi/training/56ff96f3.json | 1 - data/arc-agi/training/57aa92db.json | 1 - data/arc-agi/training/5ad4f10b.json | 1 - data/arc-agi/training/5bd6f4ac.json | 1 - data/arc-agi/training/5c0a986e.json | 1 - data/arc-agi/training/5c2c9af4.json | 1 - data/arc-agi/training/5daaa586.json | 1 - data/arc-agi/training/60b61512.json | 1 - data/arc-agi/training/6150a2bd.json | 1 - data/arc-agi/training/623ea044.json | 1 - data/arc-agi/training/62c24649.json | 1 - data/arc-agi/training/63613498.json | 1 - data/arc-agi/training/6430c8c4.json | 1 - data/arc-agi/training/6455b5f5.json | 1 - data/arc-agi/training/662c240a.json | 1 - data/arc-agi/training/67385a82.json | 1 - data/arc-agi/training/673ef223.json | 1 - data/arc-agi/training/6773b310.json | 1 - data/arc-agi/training/67a3c6ac.json | 1 - data/arc-agi/training/67a423a3.json | 1 - data/arc-agi/training/67e8384a.json | 1 - data/arc-agi/training/681b3aeb.json | 1 - data/arc-agi/training/6855a6e4.json | 1 - data/arc-agi/training/68b16354.json | 1 - data/arc-agi/training/694f12f3.json | 1 - data/arc-agi/training/6a1e5592.json | 1 - data/arc-agi/training/6aa20dc0.json | 1 - data/arc-agi/training/6b9890af.json | 1 - data/arc-agi/training/6c434453.json | 1 - data/arc-agi/training/6cdd2623.json | 1 - data/arc-agi/training/6cf79266.json | 1 - data/arc-agi/training/6d0160f0.json | 1 - data/arc-agi/training/6d0aefbc.json | 1 - data/arc-agi/training/6d58a25d.json | 1 - data/arc-agi/training/6d75e8bb.json | 1 - data/arc-agi/training/6e02f1e3.json | 1 - data/arc-agi/training/6e19193c.json | 1 - data/arc-agi/training/6e82a1ae.json | 1 - data/arc-agi/training/6ecd11f4.json | 1 - data/arc-agi/training/6f8cd79b.json | 1 - data/arc-agi/training/6fa7a44f.json | 1 - data/arc-agi/training/72322fa7.json | 1 - data/arc-agi/training/72ca375d.json | 1 - data/arc-agi/training/73251a56.json | 1 - data/arc-agi/training/7447852a.json | 1 - data/arc-agi/training/7468f01a.json | 1 - data/arc-agi/training/746b3537.json | 1 - data/arc-agi/training/74dd1130.json | 1 - data/arc-agi/training/75b8110e.json | 1 - data/arc-agi/training/760b3cac.json | 1 - data/arc-agi/training/776ffc46.json | 1 - data/arc-agi/training/77fdfe62.json | 1 - data/arc-agi/training/780d0b14.json | 1 - data/arc-agi/training/7837ac64.json | 1 - data/arc-agi/training/794b24be.json | 1 - data/arc-agi/training/7b6016b9.json | 1 - data/arc-agi/training/7b7f7511.json | 1 - data/arc-agi/training/7c008303.json | 1 - data/arc-agi/training/7ddcd7ec.json | 1 - data/arc-agi/training/7df24a62.json | 1 - data/arc-agi/training/7e0986d6.json | 1 - data/arc-agi/training/7f4411dc.json | 1 - data/arc-agi/training/7fe24cdd.json | 1 - data/arc-agi/training/80af3007.json | 1 - data/arc-agi/training/810b9b61.json | 1 - data/arc-agi/training/82819916.json | 1 - data/arc-agi/training/83302e8f.json | 1 - data/arc-agi/training/834ec97d.json | 1 - data/arc-agi/training/8403a5d5.json | 1 - data/arc-agi/training/846bdb03.json | 1 - data/arc-agi/training/855e0971.json | 1 - data/arc-agi/training/85c4e7cd.json | 1 - data/arc-agi/training/868de0fa.json | 1 - data/arc-agi/training/8731374e.json | 1 - data/arc-agi/training/88a10436.json | 1 - data/arc-agi/training/88a62173.json | 1 - data/arc-agi/training/890034e9.json | 1 - data/arc-agi/training/8a004b2b.json | 1 - data/arc-agi/training/8be77c9e.json | 1 - data/arc-agi/training/8d5021e8.json | 1 - data/arc-agi/training/8d510a79.json | 1 - data/arc-agi/training/8e1813be.json | 1 - data/arc-agi/training/8e5a5113.json | 1 - data/arc-agi/training/8eb1be9a.json | 1 - data/arc-agi/training/8efcae92.json | 1 - data/arc-agi/training/8f2ea7aa.json | 1 - data/arc-agi/training/90c28cc7.json | 1 - data/arc-agi/training/90f3ed37.json | 1 - data/arc-agi/training/913fb3ed.json | 1 - data/arc-agi/training/91413438.json | 1 - data/arc-agi/training/91714a58.json | 1 - data/arc-agi/training/9172f3a0.json | 1 - data/arc-agi/training/928ad970.json | 1 - data/arc-agi/training/93b581b8.json | 1 - data/arc-agi/training/941d9a10.json | 1 - data/arc-agi/training/94f9d214.json | 1 - data/arc-agi/training/952a094c.json | 1 - data/arc-agi/training/9565186b.json | 1 - data/arc-agi/training/95990924.json | 1 - data/arc-agi/training/963e52fc.json | 1 - data/arc-agi/training/97999447.json | 1 - data/arc-agi/training/97a05b5b.json | 1 - data/arc-agi/training/98cf29f8.json | 1 - data/arc-agi/training/995c5fa3.json | 1 - data/arc-agi/training/99b1bc43.json | 1 - data/arc-agi/training/99fa7670.json | 1 - data/arc-agi/training/9aec4887.json | 1 - data/arc-agi/training/9af7a82c.json | 1 - data/arc-agi/training/9d9215db.json | 1 - data/arc-agi/training/9dfd6313.json | 1 - data/arc-agi/training/9ecd008a.json | 1 - data/arc-agi/training/9edfc990.json | 1 - data/arc-agi/training/9f236235.json | 1 - data/arc-agi/training/a1570a43.json | 1 - data/arc-agi/training/a2fd1cf0.json | 1 - data/arc-agi/training/a3325580.json | 1 - data/arc-agi/training/a3df8b1e.json | 1 - data/arc-agi/training/a416b8f3.json | 1 - data/arc-agi/training/a48eeaf7.json | 1 - data/arc-agi/training/a5313dff.json | 1 - data/arc-agi/training/a5f85a15.json | 1 - data/arc-agi/training/a61ba2ce.json | 1 - data/arc-agi/training/a61f2674.json | 1 - data/arc-agi/training/a64e4611.json | 1 - data/arc-agi/training/a65b410d.json | 1 - data/arc-agi/training/a68b268e.json | 1 - data/arc-agi/training/a699fb00.json | 1 - data/arc-agi/training/a740d043.json | 1 - data/arc-agi/training/a78176bb.json | 1 - data/arc-agi/training/a79310a0.json | 1 - data/arc-agi/training/a85d4709.json | 1 - data/arc-agi/training/a87f7484.json | 1 - data/arc-agi/training/a8c38be5.json | 1 - data/arc-agi/training/a8d7556c.json | 1 - data/arc-agi/training/a9f96cdd.json | 1 - data/arc-agi/training/aabf363d.json | 1 - data/arc-agi/training/aba27056.json | 1 - data/arc-agi/training/ac0a08a4.json | 1 - data/arc-agi/training/ae3edfdc.json | 1 - data/arc-agi/training/ae4f1146.json | 1 - data/arc-agi/training/aedd82e4.json | 1 - data/arc-agi/training/af902bf9.json | 1 - data/arc-agi/training/b0c4d837.json | 1 - data/arc-agi/training/b190f7f5.json | 1 - data/arc-agi/training/b1948b0a.json | 1 - data/arc-agi/training/b230c067.json | 1 - data/arc-agi/training/b27ca6d3.json | 1 - data/arc-agi/training/b2862040.json | 1 - data/arc-agi/training/b527c5c6.json | 1 - data/arc-agi/training/b548a754.json | 1 - data/arc-agi/training/b60334d2.json | 1 - data/arc-agi/training/b6afb2da.json | 1 - data/arc-agi/training/b7249182.json | 1 - data/arc-agi/training/b775ac94.json | 1 - data/arc-agi/training/b782dc8a.json | 1 - data/arc-agi/training/b8825c91.json | 1 - data/arc-agi/training/b8cdaf2b.json | 1 - data/arc-agi/training/b91ae062.json | 1 - data/arc-agi/training/b94a9452.json | 1 - data/arc-agi/training/b9b7f026.json | 1 - data/arc-agi/training/ba26e723.json | 1 - data/arc-agi/training/ba97ae07.json | 1 - data/arc-agi/training/bb43febb.json | 1 - data/arc-agi/training/bbc9ae5d.json | 1 - data/arc-agi/training/bc1d5164.json | 1 - data/arc-agi/training/bd4472b8.json | 1 - data/arc-agi/training/bda2d7a6.json | 1 - data/arc-agi/training/bdad9b1f.json | 1 - data/arc-agi/training/be94b721.json | 1 - data/arc-agi/training/beb8660c.json | 1 - data/arc-agi/training/c0f76784.json | 1 - data/arc-agi/training/c1d99e64.json | 1 - data/arc-agi/training/c3e719e8.json | 1 - data/arc-agi/training/c3f564a4.json | 1 - data/arc-agi/training/c444b776.json | 1 - data/arc-agi/training/c59eb873.json | 1 - data/arc-agi/training/c8cbb738.json | 1 - data/arc-agi/training/c8f0f002.json | 1 - data/arc-agi/training/c909285e.json | 1 - data/arc-agi/training/c9e6f938.json | 1 - data/arc-agi/training/c9f8e694.json | 1 - data/arc-agi/training/caa06a1f.json | 1 - data/arc-agi/training/cbded52d.json | 1 - data/arc-agi/training/cce03e0d.json | 1 - data/arc-agi/training/cdecee7f.json | 1 - data/arc-agi/training/ce22a75a.json | 1 - data/arc-agi/training/ce4f8723.json | 1 - data/arc-agi/training/ce602527.json | 1 - data/arc-agi/training/ce9e57f2.json | 1 - data/arc-agi/training/cf98881b.json | 1 - data/arc-agi/training/d037b0a7.json | 1 - data/arc-agi/training/d06dbe63.json | 1 - data/arc-agi/training/d07ae81c.json | 1 - data/arc-agi/training/d0f5fe59.json | 1 - data/arc-agi/training/d10ecb37.json | 1 - data/arc-agi/training/d13f3404.json | 1 - data/arc-agi/training/d22278a0.json | 1 - data/arc-agi/training/d23f8c26.json | 1 - data/arc-agi/training/d2abd087.json | 1 - data/arc-agi/training/d364b489.json | 1 - data/arc-agi/training/d406998b.json | 1 - data/arc-agi/training/d43fd935.json | 1 - data/arc-agi/training/d4469b4b.json | 1 - data/arc-agi/training/d4a91cb9.json | 1 - data/arc-agi/training/d4f3cd78.json | 1 - data/arc-agi/training/d511f180.json | 1 - data/arc-agi/training/d5d6de2d.json | 1 - data/arc-agi/training/d631b094.json | 1 - data/arc-agi/training/d687bc17.json | 1 - data/arc-agi/training/d6ad076f.json | 1 - data/arc-agi/training/d89b689b.json | 1 - data/arc-agi/training/d8c310e9.json | 1 - data/arc-agi/training/d90796e8.json | 1 - data/arc-agi/training/d9f24cd1.json | 1 - data/arc-agi/training/d9fac9be.json | 1 - data/arc-agi/training/dae9d2b5.json | 1 - data/arc-agi/training/db3e9e38.json | 1 - data/arc-agi/training/db93a21d.json | 1 - data/arc-agi/training/dbc1a6ce.json | 1 - data/arc-agi/training/dc0a314f.json | 1 - data/arc-agi/training/dc1df850.json | 1 - data/arc-agi/training/dc433765.json | 1 - data/arc-agi/training/ddf7fa4f.json | 1 - data/arc-agi/training/de1cd16c.json | 1 - data/arc-agi/training/ded97339.json | 1 - data/arc-agi/training/e179c5f4.json | 1 - data/arc-agi/training/e21d9049.json | 1 - data/arc-agi/training/e26a3af2.json | 1 - data/arc-agi/training/e3497940.json | 1 - data/arc-agi/training/e40b9e2f.json | 1 - data/arc-agi/training/e48d4e1a.json | 1 - data/arc-agi/training/e5062a87.json | 1 - data/arc-agi/training/e509e548.json | 1 - data/arc-agi/training/e50d258f.json | 1 - data/arc-agi/training/e6721834.json | 1 - data/arc-agi/training/e73095fd.json | 1 - data/arc-agi/training/e76a88a6.json | 1 - data/arc-agi/training/e8593010.json | 1 - data/arc-agi/training/e8dc4411.json | 1 - data/arc-agi/training/e9614598.json | 1 - data/arc-agi/training/e98196ab.json | 1 - data/arc-agi/training/e9afcf9a.json | 1 - data/arc-agi/training/ea32f347.json | 1 - data/arc-agi/training/ea786f4a.json | 1 - data/arc-agi/training/eb281b96.json | 1 - data/arc-agi/training/eb5a1d5d.json | 1 - data/arc-agi/training/ec883f72.json | 1 - data/arc-agi/training/ecdecbb3.json | 1 - data/arc-agi/training/ed36ccf7.json | 1 - data/arc-agi/training/ef135b50.json | 1 - data/arc-agi/training/f15e1fac.json | 1 - data/arc-agi/training/f1cefba8.json | 1 - data/arc-agi/training/f25fbde4.json | 1 - data/arc-agi/training/f25ffba3.json | 1 - data/arc-agi/training/f2829549.json | 1 - data/arc-agi/training/f35d900a.json | 1 - data/arc-agi/training/f5b8619d.json | 1 - data/arc-agi/training/f76d97a5.json | 1 - data/arc-agi/training/f8a8fe49.json | 1 - data/arc-agi/training/f8b3ba0a.json | 1 - data/arc-agi/training/f8c80d96.json | 1 - data/arc-agi/training/f8ff0b80.json | 1 - data/arc-agi/training/f9012d9b.json | 1 - data/arc-agi/training/fafffa47.json | 1 - data/arc-agi/training/fcb5c309.json | 1 - data/arc-agi/training/fcc82909.json | 1 - data/arc-agi/training/feca6190.json | 1 - data/arc-agi/training/ff28f65a.json | 1 - data/arc-agi/training/ff805c23.json | 1 - deep-research-report.md | 463 - {engram-accel => dhee-accel}/Cargo.lock | 2 +- {engram-accel => dhee-accel}/Cargo.toml | 6 +- {engram-accel => dhee-accel}/pyproject.toml | 4 +- {engram-accel => dhee-accel}/src/decay.rs | 0 {engram-accel => dhee-accel}/src/lib.rs | 4 +- {engram-accel => dhee-accel}/src/scoring.rs | 0 {engram-accel => dhee-accel}/src/vector.rs | 0 {engram => dhee}/__init__.py | 31 +- dhee/api/__init__.py | 6 + {engram => dhee}/api/app.py | 8 +- {engram => dhee}/api/server.py | 0 {engram => dhee}/api/static/dashboard.html | 0 {engram => dhee}/benchmarks/__init__.py | 0 {engram => dhee}/benchmarks/arc_agi.py | 8 +- dhee/benchmarks/longmemeval.py | 2177 ++++ {engram => dhee}/cli.py | 18 +- {engram => dhee}/cli_config.py | 14 +- {engram => dhee}/cli_mcp.py | 8 +- {engram => dhee}/cli_setup.py | 16 +- {engram => dhee}/configs/__init__.py | 2 +- {engram => dhee}/configs/active.py | 2 +- {engram => dhee}/configs/base.py | 187 +- {engram => dhee}/configs/presets.py | 12 +- dhee/core/__init__.py | 22 + {engram => dhee}/core/agi_loop.py | 0 dhee/core/alaya.py | 330 + dhee/core/answer_orchestration.py | 942 ++ dhee/core/buddhi.py | 934 ++ {engram => dhee}/core/category.py | 2 +- dhee/core/code_exec_counter.py | 266 + dhee/core/cognition.py | 481 + {engram => dhee}/core/conflict.py | 2 +- {engram => dhee}/core/consolidation.py | 6 +- {engram => dhee}/core/decay.py | 6 +- {engram => dhee}/core/distillation.py | 10 +- {engram => dhee}/core/echo.py | 2 +- dhee/core/engram.py | 431 + dhee/core/engram_extractor.py | 609 ++ {engram => dhee}/core/enrichment.py | 10 +- dhee/core/episodic_index.py | 979 ++ dhee/core/evolution.py | 356 + {engram => dhee}/core/forgetting.py | 155 +- {engram => dhee}/core/fusion.py | 2 +- {engram => dhee}/core/graph.py | 0 {engram => dhee}/core/intent.py | 0 {engram => dhee}/core/kernel.py | 5 +- {engram => dhee}/core/log_parser.py | 0 dhee/core/metrics.py | 207 + {engram => dhee}/core/profile.py | 84 +- dhee/core/proposition_context.py | 144 + dhee/core/resolvers.py | 949 ++ {engram => dhee}/core/retrieval.py | 4 +- {engram => dhee}/core/salience.py | 0 dhee/core/samskara.py | 510 + {engram => dhee}/core/scene.py | 41 +- {engram => dhee}/core/traces.py | 6 +- dhee/core/viveka.py | 708 ++ .../api => dhee/db}/__init__.py | 0 {engram => dhee}/db/sqlite.py | 692 +- {engram => dhee}/db/sqlite_backup.py | 0 {engram => dhee}/decay/__init__.py | 2 +- .../embeddings}/__init__.py | 0 {engram => dhee}/embeddings/base.py | 0 {engram => dhee}/embeddings/gemini.py | 2 +- {engram => dhee}/embeddings/nvidia.py | 8 +- {engram => dhee}/embeddings/ollama.py | 2 +- {engram => dhee}/embeddings/openai.py | 2 +- dhee/embeddings/qwen.py | 139 + {engram => dhee}/embeddings/simple.py | 2 +- {engram => dhee}/exceptions.py | 0 {engram => dhee}/integrations/__init__.py | 0 {engram/db => dhee/llms}/__init__.py | 0 dhee/llms/base.py | 56 + dhee/llms/dhee.py | 295 + {engram => dhee}/llms/gemini.py | 2 +- {engram => dhee}/llms/mock.py | 2 +- dhee/llms/nvidia.py | 136 + {engram => dhee}/llms/ollama.py | 2 +- {engram => dhee}/llms/openai.py | 2 +- dhee/llms/teacher_logger.py | 243 + {engram => dhee}/mcp_server.py | 361 +- dhee/mcp_slim.py | 442 + dhee/memory/__init__.py | 14 + {engram => dhee}/memory/base.py | 0 {engram => dhee}/memory/core.py | 18 +- {engram => dhee}/memory/main.py | 2253 +++- {engram => dhee}/memory/parallel.py | 0 {engram => dhee}/memory/projects.py | 6 + {engram => dhee}/memory/smart.py | 32 +- {engram => dhee}/memory/tasks.py | 2 +- {engram => dhee}/memory/utils.py | 2 +- {engram => dhee}/observability.py | 0 {engram => dhee}/retrieval/__init__.py | 4 +- dhee/retrieval/reranker.py | 252 + {engram => dhee}/simple.py | 18 +- {engram => dhee}/skills/__init__.py | 0 {engram => dhee}/skills/discovery.py | 11 +- {engram => dhee}/skills/executor.py | 10 +- {engram => dhee}/skills/hashing.py | 0 {engram => dhee}/skills/miner.py | 12 +- {engram => dhee}/skills/outcomes.py | 6 +- {engram => dhee}/skills/schema.py | 4 +- {engram => dhee}/skills/store.py | 7 +- {engram => dhee}/skills/structure.py | 2 +- {engram => dhee}/skills/trajectory.py | 2 +- dhee/teaching/__init__.py | 17 + dhee/teaching/concepts.py | 307 + dhee/teaching/config.py | 27 + dhee/teaching/student_model.py | 372 + dhee/teaching/teaching_memory.py | 255 + {engram/embeddings => dhee/utils}/__init__.py | 0 {engram => dhee}/utils/factory.py | 81 +- {engram => dhee}/utils/math.py | 2 +- {engram => dhee}/utils/prompts.py | 0 {engram => dhee}/utils/repo_identity.py | 0 .../llms => dhee/vector_stores}/__init__.py | 0 {engram => dhee}/vector_stores/base.py | 0 {engram => dhee}/vector_stores/memory.py | 6 +- {engram => dhee}/vector_stores/sqlite_vec.py | 7 +- {engram => dhee}/vector_stores/zvec_store.py | 210 +- dhee_shared/__init__.py | 1 + dhee_shared/model_paths.py | 63 + docker-compose.yml | 22 +- docs/capture_screenshots.py | 168 - docs/dhee-logo.png | Bin 0 -> 27501 bytes docs/pdf/manifest.json | 820 -- docs/screenshots/board-kanban.png | Bin 187270 -> 0 bytes docs/screenshots/chat-view.png | Bin 81244 -> 0 bytes docs/screenshots/coordination-agents.png | Bin 393220 -> 0 bytes docs/screenshots/memory-view.png | Bin 223313 -> 0 bytes docs/screenshots/todos-view.png | Bin 78410 -> 0 bytes engram-bridge/README.md | 177 - engram-bridge/demo/demo-app/main.py | 65 - engram-bridge/demo/demo-app/test_main.py | 45 - engram-bridge/demo/run-demo.sh | 41 - engram-bridge/demo/seed.py | 221 - engram-bridge/engram_bridge/__init__.py | 4 - .../engram_bridge/agents/__init__.py | 6 - engram-bridge/engram_bridge/agents/base.py | 40 - engram-bridge/engram_bridge/agents/claude.py | 152 - engram-bridge/engram_bridge/agents/codex.py | 119 - engram-bridge/engram_bridge/agents/custom.py | 95 - engram-bridge/engram_bridge/bridge.py | 1120 -- .../engram_bridge/channels/__init__.py | 6 - engram-bridge/engram_bridge/channels/base.py | 44 - .../engram_bridge/channels/telegram.py | 131 - .../engram_bridge/channels/web-ui/.gitignore | 24 - .../engram_bridge/channels/web-ui/README.md | 73 - .../channels/web-ui/components.json | 23 - .../channels/web-ui/eslint.config.js | 23 - .../engram_bridge/channels/web-ui/index.html | 12 - .../channels/web-ui/package-lock.json | 9696 ----------------- .../channels/web-ui/package.json | 48 - .../engram_bridge/channels/web-ui/src/App.tsx | 84 - .../web-ui/src/components/chat-input.tsx | 61 - .../web-ui/src/components/chat-message.tsx | 99 - .../web-ui/src/components/command-bar.tsx | 65 - .../src/components/dashboard/agent-roster.tsx | 84 - .../dashboard/conversation-entry.tsx | 182 - .../src/components/dashboard/dashboard.tsx | 357 - .../src/components/dashboard/files-panel.tsx | 149 - .../components/dashboard/follow-up-input.tsx | 70 - .../src/components/dashboard/kanban-board.tsx | 143 - .../src/components/dashboard/live-feed.tsx | 107 - .../components/dashboard/new-task-dialog.tsx | 141 - .../components/dashboard/processes-panel.tsx | 138 - .../src/components/dashboard/task-card.tsx | 83 - .../components/dashboard/task-detail-view.tsx | 387 - .../src/components/dialogs/CommandBar.tsx | 277 - .../dialogs/CreateProjectDialog.tsx | 97 - .../src/components/dialogs/SettingsDialog.tsx | 450 - .../src/components/issue/IssuePanel.tsx | 384 - .../src/components/kanban/KanbanBoard.tsx | 196 - .../components/kanban/KanbanCardContent.tsx | 97 - .../src/components/kanban/KanbanContainer.tsx | 173 - .../src/components/kanban/KanbanFilterBar.tsx | 66 - .../web-ui/src/components/layout/AppBar.tsx | 141 - .../src/components/layout/ResizablePanel.tsx | 72 - .../web-ui/src/components/layout/Sidebar.tsx | 77 - .../web-ui/src/components/memory-sidebar.tsx | 265 - .../components/primitives/PriorityIcon.tsx | 20 - .../src/components/primitives/StatusDot.tsx | 8 - .../src/components/primitives/UserAvatar.tsx | 26 - .../web-ui/src/components/ui/avatar.tsx | 109 - .../web-ui/src/components/ui/badge.tsx | 48 - .../web-ui/src/components/ui/button.tsx | 64 - .../web-ui/src/components/ui/card.tsx | 92 - .../web-ui/src/components/ui/checkbox.tsx | 30 - .../web-ui/src/components/ui/dialog.tsx | 156 - .../web-ui/src/components/ui/input.tsx | 21 - .../web-ui/src/components/ui/scroll-area.tsx | 56 - .../web-ui/src/components/ui/separator.tsx | 26 - .../web-ui/src/components/ui/sheet.tsx | 143 - .../web-ui/src/components/ui/tabs.tsx | 89 - .../web-ui/src/components/ui/textarea.tsx | 18 - .../web-ui/src/components/ui/tooltip.tsx | 57 - .../web-ui/src/contexts/ProjectContext.tsx | 214 - .../web-ui/src/contexts/WebSocketContext.tsx | 243 - .../channels/web-ui/src/hooks/use-api.ts | 224 - .../web-ui/src/hooks/use-websocket.ts | 100 - .../channels/web-ui/src/index.css | 129 - .../channels/web-ui/src/main.tsx | 10 - .../web-ui/src/stores/useChatStore.ts | 43 - .../src/stores/useTaskConversationStore.ts | 166 - .../web-ui/src/stores/useTodoStore.ts | 94 - .../src/stores/useUiPreferencesStore.ts | 31 - .../web-ui/src/stores/useWarRoomStore.ts | 58 - .../channels/web-ui/src/types/dashboard.ts | 40 - .../channels/web-ui/src/types/index.ts | 253 - .../channels/web-ui/src/views/BoardView.tsx | 26 - .../channels/web-ui/src/views/ChatView.tsx | 95 - .../web-ui/src/views/CoordinationView.tsx | 768 -- .../channels/web-ui/src/views/MemoryView.tsx | 617 -- .../web-ui/src/views/TaskChatView.tsx | 553 - .../channels/web-ui/src/views/TodoView.tsx | 306 - .../channels/web-ui/src/views/WarRoomView.tsx | 934 -- .../channels/web-ui/tsconfig.app.json | 32 - .../channels/web-ui/tsconfig.json | 13 - .../channels/web-ui/tsconfig.node.json | 26 - .../channels/web-ui/vite.config.ts | 19 - engram-bridge/engram_bridge/channels/web.py | 1546 --- engram-bridge/engram_bridge/config.py | 143 - .../engram_bridge/coordination/__init__.py | 137 - engram-bridge/engram_bridge/utils.py | 43 - engram-bridge/pyproject.toml | 31 - engram-bridge/start.sh | 176 - engram-bus/README.md | 76 - engram-bus/engram_bus/__init__.py | 7 - engram-bus/engram_bus/bus.py | 378 - engram-bus/engram_bus/pubsub.py | 55 - engram-bus/engram_bus/server.py | 514 - engram-bus/engram_bus/store.py | 299 - engram-bus/engram_bus/workspace.py | 42 - engram-bus/pyproject.toml | 31 - engram-bus/tests/test_bus.py | 768 -- engram-enterprise/README.md | 97 - .../engram_enterprise/__init__.py | 20 - .../engram_enterprise/acceptance.py | 142 - .../engram_enterprise/active_memory.py | 406 - .../engram_enterprise/api/app.py | 1026 -- .../engram_enterprise/api/auth.py | 76 - .../engram_enterprise/api/schemas.py | 170 - .../engram_enterprise/api/server.py | 34 - .../engram_enterprise/async_embedder.py | 125 - .../engram_enterprise/async_llm.py | 127 - .../engram_enterprise/async_memory.py | 481 - .../engram_enterprise/async_sqlite.py | 448 - engram-enterprise/engram_enterprise/cli.py | 547 - engram-enterprise/engram_enterprise/client.py | 418 - .../engram_enterprise/context_packer.py | 62 - .../engram_enterprise/dual_search.py | 168 - .../engram_enterprise/episodic_store.py | 290 - .../integrations/claude_code.py | 532 - .../integrations/openclaw.py | 177 - .../engram_enterprise/invariants.py | 110 - engram-enterprise/engram_enterprise/kernel.py | 1792 --- .../engram_enterprise/main_cli.py | 455 - engram-enterprise/engram_enterprise/policy.py | 149 - .../engram_enterprise/provenance.py | 40 - .../engram_enterprise/refcounts.py | 45 - .../engram_enterprise/reranker.py | 76 - engram-enterprise/engram_enterprise/schema.py | 230 - .../engram_enterprise/staging_store.py | 97 - engram-enterprise/pyproject.toml | 50 - engram-enterprise/tests/test_enterprise.py | 117 - engram-failure/README.md | 51 - engram-failure/engram_failure/__init__.py | 20 - engram-failure/engram_failure/config.py | 35 - engram-failure/engram_failure/failure.py | 258 - engram-failure/engram_failure/mcp_tools.py | 118 - engram-failure/engram_failure/patterns.py | 101 - engram-failure/pyproject.toml | 29 - engram-heartbeat/engram_heartbeat/__init__.py | 20 - .../engram_heartbeat/behaviors.py | 171 - engram-heartbeat/engram_heartbeat/config.py | 12 - .../engram_heartbeat/heartbeat.py | 184 - .../engram_heartbeat/mcp_tools.py | 114 - engram-heartbeat/engram_heartbeat/runner.py | 58 - engram-heartbeat/pyproject.toml | 30 - engram-identity/engram_identity/__init__.py | 19 - engram-identity/engram_identity/config.py | 11 - engram-identity/engram_identity/identity.py | 189 - engram-identity/engram_identity/mcp_tools.py | 103 - engram-identity/pyproject.toml | 29 - engram-metamemory/README.md | 61 - .../engram_metamemory/__init__.py | 19 - .../engram_metamemory/confidence.py | 162 - engram-metamemory/engram_metamemory/config.py | 51 - .../engram_metamemory/mcp_tools.py | 118 - .../engram_metamemory/metamemory.py | 346 - engram-metamemory/pyproject.toml | 29 - engram-policy/engram_policy/__init__.py | 19 - engram-policy/engram_policy/config.py | 12 - engram-policy/engram_policy/engine.py | 196 - engram-policy/engram_policy/masking.py | 38 - engram-policy/engram_policy/mcp_tools.py | 112 - engram-policy/engram_policy/scopes.py | 36 - engram-policy/engram_policy/tokens.py | 132 - engram-policy/pyproject.toml | 29 - engram-procedural/README.md | 51 - .../engram_procedural/__init__.py | 20 - engram-procedural/engram_procedural/config.py | 46 - .../engram_procedural/extraction.py | 116 - .../engram_procedural/mcp_tools.py | 141 - .../engram_procedural/procedural.py | 302 - engram-procedural/pyproject.toml | 29 - engram-prospective/README.md | 69 - .../engram_prospective/__init__.py | 24 - .../engram_prospective/config.py | 41 - .../engram_prospective/mcp_tools.py | 126 - .../engram_prospective/prospective.py | 242 - .../engram_prospective/triggers.py | 118 - engram-prospective/pyproject.toml | 29 - engram-reconsolidation/README.md | 51 - .../engram_reconsolidation/__init__.py | 20 - .../engram_reconsolidation/config.py | 38 - .../engram_reconsolidation/mcp_tools.py | 112 - .../engram_reconsolidation/reconsolidation.py | 268 - .../engram_reconsolidation/window.py | 107 - engram-reconsolidation/pyproject.toml | 29 - .../engram_resilience/__init__.py | 22 - .../engram_resilience/compaction.py | 71 - engram-resilience/engram_resilience/config.py | 14 - .../engram_resilience/fallback.py | 139 - .../engram_resilience/mcp_tools.py | 120 - engram-resilience/engram_resilience/retry.py | 60 - engram-resilience/pyproject.toml | 29 - engram-router/engram_router/__init__.py | 22 - engram-router/engram_router/config.py | 15 - engram-router/engram_router/mcp_tools.py | 135 - engram-router/engram_router/registry.py | 196 - engram-router/engram_router/router.py | 281 - engram-router/pyproject.toml | 30 - engram-spawn/engram_spawn/__init__.py | 19 - engram-spawn/engram_spawn/config.py | 12 - engram-spawn/engram_spawn/decomposer.py | 105 - engram-spawn/engram_spawn/mcp_tools.py | 96 - engram-spawn/engram_spawn/spawner.py | 116 - engram-spawn/engram_spawn/tracker.py | 81 - engram-spawn/pyproject.toml | 30 - engram-warroom/engram_warroom/__init__.py | 18 - engram-warroom/engram_warroom/autopick.py | 99 - engram-warroom/engram_warroom/config.py | 17 - engram-warroom/engram_warroom/decision.py | 46 - engram-warroom/engram_warroom/failover.py | 120 - engram-warroom/engram_warroom/mcp_tools.py | 200 - engram-warroom/engram_warroom/monitor.py | 151 - engram-warroom/engram_warroom/warroom.py | 333 - engram-warroom/pyproject.toml | 31 - engram-working/README.md | 47 - engram-working/engram_working/__init__.py | 20 - engram-working/engram_working/buffer.py | 67 - engram-working/engram_working/config.py | 38 - engram-working/engram_working/mcp_tools.py | 106 - engram-working/engram_working/working.py | 193 - engram-working/pyproject.toml | 29 - engram/api/__init__.py | 6 - engram/benchmarks/longmemeval.py | 521 - engram/core/__init__.py | 22 - engram/llms/base.py | 11 - engram/llms/nvidia.py | 63 - engram/memory/__init__.py | 14 - engram/retrieval/reranker.py | 135 - engram/utils/__init__.py | 0 engram/vector_stores/__init__.py | 0 install.sh | 12 +- landing/icons.js | 256 - landing/index.html | 196 - landing/reference_images/screenshot_1.png | Bin 1571236 -> 0 bytes landing/reference_images/screenshot_10.png | Bin 1582389 -> 0 bytes landing/reference_images/screenshot_11.png | Bin 1586210 -> 0 bytes landing/reference_images/screenshot_12.png | Bin 1662059 -> 0 bytes landing/reference_images/screenshot_13.png | Bin 1641607 -> 0 bytes landing/reference_images/screenshot_14.png | Bin 1855015 -> 0 bytes landing/reference_images/screenshot_15.png | Bin 1579727 -> 0 bytes landing/reference_images/screenshot_16.png | Bin 1594579 -> 0 bytes landing/reference_images/screenshot_17.png | Bin 1704243 -> 0 bytes landing/reference_images/screenshot_18.png | Bin 1666127 -> 0 bytes landing/reference_images/screenshot_19.png | Bin 1707743 -> 0 bytes landing/reference_images/screenshot_2.png | Bin 1434664 -> 0 bytes landing/reference_images/screenshot_20.png | Bin 1861334 -> 0 bytes landing/reference_images/screenshot_3.png | Bin 1733547 -> 0 bytes landing/reference_images/screenshot_4.png | Bin 1572617 -> 0 bytes landing/reference_images/screenshot_5.png | Bin 1696055 -> 0 bytes landing/reference_images/screenshot_6.png | Bin 1400390 -> 0 bytes landing/reference_images/screenshot_7.png | Bin 1413185 -> 0 bytes landing/reference_images/screenshot_8.png | Bin 1384505 -> 0 bytes landing/reference_images/screenshot_9.png | Bin 1519418 -> 0 bytes landing/ribbon.js | 310 - landing/styles.css | 465 - launch-article.md | 222 - package-lock.json | 622 -- package.json | 29 - pitch-deck.md | 427 - pyproject.toml | 46 +- pytest.ini | 8 +- scripts/__init__.py | 1 - scripts/build_doc_book.py | 180 - scripts/docgen/__init__.py | 18 - scripts/docgen/analyze.py | 1094 -- scripts/docgen/render_pdf.py | 230 - scripts/generate_deep_docs.py | 330 - scripts/record_demo.sh | 147 - scripts/record_demo.ts | 309 - scripts/seed_demo.py | 263 - scripts/seed_warroom_demo.py | 159 - sdks/js/index.js | 92 + start-bridge.sh | 278 - test_real_user.py | 157 - tests/test_accel.py | 8 +- tests/test_accel_benchmark.py | 4 +- tests/test_backward_compat.py | 2 +- tests/test_batch.py | 18 +- tests/test_core_memory.py | 2 +- tests/test_cosine_similarity.py | 2 +- tests/test_dedup.py | 2 +- tests/test_deferred_enrichment.py | 10 +- tests/test_dhee_model_paths.py | 43 + tests/test_distillation.py | 6 +- tests/test_e2e_all_features.py | 18 +- tests/test_forgetting.py | 6 +- tests/test_hashing.py | 2 +- tests/test_intent.py | 2 +- tests/test_locomo_plus_runner.py | 119 + tests/test_log_parser.py | 2 +- tests/test_mcp_tools_slim.py | 2 +- tests/test_memory_types.py | 10 +- tests/test_migration.py | 2 +- tests/test_miner.py | 8 +- tests/test_openclaw.py | 235 + tests/test_orchestration_core.py | 279 + tests/test_parallel.py | 22 +- tests/test_power_packages.py | 40 +- tests/test_presets.py | 2 +- tests/test_profile.py | 4 +- tests/test_projects.py | 6 +- tests/test_query_cache.py | 2 +- tests/test_scene.py | 4 +- tests/test_skills.py | 10 +- tests/test_smart_memory.py | 4 +- tests/test_sqlite_connection_pool.py | 2 +- tests/test_sqlite_vec.py | 4 +- tests/test_structural.py | 6 +- tests/test_structured_resolution.py | 574 + tests/test_tasks.py | 6 +- tests/test_traces.py | 4 +- tests/test_trajectory.py | 4 +- tests/test_unified_enrichment.py | 18 +- tests/test_zvec_store.py | 4 +- 1371 files changed, 18441 insertions(+), 74734 deletions(-) delete mode 100644 .claude-plugin/marketplace.json delete mode 100644 .cursor/rules/engram-continuity.mdc delete mode 100644 CLAUDE.md delete mode 100644 CURSOR.md delete mode 100644 dashboard/.gitignore delete mode 100644 dashboard/README.md delete mode 100644 dashboard/eslint.config.mjs delete mode 100644 dashboard/next.config.ts delete mode 100644 dashboard/package-lock.json delete mode 100644 dashboard/package.json delete mode 100644 dashboard/postcss.config.mjs delete mode 100644 dashboard/public/file.svg delete mode 100644 dashboard/public/globe.svg delete mode 100644 dashboard/public/next.svg delete mode 100644 dashboard/public/vercel.svg delete mode 100644 dashboard/public/window.svg delete mode 100644 dashboard/src/app/categories/page.tsx delete mode 100644 dashboard/src/app/conflicts/page.tsx delete mode 100644 dashboard/src/app/constellation/page.tsx delete mode 100644 dashboard/src/app/cortex/page.tsx delete mode 100644 dashboard/src/app/dashboard/page.tsx delete mode 100644 dashboard/src/app/favicon.ico delete mode 100644 dashboard/src/app/globals.css delete mode 100644 dashboard/src/app/hippocampus/page.tsx delete mode 100644 dashboard/src/app/layout.tsx delete mode 100644 dashboard/src/app/memories/page.tsx delete mode 100644 dashboard/src/app/page.tsx delete mode 100644 dashboard/src/app/profiles/page.tsx delete mode 100644 dashboard/src/app/scenes/page.tsx delete mode 100644 dashboard/src/app/staging/page.tsx delete mode 100644 dashboard/src/app/synapses/page.tsx delete mode 100644 dashboard/src/components/brain/brain-canvas.tsx delete mode 100644 dashboard/src/components/categories/category-tree.tsx delete mode 100644 dashboard/src/components/clusters/cluster-canvas.tsx delete mode 100644 dashboard/src/components/clusters/cluster-toolbar.tsx delete mode 100644 dashboard/src/components/conflicts/conflict-card.tsx delete mode 100644 dashboard/src/components/constellation/graph-controls.tsx delete mode 100644 dashboard/src/components/constellation/graph-legend.tsx delete mode 100644 dashboard/src/components/constellation/graph-renderer.ts delete mode 100644 dashboard/src/components/constellation/memory-graph.tsx delete mode 100644 dashboard/src/components/dashboard/categories-bar.tsx delete mode 100644 dashboard/src/components/dashboard/decay-sparkline.tsx delete mode 100644 dashboard/src/components/dashboard/layer-donut.tsx delete mode 100644 dashboard/src/components/dashboard/stat-card.tsx delete mode 100644 dashboard/src/components/dashboard/stat-cards-row.tsx delete mode 100644 dashboard/src/components/hippocampus/forgetting-dashboard.tsx delete mode 100644 dashboard/src/components/hippocampus/scene-corridor.tsx delete mode 100644 dashboard/src/components/hippocampus/sleep-visualizer.tsx delete mode 100644 dashboard/src/components/hippocampus/trace-cascade-viz.tsx delete mode 100644 dashboard/src/components/layout/neural-sidebar.tsx delete mode 100644 dashboard/src/components/layout/sidebar.tsx delete mode 100644 dashboard/src/components/layout/top-bar.tsx delete mode 100644 dashboard/src/components/memories/memory-filters.tsx delete mode 100644 dashboard/src/components/memories/memory-table.tsx delete mode 100644 dashboard/src/components/memory-inspector/category-tab.tsx delete mode 100644 dashboard/src/components/memory-inspector/echo-tab.tsx delete mode 100644 dashboard/src/components/memory-inspector/fadem-tab.tsx delete mode 100644 dashboard/src/components/memory-inspector/history-timeline.tsx delete mode 100644 dashboard/src/components/memory-inspector/inspector-actions.tsx delete mode 100644 dashboard/src/components/memory-inspector/inspector-panel.tsx delete mode 100644 dashboard/src/components/memory-inspector/trace-tab.tsx delete mode 100644 dashboard/src/components/profiles/identity-rings.tsx delete mode 100644 dashboard/src/components/profiles/profile-card.tsx delete mode 100644 dashboard/src/components/scenes/scene-card.tsx delete mode 100644 dashboard/src/components/shared/category-pill.tsx delete mode 100644 dashboard/src/components/shared/empty-state.tsx delete mode 100644 dashboard/src/components/shared/glass-card.tsx delete mode 100644 dashboard/src/components/shared/layer-badge.tsx delete mode 100644 dashboard/src/components/shared/pulse-dot.tsx delete mode 100644 dashboard/src/components/shared/strength-indicator.tsx delete mode 100644 dashboard/src/components/staging/commit-card.tsx delete mode 100644 dashboard/src/components/synapses/conflict-synapse.tsx delete mode 100644 dashboard/src/components/synapses/staging-synapse.tsx delete mode 100644 dashboard/src/components/synapses/synapse-graph.tsx delete mode 100644 dashboard/src/lib/api/categories.ts delete mode 100644 dashboard/src/lib/api/client.ts delete mode 100644 dashboard/src/lib/api/conflicts.ts delete mode 100644 dashboard/src/lib/api/constellation.ts delete mode 100644 dashboard/src/lib/api/decay.ts delete mode 100644 dashboard/src/lib/api/memories.ts delete mode 100644 dashboard/src/lib/api/profiles.ts delete mode 100644 dashboard/src/lib/api/scenes.ts delete mode 100644 dashboard/src/lib/api/staging.ts delete mode 100644 dashboard/src/lib/api/stats.ts delete mode 100644 dashboard/src/lib/hooks/use-categories.ts delete mode 100644 dashboard/src/lib/hooks/use-conflicts.ts delete mode 100644 dashboard/src/lib/hooks/use-constellation.ts delete mode 100644 dashboard/src/lib/hooks/use-decay-log.ts delete mode 100644 dashboard/src/lib/hooks/use-memories.ts delete mode 100644 dashboard/src/lib/hooks/use-memory.ts delete mode 100644 dashboard/src/lib/hooks/use-profiles.ts delete mode 100644 dashboard/src/lib/hooks/use-scenes.ts delete mode 100644 dashboard/src/lib/hooks/use-scroll-progress.ts delete mode 100644 dashboard/src/lib/hooks/use-staging.ts delete mode 100644 dashboard/src/lib/hooks/use-stats.ts delete mode 100644 dashboard/src/lib/stores/cluster-store.ts delete mode 100644 dashboard/src/lib/stores/filter-store.ts delete mode 100644 dashboard/src/lib/stores/graph-store.ts delete mode 100644 dashboard/src/lib/stores/inspector-store.ts delete mode 100644 dashboard/src/lib/types/category.ts delete mode 100644 dashboard/src/lib/types/conflict.ts delete mode 100644 dashboard/src/lib/types/constellation.ts delete mode 100644 dashboard/src/lib/types/memory.ts delete mode 100644 dashboard/src/lib/types/profile.ts delete mode 100644 dashboard/src/lib/types/scene.ts delete mode 100644 dashboard/src/lib/types/staging.ts delete mode 100644 dashboard/src/lib/types/stats.ts delete mode 100644 dashboard/src/lib/utils/cluster-layout.ts delete mode 100644 dashboard/src/lib/utils/colors.ts delete mode 100644 dashboard/src/lib/utils/decay-math.ts delete mode 100644 dashboard/src/lib/utils/format.ts delete mode 100644 dashboard/src/lib/utils/neural-palette.ts delete mode 100644 dashboard/src/workers/force-layout.worker.ts delete mode 100644 dashboard/tsconfig.json delete mode 160000 data/arc-agi-3-agents delete mode 100644 data/arc-agi/evaluation/00576224.json delete mode 100644 data/arc-agi/evaluation/009d5c81.json delete mode 100644 data/arc-agi/evaluation/00dbd492.json delete mode 100644 data/arc-agi/evaluation/03560426.json delete mode 100644 data/arc-agi/evaluation/05a7bcf2.json delete mode 100644 data/arc-agi/evaluation/0607ce86.json delete mode 100644 data/arc-agi/evaluation/0692e18c.json delete mode 100644 data/arc-agi/evaluation/070dd51e.json delete mode 100644 data/arc-agi/evaluation/08573cc6.json delete mode 100644 data/arc-agi/evaluation/0934a4d8.json delete mode 100644 data/arc-agi/evaluation/09c534e7.json delete mode 100644 data/arc-agi/evaluation/0a1d4ef5.json delete mode 100644 data/arc-agi/evaluation/0a2355a6.json delete mode 100644 data/arc-agi/evaluation/0b17323b.json delete mode 100644 data/arc-agi/evaluation/0bb8deee.json delete mode 100644 data/arc-agi/evaluation/0becf7df.json delete mode 100644 data/arc-agi/evaluation/0c786b71.json delete mode 100644 data/arc-agi/evaluation/0c9aba6e.json delete mode 100644 data/arc-agi/evaluation/0d87d2a6.json delete mode 100644 data/arc-agi/evaluation/0e671a1a.json delete mode 100644 data/arc-agi/evaluation/0f63c0b9.json delete mode 100644 data/arc-agi/evaluation/103eff5b.json delete mode 100644 data/arc-agi/evaluation/11e1fe23.json delete mode 100644 data/arc-agi/evaluation/12422b43.json delete mode 100644 data/arc-agi/evaluation/12997ef3.json delete mode 100644 data/arc-agi/evaluation/12eac192.json delete mode 100644 data/arc-agi/evaluation/136b0064.json delete mode 100644 data/arc-agi/evaluation/13713586.json delete mode 100644 data/arc-agi/evaluation/137f0df0.json delete mode 100644 data/arc-agi/evaluation/140c817e.json delete mode 100644 data/arc-agi/evaluation/14754a24.json delete mode 100644 data/arc-agi/evaluation/15113be4.json delete mode 100644 data/arc-agi/evaluation/15663ba9.json delete mode 100644 data/arc-agi/evaluation/15696249.json delete mode 100644 data/arc-agi/evaluation/16b78196.json delete mode 100644 data/arc-agi/evaluation/17b80ad2.json delete mode 100644 data/arc-agi/evaluation/17cae0c1.json delete mode 100644 data/arc-agi/evaluation/18419cfa.json delete mode 100644 data/arc-agi/evaluation/184a9768.json delete mode 100644 data/arc-agi/evaluation/195ba7dc.json delete mode 100644 data/arc-agi/evaluation/1990f7a8.json delete mode 100644 data/arc-agi/evaluation/19bb5feb.json delete mode 100644 data/arc-agi/evaluation/1a2e2828.json delete mode 100644 data/arc-agi/evaluation/1a6449f1.json delete mode 100644 data/arc-agi/evaluation/1acc24af.json delete mode 100644 data/arc-agi/evaluation/1c02dbbe.json delete mode 100644 data/arc-agi/evaluation/1c0d0a4b.json delete mode 100644 data/arc-agi/evaluation/1c56ad9f.json delete mode 100644 data/arc-agi/evaluation/1d0a4b61.json delete mode 100644 data/arc-agi/evaluation/1d398264.json delete mode 100644 data/arc-agi/evaluation/1da012fc.json delete mode 100644 data/arc-agi/evaluation/1e81d6f9.json delete mode 100644 data/arc-agi/evaluation/1e97544e.json delete mode 100644 data/arc-agi/evaluation/2037f2c7.json delete mode 100644 data/arc-agi/evaluation/2072aba6.json delete mode 100644 data/arc-agi/evaluation/20818e16.json delete mode 100644 data/arc-agi/evaluation/20981f0e.json delete mode 100644 data/arc-agi/evaluation/212895b5.json delete mode 100644 data/arc-agi/evaluation/21f83797.json delete mode 100644 data/arc-agi/evaluation/22a4bbc2.json delete mode 100644 data/arc-agi/evaluation/25094a63.json delete mode 100644 data/arc-agi/evaluation/2546ccf6.json delete mode 100644 data/arc-agi/evaluation/256b0a75.json delete mode 100644 data/arc-agi/evaluation/2685904e.json delete mode 100644 data/arc-agi/evaluation/2697da3f.json delete mode 100644 data/arc-agi/evaluation/2753e76c.json delete mode 100644 data/arc-agi/evaluation/27a77e38.json delete mode 100644 data/arc-agi/evaluation/27f8ce4f.json delete mode 100644 data/arc-agi/evaluation/281123b4.json delete mode 100644 data/arc-agi/evaluation/292dd178.json delete mode 100644 data/arc-agi/evaluation/29700607.json delete mode 100644 data/arc-agi/evaluation/2a5f8217.json delete mode 100644 data/arc-agi/evaluation/2b01abd0.json delete mode 100644 data/arc-agi/evaluation/2c0b0aff.json delete mode 100644 data/arc-agi/evaluation/2c737e39.json delete mode 100644 data/arc-agi/evaluation/2f0c5170.json delete mode 100644 data/arc-agi/evaluation/310f3251.json delete mode 100644 data/arc-agi/evaluation/3194b014.json delete mode 100644 data/arc-agi/evaluation/319f2597.json delete mode 100644 data/arc-agi/evaluation/31adaf00.json delete mode 100644 data/arc-agi/evaluation/31d5ba1a.json delete mode 100644 data/arc-agi/evaluation/32e9702f.json delete mode 100644 data/arc-agi/evaluation/332efdb3.json delete mode 100644 data/arc-agi/evaluation/3391f8c0.json delete mode 100644 data/arc-agi/evaluation/33b52de3.json delete mode 100644 data/arc-agi/evaluation/3490cc26.json delete mode 100644 data/arc-agi/evaluation/34b99a2b.json delete mode 100644 data/arc-agi/evaluation/351d6448.json delete mode 100644 data/arc-agi/evaluation/358ba94e.json delete mode 100644 data/arc-agi/evaluation/37d3e8b2.json delete mode 100644 data/arc-agi/evaluation/3979b1a8.json delete mode 100644 data/arc-agi/evaluation/3a301edc.json delete mode 100644 data/arc-agi/evaluation/3b4c2228.json delete mode 100644 data/arc-agi/evaluation/3d31c5b3.json delete mode 100644 data/arc-agi/evaluation/3ed85e70.json delete mode 100644 data/arc-agi/evaluation/3ee1011a.json delete mode 100644 data/arc-agi/evaluation/3f23242b.json delete mode 100644 data/arc-agi/evaluation/40f6cd08.json delete mode 100644 data/arc-agi/evaluation/414297c0.json delete mode 100644 data/arc-agi/evaluation/423a55dc.json delete mode 100644 data/arc-agi/evaluation/42918530.json delete mode 100644 data/arc-agi/evaluation/42a15761.json delete mode 100644 data/arc-agi/evaluation/4364c1c4.json delete mode 100644 data/arc-agi/evaluation/456873bc.json delete mode 100644 data/arc-agi/evaluation/45737921.json delete mode 100644 data/arc-agi/evaluation/45bbe264.json delete mode 100644 data/arc-agi/evaluation/477d2879.json delete mode 100644 data/arc-agi/evaluation/47996f11.json delete mode 100644 data/arc-agi/evaluation/48131b3c.json delete mode 100644 data/arc-agi/evaluation/4852f2fa.json delete mode 100644 data/arc-agi/evaluation/48f8583b.json delete mode 100644 data/arc-agi/evaluation/4aab4007.json delete mode 100644 data/arc-agi/evaluation/4acc7107.json delete mode 100644 data/arc-agi/evaluation/4b6b68e5.json delete mode 100644 data/arc-agi/evaluation/4c177718.json delete mode 100644 data/arc-agi/evaluation/4cd1b7b2.json delete mode 100644 data/arc-agi/evaluation/4e45f183.json delete mode 100644 data/arc-agi/evaluation/4e469f39.json delete mode 100644 data/arc-agi/evaluation/4f537728.json delete mode 100644 data/arc-agi/evaluation/4ff4c9da.json delete mode 100644 data/arc-agi/evaluation/505fff84.json delete mode 100644 data/arc-agi/evaluation/506d28a5.json delete mode 100644 data/arc-agi/evaluation/50a16a69.json delete mode 100644 data/arc-agi/evaluation/50aad11f.json delete mode 100644 data/arc-agi/evaluation/50f325b5.json delete mode 100644 data/arc-agi/evaluation/516b51b7.json delete mode 100644 data/arc-agi/evaluation/5207a7b5.json delete mode 100644 data/arc-agi/evaluation/5289ad53.json delete mode 100644 data/arc-agi/evaluation/52fd389e.json delete mode 100644 data/arc-agi/evaluation/54db823b.json delete mode 100644 data/arc-agi/evaluation/55059096.json delete mode 100644 data/arc-agi/evaluation/551d5bf1.json delete mode 100644 data/arc-agi/evaluation/55783887.json delete mode 100644 data/arc-agi/evaluation/575b1a71.json delete mode 100644 data/arc-agi/evaluation/5783df64.json delete mode 100644 data/arc-agi/evaluation/5833af48.json delete mode 100644 data/arc-agi/evaluation/58743b76.json delete mode 100644 data/arc-agi/evaluation/58e15b12.json delete mode 100644 data/arc-agi/evaluation/59341089.json delete mode 100644 data/arc-agi/evaluation/5a5a2103.json delete mode 100644 data/arc-agi/evaluation/5af49b42.json delete mode 100644 data/arc-agi/evaluation/5b526a93.json delete mode 100644 data/arc-agi/evaluation/5b692c0f.json delete mode 100644 data/arc-agi/evaluation/5b6cbef5.json delete mode 100644 data/arc-agi/evaluation/5d2a5c43.json delete mode 100644 data/arc-agi/evaluation/5ffb2104.json delete mode 100644 data/arc-agi/evaluation/604001fa.json delete mode 100644 data/arc-agi/evaluation/60a26a3e.json delete mode 100644 data/arc-agi/evaluation/60c09cac.json delete mode 100644 data/arc-agi/evaluation/626c0bcc.json delete mode 100644 data/arc-agi/evaluation/62ab2642.json delete mode 100644 data/arc-agi/evaluation/62b74c02.json delete mode 100644 data/arc-agi/evaluation/639f5a19.json delete mode 100644 data/arc-agi/evaluation/642248e4.json delete mode 100644 data/arc-agi/evaluation/642d658d.json delete mode 100644 data/arc-agi/evaluation/64a7c07e.json delete mode 100644 data/arc-agi/evaluation/66e6c45b.json delete mode 100644 data/arc-agi/evaluation/66f2d22f.json delete mode 100644 data/arc-agi/evaluation/67636eac.json delete mode 100644 data/arc-agi/evaluation/67b4a34d.json delete mode 100644 data/arc-agi/evaluation/67c52801.json delete mode 100644 data/arc-agi/evaluation/68b67ca3.json delete mode 100644 data/arc-agi/evaluation/692cd3b6.json delete mode 100644 data/arc-agi/evaluation/695367ec.json delete mode 100644 data/arc-agi/evaluation/696d4842.json delete mode 100644 data/arc-agi/evaluation/69889d6e.json delete mode 100644 data/arc-agi/evaluation/6a11f6da.json delete mode 100644 data/arc-agi/evaluation/6ad5bdfd.json delete mode 100644 data/arc-agi/evaluation/6df30ad6.json delete mode 100644 data/arc-agi/evaluation/6ea4a07e.json delete mode 100644 data/arc-agi/evaluation/6f473927.json delete mode 100644 data/arc-agi/evaluation/7039b2d7.json delete mode 100644 data/arc-agi/evaluation/705a3229.json delete mode 100644 data/arc-agi/evaluation/712bf12e.json delete mode 100644 data/arc-agi/evaluation/72207abc.json delete mode 100644 data/arc-agi/evaluation/72a961c9.json delete mode 100644 data/arc-agi/evaluation/73182012.json delete mode 100644 data/arc-agi/evaluation/73c3b0d8.json delete mode 100644 data/arc-agi/evaluation/73ccf9c2.json delete mode 100644 data/arc-agi/evaluation/759f3fd3.json delete mode 100644 data/arc-agi/evaluation/762cd429.json delete mode 100644 data/arc-agi/evaluation/770cc55f.json delete mode 100644 data/arc-agi/evaluation/782b5218.json delete mode 100644 data/arc-agi/evaluation/79369cc6.json delete mode 100644 data/arc-agi/evaluation/7953d61e.json delete mode 100644 data/arc-agi/evaluation/79fb03f4.json delete mode 100644 data/arc-agi/evaluation/7bb29440.json delete mode 100644 data/arc-agi/evaluation/7c8af763.json delete mode 100644 data/arc-agi/evaluation/7c9b52a0.json delete mode 100644 data/arc-agi/evaluation/7d18a6fb.json delete mode 100644 data/arc-agi/evaluation/7d1f7ee8.json delete mode 100644 data/arc-agi/evaluation/7d419a02.json delete mode 100644 data/arc-agi/evaluation/7e02026e.json delete mode 100644 data/arc-agi/evaluation/7ee1c6ea.json delete mode 100644 data/arc-agi/evaluation/817e6c09.json delete mode 100644 data/arc-agi/evaluation/81c0276b.json delete mode 100644 data/arc-agi/evaluation/833dafe3.json delete mode 100644 data/arc-agi/evaluation/845d6e51.json delete mode 100644 data/arc-agi/evaluation/84db8fc4.json delete mode 100644 data/arc-agi/evaluation/84f2aca1.json delete mode 100644 data/arc-agi/evaluation/8597cfd7.json delete mode 100644 data/arc-agi/evaluation/85b81ff1.json delete mode 100644 data/arc-agi/evaluation/85fa5666.json delete mode 100644 data/arc-agi/evaluation/8719f442.json delete mode 100644 data/arc-agi/evaluation/88207623.json delete mode 100644 data/arc-agi/evaluation/891232d6.json delete mode 100644 data/arc-agi/evaluation/896d5239.json delete mode 100644 data/arc-agi/evaluation/8a371977.json delete mode 100644 data/arc-agi/evaluation/8b28cd80.json delete mode 100644 data/arc-agi/evaluation/8ba14f53.json delete mode 100644 data/arc-agi/evaluation/8cb8642d.json delete mode 100644 data/arc-agi/evaluation/8dae5dfc.json delete mode 100644 data/arc-agi/evaluation/8e2edd66.json delete mode 100644 data/arc-agi/evaluation/8ee62060.json delete mode 100644 data/arc-agi/evaluation/8fbca751.json delete mode 100644 data/arc-agi/evaluation/90347967.json delete mode 100644 data/arc-agi/evaluation/903d1b4a.json delete mode 100644 data/arc-agi/evaluation/9110e3c5.json delete mode 100644 data/arc-agi/evaluation/917bccba.json delete mode 100644 data/arc-agi/evaluation/929ab4e9.json delete mode 100644 data/arc-agi/evaluation/92e50de0.json delete mode 100644 data/arc-agi/evaluation/9356391f.json delete mode 100644 data/arc-agi/evaluation/93b4f4b3.json delete mode 100644 data/arc-agi/evaluation/93c31fbe.json delete mode 100644 data/arc-agi/evaluation/94133066.json delete mode 100644 data/arc-agi/evaluation/94414823.json delete mode 100644 data/arc-agi/evaluation/94be5b80.json delete mode 100644 data/arc-agi/evaluation/95a58926.json delete mode 100644 data/arc-agi/evaluation/963f59bc.json delete mode 100644 data/arc-agi/evaluation/96a8c0cd.json delete mode 100644 data/arc-agi/evaluation/97239e3d.json delete mode 100644 data/arc-agi/evaluation/9772c176.json delete mode 100644 data/arc-agi/evaluation/981571dc.json delete mode 100644 data/arc-agi/evaluation/992798f6.json delete mode 100644 data/arc-agi/evaluation/99306f82.json delete mode 100644 data/arc-agi/evaluation/9a4bb226.json delete mode 100644 data/arc-agi/evaluation/9b2a60aa.json delete mode 100644 data/arc-agi/evaluation/9b365c51.json delete mode 100644 data/arc-agi/evaluation/9b4c17c4.json delete mode 100644 data/arc-agi/evaluation/9bebae7a.json delete mode 100644 data/arc-agi/evaluation/9c1e755f.json delete mode 100644 data/arc-agi/evaluation/9c56f360.json delete mode 100644 data/arc-agi/evaluation/9caba7c3.json delete mode 100644 data/arc-agi/evaluation/9ddd00f0.json delete mode 100644 data/arc-agi/evaluation/9def23fe.json delete mode 100644 data/arc-agi/evaluation/9f27f097.json delete mode 100644 data/arc-agi/evaluation/a04b2602.json delete mode 100644 data/arc-agi/evaluation/a096bf4d.json delete mode 100644 data/arc-agi/evaluation/a3f84088.json delete mode 100644 data/arc-agi/evaluation/a406ac07.json delete mode 100644 data/arc-agi/evaluation/a57f2f04.json delete mode 100644 data/arc-agi/evaluation/a59b95c0.json delete mode 100644 data/arc-agi/evaluation/a680ac02.json delete mode 100644 data/arc-agi/evaluation/a8610ef7.json delete mode 100644 data/arc-agi/evaluation/a934301b.json delete mode 100644 data/arc-agi/evaluation/aa18de87.json delete mode 100644 data/arc-agi/evaluation/aa300dc3.json delete mode 100644 data/arc-agi/evaluation/aa4ec2a5.json delete mode 100644 data/arc-agi/evaluation/aab50785.json delete mode 100644 data/arc-agi/evaluation/ac0c5833.json delete mode 100644 data/arc-agi/evaluation/ac2e8ecf.json delete mode 100644 data/arc-agi/evaluation/ac3e2b04.json delete mode 100644 data/arc-agi/evaluation/ac605cbb.json delete mode 100644 data/arc-agi/evaluation/ad7e01d0.json delete mode 100644 data/arc-agi/evaluation/ae58858e.json delete mode 100644 data/arc-agi/evaluation/aee291af.json delete mode 100644 data/arc-agi/evaluation/af22c60d.json delete mode 100644 data/arc-agi/evaluation/af24b4cc.json delete mode 100644 data/arc-agi/evaluation/b0722778.json delete mode 100644 data/arc-agi/evaluation/b0f4d537.json delete mode 100644 data/arc-agi/evaluation/b15fca0b.json delete mode 100644 data/arc-agi/evaluation/b1fc8b8e.json delete mode 100644 data/arc-agi/evaluation/b20f7c8b.json delete mode 100644 data/arc-agi/evaluation/b457fec5.json delete mode 100644 data/arc-agi/evaluation/b4a43f3b.json delete mode 100644 data/arc-agi/evaluation/b7999b51.json delete mode 100644 data/arc-agi/evaluation/b7cb93ac.json delete mode 100644 data/arc-agi/evaluation/b7f8a4d8.json delete mode 100644 data/arc-agi/evaluation/b7fb29bc.json delete mode 100644 data/arc-agi/evaluation/b942fd60.json delete mode 100644 data/arc-agi/evaluation/b9630600.json delete mode 100644 data/arc-agi/evaluation/ba9d41b8.json delete mode 100644 data/arc-agi/evaluation/baf41dbf.json delete mode 100644 data/arc-agi/evaluation/bb52a14b.json delete mode 100644 data/arc-agi/evaluation/bbb1b8b6.json delete mode 100644 data/arc-agi/evaluation/bc4146bd.json delete mode 100644 data/arc-agi/evaluation/bcb3040b.json delete mode 100644 data/arc-agi/evaluation/bd14c3bf.json delete mode 100644 data/arc-agi/evaluation/be03b35f.json delete mode 100644 data/arc-agi/evaluation/bf32578f.json delete mode 100644 data/arc-agi/evaluation/bf699163.json delete mode 100644 data/arc-agi/evaluation/bf89d739.json delete mode 100644 data/arc-agi/evaluation/c074846d.json delete mode 100644 data/arc-agi/evaluation/c1990cce.json delete mode 100644 data/arc-agi/evaluation/c3202e5a.json delete mode 100644 data/arc-agi/evaluation/c35c1b4c.json delete mode 100644 data/arc-agi/evaluation/c48954c1.json delete mode 100644 data/arc-agi/evaluation/c62e2108.json delete mode 100644 data/arc-agi/evaluation/c64f1187.json delete mode 100644 data/arc-agi/evaluation/c658a4bd.json delete mode 100644 data/arc-agi/evaluation/c663677b.json delete mode 100644 data/arc-agi/evaluation/c6e1b8da.json delete mode 100644 data/arc-agi/evaluation/c7d4e6ad.json delete mode 100644 data/arc-agi/evaluation/c87289bb.json delete mode 100644 data/arc-agi/evaluation/c8b7cc0f.json delete mode 100644 data/arc-agi/evaluation/c92b942c.json delete mode 100644 data/arc-agi/evaluation/c97c0139.json delete mode 100644 data/arc-agi/evaluation/ca8de6ea.json delete mode 100644 data/arc-agi/evaluation/ca8f78db.json delete mode 100644 data/arc-agi/evaluation/cad67732.json delete mode 100644 data/arc-agi/evaluation/cb227835.json delete mode 100644 data/arc-agi/evaluation/ccd554ac.json delete mode 100644 data/arc-agi/evaluation/cd3c21df.json delete mode 100644 data/arc-agi/evaluation/ce039d91.json delete mode 100644 data/arc-agi/evaluation/ce8d95cc.json delete mode 100644 data/arc-agi/evaluation/cf133acc.json delete mode 100644 data/arc-agi/evaluation/cfb2ce5a.json delete mode 100644 data/arc-agi/evaluation/d017b73f.json delete mode 100644 data/arc-agi/evaluation/d19f7514.json delete mode 100644 data/arc-agi/evaluation/d282b262.json delete mode 100644 data/arc-agi/evaluation/d2acf2cb.json delete mode 100644 data/arc-agi/evaluation/d304284e.json delete mode 100644 data/arc-agi/evaluation/d37a1ef5.json delete mode 100644 data/arc-agi/evaluation/d47aa2ff.json delete mode 100644 data/arc-agi/evaluation/d492a647.json delete mode 100644 data/arc-agi/evaluation/d4b1c2b1.json delete mode 100644 data/arc-agi/evaluation/d4c90558.json delete mode 100644 data/arc-agi/evaluation/d56f2372.json delete mode 100644 data/arc-agi/evaluation/d5c634a2.json delete mode 100644 data/arc-agi/evaluation/d931c21c.json delete mode 100644 data/arc-agi/evaluation/d94c3b52.json delete mode 100644 data/arc-agi/evaluation/da2b0fe3.json delete mode 100644 data/arc-agi/evaluation/da515329.json delete mode 100644 data/arc-agi/evaluation/dc2aa30b.json delete mode 100644 data/arc-agi/evaluation/dc2e9a9d.json delete mode 100644 data/arc-agi/evaluation/dd2401ed.json delete mode 100644 data/arc-agi/evaluation/de493100.json delete mode 100644 data/arc-agi/evaluation/df8cc377.json delete mode 100644 data/arc-agi/evaluation/e0fb7511.json delete mode 100644 data/arc-agi/evaluation/e133d23d.json delete mode 100644 data/arc-agi/evaluation/e1baa8a4.json delete mode 100644 data/arc-agi/evaluation/e1d2900e.json delete mode 100644 data/arc-agi/evaluation/e2092e0c.json delete mode 100644 data/arc-agi/evaluation/e21a174a.json delete mode 100644 data/arc-agi/evaluation/e345f17b.json delete mode 100644 data/arc-agi/evaluation/e4075551.json delete mode 100644 data/arc-agi/evaluation/e41c6fd3.json delete mode 100644 data/arc-agi/evaluation/e57337a4.json delete mode 100644 data/arc-agi/evaluation/e5790162.json delete mode 100644 data/arc-agi/evaluation/e5c44e8f.json delete mode 100644 data/arc-agi/evaluation/e619ca6e.json delete mode 100644 data/arc-agi/evaluation/e633a9e5.json delete mode 100644 data/arc-agi/evaluation/e66aafb8.json delete mode 100644 data/arc-agi/evaluation/e681b708.json delete mode 100644 data/arc-agi/evaluation/e69241bd.json delete mode 100644 data/arc-agi/evaluation/e6de6e8f.json delete mode 100644 data/arc-agi/evaluation/e74e1818.json delete mode 100644 data/arc-agi/evaluation/e760a62e.json delete mode 100644 data/arc-agi/evaluation/e7639916.json delete mode 100644 data/arc-agi/evaluation/e78887d1.json delete mode 100644 data/arc-agi/evaluation/e7a25a18.json delete mode 100644 data/arc-agi/evaluation/e7b06bea.json delete mode 100644 data/arc-agi/evaluation/e7dd8335.json delete mode 100644 data/arc-agi/evaluation/e872b94a.json delete mode 100644 data/arc-agi/evaluation/e88171ec.json delete mode 100644 data/arc-agi/evaluation/e95e3d8e.json delete mode 100644 data/arc-agi/evaluation/e99362f0.json delete mode 100644 data/arc-agi/evaluation/e9ac8c9e.json delete mode 100644 data/arc-agi/evaluation/e9b4f6fc.json delete mode 100644 data/arc-agi/evaluation/e9bb6954.json delete mode 100644 data/arc-agi/evaluation/e9c9d9a1.json delete mode 100644 data/arc-agi/evaluation/ea959feb.json delete mode 100644 data/arc-agi/evaluation/ea9794b1.json delete mode 100644 data/arc-agi/evaluation/ecaa0ec1.json delete mode 100644 data/arc-agi/evaluation/ed74f2f2.json delete mode 100644 data/arc-agi/evaluation/ed98d772.json delete mode 100644 data/arc-agi/evaluation/ef26cbf6.json delete mode 100644 data/arc-agi/evaluation/f0afb749.json delete mode 100644 data/arc-agi/evaluation/f0df5ff0.json delete mode 100644 data/arc-agi/evaluation/f21745ec.json delete mode 100644 data/arc-agi/evaluation/f3b10344.json delete mode 100644 data/arc-agi/evaluation/f3cdc58f.json delete mode 100644 data/arc-agi/evaluation/f3e62deb.json delete mode 100644 data/arc-agi/evaluation/f4081712.json delete mode 100644 data/arc-agi/evaluation/f45f5ca7.json delete mode 100644 data/arc-agi/evaluation/f5aa3634.json delete mode 100644 data/arc-agi/evaluation/f5c89df1.json delete mode 100644 data/arc-agi/evaluation/f823c43c.json delete mode 100644 data/arc-agi/evaluation/f83cb3f6.json delete mode 100644 data/arc-agi/evaluation/f8be4b64.json delete mode 100644 data/arc-agi/evaluation/f9a67cb5.json delete mode 100644 data/arc-agi/evaluation/f9d67f8b.json delete mode 100644 data/arc-agi/evaluation/fafd9572.json delete mode 100644 data/arc-agi/evaluation/fb791726.json delete mode 100644 data/arc-agi/evaluation/fc754716.json delete mode 100644 data/arc-agi/evaluation/fd096ab6.json delete mode 100644 data/arc-agi/evaluation/fd4b2b02.json delete mode 100644 data/arc-agi/evaluation/fe9372f3.json delete mode 100644 data/arc-agi/evaluation/fea12743.json delete mode 100644 data/arc-agi/evaluation/ff72ca3e.json delete mode 100644 data/arc-agi/results_direct.json delete mode 100644 data/arc-agi/results_memory.json delete mode 100644 data/arc-agi/training/007bbfb7.json delete mode 100644 data/arc-agi/training/00d62c1b.json delete mode 100644 data/arc-agi/training/017c7c7b.json delete mode 100644 data/arc-agi/training/025d127b.json delete mode 100644 data/arc-agi/training/045e512c.json delete mode 100644 data/arc-agi/training/0520fde7.json delete mode 100644 data/arc-agi/training/05269061.json delete mode 100644 data/arc-agi/training/05f2a901.json delete mode 100644 data/arc-agi/training/06df4c85.json delete mode 100644 data/arc-agi/training/08ed6ac7.json delete mode 100644 data/arc-agi/training/09629e4f.json delete mode 100644 data/arc-agi/training/0962bcdd.json delete mode 100644 data/arc-agi/training/0a938d79.json delete mode 100644 data/arc-agi/training/0b148d64.json delete mode 100644 data/arc-agi/training/0ca9ddb6.json delete mode 100644 data/arc-agi/training/0d3d703e.json delete mode 100644 data/arc-agi/training/0dfd9992.json delete mode 100644 data/arc-agi/training/0e206a2e.json delete mode 100644 data/arc-agi/training/10fcaaa3.json delete mode 100644 data/arc-agi/training/11852cab.json delete mode 100644 data/arc-agi/training/1190e5a7.json delete mode 100644 data/arc-agi/training/137eaa0f.json delete mode 100644 data/arc-agi/training/150deff5.json delete mode 100644 data/arc-agi/training/178fcbfb.json delete mode 100644 data/arc-agi/training/1a07d186.json delete mode 100644 data/arc-agi/training/1b2d62fb.json delete mode 100644 data/arc-agi/training/1b60fb0c.json delete mode 100644 data/arc-agi/training/1bfc4729.json delete mode 100644 data/arc-agi/training/1c786137.json delete mode 100644 data/arc-agi/training/1caeab9d.json delete mode 100644 data/arc-agi/training/1cf80156.json delete mode 100644 data/arc-agi/training/1e0a9b12.json delete mode 100644 data/arc-agi/training/1e32b0e9.json delete mode 100644 data/arc-agi/training/1f0c79e5.json delete mode 100644 data/arc-agi/training/1f642eb9.json delete mode 100644 data/arc-agi/training/1f85a75f.json delete mode 100644 data/arc-agi/training/1f876c06.json delete mode 100644 data/arc-agi/training/1fad071e.json delete mode 100644 data/arc-agi/training/2013d3e2.json delete mode 100644 data/arc-agi/training/2204b7a8.json delete mode 100644 data/arc-agi/training/22168020.json delete mode 100644 data/arc-agi/training/22233c11.json delete mode 100644 data/arc-agi/training/2281f1f4.json delete mode 100644 data/arc-agi/training/228f6490.json delete mode 100644 data/arc-agi/training/22eb0ac0.json delete mode 100644 data/arc-agi/training/234bbc79.json delete mode 100644 data/arc-agi/training/23581191.json delete mode 100644 data/arc-agi/training/239be575.json delete mode 100644 data/arc-agi/training/23b5c85d.json delete mode 100644 data/arc-agi/training/253bf280.json delete mode 100644 data/arc-agi/training/25d487eb.json delete mode 100644 data/arc-agi/training/25d8a9c8.json delete mode 100644 data/arc-agi/training/25ff71a9.json delete mode 100644 data/arc-agi/training/264363fd.json delete mode 100644 data/arc-agi/training/272f95fa.json delete mode 100644 data/arc-agi/training/27a28665.json delete mode 100644 data/arc-agi/training/28bf18c6.json delete mode 100644 data/arc-agi/training/28e73c20.json delete mode 100644 data/arc-agi/training/29623171.json delete mode 100644 data/arc-agi/training/29c11459.json delete mode 100644 data/arc-agi/training/29ec7d0e.json delete mode 100644 data/arc-agi/training/2bcee788.json delete mode 100644 data/arc-agi/training/2bee17df.json delete mode 100644 data/arc-agi/training/2c608aff.json delete mode 100644 data/arc-agi/training/2dc579da.json delete mode 100644 data/arc-agi/training/2dd70a9a.json delete mode 100644 data/arc-agi/training/2dee498d.json delete mode 100644 data/arc-agi/training/31aa019c.json delete mode 100644 data/arc-agi/training/321b1fc6.json delete mode 100644 data/arc-agi/training/32597951.json delete mode 100644 data/arc-agi/training/3345333e.json delete mode 100644 data/arc-agi/training/3428a4f5.json delete mode 100644 data/arc-agi/training/3618c87e.json delete mode 100644 data/arc-agi/training/3631a71a.json delete mode 100644 data/arc-agi/training/363442ee.json delete mode 100644 data/arc-agi/training/36d67576.json delete mode 100644 data/arc-agi/training/36fdfd69.json delete mode 100644 data/arc-agi/training/3906de3d.json delete mode 100644 data/arc-agi/training/39a8645d.json delete mode 100644 data/arc-agi/training/39e1d7f9.json delete mode 100644 data/arc-agi/training/3aa6fb7a.json delete mode 100644 data/arc-agi/training/3ac3eb23.json delete mode 100644 data/arc-agi/training/3af2c5a8.json delete mode 100644 data/arc-agi/training/3bd67248.json delete mode 100644 data/arc-agi/training/3bdb4ada.json delete mode 100644 data/arc-agi/training/3befdf3e.json delete mode 100644 data/arc-agi/training/3c9b0459.json delete mode 100644 data/arc-agi/training/3de23699.json delete mode 100644 data/arc-agi/training/3e980e27.json delete mode 100644 data/arc-agi/training/3eda0437.json delete mode 100644 data/arc-agi/training/3f7978a0.json delete mode 100644 data/arc-agi/training/40853293.json delete mode 100644 data/arc-agi/training/4093f84a.json delete mode 100644 data/arc-agi/training/41e4d17e.json delete mode 100644 data/arc-agi/training/4258a5f9.json delete mode 100644 data/arc-agi/training/4290ef0e.json delete mode 100644 data/arc-agi/training/42a50994.json delete mode 100644 data/arc-agi/training/4347f46a.json delete mode 100644 data/arc-agi/training/444801d8.json delete mode 100644 data/arc-agi/training/445eab21.json delete mode 100644 data/arc-agi/training/447fd412.json delete mode 100644 data/arc-agi/training/44d8ac46.json delete mode 100644 data/arc-agi/training/44f52bb0.json delete mode 100644 data/arc-agi/training/4522001f.json delete mode 100644 data/arc-agi/training/4612dd53.json delete mode 100644 data/arc-agi/training/46442a0e.json delete mode 100644 data/arc-agi/training/469497ad.json delete mode 100644 data/arc-agi/training/46f33fce.json delete mode 100644 data/arc-agi/training/47c1f68c.json delete mode 100644 data/arc-agi/training/484b58aa.json delete mode 100644 data/arc-agi/training/48d8fb45.json delete mode 100644 data/arc-agi/training/4938f0c2.json delete mode 100644 data/arc-agi/training/496994bd.json delete mode 100644 data/arc-agi/training/49d1d64f.json delete mode 100644 data/arc-agi/training/4be741c5.json delete mode 100644 data/arc-agi/training/4c4377d9.json delete mode 100644 data/arc-agi/training/4c5c2cf0.json delete mode 100644 data/arc-agi/training/50846271.json delete mode 100644 data/arc-agi/training/508bd3b6.json delete mode 100644 data/arc-agi/training/50cb2852.json delete mode 100644 data/arc-agi/training/5117e062.json delete mode 100644 data/arc-agi/training/5168d44c.json delete mode 100644 data/arc-agi/training/539a4f51.json delete mode 100644 data/arc-agi/training/53b68214.json delete mode 100644 data/arc-agi/training/543a7ed5.json delete mode 100644 data/arc-agi/training/54d82841.json delete mode 100644 data/arc-agi/training/54d9e175.json delete mode 100644 data/arc-agi/training/5521c0d9.json delete mode 100644 data/arc-agi/training/5582e5ca.json delete mode 100644 data/arc-agi/training/5614dbcf.json delete mode 100644 data/arc-agi/training/56dc2b01.json delete mode 100644 data/arc-agi/training/56ff96f3.json delete mode 100644 data/arc-agi/training/57aa92db.json delete mode 100644 data/arc-agi/training/5ad4f10b.json delete mode 100644 data/arc-agi/training/5bd6f4ac.json delete mode 100644 data/arc-agi/training/5c0a986e.json delete mode 100644 data/arc-agi/training/5c2c9af4.json delete mode 100644 data/arc-agi/training/5daaa586.json delete mode 100644 data/arc-agi/training/60b61512.json delete mode 100644 data/arc-agi/training/6150a2bd.json delete mode 100644 data/arc-agi/training/623ea044.json delete mode 100644 data/arc-agi/training/62c24649.json delete mode 100644 data/arc-agi/training/63613498.json delete mode 100644 data/arc-agi/training/6430c8c4.json delete mode 100644 data/arc-agi/training/6455b5f5.json delete mode 100644 data/arc-agi/training/662c240a.json delete mode 100644 data/arc-agi/training/67385a82.json delete mode 100644 data/arc-agi/training/673ef223.json delete mode 100644 data/arc-agi/training/6773b310.json delete mode 100644 data/arc-agi/training/67a3c6ac.json delete mode 100644 data/arc-agi/training/67a423a3.json delete mode 100644 data/arc-agi/training/67e8384a.json delete mode 100644 data/arc-agi/training/681b3aeb.json delete mode 100644 data/arc-agi/training/6855a6e4.json delete mode 100644 data/arc-agi/training/68b16354.json delete mode 100644 data/arc-agi/training/694f12f3.json delete mode 100644 data/arc-agi/training/6a1e5592.json delete mode 100644 data/arc-agi/training/6aa20dc0.json delete mode 100644 data/arc-agi/training/6b9890af.json delete mode 100644 data/arc-agi/training/6c434453.json delete mode 100644 data/arc-agi/training/6cdd2623.json delete mode 100644 data/arc-agi/training/6cf79266.json delete mode 100644 data/arc-agi/training/6d0160f0.json delete mode 100644 data/arc-agi/training/6d0aefbc.json delete mode 100644 data/arc-agi/training/6d58a25d.json delete mode 100644 data/arc-agi/training/6d75e8bb.json delete mode 100644 data/arc-agi/training/6e02f1e3.json delete mode 100644 data/arc-agi/training/6e19193c.json delete mode 100644 data/arc-agi/training/6e82a1ae.json delete mode 100644 data/arc-agi/training/6ecd11f4.json delete mode 100644 data/arc-agi/training/6f8cd79b.json delete mode 100644 data/arc-agi/training/6fa7a44f.json delete mode 100644 data/arc-agi/training/72322fa7.json delete mode 100644 data/arc-agi/training/72ca375d.json delete mode 100644 data/arc-agi/training/73251a56.json delete mode 100644 data/arc-agi/training/7447852a.json delete mode 100644 data/arc-agi/training/7468f01a.json delete mode 100644 data/arc-agi/training/746b3537.json delete mode 100644 data/arc-agi/training/74dd1130.json delete mode 100644 data/arc-agi/training/75b8110e.json delete mode 100644 data/arc-agi/training/760b3cac.json delete mode 100644 data/arc-agi/training/776ffc46.json delete mode 100644 data/arc-agi/training/77fdfe62.json delete mode 100644 data/arc-agi/training/780d0b14.json delete mode 100644 data/arc-agi/training/7837ac64.json delete mode 100644 data/arc-agi/training/794b24be.json delete mode 100644 data/arc-agi/training/7b6016b9.json delete mode 100644 data/arc-agi/training/7b7f7511.json delete mode 100644 data/arc-agi/training/7c008303.json delete mode 100644 data/arc-agi/training/7ddcd7ec.json delete mode 100644 data/arc-agi/training/7df24a62.json delete mode 100644 data/arc-agi/training/7e0986d6.json delete mode 100644 data/arc-agi/training/7f4411dc.json delete mode 100644 data/arc-agi/training/7fe24cdd.json delete mode 100644 data/arc-agi/training/80af3007.json delete mode 100644 data/arc-agi/training/810b9b61.json delete mode 100644 data/arc-agi/training/82819916.json delete mode 100644 data/arc-agi/training/83302e8f.json delete mode 100644 data/arc-agi/training/834ec97d.json delete mode 100644 data/arc-agi/training/8403a5d5.json delete mode 100644 data/arc-agi/training/846bdb03.json delete mode 100644 data/arc-agi/training/855e0971.json delete mode 100644 data/arc-agi/training/85c4e7cd.json delete mode 100644 data/arc-agi/training/868de0fa.json delete mode 100644 data/arc-agi/training/8731374e.json delete mode 100644 data/arc-agi/training/88a10436.json delete mode 100644 data/arc-agi/training/88a62173.json delete mode 100644 data/arc-agi/training/890034e9.json delete mode 100644 data/arc-agi/training/8a004b2b.json delete mode 100644 data/arc-agi/training/8be77c9e.json delete mode 100644 data/arc-agi/training/8d5021e8.json delete mode 100644 data/arc-agi/training/8d510a79.json delete mode 100644 data/arc-agi/training/8e1813be.json delete mode 100644 data/arc-agi/training/8e5a5113.json delete mode 100644 data/arc-agi/training/8eb1be9a.json delete mode 100644 data/arc-agi/training/8efcae92.json delete mode 100644 data/arc-agi/training/8f2ea7aa.json delete mode 100644 data/arc-agi/training/90c28cc7.json delete mode 100644 data/arc-agi/training/90f3ed37.json delete mode 100644 data/arc-agi/training/913fb3ed.json delete mode 100644 data/arc-agi/training/91413438.json delete mode 100644 data/arc-agi/training/91714a58.json delete mode 100644 data/arc-agi/training/9172f3a0.json delete mode 100644 data/arc-agi/training/928ad970.json delete mode 100644 data/arc-agi/training/93b581b8.json delete mode 100644 data/arc-agi/training/941d9a10.json delete mode 100644 data/arc-agi/training/94f9d214.json delete mode 100644 data/arc-agi/training/952a094c.json delete mode 100644 data/arc-agi/training/9565186b.json delete mode 100644 data/arc-agi/training/95990924.json delete mode 100644 data/arc-agi/training/963e52fc.json delete mode 100644 data/arc-agi/training/97999447.json delete mode 100644 data/arc-agi/training/97a05b5b.json delete mode 100644 data/arc-agi/training/98cf29f8.json delete mode 100644 data/arc-agi/training/995c5fa3.json delete mode 100644 data/arc-agi/training/99b1bc43.json delete mode 100644 data/arc-agi/training/99fa7670.json delete mode 100644 data/arc-agi/training/9aec4887.json delete mode 100644 data/arc-agi/training/9af7a82c.json delete mode 100644 data/arc-agi/training/9d9215db.json delete mode 100644 data/arc-agi/training/9dfd6313.json delete mode 100644 data/arc-agi/training/9ecd008a.json delete mode 100644 data/arc-agi/training/9edfc990.json delete mode 100644 data/arc-agi/training/9f236235.json delete mode 100644 data/arc-agi/training/a1570a43.json delete mode 100644 data/arc-agi/training/a2fd1cf0.json delete mode 100644 data/arc-agi/training/a3325580.json delete mode 100644 data/arc-agi/training/a3df8b1e.json delete mode 100644 data/arc-agi/training/a416b8f3.json delete mode 100644 data/arc-agi/training/a48eeaf7.json delete mode 100644 data/arc-agi/training/a5313dff.json delete mode 100644 data/arc-agi/training/a5f85a15.json delete mode 100644 data/arc-agi/training/a61ba2ce.json delete mode 100644 data/arc-agi/training/a61f2674.json delete mode 100644 data/arc-agi/training/a64e4611.json delete mode 100644 data/arc-agi/training/a65b410d.json delete mode 100644 data/arc-agi/training/a68b268e.json delete mode 100644 data/arc-agi/training/a699fb00.json delete mode 100644 data/arc-agi/training/a740d043.json delete mode 100644 data/arc-agi/training/a78176bb.json delete mode 100644 data/arc-agi/training/a79310a0.json delete mode 100644 data/arc-agi/training/a85d4709.json delete mode 100644 data/arc-agi/training/a87f7484.json delete mode 100644 data/arc-agi/training/a8c38be5.json delete mode 100644 data/arc-agi/training/a8d7556c.json delete mode 100644 data/arc-agi/training/a9f96cdd.json delete mode 100644 data/arc-agi/training/aabf363d.json delete mode 100644 data/arc-agi/training/aba27056.json delete mode 100644 data/arc-agi/training/ac0a08a4.json delete mode 100644 data/arc-agi/training/ae3edfdc.json delete mode 100644 data/arc-agi/training/ae4f1146.json delete mode 100644 data/arc-agi/training/aedd82e4.json delete mode 100644 data/arc-agi/training/af902bf9.json delete mode 100644 data/arc-agi/training/b0c4d837.json delete mode 100644 data/arc-agi/training/b190f7f5.json delete mode 100644 data/arc-agi/training/b1948b0a.json delete mode 100644 data/arc-agi/training/b230c067.json delete mode 100644 data/arc-agi/training/b27ca6d3.json delete mode 100644 data/arc-agi/training/b2862040.json delete mode 100644 data/arc-agi/training/b527c5c6.json delete mode 100644 data/arc-agi/training/b548a754.json delete mode 100644 data/arc-agi/training/b60334d2.json delete mode 100644 data/arc-agi/training/b6afb2da.json delete mode 100644 data/arc-agi/training/b7249182.json delete mode 100644 data/arc-agi/training/b775ac94.json delete mode 100644 data/arc-agi/training/b782dc8a.json delete mode 100644 data/arc-agi/training/b8825c91.json delete mode 100644 data/arc-agi/training/b8cdaf2b.json delete mode 100644 data/arc-agi/training/b91ae062.json delete mode 100644 data/arc-agi/training/b94a9452.json delete mode 100644 data/arc-agi/training/b9b7f026.json delete mode 100644 data/arc-agi/training/ba26e723.json delete mode 100644 data/arc-agi/training/ba97ae07.json delete mode 100644 data/arc-agi/training/bb43febb.json delete mode 100644 data/arc-agi/training/bbc9ae5d.json delete mode 100644 data/arc-agi/training/bc1d5164.json delete mode 100644 data/arc-agi/training/bd4472b8.json delete mode 100644 data/arc-agi/training/bda2d7a6.json delete mode 100644 data/arc-agi/training/bdad9b1f.json delete mode 100644 data/arc-agi/training/be94b721.json delete mode 100644 data/arc-agi/training/beb8660c.json delete mode 100644 data/arc-agi/training/c0f76784.json delete mode 100644 data/arc-agi/training/c1d99e64.json delete mode 100644 data/arc-agi/training/c3e719e8.json delete mode 100644 data/arc-agi/training/c3f564a4.json delete mode 100644 data/arc-agi/training/c444b776.json delete mode 100644 data/arc-agi/training/c59eb873.json delete mode 100644 data/arc-agi/training/c8cbb738.json delete mode 100644 data/arc-agi/training/c8f0f002.json delete mode 100644 data/arc-agi/training/c909285e.json delete mode 100644 data/arc-agi/training/c9e6f938.json delete mode 100644 data/arc-agi/training/c9f8e694.json delete mode 100644 data/arc-agi/training/caa06a1f.json delete mode 100644 data/arc-agi/training/cbded52d.json delete mode 100644 data/arc-agi/training/cce03e0d.json delete mode 100644 data/arc-agi/training/cdecee7f.json delete mode 100644 data/arc-agi/training/ce22a75a.json delete mode 100644 data/arc-agi/training/ce4f8723.json delete mode 100644 data/arc-agi/training/ce602527.json delete mode 100644 data/arc-agi/training/ce9e57f2.json delete mode 100644 data/arc-agi/training/cf98881b.json delete mode 100644 data/arc-agi/training/d037b0a7.json delete mode 100644 data/arc-agi/training/d06dbe63.json delete mode 100644 data/arc-agi/training/d07ae81c.json delete mode 100644 data/arc-agi/training/d0f5fe59.json delete mode 100644 data/arc-agi/training/d10ecb37.json delete mode 100644 data/arc-agi/training/d13f3404.json delete mode 100644 data/arc-agi/training/d22278a0.json delete mode 100644 data/arc-agi/training/d23f8c26.json delete mode 100644 data/arc-agi/training/d2abd087.json delete mode 100644 data/arc-agi/training/d364b489.json delete mode 100644 data/arc-agi/training/d406998b.json delete mode 100644 data/arc-agi/training/d43fd935.json delete mode 100644 data/arc-agi/training/d4469b4b.json delete mode 100644 data/arc-agi/training/d4a91cb9.json delete mode 100644 data/arc-agi/training/d4f3cd78.json delete mode 100644 data/arc-agi/training/d511f180.json delete mode 100644 data/arc-agi/training/d5d6de2d.json delete mode 100644 data/arc-agi/training/d631b094.json delete mode 100644 data/arc-agi/training/d687bc17.json delete mode 100644 data/arc-agi/training/d6ad076f.json delete mode 100644 data/arc-agi/training/d89b689b.json delete mode 100644 data/arc-agi/training/d8c310e9.json delete mode 100644 data/arc-agi/training/d90796e8.json delete mode 100644 data/arc-agi/training/d9f24cd1.json delete mode 100644 data/arc-agi/training/d9fac9be.json delete mode 100644 data/arc-agi/training/dae9d2b5.json delete mode 100644 data/arc-agi/training/db3e9e38.json delete mode 100644 data/arc-agi/training/db93a21d.json delete mode 100644 data/arc-agi/training/dbc1a6ce.json delete mode 100644 data/arc-agi/training/dc0a314f.json delete mode 100644 data/arc-agi/training/dc1df850.json delete mode 100644 data/arc-agi/training/dc433765.json delete mode 100644 data/arc-agi/training/ddf7fa4f.json delete mode 100644 data/arc-agi/training/de1cd16c.json delete mode 100644 data/arc-agi/training/ded97339.json delete mode 100644 data/arc-agi/training/e179c5f4.json delete mode 100644 data/arc-agi/training/e21d9049.json delete mode 100644 data/arc-agi/training/e26a3af2.json delete mode 100644 data/arc-agi/training/e3497940.json delete mode 100644 data/arc-agi/training/e40b9e2f.json delete mode 100644 data/arc-agi/training/e48d4e1a.json delete mode 100644 data/arc-agi/training/e5062a87.json delete mode 100644 data/arc-agi/training/e509e548.json delete mode 100644 data/arc-agi/training/e50d258f.json delete mode 100644 data/arc-agi/training/e6721834.json delete mode 100644 data/arc-agi/training/e73095fd.json delete mode 100644 data/arc-agi/training/e76a88a6.json delete mode 100644 data/arc-agi/training/e8593010.json delete mode 100644 data/arc-agi/training/e8dc4411.json delete mode 100644 data/arc-agi/training/e9614598.json delete mode 100644 data/arc-agi/training/e98196ab.json delete mode 100644 data/arc-agi/training/e9afcf9a.json delete mode 100644 data/arc-agi/training/ea32f347.json delete mode 100644 data/arc-agi/training/ea786f4a.json delete mode 100644 data/arc-agi/training/eb281b96.json delete mode 100644 data/arc-agi/training/eb5a1d5d.json delete mode 100644 data/arc-agi/training/ec883f72.json delete mode 100644 data/arc-agi/training/ecdecbb3.json delete mode 100644 data/arc-agi/training/ed36ccf7.json delete mode 100644 data/arc-agi/training/ef135b50.json delete mode 100644 data/arc-agi/training/f15e1fac.json delete mode 100644 data/arc-agi/training/f1cefba8.json delete mode 100644 data/arc-agi/training/f25fbde4.json delete mode 100644 data/arc-agi/training/f25ffba3.json delete mode 100644 data/arc-agi/training/f2829549.json delete mode 100644 data/arc-agi/training/f35d900a.json delete mode 100644 data/arc-agi/training/f5b8619d.json delete mode 100644 data/arc-agi/training/f76d97a5.json delete mode 100644 data/arc-agi/training/f8a8fe49.json delete mode 100644 data/arc-agi/training/f8b3ba0a.json delete mode 100644 data/arc-agi/training/f8c80d96.json delete mode 100644 data/arc-agi/training/f8ff0b80.json delete mode 100644 data/arc-agi/training/f9012d9b.json delete mode 100644 data/arc-agi/training/fafffa47.json delete mode 100644 data/arc-agi/training/fcb5c309.json delete mode 100644 data/arc-agi/training/fcc82909.json delete mode 100644 data/arc-agi/training/feca6190.json delete mode 100644 data/arc-agi/training/ff28f65a.json delete mode 100644 data/arc-agi/training/ff805c23.json delete mode 100644 deep-research-report.md rename {engram-accel => dhee-accel}/Cargo.lock (99%) rename {engram-accel => dhee-accel}/Cargo.toml (64%) rename {engram-accel => dhee-accel}/pyproject.toml (72%) rename {engram-accel => dhee-accel}/src/decay.rs (100%) rename {engram-accel => dhee-accel}/src/lib.rs (81%) rename {engram-accel => dhee-accel}/src/scoring.rs (100%) rename {engram-accel => dhee-accel}/src/vector.rs (100%) rename {engram => dhee}/__init__.py (50%) create mode 100644 dhee/api/__init__.py rename {engram => dhee}/api/app.py (96%) rename {engram => dhee}/api/server.py (100%) rename {engram => dhee}/api/static/dashboard.html (100%) rename {engram => dhee}/benchmarks/__init__.py (100%) rename {engram => dhee}/benchmarks/arc_agi.py (98%) create mode 100644 dhee/benchmarks/longmemeval.py rename {engram => dhee}/cli.py (97%) rename {engram => dhee}/cli_config.py (92%) rename {engram => dhee}/cli_mcp.py (97%) rename {engram => dhee}/cli_setup.py (83%) rename {engram => dhee}/configs/__init__.py (89%) rename {engram => dhee}/configs/active.py (97%) rename {engram => dhee}/configs/base.py (74%) rename {engram => dhee}/configs/presets.py (91%) create mode 100644 dhee/core/__init__.py rename {engram => dhee}/core/agi_loop.py (100%) create mode 100644 dhee/core/alaya.py create mode 100644 dhee/core/answer_orchestration.py create mode 100644 dhee/core/buddhi.py rename {engram => dhee}/core/category.py (99%) create mode 100644 dhee/core/code_exec_counter.py create mode 100644 dhee/core/cognition.py rename {engram => dhee}/core/conflict.py (97%) rename {engram => dhee}/core/consolidation.py (95%) rename {engram => dhee}/core/decay.py (88%) rename {engram => dhee}/core/distillation.py (96%) rename {engram => dhee}/core/echo.py (99%) create mode 100644 dhee/core/engram.py create mode 100644 dhee/core/engram_extractor.py rename {engram => dhee}/core/enrichment.py (98%) create mode 100644 dhee/core/episodic_index.py create mode 100644 dhee/core/evolution.py rename {engram => dhee}/core/forgetting.py (64%) rename {engram => dhee}/core/fusion.py (97%) rename {engram => dhee}/core/graph.py (100%) rename {engram => dhee}/core/intent.py (100%) rename {engram => dhee}/core/kernel.py (96%) rename {engram => dhee}/core/log_parser.py (100%) create mode 100644 dhee/core/metrics.py rename {engram => dhee}/core/profile.py (83%) create mode 100644 dhee/core/proposition_context.py create mode 100644 dhee/core/resolvers.py rename {engram => dhee}/core/retrieval.py (96%) rename {engram => dhee}/core/salience.py (100%) create mode 100644 dhee/core/samskara.py rename {engram => dhee}/core/scene.py (89%) rename {engram => dhee}/core/traces.py (95%) create mode 100644 dhee/core/viveka.py rename {engram-enterprise/engram_enterprise/api => dhee/db}/__init__.py (100%) rename {engram => dhee}/db/sqlite.py (74%) rename {engram => dhee}/db/sqlite_backup.py (100%) rename {engram => dhee}/decay/__init__.py (56%) rename {engram-enterprise/engram_enterprise/integrations => dhee/embeddings}/__init__.py (100%) rename {engram => dhee}/embeddings/base.py (100%) rename {engram => dhee}/embeddings/gemini.py (98%) rename {engram => dhee}/embeddings/nvidia.py (93%) rename {engram => dhee}/embeddings/ollama.py (97%) rename {engram => dhee}/embeddings/openai.py (97%) create mode 100644 dhee/embeddings/qwen.py rename {engram => dhee}/embeddings/simple.py (98%) rename {engram => dhee}/exceptions.py (100%) rename {engram => dhee}/integrations/__init__.py (100%) rename {engram/db => dhee/llms}/__init__.py (100%) create mode 100644 dhee/llms/base.py create mode 100644 dhee/llms/dhee.py rename {engram => dhee}/llms/gemini.py (98%) rename {engram => dhee}/llms/mock.py (96%) create mode 100644 dhee/llms/nvidia.py rename {engram => dhee}/llms/ollama.py (98%) rename {engram => dhee}/llms/openai.py (97%) create mode 100644 dhee/llms/teacher_logger.py rename {engram => dhee}/mcp_server.py (69%) create mode 100644 dhee/mcp_slim.py create mode 100644 dhee/memory/__init__.py rename {engram => dhee}/memory/base.py (100%) rename {engram => dhee}/memory/core.py (96%) rename {engram => dhee}/memory/main.py (62%) rename {engram => dhee}/memory/parallel.py (100%) rename {engram => dhee}/memory/projects.py (98%) rename {engram => dhee}/memory/smart.py (95%) rename {engram => dhee}/memory/tasks.py (99%) rename {engram => dhee}/memory/utils.py (99%) rename {engram => dhee}/observability.py (100%) rename {engram => dhee}/retrieval/__init__.py (55%) create mode 100644 dhee/retrieval/reranker.py rename {engram => dhee}/simple.py (96%) rename {engram => dhee}/skills/__init__.py (100%) rename {engram => dhee}/skills/discovery.py (81%) rename {engram => dhee}/skills/executor.py (97%) rename {engram => dhee}/skills/hashing.py (100%) rename {engram => dhee}/skills/miner.py (97%) rename {engram => dhee}/skills/outcomes.py (97%) rename {engram => dhee}/skills/schema.py (98%) rename {engram => dhee}/skills/store.py (98%) rename {engram => dhee}/skills/structure.py (99%) rename {engram => dhee}/skills/trajectory.py (99%) create mode 100644 dhee/teaching/__init__.py create mode 100644 dhee/teaching/concepts.py create mode 100644 dhee/teaching/config.py create mode 100644 dhee/teaching/student_model.py create mode 100644 dhee/teaching/teaching_memory.py rename {engram/embeddings => dhee/utils}/__init__.py (100%) rename {engram => dhee}/utils/factory.py (58%) rename {engram => dhee}/utils/math.py (96%) rename {engram => dhee}/utils/prompts.py (100%) rename {engram => dhee}/utils/repo_identity.py (100%) rename {engram/llms => dhee/vector_stores}/__init__.py (100%) rename {engram => dhee}/vector_stores/base.py (100%) rename {engram => dhee}/vector_stores/memory.py (95%) rename {engram => dhee}/vector_stores/sqlite_vec.py (98%) rename {engram => dhee}/vector_stores/zvec_store.py (64%) create mode 100644 dhee_shared/__init__.py create mode 100644 dhee_shared/model_paths.py delete mode 100644 docs/capture_screenshots.py create mode 100644 docs/dhee-logo.png delete mode 100644 docs/pdf/manifest.json delete mode 100644 docs/screenshots/board-kanban.png delete mode 100644 docs/screenshots/chat-view.png delete mode 100644 docs/screenshots/coordination-agents.png delete mode 100644 docs/screenshots/memory-view.png delete mode 100644 docs/screenshots/todos-view.png delete mode 100644 engram-bridge/README.md delete mode 100644 engram-bridge/demo/demo-app/main.py delete mode 100644 engram-bridge/demo/demo-app/test_main.py delete mode 100755 engram-bridge/demo/run-demo.sh delete mode 100644 engram-bridge/demo/seed.py delete mode 100644 engram-bridge/engram_bridge/__init__.py delete mode 100644 engram-bridge/engram_bridge/agents/__init__.py delete mode 100644 engram-bridge/engram_bridge/agents/base.py delete mode 100644 engram-bridge/engram_bridge/agents/claude.py delete mode 100644 engram-bridge/engram_bridge/agents/codex.py delete mode 100644 engram-bridge/engram_bridge/agents/custom.py delete mode 100644 engram-bridge/engram_bridge/bridge.py delete mode 100644 engram-bridge/engram_bridge/channels/__init__.py delete mode 100644 engram-bridge/engram_bridge/channels/base.py delete mode 100644 engram-bridge/engram_bridge/channels/telegram.py delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/.gitignore delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/README.md delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/components.json delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/eslint.config.js delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/index.html delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/package-lock.json delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/package.json delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/App.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/chat-input.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/chat-message.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/command-bar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/agent-roster.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/conversation-entry.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/dashboard.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/files-panel.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/follow-up-input.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/kanban-board.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/live-feed.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/new-task-dialog.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/processes-panel.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/task-card.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dashboard/task-detail-view.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dialogs/CommandBar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dialogs/CreateProjectDialog.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/dialogs/SettingsDialog.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/issue/IssuePanel.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/kanban/KanbanBoard.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/kanban/KanbanCardContent.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/kanban/KanbanContainer.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/kanban/KanbanFilterBar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/layout/AppBar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/layout/ResizablePanel.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/layout/Sidebar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/memory-sidebar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/primitives/PriorityIcon.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/primitives/StatusDot.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/primitives/UserAvatar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/avatar.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/badge.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/button.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/card.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/checkbox.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/dialog.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/input.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/scroll-area.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/separator.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/sheet.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/tabs.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/textarea.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/components/ui/tooltip.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/contexts/ProjectContext.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/contexts/WebSocketContext.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/hooks/use-api.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/hooks/use-websocket.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/index.css delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/main.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/stores/useChatStore.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/stores/useTaskConversationStore.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/stores/useTodoStore.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/stores/useUiPreferencesStore.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/stores/useWarRoomStore.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/types/dashboard.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/types/index.ts delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/BoardView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/ChatView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/CoordinationView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/MemoryView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/TaskChatView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/TodoView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/src/views/WarRoomView.tsx delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/tsconfig.app.json delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/tsconfig.json delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/tsconfig.node.json delete mode 100644 engram-bridge/engram_bridge/channels/web-ui/vite.config.ts delete mode 100644 engram-bridge/engram_bridge/channels/web.py delete mode 100644 engram-bridge/engram_bridge/config.py delete mode 100644 engram-bridge/engram_bridge/coordination/__init__.py delete mode 100644 engram-bridge/engram_bridge/utils.py delete mode 100644 engram-bridge/pyproject.toml delete mode 100755 engram-bridge/start.sh delete mode 100644 engram-bus/README.md delete mode 100644 engram-bus/engram_bus/__init__.py delete mode 100644 engram-bus/engram_bus/bus.py delete mode 100644 engram-bus/engram_bus/pubsub.py delete mode 100644 engram-bus/engram_bus/server.py delete mode 100644 engram-bus/engram_bus/store.py delete mode 100644 engram-bus/engram_bus/workspace.py delete mode 100644 engram-bus/pyproject.toml delete mode 100644 engram-bus/tests/test_bus.py delete mode 100644 engram-enterprise/README.md delete mode 100644 engram-enterprise/engram_enterprise/__init__.py delete mode 100644 engram-enterprise/engram_enterprise/acceptance.py delete mode 100644 engram-enterprise/engram_enterprise/active_memory.py delete mode 100644 engram-enterprise/engram_enterprise/api/app.py delete mode 100644 engram-enterprise/engram_enterprise/api/auth.py delete mode 100644 engram-enterprise/engram_enterprise/api/schemas.py delete mode 100644 engram-enterprise/engram_enterprise/api/server.py delete mode 100644 engram-enterprise/engram_enterprise/async_embedder.py delete mode 100644 engram-enterprise/engram_enterprise/async_llm.py delete mode 100644 engram-enterprise/engram_enterprise/async_memory.py delete mode 100644 engram-enterprise/engram_enterprise/async_sqlite.py delete mode 100644 engram-enterprise/engram_enterprise/cli.py delete mode 100644 engram-enterprise/engram_enterprise/client.py delete mode 100644 engram-enterprise/engram_enterprise/context_packer.py delete mode 100644 engram-enterprise/engram_enterprise/dual_search.py delete mode 100644 engram-enterprise/engram_enterprise/episodic_store.py delete mode 100644 engram-enterprise/engram_enterprise/integrations/claude_code.py delete mode 100644 engram-enterprise/engram_enterprise/integrations/openclaw.py delete mode 100644 engram-enterprise/engram_enterprise/invariants.py delete mode 100644 engram-enterprise/engram_enterprise/kernel.py delete mode 100644 engram-enterprise/engram_enterprise/main_cli.py delete mode 100644 engram-enterprise/engram_enterprise/policy.py delete mode 100644 engram-enterprise/engram_enterprise/provenance.py delete mode 100644 engram-enterprise/engram_enterprise/refcounts.py delete mode 100644 engram-enterprise/engram_enterprise/reranker.py delete mode 100644 engram-enterprise/engram_enterprise/schema.py delete mode 100644 engram-enterprise/engram_enterprise/staging_store.py delete mode 100644 engram-enterprise/pyproject.toml delete mode 100644 engram-enterprise/tests/test_enterprise.py delete mode 100644 engram-failure/README.md delete mode 100644 engram-failure/engram_failure/__init__.py delete mode 100644 engram-failure/engram_failure/config.py delete mode 100644 engram-failure/engram_failure/failure.py delete mode 100644 engram-failure/engram_failure/mcp_tools.py delete mode 100644 engram-failure/engram_failure/patterns.py delete mode 100644 engram-failure/pyproject.toml delete mode 100644 engram-heartbeat/engram_heartbeat/__init__.py delete mode 100644 engram-heartbeat/engram_heartbeat/behaviors.py delete mode 100644 engram-heartbeat/engram_heartbeat/config.py delete mode 100644 engram-heartbeat/engram_heartbeat/heartbeat.py delete mode 100644 engram-heartbeat/engram_heartbeat/mcp_tools.py delete mode 100644 engram-heartbeat/engram_heartbeat/runner.py delete mode 100644 engram-heartbeat/pyproject.toml delete mode 100644 engram-identity/engram_identity/__init__.py delete mode 100644 engram-identity/engram_identity/config.py delete mode 100644 engram-identity/engram_identity/identity.py delete mode 100644 engram-identity/engram_identity/mcp_tools.py delete mode 100644 engram-identity/pyproject.toml delete mode 100644 engram-metamemory/README.md delete mode 100644 engram-metamemory/engram_metamemory/__init__.py delete mode 100644 engram-metamemory/engram_metamemory/confidence.py delete mode 100644 engram-metamemory/engram_metamemory/config.py delete mode 100644 engram-metamemory/engram_metamemory/mcp_tools.py delete mode 100644 engram-metamemory/engram_metamemory/metamemory.py delete mode 100644 engram-metamemory/pyproject.toml delete mode 100644 engram-policy/engram_policy/__init__.py delete mode 100644 engram-policy/engram_policy/config.py delete mode 100644 engram-policy/engram_policy/engine.py delete mode 100644 engram-policy/engram_policy/masking.py delete mode 100644 engram-policy/engram_policy/mcp_tools.py delete mode 100644 engram-policy/engram_policy/scopes.py delete mode 100644 engram-policy/engram_policy/tokens.py delete mode 100644 engram-policy/pyproject.toml delete mode 100644 engram-procedural/README.md delete mode 100644 engram-procedural/engram_procedural/__init__.py delete mode 100644 engram-procedural/engram_procedural/config.py delete mode 100644 engram-procedural/engram_procedural/extraction.py delete mode 100644 engram-procedural/engram_procedural/mcp_tools.py delete mode 100644 engram-procedural/engram_procedural/procedural.py delete mode 100644 engram-procedural/pyproject.toml delete mode 100644 engram-prospective/README.md delete mode 100644 engram-prospective/engram_prospective/__init__.py delete mode 100644 engram-prospective/engram_prospective/config.py delete mode 100644 engram-prospective/engram_prospective/mcp_tools.py delete mode 100644 engram-prospective/engram_prospective/prospective.py delete mode 100644 engram-prospective/engram_prospective/triggers.py delete mode 100644 engram-prospective/pyproject.toml delete mode 100644 engram-reconsolidation/README.md delete mode 100644 engram-reconsolidation/engram_reconsolidation/__init__.py delete mode 100644 engram-reconsolidation/engram_reconsolidation/config.py delete mode 100644 engram-reconsolidation/engram_reconsolidation/mcp_tools.py delete mode 100644 engram-reconsolidation/engram_reconsolidation/reconsolidation.py delete mode 100644 engram-reconsolidation/engram_reconsolidation/window.py delete mode 100644 engram-reconsolidation/pyproject.toml delete mode 100644 engram-resilience/engram_resilience/__init__.py delete mode 100644 engram-resilience/engram_resilience/compaction.py delete mode 100644 engram-resilience/engram_resilience/config.py delete mode 100644 engram-resilience/engram_resilience/fallback.py delete mode 100644 engram-resilience/engram_resilience/mcp_tools.py delete mode 100644 engram-resilience/engram_resilience/retry.py delete mode 100644 engram-resilience/pyproject.toml delete mode 100644 engram-router/engram_router/__init__.py delete mode 100644 engram-router/engram_router/config.py delete mode 100644 engram-router/engram_router/mcp_tools.py delete mode 100644 engram-router/engram_router/registry.py delete mode 100644 engram-router/engram_router/router.py delete mode 100644 engram-router/pyproject.toml delete mode 100644 engram-spawn/engram_spawn/__init__.py delete mode 100644 engram-spawn/engram_spawn/config.py delete mode 100644 engram-spawn/engram_spawn/decomposer.py delete mode 100644 engram-spawn/engram_spawn/mcp_tools.py delete mode 100644 engram-spawn/engram_spawn/spawner.py delete mode 100644 engram-spawn/engram_spawn/tracker.py delete mode 100644 engram-spawn/pyproject.toml delete mode 100644 engram-warroom/engram_warroom/__init__.py delete mode 100644 engram-warroom/engram_warroom/autopick.py delete mode 100644 engram-warroom/engram_warroom/config.py delete mode 100644 engram-warroom/engram_warroom/decision.py delete mode 100644 engram-warroom/engram_warroom/failover.py delete mode 100644 engram-warroom/engram_warroom/mcp_tools.py delete mode 100644 engram-warroom/engram_warroom/monitor.py delete mode 100644 engram-warroom/engram_warroom/warroom.py delete mode 100644 engram-warroom/pyproject.toml delete mode 100644 engram-working/README.md delete mode 100644 engram-working/engram_working/__init__.py delete mode 100644 engram-working/engram_working/buffer.py delete mode 100644 engram-working/engram_working/config.py delete mode 100644 engram-working/engram_working/mcp_tools.py delete mode 100644 engram-working/engram_working/working.py delete mode 100644 engram-working/pyproject.toml delete mode 100644 engram/api/__init__.py delete mode 100644 engram/benchmarks/longmemeval.py delete mode 100644 engram/core/__init__.py delete mode 100644 engram/llms/base.py delete mode 100644 engram/llms/nvidia.py delete mode 100644 engram/memory/__init__.py delete mode 100644 engram/retrieval/reranker.py delete mode 100644 engram/utils/__init__.py delete mode 100644 engram/vector_stores/__init__.py delete mode 100644 landing/icons.js delete mode 100644 landing/index.html delete mode 100644 landing/reference_images/screenshot_1.png delete mode 100644 landing/reference_images/screenshot_10.png delete mode 100644 landing/reference_images/screenshot_11.png delete mode 100644 landing/reference_images/screenshot_12.png delete mode 100644 landing/reference_images/screenshot_13.png delete mode 100644 landing/reference_images/screenshot_14.png delete mode 100644 landing/reference_images/screenshot_15.png delete mode 100644 landing/reference_images/screenshot_16.png delete mode 100644 landing/reference_images/screenshot_17.png delete mode 100644 landing/reference_images/screenshot_18.png delete mode 100644 landing/reference_images/screenshot_19.png delete mode 100644 landing/reference_images/screenshot_2.png delete mode 100644 landing/reference_images/screenshot_20.png delete mode 100644 landing/reference_images/screenshot_3.png delete mode 100644 landing/reference_images/screenshot_4.png delete mode 100644 landing/reference_images/screenshot_5.png delete mode 100644 landing/reference_images/screenshot_6.png delete mode 100644 landing/reference_images/screenshot_7.png delete mode 100644 landing/reference_images/screenshot_8.png delete mode 100644 landing/reference_images/screenshot_9.png delete mode 100644 landing/ribbon.js delete mode 100644 landing/styles.css delete mode 100644 launch-article.md delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 pitch-deck.md delete mode 100644 scripts/__init__.py delete mode 100644 scripts/build_doc_book.py delete mode 100644 scripts/docgen/__init__.py delete mode 100644 scripts/docgen/analyze.py delete mode 100644 scripts/docgen/render_pdf.py delete mode 100644 scripts/generate_deep_docs.py delete mode 100755 scripts/record_demo.sh delete mode 100644 scripts/record_demo.ts delete mode 100644 scripts/seed_demo.py delete mode 100755 scripts/seed_warroom_demo.py create mode 100644 sdks/js/index.js delete mode 100755 start-bridge.sh delete mode 100644 test_real_user.py create mode 100644 tests/test_dhee_model_paths.py create mode 100644 tests/test_locomo_plus_runner.py create mode 100644 tests/test_openclaw.py create mode 100644 tests/test_orchestration_core.py create mode 100644 tests/test_structured_resolution.py diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json deleted file mode 100644 index ddada64..0000000 --- a/.claude-plugin/marketplace.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "engram", - "owner": { - "name": "Engram Team", - "email": "ashish.dwivedi@gmail.com" - }, - "metadata": { - "description": "Engram persistent memory plugins for Claude Code", - "version": "1.0.0" - }, - "plugins": [ - { - "name": "engram-memory", - "source": { - "source": "github", - "repo": "Ashish-dwi99/engram-memory" - }, - "description": "Proactive persistent memory. Auto-injects relevant memories on every message via a UserPromptSubmit hook. Includes /engram slash commands and a standing-instruction skill.", - "version": "1.0.0", - "author": { - "name": "Engram Team" - }, - "homepage": "https://github.com/Ashish-dwi99/Engram", - "repository": "https://github.com/Ashish-dwi99/engram-memory", - "license": "MIT", - "keywords": ["memory", "persistent", "proactive", "hook"], - "category": "productivity" - } - ] -} diff --git a/.cursor/rules/engram-continuity.mdc b/.cursor/rules/engram-continuity.mdc deleted file mode 100644 index 22f46e1..0000000 --- a/.cursor/rules/engram-continuity.mdc +++ /dev/null @@ -1,12 +0,0 @@ ---- -description: "Use Engram handoff tools automatically for continuity" -alwaysApply: true ---- - -When an Engram MCP server is available: - -1) At the start of a new task/thread, call `get_last_session` first. - Do not pass `agent_id` unless the user explicitly asks for a specific source agent. -2) Use the returned handoff context to continue work naturally. -3) Before pausing or ending, call `save_session_digest`. -4) Do not use shell/SQLite probing for continuity when MCP handoff tools exist. diff --git a/.gitignore b/.gitignore index 6ac7bbb..f071171 100644 --- a/.gitignore +++ b/.gitignore @@ -122,5 +122,73 @@ pip-delete-this-directory.txt # Node (dashboard) node_modules/ -# Rust build artifacts (engram-accel) +# Rust build artifacts (dhee-accel) target/ + +# ============================================================ +# Excluded from public repo — internal/experimental only +# ============================================================ + +# Experimental engram sub-packages +engram-bridge/ +engram-bus/ +engram-enterprise/ +engram-failure/ +engram-heartbeat/ +engram-identity/ +engram-metamemory/ +engram-policy/ +engram-procedural/ +engram-prospective/ +engram-reconsolidation/ +engram-resilience/ +engram-router/ +engram-spawn/ +engram-warroom/ +engram-working/ + +# Internal apps +dashboard/ +landing/ + +# Models & training artifacts (large binaries) +models/ +notebooks/ +kaggle_upload/ + +# Benchmark runs & datasets +runs/ +data/ + +# Internal scripts & docs +scripts/ +deep-research-report.md +launch-article.md +pitch-deck.md +start-bridge.sh + +# Agent-specific config (not needed publicly) +CLAUDE.md +CURSOR.md +.claude-plugin/ +.cursor/ + +# Root-level node (dashboard/landing dependencies) +/package.json +/package-lock.json + +# Root-level ad-hoc test files +/test_*.py + +# Temp caches +.pycache_tmp/ + +# Extra venvs +.venv-dhee/ + +# Internal benchmark docs in docs/ (keep only the logo) +docs/engram_benchmark_blind_sota_program.md +docs/longmemeval_active_memory_orchestration_plan_2026-02-23.md +docs/capture_screenshots.py +docs/screenshots/ +docs/pdf/ diff --git a/AGENTS.md b/AGENTS.md index 94d913e..d7f12cc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,17 +1,17 @@ # Repository Guidelines ## Project Structure & Module Organization -- `engram/` is the main package. Core logic lives in `engram/core/` (decay, echo, fusion, conflict), while the user-facing API and orchestration live in `engram/memory/`. -- Integrations are split by concern: `engram/llms/` (Gemini/OpenAI mocks), `engram/embeddings/`, `engram/vector_stores/`, and `engram/db/`. -- Configuration and utilities live in `engram/configs/` and `engram/utils/`. -- Entry points/examples: `engram/mcp_server.py` (MCP server) and `engram/example_agent.py`. -- Tests are simple pytest files in the repo root and package, e.g. `test_echomem.py`, `engram/test_quick.py`, `engram/test_no_api.py`. +- `dhee/` is the main package. Core logic lives in `dhee/core/` (decay, echo, fusion, conflict), while the user-facing API and orchestration live in `dhee/memory/`. +- Integrations are split by concern: `dhee/llms/` (Gemini/OpenAI mocks), `dhee/embeddings/`, `dhee/vector_stores/`, and `dhee/db/`. +- Configuration and utilities live in `dhee/configs/` and `dhee/utils/`. +- Entry points/examples: `dhee/mcp_server.py` (MCP server) and `dhee/example_agent.py`. +- Tests are simple pytest files in the repo root and package, e.g. `test_echomem.py`, `dhee/test_quick.py`, `dhee/test_no_api.py`. ## Build, Test, and Development Commands - `pip install -e ".[dev]"` installs dev extras (pytest, pytest-asyncio). - `pip install -e ".[gemini,qdrant]"` installs optional runtime dependencies for Gemini + Qdrant. - `pytest` runs all tests discovered under `test_*.py`. -- `python -m engram.mcp_server` or `engram-mcp` runs the MCP server entry point. +- `python -m dhee.mcp_server` or `engram-mcp` runs the MCP server entry point. ## Coding Style & Naming Conventions - Python 3.9+ codebase; follow PEP 8 with 4-space indentation. @@ -20,7 +20,7 @@ ## Testing Guidelines - Test framework: `pytest` with `pytest-asyncio` for async cases. -- Name new tests `test_*.py` and place them in the repo root or within `engram/` alongside related modules. +- Name new tests `test_*.py` and place them in the repo root or within `dhee/` alongside related modules. - Keep tests isolated from external services unless explicitly marked or documented. ## Commit & Pull Request Guidelines diff --git a/CLAUDE.md b/CLAUDE.md deleted file mode 100644 index 2610b23..0000000 --- a/CLAUDE.md +++ /dev/null @@ -1,28 +0,0 @@ - -## Engram Continuity (Auto-Generated) - -Follow these rules for cross-agent continuity on every new task/thread. - -1) Before answering substantive repo/task questions, call `get_last_session`: -- `user_id`: `"default"` unless provided -- `requester_agent_id`: `"claude-code"` -- `repo`: absolute workspace path -- Include `agent_id` only when the user explicitly asks to continue from a specific source agent. - -2) If no handoff session exists, continue normally and use memory tools as needed. - -3) On major milestones and before pausing/ending, call `save_session_digest` with: -- `task_summary` -- `repo` -- `status` (`"active"`, `"paused"`, or `"completed"`) -- `decisions_made`, `files_touched`, `todos_remaining` -- `blockers`, `key_commands`, `test_results` when available -- `agent_id`: `"claude-code"`, `requester_agent_id`: `"claude-code"` - -4) Prefer Engram MCP handoff tools over shell/SQLite inspection for continuity. - -Target agent profile: `Claude Code`. - - - - diff --git a/CURSOR.md b/CURSOR.md deleted file mode 100644 index c36523a..0000000 --- a/CURSOR.md +++ /dev/null @@ -1,28 +0,0 @@ - -## Engram Continuity (Auto-Generated) - -Follow these rules for cross-agent continuity on every new task/thread. - -1) Before answering substantive repo/task questions, call `get_last_session`: -- `user_id`: `"default"` unless provided -- `requester_agent_id`: `"cursor"` -- `repo`: absolute workspace path -- Include `agent_id` only when the user explicitly asks to continue from a specific source agent. - -2) If no handoff session exists, continue normally and use memory tools as needed. - -3) On major milestones and before pausing/ending, call `save_session_digest` with: -- `task_summary` -- `repo` -- `status` (`"active"`, `"paused"`, or `"completed"`) -- `decisions_made`, `files_touched`, `todos_remaining` -- `blockers`, `key_commands`, `test_results` when available -- `agent_id`: `"cursor"`, `requester_agent_id`: `"cursor"` - -4) Prefer Engram MCP handoff tools over shell/SQLite inspection for continuity. - -Target agent profile: `Cursor`. - - - - diff --git a/Dockerfile b/Dockerfile index 2dc31b9..09557ab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,29 @@ FROM python:3.11-slim + WORKDIR /app + +# Copy project files COPY pyproject.toml README.md ./ -COPY engram/ engram/ -RUN pip install --no-cache-dir ".[api]" -EXPOSE 8100 -ENV ENGRAM_DATA_DIR=/data +COPY dhee/ ./dhee/ +COPY dhee/ ./dhee/ + +# Install package — slim by default (no llama.cpp, no local models) +# Use: docker build --build-arg EXTRAS="openai,mcp" . +ARG EXTRAS="openai,mcp" +RUN pip install --no-cache-dir -e ".[$EXTRAS]" + +# Create data directory +RUN mkdir -p /data/dhee + +# Environment +ENV DHEE_DATA_DIR=/data/dhee +ENV PYTHONUNBUFFERED=1 + +# Health check +HEALTHCHECK --interval=30s --timeout=10s --retries=3 \ + CMD python -c "from dhee.core.buddhi import Buddhi; Buddhi(); print('ok')" || exit 1 + VOLUME /data -CMD ["engram-api", "--host", "0.0.0.0", "--port", "8100"] + +# Default: MCP server (4 tools) +CMD ["dhee-mcp"] diff --git a/README.md b/README.md index d859df0..6fac37a 100644 --- a/README.md +++ b/README.md @@ -1,401 +1,251 @@ -

-
- Engram -
- Engram -
-

- -

- The Personal Memory Kernel for AI Agents -

-

- Hit a rate limit in Claude Code? Open Codex — it already knows what you were doing.
- Create a task? Memory picks the best agent automatically.
- One memory kernel. Shared across every agent. Bio-inspired forgetting. Zero cold starts. + Dhee

-

- Python 3.9+ - MIT License - Tests - GitHub Stars -

+

Dhee

-

- Quick Start · - Why Engram · - How It Works · - Packages · - Changelog · - Docs -

- ---- - -### Dashboard +

The cognition layer that turns your agent into a HyperAgent.

- Engram Dashboard Demo -
- Kanban board, memory inspector, agent coordination, and chat. + 4 tools. 1 LLM call per session. ~$0.004 total cost.
+ Your agent remembers, learns from outcomes, and predicts what you need next.

-
-Individual views -

- Kanban Board -
- Kanban board — drag-and-drop task management across statuses + Python 3.9+ + MIT License

-

- Agent Coordination -
- Agents tab — memory-based orchestration with semantic routing and capability matching -

+--- -

- Memory Browser -
- Memory browser — search, inspect, and manage the shared memory store -

+## What is Dhee? -

- Chat Interface -
- Chat — describe a task and the agent creates it on the board, or just chat -

+Most memory layers are glorified vector stores. Store text, retrieve text. Your agent is still stateless — it doesn't learn, doesn't track what worked, doesn't warn you when something is regressing. -
+**Dhee is a cognition layer.** It gives any agent — Claude, GPT, Gemini, custom — four capabilities that turn it into a self-improving HyperAgent: ---- +| Capability | What Dhee does | What your agent gets | +|:-----------|:---------------|:---------------------| +| **Persistent memory** | Stores facts with echo-augmented retrieval (paraphrases, keywords, question-forms) | "What theme does the user prefer?" matches "User likes dark mode" even though the words are different | +| **Performance tracking** | Records task outcomes, detects trends automatically | Knows it's regressing on code reviews, warns you before you notice | +| **Insight synthesis** | Extracts causal hypotheses from outcomes — not raw data, synthesized learnings | "What worked: checking git blame first" transfers to the next bug fix | +| **Prospective memory** | Stores future triggers — "remember to X when Y" | Surfaces intentions when the trigger context matches | -### Research Highlights +### Benchmark: LongMemEval -

- ~45% less storage   |   +26% retrieval accuracy   |   +12% multi-hop reasoning -

+Dhee achieves near-perfect retrieval on [LongMemEval](https://arxiv.org/abs/2410.10813), the standard benchmark for long-term conversational memory — temporal reasoning, multi-session aggregation, knowledge updates, and counterfactual tracking across 500+ questions. -

- Based on FadeMem (arXiv:2601.18642) — biologically-inspired forgetting for efficient agent memory. -

+> Evaluation run in progress. Full results and methodology will be published in the benchmark report. --- ## Quick Start ```bash -pip install engram-memory # 1. Install -export GEMINI_API_KEY="your-key" # 2. Set one key (or OPENAI_API_KEY, NVIDIA_API_KEY) -engram install # 3. Auto-configure Claude Code, Cursor, Codex +pip install dhee[openai,mcp] +export OPENAI_API_KEY=sk-... ``` -Restart your agent. Done — it now has persistent memory across sessions and agents. - -**Want the dashboard + orchestration?** +### MCP (Claude Code, Cursor — zero code) -```bash -pip install -e "./engram-orchestrator" -pip install -e "./engram-bridge[web,orchestrator]" -engram-bridge --channel web # Open http://127.0.0.1:8200 +```json +{ + "mcpServers": { + "dhee": { "command": "dhee-mcp" } + } +} ``` ---- - -## Why Engram - -Every AI agent you use starts with amnesia. But the real pain isn't just forgetting — it's what happens when you **switch agents** and when you have to **decide which agent to use**. +Your agent now has 4 tools. It will use them automatically. -### The cold-start problem +### Python SDK -You're 40 minutes into a refactor with Claude Code. You've touched six files, picked a migration strategy, mapped out the remaining TODOs. Then you hit a rate limit. Or your terminal crashes. Or you just need Codex for the next part. So you switch — and the new agent has **zero context**. You re-paste file paths, re-explain decisions, re-describe the plan. Half the time the new agent contradicts something you'd already decided. - -### The routing problem +```python +from dhee import Dhee -You have three agents configured: Claude Code for deep reasoning, Codex for fast scaffolding, a custom agent for CI. A bug comes in. Which agent handles it? You pick manually every time. When agents finish, the next task sits idle until you notice. You are the orchestrator — and you shouldn't have to be. +d = Dhee() +d.remember("User prefers dark mode") +d.recall("what theme does the user like?") +d.context("fixing auth bug") +d.checkpoint("Fixed it", what_worked="git blame first") +``` -**Engram fixes both.** It's a Personal Memory Kernel — one memory store shared across all your agents. +### CLI -**For handoffs**: when Claude Code pauses, it saves a session digest. When Codex picks up, it loads that digest and continues where you left off. No re-explanation. No cold starts. +```bash +dhee remember "User prefers Python" +dhee recall "programming language" +dhee checkpoint "Fixed auth bug" --what-worked "checked logs" +``` -**For orchestration**: agents register their capabilities as memories. When a task arrives, Engram semantically matches it against agent capabilities and auto-routes it to the best available agent. Memory *is* the orchestrator — no separate routing service, no manual assignment, no YAML configs mapping tasks to agents. +### Docker -| Problem | Typical approach | Engram | -|:--------|:-----------------|:-------| -| **Switch agents = cold start** | Manual copy-paste | Handoff bus — auto session digests + resume | -| **Who handles this task?** | You pick manually | Semantic capability matching — auto-route | -| **Agent at capacity?** | Task sits idle | Load-aware routing with CAS claim/release | -| **Nobody forgets** | Store everything forever | Ebbinghaus decay — ~45% less storage | -| **Single retrieval path** | One embedding per memory | 5 retrieval paths per memory (EchoMem) | -| **No episodic memory** | Vector search only | CAST scenes — time/place/topic clustering | -| **No consolidation** | Store everything as-is | CLS sleep cycles — episodic to semantic distillation | -| **No real-time coordination** | Polling or nothing | Active memory signal bus — agents see each other instantly | -| **Agents don't learn** | Retrain or nothing | Skill-policy memory — agents accumulate reusable skills | -| **Concurrent access** | Single-process locks | zvec HNSW — multiple agents, directory-based collections | +```bash +docker compose up -d # uses OPENAI_API_KEY from env +``` --- -## How It Works +## The 4 Tools -Engram has three layers — memory, coordination, and communication: +Every interface — MCP, Python, CLI, JS — exposes the same 4 operations. -### Passive Memory — the long-term store +### `remember(content)` +Store a fact, preference, or observation. -Memories fade via Ebbinghaus decay, get promoted from short-term to long-term through repeated access, and are encoded through multiple retrieval paths (paraphrase, keywords, implications, question-form). Sleep cycles distill episodic conversations into durable semantic facts. +**Hot path**: 0 LLM calls, 1 embedding (~$0.0002). The memory is stored immediately. Echo enrichment (paraphrases, keywords, question-forms that make future recall dramatically better) is deferred to `checkpoint`. -### Active Memory — the real-time signal bus - -Agents post ephemeral state ("editing auth.py", "build failing") that other agents see instantly. Signals auto-expire. Important ones get consolidated into long-term storage. - -### Memory-as-Orchestrator — the coordination layer - -Agent capabilities are stored as memories: *"claude-code: Advanced coding agent. Expert at Python, TypeScript, debugging."* When a task arrives, Engram runs a semantic search over these capability memories, filters by agent availability and capacity, scores candidates, and assigns the task — all through the same memory infrastructure used for everything else. Coordination events (routed, claimed, released) are themselves stored as memories, creating a searchable audit trail. +```python +d.remember("User prefers FastAPI over Flask") +d.remember("Project uses PostgreSQL 15 with pgvector") +``` -No new database tables. No separate routing service. The same `Memory.add()` / `Memory.search()` that stores user conversations also stores agent profiles and routes tasks. +### `recall(query)` +Search memory. Returns top-K results ranked by relevance. -### Skill Memory — the self-improvement loop +**Hot path**: 0 LLM calls, 1 embedding (~$0.0002). Pure vector search with echo-boosted re-ranking. -Agents learn from experience. When an agent completes a task, Engram records the trajectory (actions, tools, results). Successful trajectories accumulate. The Skill Miner analyzes clusters of similar trajectories and extracts reusable **skills** — validated procedures stored as SKILL.md files with YAML frontmatter. +```python +results = d.recall("what database does the project use?") +# [{"memory": "Project uses PostgreSQL 15 with pgvector", "score": 0.94}] +``` -Skills have confidence scores that update on success/failure (Bayesian, asymmetric — failures penalize more). High-confidence skills are automatically suggested when matching tasks arrive. The loop: +### `context(task_description)` +HyperAgent session bootstrap. Call once at the start of a conversation. -``` -Agent works → Trajectory recorded → Miner extracts patterns → Skills stored - ↑ | - └── Agent applies skill → Outcome logged → Confidence updated ──┘ -``` +Returns everything the agent needs to be effective immediately: +- **Last session state** — pick up where you left off, zero cold start +- **Performance trends** — improving or regressing on this task type +- **Synthesized insights** — "What worked for bug_fix: checking git blame first" +- **Triggered intentions** — "Remember to run auth tests after modifying login.py" +- **Proactive warnings** — "Performance on code_review is declining" +- **Relevant memories** — top matches for the task ```python -from engram import SmartMemory - -m = SmartMemory(preset="smart") +ctx = d.context("fixing the auth bug in login.py") +# ctx["warnings"] → ["Performance on 'bug_fix' declining (trend: -0.05)"] +# ctx["insights"] → [{"content": "What worked: git blame → found breaking commit"}] +# ctx["intentions"] → [{"description": "run auth tests after login.py changes"}] +``` -# Search for relevant skills -skills = m.search_skills("fix python import error") +### `checkpoint(summary, ...)` +Save session state before ending. This is where the cognition happens: -# Apply a skill — returns injectable recipe -result = m.apply_skill(skill_id) +1. **Session digest** — saved for cross-agent handoff (Claude Code crashes? Cursor picks up instantly) +2. **Batch enrichment** — 1 LLM call per ~10 memories stored since last checkpoint. Adds echo paraphrases and keywords that make `recall` work across phrasings +3. **Outcome recording** — tracks score per task type, auto-detects regressions and breakthroughs +4. **Insight synthesis** — "what worked" and "what failed" become transferable learnings +5. **Intention storage** — "remember to X when Y" fires when the trigger matches -# Report outcome — updates confidence -m.log_skill_outcome(skill_id, success=True) +```python +d.checkpoint( + "Fixed auth bug in login.py", + task_type="bug_fix", + outcome_score=1.0, + what_worked="git blame showed the exact commit that broke auth", + what_failed="grep was too slow on the monorepo", + remember_to="run auth tests after any login.py change", + trigger_keywords=["login", "auth"], +) ``` -Skills are discovered from `~/.engram/skills/` and `{repo}/.engram/skills/`. Six MCP tools: `search_skills`, `apply_skill`, `log_skill_outcome`, `record_trajectory_step`, `mine_skills`, `get_skill_stats`. - -### Handoff - -When an agent pauses (rate limit, crash, tool switch), it saves a session digest: task summary, decisions made, files touched, TODOs remaining. The next agent loads it and continues. If no digest was saved, Engram falls back to parsing the conversation logs automatically. +--- -
-The memory stack at a glance +## Cost -| Layer | What it does | -|:------|:-------------| -| **FadeMem** | Ebbinghaus-curve decay, SML/LML dual layers, promotion on access | -| **EchoMem** | 5 retrieval paths per memory (paraphrase, keywords, implications, Q-form) | -| **CategoryMem** | Auto-discovered hierarchical categories with retrieval boosting | -| **CAST Scenes** | Episodic narrative memory — time, place, topic clustering | -| **CLS Distillation** | Sleep-cycle replay: episodic to semantic fact extraction | -| **Multi-trace** | Benna-Fusi model — fast/mid/slow decay traces per memory | -| **Intent routing** | Episodic vs semantic query classification | -| **Skill Memory** | SKILL.md files — discover, apply, and mine reusable agent skills | -| **Skill Miner** | Trajectory recording → pattern extraction → skill compilation | -| **Orchestrator** | Agent registry + semantic task routing + CAS claim/release | -| **Handoff bus** | Session digests, checkpoints, JSONL log fallback | -| **Active Memory** | Real-time signal bus with TTL tiers | -
+| Operation | LLM calls | Embed calls | Cost | +|:----------|:----------|:------------|:-----| +| `remember` | 0 | 1 | ~$0.0002 | +| `recall` | 0 | 1 | ~$0.0002 | +| `context` | 0 | 0-1 | ~$0.0002 | +| `checkpoint` | 1 per ~10 memories | 0 | ~$0.001 | +| **Typical session** | **1** | **~15** | **~$0.004** | --- -## Packages +## How It Works (Under the Hood) -Engram is five pip-installable packages: +Dhee has two layers: the memory store and the cognition engine. -``` -engram-memory ← engram-bus ← engram-orchestrator ← engram-bridge ← engram-enterprise - (core) (comms) (routing) (dashboard) (governance) -``` +### Memory Store — Engram -### [`engram-memory`](./engram/) — Core Memory Engine +Stores memories in SQLite + a vector index. On the hot path (`remember`/`recall`), zero LLM calls — just embedding. At `checkpoint`, unified enrichment runs in a single batched LLM call: -The main package. Memory CRUD, semantic search, decay, echo encoding, categories, episodic scenes, MCP server, CLI. +- **Echo encoding** — generates paraphrases, keywords, and question-forms so "User prefers dark mode" also matches queries like "what theme?" or "UI preferences" +- **Category inference** — auto-tags for filtering +- **Fact decomposition** — splits compound statements into atomic, searchable facts +- **Entity + profile extraction** — builds a knowledge graph of people, tools, projects -```bash -pip install engram-memory -pip install "engram-memory[openai]" # OpenAI provider -pip install "engram-memory[ollama]" # Ollama (local, no key needed) -pip install "engram-memory[all]" # everything -``` +All of this happens in **1 LLM call per ~10 memories**. Not 4 calls per memory. One batched call. -```python -from engram import Engram +Memory decays naturally (Ebbinghaus curve). Frequently accessed memories get promoted from short-term to long-term. Unused ones fade. ~45% less storage than systems that keep everything forever. -memory = Engram() -memory.add("User prefers Python over TypeScript", user_id="u1") -results = memory.search("programming preferences", user_id="u1") -``` +### Cognition Engine — Buddhi -**14 MCP tools** — memory CRUD, semantic search, session handoff, skill search/apply/mine, trajectory recording. One command configures Claude Code, Cursor, and Codex: +A parallel intelligence layer that observes the memory pipeline and builds meta-knowledge: -```bash -engram install -``` +- **Performance tracking** — records outcomes per task type, computes trends (moving average). Auto-generates regression warnings and breakthrough insights. +- **Insight synthesis** — stores causal hypotheses ("what worked", "what failed"), not raw data. Insights have confidence scores that update on validation/invalidation. +- **Prospective memory** — stores future triggers with keyword matching. "Remember to run tests after modifying auth" fires when the next query mentions "auth". +- **Intention detection** — auto-detects "remember to X when Y" patterns in stored memories. -### [`engram-bus`](./engram-bus/) — Agent Communication Bus +Zero LLM calls on the hot path. Pure pattern matching + statistics. Persistence via JSONL files (~3 files total). -Real-time agent-to-agent coordination. Key/value with TTL, pub/sub messaging, handoff sessions and checkpoints. Zero external dependencies — stdlib only. +Inspired by [Meta's DGM-Hyperagents](https://arxiv.org/abs/2603.19461) — agents that emergently develop persistent memory and performance tracking achieve self-accelerating improvement that transfers across domains. Dhee provides these capabilities as infrastructure. -```bash -pip install engram-bus -``` +--- -```python -from engram_bus import Bus +## Architecture -bus = Bus() -bus.put("status", "refactoring auth", agent="planner", ttl=300) -bus.publish("progress", {"step": 3, "total": 5}, agent="worker") ``` - -[Full documentation →](./engram-bus/README.md) - -### [`engram-orchestrator`](./engram-orchestrator/) — Memory-as-Orchestrator - -Agents register capabilities as memories. Tasks auto-route to the best agent via semantic search. No new DB tables — everything is a memory. - -```bash -pip install -e "./engram-orchestrator" +Agent (Claude, GPT, Cursor, custom) + │ + ├── remember(content) → Engram: embed + store (0 LLM) + ├── recall(query) → Engram: embed + vector search (0 LLM) + ├── context(task) → Buddhi: performance + insights + intentions + memories + └── checkpoint(summary) → Engram: batch enrich (1 LLM/10 mems) + → Buddhi: outcome + reflect + intention ``` -```python -from engram_orchestrator import Coordinator, AgentRegistry -from engram.memory.main import Memory -from engram_bus import Bus - -memory = Memory(config=...) -bus = Bus() -coordinator = Coordinator(memory, bus, config) - -# Agents register capabilities — stored as searchable memories -coordinator.registry.register( - "claude-code", - capabilities=["python", "typescript", "debugging", "code-review"], - description="Advanced coding agent for deep reasoning tasks", - agent_type="claude", model="claude-opus-4-6", -) - -# Tasks auto-route via semantic matching -coordinator.start() # subscribes to bridge.task.created bus events - -# Or route manually -coordinator.router.route(task_id) # single task -coordinator.router.route_pending() # batch all unassigned - -# Agents claim tasks atomically (CAS) -coordinator.claim(task_id, "claude-code") # returns None if already claimed -coordinator.release(task_id, "claude-code") ``` - -Three classes, one idea: - -| Class | Purpose | -|:------|:--------| -| **AgentRegistry** | Store/query agent capability profiles as `memory_type="agent"` memories | -| **TaskRouter** | Build query from task → semantic search → filter by availability → score → assign | -| **Coordinator** | Ties registry + router + bus events. CAS claim/release. Event logging as memories | - -### [`engram-bridge`](./engram-bridge/) — Dashboard + Channel Adapters - -Talk to your coding agents from a browser or Telegram. Kanban board, task management, live WebSocket streaming, and the coordination dashboard. - -```bash -pip install -e "./engram-bridge[web,orchestrator]" -engram-bridge --channel web +~/.dhee/ +├── history.db # SQLite: memories, history, entities +├── zvec/ # Vector index (embeddings) +└── buddhi/ + ├── insights.jsonl # Synthesized learnings + ├── intentions.jsonl # Future triggers + └── performance.json # Task type scores + trends ``` -The web dashboard at `http://127.0.0.1:8200` includes: - -- **Board** — Kanban with drag-and-drop, projects, statuses, tags -- **Agents** — Coordination dashboard: agent registry, semantic routing, event log -- **Memory** — Browse and search the memory store -- **Chat** — Direct agent interaction with live streaming - -> See [screenshots above](#dashboard) for a visual tour. - -7 coordination REST endpoints under `/api/coordination/`: - -| Endpoint | Description | -|:---------|:------------| -| `GET /agents` | List agents with capabilities + status | -| `POST /agents/{name}/register` | Register/update capabilities | -| `GET /agents/match?q=...` | Semantic capability search | -| `POST /route/{task_id}` | Route task to best agent | -| `POST /route-pending` | Batch-route all unassigned | -| `POST /claim/{task_id}` | Atomic CAS claim | -| `GET /events` | Coordination event log | +--- -[Full documentation →](./engram-bridge/README.md) +## Advanced -### [`engram-enterprise`](./engram-enterprise/) — Governance Layer +### Full MCP Server (24 tools) -Policy enforcement, provenance tracking, acceptance gates, async operations, and authenticated REST API. Built on top of engram-memory and engram-bus. +Power users who need granular control over skills, trajectories, structural search, and enrichment: ```bash -pip install engram-enterprise +dhee-mcp-full # exposes all 24 tools ``` +### Python — Direct Memory Access + ```python -from engram_enterprise import PersonalMemoryKernel +from dhee import FullMemory -kernel = PersonalMemoryKernel() +m = FullMemory() +m.add("conversation content", user_id="u1", infer=True) +m.search("query", user_id="u1", limit=10) +m.think("complex question requiring reasoning across memories") ``` -[Full documentation →](./engram-enterprise/README.md) - ---- - -## Integrations +### Provider Options ```bash -engram install # auto-configures everything -``` - -One command sets up MCP config for Claude Code, Cursor, and Codex. It also deploys the **Claude Code plugin** — a hook that proactively injects relevant memories before every prompt, plus periodic background checkpoints that survive rate limits. - -Works with any tool-calling agent via REST: `engram-api` starts a server at `http://127.0.0.1:8100`. - ---- - -## Repo Structure - -``` -├── engram/ # engram-memory — core Python package -│ ├── core/ # decay, echo, category, scenes, distillation, traces -│ ├── memory/ # CoreMemory → SmartMemory → FullMemory -│ ├── skills/ # skill schema, store, discovery, executor, miner, trajectories -│ ├── llms/ # LLM providers (gemini, openai, nvidia, ollama) -│ ├── embeddings/ # embedding providers -│ ├── vector_stores/ # zvec, sqlite-vec, in-memory -│ ├── db/ # SQLite persistence -│ ├── api/ # REST API endpoints -│ ├── mcp_server.py # MCP server (14 tools) -│ └── cli.py # CLI interface -├── engram-bus/ # engram-bus — agent communication -│ └── engram_bus/ # bus, pub/sub, handoff store, TCP server -├── engram-orchestrator/ # engram-orchestrator — memory-as-orchestrator -│ └── engram_orchestrator/ # registry, router, coordinator -├── engram-bridge/ # engram-bridge — dashboard + channel adapters -│ └── engram_bridge/ # bridge, channels (web + telegram), coordination shim -│ └── channels/web-ui/ # React dashboard (Vite + shadcn/ui) -├── engram-enterprise/ # engram-enterprise — governance layer -│ └── engram_enterprise/ # kernel, policy, provenance, async, API + auth -├── plugins/ # Claude Code plugin (hooks, commands, skill) -├── tests/ # Test suite (300+ tests) -├── pyproject.toml # engram-memory package config -└── install.sh # One-line installer +pip install dhee[openai,mcp] # OpenAI (recommended, cheapest embeddings) +pip install dhee[gemini,mcp] # Google Gemini +pip install dhee[ollama,mcp] # Ollama (local, zero cost) ``` --- @@ -403,42 +253,20 @@ Works with any tool-calling agent via REST: `engram-api` starts a server at `htt ## Contributing ```bash -git clone https://github.com/Ashish-dwi99/Engram.git -cd Engram - -# Core +git clone https://github.com/Sankhya-AI/Dhee.git +cd Dhee pip install -e ".[dev]" pytest - -# Bus -pip install -e "./engram-bus[dev]" -cd engram-bus && pytest - -# Orchestrator -pip install -e "./engram-orchestrator" - -# Bridge (web dashboard) -pip install -e "./engram-bridge[web,orchestrator]" -cd engram-bridge/engram_bridge/channels/web-ui && npm install && npm run build - -# Enterprise -pip install -e "./engram-enterprise[dev]" -cd engram-enterprise && pytest ``` --- -## License - -MIT — see [LICENSE](LICENSE). - ---- -

- One memory. Every agent. Zero cold starts. Automatic routing. + 4 tools. 1 LLM call. Your agent remembers, learns, and predicts.

- GitHub · - Issues · - Changelog · - Docs + GitHub · + PyPI · + Issues

+ +

MIT License — Sankhya AI

diff --git a/dashboard/.gitignore b/dashboard/.gitignore deleted file mode 100644 index 3b6f9c8..0000000 --- a/dashboard/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -# dependencies -/node_modules -/.pnp -.pnp.* -.yarn/* -!.yarn/patches -!.yarn/plugins -!.yarn/releases -!.yarn/versions - -# testing -/coverage - -# next.js -/.next/ -/out/ - -# production -/build - -# misc -.DS_Store -*.pem - -# debug -npm-debug.log* -yarn-debug.log* -yarn-error.log* -.pnpm-debug.log* - -# env files -.env -.env.local -.env.development.local -.env.test.local -.env.production.local - -# vercel -.vercel - -# typescript -*.tsbuildinfo -next-env.d.ts diff --git a/dashboard/README.md b/dashboard/README.md deleted file mode 100644 index e215bc4..0000000 --- a/dashboard/README.md +++ /dev/null @@ -1,36 +0,0 @@ -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). - -## Getting Started - -First, run the development server: - -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev -``` - -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. - -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. - -## Learn More - -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. - -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! - -## Deploy on Vercel - -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. - -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. diff --git a/dashboard/eslint.config.mjs b/dashboard/eslint.config.mjs deleted file mode 100644 index 05e726d..0000000 --- a/dashboard/eslint.config.mjs +++ /dev/null @@ -1,18 +0,0 @@ -import { defineConfig, globalIgnores } from "eslint/config"; -import nextVitals from "eslint-config-next/core-web-vitals"; -import nextTs from "eslint-config-next/typescript"; - -const eslintConfig = defineConfig([ - ...nextVitals, - ...nextTs, - // Override default ignores of eslint-config-next. - globalIgnores([ - // Default ignores of eslint-config-next: - ".next/**", - "out/**", - "build/**", - "next-env.d.ts", - ]), -]); - -export default eslintConfig; diff --git a/dashboard/next.config.ts b/dashboard/next.config.ts deleted file mode 100644 index 7fd0a3f..0000000 --- a/dashboard/next.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { NextConfig } from "next"; - -const nextConfig: NextConfig = { - transpilePackages: ["three"], -}; - -export default nextConfig; diff --git a/dashboard/package-lock.json b/dashboard/package-lock.json deleted file mode 100644 index 2617eab..0000000 --- a/dashboard/package-lock.json +++ /dev/null @@ -1,8898 +0,0 @@ -{ - "name": "dashboard", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "dashboard", - "version": "0.1.0", - "dependencies": { - "@radix-ui/react-accordion": "^1.2.12", - "@radix-ui/react-alert-dialog": "^1.1.15", - "@radix-ui/react-collapsible": "^1.1.12", - "@radix-ui/react-dialog": "^1.1.15", - "@radix-ui/react-select": "^2.2.6", - "@radix-ui/react-slider": "^1.3.6", - "@radix-ui/react-slot": "^1.2.4", - "@radix-ui/react-tabs": "^1.1.13", - "@radix-ui/react-tooltip": "^1.2.8", - "@react-three/drei": "^10.7.7", - "@react-three/fiber": "^9.5.0", - "@react-three/postprocessing": "^3.0.4", - "@types/three": "^0.182.0", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "d3-force": "^3.0.0", - "framer-motion": "^12.34.0", - "lucide-react": "^0.563.0", - "next": "16.1.6", - "pixi.js": "^8.16.0", - "react": "19.2.3", - "react-dom": "19.2.3", - "recharts": "^3.7.0", - "swr": "^2.4.0", - "tailwind-merge": "^3.4.0", - "three": "^0.172.0", - "zustand": "^5.0.11" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4", - "@types/d3-force": "^3.0.10", - "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", - "eslint": "^9", - "eslint-config-next": "16.1.6", - "tailwindcss": "^4", - "typescript": "^5" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-compilation-targets": "^7.28.6", - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helpers": "^7.28.6", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/traverse": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/remapping": "^2.3.5", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", - "@jridgewell/gen-mapping": "^0.3.12", - "@jridgewell/trace-mapping": "^0.3.28", - "jsesc": "^3.0.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.28.6", - "@babel/helper-validator-option": "^7.27.1", - "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.29.0" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.6.tgz", - "integrity": "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", - "debug": "^4.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@dimforge/rapier3d-compat": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@dimforge/rapier3d-compat/-/rapier3d-compat-0.12.0.tgz", - "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==", - "license": "Apache-2.0" - }, - "node_modules/@emnapi/core": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.8.1.tgz", - "integrity": "sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.1.0", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", - "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz", - "integrity": "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.2", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", - "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", - "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.7", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", - "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", - "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", - "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.1", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.2.tgz", - "integrity": "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", - "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", - "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.17.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@floating-ui/core": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz", - "integrity": "sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg==", - "license": "MIT", - "dependencies": { - "@floating-ui/utils": "^0.2.10" - } - }, - "node_modules/@floating-ui/dom": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz", - "integrity": "sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg==", - "license": "MIT", - "dependencies": { - "@floating-ui/core": "^1.7.4", - "@floating-ui/utils": "^0.2.10" - } - }, - "node_modules/@floating-ui/react-dom": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.7.tgz", - "integrity": "sha512-0tLRojf/1Go2JgEVm+3Frg9A3IW8bJgKgdO0BN5RkF//ufuz2joZM63Npau2ff3J6lUVYgDSNzNkR+aH3IVfjg==", - "license": "MIT", - "dependencies": { - "@floating-ui/dom": "^1.7.5" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, - "node_modules/@floating-ui/utils": { - "version": "0.2.10", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", - "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", - "license": "MIT" - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.7", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", - "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.4.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@img/colour": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", - "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", - "license": "MIT", - "optional": true, - "engines": { - "node": ">=18" - } - }, - "node_modules/@img/sharp-darwin-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", - "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-darwin-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", - "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-darwin-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-libvips-darwin-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", - "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-darwin-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", - "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "darwin" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", - "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", - "cpu": [ - "arm" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", - "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-ppc64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", - "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", - "cpu": [ - "ppc64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-riscv64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", - "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", - "cpu": [ - "riscv64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-s390x": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", - "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", - "cpu": [ - "s390x" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linux-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", - "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-arm64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", - "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", - "cpu": [ - "arm64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-libvips-linuxmusl-x64": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", - "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", - "cpu": [ - "x64" - ], - "license": "LGPL-3.0-or-later", - "optional": true, - "os": [ - "linux" - ], - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-linux-arm": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", - "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", - "cpu": [ - "arm" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", - "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-ppc64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", - "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", - "cpu": [ - "ppc64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-ppc64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-riscv64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", - "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", - "cpu": [ - "riscv64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-riscv64": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-s390x": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", - "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", - "cpu": [ - "s390x" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-s390x": "1.2.4" - } - }, - "node_modules/@img/sharp-linux-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", - "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linux-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", - "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" - } - }, - "node_modules/@img/sharp-linuxmusl-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", - "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-libvips-linuxmusl-x64": "1.2.4" - } - }, - "node_modules/@img/sharp-wasm32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", - "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", - "cpu": [ - "wasm32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", - "optional": true, - "dependencies": { - "@emnapi/runtime": "^1.7.0" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-arm64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", - "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", - "cpu": [ - "arm64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-ia32": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", - "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", - "cpu": [ - "ia32" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@img/sharp-win32-x64": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", - "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", - "cpu": [ - "x64" - ], - "license": "Apache-2.0 AND LGPL-3.0-or-later", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.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/@jridgewell/trace-mapping": { - "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@mediapipe/tasks-vision": { - "version": "0.10.17", - "resolved": "https://registry.npmjs.org/@mediapipe/tasks-vision/-/tasks-vision-0.10.17.tgz", - "integrity": "sha512-CZWV/q6TTe8ta61cZXjfnnHsfWIdFhms03M9T7Cnd5y2mdpylJM0rF1qRq+wsQVRMLz1OYPVEBU9ph2Bx8cxrg==", - "license": "Apache-2.0" - }, - "node_modules/@monogrid/gainmap-js": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@monogrid/gainmap-js/-/gainmap-js-3.4.0.tgz", - "integrity": "sha512-2Z0FATFHaoYJ8b+Y4y4Hgfn3FRFwuU5zRrk+9dFWp4uGAdHGqVEdP7HP+gLA3X469KXHmfupJaUbKo1b/aDKIg==", - "license": "MIT", - "dependencies": { - "promise-worker-transferable": "^1.0.4" - }, - "peerDependencies": { - "three": ">= 0.159.0" - } - }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" - } - }, - "node_modules/@next/env": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.1.6.tgz", - "integrity": "sha512-N1ySLuZjnAtN3kFnwhAwPvZah8RJxKasD7x1f8shFqhncnWZn4JMfg37diLNuoHsLAlrDfM3g4mawVdtAG8XLQ==", - "license": "MIT" - }, - "node_modules/@next/eslint-plugin-next": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.1.6.tgz", - "integrity": "sha512-/Qq3PTagA6+nYVfryAtQ7/9FEr/6YVyvOtl6rZnGsbReGLf0jZU6gkpr1FuChAQpvV46a78p4cmHOVP8mbfSMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-glob": "3.3.1" - } - }, - "node_modules/@next/swc-darwin-arm64": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.1.6.tgz", - "integrity": "sha512-wTzYulosJr/6nFnqGW7FrG3jfUUlEf8UjGA0/pyypJl42ExdVgC6xJgcXQ+V8QFn6niSG2Pb8+MIG1mZr2vczw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.1.6.tgz", - "integrity": "sha512-BLFPYPDO+MNJsiDWbeVzqvYd4NyuRrEYVB5k2N3JfWncuHAy2IVwMAOlVQDFjj+krkWzhY2apvmekMkfQR0CUQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.1.6.tgz", - "integrity": "sha512-OJYkCd5pj/QloBvoEcJ2XiMnlJkRv9idWA/j0ugSuA34gMT6f5b7vOiCQHVRpvStoZUknhl6/UxOXL4OwtdaBw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.1.6.tgz", - "integrity": "sha512-S4J2v+8tT3NIO9u2q+S0G5KdvNDjXfAv06OhfOzNDaBn5rw84DGXWndOEB7d5/x852A20sW1M56vhC/tRVbccQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.1.6.tgz", - "integrity": "sha512-2eEBDkFlMMNQnkTyPBhQOAyn2qMxyG2eE7GPH2WIDGEpEILcBPI/jdSv4t6xupSP+ot/jkfrCShLAa7+ZUPcJQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.1.6.tgz", - "integrity": "sha512-oicJwRlyOoZXVlxmIMaTq7f8pN9QNbdes0q2FXfRsPhfCi8n8JmOZJm5oo1pwDaFbnnD421rVU409M3evFbIqg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.1.6.tgz", - "integrity": "sha512-gQmm8izDTPgs+DCWH22kcDmuUp7NyiJgEl18bcr8irXA5N2m2O+JQIr6f3ct42GOs9c0h8QF3L5SzIxcYAAXXw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.1.6.tgz", - "integrity": "sha512-NRfO39AIrzBnixKbjuo2YiYhB6o9d8v/ymU9m/Xk8cyVk+k7XylniXkHwjs4s70wedVffc6bQNbufk5v0xEm0A==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nolyfill/is-core-module": { - "version": "1.0.39", - "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", - "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.4.0" - } - }, - "node_modules/@pixi/colord": { - "version": "2.9.6", - "resolved": "https://registry.npmjs.org/@pixi/colord/-/colord-2.9.6.tgz", - "integrity": "sha512-nezytU2pw587fQstUu1AsJZDVEynjskwOL+kibwcdxsMBFqPsFFNA7xl0ii/gXuDi6M0xj3mfRJj8pBSc2jCfA==", - "license": "MIT" - }, - "node_modules/@radix-ui/number": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.1.tgz", - "integrity": "sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==", - "license": "MIT" - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.3.tgz", - "integrity": "sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==", - "license": "MIT" - }, - "node_modules/@radix-ui/react-accordion": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-accordion/-/react-accordion-1.2.12.tgz", - "integrity": "sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collapsible": "1.1.12", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-alert-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-alert-dialog/-/react-alert-dialog-1.1.15.tgz", - "integrity": "sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dialog": "1.1.15", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-alert-dialog/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.7.tgz", - "integrity": "sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collapsible": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collapsible/-/react-collapsible-1.1.12.tgz", - "integrity": "sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.7.tgz", - "integrity": "sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.2.tgz", - "integrity": "sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-context": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.2.tgz", - "integrity": "sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.15.tgz", - "integrity": "sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dialog/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-direction": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.1.tgz", - "integrity": "sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.11.tgz", - "integrity": "sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-escape-keydown": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-guards": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.3.tgz", - "integrity": "sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.7.tgz", - "integrity": "sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-id": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.1.tgz", - "integrity": "sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-popper": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.8.tgz", - "integrity": "sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==", - "license": "MIT", - "dependencies": { - "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-rect": "1.1.1", - "@radix-ui/react-use-size": "1.1.1", - "@radix-ui/rect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-portal": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.9.tgz", - "integrity": "sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-presence": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.5.tgz", - "integrity": "sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.3.tgz", - "integrity": "sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-slot": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-primitive/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.11.tgz", - "integrity": "sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.2.6.tgz", - "integrity": "sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-focus-guards": "1.1.3", - "@radix-ui/react-focus-scope": "1.1.7", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-callback-ref": "1.1.1", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-visually-hidden": "1.2.3", - "aria-hidden": "^1.2.4", - "react-remove-scroll": "^2.6.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-select/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slider": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slider/-/react-slider-1.3.6.tgz", - "integrity": "sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==", - "license": "MIT", - "dependencies": { - "@radix-ui/number": "1.1.1", - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-collection": "1.1.7", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-use-layout-effect": "1.1.1", - "@radix-ui/react-use-previous": "1.1.1", - "@radix-ui/react-use-size": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-slot": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", - "integrity": "sha512-Jl+bCv8HxKnlTLVrcDE8zTMJ09R9/ukw4qBs/oZClOfoQk/cOTbDn+NceXfV7j09YPVQUryJPHurafcSg6EVKA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tabs": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.13.tgz", - "integrity": "sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-direction": "1.1.1", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-roving-focus": "1.1.11", - "@radix-ui/react-use-controllable-state": "1.2.2" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tooltip": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.2.8.tgz", - "integrity": "sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==", - "license": "MIT", - "dependencies": { - "@radix-ui/primitive": "1.1.3", - "@radix-ui/react-compose-refs": "1.1.2", - "@radix-ui/react-context": "1.1.2", - "@radix-ui/react-dismissable-layer": "1.1.11", - "@radix-ui/react-id": "1.1.1", - "@radix-ui/react-popper": "1.2.8", - "@radix-ui/react-portal": "1.1.9", - "@radix-ui/react-presence": "1.1.5", - "@radix-ui/react-primitive": "2.1.3", - "@radix-ui/react-slot": "1.2.3", - "@radix-ui/react-use-controllable-state": "1.2.2", - "@radix-ui/react-visually-hidden": "1.2.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-tooltip/node_modules/@radix-ui/react-slot": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.3.tgz", - "integrity": "sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-compose-refs": "1.1.2" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-callback-ref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.1.tgz", - "integrity": "sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-controllable-state": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.2.2.tgz", - "integrity": "sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-effect-event": "0.0.2", - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-effect-event": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-effect-event/-/react-use-effect-event-0.0.2.tgz", - "integrity": "sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-escape-keydown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.1.tgz", - "integrity": "sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-callback-ref": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-layout-effect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.1.tgz", - "integrity": "sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-previous": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.1.tgz", - "integrity": "sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-rect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.1.tgz", - "integrity": "sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==", - "license": "MIT", - "dependencies": { - "@radix-ui/rect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-use-size": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.1.tgz", - "integrity": "sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-use-layout-effect": "1.1.1" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.2.3.tgz", - "integrity": "sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==", - "license": "MIT", - "dependencies": { - "@radix-ui/react-primitive": "2.1.3" - }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } - } - }, - "node_modules/@radix-ui/rect": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.1.tgz", - "integrity": "sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==", - "license": "MIT" - }, - "node_modules/@react-three/drei": { - "version": "10.7.7", - "resolved": "https://registry.npmjs.org/@react-three/drei/-/drei-10.7.7.tgz", - "integrity": "sha512-ff+J5iloR0k4tC++QtD/j9u3w5fzfgFAWDtAGQah9pF2B1YgOq/5JxqY0/aVoQG5r3xSZz0cv5tk2YuBob4xEQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@mediapipe/tasks-vision": "0.10.17", - "@monogrid/gainmap-js": "^3.0.6", - "@use-gesture/react": "^10.3.1", - "camera-controls": "^3.1.0", - "cross-env": "^7.0.3", - "detect-gpu": "^5.0.56", - "glsl-noise": "^0.0.0", - "hls.js": "^1.5.17", - "maath": "^0.10.8", - "meshline": "^3.3.1", - "stats-gl": "^2.2.8", - "stats.js": "^0.17.0", - "suspend-react": "^0.1.3", - "three-mesh-bvh": "^0.8.3", - "three-stdlib": "^2.35.6", - "troika-three-text": "^0.52.4", - "tunnel-rat": "^0.1.2", - "use-sync-external-store": "^1.4.0", - "utility-types": "^3.11.0", - "zustand": "^5.0.1" - }, - "peerDependencies": { - "@react-three/fiber": "^9.0.0", - "react": "^19", - "react-dom": "^19", - "three": ">=0.159" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/@react-three/fiber": { - "version": "9.5.0", - "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-9.5.0.tgz", - "integrity": "sha512-FiUzfYW4wB1+PpmsE47UM+mCads7j2+giRBltfwH7SNhah95rqJs3ltEs9V3pP8rYdS0QlNne+9Aj8dS/SiaIA==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.17.8", - "@types/webxr": "*", - "base64-js": "^1.5.1", - "buffer": "^6.0.3", - "its-fine": "^2.0.0", - "react-use-measure": "^2.1.7", - "scheduler": "^0.27.0", - "suspend-react": "^0.1.3", - "use-sync-external-store": "^1.4.0", - "zustand": "^5.0.3" - }, - "peerDependencies": { - "expo": ">=43.0", - "expo-asset": ">=8.4", - "expo-file-system": ">=11.0", - "expo-gl": ">=11.0", - "react": ">=19 <19.3", - "react-dom": ">=19 <19.3", - "react-native": ">=0.78", - "three": ">=0.156" - }, - "peerDependenciesMeta": { - "expo": { - "optional": true - }, - "expo-asset": { - "optional": true - }, - "expo-file-system": { - "optional": true - }, - "expo-gl": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@react-three/postprocessing": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@react-three/postprocessing/-/postprocessing-3.0.4.tgz", - "integrity": "sha512-e4+F5xtudDYvhxx3y0NtWXpZbwvQ0x1zdOXWTbXMK6fFLVDd4qucN90YaaStanZGS4Bd5siQm0lGL/5ogf8iDQ==", - "license": "MIT", - "dependencies": { - "maath": "^0.6.0", - "n8ao": "^1.9.4", - "postprocessing": "^6.36.6" - }, - "peerDependencies": { - "@react-three/fiber": "^9.0.0", - "react": "^19.0", - "three": ">= 0.156.0" - } - }, - "node_modules/@react-three/postprocessing/node_modules/maath": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/maath/-/maath-0.6.0.tgz", - "integrity": "sha512-dSb2xQuP7vDnaYqfoKzlApeRcR2xtN8/f7WV/TMAkBC8552TwTLtOO0JTcSygkYMjNDPoo6V01jTw/aPi4JrMw==", - "license": "MIT", - "peerDependencies": { - "@types/three": ">=0.144.0", - "three": ">=0.144.0" - } - }, - "node_modules/@reduxjs/toolkit": { - "version": "2.11.2", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.11.2.tgz", - "integrity": "sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ==", - "license": "MIT", - "dependencies": { - "@standard-schema/spec": "^1.0.0", - "@standard-schema/utils": "^0.3.0", - "immer": "^11.0.0", - "redux": "^5.0.1", - "redux-thunk": "^3.1.0", - "reselect": "^5.1.0" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", - "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@reduxjs/toolkit/node_modules/immer": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/immer/-/immer-11.1.4.tgz", - "integrity": "sha512-XREFCPo6ksxVzP4E0ekD5aMdf8WMwmdNaz6vuvxgI40UaEiu6q3p8X52aU6GdyvLY3XXX/8R7JOTXStz/nBbRw==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/@standard-schema/spec": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", - "license": "MIT" - }, - "node_modules/@standard-schema/utils": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", - "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", - "license": "MIT" - }, - "node_modules/@swc/helpers": { - "version": "0.5.15", - "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", - "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.8.0" - } - }, - "node_modules/@tailwindcss/node": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", - "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.4", - "enhanced-resolve": "^5.18.3", - "jiti": "^2.6.1", - "lightningcss": "1.30.2", - "magic-string": "^0.30.21", - "source-map-js": "^1.2.1", - "tailwindcss": "4.1.18" - } - }, - "node_modules/@tailwindcss/oxide": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", - "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - }, - "optionalDependencies": { - "@tailwindcss/oxide-android-arm64": "4.1.18", - "@tailwindcss/oxide-darwin-arm64": "4.1.18", - "@tailwindcss/oxide-darwin-x64": "4.1.18", - "@tailwindcss/oxide-freebsd-x64": "4.1.18", - "@tailwindcss/oxide-linux-arm-gnueabihf": "4.1.18", - "@tailwindcss/oxide-linux-arm64-gnu": "4.1.18", - "@tailwindcss/oxide-linux-arm64-musl": "4.1.18", - "@tailwindcss/oxide-linux-x64-gnu": "4.1.18", - "@tailwindcss/oxide-linux-x64-musl": "4.1.18", - "@tailwindcss/oxide-wasm32-wasi": "4.1.18", - "@tailwindcss/oxide-win32-arm64-msvc": "4.1.18", - "@tailwindcss/oxide-win32-x64-msvc": "4.1.18" - } - }, - "node_modules/@tailwindcss/oxide-android-arm64": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-android-arm64/-/oxide-android-arm64-4.1.18.tgz", - "integrity": "sha512-dJHz7+Ugr9U/diKJA0W6N/6/cjI+ZTAoxPf9Iz9BFRF2GzEX8IvXxFIi/dZBloVJX/MZGvRuFA9rqwdiIEZQ0Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-arm64": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-arm64/-/oxide-darwin-arm64-4.1.18.tgz", - "integrity": "sha512-Gc2q4Qhs660bhjyBSKgq6BYvwDz4G+BuyJ5H1xfhmDR3D8HnHCmT/BSkvSL0vQLy/nkMLY20PQ2OoYMO15Jd0A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-darwin-x64": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-darwin-x64/-/oxide-darwin-x64-4.1.18.tgz", - "integrity": "sha512-FL5oxr2xQsFrc3X9o1fjHKBYBMD1QZNyc1Xzw/h5Qu4XnEBi3dZn96HcHm41c/euGV+GRiXFfh2hUCyKi/e+yw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-freebsd-x64": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-freebsd-x64/-/oxide-freebsd-x64-4.1.18.tgz", - "integrity": "sha512-Fj+RHgu5bDodmV1dM9yAxlfJwkkWvLiRjbhuO2LEtwtlYlBgiAT4x/j5wQr1tC3SANAgD+0YcmWVrj8R9trVMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm-gnueabihf": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm-gnueabihf/-/oxide-linux-arm-gnueabihf-4.1.18.tgz", - "integrity": "sha512-Fp+Wzk/Ws4dZn+LV2Nqx3IilnhH51YZoRaYHQsVq3RQvEl+71VGKFpkfHrLM/Li+kt5c0DJe/bHXK1eHgDmdiA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-gnu": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-gnu/-/oxide-linux-arm64-gnu-4.1.18.tgz", - "integrity": "sha512-S0n3jboLysNbh55Vrt7pk9wgpyTTPD0fdQeh7wQfMqLPM/Hrxi+dVsLsPrycQjGKEQk85Kgbx+6+QnYNiHalnw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-arm64-musl": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-arm64-musl/-/oxide-linux-arm64-musl-4.1.18.tgz", - "integrity": "sha512-1px92582HkPQlaaCkdRcio71p8bc8i/ap5807tPRDK/uw953cauQBT8c5tVGkOwrHMfc2Yh6UuxaH4vtTjGvHg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-gnu": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-gnu/-/oxide-linux-x64-gnu-4.1.18.tgz", - "integrity": "sha512-v3gyT0ivkfBLoZGF9LyHmts0Isc8jHZyVcbzio6Wpzifg/+5ZJpDiRiUhDLkcr7f/r38SWNe7ucxmGW3j3Kb/g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-linux-x64-musl": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-linux-x64-musl/-/oxide-linux-x64-musl-4.1.18.tgz", - "integrity": "sha512-bhJ2y2OQNlcRwwgOAGMY0xTFStt4/wyU6pvI6LSuZpRgKQwxTec0/3Scu91O8ir7qCR3AuepQKLU/kX99FouqQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-wasm32-wasi": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-wasm32-wasi/-/oxide-wasm32-wasi-4.1.18.tgz", - "integrity": "sha512-LffYTvPjODiP6PT16oNeUQJzNVyJl1cjIebq/rWWBF+3eDst5JGEFSc5cWxyRCJ0Mxl+KyIkqRxk1XPEs9x8TA==", - "bundleDependencies": [ - "@napi-rs/wasm-runtime", - "@emnapi/core", - "@emnapi/runtime", - "@tybys/wasm-util", - "@emnapi/wasi-threads", - "tslib" - ], - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1", - "@emnapi/wasi-threads": "^1.1.0", - "@napi-rs/wasm-runtime": "^1.1.0", - "@tybys/wasm-util": "^0.10.1", - "tslib": "^2.4.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.18.tgz", - "integrity": "sha512-HjSA7mr9HmC8fu6bdsZvZ+dhjyGCLdotjVOgLA2vEqxEBZaQo9YTX4kwgEvPCpRh8o4uWc4J/wEoFzhEmjvPbA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/oxide-win32-x64-msvc": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-x64-msvc/-/oxide-win32-x64-msvc-4.1.18.tgz", - "integrity": "sha512-bJWbyYpUlqamC8dpR7pfjA0I7vdF6t5VpUGMWRkXVE3AXgIZjYUYAK7II1GNaxR8J1SSrSrppRar8G++JekE3Q==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@tailwindcss/postcss": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/postcss/-/postcss-4.1.18.tgz", - "integrity": "sha512-Ce0GFnzAOuPyfV5SxjXGn0CubwGcuDB0zcdaPuCSzAa/2vII24JTkH+I6jcbXLb1ctjZMZZI6OjDaLPJQL1S0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "@tailwindcss/node": "4.1.18", - "@tailwindcss/oxide": "4.1.18", - "postcss": "^8.4.41", - "tailwindcss": "4.1.18" - } - }, - "node_modules/@tweenjs/tween.js": { - "version": "23.1.3", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "license": "MIT" - }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@types/d3-array": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.2.tgz", - "integrity": "sha512-hOLWVbm7uRza0BYXpIIW5pxfrKe0W+D5lrFiAEYR+pb6w3N2SwSMaJbXdUfSEv+dT4MfHBLtn5js0LAWaO6otw==", - "license": "MIT" - }, - "node_modules/@types/d3-color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz", - "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==", - "license": "MIT" - }, - "node_modules/@types/d3-ease": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz", - "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==", - "license": "MIT" - }, - "node_modules/@types/d3-force": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz", - "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/d3-interpolate": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz", - "integrity": "sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==", - "license": "MIT", - "dependencies": { - "@types/d3-color": "*" - } - }, - "node_modules/@types/d3-path": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz", - "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==", - "license": "MIT" - }, - "node_modules/@types/d3-scale": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz", - "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==", - "license": "MIT", - "dependencies": { - "@types/d3-time": "*" - } - }, - "node_modules/@types/d3-shape": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.8.tgz", - "integrity": "sha512-lae0iWfcDeR7qt7rA88BNiqdvPS5pFVPpo5OfjElwNaT2yyekbM0C9vK+yqBqEmHr6lDkRnYNoTBYlAgJa7a4w==", - "license": "MIT", - "dependencies": { - "@types/d3-path": "*" - } - }, - "node_modules/@types/d3-time": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz", - "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==", - "license": "MIT" - }, - "node_modules/@types/d3-timer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz", - "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==", - "license": "MIT" - }, - "node_modules/@types/draco3d": { - "version": "1.4.10", - "resolved": "https://registry.npmjs.org/@types/draco3d/-/draco3d-1.4.10.tgz", - "integrity": "sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==", - "license": "MIT" - }, - "node_modules/@types/earcut": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/earcut/-/earcut-3.0.0.tgz", - "integrity": "sha512-k/9fOUGO39yd2sCjrbAJvGDEQvRwRnQIZlBz43roGwUZo5SHAmyVvSFyaVVZkicRVCaDXPKlbxrUcBuJoSWunQ==", - "license": "MIT" - }, - "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/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.19.33", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.19.33.tgz", - "integrity": "sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/@types/offscreencanvas": { - "version": "2019.7.3", - "resolved": "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.3.tgz", - "integrity": "sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==", - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.2.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.14.tgz", - "integrity": "sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==", - "license": "MIT", - "dependencies": { - "csstype": "^3.2.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "devOptional": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.2.0" - } - }, - "node_modules/@types/react-reconciler": { - "version": "0.28.9", - "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz", - "integrity": "sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/stats.js": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.4.tgz", - "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==", - "license": "MIT" - }, - "node_modules/@types/three": { - "version": "0.182.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.182.0.tgz", - "integrity": "sha512-WByN9V3Sbwbe2OkWuSGyoqQO8Du6yhYaXtXLoA5FkKTUJorZ+yOHBZ35zUUPQXlAKABZmbYp5oAqpA4RBjtJ/Q==", - "license": "MIT", - "dependencies": { - "@dimforge/rapier3d-compat": "~0.12.0", - "@tweenjs/tween.js": "~23.1.3", - "@types/stats.js": "*", - "@types/webxr": ">=0.5.17", - "@webgpu/types": "*", - "fflate": "~0.8.2", - "meshoptimizer": "~0.22.0" - } - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", - "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", - "license": "MIT" - }, - "node_modules/@types/webxr": { - "version": "0.5.24", - "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.24.tgz", - "integrity": "sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==", - "license": "MIT" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.55.0.tgz", - "integrity": "sha512-1y/MVSz0NglV1ijHC8OT49mPJ4qhPYjiK08YUQVbIOyu+5k862LKUHFkpKHWu//zmr7hDR2rhwUm6gnCGNmGBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.12.2", - "@typescript-eslint/scope-manager": "8.55.0", - "@typescript-eslint/type-utils": "8.55.0", - "@typescript-eslint/utils": "8.55.0", - "@typescript-eslint/visitor-keys": "8.55.0", - "ignore": "^7.0.5", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.55.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.55.0.tgz", - "integrity": "sha512-4z2nCSBfVIMnbuu8uinj+f0o4qOeggYJLbjpPHka3KH1om7e+H9yLKTYgksTaHcGco+NClhhY2vyO3HsMH1RGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.55.0", - "@typescript-eslint/types": "8.55.0", - "@typescript-eslint/typescript-estree": "8.55.0", - "@typescript-eslint/visitor-keys": "8.55.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.55.0.tgz", - "integrity": "sha512-zRcVVPFUYWa3kNnjaZGXSu3xkKV1zXy8M4nO/pElzQhFweb7PPtluDLQtKArEOGmjXoRjnUZ29NjOiF0eCDkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.55.0", - "@typescript-eslint/types": "^8.55.0", - "debug": "^4.4.3" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.55.0.tgz", - "integrity": "sha512-fVu5Omrd3jeqeQLiB9f1YsuK/iHFOwb04bCtY4BSCLgjNbOD33ZdV6KyEqplHr+IlpgT0QTZ/iJ+wT7hvTx49Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.55.0", - "@typescript-eslint/visitor-keys": "8.55.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.55.0.tgz", - "integrity": "sha512-1R9cXqY7RQd7WuqSN47PK9EDpgFUK3VqdmbYrvWJZYDd0cavROGn+74ktWBlmJ13NXUQKlZ/iAEQHI/V0kKe0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.55.0.tgz", - "integrity": "sha512-x1iH2unH4qAt6I37I2CGlsNs+B9WGxurP2uyZLRz6UJoZWDBx9cJL1xVN/FiOmHEONEg6RIufdvyT0TEYIgC5g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.55.0", - "@typescript-eslint/typescript-estree": "8.55.0", - "@typescript-eslint/utils": "8.55.0", - "debug": "^4.4.3", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.55.0.tgz", - "integrity": "sha512-ujT0Je8GI5BJWi+/mMoR0wxwVEQaxM+pi30xuMiJETlX80OPovb2p9E8ss87gnSVtYXtJoU9U1Cowcr6w2FE0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.55.0.tgz", - "integrity": "sha512-EwrH67bSWdx/3aRQhCoxDaHM+CrZjotc2UCCpEDVqfCE+7OjKAGWNY2HsCSTEVvWH2clYQK8pdeLp42EVs+xQw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.55.0", - "@typescript-eslint/tsconfig-utils": "8.55.0", - "@typescript-eslint/types": "8.55.0", - "@typescript-eslint/visitor-keys": "8.55.0", - "debug": "^4.4.3", - "minimatch": "^9.0.5", - "semver": "^7.7.3", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.4.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.55.0.tgz", - "integrity": "sha512-BqZEsnPGdYpgyEIkDC1BadNY8oMwckftxBT+C8W0g1iKPdeqKZBtTfnvcq0nf60u7MkjFO8RBvpRGZBPw4L2ow==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.9.1", - "@typescript-eslint/scope-manager": "8.55.0", - "@typescript-eslint/types": "8.55.0", - "@typescript-eslint/typescript-estree": "8.55.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.55.0.tgz", - "integrity": "sha512-AxNRwEie8Nn4eFS1FzDMJWIISMGoXMb037sgCBJ3UR6o0fQTzr2tqN9WT+DkWJPhIdQCfV7T6D387566VtnCJA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.55.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@use-gesture/core": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@use-gesture/core/-/core-10.3.1.tgz", - "integrity": "sha512-WcINiDt8WjqBdUXye25anHiNxPc0VOrlT8F6LLkU6cycrOGUDyY/yyFmsg3k8i5OLvv25llc0QC45GhR/C8llw==", - "license": "MIT" - }, - "node_modules/@use-gesture/react": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/@use-gesture/react/-/react-10.3.1.tgz", - "integrity": "sha512-Yy19y6O2GJq8f7CHf7L0nxL8bf4PZCPaVOCgJrusOeFHY1LvHgYXnmnXg6N5iwAnbgbZCDjo60SiM6IPJi9C5g==", - "license": "MIT", - "dependencies": { - "@use-gesture/core": "10.3.1" - }, - "peerDependencies": { - "react": ">= 16.8.0" - } - }, - "node_modules/@webgpu/types": { - "version": "0.1.69", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.69.tgz", - "integrity": "sha512-RPmm6kgRbI8e98zSD3RVACvnuktIja5+yLgDAkTmxLr90BEwdTXRQWNLF3ETTTyH/8mKhznZuN5AveXYFEsMGQ==", - "license": "BSD-3-Clause" - }, - "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/aria-hidden": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.6.tgz", - "integrity": "sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/aria-query": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", - "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", - "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.0", - "es-object-atoms": "^1.1.1", - "get-intrinsic": "^1.3.0", - "is-string": "^1.1.1", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlast": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", - "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-shim-unscopables": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.tosorted": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", - "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axe-core": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz", - "integrity": "sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A==", - "dev": true, - "license": "MPL-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/axobject-query": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", - "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/baseline-browser-mapping": { - "version": "2.9.19", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", - "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", - "license": "Apache-2.0", - "bin": { - "baseline-browser-mapping": "dist/cli.js" - } - }, - "node_modules/bidi-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.3.tgz", - "integrity": "sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==", - "license": "MIT", - "dependencies": { - "require-from-string": "^2.0.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camera-controls": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/camera-controls/-/camera-controls-3.1.2.tgz", - "integrity": "sha512-xkxfpG2ECZ6Ww5/9+kf4mfg1VEYAoe9aDSY+IwF0UEs7qEzwy0aVRfs2grImIECs/PoBtWFrh7RXsQkwG922JA==", - "license": "MIT", - "engines": { - "node": ">=22.0.0", - "npm": ">=10.5.1" - }, - "peerDependencies": { - "three": ">=0.126.1" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001769", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", - "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/class-variance-authority": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", - "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", - "license": "Apache-2.0", - "dependencies": { - "clsx": "^2.1.1" - }, - "funding": { - "url": "https://polar.sh/cva" - } - }, - "node_modules/client-only": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", - "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", - "license": "MIT" - }, - "node_modules/clsx": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-env": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "bin": { - "cross-env": "src/bin/cross-env.js", - "cross-env-shell": "src/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=10.14", - "npm": ">=6", - "yarn": ">=1" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/d3-array": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz", - "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==", - "license": "ISC", - "dependencies": { - "internmap": "1 - 2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-color": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", - "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-dispatch": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", - "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-ease": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", - "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-force": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz", - "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==", - "license": "ISC", - "dependencies": { - "d3-dispatch": "1 - 3", - "d3-quadtree": "1 - 3", - "d3-timer": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-format": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.2.tgz", - "integrity": "sha512-AJDdYOdnyRDV5b6ArilzCPPwc1ejkHcoyFarqlPqT7zRYjhavcT3uSrqcMvsgh2CgoPbK3RCwyHaVyxYcP2Arg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-interpolate": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", - "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", - "license": "ISC", - "dependencies": { - "d3-color": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz", - "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-quadtree": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz", - "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-scale": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz", - "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==", - "license": "ISC", - "dependencies": { - "d3-array": "2.10.0 - 3", - "d3-format": "1 - 3", - "d3-interpolate": "1.2.0 - 3", - "d3-time": "2.1.1 - 3", - "d3-time-format": "2 - 4" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-shape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz", - "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==", - "license": "ISC", - "dependencies": { - "d3-path": "^3.1.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz", - "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==", - "license": "ISC", - "dependencies": { - "d3-array": "2 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-time-format": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz", - "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==", - "license": "ISC", - "dependencies": { - "d3-time": "1 - 3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/d3-timer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", - "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/decimal.js-light": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/decimal.js-light/-/decimal.js-light-2.5.1.tgz", - "integrity": "sha512-qIMFpTMZmny+MMIitAB6D7iVPEorVw6YQRWkvarTkT4tBeSLLiHzcwj6q0MmYSFCiVpiqPJTJEYIrpcPzVEIvg==", - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/detect-gpu": { - "version": "5.0.70", - "resolved": "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.70.tgz", - "integrity": "sha512-bqerEP1Ese6nt3rFkwPnGbsUF9a4q+gMmpTVVOEzoCyeCc+y7/RvJnQZJx1JwhgQI5Ntg0Kgat8Uu7XpBqnz1w==", - "license": "MIT", - "dependencies": { - "webgl-constants": "^1.1.1" - } - }, - "node_modules/detect-libc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", - "devOptional": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-node-es": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", - "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", - "license": "MIT" - }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/draco3d": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/draco3d/-/draco3d-1.5.7.tgz", - "integrity": "sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==", - "license": "Apache-2.0" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/earcut": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.2.tgz", - "integrity": "sha512-X7hshQbLyMJ/3RPhyObLARM2sNxxmRALLKx1+NVFFnQ9gKzmCrxm9+uLIAdBcvc8FNLpctqlQ2V6AE92Ol9UDQ==", - "license": "ISC" - }, - "node_modules/electron-to-chromium": { - "version": "1.5.286", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", - "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", - "dev": true, - "license": "ISC" - }, - "node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/es-abstract": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz", - "integrity": "sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.3.0", - "get-proto": "^1.0.1", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.2.1", - "is-set": "^2.0.3", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.1", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.4", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "stop-iteration-iterator": "^1.1.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.19" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-iterator-helpers": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz", - "integrity": "sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.24.1", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.1.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.3.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "iterator.prototype": "^1.1.5", - "safe-array-concat": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", - "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-toolkit": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/es-toolkit/-/es-toolkit-1.44.0.tgz", - "integrity": "sha512-6penXeZalaV88MM3cGkFZZfOoLGWshWWfdy0tWw/RlVVyhvMaWSBTOvXNeiW3e5FwdS5ePW0LGEu17zT139ktg==", - "license": "MIT", - "workspaces": [ - "docs", - "benchmarks" - ] - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.39.2", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.2.tgz", - "integrity": "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.8.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.1", - "@eslint/config-helpers": "^0.4.2", - "@eslint/core": "^0.17.0", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.39.2", - "@eslint/plugin-kit": "^0.4.1", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-next": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.1.6.tgz", - "integrity": "sha512-vKq40io2B0XtkkNDYyleATwblNt8xuh3FWp8SpSz3pt7P01OkBFlKsJZ2mWt5WsCySlDQLckb1zMY9yE9Qy0LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@next/eslint-plugin-next": "16.1.6", - "eslint-import-resolver-node": "^0.3.6", - "eslint-import-resolver-typescript": "^3.5.2", - "eslint-plugin-import": "^2.32.0", - "eslint-plugin-jsx-a11y": "^6.10.0", - "eslint-plugin-react": "^7.37.0", - "eslint-plugin-react-hooks": "^7.0.0", - "globals": "16.4.0", - "typescript-eslint": "^8.46.0" - }, - "peerDependencies": { - "eslint": ">=9.0.0", - "typescript": ">=3.3.1" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/eslint-config-next/node_modules/globals": { - "version": "16.4.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", - "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-import-resolver-typescript": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz", - "integrity": "sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@nolyfill/is-core-module": "1.0.39", - "debug": "^4.4.0", - "get-tsconfig": "^4.10.0", - "is-bun-module": "^2.0.0", - "stable-hash": "^0.0.5", - "tinyglobby": "^0.2.13", - "unrs-resolver": "^1.6.2" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-import-resolver-typescript" - }, - "peerDependencies": { - "eslint": "*", - "eslint-plugin-import": "*", - "eslint-plugin-import-x": "*" - }, - "peerDependenciesMeta": { - "eslint-plugin-import": { - "optional": true - }, - "eslint-plugin-import-x": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", - "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", - "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.9", - "array.prototype.findlastindex": "^1.2.6", - "array.prototype.flat": "^1.3.3", - "array.prototype.flatmap": "^1.3.3", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.1", - "hasown": "^2.0.2", - "is-core-module": "^2.16.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.1", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.9", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", - "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "aria-query": "^5.3.2", - "array-includes": "^3.1.8", - "array.prototype.flatmap": "^1.3.2", - "ast-types-flow": "^0.0.8", - "axe-core": "^4.10.0", - "axobject-query": "^4.1.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "hasown": "^2.0.2", - "jsx-ast-utils": "^3.3.5", - "language-tags": "^1.0.9", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "safe-regex-test": "^1.0.3", - "string.prototype.includes": "^2.0.1" - }, - "engines": { - "node": ">=4.0" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-react": { - "version": "7.37.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz", - "integrity": "sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.8", - "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.3", - "array.prototype.tosorted": "^1.1.4", - "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.2.1", - "estraverse": "^5.3.0", - "hasown": "^2.0.2", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.9", - "object.fromentries": "^2.0.8", - "object.values": "^1.2.1", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.5", - "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.12", - "string.prototype.repeat": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", - "integrity": "sha512-O0d0m04evaNzEPoSW+59Mezf8Qt0InfgGIBJnpC0h3NH/WjUAR7BIKUfysC6todmtiZ/A0oUVS8Gce0WhBrHsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.24.4", - "@babel/parser": "^7.24.4", - "hermes-parser": "^0.25.1", - "zod": "^3.25.0 || ^4.0.0", - "zod-validation-error": "^3.5.0 || ^4.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", - "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eventemitter3": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.4.tgz", - "integrity": "sha512-mlsTRyGaPBjPedk6Bvw+aqbsXDtoAyAzm5MO7JgU+yVRyMQ5O8bD4Kcci7BS85f93veegeCPkL8R4GLClnjLFw==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", - "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "license": "MIT" - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/framer-motion": { - "version": "12.34.0", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.34.0.tgz", - "integrity": "sha512-+/H49owhzkzQyxtn7nZeF4kdH++I2FWrESQ184Zbcw5cEqNHYkE5yxWxcTLSj5lNx3NWdbIRy5FHqUvetD8FWg==", - "license": "MIT", - "dependencies": { - "motion-dom": "^12.34.0", - "motion-utils": "^12.29.2", - "tslib": "^2.4.0" - }, - "peerDependencies": { - "@emotion/is-prop-valid": "*", - "react": "^18.0.0 || ^19.0.0", - "react-dom": "^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@emotion/is-prop-valid": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - } - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/generator-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-nonce": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", - "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-tsconfig": { - "version": "4.13.6", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz", - "integrity": "sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-pkg-maps": "^1.0.0" - }, - "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" - } - }, - "node_modules/gifuct-js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/gifuct-js/-/gifuct-js-2.1.2.tgz", - "integrity": "sha512-rI2asw77u0mGgwhV3qA+OEgYqaDn5UNqgs+Bx0FGwSpuqfYn+Ir6RQY5ENNQ8SbIiG/m5gVa7CD5RriO4f4Lsg==", - "license": "MIT", - "dependencies": { - "js-binary-schema-parser": "^2.0.3" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glsl-noise": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz", - "integrity": "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w==", - "license": "MIT" - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hermes-estree": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-estree/-/hermes-estree-0.25.1.tgz", - "integrity": "sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==", - "dev": true, - "license": "MIT" - }, - "node_modules/hermes-parser": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/hermes-parser/-/hermes-parser-0.25.1.tgz", - "integrity": "sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "hermes-estree": "0.25.1" - } - }, - "node_modules/hls.js": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz", - "integrity": "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==", - "license": "Apache-2.0" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", - "license": "MIT" - }, - "node_modules/immer": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/immer/-/immer-10.2.0.tgz", - "integrity": "sha512-d/+XTN3zfODyjr89gM3mPq1WNX2B8pYsu7eORitdwyA2sBubnTl3laYlBk4sXY5FUa5qTZGBDPJICVbvqzjlbw==", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/internmap": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz", - "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bun-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", - "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.7.1" - } - }, - "node_modules/is-bun-module/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-generator-function": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.4", - "generator-function": "^2.0.0", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "license": "ISC" - }, - "node_modules/ismobilejs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ismobilejs/-/ismobilejs-1.1.1.tgz", - "integrity": "sha512-VaFW53yt8QO61k2WJui0dHf4SlL8lxBofUuUmwBo0ljPk0Drz2TiuDW4jo3wDcv41qy/SxrJ+VAzJ/qYqsmzRw==", - "license": "MIT" - }, - "node_modules/iterator.prototype": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", - "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "get-proto": "^1.0.0", - "has-symbols": "^1.1.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/its-fine": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/its-fine/-/its-fine-2.0.0.tgz", - "integrity": "sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==", - "license": "MIT", - "dependencies": { - "@types/react-reconciler": "^0.28.9" - }, - "peerDependencies": { - "react": "^19.0.0" - } - }, - "node_modules/jiti": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", - "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", - "dev": true, - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, - "node_modules/js-binary-schema-parser": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/js-binary-schema-parser/-/js-binary-schema-parser-2.0.3.tgz", - "integrity": "sha512-xezGJmOb4lk/M1ZZLTR/jaBHQ4gG/lqQnJqdIv4721DMggsa1bDVlHXNeHYogaIEHD9vCRv0fcL4hMA+Coarkg==", - "license": "MIT" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", - "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsx-ast-utils": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "object.assign": "^4.1.4", - "object.values": "^1.1.6" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/language-subtag-registry": { - "version": "0.3.23", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", - "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/language-tags": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", - "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", - "dev": true, - "license": "MIT", - "dependencies": { - "language-subtag-registry": "^0.3.20" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lightningcss": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", - "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.30.2", - "lightningcss-darwin-arm64": "1.30.2", - "lightningcss-darwin-x64": "1.30.2", - "lightningcss-freebsd-x64": "1.30.2", - "lightningcss-linux-arm-gnueabihf": "1.30.2", - "lightningcss-linux-arm64-gnu": "1.30.2", - "lightningcss-linux-arm64-musl": "1.30.2", - "lightningcss-linux-x64-gnu": "1.30.2", - "lightningcss-linux-x64-musl": "1.30.2", - "lightningcss-win32-arm64-msvc": "1.30.2", - "lightningcss-win32-x64-msvc": "1.30.2" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.30.2.tgz", - "integrity": "sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.30.2.tgz", - "integrity": "sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.30.2.tgz", - "integrity": "sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.30.2.tgz", - "integrity": "sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.30.2.tgz", - "integrity": "sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.30.2.tgz", - "integrity": "sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.30.2.tgz", - "integrity": "sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.30.2.tgz", - "integrity": "sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.30.2.tgz", - "integrity": "sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.30.2.tgz", - "integrity": "sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.30.2", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.30.2.tgz", - "integrity": "sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lucide-react": { - "version": "0.563.0", - "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.563.0.tgz", - "integrity": "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==", - "license": "ISC", - "peerDependencies": { - "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/maath": { - "version": "0.10.8", - "resolved": "https://registry.npmjs.org/maath/-/maath-0.10.8.tgz", - "integrity": "sha512-tRvbDF0Pgqz+9XUa4jjfgAQ8/aPKmQdWXilFu2tMy4GWj4NOsx99HlULO4IeREfbO3a0sA145DZYyvXPkybm0g==", - "license": "MIT", - "peerDependencies": { - "@types/three": ">=0.134.0", - "three": ">=0.134.0" - } - }, - "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/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/meshline": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/meshline/-/meshline-3.3.1.tgz", - "integrity": "sha512-/TQj+JdZkeSUOl5Mk2J7eLcYTLiQm2IDzmlSvYm7ov15anEcDJ92GHqqazxTSreeNgfnYu24kiEvvv0WlbCdFQ==", - "license": "MIT", - "peerDependencies": { - "three": ">=0.137" - } - }, - "node_modules/meshoptimizer": { - "version": "0.22.0", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.22.0.tgz", - "integrity": "sha512-IebiK79sqIy+E4EgOr+CAw+Ke8hAspXKzBd0JdgEmPHiAwmvEj2S4h1rfvo+o/BnfEYd/jAOg5IeeIjzlzSnDg==", - "license": "MIT" - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/motion-dom": { - "version": "12.34.0", - "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.34.0.tgz", - "integrity": "sha512-Lql3NuEcScRDxTAO6GgUsRHBZOWI/3fnMlkMcH5NftzcN37zJta+bpbMAV9px4Nj057TuvRooMK7QrzMCgtz6Q==", - "license": "MIT", - "dependencies": { - "motion-utils": "^12.29.2" - } - }, - "node_modules/motion-utils": { - "version": "12.29.2", - "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.29.2.tgz", - "integrity": "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==", - "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/n8ao": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/n8ao/-/n8ao-1.10.1.tgz", - "integrity": "sha512-hhI1pC+BfOZBV1KMwynBrVlIm8wqLxj/abAWhF2nZ0qQKyzTSQa1QtLVS2veRiuoBQXojxobcnp0oe+PUoxf/w==", - "license": "ISC", - "peerDependencies": { - "postprocessing": ">=6.30.0", - "three": ">=0.137" - } - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "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/napi-postinstall": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", - "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", - "dev": true, - "license": "MIT", - "bin": { - "napi-postinstall": "lib/cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/napi-postinstall" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/next": { - "version": "16.1.6", - "resolved": "https://registry.npmjs.org/next/-/next-16.1.6.tgz", - "integrity": "sha512-hkyRkcu5x/41KoqnROkfTm2pZVbKxvbZRuNvKXLRXxs3VfyO0WhY50TQS40EuKO9SW3rBj/sF3WbVwDACeMZyw==", - "license": "MIT", - "dependencies": { - "@next/env": "16.1.6", - "@swc/helpers": "0.5.15", - "baseline-browser-mapping": "^2.8.3", - "caniuse-lite": "^1.0.30001579", - "postcss": "8.4.31", - "styled-jsx": "5.1.6" - }, - "bin": { - "next": "dist/bin/next" - }, - "engines": { - "node": ">=20.9.0" - }, - "optionalDependencies": { - "@next/swc-darwin-arm64": "16.1.6", - "@next/swc-darwin-x64": "16.1.6", - "@next/swc-linux-arm64-gnu": "16.1.6", - "@next/swc-linux-arm64-musl": "16.1.6", - "@next/swc-linux-x64-gnu": "16.1.6", - "@next/swc-linux-x64-musl": "16.1.6", - "@next/swc-win32-arm64-msvc": "16.1.6", - "@next/swc-win32-x64-msvc": "16.1.6", - "sharp": "^0.34.4" - }, - "peerDependencies": { - "@opentelemetry/api": "^1.1.0", - "@playwright/test": "^1.51.1", - "babel-plugin-react-compiler": "*", - "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", - "sass": "^1.3.0" - }, - "peerDependenciesMeta": { - "@opentelemetry/api": { - "optional": true - }, - "@playwright/test": { - "optional": true - }, - "babel-plugin-react-compiler": { - "optional": true - }, - "sass": { - "optional": true - } - } - }, - "node_modules/next/node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "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.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.entries": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", - "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-svg-path": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/parse-svg-path/-/parse-svg-path-0.1.2.tgz", - "integrity": "sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==", - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true, - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pixi.js": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/pixi.js/-/pixi.js-8.16.0.tgz", - "integrity": "sha512-gu2xw3sZGAn3cWBtk0HqTQT+v19YAfiaYXwUGgWoJl5NKz4cEZJUgWrwkmdfDszGyYBAGqOvJNbd2M9+vzLLMg==", - "license": "MIT", - "dependencies": { - "@pixi/colord": "^2.9.6", - "@types/earcut": "^3.0.0", - "@webgpu/types": "^0.1.69", - "@xmldom/xmldom": "^0.8.11", - "earcut": "^3.0.2", - "eventemitter3": "^5.0.1", - "gifuct-js": "^2.1.2", - "ismobilejs": "^1.1.1", - "parse-svg-path": "^0.1.2", - "tiny-lru": "^11.4.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/pixijs" - } - }, - "node_modules/possible-typed-array-names": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "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/postprocessing": { - "version": "6.38.2", - "resolved": "https://registry.npmjs.org/postprocessing/-/postprocessing-6.38.2.tgz", - "integrity": "sha512-7DwuT7Tkst41ZjSj287g7C9c5/D3Xx5rMgBosg0dadbUPoZD2HNzkadKPol1d2PJAoI9f+Jeh1/v9YfLzpFGVw==", - "license": "Zlib", - "peerDependencies": { - "three": ">= 0.157.0 < 0.183.0" - } - }, - "node_modules/potpack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz", - "integrity": "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==", - "license": "ISC" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/promise-worker-transferable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/promise-worker-transferable/-/promise-worker-transferable-1.0.4.tgz", - "integrity": "sha512-bN+0ehEnrXfxV2ZQvU2PetO0n4gqBD4ulq3MI1WOPLgr7/Mg9yRQkX5+0v1vagr74ZTsl7XtzlaYDo2EuCeYJw==", - "license": "Apache-2.0", - "dependencies": { - "is-promise": "^2.1.0", - "lie": "^3.0.2" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dev": true, - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", - "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.2.3", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", - "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.27.0" - }, - "peerDependencies": { - "react": "^19.2.3" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, - "node_modules/react-redux": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", - "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", - "license": "MIT", - "dependencies": { - "@types/use-sync-external-store": "^0.0.6", - "use-sync-external-store": "^1.4.0" - }, - "peerDependencies": { - "@types/react": "^18.2.25 || ^19", - "react": "^18.0 || ^19", - "redux": "^5.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", - "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", - "license": "MIT", - "dependencies": { - "react-remove-scroll-bar": "^2.3.7", - "react-style-singleton": "^2.2.3", - "tslib": "^2.1.0", - "use-callback-ref": "^1.3.3", - "use-sidecar": "^1.1.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-remove-scroll-bar": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", - "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", - "license": "MIT", - "dependencies": { - "react-style-singleton": "^2.2.2", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-style-singleton": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", - "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", - "license": "MIT", - "dependencies": { - "get-nonce": "^1.0.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/react-use-measure": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.7.tgz", - "integrity": "sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==", - "license": "MIT", - "peerDependencies": { - "react": ">=16.13", - "react-dom": ">=16.13" - }, - "peerDependenciesMeta": { - "react-dom": { - "optional": true - } - } - }, - "node_modules/recharts": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/recharts/-/recharts-3.7.0.tgz", - "integrity": "sha512-l2VCsy3XXeraxIID9fx23eCb6iCBsxUQDnE8tWm6DFdszVAO7WVY/ChAD9wVit01y6B2PMupYiMmQwhgPHc9Ew==", - "license": "MIT", - "workspaces": [ - "www" - ], - "dependencies": { - "@reduxjs/toolkit": "1.x.x || 2.x.x", - "clsx": "^2.1.1", - "decimal.js-light": "^2.5.1", - "es-toolkit": "^1.39.3", - "eventemitter3": "^5.0.1", - "immer": "^10.1.1", - "react-redux": "8.x.x || 9.x.x", - "reselect": "5.1.1", - "tiny-invariant": "^1.3.3", - "use-sync-external-store": "^1.2.2", - "victory-vendor": "^37.0.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-is": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/redux": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", - "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", - "license": "MIT" - }, - "node_modules/redux-thunk": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", - "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", - "license": "MIT", - "peerDependencies": { - "redux": "^5.0.0" - } - }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/reselect": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", - "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.16.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "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/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/scheduler": { - "version": "0.27.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", - "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/sharp": { - "version": "0.34.5", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", - "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", - "hasInstallScript": true, - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "@img/colour": "^1.0.0", - "detect-libc": "^2.1.2", - "semver": "^7.7.3" - }, - "engines": { - "node": "^18.17.0 || ^20.3.0 || >=21.0.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - }, - "optionalDependencies": { - "@img/sharp-darwin-arm64": "0.34.5", - "@img/sharp-darwin-x64": "0.34.5", - "@img/sharp-libvips-darwin-arm64": "1.2.4", - "@img/sharp-libvips-darwin-x64": "1.2.4", - "@img/sharp-libvips-linux-arm": "1.2.4", - "@img/sharp-libvips-linux-arm64": "1.2.4", - "@img/sharp-libvips-linux-ppc64": "1.2.4", - "@img/sharp-libvips-linux-riscv64": "1.2.4", - "@img/sharp-libvips-linux-s390x": "1.2.4", - "@img/sharp-libvips-linux-x64": "1.2.4", - "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", - "@img/sharp-libvips-linuxmusl-x64": "1.2.4", - "@img/sharp-linux-arm": "0.34.5", - "@img/sharp-linux-arm64": "0.34.5", - "@img/sharp-linux-ppc64": "0.34.5", - "@img/sharp-linux-riscv64": "0.34.5", - "@img/sharp-linux-s390x": "0.34.5", - "@img/sharp-linux-x64": "0.34.5", - "@img/sharp-linuxmusl-arm64": "0.34.5", - "@img/sharp-linuxmusl-x64": "0.34.5", - "@img/sharp-wasm32": "0.34.5", - "@img/sharp-win32-arm64": "0.34.5", - "@img/sharp-win32-ia32": "0.34.5", - "@img/sharp-win32-x64": "0.34.5" - } - }, - "node_modules/sharp/node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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==", - "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==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/stable-hash": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", - "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", - "dev": true, - "license": "MIT" - }, - "node_modules/stats-gl": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/stats-gl/-/stats-gl-2.4.2.tgz", - "integrity": "sha512-g5O9B0hm9CvnM36+v7SFl39T7hmAlv541tU81ME8YeSb3i1CIP5/QdDeSB3A0la0bKNHpxpwxOVRo2wFTYEosQ==", - "license": "MIT", - "dependencies": { - "@types/three": "*", - "three": "^0.170.0" - }, - "peerDependencies": { - "@types/three": "*", - "three": "*" - } - }, - "node_modules/stats-gl/node_modules/three": { - "version": "0.170.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.170.0.tgz", - "integrity": "sha512-FQK+LEpYc0fBD+J8g6oSEyyNzjp+Q7Ks1C568WWaoMRLW+TkNNWmenWeGgJjV105Gd+p/2ql1ZcjYvNiPZBhuQ==", - "license": "MIT" - }, - "node_modules/stats.js": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz", - "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==", - "license": "MIT" - }, - "node_modules/stop-iteration-iterator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", - "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "internal-slot": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.includes": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", - "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", - "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.6", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.6", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "internal-slot": "^1.1.0", - "regexp.prototype.flags": "^1.5.3", - "set-function-name": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.repeat": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.5" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/styled-jsx": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", - "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", - "license": "MIT", - "dependencies": { - "client-only": "0.0.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/suspend-react": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz", - "integrity": "sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==", - "license": "MIT", - "peerDependencies": { - "react": ">=17.0" - } - }, - "node_modules/swr": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.4.0.tgz", - "integrity": "sha512-sUlC20T8EOt1pHmDiqueUWMmRRX03W7w5YxovWX7VR2KHEPCTMly85x05vpkP5i6Bu4h44ePSMD9Tc+G2MItFw==", - "license": "MIT", - "dependencies": { - "dequal": "^2.0.3", - "use-sync-external-store": "^1.6.0" - }, - "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/tailwind-merge": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", - "integrity": "sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/dcastil" - } - }, - "node_modules/tailwindcss": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.18.tgz", - "integrity": "sha512-4+Z+0yiYyEtUVCScyfHCxOYP06L5Ne+JiHhY2IjR2KWMIWhJOYZKLSGZaP5HkZ8+bY0cxfzwDE5uOmzFXyIwxw==", - "dev": true, - "license": "MIT" - }, - "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/three": { - "version": "0.172.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.172.0.tgz", - "integrity": "sha512-6HMgMlzU97MsV7D/tY8Va38b83kz8YJX+BefKjspMNAv0Vx6dxMogHOrnRl/sbMIs3BPUKijPqDqJ/+UwJbIow==", - "license": "MIT" - }, - "node_modules/three-mesh-bvh": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.8.3.tgz", - "integrity": "sha512-4G5lBaF+g2auKX3P0yqx+MJC6oVt6sB5k+CchS6Ob0qvH0YIhuUk1eYr7ktsIpY+albCqE80/FVQGV190PmiAg==", - "license": "MIT", - "peerDependencies": { - "three": ">= 0.159.0" - } - }, - "node_modules/three-stdlib": { - "version": "2.36.1", - "resolved": "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.36.1.tgz", - "integrity": "sha512-XyGQrFmNQ5O/IoKm556ftwKsBg11TIb301MB5dWNicziQBEs2g3gtOYIf7pFiLa0zI2gUwhtCjv9fmjnxKZ1Cg==", - "license": "MIT", - "dependencies": { - "@types/draco3d": "^1.4.0", - "@types/offscreencanvas": "^2019.6.4", - "@types/webxr": "^0.5.2", - "draco3d": "^1.4.1", - "fflate": "^0.6.9", - "potpack": "^1.0.1" - }, - "peerDependencies": { - "three": ">=0.128.0" - } - }, - "node_modules/three-stdlib/node_modules/fflate": { - "version": "0.6.10", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz", - "integrity": "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==", - "license": "MIT" - }, - "node_modules/tiny-invariant": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", - "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", - "license": "MIT" - }, - "node_modules/tiny-lru": { - "version": "11.4.7", - "resolved": "https://registry.npmjs.org/tiny-lru/-/tiny-lru-11.4.7.tgz", - "integrity": "sha512-w/Te7uMUVeH0CR8vZIjr+XiN41V+30lkDdK+NRIDCUYKKuL9VcmaUEmaPISuwGhLlrTGh5yu18lENtR9axSxYw==", - "license": "BSD-3-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.5.0", - "picomatch": "^4.0.3" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/troika-three-text": { - "version": "0.52.4", - "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.52.4.tgz", - "integrity": "sha512-V50EwcYGruV5rUZ9F4aNsrytGdKcXKALjEtQXIOBfhVoZU9VAqZNIoGQ3TMiooVqFAbR1w15T+f+8gkzoFzawg==", - "license": "MIT", - "dependencies": { - "bidi-js": "^1.0.2", - "troika-three-utils": "^0.52.4", - "troika-worker-utils": "^0.52.0", - "webgl-sdf-generator": "1.1.1" - }, - "peerDependencies": { - "three": ">=0.125.0" - } - }, - "node_modules/troika-three-utils": { - "version": "0.52.4", - "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.52.4.tgz", - "integrity": "sha512-NORAStSVa/BDiG52Mfudk4j1FG4jC4ILutB3foPnfGbOeIs9+G5vZLa0pnmnaftZUGm4UwSoqEpWdqvC7zms3A==", - "license": "MIT", - "peerDependencies": { - "three": ">=0.125.0" - } - }, - "node_modules/troika-worker-utils": { - "version": "0.52.0", - "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.52.0.tgz", - "integrity": "sha512-W1CpvTHykaPH5brv5VHLfQo9D1OYuo0cSBEUQFFT/nBUzM8iD6Lq2/tgG/f1OelbAS1WtaTPQzE5uM49egnngw==", - "license": "MIT" - }, - "node_modules/ts-api-utils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz", - "integrity": "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/tunnel-rat": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tunnel-rat/-/tunnel-rat-0.1.2.tgz", - "integrity": "sha512-lR5VHmkPhzdhrM092lI2nACsLO4QubF0/yoOhzX7c+wIpbN1GjHNzCc91QlpxBi+cnx8vVJ+Ur6vL5cEoQPFpQ==", - "license": "MIT", - "dependencies": { - "zustand": "^4.3.2" - } - }, - "node_modules/tunnel-rat/node_modules/zustand": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.5.7.tgz", - "integrity": "sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==", - "license": "MIT", - "dependencies": { - "use-sync-external-store": "^1.2.2" - }, - "engines": { - "node": ">=12.7.0" - }, - "peerDependencies": { - "@types/react": ">=16.8", - "immer": ">=9.0.6", - "react": ">=16.8" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - } - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/typescript-eslint": { - "version": "8.55.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.55.0.tgz", - "integrity": "sha512-HE4wj+r5lmDVS9gdaN0/+iqNvPZwGfnJ5lZuz7s5vLlg9ODw0bIiiETaios9LvFI1U94/VBXGm3CB2Y5cNFMpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.55.0", - "@typescript-eslint/parser": "8.55.0", - "@typescript-eslint/typescript-estree": "8.55.0", - "@typescript-eslint/utils": "8.55.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/unrs-resolver": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", - "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "napi-postinstall": "^0.3.0" - }, - "funding": { - "url": "https://opencollective.com/unrs-resolver" - }, - "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.2.0", - "picocolors": "^1.1.1" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/use-callback-ref": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", - "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sidecar": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", - "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", - "license": "MIT", - "dependencies": { - "detect-node-es": "^1.1.0", - "tslib": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@types/react": "*", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/use-sync-external-store": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", - "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/utility-types": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", - "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/victory-vendor": { - "version": "37.3.6", - "resolved": "https://registry.npmjs.org/victory-vendor/-/victory-vendor-37.3.6.tgz", - "integrity": "sha512-SbPDPdDBYp+5MJHhBCAyI7wKM3d5ivekigc2Dk2s7pgbZ9wIgIBYGVw4zGHBml/qTFbexrofXW6Gu4noGxrOwQ==", - "license": "MIT AND ISC", - "dependencies": { - "@types/d3-array": "^3.0.3", - "@types/d3-ease": "^3.0.0", - "@types/d3-interpolate": "^3.0.1", - "@types/d3-scale": "^4.0.2", - "@types/d3-shape": "^3.1.0", - "@types/d3-time": "^3.0.0", - "@types/d3-timer": "^3.0.0", - "d3-array": "^3.1.6", - "d3-ease": "^3.0.1", - "d3-interpolate": "^3.0.1", - "d3-scale": "^4.0.2", - "d3-shape": "^3.1.0", - "d3-time": "^3.0.0", - "d3-timer": "^3.0.1" - } - }, - "node_modules/webgl-constants": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz", - "integrity": "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg==" - }, - "node_modules/webgl-sdf-generator": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz", - "integrity": "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA==", - "license": "MIT" - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zod": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/zod/-/zod-4.3.6.tgz", - "integrity": "sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-validation-error": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-4.0.2.tgz", - "integrity": "sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - }, - "peerDependencies": { - "zod": "^3.25.0 || ^4.0.0" - } - }, - "node_modules/zustand": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.11.tgz", - "integrity": "sha512-fdZY+dk7zn/vbWNCYmzZULHRrss0jx5pPFiOuMZ/5HJN6Yv3u+1Wswy/4MpZEkEGhtNH+pwxZB8OKgUBPzYAGg==", - "license": "MIT", - "engines": { - "node": ">=12.20.0" - }, - "peerDependencies": { - "@types/react": ">=18.0.0", - "immer": ">=9.0.6", - "react": ">=18.0.0", - "use-sync-external-store": ">=1.2.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "immer": { - "optional": true - }, - "react": { - "optional": true - }, - "use-sync-external-store": { - "optional": true - } - } - } - } -} diff --git a/dashboard/package.json b/dashboard/package.json deleted file mode 100644 index 2226851..0000000 --- a/dashboard/package.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "dashboard", - "version": "0.1.0", - "private": true, - "scripts": { - "dev": "next dev", - "build": "next build", - "start": "next start", - "lint": "eslint" - }, - "dependencies": { - "@radix-ui/react-accordion": "^1.2.12", - "@radix-ui/react-alert-dialog": "^1.1.15", - "@radix-ui/react-collapsible": "^1.1.12", - "@radix-ui/react-dialog": "^1.1.15", - "@radix-ui/react-select": "^2.2.6", - "@radix-ui/react-slider": "^1.3.6", - "@radix-ui/react-slot": "^1.2.4", - "@radix-ui/react-tabs": "^1.1.13", - "@radix-ui/react-tooltip": "^1.2.8", - "@react-three/drei": "^10.7.7", - "@react-three/fiber": "^9.5.0", - "@react-three/postprocessing": "^3.0.4", - "@types/three": "^0.182.0", - "class-variance-authority": "^0.7.1", - "clsx": "^2.1.1", - "d3-force": "^3.0.0", - "framer-motion": "^12.34.0", - "lucide-react": "^0.563.0", - "next": "16.1.6", - "pixi.js": "^8.16.0", - "react": "19.2.3", - "react-dom": "19.2.3", - "recharts": "^3.7.0", - "swr": "^2.4.0", - "tailwind-merge": "^3.4.0", - "three": "^0.172.0", - "zustand": "^5.0.11" - }, - "devDependencies": { - "@tailwindcss/postcss": "^4", - "@types/d3-force": "^3.0.10", - "@types/node": "^20", - "@types/react": "^19", - "@types/react-dom": "^19", - "eslint": "^9", - "eslint-config-next": "16.1.6", - "tailwindcss": "^4", - "typescript": "^5" - } -} diff --git a/dashboard/postcss.config.mjs b/dashboard/postcss.config.mjs deleted file mode 100644 index 61e3684..0000000 --- a/dashboard/postcss.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -const config = { - plugins: { - "@tailwindcss/postcss": {}, - }, -}; - -export default config; diff --git a/dashboard/public/file.svg b/dashboard/public/file.svg deleted file mode 100644 index 004145c..0000000 --- a/dashboard/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dashboard/public/globe.svg b/dashboard/public/globe.svg deleted file mode 100644 index 567f17b..0000000 --- a/dashboard/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dashboard/public/next.svg b/dashboard/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/dashboard/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dashboard/public/vercel.svg b/dashboard/public/vercel.svg deleted file mode 100644 index 7705396..0000000 --- a/dashboard/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dashboard/public/window.svg b/dashboard/public/window.svg deleted file mode 100644 index b2b2a44..0000000 --- a/dashboard/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/dashboard/src/app/categories/page.tsx b/dashboard/src/app/categories/page.tsx deleted file mode 100644 index 1c9c301..0000000 --- a/dashboard/src/app/categories/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function CategoriesRedirect() { - redirect("/cortex"); -} diff --git a/dashboard/src/app/conflicts/page.tsx b/dashboard/src/app/conflicts/page.tsx deleted file mode 100644 index 4677335..0000000 --- a/dashboard/src/app/conflicts/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function ConflictsRedirect() { - redirect("/synapses"); -} diff --git a/dashboard/src/app/constellation/page.tsx b/dashboard/src/app/constellation/page.tsx deleted file mode 100644 index d7ffe61..0000000 --- a/dashboard/src/app/constellation/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function ConstellationRedirect() { - redirect("/cortex"); -} diff --git a/dashboard/src/app/cortex/page.tsx b/dashboard/src/app/cortex/page.tsx deleted file mode 100644 index bb14909..0000000 --- a/dashboard/src/app/cortex/page.tsx +++ /dev/null @@ -1,36 +0,0 @@ -"use client"; - -import dynamic from "next/dynamic"; -import { ClusterToolbar } from "@/components/clusters/cluster-toolbar"; - -const ClusterCanvas = dynamic( - () => import("@/components/clusters/cluster-canvas").then(m => ({ default: m.ClusterCanvas })), - { - ssr: false, - loading: () => ( -
-
Mapping cortex...
-
- ), - } -); - -export default function CortexPage() { - return ( -
- {/* Toolbar */} -
-
-

Cortex

-

Cluster explorer — regroup memories by any dimension

-
- -
- - {/* Canvas */} -
- -
-
- ); -} diff --git a/dashboard/src/app/dashboard/page.tsx b/dashboard/src/app/dashboard/page.tsx deleted file mode 100644 index 61930d8..0000000 --- a/dashboard/src/app/dashboard/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function DashboardRedirect() { - redirect("/"); -} diff --git a/dashboard/src/app/favicon.ico b/dashboard/src/app/favicon.ico deleted file mode 100644 index 718d6fea4835ec2d246af9800eddb7ffb276240c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25931 zcmeHv30#a{`}aL_*G&7qml|y<+KVaDM2m#dVr!KsA!#An?kSQM(q<_dDNCpjEux83 zLb9Z^XxbDl(w>%i@8hT6>)&Gu{h#Oeyszu?xtw#Zb1mO{pgX9699l+Qppw7jXaYf~-84xW z)w4x8?=youko|}Vr~(D$UXIbiXABHh`p1?nn8Po~fxRJv}|0e(BPs|G`(TT%kKVJAdg5*Z|x0leQq0 zkdUBvb#>9F()jo|T~kx@OM8$9wzs~t2l;K=woNssA3l6|sx2r3+kdfVW@e^8e*E}v zA1y5{bRi+3Z`uD3{F7LgFJDdvm;nJilkzDku>BwXH(8ItVCXk*-lSJnR?-2UN%hJ){&rlvg`CDTj z)Bzo!3v7Ou#83zEDEFcKt(f1E0~=rqeEbTnMvWR#{+9pg%7G8y>u1OVRUSoox-ovF z2Ydma(;=YuBY(eI|04{hXzZD6_f(v~H;C~y5=DhAC{MMS>2fm~1H_t2$56pc$NH8( z5bH|<)71dV-_oCHIrzrT`2s-5w_+2CM0$95I6X8p^r!gHp+j_gd;9O<1~CEQQGS8) zS9Qh3#p&JM-G8rHekNmKVewU;pJRcTAog68KYo^dRo}(M>36U4Us zfgYWSiHZL3;lpWT=zNAW>Dh#mB!_@Lg%$ms8N-;aPqMn+C2HqZgz&9~Eu z4|Kp<`$q)Uw1R?y(~S>ePdonHxpV1#eSP1B;Ogo+-Pk}6#0GsZZ5!||ev2MGdh}_m z{DeR7?0-1^zVs&`AV6Vt;r3`I`OI_wgs*w=eO%_#7Kepl{B@xiyCANc(l zzIyd4y|c6PXWq9-|KM8(zIk8LPk(>a)zyFWjhT!$HJ$qX1vo@d25W<fvZQ2zUz5WRc(UnFMKHwe1| zWmlB1qdbiA(C0jmnV<}GfbKtmcu^2*P^O?MBLZKt|As~ge8&AAO~2K@zbXelK|4T<{|y4`raF{=72kC2Kn(L4YyenWgrPiv z@^mr$t{#X5VuIMeL!7Ab6_kG$&#&5p*Z{+?5U|TZ`B!7llpVmp@skYz&n^8QfPJzL z0G6K_OJM9x+Wu2gfN45phANGt{7=C>i34CV{Xqlx(fWpeAoj^N0Biu`w+MVcCUyU* zDZuzO0>4Z6fbu^T_arWW5n!E45vX8N=bxTVeFoep_G#VmNlQzAI_KTIc{6>c+04vr zx@W}zE5JNSU>!THJ{J=cqjz+4{L4A{Ob9$ZJ*S1?Ggg3klFp!+Y1@K+pK1DqI|_gq z5ZDXVpge8-cs!o|;K73#YXZ3AShj50wBvuq3NTOZ`M&qtjj#GOFfgExjg8Gn8>Vq5 z`85n+9|!iLCZF5$HJ$Iu($dm?8~-ofu}tEc+-pyke=3!im#6pk_Wo8IA|fJwD&~~F zc16osQ)EBo58U7XDuMexaPRjU@h8tXe%S{fA0NH3vGJFhuyyO!Uyl2^&EOpX{9As0 zWj+P>{@}jxH)8|r;2HdupP!vie{sJ28b&bo!8`D^x}TE$%zXNb^X1p@0PJ86`dZyj z%ce7*{^oo+6%&~I!8hQy-vQ7E)0t0ybH4l%KltWOo~8cO`T=157JqL(oq_rC%ea&4 z2NcTJe-HgFjNg-gZ$6!Y`SMHrlj}Etf7?r!zQTPPSv}{so2e>Fjs1{gzk~LGeesX%r(Lh6rbhSo_n)@@G-FTQy93;l#E)hgP@d_SGvyCp0~o(Y;Ee8{ zdVUDbHm5`2taPUOY^MAGOw*>=s7=Gst=D+p+2yON!0%Hk` zz5mAhyT4lS*T3LS^WSxUy86q&GnoHxzQ6vm8)VS}_zuqG?+3td68_x;etQAdu@sc6 zQJ&5|4(I?~3d-QOAODHpZ=hlSg(lBZ!JZWCtHHSj`0Wh93-Uk)_S%zsJ~aD>{`A0~ z9{AG(e|q3g5B%wYKRxiL2Y$8(4w6bzchKuloQW#e&S3n+P- z8!ds-%f;TJ1>)v)##>gd{PdS2Oc3VaR`fr=`O8QIO(6(N!A?pr5C#6fc~Ge@N%Vvu zaoAX2&(a6eWy_q&UwOhU)|P3J0Qc%OdhzW=F4D|pt0E4osw;%<%Dn58hAWD^XnZD= z>9~H(3bmLtxpF?a7su6J7M*x1By7YSUbxGi)Ot0P77`}P3{)&5Un{KD?`-e?r21!4vTTnN(4Y6Lin?UkSM z`MXCTC1@4A4~mvz%Rh2&EwY))LeoT=*`tMoqcEXI>TZU9WTP#l?uFv+@Dn~b(>xh2 z;>B?;Tz2SR&KVb>vGiBSB`@U7VIWFSo=LDSb9F{GF^DbmWAfpms8Sx9OX4CnBJca3 zlj9(x!dIjN?OG1X4l*imJNvRCk}F%!?SOfiOq5y^mZW)jFL@a|r-@d#f7 z2gmU8L3IZq0ynIws=}~m^#@&C%J6QFo~Mo4V`>v7MI-_!EBMMtb%_M&kvAaN)@ZVw z+`toz&WG#HkWDjnZE!6nk{e-oFdL^$YnbOCN}JC&{$#$O27@|Tn-skXr)2ml2~O!5 zX+gYoxhoc7qoU?C^3~&!U?kRFtnSEecWuH0B0OvLodgUAi}8p1 zrO6RSXHH}DMc$&|?D004DiOVMHV8kXCP@7NKB zgaZq^^O<7PoKEp72kby@W0Z!Y*Ay{&vfg#C&gG@YVR9g?FEocMUi1gSN$+V+ayF45{a zuDZDTN}mS|;BO%gEf}pjBfN2-gIrU#G5~cucA;dokXW89%>AyXJJI z9X4UlIWA|ZYHgbI z5?oFk@A=Ik7lrEQPDH!H+b`7_Y~aDb_qa=B2^Y&Ow41cU=4WDd40dp5(QS-WMN-=Y z9g;6_-JdNU;|6cPwf$ak*aJIcwL@1n$#l~zi{c{EW?T;DaW*E8DYq?Umtz{nJ&w-M zEMyTDrC&9K$d|kZe2#ws6)L=7K+{ zQw{XnV6UC$6-rW0emqm8wJoeZK)wJIcV?dST}Z;G0Arq{dVDu0&4kd%N!3F1*;*pW zR&qUiFzK=@44#QGw7k1`3t_d8&*kBV->O##t|tonFc2YWrL7_eqg+=+k;!F-`^b8> z#KWCE8%u4k@EprxqiV$VmmtiWxDLgnGu$Vs<8rppV5EajBXL4nyyZM$SWVm!wnCj-B!Wjqj5-5dNXukI2$$|Bu3Lrw}z65Lc=1G z^-#WuQOj$hwNGG?*CM_TO8Bg-1+qc>J7k5c51U8g?ZU5n?HYor;~JIjoWH-G>AoUP ztrWWLbRNqIjW#RT*WqZgPJXU7C)VaW5}MiijYbABmzoru6EmQ*N8cVK7a3|aOB#O& zBl8JY2WKfmj;h#Q!pN%9o@VNLv{OUL?rixHwOZuvX7{IJ{(EdPpuVFoQqIOa7giLVkBOKL@^smUA!tZ1CKRK}#SSM)iQHk)*R~?M!qkCruaS!#oIL1c z?J;U~&FfH#*98^G?i}pA{ z9Jg36t4=%6mhY(quYq*vSxptes9qy|7xSlH?G=S@>u>Ebe;|LVhs~@+06N<4CViBk zUiY$thvX;>Tby6z9Y1edAMQaiH zm^r3v#$Q#2T=X>bsY#D%s!bhs^M9PMAcHbCc0FMHV{u-dwlL;a1eJ63v5U*?Q_8JO zT#50!RD619#j_Uf))0ooADz~*9&lN!bBDRUgE>Vud-i5ck%vT=r^yD*^?Mp@Q^v+V zG#-?gKlr}Eeqifb{|So?HM&g91P8|av8hQoCmQXkd?7wIJwb z_^v8bbg`SAn{I*4bH$u(RZ6*xUhuA~hc=8czK8SHEKTzSxgbwi~9(OqJB&gwb^l4+m`k*Q;_?>Y-APi1{k zAHQ)P)G)f|AyjSgcCFps)Fh6Bca*Xznq36!pV6Az&m{O8$wGFD? zY&O*3*J0;_EqM#jh6^gMQKpXV?#1?>$ml1xvh8nSN>-?H=V;nJIwB07YX$e6vLxH( zqYwQ>qxwR(i4f)DLd)-$P>T-no_c!LsN@)8`e;W@)-Hj0>nJ-}Kla4-ZdPJzI&Mce zv)V_j;(3ERN3_@I$N<^|4Lf`B;8n+bX@bHbcZTopEmDI*Jfl)-pFDvo6svPRoo@(x z);_{lY<;);XzT`dBFpRmGrr}z5u1=pC^S-{ce6iXQlLGcItwJ^mZx{m$&DA_oEZ)B{_bYPq-HA zcH8WGoBG(aBU_j)vEy+_71T34@4dmSg!|M8Vf92Zj6WH7Q7t#OHQqWgFE3ARt+%!T z?oLovLVlnf?2c7pTc)~cc^($_8nyKwsN`RA-23ed3sdj(ys%pjjM+9JrctL;dy8a( z@en&CQmnV(()bu|Y%G1-4a(6x{aLytn$T-;(&{QIJB9vMox11U-1HpD@d(QkaJdEb zG{)+6Dos_L+O3NpWo^=gR?evp|CqEG?L&Ut#D*KLaRFOgOEK(Kq1@!EGcTfo+%A&I z=dLbB+d$u{sh?u)xP{PF8L%;YPPW53+@{>5W=Jt#wQpN;0_HYdw1{ksf_XhO4#2F= zyPx6Lx2<92L-;L5PD`zn6zwIH`Jk($?Qw({erA$^bC;q33hv!d!>%wRhj# zal^hk+WGNg;rJtb-EB(?czvOM=H7dl=vblBwAv>}%1@{}mnpUznfq1cE^sgsL0*4I zJ##!*B?=vI_OEVis5o+_IwMIRrpQyT_Sq~ZU%oY7c5JMIADzpD!Upz9h@iWg_>>~j zOLS;wp^i$-E?4<_cp?RiS%Rd?i;f*mOz=~(&3lo<=@(nR!_Rqiprh@weZlL!t#NCc zO!QTcInq|%#>OVgobj{~ixEUec`E25zJ~*DofsQdzIa@5^nOXj2T;8O`l--(QyU^$t?TGY^7#&FQ+2SS3B#qK*k3`ye?8jUYSajE5iBbJls75CCc(m3dk{t?- zopcER9{Z?TC)mk~gpi^kbbu>b-+a{m#8-y2^p$ka4n60w;Sc2}HMf<8JUvhCL0B&Btk)T`ctE$*qNW8L$`7!r^9T+>=<=2qaq-;ll2{`{Rg zc5a0ZUI$oG&j-qVOuKa=*v4aY#IsoM+1|c4Z)<}lEDvy;5huB@1RJPquU2U*U-;gu z=En2m+qjBzR#DEJDO`WU)hdd{Vj%^0V*KoyZ|5lzV87&g_j~NCjwv0uQVqXOb*QrQ zy|Qn`hxx(58c70$E;L(X0uZZ72M1!6oeg)(cdKO ze0gDaTz+ohR-#d)NbAH4x{I(21yjwvBQfmpLu$)|m{XolbgF!pmsqJ#D}(ylp6uC> z{bqtcI#hT#HW=wl7>p!38sKsJ`r8}lt-q%Keqy%u(xk=yiIJiUw6|5IvkS+#?JTBl z8H5(Q?l#wzazujH!8o>1xtn8#_w+397*_cy8!pQGP%K(Ga3pAjsaTbbXJlQF_+m+-UpUUent@xM zg%jqLUExj~o^vQ3Gl*>wh=_gOr2*|U64_iXb+-111aH}$TjeajM+I20xw(((>fej-@CIz4S1pi$(#}P7`4({6QS2CaQS4NPENDp>sAqD z$bH4KGzXGffkJ7R>V>)>tC)uax{UsN*dbeNC*v}#8Y#OWYwL4t$ePR?VTyIs!wea+ z5Urmc)X|^`MG~*dS6pGSbU+gPJoq*^a=_>$n4|P^w$sMBBy@f*Z^Jg6?n5?oId6f{ z$LW4M|4m502z0t7g<#Bx%X;9<=)smFolV&(V^(7Cv2-sxbxopQ!)*#ZRhTBpx1)Fc zNm1T%bONzv6@#|dz(w02AH8OXe>kQ#1FMCzO}2J_mST)+ExmBr9cva-@?;wnmWMOk z{3_~EX_xadgJGv&H@zK_8{(x84`}+c?oSBX*Ge3VdfTt&F}yCpFP?CpW+BE^cWY0^ zb&uBN!Ja3UzYHK-CTyA5=L zEMW{l3Usky#ly=7px648W31UNV@K)&Ub&zP1c7%)`{);I4b0Q<)B}3;NMG2JH=X$U zfIW4)4n9ZM`-yRj67I)YSLDK)qfUJ_ij}a#aZN~9EXrh8eZY2&=uY%2N0UFF7<~%M zsB8=erOWZ>Ct_#^tHZ|*q`H;A)5;ycw*IcmVxi8_0Xk}aJA^ath+E;xg!x+As(M#0=)3!NJR6H&9+zd#iP(m0PIW8$ z1Y^VX`>jm`W!=WpF*{ioM?C9`yOR>@0q=u7o>BP-eSHqCgMDj!2anwH?s%i2p+Q7D zzszIf5XJpE)IG4;d_(La-xenmF(tgAxK`Y4sQ}BSJEPs6N_U2vI{8=0C_F?@7<(G; zo$~G=8p+076G;`}>{MQ>t>7cm=zGtfbdDXm6||jUU|?X?CaE?(<6bKDYKeHlz}DA8 zXT={X=yp_R;HfJ9h%?eWvQ!dRgz&Su*JfNt!Wu>|XfU&68iRikRrHRW|ZxzRR^`eIGt zIeiDgVS>IeExKVRWW8-=A=yA`}`)ZkWBrZD`hpWIxBGkh&f#ijr449~m`j6{4jiJ*C!oVA8ZC?$1RM#K(_b zL9TW)kN*Y4%^-qPpMP7d4)o?Nk#>aoYHT(*g)qmRUb?**F@pnNiy6Fv9rEiUqD(^O zzyS?nBrX63BTRYduaG(0VVG2yJRe%o&rVrLjbxTaAFTd8s;<<@Qs>u(<193R8>}2_ zuwp{7;H2a*X7_jryzriZXMg?bTuegABb^87@SsKkr2)0Gyiax8KQWstw^v#ix45EVrcEhr>!NMhprl$InQMzjSFH54x5k9qHc`@9uKQzvL4ihcq{^B zPrVR=o_ic%Y>6&rMN)hTZsI7I<3&`#(nl+3y3ys9A~&^=4?PL&nd8)`OfG#n zwAMN$1&>K++c{^|7<4P=2y(B{jJsQ0a#U;HTo4ZmWZYvI{+s;Td{Yzem%0*k#)vjpB zia;J&>}ICate44SFYY3vEelqStQWFihx%^vQ@Do(sOy7yR2@WNv7Y9I^yL=nZr3mb zXKV5t@=?-Sk|b{XMhA7ZGB@2hqsx}4xwCW!in#C zI@}scZlr3-NFJ@NFaJlhyfcw{k^vvtGl`N9xSo**rDW4S}i zM9{fMPWo%4wYDG~BZ18BD+}h|GQKc-g^{++3MY>}W_uq7jGHx{mwE9fZiPCoxN$+7 zrODGGJrOkcPQUB(FD5aoS4g~7#6NR^ma7-!>mHuJfY5kTe6PpNNKC9GGRiu^L31uG z$7v`*JknQHsYB!Tm_W{a32TM099djW%5e+j0Ve_ct}IM>XLF1Ap+YvcrLV=|CKo6S zb+9Nl3_YdKP6%Cxy@6TxZ>;4&nTneadr z_ES90ydCev)LV!dN=#(*f}|ZORFdvkYBni^aLbUk>BajeWIOcmHP#8S)*2U~QKI%S zyrLmtPqb&TphJ;>yAxri#;{uyk`JJqODDw%(Z=2`1uc}br^V%>j!gS)D*q*f_-qf8&D;W1dJgQMlaH5er zN2U<%Smb7==vE}dDI8K7cKz!vs^73o9f>2sgiTzWcwY|BMYHH5%Vn7#kiw&eItCqa zIkR2~Q}>X=Ar8W|^Ms41Fm8o6IB2_j60eOeBB1Br!boW7JnoeX6Gs)?7rW0^5psc- zjS16yb>dFn>KPOF;imD}e!enuIniFzv}n$m2#gCCv4jM#ArwlzZ$7@9&XkFxZ4n!V zj3dyiwW4Ki2QG{@i>yuZXQizw_OkZI^-3otXC{!(lUpJF33gI60ak;Uqitp74|B6I zgg{b=Iz}WkhCGj1M=hu4#Aw173YxIVbISaoc z-nLZC*6Tgivd5V`K%GxhBsp@SUU60-rfc$=wb>zdJzXS&-5(NRRodFk;Kxk!S(O(a0e7oY=E( zAyS;Ow?6Q&XA+cnkCb{28_1N8H#?J!*$MmIwLq^*T_9-z^&UE@A(z9oGYtFy6EZef LrJugUA?W`A8`#=m diff --git a/dashboard/src/app/globals.css b/dashboard/src/app/globals.css deleted file mode 100644 index f3d77de..0000000 --- a/dashboard/src/app/globals.css +++ /dev/null @@ -1,128 +0,0 @@ -@import "tailwindcss"; - -@theme inline { - --color-background: #050510; - --color-foreground: #e2e8f0; - --color-muted: #12122a; - --color-muted-foreground: #94a3b8; - --color-border: rgba(124, 58, 237, 0.15); - --color-ring: #7c3aed; - --color-sml: #22d3ee; - --color-lml: #fbbf24; - --color-brand: #7c3aed; - --color-destructive: #ef4444; - --color-success: #22c55e; - --color-episodic: #7c3aed; - --color-semantic: #06d6a0; - --color-s-fast: #ef4444; - --color-s-mid: #f59e0b; - --color-s-slow: #22c55e; - --color-void: #050510; - --color-cortex: #0a0a1a; - --color-synapse: #12122a; - --color-membrane: #1a1a3a; - --color-neural-glow: #7c3aed40; - --color-synapse-glow: #22d3ee30; - --font-sans: var(--font-geist-sans); - --font-mono: var(--font-geist-mono); -} - -body { - background: var(--color-void); - color: var(--color-foreground); - font-family: var(--font-sans), system-ui, sans-serif; -} - -/* Glass-morphism utility */ -.glass { - background: rgba(26, 26, 58, 0.6); - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); - border: 1px solid rgba(124, 58, 237, 0.15); - border-radius: 12px; -} - -.glass-subtle { - background: rgba(18, 18, 42, 0.5); - backdrop-filter: blur(8px); - -webkit-backdrop-filter: blur(8px); - border: 1px solid rgba(124, 58, 237, 0.08); - border-radius: 8px; -} - -/* Neural glow effects */ -.glow-episodic { - box-shadow: 0 0 20px rgba(124, 58, 237, 0.3), 0 0 60px rgba(124, 58, 237, 0.1); -} - -.glow-semantic { - box-shadow: 0 0 20px rgba(6, 214, 160, 0.3), 0 0 60px rgba(6, 214, 160, 0.1); -} - -.glow-sml { - box-shadow: 0 0 20px rgba(34, 211, 238, 0.3), 0 0 60px rgba(34, 211, 238, 0.1); -} - -.glow-lml { - box-shadow: 0 0 20px rgba(251, 191, 36, 0.3), 0 0 60px rgba(251, 191, 36, 0.1); -} - -/* Pulse animation */ -@keyframes neural-pulse { - 0%, 100% { opacity: 0.6; transform: scale(1); } - 50% { opacity: 1; transform: scale(1.05); } -} - -.animate-neural-pulse { - animation: neural-pulse 3s ease-in-out infinite; -} - -@keyframes breathe { - 0%, 100% { opacity: 0.4; } - 50% { opacity: 0.8; } -} - -.animate-breathe { - animation: breathe 4s ease-in-out infinite; -} - -/* Scrollbar styling */ -::-webkit-scrollbar { - width: 6px; - height: 6px; -} - -::-webkit-scrollbar-track { - background: transparent; -} - -::-webkit-scrollbar-thumb { - background: rgba(124, 58, 237, 0.3); - border-radius: 3px; -} - -::-webkit-scrollbar-thumb:hover { - background: rgba(124, 58, 237, 0.5); -} - -/* Recharts dark theme overrides */ -.recharts-text { - fill: #94a3b8 !important; -} - -.recharts-cartesian-grid line { - stroke: rgba(124, 58, 237, 0.08) !important; -} - -.recharts-tooltip-wrapper .recharts-default-tooltip { - background: rgba(26, 26, 58, 0.9) !important; - border: 1px solid rgba(124, 58, 237, 0.2) !important; - border-radius: 8px !important; - backdrop-filter: blur(8px); -} - -/* Selection color */ -::selection { - background: rgba(124, 58, 237, 0.4); - color: #e2e8f0; -} diff --git a/dashboard/src/app/hippocampus/page.tsx b/dashboard/src/app/hippocampus/page.tsx deleted file mode 100644 index ad01416..0000000 --- a/dashboard/src/app/hippocampus/page.tsx +++ /dev/null @@ -1,39 +0,0 @@ -"use client"; - -import { SceneCorridor } from "@/components/hippocampus/scene-corridor"; -import { SleepVisualizer } from "@/components/hippocampus/sleep-visualizer"; -import { TraceCascadeViz } from "@/components/hippocampus/trace-cascade-viz"; -import { ForgettingDashboard } from "@/components/hippocampus/forgetting-dashboard"; -import { DecaySparkline } from "@/components/dashboard/decay-sparkline"; -import { useDecayLog } from "@/lib/hooks/use-decay-log"; - -export default function HippocampusPage() { - const { data: decayLog } = useDecayLog(); - - return ( -
-
-

Hippocampus

-

Memory lifecycle — scenes, sleep cycles, distillation, and forgetting

-
- - {/* Scene corridor */} -
-

Memory Palace — Scene Timeline

- -
- - {/* Sleep cycle visualizer */} - - - {/* Trace cascade + Decay */} -
- - -
- - {/* Forgetting dashboard */} - -
- ); -} diff --git a/dashboard/src/app/layout.tsx b/dashboard/src/app/layout.tsx deleted file mode 100644 index 4916767..0000000 --- a/dashboard/src/app/layout.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import type { Metadata } from "next"; -import { Geist, Geist_Mono } from "next/font/google"; -import "./globals.css"; -import { NeuralSidebar } from "@/components/layout/neural-sidebar"; -import { TopBar } from "@/components/layout/top-bar"; -import { InspectorWrapper } from "@/components/memory-inspector/inspector-panel"; - -const geistSans = Geist({ variable: "--font-geist-sans", subsets: ["latin"] }); -const geistMono = Geist_Mono({ variable: "--font-geist-mono", subsets: ["latin"] }); - -export const metadata: Metadata = { - title: "Engram — Neural Memory", - description: "Living neural memory visualizer", -}; - -export default function RootLayout({ - children, -}: { - children: React.ReactNode; -}) { - return ( - - -
- -
- -
- {children} -
-
- -
- - - ); -} diff --git a/dashboard/src/app/memories/page.tsx b/dashboard/src/app/memories/page.tsx deleted file mode 100644 index 0ec3d27..0000000 --- a/dashboard/src/app/memories/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function MemoriesRedirect() { - redirect("/cortex"); -} diff --git a/dashboard/src/app/page.tsx b/dashboard/src/app/page.tsx deleted file mode 100644 index 9f6318a..0000000 --- a/dashboard/src/app/page.tsx +++ /dev/null @@ -1,176 +0,0 @@ -"use client"; - -import dynamic from "next/dynamic"; -import { useStats } from "@/lib/hooks/use-stats"; -import { useConflicts } from "@/lib/hooks/use-conflicts"; -import { useStaging } from "@/lib/hooks/use-staging"; -import { useDecayLog } from "@/lib/hooks/use-decay-log"; -import { StatCardsRow } from "@/components/dashboard/stat-cards-row"; -import { LayerDonut } from "@/components/dashboard/layer-donut"; -import { CategoriesBar } from "@/components/dashboard/categories-bar"; -import { DecaySparkline } from "@/components/dashboard/decay-sparkline"; -import { useScrollProgress } from "@/lib/hooks/use-scroll-progress"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -const BrainCanvas = dynamic(() => import("@/components/brain/brain-canvas").then(m => ({ default: m.BrainCanvas })), { - ssr: false, - loading: () => ( -
-
Loading neural mesh...
-
- ), -}); - -function ScrollSection({ - children, - className, - id, -}: { - children: React.ReactNode; - className?: string; - id?: string; -}) { - return ( -
- {children} -
- ); -} - -export default function BrainHeroPage() { - const scrollProgress = useScrollProgress(); - const { data: stats } = useStats(); - const { data: conflicts } = useConflicts("UNRESOLVED"); - const { data: staging } = useStaging("PENDING"); - const { data: decayLog } = useDecayLog(); - - const totalMemories = stats?.total_memories ?? 0; - const smlCount = stats?.sml_count ?? 0; - const lmlCount = stats?.lml_count ?? 0; - const categoryCount = stats ? Object.keys(stats.categories).length : 0; - const conflictCount = conflicts?.conflicts?.length ?? 0; - const pendingCount = staging?.commits?.length ?? 0; - - return ( -
- {/* Fixed 3D brain background */} -
- -
- - {/* Scroll sections overlay */} -
- {/* Section 0: Brain overview + floating stats */} - -
-
-

- Neural Memory -

-

- {totalMemories} memories across {categoryCount} categories -

-
-
- -
-
-
- - {/* Section 1: Layer split — SML vs LML */} - -
-
-
-

Short-Term Memory

-

{smlCount}

-

Active in SML — fast recall, rapid decay

-
-
0 ? `${(smlCount / totalMemories) * 100}%` : '0%', - backgroundColor: NEURAL.sml, - boxShadow: `0 0 8px ${NEURAL.sml}`, - }} - /> -
-
-
-

Long-Term Memory

-

{lmlCount}

-

Consolidated in LML — durable, stable

-
-
0 ? `${(lmlCount / totalMemories) * 100}%` : '0%', - backgroundColor: NEURAL.lml, - boxShadow: `0 0 8px ${NEURAL.lml}`, - }} - /> -
-
-
-
- - - {/* Section 2: Categories + Distribution */} - -
-
-

Category Clusters

-

How memories organize into knowledge regions

-
-
- - -
-
-
- - {/* Section 3: Decay landscape */} - -
-
-

Decay Landscape

-

Memory strength fading over time — the rhythm of forgetting

-
-
- -
-
-
- - {/* Section 4: CTA scroll end */} - -
-

- Explore the Cortex -

-

- Dive into the cluster explorer for full interactive visualization -

- - Open Cortex - -
-
-
-
- ); -} diff --git a/dashboard/src/app/profiles/page.tsx b/dashboard/src/app/profiles/page.tsx deleted file mode 100644 index f960c3f..0000000 --- a/dashboard/src/app/profiles/page.tsx +++ /dev/null @@ -1,103 +0,0 @@ -"use client"; - -import { useProfiles } from "@/lib/hooks/use-profiles"; -import { IdentityRings } from "@/components/profiles/identity-rings"; -import { EmptyState } from "@/components/shared/empty-state"; -import { Users } from "lucide-react"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -export default function ProfilesPage() { - const { data, isLoading } = useProfiles(); - const profiles = data?.profiles ?? []; - - return ( -
-
-

Identity Cortex

-

- Concentric rings — self at center, contacts in middle, entities at outer edge -

-
- - {isLoading ? ( -
-
Mapping identities...
-
- ) : profiles.length === 0 ? ( - - ) : ( - <> - - - {/* Profile list */} -
- {profiles.map((profile) => { - const typeColors: Record = { - self: NEURAL.lml, - contact: NEURAL.sml, - entity: NEURAL.semantic, - }; - const color = typeColors[profile.type] || NEURAL.episodic; - - return ( -
-
-
- {profile.name.charAt(0).toUpperCase()} -
-
-

{profile.name}

- - {profile.type} - -
-
- - {profile.facts && profile.facts.length > 0 && ( -
-

Facts

-
    - {profile.facts.slice(0, 3).map((fact, i) => ( -
  • {fact}
  • - ))} - {profile.facts.length > 3 && ( -
  • +{profile.facts.length - 3} more
  • - )} -
-
- )} - - {profile.relationships && profile.relationships.length > 0 && ( -
-

Connections

-
- {profile.relationships.map((rel, i) => ( - - {rel.target_name} - - ))} -
-
- )} -
- ); - })} -
- - )} -
- ); -} diff --git a/dashboard/src/app/scenes/page.tsx b/dashboard/src/app/scenes/page.tsx deleted file mode 100644 index bb3c339..0000000 --- a/dashboard/src/app/scenes/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function ScenesRedirect() { - redirect("/hippocampus"); -} diff --git a/dashboard/src/app/staging/page.tsx b/dashboard/src/app/staging/page.tsx deleted file mode 100644 index 9e2f6b4..0000000 --- a/dashboard/src/app/staging/page.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import { redirect } from "next/navigation"; - -export default function StagingRedirect() { - redirect("/synapses"); -} diff --git a/dashboard/src/app/synapses/page.tsx b/dashboard/src/app/synapses/page.tsx deleted file mode 100644 index 15b6c0c..0000000 --- a/dashboard/src/app/synapses/page.tsx +++ /dev/null @@ -1,99 +0,0 @@ -"use client"; - -import dynamic from "next/dynamic"; -import { useConflicts } from "@/lib/hooks/use-conflicts"; -import { useStaging } from "@/lib/hooks/use-staging"; -import { ConflictSynapse } from "@/components/synapses/conflict-synapse"; -import { StagingSynapse } from "@/components/synapses/staging-synapse"; -import { EmptyState } from "@/components/shared/empty-state"; -import { AlertTriangle, GitBranch, Cable } from "lucide-react"; -import { useState } from "react"; -import { cn } from "@/lib/utils/format"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -const SynapseGraph = dynamic( - () => import("@/components/synapses/synapse-graph").then(m => ({ default: m.SynapseGraph })), - { ssr: false, loading: () =>
Mapping synapses...
} -); - -type Tab = "graph" | "conflicts" | "staging"; - -export default function SynapsesPage() { - const [tab, setTab] = useState("graph"); - const { data: conflictsData, mutate: mutateConflicts } = useConflicts(); - const { data: stagingData, mutate: mutateStaging } = useStaging(); - - const conflicts = conflictsData?.conflicts ?? []; - const commits = stagingData?.commits ?? []; - const unresolvedCount = conflicts.filter(c => !c.resolution).length; - const pendingCount = commits.filter(c => c.status === "PENDING").length; - - return ( -
- {/* Header */} -
-
-

Synapses

-

Connections, conflicts, and staging proposals

-
-
- {([ - { id: "graph" as Tab, label: "Graph", icon: Cable }, - { id: "conflicts" as Tab, label: `Conflicts${unresolvedCount > 0 ? ` (${unresolvedCount})` : ''}`, icon: AlertTriangle }, - { id: "staging" as Tab, label: `Staging${pendingCount > 0 ? ` (${pendingCount})` : ''}`, icon: GitBranch }, - ]).map(({ id, label, icon: Icon }) => ( - - ))} -
-
- - {/* Content */} -
- {tab === "graph" && ( -
- -
- )} - - {tab === "conflicts" && ( -
- {conflicts.length === 0 ? ( - - ) : ( -
- {conflicts.map(c => ( - - ))} -
- )} -
- )} - - {tab === "staging" && ( -
- {commits.length === 0 ? ( - - ) : ( -
- {commits.map(c => ( - - ))} -
- )} -
- )} -
-
- ); -} diff --git a/dashboard/src/components/brain/brain-canvas.tsx b/dashboard/src/components/brain/brain-canvas.tsx deleted file mode 100644 index d4d4e32..0000000 --- a/dashboard/src/components/brain/brain-canvas.tsx +++ /dev/null @@ -1,216 +0,0 @@ -"use client"; - -import { Canvas } from "@react-three/fiber"; -import { OrbitControls, Float } from "@react-three/drei"; -import { EffectComposer, Bloom } from "@react-three/postprocessing"; -import { Suspense, useMemo, useRef } from "react"; -import * as THREE from "three"; -import { useConstellation } from "@/lib/hooks/use-constellation"; -import { NEURAL } from "@/lib/utils/neural-palette"; -import { useFrame } from "@react-three/fiber"; - -function BrainParticles({ scrollProgress }: { scrollProgress: number }) { - const { data } = useConstellation(); - const meshRef = useRef(null); - const timeRef = useRef(0); - - const { count, positions, colors, scales } = useMemo(() => { - const nodes = data?.nodes || []; - // Use real data if available, otherwise generate placeholder particles - const particleCount = nodes.length > 0 ? nodes.length : 200; - const pos = new Float32Array(particleCount * 3); - const col = new Float32Array(particleCount * 3); - const scl = new Float32Array(particleCount); - - if (nodes.length > 0) { - nodes.forEach((node, i) => { - // Map to brain-like 3D positions - const angle = (i / nodes.length) * Math.PI * 2; - const radius = 2 + Math.random() * 2; - const y = (Math.random() - 0.5) * 3; - pos[i * 3] = Math.cos(angle) * radius + (Math.random() - 0.5) * 0.5; - pos[i * 3 + 1] = y; - pos[i * 3 + 2] = Math.sin(angle) * radius + (Math.random() - 0.5) * 0.5; - - // Color based on layer - const color = new THREE.Color(node.layer === "sml" ? NEURAL.sml : NEURAL.lml); - col[i * 3] = color.r; - col[i * 3 + 1] = color.g; - col[i * 3 + 2] = color.b; - - scl[i] = 0.03 + node.strength * 0.08; - }); - } else { - // Placeholder brain shape - for (let i = 0; i < particleCount; i++) { - const theta = Math.random() * Math.PI * 2; - const phi = Math.acos(2 * Math.random() - 1); - const r = 2.5 + (Math.random() - 0.5) * 1.5; - - // Brain-like shape: wider at sides, narrower at top/bottom - const xScale = 1.3; - const yScale = 1.0; - const zScale = 1.1; - - pos[i * 3] = r * Math.sin(phi) * Math.cos(theta) * xScale; - pos[i * 3 + 1] = r * Math.cos(phi) * yScale; - pos[i * 3 + 2] = r * Math.sin(phi) * Math.sin(theta) * zScale; - - const color = new THREE.Color(i % 3 === 0 ? NEURAL.episodic : i % 3 === 1 ? NEURAL.sml : NEURAL.semantic); - col[i * 3] = color.r; - col[i * 3 + 1] = color.g; - col[i * 3 + 2] = color.b; - - scl[i] = 0.02 + Math.random() * 0.06; - } - } - - return { count: particleCount, positions: pos, colors: col, scales: scl }; - }, [data]); - - const dummy = useMemo(() => new THREE.Object3D(), []); - - useFrame((_, delta) => { - if (!meshRef.current) return; - timeRef.current += delta; - - // Hemisphere split based on scroll - const splitAmount = Math.max(0, (scrollProgress - 0.15) / 0.2) * 1.5; - // Rotation slowdown as you scroll - const rotSpeed = 0.15 * (1 - scrollProgress * 0.8); - - for (let i = 0; i < count; i++) { - const x = positions[i * 3]; - const y = positions[i * 3 + 1]; - const z = positions[i * 3 + 2]; - - // Breathing effect - const breathe = 1 + Math.sin(timeRef.current * 0.5 + i * 0.1) * 0.03; - - // Split hemispheres (left/right based on x position) - const splitOffset = x > 0 ? splitAmount : -splitAmount; - - dummy.position.set( - (x + splitOffset) * breathe, - y * breathe, - z * breathe - ); - dummy.scale.setScalar(scales[i] * (1 + Math.sin(timeRef.current + i) * 0.2)); - dummy.rotation.y = timeRef.current * rotSpeed; - dummy.updateMatrix(); - meshRef.current.setMatrixAt(i, dummy.matrix); - } - meshRef.current.instanceMatrix.needsUpdate = true; - }); - - return ( - - - - - - - ); -} - -function BrainPathways({ scrollProgress }: { scrollProgress: number }) { - const { data } = useConstellation(); - const linesRef = useRef(null); - - const geometry = useMemo(() => { - const edges = data?.edges || []; - const nodes = data?.nodes || []; - if (edges.length === 0 || nodes.length === 0) return null; - - const nodeMap = new Map(nodes.map((n, i) => [n.id, i])); - const positions: number[] = []; - const colors: number[] = []; - - for (const edge of edges.slice(0, 200)) { - const si = nodeMap.get(edge.source); - const ti = nodeMap.get(edge.target); - if (si === undefined || ti === undefined) continue; - - // Generate rough 3D positions matching BrainParticles - for (const idx of [si, ti]) { - const angle = (idx / nodes.length) * Math.PI * 2; - const radius = 2 + ((idx * 7919) % 100) / 100 * 2; - const y = (((idx * 6271) % 100) / 100 - 0.5) * 3; - positions.push( - Math.cos(angle) * radius, - y, - Math.sin(angle) * radius - ); - } - - const edgeColor = new THREE.Color(edge.type === "category" ? NEURAL.episodic : NEURAL.sml); - colors.push(edgeColor.r, edgeColor.g, edgeColor.b); - colors.push(edgeColor.r, edgeColor.g, edgeColor.b); - } - - if (positions.length === 0) return null; - - const geo = new THREE.BufferGeometry(); - geo.setAttribute("position", new THREE.Float32BufferAttribute(positions, 3)); - geo.setAttribute("color", new THREE.Float32BufferAttribute(colors, 3)); - return geo; - }, [data]); - - if (!geometry) return null; - - return ( - - - - ); -} - -export function BrainCanvas({ scrollProgress }: { scrollProgress: number }) { - return ( - - - - - - - - - - - - - - - - - - - - - ); -} diff --git a/dashboard/src/components/categories/category-tree.tsx b/dashboard/src/components/categories/category-tree.tsx deleted file mode 100644 index 3b3d7c3..0000000 --- a/dashboard/src/components/categories/category-tree.tsx +++ /dev/null @@ -1,68 +0,0 @@ -"use client"; - -import { useState } from "react"; -import { ChevronDown, ChevronRight, FolderTree } from "lucide-react"; -import { StrengthIndicator } from "@/components/shared/strength-indicator"; -import type { Category } from "@/lib/types/category"; -import Link from "next/link"; - -function CategoryNode({ category, depth = 0 }: { category: Category; depth?: number }) { - const [expanded, setExpanded] = useState(depth < 1); - const hasChildren = category.children && category.children.length > 0; - - return ( -
-
- {hasChildren ? ( - - ) : ( - - )} - - - - - {category.name} - - - - {category.memory_count} - - -
- -
-
- - {hasChildren && expanded && ( -
- {category.children!.map((child) => ( - - ))} -
- )} -
- ); -} - -export function CategoryTree({ categories }: { categories: Category[] }) { - return ( -
- {categories.map((cat) => ( - - ))} -
- ); -} diff --git a/dashboard/src/components/clusters/cluster-canvas.tsx b/dashboard/src/components/clusters/cluster-canvas.tsx deleted file mode 100644 index 5d25a47..0000000 --- a/dashboard/src/components/clusters/cluster-canvas.tsx +++ /dev/null @@ -1,171 +0,0 @@ -"use client"; - -import { useRef, useEffect, useCallback, useMemo } from "react"; -import { Application, Graphics, Text, TextStyle, Container, FederatedPointerEvent } from "pixi.js"; -import { useMemories } from "@/lib/hooks/use-memories"; -import { useClusterStore } from "@/lib/stores/cluster-store"; -import { useInspectorStore } from "@/lib/stores/inspector-store"; -import { computeClusterLayout } from "@/lib/utils/cluster-layout"; -import { NEURAL } from "@/lib/utils/neural-palette"; -import type { Memory } from "@/lib/types/memory"; - -export function ClusterCanvas() { - const canvasRef = useRef(null); - const appRef = useRef(null); - const { data } = useMemories({ limit: 500 }); - const { dimension, transitioning } = useClusterStore(); - const openInspectorRef = useRef(useInspectorStore.getState().open); - - // Keep ref in sync without causing redraws - useEffect(() => { - return useInspectorStore.subscribe((s) => { - openInspectorRef.current = s.open; - }); - }, []); - - const memories = useMemo(() => data?.memories ?? [], [data]); - - const draw = useCallback(async () => { - const canvas = canvasRef.current; - if (!canvas) return; - - // Destroy existing app - if (appRef.current) { - appRef.current.destroy(true); - appRef.current = null; - } - - const app = new Application(); - await app.init({ - canvas, - resizeTo: canvas.parentElement || undefined, - backgroundColor: 0x050510, - antialias: false, - resolution: Math.min(window.devicePixelRatio || 1, 2), - autoDensity: true, - }); - appRef.current = app; - - if (memories.length === 0) { - const text = new Text({ - text: "No memories to display", - style: new TextStyle({ fontSize: 14, fill: 0x64748b, fontFamily: "system-ui" }), - }); - text.anchor.set(0.5); - text.position.set(canvas.clientWidth / 2, canvas.clientHeight / 2); - app.stage.addChild(text); - return; - } - - const { clusters, nodes } = computeClusterLayout( - memories, - dimension, - canvas.clientWidth, - canvas.clientHeight - ); - - const clustersContainer = new Container(); - const nodesContainer = new Container(); - app.stage.addChild(clustersContainer); - app.stage.addChild(nodesContainer); - - // Draw cluster boundaries - for (const cluster of clusters) { - const gfx = new Graphics(); - - // Cluster halo - gfx.circle(cluster.x, cluster.y, cluster.radius * 1.2); - gfx.fill({ color: parseInt(cluster.color.slice(1), 16), alpha: 0.03 }); - - // Cluster boundary - gfx.circle(cluster.x, cluster.y, cluster.radius); - gfx.stroke({ width: 1, color: parseInt(cluster.color.slice(1), 16), alpha: 0.15 }); - - clustersContainer.addChild(gfx); - - // Cluster label - const label = new Text({ - text: cluster.label, - style: new TextStyle({ - fontSize: 11, - fill: parseInt(cluster.color.slice(1), 16), - fontFamily: "system-ui", - fontWeight: "600", - }), - }); - label.anchor.set(0.5); - label.position.set(cluster.x, cluster.y - cluster.radius - 12); - clustersContainer.addChild(label); - - // Count label - const count = new Text({ - text: `${cluster.memories.length}`, - style: new TextStyle({ - fontSize: 9, - fill: 0x64748b, - fontFamily: "system-ui", - }), - }); - count.anchor.set(0.5); - count.position.set(cluster.x, cluster.y + cluster.radius + 8); - clustersContainer.addChild(count); - } - - // Draw memory nodes - const nodeMap = new Map(nodes.map(n => [n.id, n])); - for (const memory of memories) { - const nodePos = nodeMap.get(memory.id); - if (!nodePos) continue; - - const clusterColor = clusters[nodePos.clusterIndex]?.color || NEURAL.episodic; - const radius = 3 + memory.strength * 8; - const colorHex = parseInt(clusterColor.slice(1), 16); - - const gfx = new Graphics(); - - // Glow - gfx.circle(0, 0, radius * 2); - gfx.fill({ color: colorHex, alpha: 0.06 }); - - // Node - gfx.circle(0, 0, radius); - gfx.fill({ color: colorHex, alpha: 0.7 + memory.strength * 0.3 }); - - gfx.position.set(nodePos.x, nodePos.y); - gfx.eventMode = "static"; - gfx.cursor = "pointer"; - - gfx.on("pointerdown", (e: FederatedPointerEvent) => { - e.stopPropagation(); - openInspectorRef.current(memory.id); - }); - - gfx.on("pointerover", () => gfx.scale.set(1.5)); - gfx.on("pointerout", () => gfx.scale.set(1)); - - nodesContainer.addChild(gfx); - } - }, [memories, dimension]); - - useEffect(() => { - draw(); - return () => { - appRef.current?.destroy(true); - appRef.current = null; - }; - }, [draw]); - - return ( -
- -
- ); -} diff --git a/dashboard/src/components/clusters/cluster-toolbar.tsx b/dashboard/src/components/clusters/cluster-toolbar.tsx deleted file mode 100644 index c4819d8..0000000 --- a/dashboard/src/components/clusters/cluster-toolbar.tsx +++ /dev/null @@ -1,55 +0,0 @@ -"use client"; - -import { useClusterStore, type ClusterDimension } from "@/lib/stores/cluster-store"; -import { cn } from "@/lib/utils/format"; -import { - FolderTree, - Brain, - Layers, - Film, - Sparkles, - Gauge, - Clock, - Users, -} from "lucide-react"; -import type { LucideIcon } from "lucide-react"; - -const DIMENSIONS: { id: ClusterDimension; label: string; icon: LucideIcon }[] = [ - { id: "category", label: "Category", icon: FolderTree }, - { id: "memory_type", label: "Type", icon: Brain }, - { id: "layer", label: "Layer", icon: Layers }, - { id: "scene", label: "Scene", icon: Film }, - { id: "echo_depth", label: "Echo", icon: Sparkles }, - { id: "strength", label: "Strength", icon: Gauge }, - { id: "time", label: "Time", icon: Clock }, - { id: "profile", label: "Profile", icon: Users }, -]; - -export function ClusterToolbar() { - const { dimension, setDimension, transitioning } = useClusterStore(); - - return ( -
- {DIMENSIONS.map(({ id, label, icon: Icon }) => ( - - ))} -
- ); -} diff --git a/dashboard/src/components/conflicts/conflict-card.tsx b/dashboard/src/components/conflicts/conflict-card.tsx deleted file mode 100644 index d8e705c..0000000 --- a/dashboard/src/components/conflicts/conflict-card.tsx +++ /dev/null @@ -1,80 +0,0 @@ -"use client"; - -import { useState } from "react"; -import { resolveConflict } from "@/lib/api/conflicts"; -import type { Conflict } from "@/lib/types/conflict"; -import { timeAgo } from "@/lib/utils/format"; - -export function ConflictCard({ - conflict, - onResolved, -}: { - conflict: Conflict; - onResolved: () => void; -}) { - const [loading, setLoading] = useState(false); - - const handleResolve = async (resolution: string) => { - setLoading(true); - await resolveConflict(conflict.stash_id || conflict.id, resolution); - setLoading(false); - onResolved(); - }; - - return ( -
-
- {conflict.id} - {timeAgo(conflict.created_at)} -
- -
- {/* Existing */} -
-

- Existing -

-

- {conflict.existing_content} -

-
- {/* Proposed */} -
-

- Proposed -

-

- {conflict.proposed_content} -

-
-
- -
- - Similarity: {(conflict.similarity * 100).toFixed(0)}% - - - - -
-
- ); -} diff --git a/dashboard/src/components/constellation/graph-controls.tsx b/dashboard/src/components/constellation/graph-controls.tsx deleted file mode 100644 index 8d9cc2b..0000000 --- a/dashboard/src/components/constellation/graph-controls.tsx +++ /dev/null @@ -1,46 +0,0 @@ -"use client"; - -import { RotateCcw } from "lucide-react"; -import { useGraphStore } from "@/lib/stores/graph-store"; - -export function GraphControls() { - const { showSml, showLml, toggleSml, toggleLml, resetView } = useGraphStore(); - - return ( -
-
- -
- -
- - -
-
- ); -} diff --git a/dashboard/src/components/constellation/graph-legend.tsx b/dashboard/src/components/constellation/graph-legend.tsx deleted file mode 100644 index db66b8a..0000000 --- a/dashboard/src/components/constellation/graph-legend.tsx +++ /dev/null @@ -1,35 +0,0 @@ -"use client"; - -import { COLORS } from "@/lib/utils/colors"; - -const LEGEND_ITEMS = [ - { label: "SML Memory", color: COLORS.sml, shape: "circle" as const }, - { label: "LML Memory", color: COLORS.lml, shape: "circle" as const }, - { label: "Scene Link", color: COLORS.scene, shape: "line" as const }, - { label: "Category Link", color: COLORS.category, shape: "line" as const }, -]; - -export function GraphLegend() { - return ( -
-
- {LEGEND_ITEMS.map(({ label, color, shape }) => ( -
- {shape === "circle" ? ( - - ) : ( - - )} - {label} -
- ))} -
-
- ); -} diff --git a/dashboard/src/components/constellation/graph-renderer.ts b/dashboard/src/components/constellation/graph-renderer.ts deleted file mode 100644 index d3e9f76..0000000 --- a/dashboard/src/components/constellation/graph-renderer.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { Application, Graphics, Text, TextStyle, Container, FederatedPointerEvent } from "pixi.js"; -import { COLORS } from "@/lib/utils/colors"; -import type { ConstellationNode, ConstellationEdge } from "@/lib/types/constellation"; - -interface NodePosition { - id: string; - x: number; - y: number; -} - -export class GraphRenderer { - private app: Application | null = null; - private nodesContainer: Container = new Container(); - private edgesContainer: Container = new Container(); - private nodes: ConstellationNode[] = []; - private edges: ConstellationEdge[] = []; - private nodeGraphics: Map = new Map(); - private positions: Map = new Map(); - private onNodeClick?: (id: string) => void; - - async init(canvas: HTMLCanvasElement, onNodeClick?: (id: string) => void) { - this.onNodeClick = onNodeClick; - this.app = new Application(); - await this.app.init({ - canvas, - resizeTo: canvas.parentElement || undefined, - backgroundColor: 0x050510, - antialias: true, - resolution: window.devicePixelRatio || 1, - autoDensity: true, - }); - this.app.stage.addChild(this.edgesContainer); - this.app.stage.addChild(this.nodesContainer); - } - - setData(nodes: ConstellationNode[], edges: ConstellationEdge[]) { - this.nodes = nodes; - this.edges = edges; - } - - updatePositions(positions: NodePosition[]) { - for (const p of positions) { - this.positions.set(p.id, { x: p.x, y: p.y }); - } - this.draw(); - } - - private draw() { - // Draw edges - this.edgesContainer.removeChildren(); - const edgeGfx = new Graphics(); - for (const edge of this.edges) { - const sPos = this.positions.get(edge.source); - const tPos = this.positions.get(edge.target); - if (!sPos || !tPos) continue; - const color = edge.type === "category" ? 0x7c3aed : 0x22d3ee; - edgeGfx.moveTo(sPos.x, sPos.y); - edgeGfx.lineTo(tPos.x, tPos.y); - edgeGfx.stroke({ width: 0.5, color, alpha: 0.15 }); - } - this.edgesContainer.addChild(edgeGfx); - - // Draw nodes - this.nodesContainer.removeChildren(); - this.nodeGraphics.clear(); - - for (const node of this.nodes) { - const pos = this.positions.get(node.id); - if (!pos) continue; - - const radius = 4 + node.strength * 10; - const colorHex = - node.layer === "sml" - ? parseInt(COLORS.sml.slice(1), 16) - : parseInt(COLORS.lml.slice(1), 16); - - const gfx = new Graphics(); - - // Glow halo - gfx.circle(0, 0, radius * 2); - gfx.fill({ color: colorHex, alpha: 0.08 }); - - // Main node - gfx.circle(0, 0, radius); - gfx.fill({ color: colorHex, alpha: 0.85 }); - - gfx.position.set(pos.x, pos.y); - gfx.eventMode = "static"; - gfx.cursor = "pointer"; - - gfx.on("pointerdown", (e: FederatedPointerEvent) => { - e.stopPropagation(); - this.onNodeClick?.(node.id); - }); - - gfx.on("pointerover", () => { - gfx.scale.set(1.3); - }); - - gfx.on("pointerout", () => { - gfx.scale.set(1); - }); - - this.nodesContainer.addChild(gfx); - this.nodeGraphics.set(node.id, gfx); - - // Label for larger nodes - if (node.strength > 0.5 && node.label) { - const label = new Text({ - text: node.label.slice(0, 20), - style: new TextStyle({ - fontSize: 9, - fill: 0x94a3b8, - fontFamily: "system-ui", - }), - }); - label.anchor.set(0.5, 0); - label.position.set(pos.x, pos.y + radius + 3); - this.nodesContainer.addChild(label); - } - } - } - - highlightNode(id: string | null) { - for (const [nodeId, gfx] of this.nodeGraphics) { - gfx.alpha = id === null || nodeId === id ? 1 : 0.3; - } - } - - destroy() { - this.app?.destroy(true); - this.app = null; - } -} diff --git a/dashboard/src/components/constellation/memory-graph.tsx b/dashboard/src/components/constellation/memory-graph.tsx deleted file mode 100644 index d6a23a1..0000000 --- a/dashboard/src/components/constellation/memory-graph.tsx +++ /dev/null @@ -1,86 +0,0 @@ -"use client"; - -import { useRef, useEffect, useCallback } from "react"; -import { GraphRenderer } from "./graph-renderer"; -import { useConstellation } from "@/lib/hooks/use-constellation"; -import { useInspectorStore } from "@/lib/stores/inspector-store"; -import { useGraphStore } from "@/lib/stores/graph-store"; - -export function MemoryGraph() { - const canvasRef = useRef(null); - const rendererRef = useRef(null); - const workerRef = useRef(null); - const { data } = useConstellation(); - const openInspector = useInspectorStore((s) => s.open); - const { showSml, showLml } = useGraphStore(); - - const handleNodeClick = useCallback( - (id: string) => { - openInspector(id); - }, - [openInspector] - ); - - useEffect(() => { - if (!canvasRef.current || !data) return; - - const canvas = canvasRef.current; - const renderer = new GraphRenderer(); - rendererRef.current = renderer; - - // Filter nodes by layer visibility - const filteredNodes = (data.nodes || []).filter((n) => { - if (n.layer === "sml" && !showSml) return false; - if (n.layer === "lml" && !showLml) return false; - return true; - }); - - const filteredIds = new Set(filteredNodes.map((n) => n.id)); - const filteredEdges = (data.edges || []).filter( - (e) => filteredIds.has(e.source) && filteredIds.has(e.target) - ); - - renderer.init(canvas, handleNodeClick).then(() => { - renderer.setData(filteredNodes, filteredEdges); - - // Start force layout in worker - const worker = new Worker( - new URL("@/workers/force-layout.worker.ts", import.meta.url) - ); - workerRef.current = worker; - - worker.postMessage({ - type: "init", - nodes: filteredNodes.map((n) => ({ - id: n.id, - layer: n.layer, - strength: n.strength, - })), - edges: filteredEdges.map((e) => ({ - source: e.source, - target: e.target, - type: e.type, - })), - width: canvas.clientWidth, - height: canvas.clientHeight, - }); - - worker.onmessage = (e) => { - renderer.updatePositions(e.data.nodes); - }; - }); - - return () => { - workerRef.current?.terminate(); - rendererRef.current?.destroy(); - }; - }, [data, showSml, showLml, handleNodeClick]); - - return ( - - ); -} diff --git a/dashboard/src/components/dashboard/categories-bar.tsx b/dashboard/src/components/dashboard/categories-bar.tsx deleted file mode 100644 index f26318c..0000000 --- a/dashboard/src/components/dashboard/categories-bar.tsx +++ /dev/null @@ -1,62 +0,0 @@ -"use client"; - -import { - BarChart, - Bar, - XAxis, - YAxis, - ResponsiveContainer, - Tooltip, -} from "recharts"; -import { COLORS } from "@/lib/utils/colors"; - -export function CategoriesBar({ - categories, -}: { - categories: Record; -}) { - const data = Object.entries(categories) - .sort((a, b) => b[1] - a[1]) - .slice(0, 8) - .map(([name, count]) => ({ name, count })); - - if (data.length === 0) { - return ( -
-

Top Categories

-

No categories yet

-
- ); - } - - return ( -
-

Top Categories

-
- - - - - - - - -
-
- ); -} diff --git a/dashboard/src/components/dashboard/decay-sparkline.tsx b/dashboard/src/components/dashboard/decay-sparkline.tsx deleted file mode 100644 index 2bf13c8..0000000 --- a/dashboard/src/components/dashboard/decay-sparkline.tsx +++ /dev/null @@ -1,69 +0,0 @@ -"use client"; - -import { - AreaChart, - Area, - XAxis, - YAxis, - ResponsiveContainer, - Tooltip, -} from "recharts"; -import { COLORS } from "@/lib/utils/colors"; -import type { DecayLogEntry } from "@/lib/api/decay"; - -export function DecaySparkline({ entries }: { entries: DecayLogEntry[] }) { - const data = entries.map((e) => ({ - time: new Date(e.timestamp).toLocaleDateString("en-US", { - month: "short", - day: "numeric", - }), - decayed: e.decayed, - forgotten: e.forgotten, - promoted: e.promoted, - })); - - if (data.length === 0) { - return ( -
-

Decay History

-

No decay data yet

-
- ); - } - - return ( -
-

Decay History

-
- - - - - - - - - - - - - - -
-
- ); -} diff --git a/dashboard/src/components/dashboard/layer-donut.tsx b/dashboard/src/components/dashboard/layer-donut.tsx deleted file mode 100644 index 1a8651a..0000000 --- a/dashboard/src/components/dashboard/layer-donut.tsx +++ /dev/null @@ -1,61 +0,0 @@ -"use client"; - -import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip, Legend } from "recharts"; -import { COLORS } from "@/lib/utils/colors"; - -export function LayerDonut({ - smlCount, - lmlCount, -}: { - smlCount: number; - lmlCount: number; -}) { - const data = [ - { name: "SML", value: smlCount }, - { name: "LML", value: lmlCount }, - ]; - const colors = [COLORS.sml, COLORS.lml]; - - return ( -
-

Layer Distribution

-
- - - - {data.map((_, i) => ( - - ))} - - - ( - {value} - )} - /> - - -
-
- ); -} diff --git a/dashboard/src/components/dashboard/stat-card.tsx b/dashboard/src/components/dashboard/stat-card.tsx deleted file mode 100644 index 7a14dd3..0000000 --- a/dashboard/src/components/dashboard/stat-card.tsx +++ /dev/null @@ -1,44 +0,0 @@ -"use client"; - -import type { LucideIcon } from "lucide-react"; - -export function StatCard({ - label, - value, - icon: Icon, - color = "#7c3aed", - badge, -}: { - label: string; - value: number | string; - icon: LucideIcon; - color?: string; - badge?: string; -}) { - return ( -
-
-
- -
- {badge && ( - - {badge} - - )} -
-

{value}

-

{label}

-
- ); -} diff --git a/dashboard/src/components/dashboard/stat-cards-row.tsx b/dashboard/src/components/dashboard/stat-cards-row.tsx deleted file mode 100644 index 6eaca29..0000000 --- a/dashboard/src/components/dashboard/stat-cards-row.tsx +++ /dev/null @@ -1,70 +0,0 @@ -"use client"; - -import { - Brain, - Zap, - Shield, - FolderTree, - AlertTriangle, - GitBranch, -} from "lucide-react"; -import { StatCard } from "./stat-card"; -import { COLORS } from "@/lib/utils/colors"; - -export function StatCardsRow({ - totalMemories, - smlCount, - lmlCount, - categoryCount, - conflictCount, - pendingCount, -}: { - totalMemories: number; - smlCount: number; - lmlCount: number; - categoryCount: number; - conflictCount: number; - pendingCount: number; -}) { - return ( -
- - - - - 0 ? String(conflictCount) : undefined} - /> - -
- ); -} diff --git a/dashboard/src/components/hippocampus/forgetting-dashboard.tsx b/dashboard/src/components/hippocampus/forgetting-dashboard.tsx deleted file mode 100644 index 9844169..0000000 --- a/dashboard/src/components/hippocampus/forgetting-dashboard.tsx +++ /dev/null @@ -1,98 +0,0 @@ -"use client"; - -import { NEURAL } from "@/lib/utils/neural-palette"; -import { useDecayLog } from "@/lib/hooks/use-decay-log"; -import { useMemo } from "react"; - -function GaugeMeter({ - label, - description, - value, - color, -}: { - label: string; - description: string; - value: number; - color: string; -}) { - const angle = value * 180; - const circumference = Math.PI * 50; - const dashOffset = circumference - (value * circumference); - - return ( -
-
- - {/* Background arc */} - - {/* Value arc */} - - - - {(value * 100).toFixed(0)}% - -
-

{label}

-

{description}

-
- ); -} - -export function ForgettingDashboard() { - const { data } = useDecayLog(); - const entries = data?.entries ?? []; - - const stats = useMemo(() => { - if (entries.length === 0) return { interference: 0, redundancy: 0, homeostasis: 0 }; - const latest = entries[entries.length - 1]; - const total = (latest.decayed + latest.forgotten + latest.promoted) || 1; - return { - interference: latest.forgotten / total, - redundancy: latest.decayed / total, - homeostasis: latest.promoted / total, - }; - }, [entries]); - - return ( -
-

Forgetting Mechanisms

-
- - - -
-
- ); -} diff --git a/dashboard/src/components/hippocampus/scene-corridor.tsx b/dashboard/src/components/hippocampus/scene-corridor.tsx deleted file mode 100644 index f52b094..0000000 --- a/dashboard/src/components/hippocampus/scene-corridor.tsx +++ /dev/null @@ -1,71 +0,0 @@ -"use client"; - -import { useScenes } from "@/lib/hooks/use-scenes"; -import { NEURAL } from "@/lib/utils/neural-palette"; -import { formatDateTime, timeAgo } from "@/lib/utils/format"; -import { Film } from "lucide-react"; - -export function SceneCorridor() { - const { data } = useScenes(); - const scenes = data?.scenes ?? []; - - if (scenes.length === 0) { - return ( -
-

No scenes recorded yet.

-
- ); - } - - return ( -
-
- {scenes.map((scene, i) => ( -
-
- - - {scene.title || `Scene ${scene.id.slice(0, 8)}`} - -
- - {scene.topic && ( -

- {scene.topic} -

- )} - - {scene.summary && ( -

- {scene.summary} -

- )} - -
- {scene.memory_count} memories - {timeAgo(scene.start_time)} -
- - {/* Timeline bar */} -
-
-
-
- ))} -
-
- ); -} diff --git a/dashboard/src/components/hippocampus/sleep-visualizer.tsx b/dashboard/src/components/hippocampus/sleep-visualizer.tsx deleted file mode 100644 index 551f357..0000000 --- a/dashboard/src/components/hippocampus/sleep-visualizer.tsx +++ /dev/null @@ -1,114 +0,0 @@ -"use client"; - -import { NEURAL } from "@/lib/utils/neural-palette"; -import { useStats } from "@/lib/hooks/use-stats"; - -export function SleepVisualizer() { - const { data: stats } = useStats(); - const sml = stats?.sml_count ?? 0; - const lml = stats?.lml_count ?? 0; - const total = sml + lml || 1; - - return ( -
-

Sleep Cycle — Consolidation Flow

- -
- {/* SML pool */} -
-
-
- {sml} -
-
-

SML

-

Short-term

-
- - {/* Flow arrows */} -
-
-
- - - -
-

CONSOLIDATE

-
- - - -
-
-

DEMOTE

-
- - {/* Hippocampus */} -
-
-
- HPC -
-
-

Hippocampus

-

Processing

-
- - {/* Flow arrows */} -
-
-
- - - -
-

PROMOTE

-
- - {/* LML pool */} -
-
-
- {lml} -
-
-

LML

-

Long-term

-
-
- - {/* Progress bar */} -
-
- Memory Distribution - {((lml / total) * 100).toFixed(0)}% consolidated -
-
-
-
-
-
-
- ); -} diff --git a/dashboard/src/components/hippocampus/trace-cascade-viz.tsx b/dashboard/src/components/hippocampus/trace-cascade-viz.tsx deleted file mode 100644 index ea124ca..0000000 --- a/dashboard/src/components/hippocampus/trace-cascade-viz.tsx +++ /dev/null @@ -1,89 +0,0 @@ -"use client"; - -import { NEURAL } from "@/lib/utils/neural-palette"; -import { useMemories } from "@/lib/hooks/use-memories"; -import { useMemo } from "react"; - -export function TraceCascadeViz() { - const { data } = useMemories({ limit: 200 }); - const memories = data?.memories ?? []; - - const traceStats = useMemo(() => { - let fastSum = 0, midSum = 0, slowSum = 0, count = 0; - for (const m of memories) { - if (m.s_fast !== undefined || m.s_mid !== undefined || m.s_slow !== undefined) { - fastSum += m.s_fast ?? 0; - midSum += m.s_mid ?? 0; - slowSum += m.s_slow ?? 0; - count++; - } - } - if (count === 0) return null; - return { - avgFast: fastSum / count, - avgMid: midSum / count, - avgSlow: slowSum / count, - count, - }; - }, [memories]); - - if (!traceStats) { - return ( -
-

Multi-Trace Cascade

-

- No trace data available. Enable CLS distillation features. -

-
- ); - } - - return ( -
-

Multi-Trace Cascade

-

- Average trace strengths across {traceStats.count} memories -

- - {/* Cascade visualization */} -
- {[ - { label: "Fast", value: traceStats.avgFast, color: NEURAL.sFast, desc: "Immediate" }, - { label: "Mid", value: traceStats.avgMid, color: NEURAL.sMid, desc: "Session" }, - { label: "Slow", value: traceStats.avgSlow, color: NEURAL.sSlow, desc: "Consolidated" }, - ].map(({ label, value, color, desc }) => ( -
- {(value * 100).toFixed(0)}% -
-
-
-

{label}

-

{desc}

-
- ))} -
- - {/* Flow arrows */} -
- s_fast -
- - s_mid -
- - s_slow -
-
- ); -} diff --git a/dashboard/src/components/layout/neural-sidebar.tsx b/dashboard/src/components/layout/neural-sidebar.tsx deleted file mode 100644 index 4c551d2..0000000 --- a/dashboard/src/components/layout/neural-sidebar.tsx +++ /dev/null @@ -1,90 +0,0 @@ -"use client"; - -import Link from "next/link"; -import { usePathname } from "next/navigation"; -import { - Brain, - Scan, - Cable, - Moon, - Users, -} from "lucide-react"; -import { cn } from "@/lib/utils/format"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -const NAV_ITEMS = [ - { href: "/", label: "Brain", icon: Brain }, - { href: "/cortex", label: "Cortex", icon: Scan }, - { href: "/synapses", label: "Synapses", icon: Cable }, - { href: "/hippocampus", label: "Hippocampus", icon: Moon }, - { href: "/profiles", label: "Profiles", icon: Users }, -]; - -export function NeuralSidebar() { - const pathname = usePathname(); - - return ( - - ); -} diff --git a/dashboard/src/components/layout/sidebar.tsx b/dashboard/src/components/layout/sidebar.tsx deleted file mode 100644 index 1823089..0000000 --- a/dashboard/src/components/layout/sidebar.tsx +++ /dev/null @@ -1,68 +0,0 @@ -"use client"; - -import Link from "next/link"; -import { usePathname } from "next/navigation"; -import { - LayoutDashboard, - Sparkles, - List, - Film, - FolderTree, - Users, - AlertTriangle, - GitBranch, -} from "lucide-react"; -import { cn } from "@/lib/utils/format"; - -const NAV_ITEMS = [ - { href: "/dashboard", label: "Dashboard", icon: LayoutDashboard }, - { href: "/constellation", label: "Constellation", icon: Sparkles }, - { href: "/memories", label: "Memories", icon: List }, - { href: "/scenes", label: "Scenes", icon: Film }, - { href: "/categories", label: "Categories", icon: FolderTree }, - { href: "/profiles", label: "Profiles", icon: Users }, - { href: "/conflicts", label: "Conflicts", icon: AlertTriangle }, - { href: "/staging", label: "Staging", icon: GitBranch }, -]; - -export function Sidebar() { - const pathname = usePathname(); - - return ( - - ); -} diff --git a/dashboard/src/components/layout/top-bar.tsx b/dashboard/src/components/layout/top-bar.tsx deleted file mode 100644 index 89500b7..0000000 --- a/dashboard/src/components/layout/top-bar.tsx +++ /dev/null @@ -1,45 +0,0 @@ -"use client"; - -import { Search } from "lucide-react"; -import { useFilterStore } from "@/lib/stores/filter-store"; -import { useCallback, useState } from "react"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -export function TopBar() { - const setSearchQuery = useFilterStore((s) => s.setSearchQuery); - const [value, setValue] = useState(""); - - const handleSubmit = useCallback( - (e: React.FormEvent) => { - e.preventDefault(); - setSearchQuery(value); - }, - [value, setSearchQuery] - ); - - return ( -
-
- - setValue(e.target.value)} - className="w-full rounded-lg py-1.5 pl-9 pr-3 text-sm placeholder:text-slate-500 focus:outline-none focus:ring-1" - style={{ - backgroundColor: NEURAL.synapse, - color: '#e2e8f0', - border: `1px solid rgba(124, 58, 237, 0.12)`, - }} - /> - -
- ); -} diff --git a/dashboard/src/components/memories/memory-filters.tsx b/dashboard/src/components/memories/memory-filters.tsx deleted file mode 100644 index d004733..0000000 --- a/dashboard/src/components/memories/memory-filters.tsx +++ /dev/null @@ -1,22 +0,0 @@ -"use client"; - -import { useFilterStore } from "@/lib/stores/filter-store"; - -export function MemoryFilters() { - const { layer, setLayer } = useFilterStore(); - - return ( -
- - -
- ); -} diff --git a/dashboard/src/components/memories/memory-table.tsx b/dashboard/src/components/memories/memory-table.tsx deleted file mode 100644 index f74ccbd..0000000 --- a/dashboard/src/components/memories/memory-table.tsx +++ /dev/null @@ -1,72 +0,0 @@ -"use client"; - -import { LayerBadge } from "@/components/shared/layer-badge"; -import { StrengthIndicator } from "@/components/shared/strength-indicator"; -import { CategoryPill } from "@/components/shared/category-pill"; -import { useInspectorStore } from "@/lib/stores/inspector-store"; -import { truncate, timeAgo } from "@/lib/utils/format"; -import type { Memory } from "@/lib/types/memory"; - -export function MemoryTable({ memories }: { memories: Memory[] }) { - const open = useInspectorStore((s) => s.open); - - return ( -
- - - - - - - - - - - - {memories.map((mem) => ( - open(mem.id)} - className="cursor-pointer hover:bg-gray-50 transition-colors" - > - - - - - - - ))} - -
- Content - - Layer - - Strength - - Categories - - Created -
- {truncate(mem.content, 100)} - - - - - -
- {(mem.categories || []).slice(0, 3).map((cat) => ( - - ))} - {(mem.categories || []).length > 3 && ( - - +{mem.categories.length - 3} - - )} -
-
- {timeAgo(mem.created_at)} -
-
- ); -} diff --git a/dashboard/src/components/memory-inspector/category-tab.tsx b/dashboard/src/components/memory-inspector/category-tab.tsx deleted file mode 100644 index 856da81..0000000 --- a/dashboard/src/components/memory-inspector/category-tab.tsx +++ /dev/null @@ -1,26 +0,0 @@ -"use client"; - -import { CategoryPill } from "@/components/shared/category-pill"; -import type { Memory } from "@/lib/types/memory"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -export function CategoryTab({ memory }: { memory: Memory }) { - const categories = memory.categories || []; - - if (categories.length === 0) { - return

No categories assigned.

; - } - - return ( -
-
-

Categories

-
- {categories.map((cat) => ( - - ))} -
-
-
- ); -} diff --git a/dashboard/src/components/memory-inspector/echo-tab.tsx b/dashboard/src/components/memory-inspector/echo-tab.tsx deleted file mode 100644 index cf2772b..0000000 --- a/dashboard/src/components/memory-inspector/echo-tab.tsx +++ /dev/null @@ -1,127 +0,0 @@ -"use client"; - -import type { Memory } from "@/lib/types/memory"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -function Section({ title, children }: { title: string; children: React.ReactNode }) { - return ( -
-

{title}

- {children} -
- ); -} - -function TagList({ items }: { items: string[] }) { - return ( -
- {items.map((item, i) => ( - - {item} - - ))} -
- ); -} - -function StringList({ items }: { items: string[] }) { - return ( -
    - {items.map((item, i) => ( -
  • - {item} -
  • - ))} -
- ); -} - -export function EchoTab({ memory }: { memory: Memory }) { - const meta = memory.metadata || {}; - const depth = meta.echo_depth || "none"; - const paraphrases = meta.echo_paraphrases || []; - const keywords = meta.echo_keywords || []; - const implications = meta.echo_implications || []; - const questions = meta.echo_questions || []; - const importance = meta.echo_importance; - - const hasEchoData = - paraphrases.length > 0 || - keywords.length > 0 || - implications.length > 0 || - questions.length > 0; - - return ( -
- {/* Echo depth badge */} -
- Echo Depth - - {depth} - - {importance !== undefined && ( - <> - Importance -
-
-
-
- - {((importance as number) * 100).toFixed(0)}% - -
- - )} -
- - {!hasEchoData && ( -

No echo encoding data available.

- )} - - {paraphrases.length > 0 && ( -
- -
- )} - - {keywords.length > 0 && ( -
- -
- )} - - {implications.length > 0 && ( -
- -
- )} - - {questions.length > 0 && ( -
- -
- )} -
- ); -} diff --git a/dashboard/src/components/memory-inspector/fadem-tab.tsx b/dashboard/src/components/memory-inspector/fadem-tab.tsx deleted file mode 100644 index def9a6e..0000000 --- a/dashboard/src/components/memory-inspector/fadem-tab.tsx +++ /dev/null @@ -1,199 +0,0 @@ -"use client"; - -import { LayerBadge } from "@/components/shared/layer-badge"; -import { StrengthIndicator } from "@/components/shared/strength-indicator"; -import { - decayProjectionSeries, - FORGET_THRESHOLD, - PROMOTE_THRESHOLD, - PROMOTE_ACCESS_THRESHOLD, -} from "@/lib/utils/decay-math"; -import { timeAgo } from "@/lib/utils/format"; -import { COLORS } from "@/lib/utils/colors"; -import { NEURAL } from "@/lib/utils/neural-palette"; -import type { Memory } from "@/lib/types/memory"; -import { - AreaChart, - Area, - XAxis, - YAxis, - ReferenceLine, - ResponsiveContainer, - Tooltip, -} from "recharts"; - -function StrengthRing({ strength, layer }: { strength: number; layer: string }) { - const pct = strength * 100; - const circumference = 2 * Math.PI * 40; - const offset = circumference - (pct / 100) * circumference; - const color = layer === "sml" ? COLORS.sml : COLORS.lml; - - return ( -
- - - - - - {Math.round(pct)}% - -
- ); -} - -function ProgressBar({ value, max, label }: { value: number; max: number; label: string }) { - const pct = Math.min((value / max) * 100, 100); - const met = value >= max; - return ( -
-
- {label} - - {typeof value === 'number' && value < 1 ? value.toFixed(2) : value} / {max} - -
-
-
-
-
- ); -} - -export function FadeMemTab({ memory }: { memory: Memory }) { - const series = decayProjectionSeries( - memory.strength, - memory.access_count, - memory.layer - ); - - return ( -
- {/* Strength ring + metadata */} -
- -
-
- -
-

- Accessed {memory.access_count} time{memory.access_count !== 1 ? "s" : ""} -

- {memory.last_accessed && ( -

- Last accessed {timeAgo(memory.last_accessed)} -

- )} -
-
- - {/* 30-day decay projection */} -
-

- 30-Day Decay Projection -

-
- - - - - - - - - - - [`${(Number(v) * 100).toFixed(1)}%`, "Strength"]} - labelFormatter={(l) => `Day ${l}`} - /> - - - - - -
-
- - Forget ({FORGET_THRESHOLD}) - - - Promote ({PROMOTE_THRESHOLD}) - -
-
- - {/* Promotion pathway */} - {memory.layer === "sml" && ( -
-

- Promotion Pathway (SML → LML) -

-
- - -
-
- )} - - {/* Current strength bar */} -
-

Current Strength

- -
-
- ); -} diff --git a/dashboard/src/components/memory-inspector/history-timeline.tsx b/dashboard/src/components/memory-inspector/history-timeline.tsx deleted file mode 100644 index 37ff2b5..0000000 --- a/dashboard/src/components/memory-inspector/history-timeline.tsx +++ /dev/null @@ -1,55 +0,0 @@ -"use client"; - -import { formatDateTime } from "@/lib/utils/format"; -import type { MemoryHistoryEntry } from "@/lib/types/memory"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -const EVENT_COLORS: Record = { - CREATE: NEURAL.success, - DECAY: NEURAL.lml, - PROMOTE: NEURAL.lml, - DEMOTE: NEURAL.sml, - ACCESS: "#60a5fa", - UPDATE: NEURAL.episodic, - DELETE: NEURAL.conflict, -}; - -export function HistoryTimeline({ entries }: { entries: MemoryHistoryEntry[] }) { - if (entries.length === 0) { - return

No history available.

; - } - - return ( -
-
-
    - {entries.map((entry, i) => ( -
  • -
    -

    {entry.event}

    -

    - {formatDateTime(entry.timestamp)} -

    - {entry.details && ( -
    -                {JSON.stringify(entry.details, null, 2)}
    -              
    - )} -
  • - ))} -
-
- ); -} diff --git a/dashboard/src/components/memory-inspector/inspector-actions.tsx b/dashboard/src/components/memory-inspector/inspector-actions.tsx deleted file mode 100644 index 47ed48d..0000000 --- a/dashboard/src/components/memory-inspector/inspector-actions.tsx +++ /dev/null @@ -1,161 +0,0 @@ -"use client"; - -import { useState } from "react"; -import { ArrowUp, ArrowDown, Trash2, Pencil } from "lucide-react"; -import { promoteMemory, demoteMemory, deleteMemory, updateMemory } from "@/lib/api/memories"; -import { useInspectorStore } from "@/lib/stores/inspector-store"; -import type { Memory } from "@/lib/types/memory"; -import type { KeyedMutator } from "swr"; -import { NEURAL } from "@/lib/utils/neural-palette"; - -export function InspectorActions({ - memory, - onMutate, -}: { - memory: Memory; - onMutate: KeyedMutator; -}) { - const close = useInspectorStore((s) => s.close); - const [editing, setEditing] = useState(false); - const [editContent, setEditContent] = useState(memory.content); - const [confirmDelete, setConfirmDelete] = useState(false); - const [loading, setLoading] = useState(false); - - const handlePromote = async () => { - setLoading(true); - await promoteMemory(memory.id); - await onMutate(); - setLoading(false); - }; - - const handleDemote = async () => { - setLoading(true); - await demoteMemory(memory.id); - await onMutate(); - setLoading(false); - }; - - const handleDelete = async () => { - setLoading(true); - await deleteMemory(memory.id); - setLoading(false); - close(); - }; - - const handleSaveEdit = async () => { - setLoading(true); - await updateMemory(memory.id, { content: editContent }); - await onMutate(); - setEditing(false); - setLoading(false); - }; - - if (editing) { - return ( -
-