@thanh01.pmt/curriculum-kit 1.4.28 → 1.4.30
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/dist/ai/index.cjs +19 -2
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.d.cts +2 -2
- package/dist/ai/index.d.ts +2 -2
- package/dist/ai/index.mjs +19 -2
- package/dist/ai/index.mjs.map +1 -1
- package/dist/index.cjs +49 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.mjs +49 -3
- package/dist/index.mjs.map +1 -1
- package/dist/media/index.cjs +19 -2
- package/dist/media/index.cjs.map +1 -1
- package/dist/media/index.d.cts +1 -1
- package/dist/media/index.d.ts +1 -1
- package/dist/media/index.mjs +19 -2
- package/dist/media/index.mjs.map +1 -1
- package/dist/pipeline/index.cjs.map +1 -1
- package/dist/pipeline/index.d.cts +1 -1
- package/dist/pipeline/index.d.ts +1 -1
- package/dist/pipeline/index.mjs.map +1 -1
- package/dist/publishers/index.d.cts +1 -1
- package/dist/publishers/index.d.ts +1 -1
- package/dist/storage/index.cjs +27 -0
- package/dist/storage/index.cjs.map +1 -1
- package/dist/storage/index.d.cts +11 -2
- package/dist/storage/index.d.ts +11 -2
- package/dist/storage/index.mjs +27 -0
- package/dist/storage/index.mjs.map +1 -1
- package/dist/{streamRunner-kpS4MZP1.d.cts → streamRunner-DYHFhNUr.d.cts} +1 -1
- package/dist/{streamRunner-kpS4MZP1.d.ts → streamRunner-DYHFhNUr.d.ts} +1 -1
- package/dist/{types-BUJGYiep.d.cts → types-Bgk-C4K2.d.cts} +11 -0
- package/dist/{types-BUJGYiep.d.ts → types-Bgk-C4K2.d.ts} +11 -0
- package/dist/workflow/index.cjs +21 -3
- package/dist/workflow/index.cjs.map +1 -1
- package/dist/workflow/index.mjs +21 -3
- package/dist/workflow/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/workflow/index.mjs
CHANGED
|
@@ -477,6 +477,13 @@ Guidelines:
|
|
|
477
477
|
});
|
|
478
478
|
}
|
|
479
479
|
}
|
|
480
|
+
if (!options.customInference && resolveApiKey("CURRICULUM_KIT_REQUIRE_CUSTOM_INFERENCE") === "1") {
|
|
481
|
+
throw createAiInferenceError({
|
|
482
|
+
errorCode: "ERR_CUSTOM_INFERENCE_REQUIRED",
|
|
483
|
+
message: "customInference is REQUIRED (CURRICULUM_KIT_REQUIRE_CUSTOM_INFERENCE=1): pass buildKitCustomInference(...) so every LLM call flows through the host AI SDK gateway and its unified Langfuse tracing. Raw-fetch provider routes are disabled by mandate.",
|
|
484
|
+
rawError: { mandate: "CURRICULUM_KIT_REQUIRE_CUSTOM_INFERENCE", hasCustomInference: false }
|
|
485
|
+
});
|
|
486
|
+
}
|
|
480
487
|
const formattedMessages = [
|
|
481
488
|
{ role: "system", content: systemInstruction },
|
|
482
489
|
...messages.map((m) => ({
|
|
@@ -500,7 +507,12 @@ Guidelines:
|
|
|
500
507
|
const unique9RouterModels = Array.from(new Set(candidateModels));
|
|
501
508
|
for (const model of unique9RouterModels) {
|
|
502
509
|
try {
|
|
503
|
-
const
|
|
510
|
+
const r9Idle = options.idleTimeoutMs ?? (Number(process.env.ARTIFACT_STREAM_IDLE_TIMEOUT_MS || process.env.STREAM_IDLE_TIMEOUT_MS) || 0) ?? 0;
|
|
511
|
+
const r9Total = options.timeoutMs ?? (Number(process.env.ARTIFACT_STREAM_TOTAL_TIMEOUT_MS || process.env.STREAM_TOTAL_TIMEOUT_MS) || 0) ?? 0;
|
|
512
|
+
const idle = createStreamAbortController({
|
|
513
|
+
idleMs: r9Idle > 0 ? r9Idle : 9e4,
|
|
514
|
+
totalMs: r9Total > 0 ? r9Total : 3e5
|
|
515
|
+
});
|
|
504
516
|
const res = await fetch(`${ninerouterBaseUrl}/chat/completions`, {
|
|
505
517
|
method: "POST",
|
|
506
518
|
headers: {
|
|
@@ -743,7 +755,12 @@ Guidelines:
|
|
|
743
755
|
try {
|
|
744
756
|
const rawUrl = resolveApiKey("NINEROUTER_BASE_URL") || resolveApiKey("NINE_ROUTER_BASE_URL") || "https://ai-router.orchable.app/v1";
|
|
745
757
|
const fbBaseUrl = rawUrl.replace(/["']/g, "").replace(/\/$/, "");
|
|
746
|
-
const
|
|
758
|
+
const fbIdle = options.idleTimeoutMs ?? (Number(process.env.ARTIFACT_STREAM_IDLE_TIMEOUT_MS || process.env.STREAM_IDLE_TIMEOUT_MS) || 0) ?? 0;
|
|
759
|
+
const fbTotal = options.timeoutMs ?? (Number(process.env.ARTIFACT_STREAM_TOTAL_TIMEOUT_MS || process.env.STREAM_TOTAL_TIMEOUT_MS) || 0) ?? 0;
|
|
760
|
+
const idle = createStreamAbortController({
|
|
761
|
+
idleMs: fbIdle > 0 ? fbIdle : 9e4,
|
|
762
|
+
totalMs: fbTotal > 0 ? fbTotal : 3e5
|
|
763
|
+
});
|
|
747
764
|
const res = await fetch(`${fbBaseUrl}/chat/completions`, {
|
|
748
765
|
method: "POST",
|
|
749
766
|
headers: {
|
|
@@ -18774,7 +18791,8 @@ function buildLanguageDirective(targetLanguage) {
|
|
|
18774
18791
|
- All section titles, table headers, table cells, lesson names, learning objectives, pedagogical narratives, and cognitive analyses MUST be written in natural, fluent, academic ${name}.
|
|
18775
18792
|
- Technical identifiers, code keywords (e.g. setup(), loop(), pinMode()), standard protocols (I2C, SPI, UART, GPIO), and component model numbers (ESP32, Arduino Uno) remain in standard technical notation, but all surrounding explanations MUST be in ${name}.
|
|
18776
18793
|
- DO NOT mix in paragraphs, tables, or titles written in any other language. Strict adherence is required.${exampleLine ? `
|
|
18777
|
-
${exampleLine}` : ""}
|
|
18794
|
+
${exampleLine}` : ""}
|
|
18795
|
+
- CJK / NON-LATIN SCRIPT BAN (ABSOLUTE): NEVER output characters from Chinese (\u6C49\u5B57), Japanese (\u304B\u306A/\u6F22\u5B57), or Korean (\uD55C\uAE00) scripts ANYWHERE in the document \u2014 not even a single glyph spliced inside a ${name} sentence. Observed past violations that are STRICTLY forbidden: \u6392\u67E5, \u5305\u542B, \u5BFC\u81F4, \u662F\u591A\u5C11, \u6280\u672F, \u771F\u673A, \u4F11\u606F, \u7EB8\u8D28. To express such meaning write it fully in ${name} or keep the ENGLISH technical term (e.g. write "t\u1EF1 ki\u1EC3m tra l\u1ED7i" / "self-debugging", "bao g\u1ED3m" / "includes"). A mechanical scanner rejects any document containing even one CJK character.`;
|
|
18778
18796
|
}
|
|
18779
18797
|
function matchesArtifactType(candidate, target) {
|
|
18780
18798
|
const c = candidate.trim().toUpperCase();
|