@elgap/edukaai 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +15 -0
- package/.output/public/_nuxt/BHDzAs85.js +1 -0
- package/.output/public/_nuxt/BJzbfdL_.js +1 -0
- package/.output/public/_nuxt/BKGLlKXk.js +6 -0
- package/.output/public/_nuxt/BLuXzJk3.js +1 -0
- package/.output/public/_nuxt/BNOzzLI3.js +1 -0
- package/.output/public/_nuxt/BO5GMwXh.js +1 -0
- package/.output/public/_nuxt/BQRbsFGy.js +1 -0
- package/.output/public/_nuxt/Be4MVdOg.js +1 -0
- package/.output/public/_nuxt/Bu4d3Z1T.js +1 -0
- package/.output/public/_nuxt/BwpBBNv4.js +1 -0
- package/.output/public/_nuxt/C1Og9-6n.js +97 -0
- package/.output/public/_nuxt/C3CjAhtj.js +1 -0
- package/.output/public/_nuxt/C6E3Ty3z.js +1 -0
- package/.output/public/_nuxt/COct4B42.js +1 -0
- package/.output/public/_nuxt/CQ6g2dtj.js +1 -0
- package/.output/public/_nuxt/CURSW5TV.js +246 -0
- package/.output/public/_nuxt/CW57JW4s.js +1 -0
- package/.output/public/_nuxt/Cg2fM61o.js +18 -0
- package/.output/public/_nuxt/CgGOeWta.js +1 -0
- package/.output/public/_nuxt/CoyYbT7u.js +1 -0
- package/.output/public/_nuxt/D11MHbGc.js +133 -0
- package/.output/public/_nuxt/D24dz0S8.js +1 -0
- package/.output/public/_nuxt/D3EFPr8x.js +1 -0
- package/.output/public/_nuxt/Dvt4ZHil.js +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -0
- package/.output/public/_nuxt/builds/meta/ab87ba0e-6d0d-4466-8b12-00d44f8fb9d3.json +1 -0
- package/.output/public/_nuxt/default.C1K1-g4D.css +1 -0
- package/.output/public/_nuxt/entry.CH8k-Mga.css +1 -0
- package/.output/public/_nuxt/error-404.C-Ezrlz-.css +1 -0
- package/.output/public/_nuxt/error-500.DBWf9FGj.css +1 -0
- package/.output/public/_nuxt/first-training.wFDD65zm.css +1 -0
- package/.output/public/_nuxt/import.cUKYdCrq.css +1 -0
- package/.output/public/_nuxt/index.D-2VHyHA.css +1 -0
- package/.output/public/_nuxt/index.D4J_vHmL.css +1 -0
- package/.output/public/_nuxt/mPJeLIz7.js +1 -0
- package/.output/server/chunks/_/error-500.mjs +19 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -0
- package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs +8 -0
- package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs.map +1 -0
- package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs +238 -0
- package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs.map +1 -0
- package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs +8 -0
- package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-BUSGcL-H.mjs +113 -0
- package/.output/server/chunks/build/_id_-BUSGcL-H.mjs.map +1 -0
- package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs +112 -0
- package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs.map +1 -0
- package/.output/server/chunks/build/best-practices-DsadorHb.mjs +38 -0
- package/.output/server/chunks/build/best-practices-DsadorHb.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +4 -0
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
- package/.output/server/chunks/build/default-DPkqqHOE.mjs +354 -0
- package/.output/server/chunks/build/default-DPkqqHOE.mjs.map +1 -0
- package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs +8 -0
- package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-K4UfZNck.mjs +97 -0
- package/.output/server/chunks/build/error-404-K4UfZNck.mjs.map +1 -0
- package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs +8 -0
- package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs.map +1 -0
- package/.output/server/chunks/build/error-500-CA7TEPNg.mjs +79 -0
- package/.output/server/chunks/build/error-500-CA7TEPNg.mjs.map +1 -0
- package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs +8 -0
- package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs.map +1 -0
- package/.output/server/chunks/build/examples-BHK8MDrs.mjs +134 -0
- package/.output/server/chunks/build/examples-BHK8MDrs.mjs.map +1 -0
- package/.output/server/chunks/build/export-BzxFqqfP.mjs +233 -0
- package/.output/server/chunks/build/export-BzxFqqfP.mjs.map +1 -0
- package/.output/server/chunks/build/faq-DKch73dS.mjs +112 -0
- package/.output/server/chunks/build/faq-DKch73dS.mjs.map +1 -0
- package/.output/server/chunks/build/field-guide-qbukT8F0.mjs +38 -0
- package/.output/server/chunks/build/field-guide-qbukT8F0.mjs.map +1 -0
- package/.output/server/chunks/build/first-training-BbEOBcEW.mjs +343 -0
- package/.output/server/chunks/build/first-training-BbEOBcEW.mjs.map +1 -0
- package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs +8 -0
- package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs.map +1 -0
- package/.output/server/chunks/build/glossary-CxSGCJoH.mjs +397 -0
- package/.output/server/chunks/build/glossary-CxSGCJoH.mjs.map +1 -0
- package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs +128 -0
- package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs.map +1 -0
- package/.output/server/chunks/build/import-C0kYhRv9.mjs +247 -0
- package/.output/server/chunks/build/import-C0kYhRv9.mjs.map +1 -0
- package/.output/server/chunks/build/index-C1ntBEWd.mjs +235 -0
- package/.output/server/chunks/build/index-C1ntBEWd.mjs.map +1 -0
- package/.output/server/chunks/build/index-D3CxihcX.mjs +320 -0
- package/.output/server/chunks/build/index-D3CxihcX.mjs.map +1 -0
- package/.output/server/chunks/build/index-DgKa1cy0.mjs +360 -0
- package/.output/server/chunks/build/index-DgKa1cy0.mjs.map +1 -0
- package/.output/server/chunks/build/index-cG54gaKX.mjs +513 -0
- package/.output/server/chunks/build/index-cG54gaKX.mjs.map +1 -0
- package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs +8 -0
- package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs.map +1 -0
- package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs +91 -0
- package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs.map +1 -0
- package/.output/server/chunks/build/new-b3338aLF.mjs +92 -0
- package/.output/server/chunks/build/new-b3338aLF.mjs.map +1 -0
- package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs +290 -0
- package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs.map +1 -0
- package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs +45 -0
- package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs.map +1 -0
- package/.output/server/chunks/build/server.mjs +1979 -0
- package/.output/server/chunks/build/server.mjs.map +1 -0
- package/.output/server/chunks/build/styles.mjs +20 -0
- package/.output/server/chunks/build/styles.mjs.map +1 -0
- package/.output/server/chunks/build/test-router-BYM6Cpst.mjs +105 -0
- package/.output/server/chunks/build/test-router-BYM6Cpst.mjs.map +1 -0
- package/.output/server/chunks/nitro/nitro.mjs +5800 -0
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +481 -0
- package/.output/server/chunks/routes/renderer.mjs.map +1 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
- package/.output/server/index.mjs +12 -0
- package/.output/server/index.mjs.map +1 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/api.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/app.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/component.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/context.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/hooks.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/index.js +22 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/util.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/const.js +5 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/env.js +17 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/index.js +45 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/plugin.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/proxy.js +111 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/time.js +28 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/package.json +37 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/dist/index.cjs +42 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/package.json +32 -0
- package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.cjs +299 -0
- package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
- package/.output/server/node_modules/.nitro/hookable@6.0.1/dist/index.mjs +266 -0
- package/.output/server/node_modules/.nitro/hookable@6.0.1/package.json +52 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/dist/index.cjs +59 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/package.json +44 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs +89 -0
- package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json +41 -0
- package/.output/server/node_modules/@babel/parser/lib/index.js +14582 -0
- package/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +292 -0
- package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +702 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/common.js +76 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/format.js +40 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +52 -0
- package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +133 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +20 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +15 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +18 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +18 -0
- package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +31 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +80 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +102 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +29 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +60 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +50 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +204 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +35 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +134 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +167 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +81 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +94 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +78 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +68 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +47 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +105 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +38 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +94 -0
- package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +64 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +26 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +18 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +58 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +34 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +13 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +126 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +21 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +38 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +93 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +48 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +24 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +44 -0
- package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +125 -0
- package/.output/server/node_modules/@iconify/utils/lib/index.js +53 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +32 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +42 -0
- package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +63 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +27 -0
- package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +10 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +115 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +32 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +15 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +10 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +42 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +23 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +69 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +55 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +28 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +8 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +23 -0
- package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +9 -0
- package/.output/server/node_modules/@iconify/utils/package.json +118 -0
- package/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +1893 -0
- package/.output/server/node_modules/@iconify/vue/package.json +64 -0
- package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6763 -0
- package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
- package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
- package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs +6850 -0
- package/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
- package/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs +378 -0
- package/.output/server/node_modules/@vue/devtools-shared/package.json +34 -0
- package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1870 -0
- package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6810 -0
- package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1750 -0
- package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +883 -0
- package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
- package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
- package/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/.output/server/node_modules/birpc/dist/index.cjs +296 -0
- package/.output/server/node_modules/birpc/package.json +57 -0
- package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
- package/.output/server/node_modules/consola/dist/core.mjs +512 -0
- package/.output/server/node_modules/consola/dist/index.mjs +651 -0
- package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
- package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
- package/.output/server/node_modules/consola/package.json +136 -0
- package/.output/server/node_modules/devalue/index.js +4 -0
- package/.output/server/node_modules/devalue/package.json +37 -0
- package/.output/server/node_modules/devalue/src/base64.js +110 -0
- package/.output/server/node_modules/devalue/src/constants.js +7 -0
- package/.output/server/node_modules/devalue/src/parse.js +246 -0
- package/.output/server/node_modules/devalue/src/stringify.js +350 -0
- package/.output/server/node_modules/devalue/src/uneval.js +490 -0
- package/.output/server/node_modules/devalue/src/utils.js +148 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
- package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
- package/.output/server/node_modules/entities/package.json +120 -0
- package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/.output/server/node_modules/estree-walker/package.json +37 -0
- package/.output/server/node_modules/pinia/dist/pinia.prod.cjs +719 -0
- package/.output/server/node_modules/pinia/package.json +94 -0
- package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/.output/server/node_modules/source-map-js/package.json +71 -0
- package/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
- package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
- package/.output/server/node_modules/tailwindcss/package.json +89 -0
- package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
- package/.output/server/node_modules/ufo/package.json +48 -0
- package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
- package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
- package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
- package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
- package/.output/server/node_modules/unhead/dist/server.mjs +180 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BPM0-cfG.mjs +44 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.D_nrZZPH.mjs +182 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.ckV6dpEQ.mjs +166 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.fVVqDC1O.mjs +203 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
- package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
- package/.output/server/node_modules/unhead/package.json +105 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/.output/server/node_modules/vue/index.js +7 -0
- package/.output/server/node_modules/vue/index.mjs +1 -0
- package/.output/server/node_modules/vue/package.json +112 -0
- package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +301 -0
- package/.output/server/node_modules/vue-bundle-renderer/package.json +55 -0
- package/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
- package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
- package/.output/server/node_modules/vue-router/package.json +153 -0
- package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
- package/.output/server/package.json +37 -0
- package/LICENSE +21 -0
- package/README.md +132 -0
- package/bin/cli.js +75 -0
- package/package.json +71 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import { defineComponent, ref, resolveDirective, mergeProps, withCtx, createTextVNode, useSSRContext } from 'vue';
|
|
2
|
+
import { ssrRenderComponent, ssrRenderAttrs, ssrRenderClass, ssrIncludeBooleanAttr, ssrRenderAttr, ssrGetDirectiveProps, ssrInterpolate, ssrRenderList, ssrRenderStyle } from 'vue/server-renderer';
|
|
3
|
+
import { _ as _export_sfc } from './server.mjs';
|
|
4
|
+
import { _ as __nuxt_component_0$2 } from './nuxt-link-Ceyd90PQ.mjs';
|
|
5
|
+
import '../nitro/nitro.mjs';
|
|
6
|
+
import 'node:http';
|
|
7
|
+
import 'node:https';
|
|
8
|
+
import 'node:events';
|
|
9
|
+
import 'node:buffer';
|
|
10
|
+
import 'node:fs';
|
|
11
|
+
import 'node:path';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'node:url';
|
|
14
|
+
import '@iconify/utils';
|
|
15
|
+
import 'consola';
|
|
16
|
+
import 'pinia';
|
|
17
|
+
import 'vue-router';
|
|
18
|
+
import 'tailwindcss/colors';
|
|
19
|
+
import '@iconify/vue';
|
|
20
|
+
import '../routes/renderer.mjs';
|
|
21
|
+
import 'vue-bundle-renderer/runtime';
|
|
22
|
+
import 'unhead/server';
|
|
23
|
+
import 'devalue';
|
|
24
|
+
import 'unhead/utils';
|
|
25
|
+
|
|
26
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
27
|
+
__name: "ImportPreview",
|
|
28
|
+
__ssrInlineRender: true,
|
|
29
|
+
props: {
|
|
30
|
+
examples: {},
|
|
31
|
+
selectedIds: {}
|
|
32
|
+
},
|
|
33
|
+
emits: ["toggle-selection", "select-all", "deselect-all"],
|
|
34
|
+
setup(__props) {
|
|
35
|
+
const props = __props;
|
|
36
|
+
const isSelected = (id) => {
|
|
37
|
+
return props.selectedIds.includes(id);
|
|
38
|
+
};
|
|
39
|
+
const confidenceClass = (confidence) => {
|
|
40
|
+
if (confidence >= 0.9) return "bg-green-100 text-green-700";
|
|
41
|
+
if (confidence >= 0.7) return "bg-blue-100 text-blue-700";
|
|
42
|
+
if (confidence >= 0.5) return "bg-yellow-100 text-yellow-700";
|
|
43
|
+
return "bg-red-100 text-red-700";
|
|
44
|
+
};
|
|
45
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
46
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "space-y-4" }, _attrs))} data-v-63f3a431><div class="flex justify-between items-center" data-v-63f3a431><h3 class="font-medium" data-v-63f3a431>Preview Examples (${ssrInterpolate(__props.examples.length)})</h3><div class="flex gap-2" data-v-63f3a431><button class="text-sm text-blue-600 hover:text-blue-700" data-v-63f3a431> Select All </button><span class="text-gray-300" data-v-63f3a431>|</span><button class="text-sm text-blue-600 hover:text-blue-700" data-v-63f3a431> Deselect All </button></div></div><div class="max-h-96 overflow-y-auto space-y-2" data-v-63f3a431><!--[-->`);
|
|
47
|
+
ssrRenderList(__props.examples.slice(0, 20), (example) => {
|
|
48
|
+
_push(`<div class="${ssrRenderClass([isSelected(example.id) ? "border-blue-500 bg-blue-50" : "border-gray-200 hover:border-gray-300", "p-3 border rounded-lg cursor-pointer transition-all"])}" data-v-63f3a431><div class="flex items-start gap-3" data-v-63f3a431><input type="checkbox"${ssrIncludeBooleanAttr(isSelected(example.id)) ? " checked" : ""} class="mt-1 w-4 h-4 text-blue-600 rounded" data-v-63f3a431><div class="flex-1 min-w-0" data-v-63f3a431><div class="flex items-center gap-2 mb-1" data-v-63f3a431>`);
|
|
49
|
+
if (example.needsReview) {
|
|
50
|
+
_push(`<span class="px-2 py-0.5 bg-yellow-100 text-yellow-700 text-xs rounded-full" data-v-63f3a431> ⚠️ Needs Review </span>`);
|
|
51
|
+
} else {
|
|
52
|
+
_push(`<!---->`);
|
|
53
|
+
}
|
|
54
|
+
_push(`<span class="${ssrRenderClass([confidenceClass(example.confidence), "px-2 py-0.5 text-xs rounded-full"])}" data-v-63f3a431>${ssrInterpolate(Math.round(example.confidence * 100))}% confidence </span></div><p class="text-sm font-medium text-gray-900 line-clamp-2" data-v-63f3a431>${ssrInterpolate(example.instruction)}</p><div class="flex items-center gap-3 mt-2 text-xs text-gray-500" data-v-63f3a431><span data-v-63f3a431>${ssrInterpolate(example.category || "general")}</span><span data-v-63f3a431>•</span><span data-v-63f3a431>${ssrInterpolate(example.difficulty || "intermediate")}</span>`);
|
|
55
|
+
if (example.tokensIn) {
|
|
56
|
+
_push(`<span data-v-63f3a431> • ${ssrInterpolate(example.tokensIn + (example.tokensOut || 0))} tokens </span>`);
|
|
57
|
+
} else {
|
|
58
|
+
_push(`<!---->`);
|
|
59
|
+
}
|
|
60
|
+
_push(`</div></div></div></div>`);
|
|
61
|
+
});
|
|
62
|
+
_push(`<!--]-->`);
|
|
63
|
+
if (__props.examples.length > 20) {
|
|
64
|
+
_push(`<div class="text-center py-4 text-gray-500" data-v-63f3a431> ... and ${ssrInterpolate(__props.examples.length - 20)} more examples </div>`);
|
|
65
|
+
} else {
|
|
66
|
+
_push(`<!---->`);
|
|
67
|
+
}
|
|
68
|
+
_push(`</div></div>`);
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
const _sfc_setup$2 = _sfc_main$2.setup;
|
|
73
|
+
_sfc_main$2.setup = (props, ctx) => {
|
|
74
|
+
const ssrContext = useSSRContext();
|
|
75
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ImportPreview.vue");
|
|
76
|
+
return _sfc_setup$2 ? _sfc_setup$2(props, ctx) : void 0;
|
|
77
|
+
};
|
|
78
|
+
const __nuxt_component_0$1 = /* @__PURE__ */ Object.assign(_export_sfc(_sfc_main$2, [["__scopeId", "data-v-63f3a431"]]), { __name: "ImportPreview" });
|
|
79
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
80
|
+
__name: "ImportWizard",
|
|
81
|
+
__ssrInlineRender: true,
|
|
82
|
+
setup(__props) {
|
|
83
|
+
const currentStep = ref(1);
|
|
84
|
+
const selectedSource = ref(null);
|
|
85
|
+
const dateFrom = ref("");
|
|
86
|
+
const dateTo = ref("");
|
|
87
|
+
const manualPath = ref("");
|
|
88
|
+
const scanning = ref(false);
|
|
89
|
+
const loading = ref(false);
|
|
90
|
+
const importing = ref(false);
|
|
91
|
+
const importComplete = ref(false);
|
|
92
|
+
const importedCount = ref(0);
|
|
93
|
+
const previewData = ref(null);
|
|
94
|
+
const selectedExampleIds = ref([]);
|
|
95
|
+
const toggleExampleSelection = (id) => {
|
|
96
|
+
const idx = selectedExampleIds.value.indexOf(id);
|
|
97
|
+
if (idx === -1) {
|
|
98
|
+
selectedExampleIds.value.push(id);
|
|
99
|
+
} else {
|
|
100
|
+
selectedExampleIds.value.splice(idx, 1);
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const selectAllExamples = () => {
|
|
104
|
+
selectedExampleIds.value = previewData.value?.examples.map((e) => e.id) || [];
|
|
105
|
+
};
|
|
106
|
+
const deselectAllExamples = () => {
|
|
107
|
+
selectedExampleIds.value = [];
|
|
108
|
+
};
|
|
109
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
110
|
+
const _component_ImportPreview = __nuxt_component_0$1;
|
|
111
|
+
const _component_NuxtLink = __nuxt_component_0$2;
|
|
112
|
+
const _directive_else34 = resolveDirective('else"');
|
|
113
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-4xl mx-auto" }, _attrs))}><div class="mb-6"><h1 class="text-2xl font-bold mb-2">Import from AI Assistants</h1><p class="text-gray-600"> Import your conversations from coding assistants to automatically build your dataset. </p></div>`);
|
|
114
|
+
if (currentStep.value === 1) {
|
|
115
|
+
_push(`<div class="card"><h2 class="text-lg font-semibold mb-6">Step 1: Select Your AI Assistant</h2><div class="grid grid-cols-1 md:grid-cols-3 gap-4"><button class="${ssrRenderClass([selectedSource.value === "claude" ? "border-blue-500 bg-blue-50" : "border-gray-200", "p-6 border-2 rounded-xl text-left transition-all hover:border-blue-400"])}"><div class="text-4xl mb-3">🤖</div><h3 class="font-semibold mb-1">Claude Code</h3><p class="text-sm text-gray-600">Full conversation import with metadata</p><div class="mt-3 flex items-center gap-1 text-sm text-green-600"><span>✓</span><span>Recommended</span></div></button><button class="${ssrRenderClass([selectedSource.value === "cursor" ? "border-blue-500 bg-blue-50" : "border-gray-200", "p-6 border-2 rounded-xl text-left transition-all hover:border-blue-400"])}"><div class="text-4xl mb-3">🖱️</div><h3 class="font-semibold mb-1">Cursor</h3><p class="text-sm text-gray-600">Import from Cursor editor chat history</p><div class="mt-3 flex items-center gap-1 text-sm text-green-600"><span>✓</span><span>Recommended</span></div></button><button class="${ssrRenderClass([selectedSource.value === "chatgpt" ? "border-green-500 bg-green-50" : "border-gray-200", "p-6 border-2 rounded-xl text-left transition-all hover:border-green-400"])}"><div class="text-4xl mb-3">💬</div><h3 class="font-semibold mb-1">ChatGPT</h3><p class="text-sm text-gray-600">Import from ChatGPT export file</p><div class="mt-3 flex items-center gap-1 text-sm text-blue-600"><span>📥</span><span>Export Required</span></div></button><button class="${ssrRenderClass([selectedSource.value === "copilot" ? "border-purple-500 bg-purple-50" : "border-gray-200", "p-6 border-2 rounded-xl text-left transition-all hover:border-purple-400"])}"><div class="text-4xl mb-3">🤝</div><h3 class="font-semibold mb-1">GitHub Copilot</h3><p class="text-sm text-gray-600">Import from VS Code Copilot chat</p><div class="mt-3 flex items-center gap-1 text-sm text-purple-600"><span>⚡</span><span>Coding Focused</span></div></button><button class="${ssrRenderClass([selectedSource.value === "opencode" ? "border-yellow-500 bg-yellow-50" : "border-gray-200", "p-6 border-2 rounded-xl text-left transition-all hover:border-yellow-400"])}"><div class="text-4xl mb-3">⚠️</div><h3 class="font-semibold mb-1">OpenCode</h3><p class="text-sm text-gray-600">Limited import - metadata only</p><div class="mt-3 flex items-center gap-1 text-sm text-yellow-600"><span>⚠</span><span>Limited Data</span></div></button></div>`);
|
|
116
|
+
if (selectedSource.value === "chatgpt") {
|
|
117
|
+
_push(`<div class="mt-4 p-4 bg-green-50 border border-green-200 rounded-lg"><p class="text-sm text-green-800"><strong>📥 ChatGPT Export Required:</strong> You need to export your ChatGPT conversations first: </p><ol class="text-sm text-green-700 mt-2 list-decimal list-inside"><li>Go to chat.openai.com → Settings → Data controls</li><li>Click "Export data" and wait for the email</li><li>Download and extract the ZIP file</li><li>Place <code>conversations.json</code> in your Downloads folder</li></ol></div>`);
|
|
118
|
+
} else {
|
|
119
|
+
_push(`<!---->`);
|
|
120
|
+
}
|
|
121
|
+
if (selectedSource.value === "copilot") {
|
|
122
|
+
_push(`<div class="mt-4 p-4 bg-purple-50 border border-purple-200 rounded-lg"><p class="text-sm text-purple-800"><strong>🤝 GitHub Copilot:</strong> Copilot conversations from VS Code will be automatically detected. </p><p class="text-sm text-purple-700 mt-1"> Note: Only available if you have VS Code with Copilot chat history enabled. </p></div>`);
|
|
123
|
+
} else {
|
|
124
|
+
_push(`<!---->`);
|
|
125
|
+
}
|
|
126
|
+
if (selectedSource.value === "opencode") {
|
|
127
|
+
_push(`<div class="mt-4 p-4 bg-yellow-50 border border-yellow-200 rounded-lg"><p class="text-sm text-yellow-800"><strong>⚠️ Warning:</strong> OpenCode has limited log access. Only basic metadata will be imported. Full conversation content may not be available. We recommend using Claude Code or Cursor for best results. </p></div>`);
|
|
128
|
+
} else {
|
|
129
|
+
_push(`<!---->`);
|
|
130
|
+
}
|
|
131
|
+
_push(`<div class="flex justify-end mt-6"><button${ssrIncludeBooleanAttr(!selectedSource.value) ? " disabled" : ""} class="${ssrRenderClass([{ "opacity-50 cursor-not-allowed": !selectedSource.value }, "btn-primary"])}"> Next: Configure Import → </button></div></div>`);
|
|
132
|
+
} else {
|
|
133
|
+
_push(`<!---->`);
|
|
134
|
+
}
|
|
135
|
+
if (currentStep.value === 2) {
|
|
136
|
+
_push(`<div class="card"><h2 class="text-lg font-semibold mb-6">Step 2: Select Date Range</h2><div class="space-y-4"><div class="grid grid-cols-2 gap-4"><div><label class="form-label">From Date</label><input${ssrRenderAttr("value", dateFrom.value)} type="date" class="form-input"></div><div><label class="form-label">To Date</label><input${ssrRenderAttr("value", dateTo.value)} type="date" class="form-input"></div></div><div class="flex gap-2"><button class="px-3 py-1 text-sm bg-gray-100 hover:bg-gray-200 rounded-lg"> Today </button><button class="px-3 py-1 text-sm bg-gray-100 hover:bg-gray-200 rounded-lg"> Last 7 Days </button><button class="px-3 py-1 text-sm bg-gray-100 hover:bg-gray-200 rounded-lg"> Last 30 Days </button><button class="px-3 py-1 text-sm bg-gray-100 hover:bg-gray-200 rounded-lg"> All Time </button></div></div><div class="mt-6 p-4 bg-gray-50 rounded-lg"><h3 class="font-medium mb-2">📁 Manual File Selection (Optional)</h3><p class="text-sm text-gray-600 mb-3"> If automatic detection doesn't find your files, you can specify the path manually. </p><input${ssrRenderAttr("value", manualPath.value)} type="text" class="form-input" placeholder="/path/to/conversations.json"></div><div class="flex justify-between mt-6"><button class="btn-secondary"> ← Back </button><button${ssrIncludeBooleanAttr(scanning.value) ? " disabled" : ""} class="btn-primary">`);
|
|
137
|
+
if (scanning.value) {
|
|
138
|
+
_push(`<span>Scanning...</span>`);
|
|
139
|
+
} else {
|
|
140
|
+
_push(`<!---->`);
|
|
141
|
+
}
|
|
142
|
+
_push(`<span${ssrRenderAttrs(ssrGetDirectiveProps(_ctx, _directive_else34))}>Preview Import →</span></button></div></div>`);
|
|
143
|
+
} else {
|
|
144
|
+
_push(`<!---->`);
|
|
145
|
+
}
|
|
146
|
+
if (currentStep.value === 3) {
|
|
147
|
+
_push(`<div class="space-y-6"><div class="card"><h2 class="text-lg font-semibold mb-4">Step 3: Preview & Import</h2>`);
|
|
148
|
+
if (loading.value) {
|
|
149
|
+
_push(`<div class="text-center py-12"><div class="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-600"></div><p class="mt-2 text-gray-600">Analyzing conversations...</p></div>`);
|
|
150
|
+
} else {
|
|
151
|
+
_push(`<div><div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6"><div class="bg-blue-50 rounded-lg p-4 text-center"><div class="text-2xl font-bold text-blue-600">${ssrInterpolate(previewData.value?.stats.totalSessions || 0)}</div><div class="text-sm text-gray-600">Conversations</div></div><div class="bg-green-50 rounded-lg p-4 text-center"><div class="text-2xl font-bold text-green-600">${ssrInterpolate(previewData.value?.stats.extractedExamples || 0)}</div><div class="text-sm text-gray-600">Examples Found</div></div><div class="bg-yellow-50 rounded-lg p-4 text-center"><div class="text-2xl font-bold text-yellow-600">${ssrInterpolate(previewData.value?.stats.needsReview || 0)}</div><div class="text-sm text-gray-600">Need Review</div></div><div class="bg-red-50 rounded-lg p-4 text-center"><div class="text-2xl font-bold text-red-600">${ssrInterpolate(previewData.value?.errors.length || 0)}</div><div class="text-sm text-gray-600">Warnings</div></div></div>`);
|
|
152
|
+
if (previewData.value?.errors.length) {
|
|
153
|
+
_push(`<div class="mb-6 p-4 bg-yellow-50 border border-yellow-200 rounded-lg"><h3 class="font-medium text-yellow-800 mb-2">⚠️ Warnings</h3><ul class="text-sm text-yellow-700 space-y-1"><!--[-->`);
|
|
154
|
+
ssrRenderList(previewData.value.errors.slice(0, 5), (error, idx) => {
|
|
155
|
+
_push(`<li> • ${ssrInterpolate(error)}</li>`);
|
|
156
|
+
});
|
|
157
|
+
_push(`<!--]-->`);
|
|
158
|
+
if (previewData.value.errors.length > 5) {
|
|
159
|
+
_push(`<li> ... and ${ssrInterpolate(previewData.value.errors.length - 5)} more </li>`);
|
|
160
|
+
} else {
|
|
161
|
+
_push(`<!---->`);
|
|
162
|
+
}
|
|
163
|
+
_push(`</ul></div>`);
|
|
164
|
+
} else {
|
|
165
|
+
_push(`<!---->`);
|
|
166
|
+
}
|
|
167
|
+
_push(ssrRenderComponent(_component_ImportPreview, {
|
|
168
|
+
examples: previewData.value?.examples || [],
|
|
169
|
+
"selected-ids": selectedExampleIds.value,
|
|
170
|
+
onToggleSelection: toggleExampleSelection,
|
|
171
|
+
onSelectAll: selectAllExamples,
|
|
172
|
+
onDeselectAll: deselectAllExamples
|
|
173
|
+
}, null, _parent));
|
|
174
|
+
if (importing.value) {
|
|
175
|
+
_push(`<div class="mt-6"><div class="flex justify-between text-sm mb-1"><span>Importing examples...</span><span>${ssrInterpolate(importedCount.value)} / ${ssrInterpolate(selectedExampleIds.value.length)}</span></div><div class="w-full bg-gray-200 rounded-full h-4"><div class="bg-blue-500 h-4 rounded-full transition-all duration-300" style="${ssrRenderStyle({ width: `${importedCount.value / selectedExampleIds.value.length * 100}%` })}"></div></div></div>`);
|
|
176
|
+
} else {
|
|
177
|
+
_push(`<!---->`);
|
|
178
|
+
}
|
|
179
|
+
if (importComplete.value) {
|
|
180
|
+
_push(`<div class="mt-6 p-4 bg-green-50 border border-green-200 rounded-lg"><h3 class="font-medium text-green-800 mb-1">✅ Import Complete!</h3><p class="text-sm text-green-700"> Successfully imported ${ssrInterpolate(importedCount.value)} examples. `);
|
|
181
|
+
if (previewData.value?.stats.needsReview) {
|
|
182
|
+
_push(`<span>${ssrInterpolate(previewData.value.stats.needsReview)} examples need manual review. </span>`);
|
|
183
|
+
} else {
|
|
184
|
+
_push(`<!---->`);
|
|
185
|
+
}
|
|
186
|
+
_push(`</p><div class="mt-3 flex gap-2">`);
|
|
187
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
188
|
+
to: "/examples",
|
|
189
|
+
class: "btn-primary"
|
|
190
|
+
}, {
|
|
191
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
192
|
+
if (_push2) {
|
|
193
|
+
_push2(` View Dataset → `);
|
|
194
|
+
} else {
|
|
195
|
+
return [
|
|
196
|
+
createTextVNode(" View Dataset → ")
|
|
197
|
+
];
|
|
198
|
+
}
|
|
199
|
+
}),
|
|
200
|
+
_: 1
|
|
201
|
+
}, _parent));
|
|
202
|
+
_push(`<button class="btn-secondary"> Import More </button></div></div>`);
|
|
203
|
+
} else {
|
|
204
|
+
_push(`<!---->`);
|
|
205
|
+
}
|
|
206
|
+
_push(`</div>`);
|
|
207
|
+
}
|
|
208
|
+
_push(`</div>`);
|
|
209
|
+
if (!importComplete.value && !importing.value) {
|
|
210
|
+
_push(`<div class="flex justify-between"><button class="btn-secondary"> ← Back </button><button${ssrIncludeBooleanAttr(selectedExampleIds.value.length === 0) ? " disabled" : ""} class="${ssrRenderClass([{ "opacity-50 cursor-not-allowed": selectedExampleIds.value.length === 0 }, "btn-primary"])}"> 🚀 Import ${ssrInterpolate(selectedExampleIds.value.length)} Examples </button></div>`);
|
|
211
|
+
} else {
|
|
212
|
+
_push(`<!---->`);
|
|
213
|
+
}
|
|
214
|
+
_push(`</div>`);
|
|
215
|
+
} else {
|
|
216
|
+
_push(`<!---->`);
|
|
217
|
+
}
|
|
218
|
+
_push(`</div>`);
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
const _sfc_setup$1 = _sfc_main$1.setup;
|
|
223
|
+
_sfc_main$1.setup = (props, ctx) => {
|
|
224
|
+
const ssrContext = useSSRContext();
|
|
225
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/ImportWizard.vue");
|
|
226
|
+
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
227
|
+
};
|
|
228
|
+
const __nuxt_component_0 = Object.assign(_sfc_main$1, { __name: "ImportWizard" });
|
|
229
|
+
const _sfc_main = {
|
|
230
|
+
__name: "import",
|
|
231
|
+
__ssrInlineRender: true,
|
|
232
|
+
setup(__props) {
|
|
233
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
234
|
+
const _component_ImportWizard = __nuxt_component_0;
|
|
235
|
+
_push(ssrRenderComponent(_component_ImportWizard, _attrs, null, _parent));
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
const _sfc_setup = _sfc_main.setup;
|
|
240
|
+
_sfc_main.setup = (props, ctx) => {
|
|
241
|
+
const ssrContext = useSSRContext();
|
|
242
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/import.vue");
|
|
243
|
+
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
export { _sfc_main as default };
|
|
247
|
+
//# sourceMappingURL=import-C0kYhRv9.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-C0kYhRv9.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/import-C0kYhRv9.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, mergeProps, withCtx, createVNode, useSSRContext } from 'vue';
|
|
2
|
+
import { ssrRenderAttrs, ssrInterpolate, ssrRenderStyle, ssrRenderComponent, ssrRenderList, ssrRenderClass } from 'vue/server-renderer';
|
|
3
|
+
import { _ as __nuxt_component_0$1 } from './nuxt-link-Ceyd90PQ.mjs';
|
|
4
|
+
import '../nitro/nitro.mjs';
|
|
5
|
+
import 'node:http';
|
|
6
|
+
import 'node:https';
|
|
7
|
+
import 'node:events';
|
|
8
|
+
import 'node:buffer';
|
|
9
|
+
import 'node:fs';
|
|
10
|
+
import 'node:path';
|
|
11
|
+
import 'node:crypto';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import '@iconify/utils';
|
|
14
|
+
import 'consola';
|
|
15
|
+
import './server.mjs';
|
|
16
|
+
import 'pinia';
|
|
17
|
+
import 'vue-router';
|
|
18
|
+
import 'tailwindcss/colors';
|
|
19
|
+
import '@iconify/vue';
|
|
20
|
+
import '../routes/renderer.mjs';
|
|
21
|
+
import 'vue-bundle-renderer/runtime';
|
|
22
|
+
import 'unhead/server';
|
|
23
|
+
import 'devalue';
|
|
24
|
+
import 'unhead/utils';
|
|
25
|
+
|
|
26
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
27
|
+
__name: "MilestoneItem",
|
|
28
|
+
__ssrInlineRender: true,
|
|
29
|
+
props: {
|
|
30
|
+
achieved: { type: Boolean },
|
|
31
|
+
count: {},
|
|
32
|
+
label: {},
|
|
33
|
+
current: {}
|
|
34
|
+
},
|
|
35
|
+
setup(__props) {
|
|
36
|
+
const getPrevCount = (count) => {
|
|
37
|
+
const counts = [10, 50, 250, 500, 750, 1e3];
|
|
38
|
+
const idx = counts.indexOf(parseInt(count));
|
|
39
|
+
return idx > 0 ? counts[idx - 1] : 0;
|
|
40
|
+
};
|
|
41
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
42
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "flex items-center gap-3" }, _attrs))}><div class="${ssrRenderClass([__props.achieved ? "bg-green-100 text-green-600" : "bg-gray-100 text-gray-400", "w-8 h-8 rounded-full flex items-center justify-center text-lg"])}">${ssrInterpolate(__props.achieved ? "✅" : "⏳")}</div><div class="flex-1"><div class="flex justify-between items-center mb-1"><span class="${ssrRenderClass([__props.achieved ? "text-green-700" : "text-gray-600", "font-medium"])}">${ssrInterpolate(__props.label)}</span><span class="${ssrRenderClass([__props.achieved ? "text-green-600" : "text-gray-500", "text-sm"])}">${ssrInterpolate(__props.count)} examples </span></div>`);
|
|
43
|
+
if (!__props.achieved) {
|
|
44
|
+
_push(`<div class="w-full bg-gray-200 rounded-full h-1.5"><div class="bg-blue-400 h-1.5 rounded-full transition-all duration-500" style="${ssrRenderStyle({ width: `${__props.current / (parseInt(__props.count) - getPrevCount(__props.count)) * 100}%` })}"></div></div>`);
|
|
45
|
+
} else {
|
|
46
|
+
_push(`<!---->`);
|
|
47
|
+
}
|
|
48
|
+
_push(`</div></div>`);
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
const _sfc_setup$1 = _sfc_main$1.setup;
|
|
53
|
+
_sfc_main$1.setup = (props, ctx) => {
|
|
54
|
+
const ssrContext = useSSRContext();
|
|
55
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("components/MilestoneItem.vue");
|
|
56
|
+
return _sfc_setup$1 ? _sfc_setup$1(props, ctx) : void 0;
|
|
57
|
+
};
|
|
58
|
+
const __nuxt_component_0 = Object.assign(_sfc_main$1, { __name: "MilestoneItem" });
|
|
59
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
60
|
+
__name: "index",
|
|
61
|
+
__ssrInlineRender: true,
|
|
62
|
+
setup(__props) {
|
|
63
|
+
const stats = ref({
|
|
64
|
+
total: 0,
|
|
65
|
+
approved: 0,
|
|
66
|
+
draft: 0,
|
|
67
|
+
rejected: 0,
|
|
68
|
+
sources: {},
|
|
69
|
+
categories: {},
|
|
70
|
+
difficulties: {},
|
|
71
|
+
progress: {
|
|
72
|
+
current: 0,
|
|
73
|
+
target: 1e3,
|
|
74
|
+
percentage: 0
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
const progressPercentage = computed(() => {
|
|
78
|
+
return Math.round(stats.value.total / 1e3 * 100);
|
|
79
|
+
});
|
|
80
|
+
const formatSource = (source) => {
|
|
81
|
+
const sources = {
|
|
82
|
+
"manual": "Manual",
|
|
83
|
+
"claude": "Claude Code",
|
|
84
|
+
"cursor": "Cursor",
|
|
85
|
+
"opencode": "OpenCode"
|
|
86
|
+
};
|
|
87
|
+
return sources[source] || source;
|
|
88
|
+
};
|
|
89
|
+
return (_ctx, _push, _parent, _attrs) => {
|
|
90
|
+
const _component_MilestoneItem = __nuxt_component_0;
|
|
91
|
+
const _component_NuxtLink = __nuxt_component_0$1;
|
|
92
|
+
_push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-6xl mx-auto" }, _attrs))}><div class="mb-8"><h1 class="text-3xl font-bold mb-2">Welcome to edukaAI 👋</h1><p class="text-gray-600">Learn LLM fine-tuning by building your own training dataset.</p></div><div class="card mb-8"><div class="flex items-center justify-between mb-6"><div><h2 class="text-2xl font-bold mb-1">🎯 Goal: First Fine-Tuning</h2><p class="text-gray-600">Build a dataset of 1000 high-quality training examples</p></div><div class="text-right"><div class="text-4xl font-bold text-blue-600">${ssrInterpolate(stats.value.progress?.current || 0)}</div><div class="text-gray-500">/ 1000 examples</div></div></div><div class="mb-6"><div class="w-full bg-gray-200 rounded-full h-6"><div class="bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 h-6 rounded-full transition-all duration-700 flex items-center justify-end pr-2" style="${ssrRenderStyle({ width: `${Math.min(progressPercentage.value, 100)}%` })}">`);
|
|
93
|
+
if (progressPercentage.value > 10) {
|
|
94
|
+
_push(`<span class="text-white text-sm font-medium">${ssrInterpolate(progressPercentage.value)}%</span>`);
|
|
95
|
+
} else {
|
|
96
|
+
_push(`<!---->`);
|
|
97
|
+
}
|
|
98
|
+
_push(`</div></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-4"><div class="bg-blue-50 rounded-lg p-4"><div class="text-2xl font-bold text-blue-600">${ssrInterpolate(stats.value.total)}</div><div class="text-sm text-gray-600">Total Examples</div></div><div class="bg-green-50 rounded-lg p-4"><div class="text-2xl font-bold text-green-600">${ssrInterpolate(stats.value.approved)}</div><div class="text-sm text-gray-600">Approved</div></div><div class="bg-yellow-50 rounded-lg p-4"><div class="text-2xl font-bold text-yellow-600">${ssrInterpolate(stats.value.draft)}</div><div class="text-sm text-gray-600">Drafts</div></div><div class="bg-purple-50 rounded-lg p-4"><div class="text-2xl font-bold text-purple-600">${ssrInterpolate(stats.value.rejected || 0)}</div><div class="text-sm text-gray-600">Rejected</div></div></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8"><div class="card"><h3 class="text-lg font-semibold mb-4">🏆 Milestones</h3><div class="space-y-3">`);
|
|
99
|
+
_push(ssrRenderComponent(_component_MilestoneItem, {
|
|
100
|
+
achieved: stats.value.total >= 10,
|
|
101
|
+
count: "10",
|
|
102
|
+
label: "First Steps!",
|
|
103
|
+
current: Math.min(stats.value.total, 10)
|
|
104
|
+
}, null, _parent));
|
|
105
|
+
_push(ssrRenderComponent(_component_MilestoneItem, {
|
|
106
|
+
achieved: stats.value.total >= 50,
|
|
107
|
+
count: "50",
|
|
108
|
+
label: "Getting Started",
|
|
109
|
+
current: Math.max(0, Math.min(stats.value.total - 10, 40))
|
|
110
|
+
}, null, _parent));
|
|
111
|
+
_push(ssrRenderComponent(_component_MilestoneItem, {
|
|
112
|
+
achieved: stats.value.total >= 250,
|
|
113
|
+
count: "250",
|
|
114
|
+
label: "Quarter Way!",
|
|
115
|
+
current: Math.max(0, Math.min(stats.value.total - 50, 200))
|
|
116
|
+
}, null, _parent));
|
|
117
|
+
_push(ssrRenderComponent(_component_MilestoneItem, {
|
|
118
|
+
achieved: stats.value.total >= 500,
|
|
119
|
+
count: "500",
|
|
120
|
+
label: "Halfway There!",
|
|
121
|
+
current: Math.max(0, Math.min(stats.value.total - 250, 250))
|
|
122
|
+
}, null, _parent));
|
|
123
|
+
_push(ssrRenderComponent(_component_MilestoneItem, {
|
|
124
|
+
achieved: stats.value.total >= 750,
|
|
125
|
+
count: "750",
|
|
126
|
+
label: "Almost Ready!",
|
|
127
|
+
current: Math.max(0, Math.min(stats.value.total - 500, 250))
|
|
128
|
+
}, null, _parent));
|
|
129
|
+
_push(ssrRenderComponent(_component_MilestoneItem, {
|
|
130
|
+
achieved: stats.value.total >= 1e3,
|
|
131
|
+
count: "1000",
|
|
132
|
+
label: "Ready to Train! 🎉",
|
|
133
|
+
current: Math.max(0, Math.min(stats.value.total - 750, 250))
|
|
134
|
+
}, null, _parent));
|
|
135
|
+
_push(`</div></div><div class="card"><h3 class="text-lg font-semibold mb-4">⚡ Quick Actions</h3><div class="space-y-3">`);
|
|
136
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
137
|
+
to: "/examples/new",
|
|
138
|
+
class: "flex items-center gap-3 p-3 bg-blue-50 hover:bg-blue-100 rounded-lg transition-colors"
|
|
139
|
+
}, {
|
|
140
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
141
|
+
if (_push2) {
|
|
142
|
+
_push2(`<span class="text-2xl"${_scopeId}>➕</span><div${_scopeId}><div class="font-medium"${_scopeId}>Create New Example</div><div class="text-sm text-gray-600"${_scopeId}>Add a training example manually</div></div>`);
|
|
143
|
+
} else {
|
|
144
|
+
return [
|
|
145
|
+
createVNode("span", { class: "text-2xl" }, "➕"),
|
|
146
|
+
createVNode("div", null, [
|
|
147
|
+
createVNode("div", { class: "font-medium" }, "Create New Example"),
|
|
148
|
+
createVNode("div", { class: "text-sm text-gray-600" }, "Add a training example manually")
|
|
149
|
+
])
|
|
150
|
+
];
|
|
151
|
+
}
|
|
152
|
+
}),
|
|
153
|
+
_: 1
|
|
154
|
+
}, _parent));
|
|
155
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
156
|
+
to: "/import",
|
|
157
|
+
class: "flex items-center gap-3 p-3 bg-purple-50 hover:bg-purple-100 rounded-lg transition-colors"
|
|
158
|
+
}, {
|
|
159
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
160
|
+
if (_push2) {
|
|
161
|
+
_push2(`<span class="text-2xl"${_scopeId}>📥</span><div${_scopeId}><div class="font-medium"${_scopeId}>Import from AI Assistants</div><div class="text-sm text-gray-600"${_scopeId}>Import from Claude, Cursor, or OpenCode</div></div>`);
|
|
162
|
+
} else {
|
|
163
|
+
return [
|
|
164
|
+
createVNode("span", { class: "text-2xl" }, "📥"),
|
|
165
|
+
createVNode("div", null, [
|
|
166
|
+
createVNode("div", { class: "font-medium" }, "Import from AI Assistants"),
|
|
167
|
+
createVNode("div", { class: "text-sm text-gray-600" }, "Import from Claude, Cursor, or OpenCode")
|
|
168
|
+
])
|
|
169
|
+
];
|
|
170
|
+
}
|
|
171
|
+
}),
|
|
172
|
+
_: 1
|
|
173
|
+
}, _parent));
|
|
174
|
+
_push(ssrRenderComponent(_component_NuxtLink, {
|
|
175
|
+
to: "/export",
|
|
176
|
+
class: "flex items-center gap-3 p-3 bg-green-50 hover:bg-green-100 rounded-lg transition-colors"
|
|
177
|
+
}, {
|
|
178
|
+
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
|
179
|
+
if (_push2) {
|
|
180
|
+
_push2(`<span class="text-2xl"${_scopeId}>📤</span><div${_scopeId}><div class="font-medium"${_scopeId}>Export to HuggingFace</div><div class="text-sm text-gray-600"${_scopeId}>Upload your dataset for training</div></div>`);
|
|
181
|
+
} else {
|
|
182
|
+
return [
|
|
183
|
+
createVNode("span", { class: "text-2xl" }, "📤"),
|
|
184
|
+
createVNode("div", null, [
|
|
185
|
+
createVNode("div", { class: "font-medium" }, "Export to HuggingFace"),
|
|
186
|
+
createVNode("div", { class: "text-sm text-gray-600" }, "Upload your dataset for training")
|
|
187
|
+
])
|
|
188
|
+
];
|
|
189
|
+
}
|
|
190
|
+
}),
|
|
191
|
+
_: 1
|
|
192
|
+
}, _parent));
|
|
193
|
+
_push(`</div></div></div><div class="grid grid-cols-1 md:grid-cols-3 gap-6"><div class="card"><h3 class="text-lg font-semibold mb-4">📊 By Source</h3><div class="space-y-2"><!--[-->`);
|
|
194
|
+
ssrRenderList(stats.value.sources, (count, source) => {
|
|
195
|
+
_push(`<div class="flex justify-between items-center"><span class="capitalize">${ssrInterpolate(formatSource(source))}</span><span class="font-medium">${ssrInterpolate(count)}</span></div>`);
|
|
196
|
+
});
|
|
197
|
+
_push(`<!--]-->`);
|
|
198
|
+
if (!stats.value.sources || Object.keys(stats.value.sources).length === 0) {
|
|
199
|
+
_push(`<div class="text-gray-500 text-center py-4"> No data yet </div>`);
|
|
200
|
+
} else {
|
|
201
|
+
_push(`<!---->`);
|
|
202
|
+
}
|
|
203
|
+
_push(`</div></div><div class="card"><h3 class="text-lg font-semibold mb-4">📋 By Category</h3><div class="space-y-2"><!--[-->`);
|
|
204
|
+
ssrRenderList(stats.value.categories, (count, category) => {
|
|
205
|
+
_push(`<div class="flex justify-between items-center"><span class="capitalize">${ssrInterpolate(category)}</span><span class="font-medium">${ssrInterpolate(count)}</span></div>`);
|
|
206
|
+
});
|
|
207
|
+
_push(`<!--]-->`);
|
|
208
|
+
if (!stats.value.categories || Object.keys(stats.value.categories).length === 0) {
|
|
209
|
+
_push(`<div class="text-gray-500 text-center py-4"> No data yet </div>`);
|
|
210
|
+
} else {
|
|
211
|
+
_push(`<!---->`);
|
|
212
|
+
}
|
|
213
|
+
_push(`</div></div><div class="card"><h3 class="text-lg font-semibold mb-4">📈 By Difficulty</h3><div class="space-y-2"><!--[-->`);
|
|
214
|
+
ssrRenderList(stats.value.difficulties, (count, difficulty) => {
|
|
215
|
+
_push(`<div class="flex justify-between items-center"><span class="capitalize">${ssrInterpolate(difficulty)}</span><span class="font-medium">${ssrInterpolate(count)}</span></div>`);
|
|
216
|
+
});
|
|
217
|
+
_push(`<!--]-->`);
|
|
218
|
+
if (!stats.value.difficulties || Object.keys(stats.value.difficulties).length === 0) {
|
|
219
|
+
_push(`<div class="text-gray-500 text-center py-4"> No data yet </div>`);
|
|
220
|
+
} else {
|
|
221
|
+
_push(`<!---->`);
|
|
222
|
+
}
|
|
223
|
+
_push(`</div></div></div></div>`);
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
const _sfc_setup = _sfc_main.setup;
|
|
228
|
+
_sfc_main.setup = (props, ctx) => {
|
|
229
|
+
const ssrContext = useSSRContext();
|
|
230
|
+
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/index.vue");
|
|
231
|
+
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export { _sfc_main as default };
|
|
235
|
+
//# sourceMappingURL=index-C1ntBEWd.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-C1ntBEWd.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/index-C1ntBEWd.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
|