@thanh01.pmt/curriculum-kit 1.4.26 → 1.4.28

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 (39) hide show
  1. package/dist/ai/index.cjs +103 -6
  2. package/dist/ai/index.cjs.map +1 -1
  3. package/dist/ai/index.d.cts +4 -4
  4. package/dist/ai/index.d.ts +4 -4
  5. package/dist/ai/index.mjs +103 -7
  6. package/dist/ai/index.mjs.map +1 -1
  7. package/dist/index.cjs +104 -6
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +5 -5
  10. package/dist/index.d.ts +5 -5
  11. package/dist/index.mjs +104 -7
  12. package/dist/index.mjs.map +1 -1
  13. package/dist/media/index.cjs +87 -5
  14. package/dist/media/index.cjs.map +1 -1
  15. package/dist/media/index.d.cts +1 -1
  16. package/dist/media/index.d.ts +1 -1
  17. package/dist/media/index.mjs +87 -5
  18. package/dist/media/index.mjs.map +1 -1
  19. package/dist/{milestoneBundleGenerator-CzSOeAzU.d.cts → milestoneBundleGenerator-CN6F1zPs.d.cts} +1 -1
  20. package/dist/{milestoneBundleGenerator-Bkba8OPG.d.ts → milestoneBundleGenerator-DTiJ5gIh.d.ts} +1 -1
  21. package/dist/pipeline/index.cjs +23 -4
  22. package/dist/pipeline/index.cjs.map +1 -1
  23. package/dist/pipeline/index.d.cts +3 -3
  24. package/dist/pipeline/index.d.ts +3 -3
  25. package/dist/pipeline/index.mjs +23 -4
  26. package/dist/pipeline/index.mjs.map +1 -1
  27. package/dist/{provider-factory-DxzOVEmh.d.cts → provider-factory-Bv-eIkhg.d.cts} +1 -1
  28. package/dist/{provider-factory-DxzOVEmh.d.ts → provider-factory-Bv-eIkhg.d.ts} +1 -1
  29. package/dist/storage/index.d.cts +2 -2
  30. package/dist/storage/index.d.ts +2 -2
  31. package/dist/{streamRunner-CYESG6IE.d.cts → streamRunner-kpS4MZP1.d.cts} +2 -1
  32. package/dist/{streamRunner-CYESG6IE.d.ts → streamRunner-kpS4MZP1.d.ts} +2 -1
  33. package/dist/workflow/index.cjs +102 -6
  34. package/dist/workflow/index.cjs.map +1 -1
  35. package/dist/workflow/index.d.cts +1 -1
  36. package/dist/workflow/index.d.ts +1 -1
  37. package/dist/workflow/index.mjs +102 -6
  38. package/dist/workflow/index.mjs.map +1 -1
  39. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import { CurriculumQualityReport, LessonPlan, ActivityLab, CodeLab, Handout, Worksheet, SlideDeck, TeacherGuide, Extension, MilestoneInput } from './schemas/index.cjs';
2
- import { M as ModelResolutionOptions } from './provider-factory-DxzOVEmh.cjs';
2
+ import { M as ModelResolutionOptions } from './provider-factory-Bv-eIkhg.cjs';
3
3
 
4
4
  interface AutoRepairOptions<T> {
5
5
  artifactType: string;
@@ -1,5 +1,5 @@
1
1
  import { CurriculumQualityReport, LessonPlan, ActivityLab, CodeLab, Handout, Worksheet, SlideDeck, TeacherGuide, Extension, MilestoneInput } from './schemas/index.js';
2
- import { M as ModelResolutionOptions } from './provider-factory-DxzOVEmh.js';
2
+ import { M as ModelResolutionOptions } from './provider-factory-Bv-eIkhg.js';
3
3
 
4
4
  interface AutoRepairOptions<T> {
5
5
  artifactType: string;
@@ -647,14 +647,19 @@ function isModelAllowed(model) {
647
647
  });
648
648
  }
