├── .gitignore ├── .pre-commit-config.yaml ├── .prettierignore ├── .prettierrc.js ├── .yarn ├── cache │ ├── @ampproject-remapping-npm-2.2.1-3da3d624be-03c04fd526.zip │ ├── @babel-code-frame-npm-7.21.4-5db83e65be-e5390e6ec1.zip │ ├── @babel-compat-data-npm-7.21.7-62e7f604b1-28747eb3fc.zip │ ├── @babel-core-npm-7.21.8-236525e651-f281184473.zip │ ├── @babel-generator-npm-7.21.5-576849ce71-78af737b9d.zip │ ├── @babel-helper-annotate-as-pure-npm-7.18.6-36e25293d8-88ccd15ced.zip │ ├── @babel-helper-compilation-targets-npm-7.21.5-999fc74b3f-0edecb9c97.zip │ ├── @babel-helper-environment-visitor-npm-7.21.5-7d7d1d1996-e436af7b62.zip │ ├── @babel-helper-function-name-npm-7.21.0-a17ce5a05a-d63e63c3e0.zip │ ├── @babel-helper-hoist-variables-npm-7.18.6-6eb061f405-fd9c35bb43.zip │ ├── @babel-helper-module-imports-npm-7.21.4-e4cd6b4e21-bd330a2eda.zip │ ├── @babel-helper-module-transforms-npm-7.21.5-f21e36f6a3-1ccfc88830.zip │ ├── @babel-helper-plugin-utils-npm-7.21.5-b310faa7aa-6f086e9a84.zip │ ├── @babel-helper-simple-access-npm-7.21.5-adbdd3a62b-ad212beaa2.zip │ ├── @babel-helper-split-export-declaration-npm-7.18.6-53ebf8ad4c-c6d3dede53.zip │ ├── @babel-helper-string-parser-npm-7.21.5-9fa0e56f04-36c0ded452.zip │ ├── @babel-helper-validator-identifier-npm-7.19.1-d84f19e1dc-0eca5e86a7.zip │ ├── @babel-helper-validator-option-npm-7.21.0-fbe86866e3-8ece4c78ff.zip │ ├── @babel-helpers-npm-7.21.5-86b407bd6a-a6f74b8579.zip │ ├── @babel-highlight-npm-7.18.6-9d35ad2e27-92d8ee6154.zip │ ├── @babel-parser-npm-7.21.8-2fefc717c4-1b9a820fed.zip │ ├── @babel-plugin-transform-react-jsx-self-npm-7.21.0-9f64a88644-696f74c04a.zip │ ├── @babel-plugin-transform-react-jsx-source-npm-7.19.6-f7b8cba2b3-1e9e29a4ef.zip │ ├── @babel-runtime-npm-7.21.5-7d058028a3-358f2779d3.zip │ ├── @babel-template-npm-7.20.7-c157fc5838-2eb1a0ab8d.zip │ ├── @babel-traverse-npm-7.21.5-1ca322a4d6-b403733fa7.zip │ ├── @babel-types-npm-7.21.5-3c8c157928-43242a99c6.zip │ ├── @emotion-babel-plugin-npm-11.11.0-c1dcc4c884-6b363edccc.zip │ ├── @emotion-cache-npm-11.11.0-3e6e449071-8eb1dc22be.zip │ ├── @emotion-hash-npm-0.9.1-650576c2b1-716e17e48b.zip │ ├── @emotion-is-prop-valid-npm-1.2.0-332d343e3d-cc7a19850a.zip │ ├── @emotion-is-prop-valid-npm-1.2.1-794afe6a94-8f42dc573a.zip │ ├── @emotion-memoize-npm-0.8.0-c5dd451828-c87bb110b8.zip │ ├── @emotion-memoize-npm-0.8.1-9b1e35ff15-a19cc01a29.zip │ ├── @emotion-react-npm-11.11.0-fda75c579c-2653e7c3de.zip │ ├── @emotion-serialize-npm-1.1.2-4b856d3761-413c352e65.zip │ ├── @emotion-sheet-npm-1.2.2-a918ac483c-d973273c9c.zip │ ├── @emotion-styled-npm-11.11.0-9a95c8527d-904f641aad.zip │ ├── @emotion-stylis-npm-0.8.5-3e9db8959f-67ff595844.zip │ ├── @emotion-unitless-npm-0.7.5-14e1171640-f976e5345b.zip │ ├── @emotion-unitless-npm-0.8.1-bcf0a8f565-385e21d184.zip │ ├── @emotion-use-insertion-effect-with-fallbacks-npm-1.0.1-730758c66c-700b6e5bbb.zip │ ├── @emotion-utils-npm-1.2.1-3d04f99348-e0b44be070.zip │ ├── @emotion-weak-memoize-npm-0.3.1-bfc18213af-b2be47caa2.zip │ ├── @gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip │ ├── @jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip │ ├── @jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip │ ├── @jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip │ ├── @jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip │ ├── @jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip │ ├── @jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip │ ├── @mui-base-npm-5.0.0-beta.0-1f2c2963c9-1312e20f32.zip │ ├── @mui-core-downloads-tracker-npm-5.13.0-e6fa820f13-7919c72b85.zip │ ├── @mui-icons-material-npm-5.11.16-d962649d08-db70426b6e.zip │ ├── @mui-material-npm-5.13.0-36f6bb79c1-3601eae0a5.zip │ ├── @mui-private-theming-npm-5.12.3-401bca898f-4607951eff.zip │ ├── @mui-styled-engine-npm-5.12.3-7512b59aef-bd96f27601.zip │ ├── @mui-system-npm-5.12.3-0043cb49ed-c2f0e55e8f.zip │ ├── @mui-types-npm-7.2.4-b806d33b78-16bea05474.zip │ ├── @mui-utils-npm-5.12.3-b9d75a1b62-bec2d8e173.zip │ ├── @npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip │ ├── @npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip │ ├── @popperjs-core-npm-2.11.7-c1bac58243-5b65537478.zip │ ├── @rollup-plugin-node-resolve-npm-15.0.2-3c7757ccf0-328eafee06.zip │ ├── @rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip │ ├── @tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip │ ├── @types-debug-npm-4.1.7-f54c81f8db-0a7b89d8ed.zip │ ├── @types-estree-npm-1.0.1-4c9469c165-e9aa175eac.zip │ ├── @types-hast-npm-2.3.4-7249cc0ece-fff47998f4.zip │ ├── @types-mdast-npm-3.0.11-4765a259eb-3b04cf4655.zip │ ├── @types-ms-npm-0.7.31-ea3b89342b-daadd354ae.zip │ ├── @types-parse-json-npm-4.0.0-298522afa6-fd6bce2b67.zip │ ├── @types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip │ ├── @types-react-is-npm-17.0.4-7e74f76027-4c27394579.zip │ ├── @types-react-npm-17.0.58-cd92ddfe88-4eaf32b86c.zip │ ├── @types-react-npm-18.2.5-839030c683-97c4534e84.zip │ ├── @types-react-transition-group-npm-4.4.6-3b139bdf30-0872143821.zip │ ├── @types-resolve-npm-1.20.2-5fccb2ad46-61c2cad249.zip │ ├── @types-scheduler-npm-0.16.3-887bfc0086-2b0aec39c2.zip │ ├── @types-unist-npm-2.0.6-82641b4aa5-25cb860ff1.zip │ ├── @vitejs-plugin-react-npm-4.0.0-e0a2ed08ce-575298f665.zip │ ├── abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip │ ├── acorn-npm-8.8.2-9d518fd7d3-f790b99a1b.zip │ ├── agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip │ ├── agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip │ ├── aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip │ ├── ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip │ ├── ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip │ ├── anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip │ ├── aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip │ ├── are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip │ ├── babel-plugin-macros-npm-3.1.0-320e781f4e-765de4abeb.zip │ ├── babel-plugin-styled-components-npm-2.1.1-4c6ee7c022-152ced102b.zip │ ├── babel-plugin-syntax-jsx-npm-6.18.0-fcf0a98a71-0c7ce5b81d.zip │ ├── bail-npm-2.0.2-42130cb251-aab4e8ccdc.zip │ ├── balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip │ ├── binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip │ ├── brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip │ ├── brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip │ ├── braces-npm-3.0.2-782240b28a-e2a8e769a8.zip │ ├── browserslist-npm-4.21.5-e3b9e9d029-9755986b22.zip │ ├── builtin-modules-npm-3.3.0-db4f3d32de-db021755d7.zip │ ├── cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip │ ├── callsites-npm-3.1.0-268f989910-072d17b6ab.zip │ ├── camelize-npm-1.0.1-d86ebe085a-91d8611d09.zip │ ├── caniuse-lite-npm-1.0.30001482-266bfb6271-a5f7681c86.zip │ ├── chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip │ ├── character-entities-npm-2.0.2-b5ef4d8fe2-cf16438140.zip │ ├── chokidar-npm-3.5.3-c5f9b0a56a-b49fcde401.zip │ ├── chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip │ ├── clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip │ ├── clsx-npm-1.2.1-77792dc182-30befca801.zip │ ├── color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip │ ├── color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip │ ├── color-support-npm-1.1.3-3be5c53455-9b73568176.zip │ ├── comma-separated-tokens-npm-2.0.3-a4a34086b3-e3bf9e0332.zip │ ├── concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip │ ├── console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip │ ├── convert-source-map-npm-1.9.0-e294555f4b-dc55a1f28d.zip │ ├── cosmiconfig-npm-7.1.0-13a5090bcd-c53bf7befc.zip │ ├── css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip │ ├── css-to-react-native-npm-3.2.0-46e31a25e3-263be65e80.zip │ ├── csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip │ ├── debug-npm-3.2.7-754e818c7a-b3d8c59407.zip │ ├── debug-npm-4.3.4-4513954577-3dbad3f94e.zip │ ├── decode-named-character-reference-npm-1.0.2-db17a755fd-f4c71d3b93.zip │ ├── deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip │ ├── delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip │ ├── depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip │ ├── dequal-npm-2.0.3-53a630c60e-8679b850e1.zip │ ├── diff-npm-5.1.0-d24d222280-c7bf0df7c9.zip │ ├── dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip │ ├── electron-to-chromium-npm-1.4.381-70464fa387-602fcda0ff.zip │ ├── emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip │ ├── encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip │ ├── env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip │ ├── err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip │ ├── error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip │ ├── es-module-lexer-npm-0.4.1-7366b9c775-c33ee30390.zip │ ├── esbuild-darwin-64-npm-0.15.18-c3c12de20e-8.zip │ ├── esbuild-darwin-arm64-npm-0.15.18-37bdbfa731-8.zip │ ├── esbuild-npm-0.15.18-61e07796c8-ec12682b2c.zip │ ├── escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip │ ├── escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip │ ├── escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip │ ├── estree-walker-npm-2.0.2-dfab42f65c-6151e6f982.zip │ ├── extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip │ ├── fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip │ ├── find-root-npm-1.1.0-a16a94005f-b2a59fe4b6.zip │ ├── fs-extra-npm-10.1.0-86573680ed-dc94ab3709.zip │ ├── fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip │ ├── fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip │ ├── fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip │ ├── fsevents-patch-2882183fbf-8.zip │ ├── function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip │ ├── gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip │ ├── gensync-npm-1.0.0-beta.2-224666d72f-a7437e58c6.zip │ ├── glob-npm-7.2.3-2d866d17a5-29452e97b3.zip │ ├── glob-npm-8.1.0-65f64af8b1-92fbea3221.zip │ ├── glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip │ ├── globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip │ ├── graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip │ ├── has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip │ ├── has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip │ ├── has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip │ ├── hast-util-whitespace-npm-2.0.1-0cb2b36fdf-431be6b2f3.zip │ ├── hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip │ ├── http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip │ ├── http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip │ ├── https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip │ ├── humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip │ ├── iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip │ ├── ignore-by-default-npm-1.0.1-78ea10bc54-441509147b.zip │ ├── import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip │ ├── imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip │ ├── indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip │ ├── infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip │ ├── inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip │ ├── inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip │ ├── inline-style-parser-npm-0.1.1-702eac409f-5d545056a3.zip │ ├── ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip │ ├── is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip │ ├── is-binary-path-npm-2.1.0-e61d46f557-84192eb88c.zip │ ├── is-buffer-npm-2.0.5-17e563f277-764c9ad8b5.zip │ ├── is-builtin-module-npm-3.2.1-2f92a5d353-e8f0ffc19a.zip │ ├── is-core-module-npm-2.12.0-3bcb45a24f-f7f7eb2ab7.zip │ ├── is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip │ ├── is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip │ ├── is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip │ ├── is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip │ ├── is-module-npm-1.0.0-79ba918283-8cd5390730.zip │ ├── is-number-npm-7.0.0-060086935c-456ac6f8e0.zip │ ├── is-plain-obj-npm-4.1.0-a4f2a92b44-6dc45da70d.zip │ ├── isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip │ ├── js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip │ ├── jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip │ ├── json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip │ ├── json5-npm-2.2.3-9962c55073-2a7436a933.zip │ ├── jsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zip │ ├── kleur-npm-4.1.5-46b6135f41-1dc476e327.zip │ ├── lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip │ ├── lodash-npm-4.17.21-6382451519-eb835a2e51.zip │ ├── loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip │ ├── lru-cache-npm-5.1.1-f475882a51-c154ae1cbb.zip │ ├── lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip │ ├── lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip │ ├── magic-string-npm-0.25.9-0b51c0ea50-9a0e55a15c.zip │ ├── make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip │ ├── mdast-util-definitions-npm-5.1.2-45a5b0f1bf-2544daccab.zip │ ├── mdast-util-from-markdown-npm-1.3.0-9951643d9b-cc971d1ad3.zip │ ├── mdast-util-to-hast-npm-12.3.0-4814ec4c82-ea40c9f07d.zip │ ├── mdast-util-to-string-npm-3.2.0-4f9fa356be-dc40b544d5.zip │ ├── micromark-core-commonmark-npm-1.0.6-fad8e6e27b-4b483c4607.zip │ ├── micromark-factory-destination-npm-1.0.0-ead4af0386-8e733ae9c1.zip │ ├── micromark-factory-label-npm-1.0.2-aa46281fdc-957e9366bd.zip │ ├── micromark-factory-space-npm-1.0.0-e5fee5c60c-70d3aafde4.zip │ ├── micromark-factory-title-npm-1.0.2-3739fc0d5d-9a9cf66bab.zip │ ├── micromark-factory-whitespace-npm-1.0.0-ea665f7a7c-0888386e6e.zip │ ├── micromark-npm-3.1.0-2432407996-5fe5bc3bf9.zip │ ├── micromark-util-character-npm-1.1.0-fe6b5d2ff8-504a4e3321.zip │ ├── micromark-util-chunked-npm-1.0.0-456e2b513f-c1efd56e8c.zip │ ├── micromark-util-classify-character-npm-1.0.0-68787d9dc2-180446e6a1.zip │ ├── micromark-util-combine-extensions-npm-1.0.0-f13e57de5b-5304a820ef.zip │ ├── micromark-util-decode-numeric-character-reference-npm-1.0.0-68686444bf-f3ae2bb582.zip │ ├── micromark-util-decode-string-npm-1.0.2-6aaf8c3c42-2dbb41c969.zip │ ├── micromark-util-encode-npm-1.0.1-53c61ae1ae-9290583abf.zip │ ├── micromark-util-html-tag-name-npm-1.1.0-a218ca069f-a9b783cec8.zip │ ├── micromark-util-normalize-identifier-npm-1.0.0-79f4e82268-d7c09d5e83.zip │ ├── micromark-util-resolve-all-npm-1.0.0-cb1a6324ae-409667f2bd.zip │ ├── micromark-util-sanitize-uri-npm-1.1.0-4389b68137-fe6093faa0.zip │ ├── micromark-util-subtokenize-npm-1.0.2-9d0d437340-c32ee58a7e.zip │ ├── micromark-util-symbol-npm-1.0.1-e674dcf8f4-c6a3023b3a.zip │ ├── micromark-util-types-npm-1.0.2-83e6ddb6df-08dc901b7c.zip │ ├── minimatch-npm-3.1.2-9405269906-c154e56640.zip │ ├── minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip │ ├── minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip │ ├── minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip │ ├── minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip │ ├── minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip │ ├── minipass-npm-5.0.0-c64fb63c92-425dab2887.zip │ ├── minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip │ ├── minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip │ ├── minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip │ ├── mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip │ ├── mri-npm-1.2.0-8ecee0357d-83f515abbc.zip │ ├── ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip │ ├── ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip │ ├── nanoid-npm-3.3.6-e6d6ae7e71-7d0eda6570.zip │ ├── negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip │ ├── node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip │ ├── node-releases-npm-2.0.10-f8e2d9a776-d784ecde25.zip │ ├── nodemon-npm-2.0.22-2e71ccda0b-9c987e1397.zip │ ├── nopt-npm-1.0.10-f3db192976-f62575acea.zip │ ├── nopt-npm-6.0.0-5ea8050815-82149371f8.zip │ ├── normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip │ ├── npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip │ ├── object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip │ ├── once-npm-1.4.0-ccf03ef07a-cd0a885013.zip │ ├── p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip │ ├── parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip │ ├── parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip │ ├── path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip │ ├── path-parse-npm-1.0.7-09564527b7-49abf3d811.zip │ ├── path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip │ ├── picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip │ ├── picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip │ ├── postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip │ ├── postcss-value-parser-npm-4.2.0-3cef602a6a-819ffab0c9.zip │ ├── promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip │ ├── promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip │ ├── prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip │ ├── property-information-npm-6.2.0-d3b6a6a493-23afce07ba.zip │ ├── pstree.remy-npm-1.1.8-2dd5d55de2-5cb53698d6.zip │ ├── react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip │ ├── react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip │ ├── react-markdown-npm-8.0.7-978c454c1c-0f3e570975.zip │ ├── react-npm-18.2.0-1eae08fee2-88e38092da.zip │ ├── react-refresh-npm-0.14.0-78ef5eeb73-dc69fa8c99.zip │ ├── react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip │ ├── readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip │ ├── readdirp-npm-3.6.0-f950cc74ab-1ced032e6e.zip │ ├── regenerator-runtime-npm-0.13.11-90bf536060-27481628d2.zip │ ├── remark-parse-npm-10.0.1-e654d7df78-505088e564.zip │ ├── remark-rehype-npm-10.1.0-bd8e6f7d8b-b9ac8acff3.zip │ ├── resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip │ ├── resolve-npm-1.22.3-f7dee15274-fb834b8134.zip │ ├── resolve-patch-bb62d3c3c5-ad59734723.zip │ ├── retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip │ ├── rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip │ ├── rollup-npm-2.79.1-94e707a9a3-6a2bf167b3.zip │ ├── sade-npm-1.8.1-4759dc74c1-0756e5b04c.zip │ ├── safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip │ ├── safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip │ ├── semver-npm-5.7.1-40bcea106b-57fd0acfd0.zip │ ├── semver-npm-6.3.0-b3eace8bfd-1b26ecf6db.zip │ ├── semver-npm-7.0.0-218e8c00ca-272c11bf8d.zip │ ├── semver-npm-7.5.0-160502ad5d-2d26693775.zip │ ├── set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip │ ├── shallowequal-npm-1.1.0-6688d419cb-f4c1de0837.zip │ ├── signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip │ ├── simple-update-notifier-npm-1.1.0-92878518a3-1012e9b6c5.zip │ ├── smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip │ ├── socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip │ ├── socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip │ ├── source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip │ ├── source-map-npm-0.5.7-7c3f035429-5dc2043b93.zip │ ├── sourcemap-codec-npm-1.4.8-3a1a9e60b1-b57981c056.zip │ ├── space-separated-tokens-npm-2.0.2-b7ff42c9c6-202e97d7ca.zip │ ├── ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip │ ├── string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip │ ├── string_decoder-npm-1.3.0-2422117fd0-8417646695.zip │ ├── strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip │ ├── style-to-object-npm-0.4.1-a811cc6cab-2ea213e98e.zip │ ├── styled-components-npm-5.3.10-601dcdbf2b-46dfea6c43.zip │ ├── stylis-npm-4.2.0-6b07f11c99-0eb6cc1b86.zip │ ├── supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip │ ├── supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip │ ├── tar-npm-6.1.14-282ba98561-a1be0815a9.zip │ ├── to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip │ ├── to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip │ ├── touch-npm-3.1.0-e2eacebbda-e0be589cb5.zip │ ├── trim-lines-npm-3.0.1-24471f7e84-e241da1046.zip │ ├── trough-npm-2.1.0-20e92f46fc-a577bb561c.zip │ ├── undefsafe-npm-2.0.5-8c3bbf9354-f42ab3b577.zip │ ├── unified-npm-10.1.2-731093c9be-053e7c65ed.zip │ ├── unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip │ ├── unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip │ ├── unist-util-generated-npm-2.0.1-cba405dd6d-6221ad0571.zip │ ├── unist-util-is-npm-5.2.1-cacf6f78d5-ae76fdc3d3.zip │ ├── unist-util-position-npm-4.0.4-833bfce46c-e7487b6cec.zip │ ├── unist-util-stringify-position-npm-3.0.3-3ab0818239-dbd66c1518.zip │ ├── unist-util-visit-npm-4.1.2-6b950e655a-95a34e3f7b.zip │ ├── unist-util-visit-parents-npm-5.1.3-3b6b34d916-8ecada5978.zip │ ├── universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip │ ├── update-browserslist-db-npm-1.0.11-2c8e64258f-b98327518f.zip │ ├── util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip │ ├── uvu-npm-0.5.6-c8507ad49b-09460a3797.zip │ ├── vfile-message-npm-3.1.4-47b355eba8-d0ee7da197.zip │ ├── vfile-npm-5.3.7-3fe49f8a33-642cce703a.zip │ ├── vite-npm-3.2.6-3354500ffb-b380064a42.zip │ ├── vite-plugin-externals-npm-0.6.2-a6629c9e5a-585dcc432a.zip │ ├── which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip │ ├── wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip │ ├── wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip │ ├── yallist-npm-3.1.1-a568a556b4-48f7bb00dc.zip │ ├── yallist-npm-4.0.0-b493d9e907-343617202a.zip │ └── yaml-npm-1.10.2-0e780aebdf-ce4ada136e.zip ├── install-state.gz └── releases │ └── yarn-3.5.1.cjs ├── .yarnrc.yml ├── CONTRIBUTING.md ├── FIFTYONE_TEAMS.md ├── LICENSE ├── README.md ├── RELEASING.md ├── __init__.py ├── assets ├── icon-dark.svg └── icon-light.svg ├── db ├── __init__.py ├── client.py ├── memory.py └── tables.py ├── dist └── index.umd.js ├── fiftyone.yml ├── links ├── aggregation_classifier.py ├── aggregator.py ├── computation.py ├── data_inspection.py ├── docs_qa_with_sources.py ├── effective_query_generator.py ├── general_qa.py ├── introspection.py ├── query_intent_classifier.py ├── utils.py ├── view_creation_classifier.py ├── view_creation_planner.py ├── view_creator.py ├── view_setting_classifier.py ├── view_stage_constructor.py ├── view_stage_delegator.py ├── view_stage_validator.py └── workspace_inspection.py ├── package.json ├── prompts ├── add_to_existing_view_classification.txt ├── aggregation_analysis.txt ├── aggregation_delegation.txt ├── aggregation_expression.txt ├── compute_clustering.txt ├── compute_visualization.txt ├── computer_vision_response.txt ├── create_view_planning.txt ├── create_view_stage_delegation.txt ├── data_inspection_for_view_creation.txt ├── data_inspection_no_view_creation.txt ├── delegate_computation.txt ├── docs_computation_qa_retrieval.txt ├── docs_qa_retrieval.txt ├── effective_query_generation.txt ├── filter_field_bool_expression.txt ├── filter_field_date_expression.txt ├── filter_field_datetime_expression.txt ├── filter_field_float_expression.txt ├── filter_field_int_expression.txt ├── filter_field_list_expression.txt ├── filter_field_other_expression.txt ├── filter_field_string_expression.txt ├── help_dynamic.txt ├── help_message_markdown.txt ├── help_message_string.txt ├── intent_classification.txt ├── match_expression.txt ├── match_labels_detections_2d_expression.txt ├── match_labels_general_expression.txt ├── revise_view_creation_plan.txt ├── should_aggregate_classification.txt ├── should_create_view_classification.txt ├── should_run_computation_classification.txt ├── should_set_view_classification.txt ├── view_stage_prompt_suffixes.json └── workspace_inspection.txt ├── pyproject.toml ├── requirements.txt ├── scripts ├── archive.sh ├── release.sh └── update_version.py ├── src ├── Actions.tsx ├── Chat.tsx ├── InputBar.tsx ├── Intro.tsx ├── LoadingIndicator.tsx ├── Message.tsx ├── SendMessageToVoxelGPT.ts ├── ShowMessage.ts ├── VoxelGPT.tsx ├── avatars.tsx ├── constants.ts ├── state.ts ├── types.ts ├── useTypewriterEffect.ts └── utils.ts ├── tests ├── README.md ├── generate_tests.py ├── test_db.py ├── test_examples.csv ├── test_prompts.py └── test_simple_functions.py ├── vite.config.js ├── voxelgpt.py └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | *.pyc 3 | *.egg-info 4 | **/*.DS_store 5 | .chroma 6 | .fiftyone_docs_db 7 | .ipynb_checkpoints 8 | node_modules 9 | settings.json 10 | archives 11 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: https://github.com/asottile/blacken-docs 3 | rev: v1.12.0 4 | hooks: 5 | - id: blacken-docs 6 | additional_dependencies: [black==21.12b0] 7 | args: ["-l 79"] 8 | exclude: ^dist/index.umd.js 9 | - repo: https://github.com/ambv/black 10 | rev: 22.3.0 11 | hooks: 12 | - id: black 13 | language_version: python3 14 | args: ["-l 79"] 15 | exclude: ^dist/index.umd.js 16 | - repo: local 17 | hooks: 18 | - id: pylint 19 | name: pylint 20 | language: system 21 | files: \.py$ 22 | entry: pylint 23 | args: ["--errors-only", "--disable=import-error"] 24 | exclude: ^dist/index.umd.js 25 | - repo: local 26 | hooks: 27 | - id: ipynb-strip 28 | name: ipynb-strip 29 | language: system 30 | files: \.ipynb$ 31 | entry: jupyter nbconvert --clear-output --ClearOutputPreprocessor.enabled=True 32 | args: ["--log-level=ERROR"] 33 | - repo: https://github.com/pre-commit/mirrors-prettier 34 | rev: v2.6.2 35 | hooks: 36 | - id: prettier 37 | exclude: ^dist/index.umd.js 38 | language_version: system 39 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | examples/** 2 | -------------------------------------------------------------------------------- /.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | trailingComma: "es5", 3 | tabWidth: 2, 4 | semi: true, 5 | useTabs: false, 6 | singleQuote: false, 7 | printWidth: 80, 8 | overrides: [ 9 | { 10 | files: "*.md", 11 | options: { 12 | printWidth: 79, 13 | proseWrap: "always", 14 | tabWidth: 4, 15 | }, 16 | }, 17 | { 18 | files: "*.json", 19 | options: { 20 | tabWidth: 4, 21 | }, 22 | }, 23 | ], 24 | }; 25 | -------------------------------------------------------------------------------- /.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-03c04fd526.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-03c04fd526.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-code-frame-npm-7.21.4-5db83e65be-e5390e6ec1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-code-frame-npm-7.21.4-5db83e65be-e5390e6ec1.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-compat-data-npm-7.21.7-62e7f604b1-28747eb3fc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-compat-data-npm-7.21.7-62e7f604b1-28747eb3fc.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-core-npm-7.21.8-236525e651-f281184473.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-core-npm-7.21.8-236525e651-f281184473.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-generator-npm-7.21.5-576849ce71-78af737b9d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-generator-npm-7.21.5-576849ce71-78af737b9d.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-annotate-as-pure-npm-7.18.6-36e25293d8-88ccd15ced.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-annotate-as-pure-npm-7.18.6-36e25293d8-88ccd15ced.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-compilation-targets-npm-7.21.5-999fc74b3f-0edecb9c97.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-compilation-targets-npm-7.21.5-999fc74b3f-0edecb9c97.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-environment-visitor-npm-7.21.5-7d7d1d1996-e436af7b62.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-environment-visitor-npm-7.21.5-7d7d1d1996-e436af7b62.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-function-name-npm-7.21.0-a17ce5a05a-d63e63c3e0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-function-name-npm-7.21.0-a17ce5a05a-d63e63c3e0.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-hoist-variables-npm-7.18.6-6eb061f405-fd9c35bb43.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-hoist-variables-npm-7.18.6-6eb061f405-fd9c35bb43.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-module-imports-npm-7.21.4-e4cd6b4e21-bd330a2eda.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-module-imports-npm-7.21.4-e4cd6b4e21-bd330a2eda.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-module-transforms-npm-7.21.5-f21e36f6a3-1ccfc88830.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-module-transforms-npm-7.21.5-f21e36f6a3-1ccfc88830.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-plugin-utils-npm-7.21.5-b310faa7aa-6f086e9a84.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-plugin-utils-npm-7.21.5-b310faa7aa-6f086e9a84.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-simple-access-npm-7.21.5-adbdd3a62b-ad212beaa2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-simple-access-npm-7.21.5-adbdd3a62b-ad212beaa2.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-split-export-declaration-npm-7.18.6-53ebf8ad4c-c6d3dede53.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-split-export-declaration-npm-7.18.6-53ebf8ad4c-c6d3dede53.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-string-parser-npm-7.21.5-9fa0e56f04-36c0ded452.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-string-parser-npm-7.21.5-9fa0e56f04-36c0ded452.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-validator-identifier-npm-7.19.1-d84f19e1dc-0eca5e86a7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-validator-identifier-npm-7.19.1-d84f19e1dc-0eca5e86a7.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helper-validator-option-npm-7.21.0-fbe86866e3-8ece4c78ff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helper-validator-option-npm-7.21.0-fbe86866e3-8ece4c78ff.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-helpers-npm-7.21.5-86b407bd6a-a6f74b8579.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-helpers-npm-7.21.5-86b407bd6a-a6f74b8579.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-highlight-npm-7.18.6-9d35ad2e27-92d8ee6154.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-highlight-npm-7.18.6-9d35ad2e27-92d8ee6154.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-parser-npm-7.21.8-2fefc717c4-1b9a820fed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-parser-npm-7.21.8-2fefc717c4-1b9a820fed.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.21.0-9f64a88644-696f74c04a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-plugin-transform-react-jsx-self-npm-7.21.0-9f64a88644-696f74c04a.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.19.6-f7b8cba2b3-1e9e29a4ef.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-plugin-transform-react-jsx-source-npm-7.19.6-f7b8cba2b3-1e9e29a4ef.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-runtime-npm-7.21.5-7d058028a3-358f2779d3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-runtime-npm-7.21.5-7d058028a3-358f2779d3.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-template-npm-7.20.7-c157fc5838-2eb1a0ab8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-template-npm-7.20.7-c157fc5838-2eb1a0ab8d.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-traverse-npm-7.21.5-1ca322a4d6-b403733fa7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-traverse-npm-7.21.5-1ca322a4d6-b403733fa7.zip -------------------------------------------------------------------------------- /.yarn/cache/@babel-types-npm-7.21.5-3c8c157928-43242a99c6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@babel-types-npm-7.21.5-3c8c157928-43242a99c6.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-babel-plugin-npm-11.11.0-c1dcc4c884-6b363edccc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-babel-plugin-npm-11.11.0-c1dcc4c884-6b363edccc.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-cache-npm-11.11.0-3e6e449071-8eb1dc22be.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-cache-npm-11.11.0-3e6e449071-8eb1dc22be.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-hash-npm-0.9.1-650576c2b1-716e17e48b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-hash-npm-0.9.1-650576c2b1-716e17e48b.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-is-prop-valid-npm-1.2.0-332d343e3d-cc7a19850a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-is-prop-valid-npm-1.2.0-332d343e3d-cc7a19850a.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-is-prop-valid-npm-1.2.1-794afe6a94-8f42dc573a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-is-prop-valid-npm-1.2.1-794afe6a94-8f42dc573a.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-memoize-npm-0.8.0-c5dd451828-c87bb110b8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-memoize-npm-0.8.0-c5dd451828-c87bb110b8.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-memoize-npm-0.8.1-9b1e35ff15-a19cc01a29.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-memoize-npm-0.8.1-9b1e35ff15-a19cc01a29.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-react-npm-11.11.0-fda75c579c-2653e7c3de.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-react-npm-11.11.0-fda75c579c-2653e7c3de.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-serialize-npm-1.1.2-4b856d3761-413c352e65.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-serialize-npm-1.1.2-4b856d3761-413c352e65.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-sheet-npm-1.2.2-a918ac483c-d973273c9c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-sheet-npm-1.2.2-a918ac483c-d973273c9c.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-styled-npm-11.11.0-9a95c8527d-904f641aad.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-styled-npm-11.11.0-9a95c8527d-904f641aad.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-stylis-npm-0.8.5-3e9db8959f-67ff595844.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-stylis-npm-0.8.5-3e9db8959f-67ff595844.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-unitless-npm-0.7.5-14e1171640-f976e5345b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-unitless-npm-0.7.5-14e1171640-f976e5345b.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-unitless-npm-0.8.1-bcf0a8f565-385e21d184.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-unitless-npm-0.8.1-bcf0a8f565-385e21d184.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-use-insertion-effect-with-fallbacks-npm-1.0.1-730758c66c-700b6e5bbb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-use-insertion-effect-with-fallbacks-npm-1.0.1-730758c66c-700b6e5bbb.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-utils-npm-1.2.1-3d04f99348-e0b44be070.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-utils-npm-1.2.1-3d04f99348-e0b44be070.zip -------------------------------------------------------------------------------- /.yarn/cache/@emotion-weak-memoize-npm-0.3.1-bfc18213af-b2be47caa2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@emotion-weak-memoize-npm-0.3.1-bfc18213af-b2be47caa2.zip -------------------------------------------------------------------------------- /.yarn/cache/@gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@gar-promisify-npm-1.1.3-ac1a325862-4059f790e2.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@jridgewell-gen-mapping-npm-0.3.3-1815eba94c-4a74944bd3.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@jridgewell-resolve-uri-npm-3.1.0-6ff2351e61-b5ceaaf9a1.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@jridgewell-set-array-npm-1.1.2-45b82d7fb6-69a84d5980.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.14-f5f0630788-61100637b6.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@jridgewell-sourcemap-codec-npm-1.4.15-a055fb62cf-b881c7e503.zip -------------------------------------------------------------------------------- /.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@jridgewell-trace-mapping-npm-0.3.18-cd96571385-0572669f85.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-base-npm-5.0.0-beta.0-1f2c2963c9-1312e20f32.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-base-npm-5.0.0-beta.0-1f2c2963c9-1312e20f32.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-core-downloads-tracker-npm-5.13.0-e6fa820f13-7919c72b85.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-core-downloads-tracker-npm-5.13.0-e6fa820f13-7919c72b85.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-icons-material-npm-5.11.16-d962649d08-db70426b6e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-icons-material-npm-5.11.16-d962649d08-db70426b6e.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-material-npm-5.13.0-36f6bb79c1-3601eae0a5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-material-npm-5.13.0-36f6bb79c1-3601eae0a5.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-private-theming-npm-5.12.3-401bca898f-4607951eff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-private-theming-npm-5.12.3-401bca898f-4607951eff.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-styled-engine-npm-5.12.3-7512b59aef-bd96f27601.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-styled-engine-npm-5.12.3-7512b59aef-bd96f27601.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-system-npm-5.12.3-0043cb49ed-c2f0e55e8f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-system-npm-5.12.3-0043cb49ed-c2f0e55e8f.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-types-npm-7.2.4-b806d33b78-16bea05474.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-types-npm-7.2.4-b806d33b78-16bea05474.zip -------------------------------------------------------------------------------- /.yarn/cache/@mui-utils-npm-5.12.3-b9d75a1b62-bec2d8e173.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@mui-utils-npm-5.12.3-b9d75a1b62-bec2d8e173.zip -------------------------------------------------------------------------------- /.yarn/cache/@npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@npmcli-fs-npm-2.1.2-08d434e77b-405074965e.zip -------------------------------------------------------------------------------- /.yarn/cache/@npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@npmcli-move-file-npm-2.0.1-b593d8f741-52dc02259d.zip -------------------------------------------------------------------------------- /.yarn/cache/@popperjs-core-npm-2.11.7-c1bac58243-5b65537478.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@popperjs-core-npm-2.11.7-c1bac58243-5b65537478.zip -------------------------------------------------------------------------------- /.yarn/cache/@rollup-plugin-node-resolve-npm-15.0.2-3c7757ccf0-328eafee06.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@rollup-plugin-node-resolve-npm-15.0.2-3c7757ccf0-328eafee06.zip -------------------------------------------------------------------------------- /.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@rollup-pluginutils-npm-5.0.2-6aa9d0ddd4-edea15e543.zip -------------------------------------------------------------------------------- /.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@tootallnate-once-npm-2.0.0-e36cf4f140-ad87447820.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-debug-npm-4.1.7-f54c81f8db-0a7b89d8ed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-debug-npm-4.1.7-f54c81f8db-0a7b89d8ed.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-estree-npm-1.0.1-4c9469c165-e9aa175eac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-estree-npm-1.0.1-4c9469c165-e9aa175eac.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-hast-npm-2.3.4-7249cc0ece-fff47998f4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-hast-npm-2.3.4-7249cc0ece-fff47998f4.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-mdast-npm-3.0.11-4765a259eb-3b04cf4655.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-mdast-npm-3.0.11-4765a259eb-3b04cf4655.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-ms-npm-0.7.31-ea3b89342b-daadd354ae.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-ms-npm-0.7.31-ea3b89342b-daadd354ae.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-fd6bce2b67.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-parse-json-npm-4.0.0-298522afa6-fd6bce2b67.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-prop-types-npm-15.7.5-2aa48aa177-5b43b8b154.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-react-is-npm-17.0.4-7e74f76027-4c27394579.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-react-is-npm-17.0.4-7e74f76027-4c27394579.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-react-npm-17.0.58-cd92ddfe88-4eaf32b86c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-react-npm-17.0.58-cd92ddfe88-4eaf32b86c.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-react-npm-18.2.5-839030c683-97c4534e84.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-react-npm-18.2.5-839030c683-97c4534e84.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-react-transition-group-npm-4.4.6-3b139bdf30-0872143821.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-react-transition-group-npm-4.4.6-3b139bdf30-0872143821.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-resolve-npm-1.20.2-5fccb2ad46-61c2cad249.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-resolve-npm-1.20.2-5fccb2ad46-61c2cad249.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-scheduler-npm-0.16.3-887bfc0086-2b0aec39c2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-scheduler-npm-0.16.3-887bfc0086-2b0aec39c2.zip -------------------------------------------------------------------------------- /.yarn/cache/@types-unist-npm-2.0.6-82641b4aa5-25cb860ff1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@types-unist-npm-2.0.6-82641b4aa5-25cb860ff1.zip -------------------------------------------------------------------------------- /.yarn/cache/@vitejs-plugin-react-npm-4.0.0-e0a2ed08ce-575298f665.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/@vitejs-plugin-react-npm-4.0.0-e0a2ed08ce-575298f665.zip -------------------------------------------------------------------------------- /.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/abbrev-npm-1.1.1-3659247eab-a4a97ec07d.zip -------------------------------------------------------------------------------- /.yarn/cache/acorn-npm-8.8.2-9d518fd7d3-f790b99a1b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/acorn-npm-8.8.2-9d518fd7d3-f790b99a1b.zip -------------------------------------------------------------------------------- /.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip -------------------------------------------------------------------------------- /.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/agentkeepalive-npm-4.3.0-ac3d8e6807-982453aa44.zip -------------------------------------------------------------------------------- /.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/aggregate-error-npm-3.1.0-415a406f4e-1101a33f21.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ansi-regex-npm-5.0.1-c963a48615-2aa4bb54ca.zip -------------------------------------------------------------------------------- /.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ansi-styles-npm-3.2.1-8cb8107983-d85ade01c1.zip -------------------------------------------------------------------------------- /.yarn/cache/anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/anymatch-npm-3.1.3-bc81d103b1-3e044fd6d1.zip -------------------------------------------------------------------------------- /.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/aproba-npm-2.0.0-8716bcfde6-5615cadcfb.zip -------------------------------------------------------------------------------- /.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/are-we-there-yet-npm-3.0.1-3395b1512f-52590c2486.zip -------------------------------------------------------------------------------- /.yarn/cache/babel-plugin-macros-npm-3.1.0-320e781f4e-765de4abeb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/babel-plugin-macros-npm-3.1.0-320e781f4e-765de4abeb.zip -------------------------------------------------------------------------------- /.yarn/cache/babel-plugin-styled-components-npm-2.1.1-4c6ee7c022-152ced102b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/babel-plugin-styled-components-npm-2.1.1-4c6ee7c022-152ced102b.zip -------------------------------------------------------------------------------- /.yarn/cache/babel-plugin-syntax-jsx-npm-6.18.0-fcf0a98a71-0c7ce5b81d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/babel-plugin-syntax-jsx-npm-6.18.0-fcf0a98a71-0c7ce5b81d.zip -------------------------------------------------------------------------------- /.yarn/cache/bail-npm-2.0.2-42130cb251-aab4e8ccdc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/bail-npm-2.0.2-42130cb251-aab4e8ccdc.zip -------------------------------------------------------------------------------- /.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/balanced-match-npm-1.0.2-a53c126459-9706c088a2.zip -------------------------------------------------------------------------------- /.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/binary-extensions-npm-2.2.0-180c33fec7-ccd267956c.zip -------------------------------------------------------------------------------- /.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/brace-expansion-npm-1.1.11-fb95eb05ad-faf34a7bb0.zip -------------------------------------------------------------------------------- /.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/brace-expansion-npm-2.0.1-17aa2616f9-a61e7cd2e8.zip -------------------------------------------------------------------------------- /.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/braces-npm-3.0.2-782240b28a-e2a8e769a8.zip -------------------------------------------------------------------------------- /.yarn/cache/browserslist-npm-4.21.5-e3b9e9d029-9755986b22.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/browserslist-npm-4.21.5-e3b9e9d029-9755986b22.zip -------------------------------------------------------------------------------- /.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-db021755d7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/builtin-modules-npm-3.3.0-db4f3d32de-db021755d7.zip -------------------------------------------------------------------------------- /.yarn/cache/cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/cacache-npm-16.1.3-4e2088ed0d-d91409e6e5.zip -------------------------------------------------------------------------------- /.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/callsites-npm-3.1.0-268f989910-072d17b6ab.zip -------------------------------------------------------------------------------- /.yarn/cache/camelize-npm-1.0.1-d86ebe085a-91d8611d09.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/camelize-npm-1.0.1-d86ebe085a-91d8611d09.zip -------------------------------------------------------------------------------- /.yarn/cache/caniuse-lite-npm-1.0.30001482-266bfb6271-a5f7681c86.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/caniuse-lite-npm-1.0.30001482-266bfb6271-a5f7681c86.zip -------------------------------------------------------------------------------- /.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/chalk-npm-2.4.2-3ea16dd91e-ec3661d38f.zip -------------------------------------------------------------------------------- /.yarn/cache/character-entities-npm-2.0.2-b5ef4d8fe2-cf16438140.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/character-entities-npm-2.0.2-b5ef4d8fe2-cf16438140.zip -------------------------------------------------------------------------------- /.yarn/cache/chokidar-npm-3.5.3-c5f9b0a56a-b49fcde401.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/chokidar-npm-3.5.3-c5f9b0a56a-b49fcde401.zip -------------------------------------------------------------------------------- /.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/chownr-npm-2.0.0-638f1c9c61-c57cf9dd07.zip -------------------------------------------------------------------------------- /.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/clean-stack-npm-2.2.0-a8ce435a5c-2ac8cd2b2f.zip -------------------------------------------------------------------------------- /.yarn/cache/clsx-npm-1.2.1-77792dc182-30befca801.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/clsx-npm-1.2.1-77792dc182-30befca801.zip -------------------------------------------------------------------------------- /.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/color-convert-npm-1.9.3-1fe690075e-fd7a64a17c.zip -------------------------------------------------------------------------------- /.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/color-name-npm-1.1.3-728b7b5d39-09c5d3e33d.zip -------------------------------------------------------------------------------- /.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/color-support-npm-1.1.3-3be5c53455-9b73568176.zip -------------------------------------------------------------------------------- /.yarn/cache/comma-separated-tokens-npm-2.0.3-a4a34086b3-e3bf9e0332.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/comma-separated-tokens-npm-2.0.3-a4a34086b3-e3bf9e0332.zip -------------------------------------------------------------------------------- /.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/concat-map-npm-0.0.1-85a921b7ee-902a9f5d89.zip -------------------------------------------------------------------------------- /.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/console-control-strings-npm-1.1.0-e3160e5275-8755d76787.zip -------------------------------------------------------------------------------- /.yarn/cache/convert-source-map-npm-1.9.0-e294555f4b-dc55a1f28d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/convert-source-map-npm-1.9.0-e294555f4b-dc55a1f28d.zip -------------------------------------------------------------------------------- /.yarn/cache/cosmiconfig-npm-7.1.0-13a5090bcd-c53bf7befc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/cosmiconfig-npm-7.1.0-13a5090bcd-c53bf7befc.zip -------------------------------------------------------------------------------- /.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/css-color-keywords-npm-1.0.0-fc176df58b-8f125e3ad4.zip -------------------------------------------------------------------------------- /.yarn/cache/css-to-react-native-npm-3.2.0-46e31a25e3-263be65e80.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/css-to-react-native-npm-3.2.0-46e31a25e3-263be65e80.zip -------------------------------------------------------------------------------- /.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/csstype-npm-3.1.2-cead7d99b2-e1a52e6c25.zip -------------------------------------------------------------------------------- /.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/debug-npm-3.2.7-754e818c7a-b3d8c59407.zip -------------------------------------------------------------------------------- /.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/debug-npm-4.3.4-4513954577-3dbad3f94e.zip -------------------------------------------------------------------------------- /.yarn/cache/decode-named-character-reference-npm-1.0.2-db17a755fd-f4c71d3b93.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/decode-named-character-reference-npm-1.0.2-db17a755fd-f4c71d3b93.zip -------------------------------------------------------------------------------- /.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/deepmerge-npm-4.3.1-4f751a0844-2024c6a980.zip -------------------------------------------------------------------------------- /.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/delegates-npm-1.0.0-9b1942d75f-a51744d9b5.zip -------------------------------------------------------------------------------- /.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/depd-npm-2.0.0-b6c51a4b43-abbe19c768.zip -------------------------------------------------------------------------------- /.yarn/cache/dequal-npm-2.0.3-53a630c60e-8679b850e1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/dequal-npm-2.0.3-53a630c60e-8679b850e1.zip -------------------------------------------------------------------------------- /.yarn/cache/diff-npm-5.1.0-d24d222280-c7bf0df7c9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/diff-npm-5.1.0-d24d222280-c7bf0df7c9.zip -------------------------------------------------------------------------------- /.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/dom-helpers-npm-5.2.1-b38bb4470b-863ba9e086.zip -------------------------------------------------------------------------------- /.yarn/cache/electron-to-chromium-npm-1.4.381-70464fa387-602fcda0ff.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/electron-to-chromium-npm-1.4.381-70464fa387-602fcda0ff.zip -------------------------------------------------------------------------------- /.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/emoji-regex-npm-8.0.0-213764015c-d4c5c39d5a.zip -------------------------------------------------------------------------------- /.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/encoding-npm-0.1.13-82a1837d30-bb98632f8f.zip -------------------------------------------------------------------------------- /.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/env-paths-npm-2.2.1-7c7577428c-65b5df55a8.zip -------------------------------------------------------------------------------- /.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-8b7b1be20d.zip -------------------------------------------------------------------------------- /.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/error-ex-npm-1.3.2-5654f80c0f-c1c2b8b65f.zip -------------------------------------------------------------------------------- /.yarn/cache/es-module-lexer-npm-0.4.1-7366b9c775-c33ee30390.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/es-module-lexer-npm-0.4.1-7366b9c775-c33ee30390.zip -------------------------------------------------------------------------------- /.yarn/cache/esbuild-darwin-64-npm-0.15.18-c3c12de20e-8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/esbuild-darwin-64-npm-0.15.18-c3c12de20e-8.zip -------------------------------------------------------------------------------- /.yarn/cache/esbuild-darwin-arm64-npm-0.15.18-37bdbfa731-8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/esbuild-darwin-arm64-npm-0.15.18-37bdbfa731-8.zip -------------------------------------------------------------------------------- /.yarn/cache/esbuild-npm-0.15.18-61e07796c8-ec12682b2c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/esbuild-npm-0.15.18-61e07796c8-ec12682b2c.zip -------------------------------------------------------------------------------- /.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/escalade-npm-3.1.1-e02da076aa-a3e2a99f07.zip -------------------------------------------------------------------------------- /.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/escape-string-regexp-npm-1.0.5-3284de402f-6092fda75c.zip -------------------------------------------------------------------------------- /.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/escape-string-regexp-npm-4.0.0-4b531d8d59-98b48897d9.zip -------------------------------------------------------------------------------- /.yarn/cache/estree-walker-npm-2.0.2-dfab42f65c-6151e6f982.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/estree-walker-npm-2.0.2-dfab42f65c-6151e6f982.zip -------------------------------------------------------------------------------- /.yarn/cache/extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/extend-npm-3.0.2-e1ca07ac54-a50a8309ca.zip -------------------------------------------------------------------------------- /.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/fill-range-npm-7.0.1-b8b1817caa-cc283f4e65.zip -------------------------------------------------------------------------------- /.yarn/cache/find-root-npm-1.1.0-a16a94005f-b2a59fe4b6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/find-root-npm-1.1.0-a16a94005f-b2a59fe4b6.zip -------------------------------------------------------------------------------- /.yarn/cache/fs-extra-npm-10.1.0-86573680ed-dc94ab3709.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/fs-extra-npm-10.1.0-86573680ed-dc94ab3709.zip -------------------------------------------------------------------------------- /.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/fs-minipass-npm-2.1.0-501ef87306-1b8d128dae.zip -------------------------------------------------------------------------------- /.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/fs.realpath-npm-1.0.0-c8f05d8126-99ddea01a7.zip -------------------------------------------------------------------------------- /.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/fsevents-npm-2.3.2-a881d6ac9f-97ade64e75.zip -------------------------------------------------------------------------------- /.yarn/cache/fsevents-patch-2882183fbf-8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/fsevents-patch-2882183fbf-8.zip -------------------------------------------------------------------------------- /.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/function-bind-npm-1.1.1-b56b322ae9-b32fbaebb3.zip -------------------------------------------------------------------------------- /.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/gauge-npm-4.0.4-8f878385e9-788b6bfe52.zip -------------------------------------------------------------------------------- /.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-a7437e58c6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/gensync-npm-1.0.0-beta.2-224666d72f-a7437e58c6.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/glob-npm-7.2.3-2d866d17a5-29452e97b3.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-npm-8.1.0-65f64af8b1-92fbea3221.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/glob-npm-8.1.0-65f64af8b1-92fbea3221.zip -------------------------------------------------------------------------------- /.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/glob-parent-npm-5.1.2-021ab32634-f4f2bfe242.zip -------------------------------------------------------------------------------- /.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/globals-npm-11.12.0-1fa7f41a6c-67051a45ec.zip -------------------------------------------------------------------------------- /.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/graceful-fs-npm-4.2.11-24bb648a68-ac85f94da9.zip -------------------------------------------------------------------------------- /.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/has-flag-npm-3.0.0-16ac11fe05-4a15638b45.zip -------------------------------------------------------------------------------- /.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/has-npm-1.0.3-b7f00631c1-b9ad53d53b.zip -------------------------------------------------------------------------------- /.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/has-unicode-npm-2.0.1-893adb4747-1eab07a743.zip -------------------------------------------------------------------------------- /.yarn/cache/hast-util-whitespace-npm-2.0.1-0cb2b36fdf-431be6b2f3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/hast-util-whitespace-npm-2.0.1-0cb2b36fdf-431be6b2f3.zip -------------------------------------------------------------------------------- /.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/hoist-non-react-statics-npm-3.3.2-e7b709e6c1-b153827042.zip -------------------------------------------------------------------------------- /.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/http-cache-semantics-npm-4.1.1-1120131375-83ac0bc60b.zip -------------------------------------------------------------------------------- /.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/http-proxy-agent-npm-5.0.0-7f1f121b83-e2ee1ff165.zip -------------------------------------------------------------------------------- /.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip -------------------------------------------------------------------------------- /.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/humanize-ms-npm-1.2.1-e942bd7329-9c7a74a282.zip -------------------------------------------------------------------------------- /.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/iconv-lite-npm-0.6.3-24b8aae27e-3f60d47a5c.zip -------------------------------------------------------------------------------- /.yarn/cache/ignore-by-default-npm-1.0.1-78ea10bc54-441509147b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ignore-by-default-npm-1.0.1-78ea10bc54-441509147b.zip -------------------------------------------------------------------------------- /.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/import-fresh-npm-3.3.0-3e34265ca9-2cacfad06e.zip -------------------------------------------------------------------------------- /.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/imurmurhash-npm-0.1.4-610c5068a0-7cae75c8cd.zip -------------------------------------------------------------------------------- /.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/indent-string-npm-4.0.0-7b717435b2-824cfb9929.zip -------------------------------------------------------------------------------- /.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/infer-owner-npm-1.0.4-685ac3d2af-181e732764.zip -------------------------------------------------------------------------------- /.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/inflight-npm-1.0.6-ccedb4b908-f4f76aa072.zip -------------------------------------------------------------------------------- /.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/inherits-npm-2.0.4-c66b3957a0-4a48a73384.zip -------------------------------------------------------------------------------- /.yarn/cache/inline-style-parser-npm-0.1.1-702eac409f-5d545056a3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/inline-style-parser-npm-0.1.1-702eac409f-5d545056a3.zip -------------------------------------------------------------------------------- /.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ip-npm-2.0.0-204facb3cc-cfcfac6b87.zip -------------------------------------------------------------------------------- /.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-arrayish-npm-0.2.1-23927dfb15-eef4417e3c.zip -------------------------------------------------------------------------------- /.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-84192eb88c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-binary-path-npm-2.1.0-e61d46f557-84192eb88c.zip -------------------------------------------------------------------------------- /.yarn/cache/is-buffer-npm-2.0.5-17e563f277-764c9ad8b5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-buffer-npm-2.0.5-17e563f277-764c9ad8b5.zip -------------------------------------------------------------------------------- /.yarn/cache/is-builtin-module-npm-3.2.1-2f92a5d353-e8f0ffc19a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-builtin-module-npm-3.2.1-2f92a5d353-e8f0ffc19a.zip -------------------------------------------------------------------------------- /.yarn/cache/is-core-module-npm-2.12.0-3bcb45a24f-f7f7eb2ab7.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-core-module-npm-2.12.0-3bcb45a24f-f7f7eb2ab7.zip -------------------------------------------------------------------------------- /.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-extglob-npm-2.1.1-0870ea68b5-df033653d0.zip -------------------------------------------------------------------------------- /.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-44a30c2945.zip -------------------------------------------------------------------------------- /.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-glob-npm-4.0.3-cb87bf1bdb-d381c1319f.zip -------------------------------------------------------------------------------- /.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-lambda-npm-1.0.1-7ab55bc8a8-93a32f0194.zip -------------------------------------------------------------------------------- /.yarn/cache/is-module-npm-1.0.0-79ba918283-8cd5390730.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-module-npm-1.0.0-79ba918283-8cd5390730.zip -------------------------------------------------------------------------------- /.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-number-npm-7.0.0-060086935c-456ac6f8e0.zip -------------------------------------------------------------------------------- /.yarn/cache/is-plain-obj-npm-4.1.0-a4f2a92b44-6dc45da70d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/is-plain-obj-npm-4.1.0-a4f2a92b44-6dc45da70d.zip -------------------------------------------------------------------------------- /.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/isexe-npm-2.0.0-b58870bd2e-26bf6c5480.zip -------------------------------------------------------------------------------- /.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/js-tokens-npm-4.0.0-0ac852e9e2-8a95213a5a.zip -------------------------------------------------------------------------------- /.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/jsesc-npm-2.5.2-c5acb78804-4dc1907711.zip -------------------------------------------------------------------------------- /.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/json-parse-even-better-errors-npm-2.3.1-144d62256e-798ed4cf33.zip -------------------------------------------------------------------------------- /.yarn/cache/json5-npm-2.2.3-9962c55073-2a7436a933.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/json5-npm-2.2.3-9962c55073-2a7436a933.zip -------------------------------------------------------------------------------- /.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/jsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zip -------------------------------------------------------------------------------- /.yarn/cache/kleur-npm-4.1.5-46b6135f41-1dc476e327.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/kleur-npm-4.1.5-46b6135f41-1dc476e327.zip -------------------------------------------------------------------------------- /.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/lines-and-columns-npm-1.2.4-d6c7cc5799-0c37f9f7fa.zip -------------------------------------------------------------------------------- /.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/lodash-npm-4.17.21-6382451519-eb835a2e51.zip -------------------------------------------------------------------------------- /.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-6517e24e0c.zip -------------------------------------------------------------------------------- /.yarn/cache/lru-cache-npm-5.1.1-f475882a51-c154ae1cbb.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/lru-cache-npm-5.1.1-f475882a51-c154ae1cbb.zip -------------------------------------------------------------------------------- /.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/lru-cache-npm-6.0.0-b4c8668fe1-f97f499f89.zip -------------------------------------------------------------------------------- /.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/lru-cache-npm-7.18.3-e68be5b11c-e550d77238.zip -------------------------------------------------------------------------------- /.yarn/cache/magic-string-npm-0.25.9-0b51c0ea50-9a0e55a15c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/magic-string-npm-0.25.9-0b51c0ea50-9a0e55a15c.zip -------------------------------------------------------------------------------- /.yarn/cache/make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/make-fetch-happen-npm-10.2.1-f1cc7cd2df-2332eb9a8e.zip -------------------------------------------------------------------------------- /.yarn/cache/mdast-util-definitions-npm-5.1.2-45a5b0f1bf-2544daccab.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/mdast-util-definitions-npm-5.1.2-45a5b0f1bf-2544daccab.zip -------------------------------------------------------------------------------- /.yarn/cache/mdast-util-from-markdown-npm-1.3.0-9951643d9b-cc971d1ad3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/mdast-util-from-markdown-npm-1.3.0-9951643d9b-cc971d1ad3.zip -------------------------------------------------------------------------------- /.yarn/cache/mdast-util-to-hast-npm-12.3.0-4814ec4c82-ea40c9f07d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/mdast-util-to-hast-npm-12.3.0-4814ec4c82-ea40c9f07d.zip -------------------------------------------------------------------------------- /.yarn/cache/mdast-util-to-string-npm-3.2.0-4f9fa356be-dc40b544d5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/mdast-util-to-string-npm-3.2.0-4f9fa356be-dc40b544d5.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-core-commonmark-npm-1.0.6-fad8e6e27b-4b483c4607.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-core-commonmark-npm-1.0.6-fad8e6e27b-4b483c4607.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-factory-destination-npm-1.0.0-ead4af0386-8e733ae9c1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-factory-destination-npm-1.0.0-ead4af0386-8e733ae9c1.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-factory-label-npm-1.0.2-aa46281fdc-957e9366bd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-factory-label-npm-1.0.2-aa46281fdc-957e9366bd.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-factory-space-npm-1.0.0-e5fee5c60c-70d3aafde4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-factory-space-npm-1.0.0-e5fee5c60c-70d3aafde4.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-factory-title-npm-1.0.2-3739fc0d5d-9a9cf66bab.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-factory-title-npm-1.0.2-3739fc0d5d-9a9cf66bab.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-factory-whitespace-npm-1.0.0-ea665f7a7c-0888386e6e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-factory-whitespace-npm-1.0.0-ea665f7a7c-0888386e6e.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-npm-3.1.0-2432407996-5fe5bc3bf9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-npm-3.1.0-2432407996-5fe5bc3bf9.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-character-npm-1.1.0-fe6b5d2ff8-504a4e3321.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-character-npm-1.1.0-fe6b5d2ff8-504a4e3321.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-chunked-npm-1.0.0-456e2b513f-c1efd56e8c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-chunked-npm-1.0.0-456e2b513f-c1efd56e8c.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-classify-character-npm-1.0.0-68787d9dc2-180446e6a1.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-classify-character-npm-1.0.0-68787d9dc2-180446e6a1.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-combine-extensions-npm-1.0.0-f13e57de5b-5304a820ef.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-combine-extensions-npm-1.0.0-f13e57de5b-5304a820ef.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-decode-numeric-character-reference-npm-1.0.0-68686444bf-f3ae2bb582.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-decode-numeric-character-reference-npm-1.0.0-68686444bf-f3ae2bb582.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-decode-string-npm-1.0.2-6aaf8c3c42-2dbb41c969.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-decode-string-npm-1.0.2-6aaf8c3c42-2dbb41c969.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-encode-npm-1.0.1-53c61ae1ae-9290583abf.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-encode-npm-1.0.1-53c61ae1ae-9290583abf.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-html-tag-name-npm-1.1.0-a218ca069f-a9b783cec8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-html-tag-name-npm-1.1.0-a218ca069f-a9b783cec8.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-normalize-identifier-npm-1.0.0-79f4e82268-d7c09d5e83.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-normalize-identifier-npm-1.0.0-79f4e82268-d7c09d5e83.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-resolve-all-npm-1.0.0-cb1a6324ae-409667f2bd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-resolve-all-npm-1.0.0-cb1a6324ae-409667f2bd.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-sanitize-uri-npm-1.1.0-4389b68137-fe6093faa0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-sanitize-uri-npm-1.1.0-4389b68137-fe6093faa0.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-subtokenize-npm-1.0.2-9d0d437340-c32ee58a7e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-subtokenize-npm-1.0.2-9d0d437340-c32ee58a7e.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-symbol-npm-1.0.1-e674dcf8f4-c6a3023b3a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-symbol-npm-1.0.1-e674dcf8f4-c6a3023b3a.zip -------------------------------------------------------------------------------- /.yarn/cache/micromark-util-types-npm-1.0.2-83e6ddb6df-08dc901b7c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/micromark-util-types-npm-1.0.2-83e6ddb6df-08dc901b7c.zip -------------------------------------------------------------------------------- /.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minimatch-npm-3.1.2-9405269906-c154e56640.zip -------------------------------------------------------------------------------- /.yarn/cache/minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minimatch-npm-5.1.6-1e71429f4c-7564208ef8.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-collect-npm-1.0.2-3b4676eab5-14df761028.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-fetch-npm-2.1.2-9b21a5c930-3f216be791.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-flush-npm-1.0.5-efe79d9826-56269a0b22.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-npm-3.3.6-b8d93a945b-a30d083c80.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-npm-5.0.0-c64fb63c92-425dab2887.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-npm-5.0.0-c64fb63c92-425dab2887.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-pipeline-npm-1.2.4-5924cb077f-b14240dac0.zip -------------------------------------------------------------------------------- /.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minipass-sized-npm-1.0.3-306d86f432-79076749fc.zip -------------------------------------------------------------------------------- /.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/minizlib-npm-2.1.2-ea89cd0cfb-f1fdeac0b0.zip -------------------------------------------------------------------------------- /.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/mkdirp-npm-1.0.4-37f6ef56b9-a96865108c.zip -------------------------------------------------------------------------------- /.yarn/cache/mri-npm-1.2.0-8ecee0357d-83f515abbc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/mri-npm-1.2.0-8ecee0357d-83f515abbc.zip -------------------------------------------------------------------------------- /.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ms-npm-2.1.2-ec0c1512ff-673cdb2c31.zip -------------------------------------------------------------------------------- /.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ms-npm-2.1.3-81ff3cfac1-aa92de6080.zip -------------------------------------------------------------------------------- /.yarn/cache/nanoid-npm-3.3.6-e6d6ae7e71-7d0eda6570.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/nanoid-npm-3.3.6-e6d6ae7e71-7d0eda6570.zip -------------------------------------------------------------------------------- /.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/negotiator-npm-0.6.3-9d50e36171-b8ffeb1e26.zip -------------------------------------------------------------------------------- /.yarn/cache/node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/node-gyp-npm-9.3.1-43540bab9c-b860e9976f.zip -------------------------------------------------------------------------------- /.yarn/cache/node-releases-npm-2.0.10-f8e2d9a776-d784ecde25.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/node-releases-npm-2.0.10-f8e2d9a776-d784ecde25.zip -------------------------------------------------------------------------------- /.yarn/cache/nodemon-npm-2.0.22-2e71ccda0b-9c987e1397.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/nodemon-npm-2.0.22-2e71ccda0b-9c987e1397.zip -------------------------------------------------------------------------------- /.yarn/cache/nopt-npm-1.0.10-f3db192976-f62575acea.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/nopt-npm-1.0.10-f3db192976-f62575acea.zip -------------------------------------------------------------------------------- /.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/nopt-npm-6.0.0-5ea8050815-82149371f8.zip -------------------------------------------------------------------------------- /.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/normalize-path-npm-3.0.0-658ba7d77f-88eeb4da89.zip -------------------------------------------------------------------------------- /.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/npmlog-npm-6.0.2-e0e69455c7-ae238cd264.zip -------------------------------------------------------------------------------- /.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/object-assign-npm-4.1.1-1004ad6dec-fcc6e4ea8c.zip -------------------------------------------------------------------------------- /.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/once-npm-1.4.0-ccf03ef07a-cd0a885013.zip -------------------------------------------------------------------------------- /.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/p-map-npm-4.0.0-4677ae07c7-cb0ab21ec0.zip -------------------------------------------------------------------------------- /.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/parent-module-npm-1.0.1-1fae11b095-6ba8b25514.zip -------------------------------------------------------------------------------- /.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/parse-json-npm-5.2.0-00a63b1199-62085b17d6.zip -------------------------------------------------------------------------------- /.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/path-is-absolute-npm-1.0.1-31bc695ffd-060840f92c.zip -------------------------------------------------------------------------------- /.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/path-parse-npm-1.0.7-09564527b7-49abf3d811.zip -------------------------------------------------------------------------------- /.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/path-type-npm-4.0.0-10d47fc86a-5b1e2daa24.zip -------------------------------------------------------------------------------- /.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/picocolors-npm-1.0.0-d81e0b1927-a2e8092dd8.zip -------------------------------------------------------------------------------- /.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/picomatch-npm-2.3.1-c782cfd986-050c865ce8.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/postcss-npm-8.4.23-d4a02a832d-8bb9d1b2ea.zip -------------------------------------------------------------------------------- /.yarn/cache/postcss-value-parser-npm-4.2.0-3cef602a6a-819ffab0c9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/postcss-value-parser-npm-4.2.0-3cef602a6a-819ffab0c9.zip -------------------------------------------------------------------------------- /.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/promise-inflight-npm-1.0.1-5bb925afac-2274948309.zip -------------------------------------------------------------------------------- /.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/promise-retry-npm-2.0.1-871f0b01b7-f96a3f6d90.zip -------------------------------------------------------------------------------- /.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/prop-types-npm-15.8.1-17c71ee7ee-c056d3f1c0.zip -------------------------------------------------------------------------------- /.yarn/cache/property-information-npm-6.2.0-d3b6a6a493-23afce07ba.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/property-information-npm-6.2.0-d3b6a6a493-23afce07ba.zip -------------------------------------------------------------------------------- /.yarn/cache/pstree.remy-npm-1.1.8-2dd5d55de2-5cb53698d6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/pstree.remy-npm-1.1.8-2dd5d55de2-5cb53698d6.zip -------------------------------------------------------------------------------- /.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/react-is-npm-16.13.1-a9b9382b4f-f7a19ac349.zip -------------------------------------------------------------------------------- /.yarn/cache/react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/react-is-npm-18.2.0-0cc5edb910-e72d0ba81b.zip -------------------------------------------------------------------------------- /.yarn/cache/react-markdown-npm-8.0.7-978c454c1c-0f3e570975.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/react-markdown-npm-8.0.7-978c454c1c-0f3e570975.zip -------------------------------------------------------------------------------- /.yarn/cache/react-npm-18.2.0-1eae08fee2-88e38092da.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/react-npm-18.2.0-1eae08fee2-88e38092da.zip -------------------------------------------------------------------------------- /.yarn/cache/react-refresh-npm-0.14.0-78ef5eeb73-dc69fa8c99.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/react-refresh-npm-0.14.0-78ef5eeb73-dc69fa8c99.zip -------------------------------------------------------------------------------- /.yarn/cache/react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/react-transition-group-npm-4.4.5-98ea4ef96e-7560284010.zip -------------------------------------------------------------------------------- /.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/readable-stream-npm-3.6.2-d2a6069158-bdcbe6c22e.zip -------------------------------------------------------------------------------- /.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-1ced032e6e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/readdirp-npm-3.6.0-f950cc74ab-1ced032e6e.zip -------------------------------------------------------------------------------- /.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-27481628d2.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/regenerator-runtime-npm-0.13.11-90bf536060-27481628d2.zip -------------------------------------------------------------------------------- /.yarn/cache/remark-parse-npm-10.0.1-e654d7df78-505088e564.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/remark-parse-npm-10.0.1-e654d7df78-505088e564.zip -------------------------------------------------------------------------------- /.yarn/cache/remark-rehype-npm-10.1.0-bd8e6f7d8b-b9ac8acff3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/remark-rehype-npm-10.1.0-bd8e6f7d8b-b9ac8acff3.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/resolve-from-npm-4.0.0-f758ec21bf-f4ba0b8494.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/resolve-npm-1.22.3-f7dee15274-fb834b8134.zip -------------------------------------------------------------------------------- /.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/resolve-patch-bb62d3c3c5-ad59734723.zip -------------------------------------------------------------------------------- /.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-623bd7d2e5.zip -------------------------------------------------------------------------------- /.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-87f4164e39.zip -------------------------------------------------------------------------------- /.yarn/cache/rollup-npm-2.79.1-94e707a9a3-6a2bf167b3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/rollup-npm-2.79.1-94e707a9a3-6a2bf167b3.zip -------------------------------------------------------------------------------- /.yarn/cache/sade-npm-1.8.1-4759dc74c1-0756e5b04c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/sade-npm-1.8.1-4759dc74c1-0756e5b04c.zip -------------------------------------------------------------------------------- /.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/safe-buffer-npm-5.2.1-3481c8aa9b-b99c4b41fd.zip -------------------------------------------------------------------------------- /.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/safer-buffer-npm-2.1.2-8d5c0b705e-cab8f25ae6.zip -------------------------------------------------------------------------------- /.yarn/cache/semver-npm-5.7.1-40bcea106b-57fd0acfd0.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/semver-npm-5.7.1-40bcea106b-57fd0acfd0.zip -------------------------------------------------------------------------------- /.yarn/cache/semver-npm-6.3.0-b3eace8bfd-1b26ecf6db.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/semver-npm-6.3.0-b3eace8bfd-1b26ecf6db.zip -------------------------------------------------------------------------------- /.yarn/cache/semver-npm-7.0.0-218e8c00ca-272c11bf8d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/semver-npm-7.0.0-218e8c00ca-272c11bf8d.zip -------------------------------------------------------------------------------- /.yarn/cache/semver-npm-7.5.0-160502ad5d-2d26693775.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/semver-npm-7.5.0-160502ad5d-2d26693775.zip -------------------------------------------------------------------------------- /.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/set-blocking-npm-2.0.0-49e2cffa24-6e65a05f7c.zip -------------------------------------------------------------------------------- /.yarn/cache/shallowequal-npm-1.1.0-6688d419cb-f4c1de0837.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/shallowequal-npm-1.1.0-6688d419cb-f4c1de0837.zip -------------------------------------------------------------------------------- /.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/signal-exit-npm-3.0.7-bd270458a3-a2f098f247.zip -------------------------------------------------------------------------------- /.yarn/cache/simple-update-notifier-npm-1.1.0-92878518a3-1012e9b6c5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/simple-update-notifier-npm-1.1.0-92878518a3-1012e9b6c5.zip -------------------------------------------------------------------------------- /.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-b5167a7142.zip -------------------------------------------------------------------------------- /.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/socks-npm-2.7.1-17f2b53052-259d9e3e8e.zip -------------------------------------------------------------------------------- /.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/socks-proxy-agent-npm-7.0.0-7aacf32ea0-7205543701.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/source-map-js-npm-1.0.2-ee4f9f9b30-c049a7fc4d.zip -------------------------------------------------------------------------------- /.yarn/cache/source-map-npm-0.5.7-7c3f035429-5dc2043b93.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/source-map-npm-0.5.7-7c3f035429-5dc2043b93.zip -------------------------------------------------------------------------------- /.yarn/cache/sourcemap-codec-npm-1.4.8-3a1a9e60b1-b57981c056.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/sourcemap-codec-npm-1.4.8-3a1a9e60b1-b57981c056.zip -------------------------------------------------------------------------------- /.yarn/cache/space-separated-tokens-npm-2.0.2-b7ff42c9c6-202e97d7ca.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/space-separated-tokens-npm-2.0.2-b7ff42c9c6-202e97d7ca.zip -------------------------------------------------------------------------------- /.yarn/cache/ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/ssri-npm-9.0.1-33ce27f4f8-fb58f5e46b.zip -------------------------------------------------------------------------------- /.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/string-width-npm-4.2.3-2c27177bae-e52c10dc3f.zip -------------------------------------------------------------------------------- /.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/string_decoder-npm-1.3.0-2422117fd0-8417646695.zip -------------------------------------------------------------------------------- /.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/strip-ansi-npm-6.0.1-caddc7cb40-f3cd25890a.zip -------------------------------------------------------------------------------- /.yarn/cache/style-to-object-npm-0.4.1-a811cc6cab-2ea213e98e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/style-to-object-npm-0.4.1-a811cc6cab-2ea213e98e.zip -------------------------------------------------------------------------------- /.yarn/cache/styled-components-npm-5.3.10-601dcdbf2b-46dfea6c43.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/styled-components-npm-5.3.10-601dcdbf2b-46dfea6c43.zip -------------------------------------------------------------------------------- /.yarn/cache/stylis-npm-4.2.0-6b07f11c99-0eb6cc1b86.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/stylis-npm-4.2.0-6b07f11c99-0eb6cc1b86.zip -------------------------------------------------------------------------------- /.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/supports-color-npm-5.5.0-183ac537bc-95f6f4ba5a.zip -------------------------------------------------------------------------------- /.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/supports-preserve-symlinks-flag-npm-1.0.0-f17c4d0028-53b1e247e6.zip -------------------------------------------------------------------------------- /.yarn/cache/tar-npm-6.1.14-282ba98561-a1be0815a9.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/tar-npm-6.1.14-282ba98561-a1be0815a9.zip -------------------------------------------------------------------------------- /.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/to-fast-properties-npm-2.0.0-0dc60cc481-be2de62fe5.zip -------------------------------------------------------------------------------- /.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/to-regex-range-npm-5.0.1-f1e8263b00-f76fa01b3d.zip -------------------------------------------------------------------------------- /.yarn/cache/touch-npm-3.1.0-e2eacebbda-e0be589cb5.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/touch-npm-3.1.0-e2eacebbda-e0be589cb5.zip -------------------------------------------------------------------------------- /.yarn/cache/trim-lines-npm-3.0.1-24471f7e84-e241da1046.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/trim-lines-npm-3.0.1-24471f7e84-e241da1046.zip -------------------------------------------------------------------------------- /.yarn/cache/trough-npm-2.1.0-20e92f46fc-a577bb561c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/trough-npm-2.1.0-20e92f46fc-a577bb561c.zip -------------------------------------------------------------------------------- /.yarn/cache/undefsafe-npm-2.0.5-8c3bbf9354-f42ab3b577.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/undefsafe-npm-2.0.5-8c3bbf9354-f42ab3b577.zip -------------------------------------------------------------------------------- /.yarn/cache/unified-npm-10.1.2-731093c9be-053e7c65ed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unified-npm-10.1.2-731093c9be-053e7c65ed.zip -------------------------------------------------------------------------------- /.yarn/cache/unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unique-filename-npm-2.0.1-183c6c7c2b-807acf3381.zip -------------------------------------------------------------------------------- /.yarn/cache/unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unique-slug-npm-3.0.0-0b82e51577-49f8d915ba.zip -------------------------------------------------------------------------------- /.yarn/cache/unist-util-generated-npm-2.0.1-cba405dd6d-6221ad0571.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unist-util-generated-npm-2.0.1-cba405dd6d-6221ad0571.zip -------------------------------------------------------------------------------- /.yarn/cache/unist-util-is-npm-5.2.1-cacf6f78d5-ae76fdc3d3.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unist-util-is-npm-5.2.1-cacf6f78d5-ae76fdc3d3.zip -------------------------------------------------------------------------------- /.yarn/cache/unist-util-position-npm-4.0.4-833bfce46c-e7487b6cec.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unist-util-position-npm-4.0.4-833bfce46c-e7487b6cec.zip -------------------------------------------------------------------------------- /.yarn/cache/unist-util-stringify-position-npm-3.0.3-3ab0818239-dbd66c1518.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unist-util-stringify-position-npm-3.0.3-3ab0818239-dbd66c1518.zip -------------------------------------------------------------------------------- /.yarn/cache/unist-util-visit-npm-4.1.2-6b950e655a-95a34e3f7b.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unist-util-visit-npm-4.1.2-6b950e655a-95a34e3f7b.zip -------------------------------------------------------------------------------- /.yarn/cache/unist-util-visit-parents-npm-5.1.3-3b6b34d916-8ecada5978.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/unist-util-visit-parents-npm-5.1.3-3b6b34d916-8ecada5978.zip -------------------------------------------------------------------------------- /.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/universalify-npm-2.0.0-03b8b418a8-2406a4edf4.zip -------------------------------------------------------------------------------- /.yarn/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-b98327518f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/update-browserslist-db-npm-1.0.11-2c8e64258f-b98327518f.zip -------------------------------------------------------------------------------- /.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/util-deprecate-npm-1.0.2-e3fe1a219c-474acf1146.zip -------------------------------------------------------------------------------- /.yarn/cache/uvu-npm-0.5.6-c8507ad49b-09460a3797.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/uvu-npm-0.5.6-c8507ad49b-09460a3797.zip -------------------------------------------------------------------------------- /.yarn/cache/vfile-message-npm-3.1.4-47b355eba8-d0ee7da197.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/vfile-message-npm-3.1.4-47b355eba8-d0ee7da197.zip -------------------------------------------------------------------------------- /.yarn/cache/vfile-npm-5.3.7-3fe49f8a33-642cce703a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/vfile-npm-5.3.7-3fe49f8a33-642cce703a.zip -------------------------------------------------------------------------------- /.yarn/cache/vite-npm-3.2.6-3354500ffb-b380064a42.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/vite-npm-3.2.6-3354500ffb-b380064a42.zip -------------------------------------------------------------------------------- /.yarn/cache/vite-plugin-externals-npm-0.6.2-a6629c9e5a-585dcc432a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/vite-plugin-externals-npm-0.6.2-a6629c9e5a-585dcc432a.zip -------------------------------------------------------------------------------- /.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/which-npm-2.0.2-320ddf72f7-1a5c563d3c.zip -------------------------------------------------------------------------------- /.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/wide-align-npm-1.1.5-889d77e592-d5fc37cd56.zip -------------------------------------------------------------------------------- /.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/wrappy-npm-1.0.2-916de4d4b3-159da4805f.zip -------------------------------------------------------------------------------- /.yarn/cache/yallist-npm-3.1.1-a568a556b4-48f7bb00dc.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/yallist-npm-3.1.1-a568a556b4-48f7bb00dc.zip -------------------------------------------------------------------------------- /.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/yallist-npm-4.0.0-b493d9e907-343617202a.zip -------------------------------------------------------------------------------- /.yarn/cache/yaml-npm-1.10.2-0e780aebdf-ce4ada136e.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/cache/yaml-npm-1.10.2-0e780aebdf-ce4ada136e.zip -------------------------------------------------------------------------------- /.yarn/install-state.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voxel51/voxelgpt/c813c0a1ac90ad4e0978573a65a729d5588127d6/.yarn/install-state.gz -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | yarnPath: .yarn/releases/yarn-3.5.1.cjs 2 | nodeLinker: node-modules 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to VoxelGPT 2 | 3 | Thanks for your interest in contributing to VoxelGPT! 4 | 5 | ## Pre-commit hooks 6 | 7 | If you plan to contribute a PR, please check install the pre-commit hooks 8 | before commiting: 9 | 10 | ```shell 11 | pre-commit install 12 | ``` 13 | 14 | You can manually lint a file if necessary like so: 15 | 16 | ```shell 17 | # Manually run linting configured in the pre-commit hook 18 | pre-commit run --files 19 | ``` 20 | 21 | ## Using the plugin in the FiftyOne App 22 | 23 | When developing locally, you must make your source install of VoxelGPT 24 | available as a plugin in order to access it in the FiftyOne App. 25 | 26 | A convenient way to do that is to symlink your `voxelgpt` directory into your 27 | FiftyOne plugins directory: 28 | 29 | ```shell 30 | # Symlinks your clone of voxelgpt into your FiftyOne plugins directory 31 | ln -s "$(pwd)" "$(fiftyone config plugins_dir)/voxelgpt" 32 | ``` 33 | 34 | ## Developing and building the plugin JS bundle 35 | 36 | To build the Fiftyone plugin you must: 37 | 38 | - Install `fiftyone` from source. 39 | [See here](https://github.com/voxel51/fiftyone/blob/develop/CONTRIBUTING.md) 40 | for instructions 41 | - Set the `FIFTYONE_DIR` environment variable to point to your `fiftyone` 42 | source directory 43 | - Have `yarn@3.5.x` installed 44 | - Run `yarn install` to install the `voxelgpt` dependencies 45 | 46 | To create a build, run: 47 | 48 | ```shell 49 | # production build of the plugin js bundle 50 | yarn build 51 | 52 | # for rebuilding the bundle automatically during development 53 | yarn dev 54 | ``` 55 | -------------------------------------------------------------------------------- /RELEASING.md: -------------------------------------------------------------------------------- 1 | # Releasing a new VoxelGPT version 2 | 3 | This document is for VoxelGPT maintainers looking to release a new version of 4 | the plugin. 5 | 6 | Note that you must have the [contributor steps](CONTRIBUTING.md) completed 7 | before running the commands below. 8 | 9 | ## Release script 10 | 11 | The simplest way to release a new version of VoxelGPT is to run the following 12 | script, which automates the steps described below. 13 | 14 | ```shell 15 | yarn release $VERSION 16 | ``` 17 | 18 | ## Manually build the archive 19 | 20 | Alternatively, you can follow these steps to manually create a release. 21 | 22 | ### Build the plugin 23 | 24 | ```shell 25 | yarn build 26 | ``` 27 | 28 | ### Bump the version 29 | 30 | Bump the version of the plugin by running: 31 | 32 | ```shell 33 | # bumps the patch version (for bug fixes only) 34 | yarn bump 35 | 36 | # manually set the version 37 | yarn bump $VERSION 38 | ``` 39 | 40 | ### Commit all files 41 | 42 | Only files committed locally will be included in the plugin archive. 43 | 44 | This is also a good time to tag the new version. 45 | 46 | ```shell 47 | VERSION=1.1.1 48 | 49 | git checkout -b release/$VERSION 50 | git add . # files you want included 51 | git commit -m 'release version $VERSION' 52 | git tag $VERSION 53 | 54 | git push origin --follow-tags # push the commit and tags 55 | ``` 56 | 57 | ### Create the plugin archive 58 | 59 | ```shell 60 | yarn archive 61 | ``` 62 | -------------------------------------------------------------------------------- /db/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Query DB. 3 | 4 | | Copyright 2017-2023, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | from .client import get_client, get_ns 11 | from .tables import UserQueryTable 12 | 13 | 14 | def table(cls): 15 | # If a project ID was provided, use BigQuery, else in-memory 16 | project_id = os.environ.get("PROJECT_ID") 17 | return cls( 18 | project_id, 19 | get_client(project_id), 20 | get_ns(project_id), 21 | os.environ.get("DATASET_ID"), 22 | ) 23 | -------------------------------------------------------------------------------- /db/client.py: -------------------------------------------------------------------------------- 1 | """ 2 | Query DB clients. 3 | 4 | | Copyright 2017-2023, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import db.memory as memory 9 | 10 | 11 | def get_client(project_id): 12 | if project_id: 13 | from google.cloud import bigquery 14 | 15 | return bigquery.Client(project=project_id) 16 | 17 | return memory.Client() 18 | 19 | 20 | def get_ns(project_id): 21 | if project_id: 22 | from google.cloud import bigquery 23 | 24 | return bigquery 25 | 26 | return memory 27 | -------------------------------------------------------------------------------- /db/tables.py: -------------------------------------------------------------------------------- 1 | """ 2 | Query DB tables. 3 | 4 | | Copyright 2017-2023, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import uuid 9 | import os 10 | 11 | 12 | class UserQueryTable(object): 13 | def __init__(self, project_id, client, bigquery, dataset_id): 14 | table_id = os.environ.get("USER_QUERY_TABLE_ID", "user_queries") 15 | self.table_id = f"{project_id}.{dataset_id}.{table_id}" 16 | self.client = client 17 | self.schema = [ 18 | bigquery.SchemaField("query_id", "STRING", mode="REQUIRED"), 19 | bigquery.SchemaField("user_query", "STRING", mode="NULLABLE"), 20 | bigquery.SchemaField("upvotes", "INTEGER", mode="NULLABLE"), 21 | bigquery.SchemaField("downvotes", "INTEGER", mode="NULLABLE"), 22 | ] 23 | 24 | # Create the table if it doesn't exist 25 | try: 26 | self.client.get_table(self.table_id) 27 | except Exception as e: 28 | table = bigquery.Table(self.table_id, self.schema) 29 | self.client.create_table(table) 30 | 31 | def _insert_row(self, query_id, user_query=None, upvotes=0, downvotes=0): 32 | errors = self.client.insert_rows( 33 | self.client.get_table(self.table_id), 34 | [(query_id, user_query, upvotes, downvotes)], 35 | ) 36 | if errors: 37 | raise InsertExpection( 38 | f"Encountered errors while inserting rows: {errors}" 39 | ) 40 | 41 | def insert_query(self, user_query): 42 | query_id = str(uuid.uuid4()) 43 | self._insert_row(query_id, user_query=user_query) 44 | return query_id 45 | 46 | def upvote_query(self, query_id): 47 | self._insert_row(query_id, upvotes=1) 48 | 49 | def downvote_query(self, query_id): 50 | self._insert_row(query_id, downvotes=1) 51 | 52 | 53 | class InsertExpection(Exception): 54 | pass 55 | -------------------------------------------------------------------------------- /fiftyone.yml: -------------------------------------------------------------------------------- 1 | name: "@voxel51/voxelgpt" 2 | description: VoxelGPT is an AI assistant that can query visual datasets, search the FiftyOne docs, and answer general computer vision questions 3 | version: 1.1.4 4 | fiftyone: 5 | version: ">=0.23.7" 6 | url: https://github.com/voxel51/voxelgpt 7 | license: Apache 2.0 8 | js_bundle: dist/index.umd.js 9 | operators: 10 | - ask_voxelgpt 11 | - ask_voxelgpt_panel 12 | - open_voxelgpt_panel 13 | - open_voxelgpt_panel_on_startup 14 | - vote_for_query 15 | secrets: 16 | - OPENAI_API_KEY 17 | - OPENAI_API_TYPE 18 | - AZURE_OPENAI_GPT35_DEPLOYMENT_NAME 19 | - AZURE_OPENAI_GPT4O_DEPLOYMENT_NAME 20 | - AZURE_OPENAI_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME 21 | - AZURE_OPENAI_ENDPOINT 22 | - AZURE_OPENAI_KEY 23 | - VOXELGPT_ALLOW_COMPUTATIONS 24 | - VOXELGPT_APPROVAL_THRESHOLD 25 | -------------------------------------------------------------------------------- /links/aggregation_classifier.py: -------------------------------------------------------------------------------- 1 | """ 2 | Aggregation classifier. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | # pylint: disable=relative-beyond-top-level 11 | from .utils import PROMPTS_DIR, _build_custom_chain, gpt_3_5 12 | 13 | AGGREGATION_CLASSIFICATION_PATH = os.path.join( 14 | PROMPTS_DIR, "should_aggregate_classification.txt" 15 | ) 16 | 17 | 18 | def should_aggregate(query): 19 | chain = _build_custom_chain( 20 | gpt_3_5, template_path=AGGREGATION_CLASSIFICATION_PATH 21 | ) 22 | response = chain.invoke({"query": query}) 23 | return "yes" in response.lower() 24 | -------------------------------------------------------------------------------- /links/effective_query_generator.py: -------------------------------------------------------------------------------- 1 | """ 2 | Effective Query Generator 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | import fiftyone as fo 11 | from fiftyone import ViewField as F 12 | 13 | # pylint: disable=relative-beyond-top-level 14 | from .utils import ( 15 | PROMPTS_DIR, 16 | _build_custom_chain, 17 | gpt_4o, 18 | ) 19 | 20 | EFFECTIVE_QUERY_PATH = os.path.join( 21 | PROMPTS_DIR, "effective_query_generation.txt" 22 | ) 23 | 24 | 25 | def generate_effective_query(chat_history): 26 | 27 | chain = _build_custom_chain(gpt_4o, template_path=EFFECTIVE_QUERY_PATH) 28 | response = chain.invoke({"chat_history": chat_history}) 29 | return response 30 | -------------------------------------------------------------------------------- /links/general_qa.py: -------------------------------------------------------------------------------- 1 | """ 2 | Computer vision query dispatcher. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | from langchain_core.runnables import RunnableLambda 11 | 12 | # pylint: disable=relative-beyond-top-level 13 | from .utils import PROMPTS_DIR, _build_chat_chain, gpt_4o, stream_runnable 14 | 15 | CV_QA_PATH = os.path.join(PROMPTS_DIR, "computer_vision_response.txt") 16 | cv_chain = _build_chat_chain(gpt_4o, template_path=CV_QA_PATH) 17 | 18 | 19 | def cv_func(info): 20 | query = info["query"] 21 | response = cv_chain.invoke({"messages": [("user", query)]}).content 22 | return {"input": query, "output": response} 23 | 24 | 25 | def cv_func_streaming(info): 26 | query = info["query"] 27 | for chunk in cv_chain.stream({"messages": [("user", query)]}): 28 | yield chunk 29 | 30 | 31 | def stream_computer_vision_query(query): 32 | cv_runnable_streaming = RunnableLambda(cv_func_streaming) 33 | for content in stream_runnable(cv_runnable_streaming, {"query": query}): 34 | if isinstance(content, Exception): 35 | raise content 36 | yield content.content 37 | 38 | 39 | def run_computer_vision_query(query): 40 | cv_runnable = RunnableLambda(cv_func) 41 | return cv_runnable.invoke({"query": query})["output"] 42 | -------------------------------------------------------------------------------- /links/introspection.py: -------------------------------------------------------------------------------- 1 | """ 2 | Chain for introspection on VoxelGPT's capabilities. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | from langchain_core.runnables import RunnableLambda 11 | 12 | # pylint: disable=relative-beyond-top-level 13 | from .utils import ( 14 | PROMPTS_DIR, 15 | _build_chat_chain, 16 | gpt_4o, 17 | stream_runnable, 18 | get_prompt_from, 19 | ) 20 | 21 | VOXELGPT_INFO_PATH = os.path.join(PROMPTS_DIR, "help_dynamic.txt") 22 | 23 | 24 | def stream_introspection_query(query): 25 | prompt = get_prompt_from(VOXELGPT_INFO_PATH).format(question=query) 26 | chain = _build_chat_chain(gpt_4o, prompt=prompt) 27 | 28 | def func_streaming(info): 29 | query = info["query"] 30 | for chunk in chain.stream({"messages": [("user", query)]}): 31 | yield chunk 32 | 33 | runnable_streaming = RunnableLambda(func_streaming) 34 | 35 | for content in stream_runnable(runnable_streaming, {"query": query}): 36 | if isinstance(content, Exception): 37 | raise content 38 | yield content.content 39 | 40 | 41 | def run_introspection_query(query): 42 | prompt = get_prompt_from(VOXELGPT_INFO_PATH).format(question=query) 43 | chain = _build_chat_chain(gpt_4o, prompt=prompt) 44 | 45 | def func(info): 46 | query = info["query"] 47 | response = chain.invoke({"messages": [("user", query)]}).content 48 | return {"input": query, "output": response} 49 | 50 | runnable = RunnableLambda(func) 51 | return runnable.invoke({"query": query})["output"] 52 | -------------------------------------------------------------------------------- /links/query_intent_classifier.py: -------------------------------------------------------------------------------- 1 | """ 2 | Query intent classifier. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | # pylint: disable=relative-beyond-top-level 11 | from .utils import PROMPTS_DIR, _build_custom_chain, gpt_3_5 12 | 13 | INTENT_CLASSIFICATION_PATH = os.path.join( 14 | PROMPTS_DIR, "intent_classification.txt" 15 | ) 16 | 17 | intent_chain = _build_custom_chain( 18 | gpt_3_5, template_path=INTENT_CLASSIFICATION_PATH 19 | ) 20 | 21 | allowed_topics = [ 22 | "documentation", 23 | "dataset", 24 | "general", 25 | "workspace", 26 | "introspection", 27 | "other", 28 | ] 29 | 30 | bad_topic_text = "I'm sorry, I'm not sure what you're asking. Could you please provide more context?" 31 | 32 | 33 | def classify_query_intent(query): 34 | topic = intent_chain.invoke({"query": query}).lower() 35 | 36 | for allowed_topic in allowed_topics: 37 | if allowed_topic in topic: 38 | return allowed_topic 39 | 40 | return "other" 41 | -------------------------------------------------------------------------------- /links/view_creation_classifier.py: -------------------------------------------------------------------------------- 1 | """ 2 | View creation classifier. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | 9 | import os 10 | 11 | # pylint: disable=relative-beyond-top-level 12 | from .utils import ( 13 | PROMPTS_DIR, 14 | _build_custom_chain, 15 | gpt_3_5, 16 | gpt_4o, 17 | protect_text, 18 | ) 19 | 20 | CREATE_VIEW_CLASSIFICATION_PATH = os.path.join( 21 | PROMPTS_DIR, "should_create_view_classification.txt" 22 | ) 23 | 24 | 25 | def should_create_view(query): 26 | chain = _build_custom_chain( 27 | gpt_3_5, template_path=CREATE_VIEW_CLASSIFICATION_PATH 28 | ) 29 | response = chain.invoke({"query": query}) 30 | return "view" in response.lower() 31 | 32 | 33 | ADD_TO_VIEW_CLASSIFICATION_PATH = os.path.join( 34 | PROMPTS_DIR, "add_to_existing_view_classification.txt" 35 | ) 36 | 37 | 38 | def _format(view): 39 | stages = view.view()._stages 40 | if len(stages) == 0: 41 | return "dataset" 42 | view_str = "" 43 | for stage in stages: 44 | view_str += f" - {protect_text(str(stage))}\n" 45 | return view_str 46 | 47 | 48 | _view_words = ("view", "add", "now") 49 | 50 | 51 | def should_add_to_view(query, view, view_kw_flag=None, dataset_kw_flag=None): 52 | if view_kw_flag or any(word in query.lower() for word in _view_words): 53 | return True 54 | if dataset_kw_flag or "dataset" in query.lower(): 55 | return False 56 | 57 | chain = _build_custom_chain( 58 | gpt_4o, template_path=ADD_TO_VIEW_CLASSIFICATION_PATH 59 | ) 60 | response = chain.invoke({"query": query, "current_view": _format(view)}) 61 | return "add" in response.lower() 62 | -------------------------------------------------------------------------------- /links/view_creation_planner.py: -------------------------------------------------------------------------------- 1 | """ 2 | View creation classifier. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | from langchain_core.pydantic_v1 import BaseModel, Field 10 | from typing import List 11 | 12 | # pylint: disable=relative-beyond-top-level 13 | from .utils import PROMPTS_DIR, _build_chat_chain, gpt_4o, get_prompt_from 14 | 15 | CREATE_VIEW_PLANNING_PATH = os.path.join( 16 | PROMPTS_DIR, "create_view_planning.txt" 17 | ) 18 | 19 | REVISE_VIEW_PLANNING_PATH = os.path.join( 20 | PROMPTS_DIR, "revise_view_creation_plan.txt" 21 | ) 22 | 23 | 24 | class ViewCreationPlan(BaseModel): 25 | """Plan to follow in future""" 26 | 27 | steps: List[str] = Field( 28 | description="different steps to follow, should be in sorted order" 29 | ) 30 | 31 | 32 | def create_view_creation_plan(query): 33 | planner = _build_chat_chain( 34 | gpt_4o, 35 | template_path=CREATE_VIEW_PLANNING_PATH, 36 | output_type=ViewCreationPlan, 37 | ) 38 | 39 | response = planner.invoke({"messages": [("user", query)]}) 40 | return response 41 | 42 | 43 | def revise_view_creation_plan(query, inspection_results, view_creation_plan): 44 | prompt = get_prompt_from(REVISE_VIEW_PLANNING_PATH).format( 45 | query=query, 46 | dataset_info=inspection_results, 47 | initial_plan=view_creation_plan, 48 | ) 49 | planner = _build_chat_chain( 50 | gpt_4o, 51 | prompt=prompt, 52 | output_type=ViewCreationPlan, 53 | ) 54 | response = planner.invoke({"messages": [("user", query)]}) 55 | if response is None or response.steps is None: 56 | return view_creation_plan 57 | return response 58 | -------------------------------------------------------------------------------- /links/view_creator.py: -------------------------------------------------------------------------------- 1 | """ 2 | View creator. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | 9 | import fiftyone as fo 10 | 11 | # pylint: disable=relative-beyond-top-level 12 | from .view_stage_delegator import delegate_view_stage_creation 13 | from .view_stage_constructor import construct_stage 14 | from .view_stage_validator import validate_view_stage 15 | from .utils import has_metadata 16 | 17 | 18 | def create_view_from_plan(sample_collection, view_creation_plan): 19 | impossible_stages = [] 20 | view_creation_actors = [] 21 | 22 | for step in view_creation_plan.steps: 23 | if step.lower().startswith("no"): 24 | impossible_stages.append(step) 25 | else: 26 | view_creation_actors.append(delegate_view_stage_creation(step)) 27 | 28 | view_stages = [] 29 | stage_reprs = [] 30 | built_stages = [] 31 | for assignee, step in zip(view_creation_actors, view_creation_plan.steps): 32 | stage = construct_stage(step, assignee, sample_collection) 33 | stage = validate_view_stage(stage, sample_collection) 34 | if stage is not None: 35 | if isinstance(stage, str): 36 | impossible_stages.append(step + " - " + stage) 37 | else: 38 | built_stages.append(stage.build()) 39 | stage_reprs.append(str(stage.__repr__())) 40 | 41 | _compute_metadata_if_needed(sample_collection, stage_reprs) 42 | _reorder_built_stages_if_needed(built_stages) 43 | for stage in built_stages: 44 | view_stages.append(stage) 45 | 46 | view = sample_collection 47 | try: 48 | for stage in view_stages: 49 | view = view.add_stage(stage) 50 | except Exception as e: 51 | return None, None 52 | 53 | return view, stage_reprs 54 | 55 | 56 | def _reorder_built_stages_if_needed(built_stages): 57 | ## Put all GeoNear and GeoWithin stages at the beginning 58 | for i, stage in enumerate(built_stages): 59 | if isinstance(stage, (fo.GeoNear, fo.GeoWithin)): 60 | built_stages.insert(0, built_stages.pop(i)) 61 | 62 | ## Put GeoNear at the very beginning 63 | for i, stage in enumerate(built_stages): 64 | if isinstance(stage, fo.GeoNear): 65 | built_stages.insert(0, built_stages.pop(i)) 66 | 67 | 68 | def _compute_metadata_if_needed(sample_collection, stage_reprs): 69 | if "metadata" in "".join(stage_reprs) and not has_metadata( 70 | sample_collection 71 | ): 72 | sample_collection.compute_metadata() 73 | -------------------------------------------------------------------------------- /links/view_setting_classifier.py: -------------------------------------------------------------------------------- 1 | """ 2 | View setting classifier. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | # pylint: disable=relative-beyond-top-level 11 | from .utils import PROMPTS_DIR, _build_custom_chain, gpt_3_5 12 | 13 | SET_VIEW_CLASSIFICATION_PATH = os.path.join( 14 | PROMPTS_DIR, "should_set_view_classification.txt" 15 | ) 16 | 17 | 18 | def should_set_view(query): 19 | chain = _build_custom_chain( 20 | gpt_3_5, template_path=SET_VIEW_CLASSIFICATION_PATH 21 | ) 22 | response = chain.invoke({"query": query}) 23 | return "set" in response.lower() 24 | -------------------------------------------------------------------------------- /links/view_stage_delegator.py: -------------------------------------------------------------------------------- 1 | """ 2 | View creation classifier. 3 | 4 | | Copyright 2017-2024, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | # pylint: disable=relative-beyond-top-level 11 | from .utils import PROMPTS_DIR, _build_custom_chain, gpt_4o 12 | 13 | 14 | VIEW_STAGE_DELEGATION_PATH = os.path.join( 15 | PROMPTS_DIR, "create_view_stage_delegation.txt" 16 | ) 17 | 18 | 19 | def delegate_view_stage_creation(step): 20 | chain = _build_custom_chain( 21 | gpt_4o, template_path=VIEW_STAGE_DELEGATION_PATH 22 | ) 23 | return chain.invoke({"question": step}) 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@voxel51/voxelgpt", 3 | "version": "1.1.1", 4 | "main": "src/VoxelGPT.tsx", 5 | "license": " Apache 2.0", 6 | "fiftyone": { 7 | "script": "dist/index.umd.js" 8 | }, 9 | "scripts": { 10 | "dev": "IS_DEV=true && nodemon --watch ./src --ext js,jsx,ts,tsx --exec 'yarn build'", 11 | "build": "vite build", 12 | "archive": "./scripts/archive.sh", 13 | "bump": "python ./scripts/update_version.py bump", 14 | "release": "./scripts/release.sh" 15 | }, 16 | "dependencies": { 17 | "@emotion/react": "^11.11.0", 18 | "@emotion/styled": "^11.11.0", 19 | "@mui/icons-material": "^5.11.16", 20 | "@mui/material": "^5.13.0", 21 | "@mui/styled-engine": "^5.12.3", 22 | "@rollup/plugin-node-resolve": "^15.0.2", 23 | "@vitejs/plugin-react": "^4.0.0", 24 | "lodash": "^4.17.21", 25 | "nodemon": "^2.0.19", 26 | "react": "^18.2.0", 27 | "react-is": "^18.2.0", 28 | "react-markdown": "^8.0.7", 29 | "styled-components": "^5.3.10", 30 | "vite-plugin-externals": "^0.6.2" 31 | }, 32 | "devDependencies": { 33 | "vite": "^3.2.4" 34 | }, 35 | "packageManager": "yarn@3.5.1" 36 | } 37 | -------------------------------------------------------------------------------- /prompts/add_to_existing_view_classification.txt: -------------------------------------------------------------------------------- 1 | You are a helpful computer vision research assistant for users of the 2 | open-source computer vision library FiftyOne. You have access to the user's 3 | dataset, and can use tools to help them analyze, visualize, and manipulate 4 | their data. A user wants you to perform an analysis or visualization on a view 5 | of their dataset, which is a filtered subset of their data. Your task is to 6 | determine whether the user's question requires you to create a new `DatasetView` 7 | from scratch, overwriting any existing view, or add view stages to the existing 8 | view. 9 | 10 | Given the user query and current view below, classify it as either `create` ( 11 | requiring creation of a new DatasetView from scratch) or `add` (requiring 12 | addition of view stages to the existing view). If the existing stages would 13 | require modification, classify the query as `create`. 14 | 15 | Do not respond with more than one word. 16 | 17 | Examples:: 18 | 19 | # Query: Show me the first 10 samples in my dataset. 20 | # Current view: dataset 21 | # Classification: create 22 | 23 | # Query: Show me the first 10 samples in my dataset. 24 | # Current view: 25 | - Take(size=5, seed=None) 26 | - Limit(limit=3) 27 | # Classification: create 28 | 29 | # Query: Limit my current view to 5 samples. 30 | # Current view: 31 | - Take(size=10, seed=None) 32 | # Classification: add 33 | 34 | # Query: Sort this view by number of detections in descending order. 35 | # Current view: 36 | - FilterLabels(field='ground_truth', filter=LEFT_BRACE'$eq': ['$$this.label', 'dog']RIGHT_BRACE, only_matches=True, trajectories=False) 37 | # Classification: add 38 | 39 | # Query: How many samples do I have with a car or a bicycle? 40 | # Current view: 41 | - FilterField(field='uniqueness', filter=LEFT_BRACE'$gt': ['$uniqueness', 0.5]RIGHT_BRACE, only_matches=True)\n" 42 | # Classification: create 43 | 44 | # Query: Show me all of the samples in the dataset with a dog 45 | # Current view: 46 | - FilterLabels(field='ground_truth', filter=LEFT_BRACE'$eq': ['$$this.label', 'cat']RIGHT_BRACE, only_matches=True, trajectories=False) 47 | # Classification: create 48 | 49 | If the user asks you to perform further actions on *this* view, you should 50 | classify the query as `add`. If the user asks you to create a new view from 51 | scratch, or asks about the dataset itself, you should classify the query as 52 | `create`. 53 | 54 | Given the following user query and current view, classify the query as either 55 | `create` or `add`. If the existing stages would 56 | require modification, classify the query as `create`. 57 | 58 | Do not respond with more than one word. 59 | 60 | Query: {query} 61 | Current view: {current_view} 62 | Classification: -------------------------------------------------------------------------------- /prompts/aggregation_analysis.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. You are embedded in the FiftyOne app and can answer 3 | questions about the data that users are working with. 4 | 5 | In response to the user's query, you have already taken the following steps: 6 | 7 | 1. Interpreted the user's query and identified the relevant information 8 | 2. Constructed a filtered view of the dataset that contains the relevant samples 9 | 3. Performed an aggregation operation on the filtered view to compute the answer 10 | 11 | Here is the relevant information: 12 | 13 | 14 | {query} 15 | 16 | 17 | 18 | {view_stages} 19 | 20 | 21 | 22 | {aggregation} 23 | 24 | 25 | Which resulted in the following: 26 | 27 | 28 | {result} 29 | 30 | 31 | Given this information, provide a human-readable and helpful response to the 32 | user's query. Do not end your response with anything like "If you have any other 33 | questions or need further assistance, feel free to ask!" since this is already 34 | implicitly understood by the user. Avoid redundancy. If you use the `values()` 35 | aggregation and the resulting list has more than 50 entries, do not return all 36 | of these raw values to the user. -------------------------------------------------------------------------------- /prompts/aggregation_delegation.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your goal is to help users analyze their datasets. 3 | 4 | In particular, you can apply the following aggregation methods of the FiftyOne 5 | library, on any field in the dataset, or any expression on the fields in the dataset: 6 | 7 | - `count` to count the number of samples in a view 8 | - `distinct` to count the number of distinct values in a field or expression 9 | - `mean` to compute the mean of a field or expression 10 | - `sum` to compute the sum of a field or expression 11 | - `min` to compute the minimum value of a field or expression 12 | - `max` to compute the maximum value of a field or expression 13 | - `std` to compute the standard deviation of a field or expression 14 | - `count_values` to count the occurrences of each value in a field or expression 15 | - `values` to return all values of a field or expression 16 | 17 | Given the user query, assign the appropriate aggregation name. In particular, 18 | classify the query as one of the following: `count`, `distinct`, `mean`, `sum`, 19 | `min`, `max`, `std`, `count_values`, `quantiles`, `values`. 20 | 21 | Examples:: 22 | 23 | # User: How many samples are in the dataset? 24 | # Classification: count 25 | 26 | # User: How many distinct values are in the field 'age'? 27 | # Classification: distinct 28 | 29 | # User: What is the mean value of the field 'age'? 30 | # Classification: mean 31 | 32 | # User: What is the average number of objects in the predictions field? 33 | # Classification: mean 34 | 35 | # User: Do I have any samples with a 'car' label? 36 | # Classification: distinct 37 | 38 | # User: What is the max brightness for samples with a person in them? 39 | # Classification: max 40 | 41 | Do not respond with more than one word. 42 | 43 | 44 | {question} 45 | 46 | 47 | Classification: -------------------------------------------------------------------------------- /prompts/aggregation_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to create a symbolic expression to be used in 3 | an aggregation stage in order to extract insights from the dataset. 4 | 5 | Given the user query below, the type of aggregation that will be performed, and 6 | the view on which it will be performed, write a symbolic expression that will be 7 | passed into the aggregation stage to generate the desired output. Do not include any 8 | explanations in the final answer or additional information. Do not include any 9 | operations like `mean`, `sum`, etc. in the final answer — these will be added 10 | to the expression by the user. 11 | 12 | Examples:: 13 | 14 | # Query: What is the distribution of labels in my dataset? 15 | # Expression: 'F("ground_truth.label") 16 | 17 | # Query: What is the mean confidence of the predictions in the first 20 samples? 18 | # Expression: 'F("predictions.confidence")' 19 | 20 | # Query: What is the max uniqueness of the first 100 samples? 21 | # Expression: 'F("uniqueness")' 22 | 23 | # Query: How many detections do I have, on average, per image? 24 | # Expression: 'F("ground_truth.detections").length()' 25 | 26 | 27 | Given the following query, aggregation type, view, and fields (and their types), 28 | write the symbolic expression. 29 | 30 | 31 | {query} 32 | 33 | 34 | 35 | {aggregation_type} 36 | 37 | 38 | 39 | {view} 40 | 41 | 42 | Fields in the view: 43 | {fields} 44 | 45 | 46 | Expression: -------------------------------------------------------------------------------- /prompts/compute_clustering.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users perform clustering on their datasets. 3 | You can use any of the following techniques: 4 | 5 | - K-means 6 | - Agglomerative clustering 7 | - Birch 8 | 9 | You can specify the number of clusters to use, or you can use a default value. 10 | 11 | Examples:: 12 | 13 | # Query: Perform K-means clustering with 5 clusters 14 | # Response: Clustering("kmeans", n_clusters=5) 15 | 16 | # Query: Perform Agglomerative clustering with default number of clusters 17 | # Response: Clustering("agglomerative") 18 | 19 | # Query: Perform Birch clustering with default number of clusters 20 | # Response: Clustering("birch") 21 | 22 | 23 | Given the following user query, create the clustering class that 24 | will help the user perform the task: 25 | 26 | # Query: {query} 27 | # Response: 28 | """ 29 | -------------------------------------------------------------------------------- /prompts/compute_visualization.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users perform dimensionality 3 | reduction on their datasets. You can use any of the following techniques: 4 | 5 | - Principal Component Analysis (PCA) 6 | - t-distributed Stochastic Neighbor Embedding (t-SNE) 7 | - Uniform Manifold Approximation and Projection (UMAP) 8 | 9 | Given the following user query, create the dimensionality reduction class that 10 | will help the user perform the task: 11 | 12 | Query: {query} 13 | -------------------------------------------------------------------------------- /prompts/computer_vision_response.txt: -------------------------------------------------------------------------------- 1 | You are ComputerVisionExpertGPT. You are an expert in computer vision, machine learning, and data science. You will be given a question from a student, and your task is to respond as helpfully as possible. 2 | 3 | Here are some guidelines: 4 | - The student may be asking a question about the computer vision library FiftyOne, or about computer vision in general. You must infer which one they are asking about. 5 | - You can answer the question however you like, but your answer should be helpful to the student. 6 | - You are allowed to use code snippets, equation, sentences, tables, or any other valid Markdown contents. 7 | - You must respond with factual information. Do not make up any information or statistics. 8 | - You can use any resources you like, but you must cite them in your answer. 9 | - Your answer can be at most 200 words long. 10 | 11 | Answer the following question: -------------------------------------------------------------------------------- /prompts/data_inspection_for_view_creation.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create views in the FiftyOne App 3 | by providing them with the appropriate `ViewStages` that can be used to filter, 4 | sort, slice, match, and transform their datasets. 5 | 6 | You have already created a first draft of the plan, and have performed an initial 7 | inspection of the data to understand the structure of the dataset. You also have 8 | access to tools that can help you analyze the data further, including the values 9 | taken by certain fields across the dataset, and the names of classes for classification 10 | or detection tasks. 11 | 12 | 13 | 14 | 15 | - classes: the classes for classification or detection tasks 16 | - media type: the type of media in the dataset (e.g., images, videos) 17 | - dataset name: the name of the dataset 18 | - dataset info: a user-provided dictionary of metadata about the dataset 19 | - dataset description: a user-provided description of the dataset 20 | - saved views: the names of the saved views in the dataset 21 | - tags: the tags in the dataset 22 | - runs: the names (and info about) brain runs (embeddings workflows), annotation runs, evaluation runs, and custom runs 23 | 24 | Use the tools at your disposal to help users better understand their data. You are 25 | allowed to apply multiple tools in sequence to provide a more detailed analysis. 26 | -------------------------------------------------------------------------------- /prompts/data_inspection_no_view_creation.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users better understand their data. 3 | You can do so by inspecting various properties of the data, including its 4 | 5 | - schema: the types of fields in the dataset 6 | - classes: the classes for classification or detection tasks 7 | - media type: the type of media in the dataset (e.g., images, videos) 8 | - dataset name: the name of the dataset 9 | - dataset info: a user-provided dictionary of metadata about the dataset 10 | - dataset description: a user-provided description of the dataset 11 | - saved views: the names of the saved views in the dataset 12 | - tags: the tags in the dataset 13 | - runs: the names (and info about) brain runs (embeddings workflows), annotation runs, evaluation runs, and custom runs 14 | 15 | Use the tools at your disposal to help users better understand their data. You are 16 | allowed to apply multiple tools in sequence to provide a more detailed analysis. 17 | 18 | Here are some example queries, and tools you might use to answer them: 19 | 20 | Query: What are the classes in this dataset? 21 | Tools: `list_detection_fields` + `list_detection_classes`, `list_classification_fields` + `list_classification_classes` 22 | 23 | Query: What is the schema of this dataset? 24 | Tools: `list_fields` 25 | 26 | Query: What is the media type of this dataset? 27 | Tools: `get_dataset_media_type` 28 | 29 | Query: Do I have any similarity runs in this dataset? 30 | Tools: `list_brain_runs`, `get_brain_run_info` looking for runs of type "similarity" 31 | 32 | Query: Does the dataset have a description? 33 | Tools: `get_dataset_description` 34 | 35 | Query: Have I computed any embeddings for this dataset? 36 | Tools: `list_fields` looking for vector fields with "embedding" in the name 37 | 38 | Query: Have I run dimensionality reduction on my data using UMAP? 39 | Tools: `list_brain_runs`, `get_brain_run_info` looking for runs of type "visualization" with the method "umap" 40 | 41 | Query: What saved views are available in this dataset? 42 | Tools: `list_saved_views` 43 | 44 | Query: What tags are in this dataset? 45 | Tools: `list_tags` 46 | 47 | Query: Have I run any evaluation workflows on this dataset? 48 | Tools: `list_evaluation_runs` + `get_evaluation_run_info` 49 | 50 | Query: Tell me about my dataset. 51 | Tools: `get_dataset_info` + `get_dataset_description` + `list_tags` + `list_saved_views` + `list_brain_runs` + `list_evaluation_runs` 52 | 53 | Query: Have I run any clustering computations on my data? 54 | Tools: `list_custom_runs` + `get_custom_run_info` looking for runs with attributes like "kmeans", "agglomerative", or "birch" 55 | 56 | 57 | Given the following user query, use your tools to provide a helpful response: 58 | 59 | -------------------------------------------------------------------------------- /prompts/docs_computation_qa_retrieval.txt: -------------------------------------------------------------------------------- 1 | You are an educator and developer advocate, and your goal is to help users of the open source computer vision library FiftyOne to understand the FiftyOne library, its query language, and its functionality. 2 | 3 | A user is interested in performing a computation on their dataset. While you can run certain computations, you are not able to perform a computation to answer their question. You can, however, provide them with the information they need to perform the computation themselves. 4 | 5 | Given extracted segments from the FiftyOne library's documentation and a question, your task is to write a helpful answer to the user's question, giving them suggestions and the information they need to perform the computation themselves. 6 | 7 | Do not include the user's question in your answer. ALWAYS include references at the end of your answer formatted as a list similar to this: 8 | 9 | Sources: 10 | - source 1 11 | - source 2 12 | - ... 13 | 14 | Here are some more rules: 15 | - If you don't know the answer, just say that you don't know. Don't try to make up an answer. 16 | - You will be rewarded for including examples, code snippets, and being as helpful as possible. 17 | - When you use inline code, surround it with backticks like this: `code`. This should be used for function names, method names, and variable names. 18 | - When you use a code snippet, code block, or any other code, you MUST start the code block with ```py so that it is syntax highlighted, instead of just ```. 19 | - Do NOT include links in the body of your answer. Only include links in the sources section. 20 | - In the sources section, you can ONLY include links that start with https://docs.voxel51.com/, https://medium.com, or https://youtube.com. 21 | - All parts of your response must be relevant to the question, and must be factually correct. You will be penalized if you mention somethine in your response that is not relevant to the question. 22 | 23 | 24 | Given the following question and segments from the FiftyOne library's documentation, write a helpful answer: 25 | 26 | QUESTION: {question} 27 | ========= 28 | {summaries} 29 | ========= 30 | FINAL_ANSWER: -------------------------------------------------------------------------------- /prompts/docs_qa_retrieval.txt: -------------------------------------------------------------------------------- 1 | You are an educator and developer advocate, and your goal is to help users of the open source computer vision library FiftyOne to understand the FiftyOne library, its query language, and its functionality. 2 | 3 | Given extracted segments from the FiftyOne library's documentation and a question, your task is to create a final answer to the user's question. Do not include the user's question in your answer. ALWAYS include references at the end of your answer formatted as a list similar to this: 4 | 5 | Sources: 6 | - source 1 7 | - source 2 8 | - ... 9 | 10 | Here are some more rules: 11 | - If you don't know the answer, just say that you don't know. Don't try to make up an answer. 12 | - You will be rewarded for including examples, code snippets, and being as helpful as possible. 13 | - When you use inline code, surround it with backticks like this: `code`. This should be used for function names, method names, and variable names. 14 | - When you use a code snippet, code block, or any other code, you MUST start the code block with ```py so that it is syntax highlighted, instead of just ```. 15 | - Do NOT include links in the body of your answer. Only include links in the sources section. 16 | - In the sources section, you can ONLY include links that start with https://docs.voxel51.com/, https://medium.com, or https://youtube.com. 17 | - All parts of your response must be relevant to the question, and must be factually correct. You will be penalized if you mention somethine in your response that is not relevant to the question. 18 | 19 | 20 | Given the following question and segments from the FiftyOne library's documentation, write a helpful answer: 21 | 22 | QUESTION: {question} 23 | ========= 24 | {summaries} 25 | ========= 26 | FINAL_ANSWER: -------------------------------------------------------------------------------- /prompts/effective_query_generation.txt: -------------------------------------------------------------------------------- 1 | You are VoxelGPT, a helpful assistant for computer vision researchers and 2 | engineers using the FiftyOne library. You are embedded in the FiftyOne App, and 3 | can answer questions about the FiftyOne library, help users create views of their 4 | data, run analyses on their datasets, and answer general computer vision and 5 | machine learning questions. 6 | 7 | Given the following conversation log between you and the user, your task is to 8 | generate the effective query intended by the user. If you do not think the 9 | history is relevant or useful, you can just return the input query. You can 10 | assume that the user is only asking one question at a time. 11 | 12 | Here are the rules: 13 | - You must respond with either the original query or a new query that you think the user intended to ask. 14 | - You will be penalized if you return anything that is not a valid query or that is not what the user intended to ask. 15 | - You must not change the meaning or wording of the query. You will be penalized if you do. 16 | - You must not restate previous queries in the log. You will be penalized if you do. 17 | - You must only return a single query. You will be penalized if you return multiple queries. 18 | - You must not respond with what you think the answer to the user's effective query is. You will be penalized if you do. 19 | - If "show" or "display" is in the user's query, your effective query must contain "show" or "display". You will be penalized if you do not. 20 | - If "fiftyone" or "docs" is in the user's query, your effective query must contain "fiftyone" or "docs". You will be penalized if you do not. 21 | - If specific numbers are mentioned in the user's query, you must include them in your effective query. You will be penalized if you do not. 22 | - Your effective query must be written in plain english, it should not be a code snippet or pseudocode. You will be penalized if you do. 23 | - If the user mentions 'dataset' in their query, you must include 'dataset' in your effective query. You will be penalized if you do not. 24 | - If the user mentions their current view in their query, you must include 'view' in your effective query. You will be penalized if you do not. 25 | 26 | Conversation log: 27 | 28 | 29 | 30 | {chat_history} 31 | 32 | -------------------------------------------------------------------------------- /prompts/filter_field_bool_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on boolean fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | Given the user query below, write a symbolic expression that filters the dataset 8 | on the given int field. Do not include any explanations in the final answer or 9 | additional information. 10 | 11 | Examples:: 12 | 13 | # Query: Samples with a dog detection 14 | # Expression: 'F()' 15 | 16 | # Query: Filter for my_bool False 17 | # Expression: '~F()' 18 | 19 | Given the user query below, write a symbolic expression that filters the dataset 20 | on the given boolean field. 21 | 22 | # Query: {query} 23 | # Expression: 24 | -------------------------------------------------------------------------------- /prompts/filter_field_date_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on `datetime.date` fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | You have access to the following temporal methods: 8 | - `day_of_week()` - Returns the day of the week as an integer (1-7) 9 | - `day_of_month()` - Returns the day of the month as an integer (1-31) 10 | - `day_of_year()` - Returns the day of the year as an integer (1-366) 11 | - `week()` - Returns the week of the year as an integer (1-53) 12 | - `month()` - Returns the month of the year as an integer (1-12) 13 | - `year()` - Returns the year as an integer 14 | 15 | You have access to the following additional methods: 16 | - `is_in(values)` - Returns whether the integer is in the given list of values 17 | - `<`, `<=`, `==`, `!=`, `>`, `>=` - Standard comparison operators 18 | 19 | You can also construct `datetime.date` objects using the `datetime` module, and 20 | compare them using the standard comparison operators. 21 | 22 | Given the user query below, write a symbolic expression that filters the dataset 23 | on the given date field. Do not include any explanations in the final answer or 24 | additional information. 25 | 26 | Examples:: 27 | 28 | # Query: Filter for dates that fall on a Monday 29 | # Expression: 'F().day_of_week() == 1' 30 | 31 | # Query: Filter for dates that fall on the 15th of the month 32 | # Expression: 'F().day_of_month() == 15' 33 | 34 | # Query: Filter for dates that fall on the 100th day of the year 35 | # Expression: 'F().day_of_year() == 100' 36 | 37 | # Query: Filter for dates that fall in the 32nd week of the year 38 | # Expression: 'F().week() == 32' 39 | 40 | # Query: Filter for dates that fall in an odd month 41 | # Expression: 'F().month() % 2 == 1' 42 | 43 | # Query: Filter for dates that fall in the month of May 44 | # Expression: 'F().month() == 5' 45 | 46 | # Query: Filter for dates in May or June on a Wednesday 47 | # Expression: '(F().month().is_in([5, 6])) & (F().day_of_week() == 3)' 48 | 49 | # Query: Filter for dates on the 15th of the month but not in April or May 50 | # Expression: '(F().day_of_month() == 15) & (~F().month().is_in([4, 5]))' 51 | 52 | # Query: Filter for dates before the year 2000 53 | # Expression: 'F().year() < 2000' 54 | 55 | # Query: Filter for images taken on a Monday, Thursday, or Saturday 56 | # Expression: 'F().day_of_week().is_in([1, 4, 6])' 57 | 58 | # Query: Filter for dates after January 1, 2020 59 | # Expression: 'F() > datetime.date(2020, 1, 1)' 60 | 61 | # Query: Filter for dates between January 1, 2020 and December 31, 2020 62 | # Expression: '(F() >= datetime.date(2020, 1, 1)) and (F() <= datetime.date(2020, 12, 31))' 63 | 64 | Given the user query below, write a symbolic expression that filters the dataset 65 | on the given date field. 66 | 67 | # Query: {query} 68 | # Expression: -------------------------------------------------------------------------------- /prompts/filter_field_float_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on float fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | You have access to the following standard comparison operators: 8 | - `<`, `<=`, `==`, `!=`, `>`, `>=` 9 | 10 | Additionally, you can use the following math methods: 11 | - Basic Math: `abs()`, `ceil()`, `floor()`, `round()`, `trunc()`, `exp()`, `log()`, `log10()`, `sqrt()`, 12 | - Trigonometric: `cos()`, `sin()`, `tan()`, `acos()`, `asin()`, `atan()`, 13 | - Hyperbolic: `cosh()`, `sinh()`, `tanh()`, `acosh()`, `asinh()`, `atanh()` 14 | 15 | Given the user query below, write a symbolic expression that filters the dataset 16 | on the given float field. Do not include any explanations in the final answer or 17 | additional information. Make sure you have the right number of parentheses on 18 | each side of the expression. 19 | 20 | Examples:: 21 | 22 | # Query: Filter for values that are less than 1.3 23 | # Expression: 'F() < 1.3' 24 | 25 | # Query: Filter for values that are greater than or equal to 0.3 and less than 0.7 26 | # Expression: '(F() >= 0.3) & (F() < 0.7)' 27 | 28 | # Query: Filter for values that round to a multiple of 5 29 | # Expression: '(F().round() % 5) == 0' 30 | 31 | # Query: Filter for values that are within 0.1 of Pi 32 | # Expression: '(F() - 3.1415).abs() < 0.1' 33 | 34 | Given the user query below, write a symbolic expression that filters the dataset 35 | on the given float field. 36 | 37 | # Query: {query} 38 | # Expression: -------------------------------------------------------------------------------- /prompts/filter_field_int_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on integer fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | You have access to the following methods: 8 | - `is_in(values)` - Returns whether the integer is in the given list of values 9 | - `<`, `<=`, `==`, `!=`, `>`, `>=` - Standard comparison operators 10 | 11 | Given the user query below, write a symbolic expression that filters the dataset 12 | on the given int field. Do not include any explanations in the final answer or 13 | additional information. 14 | 15 | Examples:: 16 | 17 | # Query: Filter for integers that are in the list [1, 2, 3] 18 | # Expression: 'F().is_in([1, 2, 3])' 19 | 20 | # Query: Filter for values that are less than 5 21 | # Expression: 'F() < 5' 22 | 23 | # Query: Filter for values that are greater than or equal to 10 and less than 20 24 | # Expression: '(F() >= 10) & (F() < 20)' 25 | 26 | # Query: Filter for values that are not equal to 0 27 | # Expression: 'F() != 0' 28 | 29 | # Query: Filter for values that are less than or equal to -5 or greater than or equal to 5 30 | # Expression: '(F() <= -5) | (F() >= 5)' 31 | 32 | # Query: Filter for powers of 2 33 | # Expression: '((F().log(2)) % 1).abs() == 0' 34 | 35 | # Query: Filter for multiples of 3 36 | # Expression: '(F() % 3) == 0' 37 | 38 | Given the user query below, write a symbolic expression that filters the dataset 39 | on the given integer field. 40 | 41 | # Query: {query} 42 | # Expression: -------------------------------------------------------------------------------- /prompts/filter_field_list_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on list fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | You have access to the following methods: 8 | - `min()` - Returns the minimum value in the list 9 | - `max()` - Returns the maximum value in the list 10 | - `mean()` - Returns the mean of the values in the list 11 | - `std()` - Returns the standard deviation of the values in the list 12 | - `length()` - Returns the length of the list 13 | - `sum()` - Returns the sum of the values in the list 14 | - `contains(value)` - Returns whether the list contains the given value 15 | - `set_equals(set)` - Returns whether the list is equal to the given set 16 | 17 | Given the user query below, write a symbolic expression that filters the dataset 18 | on the given list field. Do not include any explanations in the final answer or 19 | additional information. 20 | 21 | Examples:: 22 | 23 | # Query: Filter for lists that contain the value 5 24 | # Expression: 'F().contains(5)' 25 | 26 | # Query: Filter for lists that have a minimum value of 3.2 27 | # Expression: 'F().min() == 3.2' 28 | 29 | # Query: Filter for lists that have a maximum value of 10 30 | # Expression: 'F().max() == 10' 31 | 32 | # Query: Filter for lists that have exactly 5 elements 33 | # Expression: 'F().length() == 5' 34 | 35 | # Query: Filter for lists whose contents sum to 100 or more 36 | # Expression: 'F().sum() >= 100' 37 | 38 | # Query: Filter for lists that include all of the values in the set {1, 2, 3} 39 | # Expression: 'F().contains([1, 2, 3], all=True)' 40 | 41 | # Query: Filter for lists that include any of the values in the set {1, 2, 3} 42 | # Expression: 'F().contains([1, 2, 3], any=True)' 43 | 44 | # Query: Filter for lists that are equal to the set {1, 2, 3} 45 | # Expression: 'F().set_equals([1, 2, 3])' 46 | 47 | Given the user query below, write a symbolic expression that filters the dataset 48 | on the given list field. 49 | 50 | # Query: {query} 51 | # Expression: -------------------------------------------------------------------------------- /prompts/filter_field_other_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | Given the user query below, write a symbolic expression that filters the dataset 8 | on the given field. Do not include any explanations in the final answer or 9 | additional information. 10 | 11 | # Query: {query} 12 | # Expression: -------------------------------------------------------------------------------- /prompts/filter_field_string_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on string fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | You have access to the following methods: 8 | 9 | - `strlen()` - Returns the length of the string 10 | - `lower()` - Converts the string to lowercase 11 | - `upper()` - Converts the string to uppercase 12 | - `starts_with(prefix)` - Returns whether the string starts with the given prefix 13 | - `ends_with(suffix)` - Returns whether the string ends with the given suffix 14 | - `contains_str(substring)` - Returns whether the string contains the given substring 15 | - `matches_str(exact_match)` - Returns whether the string matches the given exact stringw 16 | - `is_in(list_of_strings)` - Returns whether the string is in the given list of strings 17 | - `re_match(regex)` - Returns whether the string matches the given regular expression 18 | 19 | Given the user query below, write a symbolic expression that filters the dataset 20 | on the given string field. Do not include any explanations in the final answer or 21 | additional information. 22 | 23 | Examples:: 24 | 25 | # Query: Filter for strings that start with "hello" 26 | # Expression: 'F().starts_with("hello")' 27 | 28 | # Query: Filter for strings that end with "world" 29 | # Expression: 'F().ends_with("world")' 30 | 31 | # Query: Filter for strings whose lowercase version contains "alpha" 32 | # Expression: 'F().lower().contains_str("alpha")' 33 | 34 | # Query: Filter for strings whose uppercase version exactly matches "BETA" 35 | # Expression: 'F().upper().matches_str("BETA")' 36 | 37 | # Query: Filter for strings whose length is 5 38 | # Expression: 'F().strlen() == 5' 39 | 40 | # Query: Filter for strings whose length is between 3 and 7 41 | # Expression: '(F().strlen() >= 3) and (F().strlen() <= 7)' 42 | 43 | # Query: Filter for strings in the list ["apple", "banana", "cherry"] 44 | # Expression: 'F().is_in(["apple", "banana", "cherry"])' 45 | 46 | # Query: Filter for strings not in the list ["apple", "banana", "cherry"] 47 | # Expression: '~F().is_in(["apple", "banana", "cherry"])' 48 | 49 | # Query: Filter for strings that contains “088” and are JPEG 50 | # Expression: 'F().re_match("088*.jpg")' 51 | 52 | Given the user query below, write a symbolic expression that filters the dataset 53 | on the given string field. 54 | 55 | # Query: {query} 56 | # Expression: -------------------------------------------------------------------------------- /prompts/help_message_markdown.txt: -------------------------------------------------------------------------------- 1 | Hi! I'm VoxelGPT, your AI assistant for computer vision. 2 | 3 | I can help you with the following tasks: 4 | - 🔎 **Querying your data:** I can help you filter, match, sort, and more - without writing a line of code. Tell me what you'd like to see and I'll load the corresponding view 5 | - 💪 **Becoming a FiftyOne pro:** I have access to the FiftyOne documentation, so I can help you learn how to use FiftyOne and find the information you're looking for 6 | - 📈 **Troubleshooting data quality:** I can help you build better datasets and higher quality models by answering general knowledge questions about computer vision and machine learning 7 | 8 | **Tips** 9 | - Be as specific as possible. The more specific you are, the better I can help you. I am still learning, so sometimes I need a little help understanding what you're asking 10 | - If you want to query your dataset, but your input is being interpreted as a documentation or general computer vision query, try using the `show` keyword. For example: *"show me all images with a label of dog"* 11 | - If you want to query the FiftyOne documentation, try using either `docs` or `fiftyone` in your query. For example: *"how do I load a dataset in FiftyOne?"* 12 | - If you want me to use our conversation history to infer what you're asking, try using the `now` keyword. For example: if you just asked *"show me high confidence predictions of cats, dogs, and rabbits"*, you can ask *"now the low confidence predictions"* 13 | 14 | **Learn more** 15 | - You can learn more about me on my [GitHub page](https://github.com/voxel51/voxelgpt). While you're at it, please give me a star ⭐! VoxelGPT is open source and it is constantly improving. Contributions are welcome! 16 | - Did you know that I'm a [FiftyOne Plugin](https://docs.voxel51.com/plugins/index.html)? Check out how FiftyOne can be extended to do all sorts of cool things! 17 | - Learn more about [FiftyOne](https://github.com/voxel51/fiftyone) and give the project a star ⭐! FiftyOne is open source too! 18 | - Join the [FiftyOne Slack community](https://slack.voxel51.com) where thousands of enthusiasts and professionals are discussing the latest in computer vision and machine learning 19 | 20 | I'm still learning, so I appreciate your patience 😊 -------------------------------------------------------------------------------- /prompts/help_message_string.txt: -------------------------------------------------------------------------------- 1 | Hi! I'm VoxelGPT, your AI assistant for computer vision. 2 | 3 | I can help you with the following tasks 4 | =============================================================================== 5 | 6 | 🔎 ~~Querying your data~~ 7 | I can help you filter, match, sort, and more - without writing a line of 8 | code. Tell me what you'd like to see and I'll load the corresponding view 9 | 10 | 💪 ~~Becoming a FiftyOne pro~~ 11 | I have access to the FiftyOne documentation, so I can help you learn how to 12 | use FiftyOne and find the information you're looking for 13 | 14 | 📈 ~~Troubleshooting data quality~~ 15 | I can help you build better datasets and higher quality models by answering 16 | general knowledge questions about computer vision and machine learning 17 | 18 | Tips 19 | =============================================================================== 20 | 21 | 1. ~~Be as specific as possible~~ 22 | The more specific you are, the better I can help you. I am still learning, 23 | so sometimes I need a little help understanding what you're asking 24 | 25 | 2. If you want to query your dataset, but your input is being interpreted as a 26 | documentation or general computer vision query, try using the 'show' 27 | keyword. For example: 28 | 29 | show me all images with a label of dog 30 | 31 | 3. If you want to query the FiftyOne documentation, try using either 'docs' or 32 | 'fiftyone' in your query. For example: 33 | 34 | how do I load a dataset in FiftyOne? 35 | 36 | 4. If you want me to use our conversation history to infer what you're asking, 37 | try using the 'now' keyword. For example: 38 | 39 | show me high confidence predictions of cats, dogs, and rabbits 40 | now the low confidence predictions 41 | 42 | 5. Type 'reset' to clear our chat history 43 | 44 | 6. Type 'exit' to exit our chat 45 | 46 | Learn more 47 | =============================================================================== 48 | 49 | - You can learn more about me on GitHub: https://github.com/voxel51/voxelgpt 50 | While you're at it, please give me a star ⭐! VoxelGPT is an open source 51 | project and it is constantly improving. Contributions are welcome! 52 | 53 | - Did you know that I'm a FiftyOne Plugin? Check out how FiftyOne can be 54 | extended to do all sorts of cool things at https://docs.voxel51.com/plugins/index.html 55 | 56 | - Learn more about FiftyOne at https://github.com/voxel51/fiftyone 57 | Please give the project a star ⭐! FiftyOne is open source too! 58 | 59 | - Join the FiftyOne Slack community at https://slack.voxel51.com 60 | Thousands of enthusiasts and professionals are discussing the latest in 61 | computer vision and machine learning 62 | 63 | I'm still learning, so I appreciate your patience 😊 -------------------------------------------------------------------------------- /prompts/match_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on their FiftyOne datasets using the `fo.Match()` view stage. 4 | 5 | Given the user query below, write a symbolic expression that filters the dataset 6 | for samples that match the specified expression. Do not include any explanations 7 | in the final answer or additional information. 8 | 9 | Examples:: 10 | 11 | # Query: Samples with at least 2 objects in their predictions field 12 | # Expression: 'F("predictions.detections").length() > 2' 13 | 14 | # Query: Samples that only contain dogs in their ground truth field 15 | # Expression: 'F("ground_truth.detections.label").set_equals(["dog"])' 16 | 17 | # Query: Samples that contain either a dog or a cat in their YOLOv8 predictions 18 | # Expression: 'F("yolov8.detections.label").contains(["cat", "dog"])' 19 | 20 | # Query: Samples that contain either a dog and a cat in their ResNet50 predictions 21 | # Expression: 'F("resnet50.detections.label").contains(["cat", "dog"], all=True)' 22 | 23 | # Query: Filter for samples with the class 'dog' in prediction or ground truth label fields 24 | # Expression: 'F("ground_truth.detections.label").contains("dog") | F("predictions.detections.label").contains("dog")' 25 | 26 | # Query: Images that do not contain a tree 27 | # Expression: '~F("ground_truth.detections.label").contains("tree")' 28 | 29 | # Query: Samples whose mean prediction confidence is greater than 0.5 30 | # Expression: 'F("predictions.detections.confidence").mean() > 0.5' 31 | 32 | # Query: {query} 33 | # Expression: -------------------------------------------------------------------------------- /prompts/match_labels_general_expression.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. Your task is to help users create symbolic expressions to 3 | filter on label fields in their FiftyOne datasets. 'F()' is a stand-in for the 4 | field to be filtered on. You do not need to include the name of the field in the 5 | expression. 6 | 7 | Given the user query below, write a symbolic expression that filters the dataset 8 | on the given label field. Do not include any explanations in the final answer or 9 | additional information. Do not include the name of the field ("ground_truth", 10 | "predictions", etc.) in the expression. Do not include "detections" in the 11 | expression. Do not use the `filter()` method in the expression. 12 | 13 | If you want to filter for a specific label, you can use the label name directly 14 | in the expression. For example, if you want to filter for the label "cat", you 15 | can use `F("label") == "cat"`. Do not construct an expression like `F("label") == None` 16 | 17 | Examples:: 18 | 19 | # Query: Samples that have a prediction with confidence greater than 0.5 20 | # Expression: 'F("confidence") > 0.5' 21 | 22 | # Query: Samples that have a label of "cat" 23 | # Expression: 'F("label") == "cat"' 24 | 25 | # Query: Samples that have a label of "cat" or "dog" 26 | # Expression: 'F("label").is_in(["cat", "dog"])' 27 | 28 | # Query: filter for images with a dog in them 29 | # Expression: 'F("label") == "dog"' 30 | 31 | # Query: I only want detection labels with confidence < 0.3 32 | # Expression: 'F("confidence") < 0.3' 33 | 34 | # Query: Samples that have a label of "chair" and a confidence greater than 0.5 35 | # Expression: '(F("label") == "chair") & (F("confidence") > 0.5)' 36 | 37 | # Query: Show me incorrect predictions 38 | # Expression: 'F("eval") == False' 39 | 40 | 41 | Given the query below, write the expression that filters the dataset on the given 42 | label field. Assume the name of the field is already accounted for. 43 | 44 | # Query: {query} 45 | # Expression: -------------------------------------------------------------------------------- /prompts/should_create_view_classification.txt: -------------------------------------------------------------------------------- 1 | You are a helpful computer vision research assistant for users of the 2 | open-source computer vision library FiftyOne. You have access to the user's 3 | dataset, and can use tools to help them analyze, visualize, and manipulate 4 | their data. A user may ask you questions which require you to create a 5 | `DatasetView` (a filtered view of the dataset), for the purposes of analysis 6 | or visualization, but they may also ask you general questions about their 7 | dataset, its contents, schema, or metadata. 8 | 9 | Given the user question below, classify it as either `view` (requiring creation of a 10 | DatasetView) or `dataset` (general question about the dataset). 11 | 12 | Do not respond with more than one word. 13 | 14 | Examples:: 15 | 16 | # User: Show me the first 10 samples in my dataset. 17 | Classification: view 18 | 19 | # User: How many samples do I have in my dataset? 20 | Classification: dataset 21 | 22 | # User: Select the brightness field 23 | Classification: view 24 | 25 | # User: What is the distribution of labels in my dataset? 26 | Classification: view 27 | 28 | # User: Do I have any detection fields on my dataset? 29 | Classification: dataset 30 | 31 | # User: Exclude the prediction fields 32 | Classification: view 33 | 34 | # User: Do I have any geolocation data? 35 | Classification: dataset 36 | 37 | # User: What is the average number of objects per sample? 38 | Classification: dataset 39 | 40 | # User: What is the max brightness of the first 100 samples? 41 | Classification: view 42 | 43 | # User: What are the values for my detections? 44 | Classification: dataset 45 | 46 | # User: Filter for samples with a label of "cat" 47 | Classification: view 48 | 49 | # User: What classification fields do I have? 50 | Classification: dataset 51 | 52 | # User: Which fields contain predictions? 53 | Classification: dataset 54 | 55 | # User: Do I have any saved views? 56 | Classification: dataset 57 | 58 | # User: Skip 40 samples, and shuffle the next 10 samples. 59 | Classification: view 60 | 61 | # User: Do I have any high confidence false positive predictions? 62 | Classification: view 63 | 64 | # User: What is the smallest image resolution in my dataset? 65 | Classification: dataset 66 | 67 | # User: What is the mean uniqueness of the first 100 samples? 68 | Classification: view 69 | 70 | 71 | 72 | {query} 73 | 74 | 75 | Classification: -------------------------------------------------------------------------------- /prompts/should_set_view_classification.txt: -------------------------------------------------------------------------------- 1 | You are a helpful computer vision research assistant for users of the 2 | open-source computer vision library FiftyOne. You are tasked with helping 3 | analyze, visualize, filter, and manipulate datasets using the FiftyOne library. 4 | You are embedded in the FiftyOne app and have access to the user's dataset, so 5 | you are able to set the view in the app to show the user the data they are 6 | interested in, if necessary. 7 | 8 | If the user explicitly asks you to set a view in the app, or instructs you to 9 | "show", "give", "display", or "visualize" the `DatasetView`, you should set the 10 | view in the app. If the query only includes instructions for creating a view, 11 | you should also set the view in the app. But if the query is only asking for 12 | information about the dataset, or for a calculation or analysis to be performed 13 | on the dataset, you should not set the view in the app. 14 | 15 | Given the user query below, classify it as either `Set` or `Keep`. 16 | 17 | Do not respond with more than one word. 18 | 19 | Examples:: 20 | 21 | # User: Show me the first 10 samples in my dataset. 22 | Classification: Set 23 | 24 | # User: What is the distribution of labels in my dataset? 25 | Classification: Keep 26 | 27 | # User: Filter for samples with a label of "cat" 28 | Classification: Set 29 | 30 | # User: Skip 40 samples, and shuffle the next 10 samples. 31 | Classification: Set 32 | 33 | # User: Sort by similarity to the text prompt "a dog in a park". 34 | Classification: Set 35 | 36 | # User: Do I have any high confidence false positive predictions? 37 | Classification: Keep 38 | 39 | # User: Show me the samples with the highest confidence predictions. 40 | Classification: Set 41 | 42 | # User: Convert to evaluation patches. 43 | Classification: Set 44 | 45 | # User: Group by the number of false positives. 46 | Classification: Set 47 | 48 | # User: What is the mean uniqueness of the first 100 samples? 49 | Classification: Keep 50 | 51 | # User: Show me images of a truck on a road. 52 | Classification: Set 53 | 54 | # User: Show me all the animals in my dataset. 55 | Classification: Set 56 | 57 | # User: Filter field X for powers of 2. 58 | Classification: Set 59 | 60 | 61 | 62 | {query} 63 | 64 | 65 | Classification: -------------------------------------------------------------------------------- /prompts/workspace_inspection.txt: -------------------------------------------------------------------------------- 1 | You are a helpful assistant for computer vision researchers and engineers using 2 | the FiftyOne library. You are embedded inside the FiftyOne App. Your task is to 3 | help answer questions about the user's workspace, including: 4 | 5 | - what datasets they have 6 | - what plugins they have installed, enabled, or disabled 7 | - what operators they have in a particular plugin 8 | - how FiftyOne is currently configured 9 | - how the FiftyOne App is currently configured 10 | 11 | Use the tools at your disposal to help users understand their workspace. You are 12 | allowed to apply multiple tools in sequence to provide a more detailed analysis. 13 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.black] 2 | line-length = 79 3 | include = '\.pyi?$' 4 | exclude = ''' 5 | /( 6 | | \.git 7 | )/ 8 | ''' -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | langchain>=0.2.0 2 | langchain-community>=0.2.0 3 | langchain-core>=0.2.0 4 | langchain-openai>=0.1.0 5 | openai>=1.0.0 6 | tiktoken>=0.7.0 7 | -------------------------------------------------------------------------------- /scripts/archive.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Path to your local Git repository 4 | REPO_PATH="$(pwd)" 5 | 6 | echo "Archiving plugin at: $REPO_PATH" 7 | 8 | # Path to store the zip file 9 | ARCHIVES_PATH="$REPO_PATH/archives" 10 | 11 | # Ensure the archives directory exists 12 | mkdir -p $ARCHIVES_PATH 13 | 14 | # Get the current version and commit hash 15 | VERSION=$(awk '/^version:/ && NF==2 {print $2; exit}' fiftyone.yml) 16 | 17 | echo "Version: $VERSION" 18 | 19 | COMMIT=$(git rev-parse HEAD) 20 | 21 | echo "Commit: $COMMIT" 22 | 23 | FILENAME="voxelgpt-$VERSION-$COMMIT.zip" 24 | OUTPUT="$ARCHIVES_PATH/$FILENAME" 25 | 26 | # Archive the repository using git archive command 27 | git archive --format=zip --output=$OUTPUT HEAD 28 | 29 | echo "Plugin successfully archived! Created file:" 30 | echo "$OUTPUT" -------------------------------------------------------------------------------- /scripts/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | print_help() { 4 | echo "Usage: $0 " 5 | echo 6 | echo "This script requires a version number as an argument." 7 | echo "Example:" 8 | echo "$0 1.0.0" 9 | } 10 | 11 | if [ $# -eq 0 ]; then 12 | print_help 13 | exit 1 14 | fi 15 | 16 | if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then 17 | print_help 18 | exit 0 19 | fi 20 | 21 | VERSION=$1 22 | 23 | # Strip off the leading "v" if it exists 24 | if [[ $VERSION == v* ]]; then 25 | VERSION=${VERSION#v} 26 | fi 27 | 28 | BRANCH="release/v$VERSION" 29 | 30 | git checkout -b $BRANCH \ 31 | && yarn build \ 32 | && yarn bump $VERSION \ 33 | && git add . \ 34 | && git commit -m "Release $VERSION" \ 35 | && git tag v$VERSION \ 36 | && git push origin $BRANCH -u \ 37 | 38 | yarn archive 39 | -------------------------------------------------------------------------------- /scripts/update_version.py: -------------------------------------------------------------------------------- 1 | import yaml 2 | import json 3 | import re 4 | import sys 5 | 6 | def update_version(fiftyone_yml_file, package_json_file, new_version): 7 | # Read fiftyone.yml file 8 | with open(fiftyone_yml_file, 'r') as f: 9 | fiftyone_yml_data = yaml.safe_load(f) 10 | 11 | # Read package.json file 12 | with open(package_json_file, 'r') as f: 13 | package_json_data = json.load(f) 14 | 15 | # Get current versions 16 | fiftyone_version = fiftyone_yml_data['version'] 17 | package_version = package_json_data['version'] 18 | 19 | # Update versions based on the input 20 | if new_version == "bump": 21 | # Bump the last digit in the semver version string 22 | fiftyone_version = bump_version(fiftyone_version) 23 | package_version = bump_version(package_version) 24 | else: 25 | # Update versions with the exact provided version 26 | fiftyone_version = new_version 27 | package_version = new_version 28 | 29 | # Update the version in fiftyone.yml file 30 | fiftyone_yml_data['version'] = fiftyone_version 31 | 32 | # Update the version in package.json file 33 | package_json_data['version'] = package_version 34 | 35 | # Write updated data back to the files 36 | with open(fiftyone_yml_file, 'w') as f: 37 | yaml.dump(fiftyone_yml_data, f, default_flow_style=False) 38 | 39 | with open(package_json_file, 'w') as f: 40 | json.dump(package_json_data, f, indent=4) 41 | 42 | print('Versions updated successfully.', fiftyone_version) 43 | 44 | 45 | def bump_version(version): 46 | # Regex pattern to match the last digit in the semver version string 47 | pattern = r'(\d+)(?!.*\d)' 48 | 49 | # Find the last digit and increment it by 1 50 | match = re.search(pattern, version) 51 | if match: 52 | last_digit = int(match.group(1)) 53 | new_last_digit = last_digit + 1 54 | version = re.sub(pattern, str(new_last_digit), version) 55 | 56 | return version 57 | 58 | 59 | # Example usage 60 | fiftyone_yml_file = 'fiftyone.yml' 61 | package_json_file = 'package.json' 62 | new_version = sys.argv[1] # Pass the new version as a command-line argument 63 | explicit_version = None 64 | try: 65 | explicit_version = sys.argv[2] 66 | except: 67 | pass 68 | update_version(fiftyone_yml_file, package_json_file, explicit_version or new_version) -------------------------------------------------------------------------------- /src/Actions.tsx: -------------------------------------------------------------------------------- 1 | import {Grid, Button} from '@mui/material' 2 | import * as state from "./state"; 3 | import {useRecoilValue, useResetRecoilState} from "recoil"; 4 | import Replay from '@mui/icons-material/Replay'; 5 | import StopCircle from '@mui/icons-material/StopCircle'; 6 | import {abortOperationsByURI} from "@fiftyone/operators" 7 | 8 | const ASK_VOXELGPT_URI = '@voxel51/voxelgpt/ask_voxelgpt_panel' 9 | 10 | export function Actions() { 11 | const receiving = useRecoilValue(state.atoms.receiving); 12 | const waiting = useRecoilValue(state.atoms.waiting); 13 | const resetReceiving = useResetRecoilState(state.atoms.receiving); 14 | const reset = useResetRecoilState(state.atoms.messages); 15 | const messages = useRecoilValue(state.atoms.messages); 16 | const handleStop = () => { 17 | resetReceiving(); 18 | abortOperationsByURI(ASK_VOXELGPT_URI); 19 | } 20 | 21 | return ( 22 | 23 | {messages.length > 0 && !receiving && !waiting && 24 | 25 | } 26 | 27 | {receiving && } 28 | 29 | 30 | ) 31 | } -------------------------------------------------------------------------------- /src/Chat.tsx: -------------------------------------------------------------------------------- 1 | import { Grid } from "@mui/material"; 2 | import { throttle } from "lodash"; 3 | import React, { useCallback, useEffect, useRef } from "react"; 4 | import { useRecoilValue } from "recoil"; 5 | import { MessageWrapper } from "./Message"; 6 | import { ChatGPTAvatar } from "./avatars"; 7 | import * as state from "./state"; 8 | import { SCROLL_TO_BOTTOM_THROTTLE } from "./constants"; 9 | import LoadingIndicator from "./LoadingIndicator"; 10 | 11 | const Chat = () => { 12 | const ref = useRef(null); 13 | const bottomRef = useRef(null); 14 | const messages = useRecoilValue(state.atoms.messages); 15 | const receiving = useRecoilValue(state.atoms.receiving); 16 | const waiting = useRecoilValue(state.atoms.waiting); 17 | 18 | const scrollToBottom = useCallback( 19 | throttle(() => { 20 | if (bottomRef.current && messages.length > 0) { 21 | bottomRef.current.scrollIntoView({ behavior: "smooth" }); 22 | } 23 | }, SCROLL_TO_BOTTOM_THROTTLE), 24 | [throttle] 25 | ); 26 | 27 | useEffect(() => { 28 | const refElem = ref.current; 29 | if (refElem) { 30 | const refResizeObserver = new ResizeObserver(scrollToBottom) 31 | refResizeObserver.observe( 32 | refElem 33 | ); 34 | 35 | return () => { 36 | refResizeObserver?.disconnect?.(); 37 | }; 38 | } 39 | }, []); 40 | 41 | const avatars = { 42 | incoming: , 43 | }; 44 | 45 | const groupedMessages = groupConsecutiveMessages(messages, receiving, waiting); 46 | 47 | return ( 48 |
49 | 50 | {groupedMessages.map((group) => ( 51 | 52 | ))} 53 | 54 |
55 |
56 | ); 57 | }; 58 | 59 | // a function that groups consecutive messages of the same type 60 | function groupConsecutiveMessages(messages, receiving, waiting) { 61 | const groups = []; 62 | let currentGroup = []; 63 | for (const message of messages) { 64 | // group messages by type 65 | if (currentGroup.length > 0 && currentGroup[0].type !== message.type) { 66 | groups.push({type: currentGroup[0].type, messages: currentGroup}); 67 | currentGroup = [message]; 68 | } else { 69 | currentGroup.push(message); 70 | } 71 | } 72 | if (currentGroup.length > 0) { 73 | groups.push({type: currentGroup[0].type, messages: currentGroup}); 74 | } 75 | if (groups.length > 0) { 76 | const lastGroup = groups[groups.length - 1]; 77 | lastGroup.last = true; 78 | if (lastGroup.type === "incoming") { 79 | lastGroup.receiving = receiving; 80 | lastGroup.waiting = waiting; 81 | } else { 82 | groups.push({type: "incoming", messages: [], receiving: true}); 83 | } 84 | } 85 | return groups; 86 | } 87 | 88 | export default Chat; 89 | -------------------------------------------------------------------------------- /src/InputBar.tsx: -------------------------------------------------------------------------------- 1 | import React, { useState, useRef, useEffect } from "react"; 2 | import { 3 | TextField, 4 | InputAdornment, 5 | OutlinedInput, 6 | IconButton, 7 | } from "@mui/material"; 8 | import SendIcon from "@mui/icons-material/Send"; 9 | import { useRecoilState } from "recoil"; 10 | import { atoms } from "./state"; 11 | 12 | const InputBar = ({ hasMessages, disabled, onMessageSend, bottomRef }) => { 13 | const [waiting, setWaiting] = useRecoilState(atoms.waiting) 14 | const [message, setMessage] = useRecoilState(atoms.input) 15 | const inputRef = useRef(null) 16 | 17 | function sendMessage() { 18 | if (message.trim()) { 19 | setWaiting(true) 20 | onMessageSend(message) 21 | setMessage('') 22 | } 23 | } 24 | 25 | const handleKeyPress = (event) => { 26 | if (event.key === "Enter") { 27 | sendMessage(); 28 | } 29 | }; 30 | 31 | useEffect(() => { 32 | if (!disabled && inputRef.current) { 33 | inputRef.current.focus(); 34 | } 35 | }, [disabled]); 36 | 37 | const showAdornment = !disabled && message.trim().length > 0; 38 | 39 | return ( 40 |
41 | setMessage(e.target.value)} 47 | onKeyPress={handleKeyPress} 48 | variant="outlined" 49 | disabled={disabled} 50 | size="large" 51 | placeholder='Send a message or type "help"' 52 | endAdornment={ 53 | 54 | 55 | 56 | } 57 | /> 58 |
59 |
60 | ); 61 | }; 62 | 63 | export default InputBar; 64 | -------------------------------------------------------------------------------- /src/LoadingIndicator.tsx: -------------------------------------------------------------------------------- 1 | import styled from 'styled-components'; 2 | import {Box} from '@mui/material'; 3 | 4 | const Animation = styled.div` 5 | font-weight: bold; 6 | font-family: monospace; 7 | font-size: 1.5rem; 8 | clip-path: inset(0 3ch 0 0); 9 | animation: l 1s steps(4) infinite; 10 | @keyframes l { 11 | to { 12 | clip-path: inset(0 -1ch 0 0) 13 | } 14 | } 15 | margin-top: -10px; 16 | ` 17 | 18 | const Container = styled.div` 19 | border-radius: 3px; 20 | border: 1px solid #ccc; 21 | padding: 0.5rem; 22 | opacity: 0.5; 23 | ` 24 | export default function LoadingIndicator() { 25 | return ( 26 | 27 | ... 28 | 29 | ) 30 | } -------------------------------------------------------------------------------- /src/SendMessageToVoxelGPT.ts: -------------------------------------------------------------------------------- 1 | import { 2 | registerOperator, 3 | Operator, 4 | OperatorConfig, 5 | types, 6 | executeOperator, 7 | } from "@fiftyone/operators"; 8 | import * as state from "./state"; 9 | import { useRecoilState } from "recoil"; 10 | import { uuid } from "./utils"; 11 | import { GPTMessage, GPTMessageType } from "./types"; 12 | 13 | export class SendMessageToVoxelGPT extends Operator { 14 | get config() { 15 | return new OperatorConfig({ 16 | name: "send_message_to_voxelgpt", 17 | label: "Send Message to VoxelGPT", 18 | unlisted: true, 19 | }); 20 | } 21 | 22 | useHooks() { 23 | const [messages, setMessages] = useRecoilState(state.atoms.messages); 24 | return { 25 | messages, 26 | addMessage: (message) => { 27 | setMessages((current) => [...current, message]); 28 | }, 29 | }; 30 | } 31 | 32 | async execute(ctx) { 33 | const message = new GPTMessage(GPTMessageType.SUCCESS, [ 34 | new types.Property(new types.String(), { 35 | default: ctx.params.message, 36 | readOnly: true, 37 | }), 38 | ]); 39 | ctx.hooks.addMessage({ 40 | type: "outgoing", 41 | content: ctx.params.message, 42 | }); 43 | await executeOperator(`${this.pluginName}/ask_voxelgpt_panel`, { 44 | query: ctx.params.message, 45 | history: ctx.hooks.messages, 46 | }); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/ShowMessage.ts: -------------------------------------------------------------------------------- 1 | import {registerOperator, Operator, OperatorConfig} from "@fiftyone/operators"; 2 | import * as state from "./state" 3 | import {useRecoilState} from "recoil"; 4 | 5 | export class ShowMessage extends Operator { 6 | get config() { 7 | return new OperatorConfig({ 8 | name: 'show_message', 9 | label: 'Show Message', 10 | }) 11 | } 12 | 13 | useHooks() { 14 | const [messages, setMessages] = useRecoilState(state.atoms.messages) 15 | return { 16 | addMessage: (message) => { 17 | setMessages(current => [...current, message]) 18 | }, 19 | updateLastIncomingMessage: (message) => { 20 | setMessages(current => { 21 | const lastIncomingMessage = current.filter(m => m.type === 'incoming').pop() 22 | if (lastIncomingMessage) { 23 | return [ 24 | ...current.filter(m => m !== lastIncomingMessage), 25 | { 26 | type: 'incoming', 27 | ...lastIncomingMessage, 28 | ...message 29 | } 30 | ] 31 | } 32 | return current 33 | }) 34 | } 35 | } 36 | } 37 | 38 | async execute(ctx) { 39 | if (ctx.params.message || ctx.params.outputs) { 40 | ctx.state.set(state.atoms.receiving, true) 41 | ctx.state.set(state.atoms.waiting, false) 42 | const {overwrite_last} = ctx.params.data || {} 43 | if (overwrite_last) { 44 | ctx.hooks.updateLastIncomingMessage({ 45 | response_to: ctx.params.query_id, 46 | ...ctx.params 47 | }) 48 | } else { 49 | ctx.hooks.addMessage({ 50 | response_to: ctx.params.query_id, 51 | type: 'incoming', 52 | ...ctx.params 53 | }) 54 | } 55 | } 56 | if (ctx.params.done) { 57 | ctx.state.set(state.atoms.receiving, false) 58 | ctx.state.set(state.atoms.waiting, false) 59 | } 60 | } 61 | } 62 | 63 | -------------------------------------------------------------------------------- /src/VoxelGPT.tsx: -------------------------------------------------------------------------------- 1 | import { Selector } from "@fiftyone/components"; 2 | import { PluginComponentType, registerComponent } from "@fiftyone/plugins"; 3 | import { usePanelStatePartial, usePanelTitle } from "@fiftyone/spaces"; 4 | import React, { useEffect } from "react"; 5 | import styled from "styled-components"; 6 | import { scrollbarStyles } from "@fiftyone/utilities"; 7 | import { 8 | OperatorPlacements, 9 | registerOperator, 10 | useOperatorExecutor, 11 | } from "@fiftyone/operators"; 12 | import Chat from "./Chat"; 13 | import { Grid, Typography, Link } from "@mui/material"; 14 | import InputBar from "./InputBar"; 15 | import { ShowMessage } from "./ShowMessage"; 16 | import { SendMessageToVoxelGPT } from "./SendMessageToVoxelGPT"; 17 | import { useRecoilValue } from "recoil"; 18 | import * as state from "./state"; 19 | import { Actions } from "./Actions"; 20 | import { Intro } from "./Intro"; 21 | import { ChatGPTAvatar } from "./avatars"; 22 | 23 | const PLUGIN_NAME = "@voxel51/voxelgpt"; 24 | 25 | const ChatPanel = () => { 26 | const executor = useOperatorExecutor( 27 | `${PLUGIN_NAME}/send_message_to_voxelgpt` 28 | ); 29 | const messages = useRecoilValue(state.atoms.messages); 30 | const handleMessageSend = (message) => { 31 | executor.execute({ message }); 32 | }; 33 | const receiving = useRecoilValue(state.atoms.receiving); 34 | const waiting = useRecoilValue(state.atoms.waiting); 35 | const hasMessages = messages.length > 0; 36 | 37 | return ( 38 | 45 | {!hasMessages && } 46 | {hasMessages && ( 47 | 48 | 49 | 50 | )} 51 | 57 | 58 | 59 | 64 | 68 | VoxelGPT is in beta and may not understand certain queries.{" "} 69 | 70 | Learn more 71 | 72 | 73 | 74 | 75 | 76 | ); 77 | }; 78 | 79 | registerComponent({ 80 | name: "voxelgpt", 81 | label: "VoxelGPT", 82 | component: ChatPanel, 83 | type: PluginComponentType.Panel, 84 | activator: () => true, 85 | Icon: () => , 86 | }); 87 | 88 | registerOperator(ShowMessage, PLUGIN_NAME); 89 | registerOperator(SendMessageToVoxelGPT, PLUGIN_NAME); 90 | -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- 1 | export const SCROLL_TO_BOTTOM_THROTTLE = 1500; 2 | -------------------------------------------------------------------------------- /src/state.ts: -------------------------------------------------------------------------------- 1 | import { atom, atomFamily, selector } from "recoil"; 2 | import { getBrowserStorageEffectForKey } from "@fiftyone/state"; 3 | 4 | const PLUGIN_NAME = "@voxel51/voxelgpt"; 5 | 6 | export const atoms = { 7 | messages: atom({ 8 | key: "messages", 9 | default: [], 10 | effects: [ 11 | getBrowserStorageEffectForKey(`${PLUGIN_NAME}/messages`, { 12 | prependDatasetNameInKey: true, 13 | useJsonSerialization: true, 14 | }), 15 | ], 16 | }), 17 | receiving: atom({ 18 | key: "receiving", 19 | default: false, 20 | }), 21 | waiting: atom({ 22 | key: "waiting", 23 | default: false, 24 | }), 25 | input: atom({ 26 | key: "voxel-gpt-input", 27 | default: "", 28 | }), 29 | votes: atomFamily({ 30 | key: "voxel-gpt-votes", 31 | default: {}, 32 | }) 33 | }; 34 | 35 | 36 | 37 | export const selectors = {}; 38 | -------------------------------------------------------------------------------- /src/types.ts: -------------------------------------------------------------------------------- 1 | import {types} from '@fiftyone/operators' 2 | import { uuid } from './utils' 3 | 4 | export enum GPTMessageType { 5 | SUCCESS = 'success', 6 | ERROR = 'error', 7 | } 8 | 9 | export class GPTMessage { 10 | public id: string = uuid() 11 | constructor( 12 | public type: string, 13 | public content: types.Property[] 14 | ) {} 15 | } -------------------------------------------------------------------------------- /src/useTypewriterEffect.ts: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from 'react'; 2 | 3 | const useTypewriterEffect = (fullText, speed) => { 4 | const [index, setIndex] = useState(0); 5 | 6 | fullText = fullText || ''; 7 | 8 | // create an interval that increments the index by 1 9 | // the interval is cleared when the index is equal to the length of the fullText 10 | useEffect(() => { 11 | const interval = setInterval(() => { 12 | setIndex((prevIndex) => prevIndex + 1); 13 | }, speed); 14 | 15 | if (index === fullText.length) { 16 | clearInterval(interval); 17 | } 18 | 19 | return () => clearInterval(interval); 20 | }, [index, fullText.length, speed]); 21 | 22 | return fullText.slice(0, index); 23 | }; 24 | 25 | export default useTypewriterEffect; -------------------------------------------------------------------------------- /src/utils.ts: -------------------------------------------------------------------------------- 1 | export function uuid() { 2 | return Math.random().toString().split('.')[1] 3 | } -------------------------------------------------------------------------------- /tests/README.md: -------------------------------------------------------------------------------- 1 | # Unit tests 2 | 3 | ## Running tests 4 | 5 | ```py 6 | # All tests 7 | pytest -q tests/ 8 | 9 | # All tests in a module 10 | pytest -q tests/.py 11 | 12 | # Single test 13 | pytest -q tests/ -k 14 | ``` 15 | 16 | ## Writing tests 17 | 18 | - New test modules must start with `test_` or end with `_test.py` 19 | - New test classes must start with `Test` 20 | - New test functions must start with `test_` 21 | -------------------------------------------------------------------------------- /tests/generate_tests.py: -------------------------------------------------------------------------------- 1 | """ 2 | Generate tests. 3 | 4 | | Copyright 2017-2023, Voxel51, Inc. 5 | | `voxel51.com `_ 6 | | 7 | """ 8 | import os 9 | 10 | import pandas as pd 11 | 12 | 13 | ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 14 | TESTS_DIR = os.path.join(ROOT_DIR, "tests") 15 | 16 | TEST_EXAMPLES_PATH = os.path.join(TESTS_DIR, "test_examples.csv") 17 | 18 | 19 | with open(TEST_EXAMPLES_PATH, "r") as f: 20 | df = pd.read_csv(f) 21 | print(df) 22 | 23 | 24 | prompt = df["query"].tolist() 25 | stages = df["stages"].tolist() 26 | media_type = df["media_type"].tolist() 27 | 28 | 29 | def prompt_to_func_name(prompt): 30 | prompt = prompt.replace(" ", "_").replace("?", "").replace(",", "") 31 | prompt = prompt.replace("(", "").replace(")", "") 32 | prompt = prompt.replace("[", "").replace("]", "") 33 | prompt = prompt.replace("‘", "").replace("’", "") 34 | prompt = prompt.replace("-", "_") 35 | prompt = prompt.replace(".", "") 36 | prompt = prompt.replace('"', "").replace("'", "") 37 | prompt = prompt.replace("“", "").replace("”", "").lower() 38 | if len(prompt) > 50: 39 | prompt = prompt[:50] 40 | return prompt 41 | 42 | 43 | def format_stages(stages): 44 | stages = stages.replace('"', "'") 45 | return stages 46 | 47 | 48 | def format_prompt(prompt): 49 | prompt = prompt.replace('"', "'") 50 | return prompt 51 | 52 | 53 | def generate_test(prompt, stages, media_type): 54 | stages = format_stages(stages) 55 | 56 | print(f"def test_{prompt_to_func_name(prompt)}(self):") 57 | print(f' prompt = "{format_prompt(prompt)}"') 58 | if media_type != "video": 59 | print(f" " + 'dataset = foz.load_zoo_dataset("quickstart")') 60 | else: 61 | print(f" " + 'dataset = foz.load_zoo_dataset("quickstart-video")') 62 | print(f' expected_view = create_view_from_stages("{stages}", dataset)') 63 | print(f" " + "gpt_view_stages = get_gpt_view_text(dataset, prompt)") 64 | print( 65 | f" " 66 | + "gpt_view = create_view_from_stages(gpt_view_stages, dataset)" 67 | ) 68 | 69 | print(f" assert self.EvaluateResults(expected_view, gpt_view)") 70 | print("") 71 | 72 | 73 | for i in range(len(prompt)): 74 | generate_test(prompt[i], stages[i], media_type[i]) 75 | -------------------------------------------------------------------------------- /tests/test_db.py: -------------------------------------------------------------------------------- 1 | import pytest 2 | import unittest.mock as mock 3 | from db.tables import UserQueryTable, InsertExpection 4 | from db.client import get_client, get_ns 5 | 6 | @pytest.fixture 7 | def mock_client(): 8 | return mock.create_autospec(get_client(None), instance=True) 9 | 10 | @pytest.fixture 11 | def mock_bigquery(): 12 | return mock.create_autospec(get_ns(None)) 13 | 14 | def test_user_query_table_init(mock_client, mock_bigquery): 15 | mock_client.get_table.side_effect = Exception("Table not found") 16 | table = UserQueryTable('project_id', mock_client, mock_bigquery, 'dataset_id') 17 | 18 | assert table.client == mock_client 19 | mock_client.get_table.assert_called_once_with('project_id.dataset_id.user_queries') 20 | mock_client.create_table.assert_called_once() 21 | 22 | def test_insert_query_success(mock_client, mock_bigquery): 23 | mock_client.insert_rows.return_value = [] 24 | 25 | table = UserQueryTable('project_id', mock_client, mock_bigquery, 'dataset_id') 26 | query = "What's the weather like today?" 27 | 28 | query_id = table.insert_query(query) 29 | 30 | mock_client.get_table.assert_called_with('project_id.dataset_id.user_queries') 31 | assert mock_client.get_table.call_count == 2 32 | 33 | def test_insert_query_failure(mock_client, mock_bigquery): 34 | mock_client.insert_rows.return_value = ['error'] 35 | 36 | table = UserQueryTable('project_id', mock_client, mock_bigquery, 'dataset_id') 37 | query = "What's the weather like today?" 38 | 39 | with pytest.raises(InsertExpection): 40 | table.insert_query(query) 41 | 42 | mock_client.get_table.assert_called_with('project_id.dataset_id.user_queries') 43 | assert mock_client.get_table.call_count == 2 44 | mock_client.insert_rows.assert_called_once() 45 | 46 | def test_upvote_query(mock_client, mock_bigquery): 47 | table = UserQueryTable('project_id', mock_client, mock_bigquery, 'dataset_id') 48 | query_id = '1234' 49 | 50 | mock_client.insert_rows.return_value = [] 51 | table.upvote_query(query_id) 52 | 53 | mock_client.insert_rows.assert_called_once() 54 | 55 | def test_downvote_query(mock_client, mock_bigquery): 56 | table = UserQueryTable('project_id', mock_client, mock_bigquery, 'dataset_id') 57 | query_id = '1234' 58 | 59 | mock_client.insert_rows.return_value = [] 60 | table.downvote_query(query_id) 61 | 62 | mock_client.insert_rows.assert_called_once() -------------------------------------------------------------------------------- /vite.config.js: -------------------------------------------------------------------------------- 1 | const defineViteConfig = require('vite').defineConfig 2 | const react = require('@vitejs/plugin-react').default 3 | const nodeResolve = require('@rollup/plugin-node-resolve').default 4 | const path = require('path') 5 | const viteExternalsPlugin = require('vite-plugin-externals').viteExternalsPlugin 6 | const { FIFTYONE_DIR } = process.env 7 | const dir = __dirname 8 | const IS_DEV = process.env.IS_DEV === 'true' 9 | 10 | function fiftyonePlugin() { 11 | if (!FIFTYONE_DIR) { 12 | throw new Error( 13 | `FIFTYONE_DIR environment variable not set. This is required to resolve @fiftyone/* imports.` 14 | ) 15 | } 16 | 17 | return { 18 | name: 'fiftyone-rollup', 19 | resolveId: { 20 | order: 'pre', 21 | async handler(source) { 22 | if (source.startsWith('@fiftyone')) { 23 | const pkg = source.split('/')[1] 24 | const modulePath = `${FIFTYONE_DIR}/app/packages/${pkg}` 25 | return this.resolve(modulePath, source, { skipSelf: true }) 26 | } 27 | return null 28 | } 29 | } 30 | } 31 | } 32 | 33 | const package = require(`${dir}/package.json`) 34 | module.exports = defineViteConfig({ 35 | mode: 'development', 36 | plugins: [ 37 | fiftyonePlugin(), 38 | nodeResolve(), 39 | react(), 40 | viteExternalsPlugin({ 41 | react: 'React', 42 | 'react-dom': 'ReactDOM', 43 | recoil: 'recoil', 44 | '@fiftyone/state': '__fos__', 45 | '@fiftyone/operators': '__foo__', 46 | '@fiftyone/components': '__foc__', 47 | '@fiftyone/utilities': '__fou__', 48 | '@mui/material': '__mui__' // use mui from fiftyone 49 | }) 50 | ], 51 | build: { 52 | minify: IS_DEV ? false : true, 53 | lib: { 54 | entry: path.join(dir, package.main), 55 | name: package.name, 56 | fileName: (format) => `index.${format}.js`, 57 | formats: ['umd'] 58 | } 59 | }, 60 | define: { 61 | 'process.env.NODE_ENV': '"development"' 62 | }, 63 | optimizeDeps: { 64 | exclude: ['react', 'react-dom'] 65 | } 66 | }) 67 | --------------------------------------------------------------------------------