@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.
Files changed (306) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/_nuxt/BHDzAs85.js +1 -0
  3. package/.output/public/_nuxt/BJzbfdL_.js +1 -0
  4. package/.output/public/_nuxt/BKGLlKXk.js +6 -0
  5. package/.output/public/_nuxt/BLuXzJk3.js +1 -0
  6. package/.output/public/_nuxt/BNOzzLI3.js +1 -0
  7. package/.output/public/_nuxt/BO5GMwXh.js +1 -0
  8. package/.output/public/_nuxt/BQRbsFGy.js +1 -0
  9. package/.output/public/_nuxt/Be4MVdOg.js +1 -0
  10. package/.output/public/_nuxt/Bu4d3Z1T.js +1 -0
  11. package/.output/public/_nuxt/BwpBBNv4.js +1 -0
  12. package/.output/public/_nuxt/C1Og9-6n.js +97 -0
  13. package/.output/public/_nuxt/C3CjAhtj.js +1 -0
  14. package/.output/public/_nuxt/C6E3Ty3z.js +1 -0
  15. package/.output/public/_nuxt/COct4B42.js +1 -0
  16. package/.output/public/_nuxt/CQ6g2dtj.js +1 -0
  17. package/.output/public/_nuxt/CURSW5TV.js +246 -0
  18. package/.output/public/_nuxt/CW57JW4s.js +1 -0
  19. package/.output/public/_nuxt/Cg2fM61o.js +18 -0
  20. package/.output/public/_nuxt/CgGOeWta.js +1 -0
  21. package/.output/public/_nuxt/CoyYbT7u.js +1 -0
  22. package/.output/public/_nuxt/D11MHbGc.js +133 -0
  23. package/.output/public/_nuxt/D24dz0S8.js +1 -0
  24. package/.output/public/_nuxt/D3EFPr8x.js +1 -0
  25. package/.output/public/_nuxt/Dvt4ZHil.js +1 -0
  26. package/.output/public/_nuxt/builds/latest.json +1 -0
  27. package/.output/public/_nuxt/builds/meta/ab87ba0e-6d0d-4466-8b12-00d44f8fb9d3.json +1 -0
  28. package/.output/public/_nuxt/default.C1K1-g4D.css +1 -0
  29. package/.output/public/_nuxt/entry.CH8k-Mga.css +1 -0
  30. package/.output/public/_nuxt/error-404.C-Ezrlz-.css +1 -0
  31. package/.output/public/_nuxt/error-500.DBWf9FGj.css +1 -0
  32. package/.output/public/_nuxt/first-training.wFDD65zm.css +1 -0
  33. package/.output/public/_nuxt/import.cUKYdCrq.css +1 -0
  34. package/.output/public/_nuxt/index.D-2VHyHA.css +1 -0
  35. package/.output/public/_nuxt/index.D4J_vHmL.css +1 -0
  36. package/.output/public/_nuxt/mPJeLIz7.js +1 -0
  37. package/.output/server/chunks/_/error-500.mjs +19 -0
  38. package/.output/server/chunks/_/error-500.mjs.map +1 -0
  39. package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs +8 -0
  40. package/.output/server/chunks/build/ExampleCard-styles.BUOJhEg0.mjs.map +1 -0
  41. package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs +238 -0
  42. package/.output/server/chunks/build/ExampleForm-Bcpl0CfL.mjs.map +1 -0
  43. package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs +8 -0
  44. package/.output/server/chunks/build/ImportPreview-styles.CFmMl5Ok.mjs.map +1 -0
  45. package/.output/server/chunks/build/_id_-BUSGcL-H.mjs +113 -0
  46. package/.output/server/chunks/build/_id_-BUSGcL-H.mjs.map +1 -0
  47. package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs +112 -0
  48. package/.output/server/chunks/build/axolotl-C-EXGgM8.mjs.map +1 -0
  49. package/.output/server/chunks/build/best-practices-DsadorHb.mjs +38 -0
  50. package/.output/server/chunks/build/best-practices-DsadorHb.mjs.map +1 -0
  51. package/.output/server/chunks/build/client.precomputed.mjs +4 -0
  52. package/.output/server/chunks/build/client.precomputed.mjs.map +1 -0
  53. package/.output/server/chunks/build/default-DPkqqHOE.mjs +354 -0
  54. package/.output/server/chunks/build/default-DPkqqHOE.mjs.map +1 -0
  55. package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs +8 -0
  56. package/.output/server/chunks/build/default-styles.DsqVVS7k.mjs.map +1 -0
  57. package/.output/server/chunks/build/error-404-K4UfZNck.mjs +97 -0
  58. package/.output/server/chunks/build/error-404-K4UfZNck.mjs.map +1 -0
  59. package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs +8 -0
  60. package/.output/server/chunks/build/error-404-styles.DuDrf-v0.mjs.map +1 -0
  61. package/.output/server/chunks/build/error-500-CA7TEPNg.mjs +79 -0
  62. package/.output/server/chunks/build/error-500-CA7TEPNg.mjs.map +1 -0
  63. package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs +8 -0
  64. package/.output/server/chunks/build/error-500-styles.8IYEHzz6.mjs.map +1 -0
  65. package/.output/server/chunks/build/examples-BHK8MDrs.mjs +134 -0
  66. package/.output/server/chunks/build/examples-BHK8MDrs.mjs.map +1 -0
  67. package/.output/server/chunks/build/export-BzxFqqfP.mjs +233 -0
  68. package/.output/server/chunks/build/export-BzxFqqfP.mjs.map +1 -0
  69. package/.output/server/chunks/build/faq-DKch73dS.mjs +112 -0
  70. package/.output/server/chunks/build/faq-DKch73dS.mjs.map +1 -0
  71. package/.output/server/chunks/build/field-guide-qbukT8F0.mjs +38 -0
  72. package/.output/server/chunks/build/field-guide-qbukT8F0.mjs.map +1 -0
  73. package/.output/server/chunks/build/first-training-BbEOBcEW.mjs +343 -0
  74. package/.output/server/chunks/build/first-training-BbEOBcEW.mjs.map +1 -0
  75. package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs +8 -0
  76. package/.output/server/chunks/build/first-training-styles.BzOa_KRD.mjs.map +1 -0
  77. package/.output/server/chunks/build/glossary-CxSGCJoH.mjs +397 -0
  78. package/.output/server/chunks/build/glossary-CxSGCJoH.mjs.map +1 -0
  79. package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs +128 -0
  80. package/.output/server/chunks/build/huggingface-TSmyUzZU.mjs.map +1 -0
  81. package/.output/server/chunks/build/import-C0kYhRv9.mjs +247 -0
  82. package/.output/server/chunks/build/import-C0kYhRv9.mjs.map +1 -0
  83. package/.output/server/chunks/build/index-C1ntBEWd.mjs +235 -0
  84. package/.output/server/chunks/build/index-C1ntBEWd.mjs.map +1 -0
  85. package/.output/server/chunks/build/index-D3CxihcX.mjs +320 -0
  86. package/.output/server/chunks/build/index-D3CxihcX.mjs.map +1 -0
  87. package/.output/server/chunks/build/index-DgKa1cy0.mjs +360 -0
  88. package/.output/server/chunks/build/index-DgKa1cy0.mjs.map +1 -0
  89. package/.output/server/chunks/build/index-cG54gaKX.mjs +513 -0
  90. package/.output/server/chunks/build/index-cG54gaKX.mjs.map +1 -0
  91. package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs +8 -0
  92. package/.output/server/chunks/build/index-styles.BX2SZiiS.mjs.map +1 -0
  93. package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs +91 -0
  94. package/.output/server/chunks/build/llm-training-DIqc0eiM.mjs.map +1 -0
  95. package/.output/server/chunks/build/new-b3338aLF.mjs +92 -0
  96. package/.output/server/chunks/build/new-b3338aLF.mjs.map +1 -0
  97. package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs +290 -0
  98. package/.output/server/chunks/build/nuxt-link-Ceyd90PQ.mjs.map +1 -0
  99. package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs +45 -0
  100. package/.output/server/chunks/build/sample-datasets-CVLWMQUA.mjs.map +1 -0
  101. package/.output/server/chunks/build/server.mjs +1979 -0
  102. package/.output/server/chunks/build/server.mjs.map +1 -0
  103. package/.output/server/chunks/build/styles.mjs +20 -0
  104. package/.output/server/chunks/build/styles.mjs.map +1 -0
  105. package/.output/server/chunks/build/test-router-BYM6Cpst.mjs +105 -0
  106. package/.output/server/chunks/build/test-router-BYM6Cpst.mjs.map +1 -0
  107. package/.output/server/chunks/nitro/nitro.mjs +5800 -0
  108. package/.output/server/chunks/nitro/nitro.mjs.map +1 -0
  109. package/.output/server/chunks/routes/renderer.mjs +481 -0
  110. package/.output/server/chunks/routes/renderer.mjs.map +1 -0
  111. package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
  112. package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
  113. package/.output/server/index.mjs +12 -0
  114. package/.output/server/index.mjs.map +1 -0
  115. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/api.js +2 -0
  116. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/app.js +2 -0
  117. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/component.js +2 -0
  118. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/context.js +2 -0
  119. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/hooks.js +2 -0
  120. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/index.js +22 -0
  121. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/util.js +2 -0
  122. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/const.js +5 -0
  123. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/env.js +17 -0
  124. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/index.js +45 -0
  125. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/plugin.js +2 -0
  126. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/proxy.js +111 -0
  127. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/time.js +28 -0
  128. package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/package.json +37 -0
  129. package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/dist/index.cjs +42 -0
  130. package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.9/package.json +32 -0
  131. package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.cjs +299 -0
  132. package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
  133. package/.output/server/node_modules/.nitro/hookable@6.0.1/dist/index.mjs +266 -0
  134. package/.output/server/node_modules/.nitro/hookable@6.0.1/package.json +52 -0
  135. package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/dist/index.cjs +59 -0
  136. package/.output/server/node_modules/.nitro/perfect-debounce@1.0.0/package.json +44 -0
  137. package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/dist/index.mjs +89 -0
  138. package/.output/server/node_modules/.nitro/perfect-debounce@2.1.0/package.json +41 -0
  139. package/.output/server/node_modules/@babel/parser/lib/index.js +14582 -0
  140. package/.output/server/node_modules/@babel/parser/package.json +50 -0
  141. package/.output/server/node_modules/@iconify/utils/lib/colors/index.js +292 -0
  142. package/.output/server/node_modules/@iconify/utils/lib/colors/keywords.js +702 -0
  143. package/.output/server/node_modules/@iconify/utils/lib/css/common.js +76 -0
  144. package/.output/server/node_modules/@iconify/utils/lib/css/format.js +40 -0
  145. package/.output/server/node_modules/@iconify/utils/lib/css/icon.js +52 -0
  146. package/.output/server/node_modules/@iconify/utils/lib/css/icons.js +133 -0
  147. package/.output/server/node_modules/@iconify/utils/lib/customisations/bool.js +20 -0
  148. package/.output/server/node_modules/@iconify/utils/lib/customisations/defaults.js +15 -0
  149. package/.output/server/node_modules/@iconify/utils/lib/customisations/flip.js +18 -0
  150. package/.output/server/node_modules/@iconify/utils/lib/customisations/merge.js +18 -0
  151. package/.output/server/node_modules/@iconify/utils/lib/customisations/rotate.js +31 -0
  152. package/.output/server/node_modules/@iconify/utils/lib/emoji/cleanup.js +80 -0
  153. package/.output/server/node_modules/@iconify/utils/lib/emoji/convert.js +102 -0
  154. package/.output/server/node_modules/@iconify/utils/lib/emoji/data.js +29 -0
  155. package/.output/server/node_modules/@iconify/utils/lib/emoji/format.js +60 -0
  156. package/.output/server/node_modules/@iconify/utils/lib/emoji/parse.js +50 -0
  157. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/base.js +204 -0
  158. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/create.js +35 -0
  159. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/numbers.js +134 -0
  160. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/similar.js +167 -0
  161. package/.output/server/node_modules/@iconify/utils/lib/emoji/regex/tree.js +81 -0
  162. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/find.js +94 -0
  163. package/.output/server/node_modules/@iconify/utils/lib/emoji/replace/replace.js +28 -0
  164. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/components.js +78 -0
  165. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/missing.js +68 -0
  166. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/name.js +47 -0
  167. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/parse.js +105 -0
  168. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/similar.js +38 -0
  169. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/tree.js +94 -0
  170. package/.output/server/node_modules/@iconify/utils/lib/emoji/test/variations.js +64 -0
  171. package/.output/server/node_modules/@iconify/utils/lib/icon/defaults.js +26 -0
  172. package/.output/server/node_modules/@iconify/utils/lib/icon/merge.js +18 -0
  173. package/.output/server/node_modules/@iconify/utils/lib/icon/name.js +58 -0
  174. package/.output/server/node_modules/@iconify/utils/lib/icon/square.js +34 -0
  175. package/.output/server/node_modules/@iconify/utils/lib/icon/transformations.js +13 -0
  176. package/.output/server/node_modules/@iconify/utils/lib/icon-set/convert-info.js +126 -0
  177. package/.output/server/node_modules/@iconify/utils/lib/icon-set/expand.js +21 -0
  178. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icon.js +27 -0
  179. package/.output/server/node_modules/@iconify/utils/lib/icon-set/get-icons.js +38 -0
  180. package/.output/server/node_modules/@iconify/utils/lib/icon-set/minify.js +93 -0
  181. package/.output/server/node_modules/@iconify/utils/lib/icon-set/parse.js +48 -0
  182. package/.output/server/node_modules/@iconify/utils/lib/icon-set/tree.js +24 -0
  183. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate-basic.js +44 -0
  184. package/.output/server/node_modules/@iconify/utils/lib/icon-set/validate.js +125 -0
  185. package/.output/server/node_modules/@iconify/utils/lib/index.js +53 -0
  186. package/.output/server/node_modules/@iconify/utils/lib/loader/custom.js +32 -0
  187. package/.output/server/node_modules/@iconify/utils/lib/loader/loader.js +28 -0
  188. package/.output/server/node_modules/@iconify/utils/lib/loader/modern.js +42 -0
  189. package/.output/server/node_modules/@iconify/utils/lib/loader/utils.js +63 -0
  190. package/.output/server/node_modules/@iconify/utils/lib/misc/objects.js +27 -0
  191. package/.output/server/node_modules/@iconify/utils/lib/misc/strings.js +27 -0
  192. package/.output/server/node_modules/@iconify/utils/lib/misc/title.js +10 -0
  193. package/.output/server/node_modules/@iconify/utils/lib/svg/build.js +115 -0
  194. package/.output/server/node_modules/@iconify/utils/lib/svg/defs.js +32 -0
  195. package/.output/server/node_modules/@iconify/utils/lib/svg/encode-svg-for-css.js +15 -0
  196. package/.output/server/node_modules/@iconify/utils/lib/svg/html.js +10 -0
  197. package/.output/server/node_modules/@iconify/utils/lib/svg/id.js +42 -0
  198. package/.output/server/node_modules/@iconify/utils/lib/svg/inner-html.js +23 -0
  199. package/.output/server/node_modules/@iconify/utils/lib/svg/parse.js +69 -0
  200. package/.output/server/node_modules/@iconify/utils/lib/svg/pretty.js +55 -0
  201. package/.output/server/node_modules/@iconify/utils/lib/svg/size.js +28 -0
  202. package/.output/server/node_modules/@iconify/utils/lib/svg/trim.js +8 -0
  203. package/.output/server/node_modules/@iconify/utils/lib/svg/url.js +23 -0
  204. package/.output/server/node_modules/@iconify/utils/lib/svg/viewbox.js +9 -0
  205. package/.output/server/node_modules/@iconify/utils/package.json +118 -0
  206. package/.output/server/node_modules/@iconify/vue/dist/iconify.mjs +1893 -0
  207. package/.output/server/node_modules/@iconify/vue/package.json +64 -0
  208. package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6763 -0
  209. package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
  210. package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +689 -0
  211. package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
  212. package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1413 -0
  213. package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
  214. package/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs +6850 -0
  215. package/.output/server/node_modules/@vue/devtools-kit/package.json +44 -0
  216. package/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs +378 -0
  217. package/.output/server/node_modules/@vue/devtools-shared/package.json +34 -0
  218. package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1870 -0
  219. package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
  220. package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6810 -0
  221. package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
  222. package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1750 -0
  223. package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
  224. package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +883 -0
  225. package/.output/server/node_modules/@vue/server-renderer/package.json +55 -0
  226. package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +604 -0
  227. package/.output/server/node_modules/@vue/shared/package.json +47 -0
  228. package/.output/server/node_modules/birpc/dist/index.cjs +296 -0
  229. package/.output/server/node_modules/birpc/package.json +57 -0
  230. package/.output/server/node_modules/consola/dist/chunks/prompt.mjs +280 -0
  231. package/.output/server/node_modules/consola/dist/core.mjs +512 -0
  232. package/.output/server/node_modules/consola/dist/index.mjs +651 -0
  233. package/.output/server/node_modules/consola/dist/shared/consola.DRwqZj3T.mjs +72 -0
  234. package/.output/server/node_modules/consola/dist/shared/consola.DXBYu-KD.mjs +288 -0
  235. package/.output/server/node_modules/consola/package.json +136 -0
  236. package/.output/server/node_modules/devalue/index.js +4 -0
  237. package/.output/server/node_modules/devalue/package.json +37 -0
  238. package/.output/server/node_modules/devalue/src/base64.js +110 -0
  239. package/.output/server/node_modules/devalue/src/constants.js +7 -0
  240. package/.output/server/node_modules/devalue/src/parse.js +246 -0
  241. package/.output/server/node_modules/devalue/src/stringify.js +350 -0
  242. package/.output/server/node_modules/devalue/src/uneval.js +490 -0
  243. package/.output/server/node_modules/devalue/src/utils.js +148 -0
  244. package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
  245. package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
  246. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
  247. package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
  248. package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
  249. package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
  250. package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
  251. package/.output/server/node_modules/entities/package.json +120 -0
  252. package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
  253. package/.output/server/node_modules/estree-walker/package.json +37 -0
  254. package/.output/server/node_modules/pinia/dist/pinia.prod.cjs +719 -0
  255. package/.output/server/node_modules/pinia/package.json +94 -0
  256. package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
  257. package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
  258. package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
  259. package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
  260. package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
  261. package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
  262. package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
  263. package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
  264. package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
  265. package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
  266. package/.output/server/node_modules/source-map-js/package.json +71 -0
  267. package/.output/server/node_modules/source-map-js/source-map.js +8 -0
  268. package/.output/server/node_modules/tailwindcss/dist/chunk-X4GG3EDV.mjs +1 -0
  269. package/.output/server/node_modules/tailwindcss/dist/colors.mjs +1 -0
  270. package/.output/server/node_modules/tailwindcss/package.json +89 -0
  271. package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
  272. package/.output/server/node_modules/ufo/package.json +48 -0
  273. package/.output/server/node_modules/unhead/dist/index.mjs +9 -0
  274. package/.output/server/node_modules/unhead/dist/parser.mjs +508 -0
  275. package/.output/server/node_modules/unhead/dist/plugins.mjs +101 -0
  276. package/.output/server/node_modules/unhead/dist/scripts.mjs +30 -0
  277. package/.output/server/node_modules/unhead/dist/server.mjs +180 -0
  278. package/.output/server/node_modules/unhead/dist/shared/unhead.BPM0-cfG.mjs +44 -0
  279. package/.output/server/node_modules/unhead/dist/shared/unhead.BYvz9V1x.mjs +43 -0
  280. package/.output/server/node_modules/unhead/dist/shared/unhead.BnoAbrHA.mjs +269 -0
  281. package/.output/server/node_modules/unhead/dist/shared/unhead.CApf5sj3.mjs +148 -0
  282. package/.output/server/node_modules/unhead/dist/shared/unhead.CbpEuj3y.mjs +71 -0
  283. package/.output/server/node_modules/unhead/dist/shared/unhead.DQc16pHI.mjs +196 -0
  284. package/.output/server/node_modules/unhead/dist/shared/unhead.D_nrZZPH.mjs +182 -0
  285. package/.output/server/node_modules/unhead/dist/shared/unhead.ckV6dpEQ.mjs +166 -0
  286. package/.output/server/node_modules/unhead/dist/shared/unhead.fVVqDC1O.mjs +203 -0
  287. package/.output/server/node_modules/unhead/dist/shared/unhead.yem5I2v_.mjs +38 -0
  288. package/.output/server/node_modules/unhead/dist/utils.mjs +5 -0
  289. package/.output/server/node_modules/unhead/package.json +105 -0
  290. package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
  291. package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
  292. package/.output/server/node_modules/vue/index.js +7 -0
  293. package/.output/server/node_modules/vue/index.mjs +1 -0
  294. package/.output/server/node_modules/vue/package.json +112 -0
  295. package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
  296. package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +301 -0
  297. package/.output/server/node_modules/vue-bundle-renderer/package.json +55 -0
  298. package/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
  299. package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
  300. package/.output/server/node_modules/vue-router/package.json +153 -0
  301. package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
  302. package/.output/server/package.json +37 -0
  303. package/LICENSE +21 -0
  304. package/README.md +132 -0
  305. package/bin/cli.js +75 -0
  306. package/package.json +71 -0