649
649
  function getDesignatedFallbackChain() {
650
- const rawProviders = resolveApiKey("FALLBACK_AI_PROVIDER") || resolveApiKey("FALLBACK_AI_PROVIDERS") || resolveApiKey("DEFAULT_AI_PROVIDER") || "nvidia,openrouter";
651
- const rawModels = resolveApiKey("FALLBACK_AI_MODEL") || resolveApiKey("FALLBACK_AI_MODELS") || resolveApiKey("DEFAULT_AI_MODEL") || "nvidia/nemotron-3-ultra-550b-a55b:free,@preset/coding-free,deepseek/deepseek-chat:free";
650
+ const rawProviders = resolveApiKey("FALLBACK_AI_PROVIDER") || resolveApiKey("FALLBACK_AI_PROVIDERS") || resolveApiKey("DEFAULT_AI_PROVIDER") || "9router,nvidia,openrouter";
651
+ const rawModels = resolveApiKey("FALLBACK_AI_MODEL") || resolveApiKey("FALLBACK_AI_MODELS") || resolveApiKey("DEFAULT_AI_MODEL") || "fast-reasoning,deep-reasoning,mid-range,free-tier";
652
652
  const providerList = rawProviders.split(",").map((p) => p.trim().toLowerCase()).filter((p) => p.length > 0 && isProviderEnabled(p));
653
653
  const modelList = rawModels.split(",").map((m) => m.trim()).filter((m) => m.length > 0 && isModelAllowed(m));
654
654
  const chain = [];
655
655
  for (const provider of providerList) {
656
656
  let providerModels = [];
657
- if (provider === "nvidia") {
657
+ if (provider === "9router" || provider === "ninerouter") {
658
+ providerModels = modelList.filter((m) => ["fast-reasoning", "deep-reasoning", "mid-range", "free-tier"].includes(m));
659
+ if (providerModels.length === 0) {
660
+ providerModels = ["fast-reasoning", "mid-range", "free-tier"];
661
+ }
662
+ } else if (provider === "nvidia") {
658
663
  providerModels = modelList.filter((m) => m.startsWith("nvidia/") || m.startsWith("meta/") || m.startsWith("mistralai/"));
659
664
  if (providerModels.length === 0) {
660
665
  providerModels = ["nvidia/nemotron-3-ultra-550b-a55b:free", "nvidia/nemotron-3.5-lightning-30b-a3b"];
@@ -693,11 +698,13 @@ function getDesignatedFallbackChain() {
693
698
  function getDesignatedFallbackConfig() {
694
699
  const chain = getDesignatedFallbackChain();
695
700
  if (chain.length > 0) return chain[0];
696
- return { provider: "nvidia", model: "nvidia/nemotron-3-ultra-550b-a55b:free" };
701
+ return { provider: "9router", model: "fast-reasoning" };
697
702
  }
698
703
 
699
704
  // src/ai/provider-factory.ts
700
705
  var DEFAULT_MODELS = {
706
+ "9router": "fast-reasoning",
707
+ ninerouter: "fast-reasoning",
701
708
  nvidia: "nvidia/nemotron-3-ultra-550b-a55b:free",
702
709
  openrouter: "@preset/coding-free",
703
710
  alibaba: "qwen3.7-plus",
@@ -720,6 +727,15 @@ function getAIModel(options = {}) {
720
727
  console.warn(`[provider-factory] Model "${resolvedModelName}" is not permitted by ALLOWED_AI_MODELS. Using designated model "${designated.model}".`);
721
728
  resolvedModelName = designated.model;
722
729
  }
730
+ if (provider === "9router" || provider === "ninerouter") {
731
+ const apiKey = options.apiKey || resolveApiKey("NINEROUTER_API_KEY") || resolveApiKey("NINE_ROUTER_API_KEY") || "";
732
+ const rawUrl = options.baseURL || resolveApiKey("NINEROUTER_BASE_URL") || resolveApiKey("NINE_ROUTER_BASE_URL") || "https://ai-router.orchable.app/v1";
733
+ const ninerouter = openai.createOpenAI({
734
+ apiKey,
735
+ baseURL: rawUrl.replace(/^["']|["']$/g, "").trim()
736
+ });
737
+ return ninerouter.chat(resolvedModelName || "fast-reasoning");
738
+ }
723
739
  if (provider === "nvidia") {
724
740
  const apiKey = options.apiKey || process.env.NVIDIA_API_KEY || "";
725
741
  const nvidia = openai.createOpenAI({
@@ -788,6 +804,9 @@ function getAIModel(options = {}) {
788
804
  return fallback.chat(resolvedModelName);
789
805
  }
790
806
  function detectDefaultProvider() {
807
+ if ((process.env.NINEROUTER_API_KEY || resolveApiKey("NINEROUTER_API_KEY") || resolveApiKey("NINE_ROUTER_API_KEY")) && isProviderEnabled("9router")) {
808
+ return "9router";
809
+ }
791
810
  if (process.env.NVIDIA_API_KEY && isProviderEnabled("nvidia")) {
792
811
  return "nvidia";
793
812
  }