@thanh01.pmt/curriculum-kit 1.4.0 → 1.4.2
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/LICENSE +21 -0
- package/dist/ai/index.cjs +3 -1
- package/dist/ai/index.cjs.map +1 -1
- package/dist/ai/index.d.cts +4 -0
- package/dist/ai/index.d.ts +4 -0
- package/dist/ai/index.mjs +3 -1
- package/dist/ai/index.mjs.map +1 -1
- package/dist/index.cjs +471 -139
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -4
- package/dist/index.d.ts +11 -4
- package/dist/index.mjs +469 -140
- package/dist/index.mjs.map +1 -1
- package/dist/pipeline/index.cjs +3 -1
- package/dist/pipeline/index.cjs.map +1 -1
- package/dist/pipeline/index.mjs +3 -1
- package/dist/pipeline/index.mjs.map +1 -1
- package/dist/schemas/index.cjs +3 -1
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.d.cts +20 -0
- package/dist/schemas/index.d.ts +20 -0
- package/dist/schemas/index.mjs +3 -1
- package/dist/schemas/index.mjs.map +1 -1
- package/dist/standards/index.cjs +195 -1
- package/dist/standards/index.cjs.map +1 -1
- package/dist/standards/index.d.cts +20 -1
- package/dist/standards/index.d.ts +20 -1
- package/dist/standards/index.mjs +193 -2
- package/dist/standards/index.mjs.map +1 -1
- package/dist/workflow/index.cjs +222 -21
- package/dist/workflow/index.cjs.map +1 -1
- package/dist/workflow/index.mjs +222 -21
- package/dist/workflow/index.mjs.map +1 -1
- package/package.json +21 -22
package/dist/standards/index.cjs
CHANGED
|
@@ -857,9 +857,170 @@ var csta_k12_2017_default = {
|
|
|
857
857
|
]
|
|
858
858
|
};
|
|
859
859
|
|
|
860
|
+
// src/standards/data/acm-ieee-cs2023.json
|
|
861
|
+
var acm_ieee_cs2023_default = {
|
|
862
|
+
manifest: {
|
|
863
|
+
id: "acm-ieee-cs2023",
|
|
864
|
+
name: "ACM/IEEE-CS/AAAI Computer Science Curricula 2023 (CS2023)",
|
|
865
|
+
specVersion: "1.0",
|
|
866
|
+
contentVersion: "2023.1",
|
|
867
|
+
subject: "computing",
|
|
868
|
+
languages: ["en"],
|
|
869
|
+
gradeModel: {
|
|
870
|
+
type: "grades",
|
|
871
|
+
range: [9, 16]
|
|
872
|
+
},
|
|
873
|
+
provenance: {
|
|
874
|
+
sourceRef: "ACM/IEEE-CS/AAAI Computer Science Curricula 2023 - cs2023.org",
|
|
875
|
+
sourceUrl: "https://cs2023.org",
|
|
876
|
+
license: "ACM / IEEE Computer Society (cited verbatim for curriculum alignment)",
|
|
877
|
+
importedBy: "platform",
|
|
878
|
+
importedAt: "2026-09-11T00:00:00.000Z"
|
|
879
|
+
},
|
|
880
|
+
trust: "verified"
|
|
881
|
+
},
|
|
882
|
+
statements: [
|
|
883
|
+
{
|
|
884
|
+
id: "CS2023-SDF-01",
|
|
885
|
+
gradeBand: [9, 14],
|
|
886
|
+
texts: {
|
|
887
|
+
en: "Design, implement, test, and debug programs using basic computation, standard conditional and iterative structures, and functions."
|
|
888
|
+
},
|
|
889
|
+
classifications: [
|
|
890
|
+
{ axis: "Knowledge Area", value: "Software Development Fundamentals (SDF)" },
|
|
891
|
+
{ axis: "Core Tier", value: "Tier-1 Core" }
|
|
892
|
+
],
|
|
893
|
+
bloomHint: { process: "Apply" },
|
|
894
|
+
keywords: ["algorithms", "control structures", "functions", "variables", "debugging", "programming", "implementation"],
|
|
895
|
+
sourceRef: "CS2023, Software Development Fundamentals, Program Construction",
|
|
896
|
+
provenance: { method: "source_official" }
|
|
897
|
+
},
|
|
898
|
+
{
|
|
899
|
+
id: "CS2023-SDF-02",
|
|
900
|
+
gradeBand: [9, 14],
|
|
901
|
+
texts: {
|
|
902
|
+
en: "Apply fundamental data structures (arrays, lists, stacks, queues, hash maps) to represent collections of data and solve algorithmic problems."
|
|
903
|
+
},
|
|
904
|
+
classifications: [
|
|
905
|
+
{ axis: "Knowledge Area", value: "Software Development Fundamentals (SDF)" },
|
|
906
|
+
{ axis: "Core Tier", value: "Tier-1 Core" }
|
|
907
|
+
],
|
|
908
|
+
bloomHint: { process: "Apply" },
|
|
909
|
+
keywords: ["data structures", "arrays", "lists", "hash maps", "collections", "stacks", "queues"],
|
|
910
|
+
sourceRef: "CS2023, Software Development Fundamentals, Fundamental Data Structures",
|
|
911
|
+
provenance: { method: "source_official" }
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
id: "CS2023-AL-01",
|
|
915
|
+
gradeBand: [10, 16],
|
|
916
|
+
texts: {
|
|
917
|
+
en: "Analyze and compare the time and space complexity of fundamental algorithms using asymptotic notation (Big-O)."
|
|
918
|
+
},
|
|
919
|
+
classifications: [
|
|
920
|
+
{ axis: "Knowledge Area", value: "Algorithms and Complexity (AL)" },
|
|
921
|
+
{ axis: "Core Tier", value: "Tier-1 Core" }
|
|
922
|
+
],
|
|
923
|
+
bloomHint: { process: "Analyze" },
|
|
924
|
+
keywords: ["complexity", "big-o", "efficiency", "sorting", "searching", "asymptotic", "runtime"],
|
|
925
|
+
sourceRef: "CS2023, Algorithms and Complexity, Basic Analysis",
|
|
926
|
+
provenance: { method: "source_official" }
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
id: "CS2023-SE-01",
|
|
930
|
+
gradeBand: [9, 16],
|
|
931
|
+
texts: {
|
|
932
|
+
en: "Decompose complex problems into modular software components applying principles of abstraction, encapsulation, and separation of concerns."
|
|
933
|
+
},
|
|
934
|
+
classifications: [
|
|
935
|
+
{ axis: "Knowledge Area", value: "Software Engineering (SE)" },
|
|
936
|
+
{ axis: "Core Tier", value: "Tier-1 Core" }
|
|
937
|
+
],
|
|
938
|
+
bloomHint: { process: "Create" },
|
|
939
|
+
keywords: ["modularity", "abstraction", "software design", "refactoring", "encapsulation", "architecture"],
|
|
940
|
+
sourceRef: "CS2023, Software Engineering, Software Design and Architecture",
|
|
941
|
+
provenance: { method: "source_official" }
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
id: "CS2023-SEC-01",
|
|
945
|
+
gradeBand: [9, 16],
|
|
946
|
+
texts: {
|
|
947
|
+
en: "Incorporate defensive programming and fundamental cybersecurity principles (least privilege, input validation, secure data handling) into software development."
|
|
948
|
+
},
|
|
949
|
+
classifications: [
|
|
950
|
+
{ axis: "Knowledge Area", value: "Security (SEC)" },
|
|
951
|
+
{ axis: "Core Tier", value: "Tier-1 Core" }
|
|
952
|
+
],
|
|
953
|
+
bloomHint: { process: "Apply" },
|
|
954
|
+
keywords: ["security", "defensive programming", "input validation", "cybersecurity", "vulnerabilities"],
|
|
955
|
+
sourceRef: "CS2023, Security, Secure Software Development",
|
|
956
|
+
provenance: { method: "source_official" }
|
|
957
|
+
},
|
|
958
|
+
{
|
|
959
|
+
id: "CS2023-AI-01",
|
|
960
|
+
gradeBand: [10, 16],
|
|
961
|
+
texts: {
|
|
962
|
+
en: "Formulate machine learning tasks, prepare training and evaluation datasets, and evaluate model performance using standard metrics."
|
|
963
|
+
},
|
|
964
|
+
classifications: [
|
|
965
|
+
{ axis: "Knowledge Area", value: "Artificial Intelligence (AI)" },
|
|
966
|
+
{ axis: "Core Tier", value: "Tier-2 Core" }
|
|
967
|
+
],
|
|
968
|
+
bloomHint: { process: "Evaluate" },
|
|
969
|
+
keywords: ["artificial intelligence", "machine learning", "dataset", "evaluation", "model", "accuracy"],
|
|
970
|
+
sourceRef: "CS2023, Artificial Intelligence, Machine Learning Fundamentals",
|
|
971
|
+
provenance: { method: "source_official" }
|
|
972
|
+
}
|
|
973
|
+
],
|
|
974
|
+
mappings: [
|
|
975
|
+
{
|
|
976
|
+
statementId: "CS2023-SDF-01",
|
|
977
|
+
targetRef: "ontora:PROGRAM_CONSTRUCTION",
|
|
978
|
+
kind: "covers",
|
|
979
|
+
confidence: 0.95,
|
|
980
|
+
provenance: { method: "source_official" }
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
statementId: "CS2023-SDF-02",
|
|
984
|
+
targetRef: "ontora:DATA_STRUCTURES",
|
|
985
|
+
kind: "covers",
|
|
986
|
+
confidence: 0.95,
|
|
987
|
+
provenance: { method: "source_official" }
|
|
988
|
+
},
|
|
989
|
+
{
|
|
990
|
+
statementId: "CS2023-AL-01",
|
|
991
|
+
targetRef: "ontora:ALGORITHM_COMPLEXITY",
|
|
992
|
+
kind: "covers",
|
|
993
|
+
confidence: 0.95,
|
|
994
|
+
provenance: { method: "source_official" }
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
statementId: "CS2023-SE-01",
|
|
998
|
+
targetRef: "ontora:SOFTWARE_ARCHITECTURE",
|
|
999
|
+
kind: "covers",
|
|
1000
|
+
confidence: 0.95,
|
|
1001
|
+
provenance: { method: "source_official" }
|
|
1002
|
+
},
|
|
1003
|
+
{
|
|
1004
|
+
statementId: "CS2023-SEC-01",
|
|
1005
|
+
targetRef: "ontora:DEFENSIVE_PROGRAMMING",
|
|
1006
|
+
kind: "covers",
|
|
1007
|
+
confidence: 0.95,
|
|
1008
|
+
provenance: { method: "source_official" }
|
|
1009
|
+
},
|
|
1010
|
+
{
|
|
1011
|
+
statementId: "CS2023-AI-01",
|
|
1012
|
+
targetRef: "ontora:MACHINE_LEARNING",
|
|
1013
|
+
kind: "covers",
|
|
1014
|
+
confidence: 0.95,
|
|
1015
|
+
provenance: { method: "source_official" }
|
|
1016
|
+
}
|
|
1017
|
+
]
|
|
1018
|
+
};
|
|
1019
|
+
|
|
860
1020
|
// src/standards/bundledPacks.ts
|
|
861
1021
|
var BUNDLED_PACK_RECORDS = {
|
|
862
|
-
"csta-k12-2017": csta_k12_2017_default
|
|
1022
|
+
"csta-k12-2017": csta_k12_2017_default,
|
|
1023
|
+
"acm-ieee-cs2023": acm_ieee_cs2023_default
|
|
863
1024
|
};
|
|
864
1025
|
var BUNDLED_STANDARDS_PACK_IDS = Object.keys(BUNDLED_PACK_RECORDS).sort();
|
|
865
1026
|
var parsedPackCache = /* @__PURE__ */ new Map();
|
|
@@ -886,6 +1047,36 @@ function resolveStandardsPacks(packIds) {
|
|
|
886
1047
|
}
|
|
887
1048
|
return packs;
|
|
888
1049
|
}
|
|
1050
|
+
function findStandardStatement(statementIdOrRef) {
|
|
1051
|
+
if (!statementIdOrRef) return null;
|
|
1052
|
+
const [packPrefix, ...rest] = statementIdOrRef.split(":");
|
|
1053
|
+
const targetId = rest.length > 0 ? rest.join(":") : statementIdOrRef;
|
|
1054
|
+
const packs = resolveStandardsPacks(BUNDLED_STANDARDS_PACK_IDS);
|
|
1055
|
+
for (const pack of packs) {
|
|
1056
|
+
if (rest.length > 0 && pack.manifest.id !== packPrefix) continue;
|
|
1057
|
+
const stmt = pack.statements.find((s) => s.id.toLowerCase() === targetId.toLowerCase());
|
|
1058
|
+
if (stmt) {
|
|
1059
|
+
const description = stmt.texts["en"] || Object.values(stmt.texts)[0] || "";
|
|
1060
|
+
const category = stmt.classifications && stmt.classifications.length > 0 ? stmt.classifications.map((c) => c.value).join(", ") : void 0;
|
|
1061
|
+
const gradeBand = Array.isArray(stmt.gradeBand) ? stmt.gradeBand[0] === stmt.gradeBand[1] ? String(stmt.gradeBand[0]) : `${stmt.gradeBand[0]}-${stmt.gradeBand[1]}` : void 0;
|
|
1062
|
+
return {
|
|
1063
|
+
packId: pack.manifest.id,
|
|
1064
|
+
packTitle: pack.manifest.name,
|
|
1065
|
+
statementId: stmt.id,
|
|
1066
|
+
description,
|
|
1067
|
+
category,
|
|
1068
|
+
gradeBand
|
|
1069
|
+
};
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
return null;
|
|
1073
|
+
}
|
|
1074
|
+
var STANDARD_REF_REGEX = /\b(?:(?:csta-k12-2017|acm-ieee-cs2023):)?(?:[1-3][A-B]?-[A-Z]{2}-\d{2}|CS2023-[A-Z0-9_-]+)\b/gi;
|
|
1075
|
+
function extractStandardRefs(text) {
|
|
1076
|
+
if (!text) return [];
|
|
1077
|
+
const matches = Array.from(text.matchAll(STANDARD_REF_REGEX)).map((m) => m[0]);
|
|
1078
|
+
return Array.from(new Set(matches));
|
|
1079
|
+
}
|
|
889
1080
|
|
|
890
1081
|
exports.BUNDLED_STANDARDS_PACK_IDS = BUNDLED_STANDARDS_PACK_IDS;
|
|
891
1082
|
exports.BloomHintSchema = BloomHintSchema;
|
|
@@ -897,11 +1088,14 @@ exports.FrameworkStatementSchema = FrameworkStatementSchema;
|
|
|
897
1088
|
exports.GradeBandSchema = GradeBandSchema;
|
|
898
1089
|
exports.MappingKindSchema = MappingKindSchema;
|
|
899
1090
|
exports.RecordProvenanceSchema = RecordProvenanceSchema;
|
|
1091
|
+
exports.STANDARD_REF_REGEX = STANDARD_REF_REGEX;
|
|
900
1092
|
exports.StandardsRegistryAdapter = StandardsRegistryAdapter;
|
|
901
1093
|
exports.buildStandardStackMarkdown = buildStandardStackMarkdown;
|
|
902
1094
|
exports.buildStandardsContext = buildStandardsContext;
|
|
903
1095
|
exports.buildStandardsContextBlock = buildStandardsContextBlock;
|
|
904
1096
|
exports.evaluateStandardsCoverage = evaluateStandardsCoverage;
|
|
1097
|
+
exports.extractStandardRefs = extractStandardRefs;
|
|
1098
|
+
exports.findStandardStatement = findStandardStatement;
|
|
905
1099
|
exports.lintFrameworkPack = lintFrameworkPack;
|
|
906
1100
|
exports.resolveStandardsPacks = resolveStandardsPacks;
|
|
907
1101
|
exports.selectStatementsForLesson = selectStatementsForLesson;
|