@@ -0,0 +1,8 @@
1
+ const error500_vue_vue_type_style_index_0_scoped_d349100d_lang = ".grid[data-v-d349100d]{display:grid}.mb-2[data-v-d349100d]{margin-bottom:.5rem}.mb-4[data-v-d349100d]{margin-bottom:1rem}.max-w-520px[data-v-d349100d]{max-width:520px}.min-h-screen[data-v-d349100d]{min-height:100vh}.place-content-center[data-v-d349100d]{place-content:center}.overflow-hidden[data-v-d349100d]{overflow:hidden}.bg-white[data-v-d349100d]{--un-bg-opacity:1;background-color:rgb(255 255 255/var(--un-bg-opacity))}.px-2[data-v-d349100d]{padding-left:.5rem;padding-right:.5rem}.text-center[data-v-d349100d]{text-align:center}.text-\\[80px\\][data-v-d349100d]{font-size:80px}.text-2xl[data-v-d349100d]{font-size:1.5rem;line-height:2rem}.text-\\[\\#020420\\][data-v-d349100d]{--un-text-opacity:1;color:rgb(2 4 32/var(--un-text-opacity))}.text-\\[\\#64748B\\][data-v-d349100d]{--un-text-opacity:1;color:rgb(100 116 139/var(--un-text-opacity))}.font-semibold[data-v-d349100d]{font-weight:600}.leading-none[data-v-d349100d]{line-height:1}.tracking-wide[data-v-d349100d]{letter-spacing:.025em}.font-sans[data-v-d349100d]{font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.tabular-nums[data-v-d349100d]{--un-numeric-spacing:tabular-nums;font-variant-numeric:var(--un-ordinal) var(--un-slashed-zero) var(--un-numeric-figure) var(--un-numeric-spacing) var(--un-numeric-fraction)}.antialiased[data-v-d349100d]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){.dark\\:bg-\\[\\#020420\\][data-v-d349100d]{--un-bg-opacity:1;background-color:rgb(2 4 32/var(--un-bg-opacity))}.dark\\:text-white[data-v-d349100d]{--un-text-opacity:1;color:rgb(255 255 255/var(--un-text-opacity))}}@media(min-width:640px){.sm\\:text-\\[110px\\][data-v-d349100d]{font-size:110px}.sm\\:text-3xl[data-v-d349100d]{font-size:1.875rem;line-height:2.25rem}}";
2
+
3
+ const error500Styles_8IYEHzz6 = [
4
+ error500_vue_vue_type_style_index_0_scoped_d349100d_lang
5
+ ];
6
+
7
+ export { error500Styles_8IYEHzz6 as default };
8
+ //# sourceMappingURL=error-500-styles.8IYEHzz6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-500-styles.8IYEHzz6.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles-1.mjs-DOrS-RIZ.js","../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/error-500-styles.8IYEHzz6.mjs"],"names":["style_0"],"mappings":"","x_google_ignoreList":[0,1]}
@@ -0,0 +1,134 @@
1
+ import { mergeProps, useSSRContext } from 'vue';
2
+ import { ssrRenderAttrs } from 'vue/server-renderer';
3
+ import { _ as _export_sfc } from './server.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 'pinia';
16
+ import 'vue-router';
17
+ import 'tailwindcss/colors';
18
+ import '@iconify/vue';
19
+ import '../routes/renderer.mjs';
20
+ import 'vue-bundle-renderer/runtime';
21
+ import 'unhead/server';
22
+ import 'devalue';
23
+ import 'unhead/utils';
24
+
25
+ const _sfc_main = {};
26
+ function _sfc_ssrRender(_ctx, _push, _parent, _attrs) {
27
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-5xl mx-auto" }, _attrs))}><section id="real-examples" class="mb-12"><div class="flex items-center gap-3 mb-6"><span class="text-3xl">๐Ÿ’ก</span><h2 class="text-2xl font-bold">Real-World Examples</h2></div><p class="text-lg text-gray-600 mb-6"> Study these examples to understand what makes a great training example. Each shows different techniques and best practices. </p><div class="card mb-6"><div class="flex items-center justify-between mb-4"><div class="flex items-center gap-2"><span class="text-2xl">๐Ÿ’ป</span><h3 class="text-xl font-semibold">Example 1: Coding - Error Handling</h3></div><div class="flex gap-2"><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">Coding</span><span class="px-2 py-1 bg-green-100 text-green-700 text-xs rounded">โญโญโญโญโญ</span><span class="px-2 py-1 bg-purple-100 text-purple-700 text-xs rounded">Intermediate</span></div></div><div class="space-y-4"><div class="p-4 bg-blue-50 rounded-lg"><div class="text-sm text-blue-800 font-medium mb-2">๐ŸŽฏ Instruction:</div><p class="text-gray-700"> &quot;I&#39;m getting a &#39;TypeError: Cannot read property &#39;map&#39; of undefined&#39; error in my React component. How do I properly handle this and show a user-friendly error message instead of crashing?&quot; </p></div><div class="p-4 bg-gray-50 rounded-lg"><div class="text-sm text-gray-800 font-medium mb-2">๐Ÿ“Ž Input:</div><pre class="text-sm bg-gray-100 p-2 rounded overflow-x-auto"><code>function UserList({ users }) {
28
+ return (
29
+ &lt;div&gt;
30
+ {users.map(user =&gt; (
31
+ &lt;div key={user.id}&gt;{user.name}&lt;/div&gt;
32
+ ))}
33
+ &lt;/div&gt;
34
+ )
35
+ }</code></pre></div><div class="p-4 bg-green-50 rounded-lg"><div class="text-sm text-green-800 font-medium mb-2">๐Ÿ“ Output:</div><div class="text-gray-700 text-sm space-y-2"><p>This error occurs when <code>users</code> is undefined or null when the component tries to render. Here are several ways to handle this safely:</p><p><strong>Option 1: Default Prop Value (Recommended)</strong></p><pre class="bg-gray-100 p-2 rounded overflow-x-auto"><code>function UserList({ users = [] }) {
36
+ return (
37
+ &lt;div&gt;
38
+ {users.map(user =&gt; (
39
+ &lt;div key={user.id}&gt;{user.name}&lt;/div&gt;
40
+ ))}
41
+ &lt;/div&gt;
42
+ )
43
+ }</code></pre><p><strong>Option 2: Conditional Rendering</strong></p><pre class="bg-gray-100 p-2 rounded overflow-x-auto"><code>function UserList({ users }) {
44
+ if (!users) {
45
+ return &lt;div&gt;Loading users...&lt;/div&gt;
46
+ }
47
+
48
+ if (users.length === 0) {
49
+ return &lt;div&gt;No users found&lt;/div&gt;
50
+ }
51
+
52
+ return (
53
+ &lt;div&gt;
54
+ {users.map(user =&gt; (
55
+ &lt;div key={user.id}&gt;{user.name}&lt;/div&gt;
56
+ ))}
57
+ &lt;/div&gt;
58
+ )
59
+ }</code></pre><p><strong>Option 3: Optional Chaining</strong></p><pre class="bg-gray-100 p-2 rounded overflow-x-auto"><code>function UserList({ users }) {
60
+ return (
61
+ &lt;div&gt;
62
+ {users?.map(user =&gt; (
63
+ &lt;div key={user.id}&gt;{user.name}&lt;/div&gt;
64
+ )) ?? &lt;p&gt;No users available&lt;/p&gt;}
65
+ &lt;/div&gt;
66
+ )
67
+ }</code></pre><p><strong>Why this happens:</strong> The component receives props before the data is loaded, or the API call fails. Always assume data might be undefined and handle it gracefully.</p><p><strong>Best Practice:</strong> Combine default props with loading states and empty states for the best user experience.</p></div></div><div class="p-3 bg-purple-50 rounded-lg text-sm"><strong>๐Ÿท๏ธ Tags:</strong><span class="inline-block bg-white px-2 py-0.5 rounded ml-2 mr-1">javascript</span><span class="inline-block bg-white px-2 py-0.5 rounded mr-1">react</span><span class="inline-block bg-white px-2 py-0.5 rounded mr-1">error-handling</span><span class="inline-block bg-white px-2 py-0.5 rounded">debugging</span></div><div class="p-3 bg-yellow-50 rounded-lg text-sm"><strong>๐Ÿ“ Notes:</strong> Great example because it includes: 1) Explanation of why the error happens, 2) Multiple solution approaches, 3) Code examples for each, 4) Best practice guidance. Shows the complete picture. </div></div></div><div class="card mb-6"><div class="flex items-center justify-between mb-4"><div class="flex items-center gap-2"><span class="text-2xl">๐Ÿ“š</span><h3 class="text-xl font-semibold">Example 2: Concept Explanation</h3></div><div class="flex gap-2"><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">Explanation</span><span class="px-2 py-1 bg-green-100 text-green-700 text-xs rounded">โญโญโญโญโญ</span><span class="px-2 py-1 bg-yellow-100 text-yellow-700 text-xs rounded">Beginner</span></div></div><div class="space-y-4"><div class="p-4 bg-blue-50 rounded-lg"><div class="text-sm text-blue-800 font-medium mb-2">๐ŸŽฏ Instruction:</div><p class="text-gray-700"> &quot;I&#39;m new to programming. Can you explain what a &#39;variable&#39; is, why we need them, and show me examples in Python? Use simple language and analogies.&quot; </p></div><div class="p-4 bg-green-50 rounded-lg"><div class="text-sm text-green-800 font-medium mb-2">๐Ÿ“ Output:</div><div class="text-gray-700 text-sm space-y-3"><p>Think of a variable like a labeled box where you can store something. Just like you might have a box labeled &quot;Photos&quot; to store pictures, or &quot;Recipes&quot; for cooking instructions, in programming we use variables to store data we want to use later.</p><p><strong>Why do we need variables?</strong></p><ul class="list-disc list-inside space-y-1"><li>To remember information (like a user&#39;s name)</li><li>To reuse the same value multiple times</li><li>To make our code easier to understand and change</li></ul><p><strong>Real-world analogy:</strong> Imagine you&#39;re planning a party. Instead of saying &quot;We need 8 plates, 8 forks, and 8 napkins for our 8 guests&quot; every time, you could say:</p><pre class="bg-gray-100 p-2 rounded mt-2"><code>guests = 8
68
+ print(f&quot;We need {guests} plates&quot;)
69
+ print(f&quot;We need {guests} forks&quot;)
70
+ print(f&quot;We need {guests} napkins&quot;)</code></pre><p><strong>Examples in Python:</strong></p><pre class="bg-gray-100 p-2 rounded"><code># Storing different types of data
71
+ name = &quot;Alice&quot; # Text (string)
72
+ age = 25 # Number (integer)
73
+ height = 5.6 # Decimal number (float)
74
+ is_student = True # Yes/No value (boolean)
75
+
76
+ # Using variables
77
+ print(f&quot;Hello, {name}!&quot;) # Hello, Alice!
78
+ print(f&quot;You are {age} years old.&quot;) # You are 25 years old.
79
+
80
+ # Changing what&#39;s in the box
81
+ age = 26 # Now the box contains 26 instead of 25
82
+ print(f&quot;Now you are {age}.&quot;) # Now you are 26.</code></pre><p><strong>Important rules:</strong></p><ul class="list-disc list-inside space-y-1"><li>Variable names should describe what they contain (use <code>user_name</code> not <code>x</code>)</li><li>Names can&#39;t start with numbers or contain spaces</li><li>Python is case-sensitive: <code>Name</code> and <code>name</code> are different</li></ul><p><strong>Practice exercise:</strong> Try creating a variable for your favorite color, then print a message that includes it!</p></div></div><div class="p-3 bg-purple-50 rounded-lg text-sm"><strong>๐Ÿท๏ธ Tags:</strong><span class="inline-block bg-white px-2 py-0.5 rounded ml-2 mr-1">python</span><span class="inline-block bg-white px-2 py-0.5 rounded mr-1">basics</span><span class="inline-block bg-white px-2 py-0.5 rounded">beginner-friendly</span></div><div class="p-3 bg-yellow-50 rounded-lg text-sm"><strong>๐Ÿ“ Notes:</strong> Excellent beginner example. Uses relatable analogies (boxes, party planning), explains WHY not just WHAT, includes working code examples, and adds a practice exercise to reinforce learning. </div></div></div><div class="card mb-6"><div class="flex items-center justify-between mb-4"><div class="flex items-center gap-2"><span class="text-2xl">๐Ÿ“Š</span><h3 class="text-xl font-semibold">Example 3: Code Review &amp; Analysis</h3></div><div class="flex gap-2"><span class="px-2 py-1 bg-blue-100 text-blue-700 text-xs rounded">Analysis</span><span class="px-2 py-1 bg-green-100 text-green-700 text-xs rounded">โญโญโญโญโญ</span><span class="px-2 py-1 bg-red-100 text-red-700 text-xs rounded">Advanced</span></div></div><div class="space-y-4"><div class="p-4 bg-blue-50 rounded-lg"><div class="text-sm text-blue-800 font-medium mb-2">๐ŸŽฏ Instruction:</div><p class="text-gray-700"> &quot;Review this API endpoint code for performance issues and security vulnerabilities. What would you change and why?&quot; </p></div><div class="p-4 bg-gray-50 rounded-lg"><div class="text-sm text-gray-800 font-medium mb-2">๐Ÿ“Ž Input:</div><pre class="text-sm bg-gray-100 p-2 rounded overflow-x-auto"><code>app.get(&#39;/api/users/:id&#39;, async (req, res) =&gt; {
83
+ const users = await db.query(&#39;SELECT * FROM users&#39;);
84
+ const user = users.find(u =&gt; u.id === req.params.id);
85
+
86
+ if (user) {
87
+ res.json(user);
88
+ } else {
89
+ res.status(404).send(&#39;Not found&#39;);
90
+ }
91
+ });</code></pre></div><div class="p-4 bg-green-50 rounded-lg"><div class="text-sm text-green-800 font-medium mb-2">๐Ÿ“ Output:</div><div class="text-gray-700 text-sm space-y-3"><p><strong>๐Ÿšจ Critical Issues Found:</strong></p><div class="bg-red-50 p-3 rounded border-l-4 border-red-500"><p class="font-medium text-red-800">1. N+1 Query Problem (Performance)</p><p class="mt-1">Fetching ALL users then filtering in JavaScript is extremely inefficient. With 1M users, you&#39;re loading 1M rows into memory!</p><p class="mt-2 text-green-700"><strong>Fix:</strong></p><pre class="bg-gray-100 p-2 rounded mt-1"><code>const user = await db.query(
92
+ &#39;SELECT * FROM users WHERE id = ?&#39;,
93
+ [req.params.id]
94
+ );</code></pre></div><div class="bg-red-50 p-3 rounded border-l-4 border-red-500"><p class="font-medium text-red-800">2. SQL Injection Vulnerability (Security)</p><p class="mt-1">Directly using <code>req.params.id</code> in queries opens SQL injection attacks.</p><p class="mt-2 text-green-700"><strong>Fix:</strong> Use parameterized queries (shown above) OR an ORM like Prisma/Sequelize.</p></div><div class="bg-yellow-50 p-3 rounded border-l-4 border-yellow-500"><p class="font-medium text-yellow-800">3. Missing Input Validation</p><p class="mt-1">No validation that <code>id</code> is actually a number/string.</p><p class="mt-2 text-green-700"><strong>Fix:</strong></p><pre class="bg-gray-100 p-2 rounded mt-1"><code>const id = parseInt(req.params.id);
95
+ if (isNaN(id)) {
96
+ return res.status(400).json({ error: &#39;Invalid ID format&#39; });
97
+ }</code></pre></div><div class="bg-yellow-50 p-3 rounded border-l-4 border-yellow-500"><p class="font-medium text-yellow-800">4. Error Handling Missing</p><p class="mt-1">Database errors will crash the server with unhandled promise rejections.</p><p class="mt-2 text-green-700"><strong>Fix:</strong> Wrap in try-catch</p><pre class="bg-gray-100 p-2 rounded mt-1"><code>try {
98
+ // database operations
99
+ } catch (error) {
100
+ console.error(&#39;Database error:&#39;, error);
101
+ res.status(500).json({ error: &#39;Internal server error&#39; });
102
+ }</code></pre></div><p><strong>โœ… Improved Version:</strong></p><pre class="bg-gray-100 p-2 rounded"><code>app.get(&#39;/api/users/:id&#39;, async (req, res) =&gt; {
103
+ try {
104
+ const id = parseInt(req.params.id);
105
+ if (isNaN(id)) {
106
+ return res.status(400).json({ error: &#39;Invalid ID format&#39; });
107
+ }
108
+
109
+ const user = await db.query(
110
+ &#39;SELECT id, name, email FROM users WHERE id = ?&#39;,
111
+ [id]
112
+ );
113
+
114
+ if (user.length === 0) {
115
+ return res.status(404).json({ error: &#39;User not found&#39; });
116
+ }
117
+
118
+ res.json(user[0]);
119
+ } catch (error) {
120
+ console.error(&#39;Error fetching user:&#39;, error);
121
+ res.status(500).json({ error: &#39;Internal server error&#39; });
122
+ }
123
+ });</code></pre><p><strong>๐Ÿ“ˆ Performance Impact:</strong></p><ul class="list-disc list-inside space-y-1"><li>Original: O(n) time + O(n) memory (loads all users)</li><li>Improved: O(1) time + O(1) memory (database indexed lookup)</li><li>For 1M users: From ~500ms + 100MB RAM โ†’ ~5ms + minimal RAM</li></ul></div></div><div class="p-3 bg-purple-50 rounded-lg text-sm"><strong>๐Ÿท๏ธ Tags:</strong><span class="inline-block bg-white px-2 py-0.5 rounded ml-2 mr-1">security</span><span class="inline-block bg-white px-2 py-0.5 rounded mr-1">performance</span><span class="inline-block bg-white px-2 py-0.5 rounded mr-1">nodejs</span><span class="inline-block bg-white px-2 py-0.5 rounded">database</span></div></div></div><div class="card"><h3 class="text-lg font-semibold mb-4">๐ŸŽ“ What Makes These Examples Great?</h3><div class="grid grid-cols-1 md:grid-cols-2 gap-4 text-sm"><div class="p-3 bg-green-50 rounded"><strong class="text-green-800">โœ… Clear Instructions</strong><p class="text-gray-600 mt-1">Specific, contextual, and well-defined</p></div><div class="p-3 bg-green-50 rounded"><strong class="text-green-800">โœ… Complete Outputs</strong><p class="text-gray-600 mt-1">Thorough, with multiple approaches and reasoning</p></div><div class="p-3 bg-green-50 rounded"><strong class="text-green-800">โœ… Code Examples</strong><p class="text-gray-600 mt-1">Real, runnable code with explanations</p></div><div class="p-3 bg-green-50 rounded"><strong class="text-green-800">โœ… Educational Value</strong><p class="text-gray-600 mt-1">Teaches concepts, not just answers</p></div><div class="p-3 bg-green-50 rounded"><strong class="text-green-800">โœ… Practical Application</strong><p class="text-gray-600 mt-1">Real-world scenarios users face</p></div><div class="p-3 bg-green-50 rounded"><strong class="text-green-800">โœ… Proper Metadata</strong><p class="text-gray-600 mt-1">Accurate categories, difficulty, and tags</p></div></div></div></section></div>`);
124
+ }
125
+ const _sfc_setup = _sfc_main.setup;
126
+ _sfc_main.setup = (props, ctx) => {
127
+ const ssrContext = useSSRContext();
128
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/help/examples.vue");
129
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
130
+ };
131
+ const examples = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]);
132
+
133
+ export { examples as default };
134
+ //# sourceMappingURL=examples-BHK8MDrs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"examples-BHK8MDrs.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/examples-BHK8MDrs.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
@@ -0,0 +1,233 @@
1
+ import { _ as __nuxt_component_0 } from './nuxt-link-Ceyd90PQ.mjs';
2
+ import { defineComponent, ref, resolveDirective, mergeProps, withCtx, createVNode, useSSRContext } from 'vue';
3
+ import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderAttr, ssrGetDirectiveProps, ssrRenderComponent } from 'vue/server-renderer';
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 = /* @__PURE__ */ defineComponent({
27
+ __name: "export",
28
+ __ssrInlineRender: true,
29
+ setup(__props) {
30
+ const formats = [
31
+ {
32
+ id: "alpaca",
33
+ name: "Alpaca",
34
+ icon: "๐Ÿฆ™",
35
+ description: "Standard format for instruction tuning",
36
+ compatibility: "Works with: LLaMA-Factory, Axolotl, HuggingFace",
37
+ recommended: true
38
+ },
39
+ {
40
+ id: "sharegpt",
41
+ name: "ShareGPT",
42
+ icon: "๐Ÿ’ฌ",
43
+ description: "Conversational format",
44
+ compatibility: "Works with: ShareGPT, some fine-tuning tools"
45
+ },
46
+ {
47
+ id: "jsonl",
48
+ name: "JSONL",
49
+ icon: "๐Ÿ“",
50
+ description: "One JSON object per line",
51
+ compatibility: "Efficient format for large datasets",
52
+ recommended: true
53
+ },
54
+ {
55
+ id: "json",
56
+ name: "JSON",
57
+ icon: "๐Ÿ“„",
58
+ description: "Single JSON file with metadata",
59
+ compatibility: "Includes full metadata and statistics"
60
+ },
61
+ {
62
+ id: "csv",
63
+ name: "CSV",
64
+ icon: "๐Ÿ“Š",
65
+ description: "Spreadsheet format",
66
+ compatibility: "Open in Excel, Google Sheets"
67
+ }
68
+ ];
69
+ const splits = [
70
+ { value: "none", label: "No Split" },
71
+ { value: "90-10", label: "90% Train / 10% Val" },
72
+ { value: "80-20", label: "80% Train / 20% Val" },
73
+ { value: "70-30", label: "70% Train / 30% Val" }
74
+ ];
75
+ const selectedFormat = ref("alpaca");
76
+ const exporting = ref(false);
77
+ const exportResult = ref(null);
78
+ const filters = ref({
79
+ status: "approved",
80
+ minQuality: void 0,
81
+ split: "none",
82
+ includeMetadata: true
83
+ });
84
+ const stats = ref({
85
+ total: 0,
86
+ approved: 0,
87
+ draft: 0,
88
+ review: 0,
89
+ avgQuality: 0
90
+ });
91
+ return (_ctx, _push, _parent, _attrs) => {
92
+ const _component_NuxtLink = __nuxt_component_0;
93
+ const _directive_else34 = resolveDirective('else"');
94
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-4xl mx-auto" }, _attrs))}><div class="mb-6"><h1 class="text-2xl font-bold mb-2">Export Your Dataset</h1><p class="text-gray-600"> Export your training examples in various formats compatible with popular fine-tuning tools. </p></div><div class="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6"><div class="card p-4 text-center"><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="card p-4 text-center"><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="card p-4 text-center"><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="card p-4 text-center"><div class="text-2xl font-bold text-purple-600">${ssrInterpolate(stats.value.avgQuality.toFixed(1))}</div><div class="text-sm text-gray-600">Avg Quality</div></div></div><div class="card"><h2 class="text-lg font-semibold mb-6">Export Configuration</h2><div class="space-y-6"><div><label class="form-label">Export Format</label><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"><!--[-->`);
95
+ ssrRenderList(formats, (fmt) => {
96
+ _push(`<button class="${ssrRenderClass([selectedFormat.value === fmt.id ? "border-blue-500 bg-blue-50" : "border-gray-200", "p-4 border-2 rounded-xl text-left transition-all hover:border-blue-400"])}"><div class="flex items-center justify-between mb-2"><span class="text-2xl">${ssrInterpolate(fmt.icon)}</span>`);
97
+ if (fmt.recommended) {
98
+ _push(`<span class="text-xs bg-green-100 text-green-700 px-2 py-1 rounded-full"> Recommended </span>`);
99
+ } else {
100
+ _push(`<!---->`);
101
+ }
102
+ _push(`</div><h3 class="font-semibold mb-1">${ssrInterpolate(fmt.name)}</h3><p class="text-sm text-gray-600">${ssrInterpolate(fmt.description)}</p><div class="mt-2 text-xs text-gray-500">${ssrInterpolate(fmt.compatibility)}</div></button>`);
103
+ });
104
+ _push(`<!--]--></div></div><div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div><label class="form-label">Status Filter</label><select class="form-input"><option value="all"${ssrIncludeBooleanAttr(Array.isArray(filters.value.status) ? ssrLooseContain(filters.value.status, "all") : ssrLooseEqual(filters.value.status, "all")) ? " selected" : ""}>All Examples</option><option value="approved"${ssrIncludeBooleanAttr(Array.isArray(filters.value.status) ? ssrLooseContain(filters.value.status, "approved") : ssrLooseEqual(filters.value.status, "approved")) ? " selected" : ""}>Approved Only</option><option value="draft"${ssrIncludeBooleanAttr(Array.isArray(filters.value.status) ? ssrLooseContain(filters.value.status, "draft") : ssrLooseEqual(filters.value.status, "draft")) ? " selected" : ""}>Drafts Only</option><option value="review"${ssrIncludeBooleanAttr(Array.isArray(filters.value.status) ? ssrLooseContain(filters.value.status, "review") : ssrLooseEqual(filters.value.status, "review")) ? " selected" : ""}>In Review</option></select></div><div><label class="form-label">Minimum Quality</label><select class="form-input"><option${ssrRenderAttr("value", void 0)}${ssrIncludeBooleanAttr(Array.isArray(filters.value.minQuality) ? ssrLooseContain(filters.value.minQuality, void 0) : ssrLooseEqual(filters.value.minQuality, void 0)) ? " selected" : ""}>Any Quality</option><option${ssrRenderAttr("value", 1)}${ssrIncludeBooleanAttr(Array.isArray(filters.value.minQuality) ? ssrLooseContain(filters.value.minQuality, 1) : ssrLooseEqual(filters.value.minQuality, 1)) ? " selected" : ""}>โญ 1+</option><option${ssrRenderAttr("value", 2)}${ssrIncludeBooleanAttr(Array.isArray(filters.value.minQuality) ? ssrLooseContain(filters.value.minQuality, 2) : ssrLooseEqual(filters.value.minQuality, 2)) ? " selected" : ""}>โญโญ 2+</option><option${ssrRenderAttr("value", 3)}${ssrIncludeBooleanAttr(Array.isArray(filters.value.minQuality) ? ssrLooseContain(filters.value.minQuality, 3) : ssrLooseEqual(filters.value.minQuality, 3)) ? " selected" : ""}>โญโญโญ 3+</option><option${ssrRenderAttr("value", 4)}${ssrIncludeBooleanAttr(Array.isArray(filters.value.minQuality) ? ssrLooseContain(filters.value.minQuality, 4) : ssrLooseEqual(filters.value.minQuality, 4)) ? " selected" : ""}>โญโญโญโญ 4+</option><option${ssrRenderAttr("value", 5)}${ssrIncludeBooleanAttr(Array.isArray(filters.value.minQuality) ? ssrLooseContain(filters.value.minQuality, 5) : ssrLooseEqual(filters.value.minQuality, 5)) ? " selected" : ""}>โญโญโญโญโญ 5 only</option></select></div></div><div><label class="form-label">Train/Validation Split (Optional)</label><div class="flex gap-2 flex-wrap"><!--[-->`);
105
+ ssrRenderList(splits, (split) => {
106
+ _push(`<button class="${ssrRenderClass([filters.value.split === split.value ? "border-blue-500 bg-blue-50" : "border-gray-200 hover:border-blue-300", "px-4 py-2 rounded-lg border-2 transition-all"])}">${ssrInterpolate(split.label)}</button>`);
107
+ });
108
+ _push(`<!--]--></div>`);
109
+ if (filters.value.split !== "none") {
110
+ _push(`<p class="text-sm text-gray-600 mt-2"> Your dataset will be randomly split into training and validation sets. </p>`);
111
+ } else {
112
+ _push(`<!---->`);
113
+ }
114
+ _push(`</div><div class="flex items-center gap-3"><input id="includeMetadata"${ssrIncludeBooleanAttr(Array.isArray(filters.value.includeMetadata) ? ssrLooseContain(filters.value.includeMetadata, null) : filters.value.includeMetadata) ? " checked" : ""} type="checkbox" class="w-4 h-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"><label for="includeMetadata" class="text-sm font-medium"> Include metadata (category, quality, timestamps, etc.) </label></div></div><div class="mt-8 flex items-center justify-between">`);
115
+ if (exportResult.value) {
116
+ _push(`<div class="text-sm text-gray-600">`);
117
+ if (exportResult.value.splits) {
118
+ _push(`<span>${ssrInterpolate(exportResult.value.splits.train.count)} train + ${ssrInterpolate(exportResult.value.splits.validation.count)} validation examples </span>`);
119
+ } else {
120
+ _push(`<span>${ssrInterpolate(exportResult.value.count)} examples ready for download </span>`);
121
+ }
122
+ _push(`</div>`);
123
+ } else {
124
+ _push(`<!---->`);
125
+ }
126
+ _push(`<div class="flex gap-3"><button class="btn-secondary"> Reset </button><button${ssrIncludeBooleanAttr(exporting.value || stats.value.total === 0) ? " disabled" : ""} class="${ssrRenderClass([{ "opacity-50 cursor-not-allowed": exporting.value || stats.value.total === 0 }, "btn-primary"])}">`);
127
+ if (exporting.value) {
128
+ _push(`<span>Exporting...</span>`);
129
+ } else {
130
+ _push(`<!---->`);
131
+ }
132
+ _push(`<span${ssrRenderAttrs(ssrGetDirectiveProps(_ctx, _directive_else34))}>๐Ÿ“ค Export Dataset</span></button></div></div></div>`);
133
+ if (exportResult.value) {
134
+ _push(`<div class="card mt-6"><h2 class="text-lg font-semibold mb-4">Download Your Dataset</h2>`);
135
+ if (exportResult.value.splits) {
136
+ _push(`<div class="space-y-4"><div class="flex gap-4"><div class="flex-1 p-4 bg-blue-50 rounded-lg"><div class="flex items-center justify-between mb-2"><h3 class="font-semibold">Training Set</h3><span class="text-sm text-gray-600">${ssrInterpolate(exportResult.value.splits.train.count)} examples</span></div><button class="w-full btn-primary"> Download ${ssrInterpolate(exportResult.value.splits.train.filename)}</button></div><div class="flex-1 p-4 bg-green-50 rounded-lg"><div class="flex items-center justify-between mb-2"><h3 class="font-semibold">Validation Set</h3><span class="text-sm text-gray-600">${ssrInterpolate(exportResult.value.splits.validation.count)} examples</span></div><button class="w-full btn-primary"> Download ${ssrInterpolate(exportResult.value.splits.validation.filename)}</button></div></div></div>`);
137
+ } else {
138
+ _push(`<div><div class="p-4 bg-blue-50 rounded-lg"><div class="flex items-center justify-between mb-2"><h3 class="font-semibold">Complete Dataset</h3><span class="text-sm text-gray-600">${ssrInterpolate(exportResult.value.count)} examples</span></div><button class="w-full btn-primary"> Download ${ssrInterpolate(exportResult.value.filename)}</button></div></div>`);
139
+ }
140
+ if (selectedFormat.value === "json" || selectedFormat.value === "jsonl") {
141
+ _push(`<div class="mt-4"><button class="text-sm text-blue-600 hover:text-blue-800 underline"> Copy to clipboard instead </button></div>`);
142
+ } else {
143
+ _push(`<!---->`);
144
+ }
145
+ _push(`</div>`);
146
+ } else {
147
+ _push(`<!---->`);
148
+ }
149
+ _push(`<div class="card mt-6"><h2 class="text-lg font-semibold mb-4">Format Guide</h2><div class="space-y-4"><div class="p-4 bg-gray-50 rounded-lg"><h3 class="font-semibold mb-2">๐Ÿฆ™ Alpaca Format</h3><p class="text-sm text-gray-600 mb-2"> Standard format used by Alpaca, LLaMA-Factory, and many other tools. </p><code class="text-xs bg-gray-800 text-gray-200 p-2 rounded block"> { &quot;instruction&quot;: &quot;...&quot;, &quot;input&quot;: &quot;...&quot;, &quot;output&quot;: &quot;...&quot; } </code></div><div class="p-4 bg-gray-50 rounded-lg"><h3 class="font-semibold mb-2">๐Ÿ’ฌ ShareGPT Format</h3><p class="text-sm text-gray-600 mb-2"> Conversational format used by ShareGPT and some fine-tuning frameworks. </p><code class="text-xs bg-gray-800 text-gray-200 p-2 rounded block"> { &quot;conversations&quot;: [{&quot;from&quot;: &quot;human&quot;, &quot;value&quot;: &quot;...&quot;}, {&quot;from&quot;: &quot;gpt&quot;, &quot;value&quot;: &quot;...&quot;}] } </code></div><div class="p-4 bg-gray-50 rounded-lg"><h3 class="font-semibold mb-2">๐Ÿ“ JSONL Format</h3><p class="text-sm text-gray-600 mb-2"> One JSON object per line. Efficient for large datasets. Compatible with most tools. </p><code class="text-xs bg-gray-800 text-gray-200 p-2 rounded block"> {&quot;instruction&quot;: &quot;...&quot;, &quot;input&quot;: &quot;...&quot;, &quot;output&quot;: &quot;...&quot;} <br>{&quot;instruction&quot;: &quot;...&quot;, &quot;input&quot;: &quot;...&quot;, &quot;output&quot;: &quot;...&quot;} </code></div><div class="p-4 bg-gray-50 rounded-lg"><h3 class="font-semibold mb-2">๐Ÿ“Š CSV Format</h3><p class="text-sm text-gray-600 mb-2"> Spreadsheet format for easy viewing and editing in Excel/Google Sheets. </p><code class="text-xs bg-gray-800 text-gray-200 p-2 rounded block"> instruction,input,output,system,category,difficulty,... </code></div></div></div><div class="card mt-6 bg-gradient-to-r from-blue-50 to-purple-50"><h2 class="text-lg font-semibold mb-4">What&#39;s Next?</h2><p class="text-gray-600 mb-4"> New to fine-tuning? Learn about these platforms first before diving in: </p><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4">`);
150
+ _push(ssrRenderComponent(_component_NuxtLink, {
151
+ to: "/examples",
152
+ class: "p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow"
153
+ }, {
154
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
155
+ if (_push2) {
156
+ _push2(`<div class="text-2xl mb-2"${_scopeId}>๐Ÿ“‹</div><h3 class="font-semibold mb-1"${_scopeId}>Review Dataset</h3><p class="text-sm text-gray-600"${_scopeId}>Check and improve your examples before training.</p>`);
157
+ } else {
158
+ return [
159
+ createVNode("div", { class: "text-2xl mb-2" }, "๐Ÿ“‹"),
160
+ createVNode("h3", { class: "font-semibold mb-1" }, "Review Dataset"),
161
+ createVNode("p", { class: "text-sm text-gray-600" }, "Check and improve your examples before training.")
162
+ ];
163
+ }
164
+ }),
165
+ _: 1
166
+ }, _parent));
167
+ _push(ssrRenderComponent(_component_NuxtLink, {
168
+ to: "/help/huggingface",
169
+ class: "p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow border-l-4 border-yellow-400"
170
+ }, {
171
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
172
+ if (_push2) {
173
+ _push2(`<div class="text-2xl mb-2"${_scopeId}>๐Ÿค—</div><h3 class="font-semibold mb-1"${_scopeId}>What is Hugging Face?</h3><p class="text-sm text-gray-600"${_scopeId}>Learn about the &quot;GitHub of AI&quot; before you go there.</p><span class="text-xs text-yellow-600 font-medium"${_scopeId}>Start here โ†’</span>`);
174
+ } else {
175
+ return [
176
+ createVNode("div", { class: "text-2xl mb-2" }, "๐Ÿค—"),
177
+ createVNode("h3", { class: "font-semibold mb-1" }, "What is Hugging Face?"),
178
+ createVNode("p", { class: "text-sm text-gray-600" }, 'Learn about the "GitHub of AI" before you go there.'),
179
+ createVNode("span", { class: "text-xs text-yellow-600 font-medium" }, "Start here โ†’")
180
+ ];
181
+ }
182
+ }),
183
+ _: 1
184
+ }, _parent));
185
+ _push(ssrRenderComponent(_component_NuxtLink, {
186
+ to: "/help/axolotl",
187
+ class: "p-4 bg-white rounded-lg shadow-sm hover:shadow-md transition-shadow border-l-4 border-green-400"
188
+ }, {
189
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
190
+ if (_push2) {
191
+ _push2(`<div class="text-2xl mb-2"${_scopeId}>๐ŸฆŽ</div><h3 class="font-semibold mb-1"${_scopeId}>What is Axolotl?</h3><p class="text-sm text-gray-600"${_scopeId}>The easiest way to fine-tune. Perfect for beginners!</p><span class="text-xs text-green-600 font-medium"${_scopeId}>Easiest option โ†’</span>`);
192
+ } else {
193
+ return [
194
+ createVNode("div", { class: "text-2xl mb-2" }, "๐ŸฆŽ"),
195
+ createVNode("h3", { class: "font-semibold mb-1" }, "What is Axolotl?"),
196
+ createVNode("p", { class: "text-sm text-gray-600" }, "The easiest way to fine-tune. Perfect for beginners!"),
197
+ createVNode("span", { class: "text-xs text-green-600 font-medium" }, "Easiest option โ†’")
198
+ ];
199
+ }
200
+ }),
201
+ _: 1
202
+ }, _parent));
203
+ _push(ssrRenderComponent(_component_NuxtLink, {
204
+ to: "/help/first-training",
205
+ class: "p-4 bg-gradient-to-br from-purple-600 to-blue-600 text-white rounded-lg shadow-sm hover:shadow-md transition-shadow"
206
+ }, {
207
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
208
+ if (_push2) {
209
+ _push2(`<div class="text-2xl mb-2"${_scopeId}>๐Ÿš€</div><h3 class="font-semibold mb-1"${_scopeId}>Start Training Now!</h3><p class="text-sm text-white text-opacity-90"${_scopeId}>Step-by-step guide to train your first model.</p><span class="text-xs text-yellow-300 font-medium"${_scopeId}>Let&#39;s do it! โ†’</span>`);
210
+ } else {
211
+ return [
212
+ createVNode("div", { class: "text-2xl mb-2" }, "๐Ÿš€"),
213
+ createVNode("h3", { class: "font-semibold mb-1" }, "Start Training Now!"),
214
+ createVNode("p", { class: "text-sm text-white text-opacity-90" }, "Step-by-step guide to train your first model."),
215
+ createVNode("span", { class: "text-xs text-yellow-300 font-medium" }, "Let's do it! โ†’")
216
+ ];
217
+ }
218
+ }),
219
+ _: 1
220
+ }, _parent));
221
+ _push(`</div></div></div>`);
222
+ };
223
+ }
224
+ });
225
+ const _sfc_setup = _sfc_main.setup;
226
+ _sfc_main.setup = (props, ctx) => {
227
+ const ssrContext = useSSRContext();
228
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/export.vue");
229
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
230
+ };
231
+
232
+ export { _sfc_main as default };
233
+ //# sourceMappingURL=export-BzxFqqfP.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-BzxFqqfP.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/export-BzxFqqfP.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}
@@ -0,0 +1,112 @@
1
+ import { _ as __nuxt_component_0 } from './nuxt-link-Ceyd90PQ.mjs';
2
+ import { mergeProps, withCtx, createTextVNode, createVNode, useSSRContext } from 'vue';
3
+ import { ssrRenderAttrs, ssrRenderComponent } from 'vue/server-renderer';
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 = {
27
+ __name: "faq",
28
+ __ssrInlineRender: true,
29
+ setup(__props) {
30
+ return (_ctx, _push, _parent, _attrs) => {
31
+ const _component_NuxtLink = __nuxt_component_0;
32
+ _push(`<div${ssrRenderAttrs(mergeProps({ class: "max-w-5xl mx-auto" }, _attrs))}><section id="faq" class="mb-12"><div class="flex items-center gap-3 mb-6"><span class="text-3xl">โ“</span><h2 class="text-2xl font-bold">Frequently Asked Questions</h2></div><div class="space-y-4"><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">How many examples do I actually need?</h3><p class="text-gray-600 mb-3"> We recommend starting with <strong>1000 high-quality examples</strong> for your first fine-tuning. This is the sweet spot where you&#39;ll see significant improvement. </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li><strong>100 examples:</strong> Minimal viable dataset - good for testing</li><li><strong>500 examples:</strong> Noticeable improvement in specific tasks</li><li><strong>1000 examples:</strong> Solid foundation for most use cases</li><li><strong>5000+ examples:</strong> Professional-grade fine-tuning</li></ul><p class="text-sm text-gray-500 mt-3"><strong>Remember:</strong> 100 excellent examples beat 1000 mediocre ones. Quality always wins over quantity. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">What&#39;s the difference between &quot;Draft&quot; and &quot;Approved&quot; status?</h3><p class="text-gray-600"><strong>Draft</strong> means you&#39;re still working on itโ€”needs review or improvement. <strong>Approved</strong> means it&#39;s high quality and ready for training. <strong>Rejected</strong> means it has significant issues and shouldn&#39;t be used. Aim to have 80% of your examples approved before training. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">Can I import from ChatGPT / Claude / my own conversations?</h3><p class="text-gray-600 mb-3"> Yes! edukaAI can import from: </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li><strong>Claude Code</strong> - Full support with metadata</li><li><strong>Cursor</strong> - Import chat history</li><li><strong>OpenCode</strong> - Limited support (metadata only)</li></ul><p class="text-sm text-gray-500 mt-3"> Go to the `);
33
+ _push(ssrRenderComponent(_component_NuxtLink, {
34
+ to: "/import",
35
+ class: "text-blue-600 hover:underline"
36
+ }, {
37
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
38
+ if (_push2) {
39
+ _push2(`Import`);
40
+ } else {
41
+ return [
42
+ createTextVNode("Import")
43
+ ];
44
+ }
45
+ }),
46
+ _: 1
47
+ }, _parent));
48
+ _push(` page and follow the wizard. The tool will automatically extract examples from your conversations. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">How long does it take to create 1000 examples?</h3><p class="text-gray-600 mb-3"> It depends on your approach: </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li><strong>Manual creation:</strong> 5-10 minutes per example = 85-170 hours total</li><li><strong>Importing conversations:</strong> Much faster! Can import 50-100 examples in minutes</li><li><strong>Hybrid approach:</strong> Import 70% + manually create 30%</li></ul><p class="text-sm text-gray-500 mt-3"><strong>Recommended:</strong> Import from your existing AI conversations, then curate and add manual examples where needed. This can reduce time to just 10-20 hours of curation. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">Do I need programming experience to fine-tune an LLM?</h3><p class="text-gray-600"><strong>No!</strong> edukaAI is designed for beginners. You don&#39;t need to write training code or understand machine learning theory. Just create good examples using our forms, and we&#39;ll handle the technical parts. However, basic understanding of your domain (e.g., programming concepts if you&#39;re building a coding assistant) is helpful. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">What models can I fine-tune with my dataset?</h3><p class="text-gray-600 mb-3"> Once exported from edukaAI, you can use your dataset to fine-tune: </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li><strong>Open source models:</strong> Llama 2, Mistral, Falcon (free, run locally)</li><li><strong>Via HuggingFace:</strong> Easy upload and training</li><li><strong>Via OpenAI:</strong> GPT-3.5 fine-tuning API</li><li><strong>Via other platforms:</strong> Any platform accepting Alpaca or ShareGPT format</li></ul><p class="text-sm text-gray-500 mt-3"> We export in multiple formats (Alpaca, ShareGPT, CodeAlpaca) to ensure compatibility with popular training platforms. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">How much does fine-tuning cost?</h3><p class="text-gray-600 mb-3"> Costs vary by platform: </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li><strong>Open source (local):</strong> Free! Just need a decent GPU (RTX 3060 or better recommended)</li><li><strong>HuggingFace / cloud:</strong> $5-20 per training run depending on model size</li><li><strong>OpenAI API:</strong> $0.008 per 1K tokens trained (typically $2-10 for 1000 examples)</li></ul><p class="text-sm text-gray-500 mt-3"><strong>Cost-saving tip:</strong> Train on smaller models first (7B parameters) to test your dataset before training larger, more expensive models. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">What if my model doesn&#39;t improve after training?</h3><p class="text-gray-600 mb-3"> Common reasons and solutions: </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li><strong>Quality issues:</strong> Review your dataset. Reject low-quality examples. Aim for 4-5 star ratings.</li><li><strong>Not enough data:</strong> Try with 1000+ examples. Small datasets often don&#39;t show improvement.</li><li><strong>Wrong format:</strong> Make sure you&#39;re exporting in the right format for your training platform.</li><li><strong>Base model too large:</strong> Try fine-tuning a smaller model (7B instead of 70B).</li><li><strong>Training parameters:</strong> You may need more training epochs or different learning rates.</li></ul></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">Can I use copyrighted material in my dataset?</h3><p class="text-gray-600"> Be careful! Don&#39;t include copyrighted code, text, or content without permission. Write your own explanations and examples. If importing from AI assistants (Claude, ChatGPT), those conversations are generally fine to use since you created them. When in doubt, create original content. </p></div><div class="card"><h3 class="font-semibold text-lg mb-2 text-blue-700">How do I know if an example is good quality?</h3><p class="text-gray-600 mb-3"> Ask yourself these questions: </p><ul class="list-disc list-inside text-sm text-gray-600 space-y-1 ml-4"><li>Does the output fully answer the instruction?</li><li>Would this help a real user?</li><li>Is it accurate and correct?</li><li>Is the tone consistent with other examples?</li><li>Does it teach something or just give an answer?</li><li>Would I be proud if this was the only example someone saw?</li></ul><p class="text-sm text-gray-500 mt-3"> If you answered &quot;yes&quot; to all, it&#39;s probably a 4-5 star example! </p></div></div></section><section id="glossary" class="mb-12"><div class="flex items-center gap-3 mb-6"><span class="text-3xl">๐Ÿ“–</span><h2 class="text-2xl font-bold">Glossary</h2></div><div class="card"><div class="grid grid-cols-1 md:grid-cols-2 gap-x-8 gap-y-4"><div><h3 class="font-semibold text-blue-700">Base Model</h3><p class="text-sm text-gray-600">The pre-trained LLM you start with before fine-tuning (e.g., GPT-4, Llama 2, Mistral).</p></div><div><h3 class="font-semibold text-blue-700">Dataset</h3><p class="text-sm text-gray-600">A collection of training examples used to teach the AI specific tasks.</p></div><div><h3 class="font-semibold text-blue-700">Epoch</h3><p class="text-sm text-gray-600">One complete pass through the entire dataset during training. Multiple epochs help the model learn better.</p></div><div><h3 class="font-semibold text-blue-700">Fine-Tuning</h3><p class="text-sm text-gray-600">The process of training a pre-trained model on a specific dataset to improve performance on particular tasks.</p></div><div><h3 class="font-semibold text-blue-700">Hallucination</h3><p class="text-sm text-gray-600">When an AI generates incorrect or made-up information. Good datasets help reduce this.</p></div><div><h3 class="font-semibold text-blue-700">Hyperparameters</h3><p class="text-sm text-gray-600">Settings that control the training process (learning rate, batch size, epochs). Usually handled automatically.</p></div><div><h3 class="font-semibold text-blue-700">Instruction</h3><p class="text-sm text-gray-600">The input part of a training exampleโ€”what the user asks or the task to perform.</p></div><div><h3 class="font-semibold text-blue-700">LLM (Large Language Model)</h3><p class="text-sm text-gray-600">AI models trained on vast amounts of text to understand and generate human language.</p></div><div><h3 class="font-semibold text-blue-700">Loss</h3><p class="text-sm text-gray-600">A measure of how wrong the model&#39;s predictions are. Lower loss = better learning.</p></div><div><h3 class="font-semibold text-blue-700">Overfitting</h3><p class="text-sm text-gray-600">When a model learns the training data too well and can&#39;t generalize to new inputs.</p></div><div><h3 class="font-semibold text-blue-700">Output / Response</h3><p class="text-sm text-gray-600">The desired answer or result the AI should produce for a given instruction.</p></div><div><h3 class="font-semibold text-blue-700">Parameters</h3><p class="text-sm text-gray-600">The internal numbers/weights that define how an AI model works. &quot;7B&quot; = 7 billion parameters.</p></div><div><h3 class="font-semibold text-blue-700">Prompt</h3><p class="text-sm text-gray-600">The text you send to an AI to get a response. In training, this is the instruction.</p></div><div><h3 class="font-semibold text-blue-700">System Prompt</h3><p class="text-sm text-gray-600">Instructions that define the AI&#39;s personality, role, and behavior for all responses.</p></div><div><h3 class="font-semibold text-blue-700">Token</h3><p class="text-sm text-gray-600">A piece of text (word or word fragment) that the AI processes. &quot;Hello world&quot; โ‰ˆ 2-3 tokens.</p></div><div><h3 class="font-semibold text-blue-700">Training</h3><p class="text-sm text-gray-600">The process of adjusting a model&#39;s parameters so it produces better outputs.</p></div><div><h3 class="font-semibold text-blue-700">Validation Set</h3><p class="text-sm text-gray-600">A portion of data held back from training to test if the model generalizes well.</p></div><div><h3 class="font-semibold text-blue-700">Weights</h3><p class="text-sm text-gray-600">See &quot;Parameters&quot;โ€”the learned values that determine how the AI responds.</p></div></div></div></section><section id="resources" class="mb-12"><div class="flex items-center gap-3 mb-6"><span class="text-3xl">๐Ÿ”—</span><h2 class="text-2xl font-bold">Resources &amp; Next Steps</h2></div><div class="grid grid-cols-1 md:grid-cols-2 gap-6"><div class="card"><h3 class="font-semibold text-lg mb-4">๐Ÿ“š Learning Resources</h3><ul class="space-y-3 text-sm"><li><a href="https://huggingface.co/docs/transformers/training" target="_blank" class="text-blue-600 hover:underline"> HuggingFace Training Guide </a><p class="text-gray-500">Official guide for training transformers</p></li><li><a href="https://platform.openai.com/docs/guides/fine-tuning" target="_blank" class="text-blue-600 hover:underline"> OpenAI Fine-Tuning Guide </a><p class="text-gray-500">Guide for fine-tuning GPT models</p></li><li><a href="https://github.com/tatsu-lab/stanford_alpaca" target="_blank" class="text-blue-600 hover:underline"> Stanford Alpaca Dataset </a><p class="text-gray-500">Example of high-quality instruction dataset</p></li><li><a href="https://github.com/huggingface/transformers" target="_blank" class="text-blue-600 hover:underline"> Transformers Library </a><p class="text-gray-500">Popular library for working with LLMs</p></li></ul></div><div class="card"><h3 class="font-semibold text-lg mb-4">๐Ÿ› ๏ธ Tools &amp; Platforms</h3><ul class="space-y-3 text-sm"><li><a href="https://huggingface.co/" target="_blank" class="text-blue-600 hover:underline"> HuggingFace Hub </a><p class="text-gray-500">Share and train models (we export here!)</p></li><li><a href="https://wandb.ai/" target="_blank" class="text-blue-600 hover:underline"> Weights &amp; Biases </a><p class="text-gray-500">Track training runs and experiments</p></li><li><a href="https://github.com/jeffdapaz/llama-cpp-python" target="_blank" class="text-blue-600 hover:underline"> Llama.cpp </a><p class="text-gray-500">Run models locally on consumer hardware</p></li><li><a href="https://lmstudio.ai/" target="_blank" class="text-blue-600 hover:underline"> LM Studio </a><p class="text-gray-500">Easy GUI for running local LLMs</p></li></ul></div></div><div id="next-steps" class="card mt-6 bg-gradient-to-br from-blue-50 to-purple-50"><h3 class="font-semibold text-xl mb-4">๐Ÿš€ Ready to Start?</h3><div class="grid grid-cols-1 md:grid-cols-3 gap-4">`);
49
+ _push(ssrRenderComponent(_component_NuxtLink, {
50
+ to: "/examples/new",
51
+ class: "p-4 bg-white rounded-lg hover:shadow-md transition-shadow text-center"
52
+ }, {
53
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
54
+ if (_push2) {
55
+ _push2(`<div class="text-3xl mb-2"${_scopeId}>โœ๏ธ</div><h4 class="font-semibold"${_scopeId}>Create First Example</h4><p class="text-sm text-gray-600 mt-1"${_scopeId}>Start building your dataset</p>`);
56
+ } else {
57
+ return [
58
+ createVNode("div", { class: "text-3xl mb-2" }, "โœ๏ธ"),
59
+ createVNode("h4", { class: "font-semibold" }, "Create First Example"),
60
+ createVNode("p", { class: "text-sm text-gray-600 mt-1" }, "Start building your dataset")
61
+ ];
62
+ }
63
+ }),
64
+ _: 1
65
+ }, _parent));
66
+ _push(ssrRenderComponent(_component_NuxtLink, {
67
+ to: "/import",
68
+ class: "p-4 bg-white rounded-lg hover:shadow-md transition-shadow text-center"
69
+ }, {
70
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
71
+ if (_push2) {
72
+ _push2(`<div class="text-3xl mb-2"${_scopeId}>๐Ÿ“ฅ</div><h4 class="font-semibold"${_scopeId}>Import Conversations</h4><p class="text-sm text-gray-600 mt-1"${_scopeId}>Import from AI assistants</p>`);
73
+ } else {
74
+ return [
75
+ createVNode("div", { class: "text-3xl mb-2" }, "๐Ÿ“ฅ"),
76
+ createVNode("h4", { class: "font-semibold" }, "Import Conversations"),
77
+ createVNode("p", { class: "text-sm text-gray-600 mt-1" }, "Import from AI assistants")
78
+ ];
79
+ }
80
+ }),
81
+ _: 1
82
+ }, _parent));
83
+ _push(ssrRenderComponent(_component_NuxtLink, {
84
+ to: "/examples",
85
+ class: "p-4 bg-white rounded-lg hover:shadow-md transition-shadow text-center"
86
+ }, {
87
+ default: withCtx((_, _push2, _parent2, _scopeId) => {
88
+ if (_push2) {
89
+ _push2(`<div class="text-3xl mb-2"${_scopeId}>๐Ÿ“Š</div><h4 class="font-semibold"${_scopeId}>View Dataset</h4><p class="text-sm text-gray-600 mt-1"${_scopeId}>See your progress</p>`);
90
+ } else {
91
+ return [
92
+ createVNode("div", { class: "text-3xl mb-2" }, "๐Ÿ“Š"),
93
+ createVNode("h4", { class: "font-semibold" }, "View Dataset"),
94
+ createVNode("p", { class: "text-sm text-gray-600 mt-1" }, "See your progress")
95
+ ];
96
+ }
97
+ }),
98
+ _: 1
99
+ }, _parent));
100
+ _push(`</div></div></section><div class="text-center py-8 text-gray-500 text-sm"><p>๐ŸŽ“ edukaAI - Learn LLM fine-tuning by building datasets</p><p class="mt-1">Remember: The best way to learn is by doing. Start creating your first example today!</p></div></div>`);
101
+ };
102
+ }
103
+ };
104
+ const _sfc_setup = _sfc_main.setup;
105
+ _sfc_main.setup = (props, ctx) => {
106
+ const ssrContext = useSSRContext();
107
+ (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/help/faq.vue");
108
+ return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
109
+ };
110
+
111
+ export { _sfc_main as default };
112
+ //# sourceMappingURL=faq-DKch73dS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faq-DKch73dS.mjs","sources":["../../../../node_modules/.cache/nuxt/.nuxt/dist/server/_nuxt/faq-DKch73dS.js"],"names":[],"mappings":"","x_google_ignoreList":[0]}