@qlm/learnlog-mcp 0.0.0-stage → 0.2.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 (74) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +201 -0
  3. package/NOTICE +43 -0
  4. package/README.md +121 -2
  5. package/data/SOURCE_CORRECTION.md +9 -0
  6. package/data/THIRD_PARTY_DATA.md +148 -0
  7. package/data/examples/chain-tpc-clinical-v2-tampered.json +97 -0
  8. package/data/examples/chain-tpc-clinical-v2.json +95 -0
  9. package/data/examples/evidence-record-clean.json +173 -0
  10. package/data/examples/evidence-record-tampered.json +173 -0
  11. package/data/labpath-worlds.json +107 -0
  12. package/data/preprint/README.md +10 -0
  13. package/data/preprint/assistments_episodes.json +37 -0
  14. package/data/preprint/cross_source_episodes.json +63 -0
  15. package/data/provenance/oatutor.json +84 -0
  16. package/data/provenance/source-audit.json +69 -0
  17. package/data/provenance/tutormoments.json +91 -0
  18. package/data/samples/explicit-assistance-SYNTHETIC.jsonl +5 -0
  19. package/data/samples/oatutor-real-participants.csv +13 -0
  20. package/data/samples/sandpiper-SYNTHETIC.csv +9 -0
  21. package/data/samples/tutormoments-real-transcripts.jsonl +2 -0
  22. package/dist/bin.js +6 -0
  23. package/dist/episodes.js +488 -0
  24. package/dist/files.js +39 -0
  25. package/dist/package.js +14 -0
  26. package/dist/py.js +419 -0
  27. package/dist/respond.js +47 -0
  28. package/dist/sealed.js +31 -0
  29. package/dist/server.js +115 -0
  30. package/dist/stages.js +35 -0
  31. package/dist/tools/formats.js +35 -0
  32. package/dist/tools/inventory.js +179 -0
  33. package/dist/tools/learning-graph.js +111 -0
  34. package/dist/tools/misconceptions.js +54 -0
  35. package/dist/tools/preprint.js +241 -0
  36. package/dist/tools/qlm-datasets.js +56 -0
  37. package/dist/tools/transform.js +61 -0
  38. package/dist/tools/validate.js +47 -0
  39. package/dist/tools/verify-credential.js +155 -0
  40. package/dist/tools/verify-evidence.js +51 -0
  41. package/dist/tools/worlds.js +24 -0
  42. package/dist/transformer.js +92 -0
  43. package/dist/zip.js +71 -0
  44. package/package.json +66 -4
  45. package/skills/learnlog-assistments/SKILL.md +38 -0
  46. package/skills/learnlog-export-to-action/SKILL.md +31 -0
  47. package/skills/learnlog-learning-commons/SKILL.md +33 -0
  48. package/skills/learnlog-nto-sandpiper/SKILL.md +31 -0
  49. package/vendor/PROVENANCE.json +259 -0
  50. package/vendor/qlm-measure/checks.d.ts +24 -0
  51. package/vendor/qlm-measure/checks.js +42 -0
  52. package/vendor/qlm-measure/cli.d.ts +17 -0
  53. package/vendor/qlm-measure/cli.js +461 -0
  54. package/vendor/qlm-measure/rules.d.ts +10 -0
  55. package/vendor/qlm-measure/rules.js +46 -0
  56. package/vendor/qlm-measure/schemes/index.d.ts +133 -0
  57. package/vendor/qlm-measure/schemes/index.js +339 -0
  58. package/vendor/qlm-measure/schemes/node.d.ts +8 -0
  59. package/vendor/qlm-measure/schemes/node.js +15 -0
  60. package/vendor/qlm-measure/schemes/products.d.ts +38 -0
  61. package/vendor/qlm-measure/schemes/products.js +725 -0
  62. package/vendor/qlm-measure/verifier/hash.d.ts +27 -0
  63. package/vendor/qlm-measure/verifier/hash.js +163 -0
  64. package/vendor/qlm-measure/verifier/verify-record.d.ts +22 -0
  65. package/vendor/qlm-measure/verifier/verify-record.js +123 -0
  66. package/vendor/qlm-measure/verifier-v03.d.ts +24 -0
  67. package/vendor/qlm-measure/verifier-v03.js +205 -0
  68. package/vendor/transformer/LICENSE.txt +29 -0
  69. package/vendor/transformer/cross-source-analysis-data.d.mts +3 -0
  70. package/vendor/transformer/cross-source-analysis-data.mjs +238 -0
  71. package/vendor/transformer/engine.d.mts +61 -0
  72. package/vendor/transformer/engine.mjs +445 -0
  73. package/vendor/transformer/profiles.mjs +309 -0
  74. package/vendor/transformer/research-semantics.mjs +1453 -0
@@ -0,0 +1,97 @@
1
+ {
2
+ "scheme": "tpc/clinical-v2",
3
+ "family": "tpc/clinical",
4
+ "source": "v2 vector with confidence edited on event 2",
5
+ "expect": {
6
+ "clean": false,
7
+ "hash_scheme": "tpc/clinical-v2",
8
+ "tampered": 1,
9
+ "tampered_index": 2
10
+ },
11
+ "events": [
12
+ {
13
+ "type": "clinical_evidence",
14
+ "learner": "L-7f3a",
15
+ "encounter": "RN-R4-01",
16
+ "turn": 0,
17
+ "construct": "review_of_systems",
18
+ "signal": "demonstrated",
19
+ "scaffold": 0,
20
+ "extractor": "llm_extractor_v2",
21
+ "confidence": 0.85,
22
+ "prev_hash": "genesis",
23
+ "hash": "4a625c6caf11d91c585bb4e3b74cda6c0276a3aa21d8deaa74fa5df9e14be91a"
24
+ },
25
+ {
26
+ "type": "clinical_evidence",
27
+ "learner": "L-7f3a",
28
+ "encounter": "RN-R4-01",
29
+ "turn": 1,
30
+ "construct": "medication_history",
31
+ "signal": "partial",
32
+ "scaffold": 1,
33
+ "extractor": "llm_extractor_v2",
34
+ "confidence": 0.5,
35
+ "prev_hash": "4a625c6caf11d91c585bb4e3b74cda6c0276a3aa21d8deaa74fa5df9e14be91a",
36
+ "triage_class": "yellow",
37
+ "engine_version": "tpc-engine-1.4.2",
38
+ "hash": "b7f9580c66ed8b950d015be8f26b56d80e09fc2f51eb59ee0843869378315243"
39
+ },
40
+ {
41
+ "type": "clinical_evidence",
42
+ "learner": "L-7f3a",
43
+ "encounter": "RN-R4-01",
44
+ "turn": 2,
45
+ "construct": "escalation",
46
+ "signal": "missed_opportunity",
47
+ "scaffold": 2,
48
+ "extractor": "llm_extractor_v2",
49
+ "confidence": 0.51,
50
+ "prev_hash": "b7f9580c66ed8b950d015be8f26b56d80e09fc2f51eb59ee0843869378315243",
51
+ "hash": "8d20d9161a72028f06ea5f0aa757f0ae2caee04bd533456ac02de18c62adf29a"
52
+ },
53
+ {
54
+ "type": "clinical_evidence",
55
+ "learner": "L-7f3a",
56
+ "encounter": "RN-R4-01",
57
+ "turn": 3,
58
+ "construct": "review_of_systems",
59
+ "signal": "not_observable",
60
+ "scaffold": 3,
61
+ "extractor": "session_resume",
62
+ "confidence": 0.000001,
63
+ "prev_hash": "8d20d9161a72028f06ea5f0aa757f0ae2caee04bd533456ac02de18c62adf29a",
64
+ "triage_class": "yellow",
65
+ "engine_version": "tpc-engine-1.4.2",
66
+ "hash": "5adbe5bc6590aff68117e8630a137984a35c6d33a4aa952f8ec5e168d973ba12"
67
+ },
68
+ {
69
+ "type": "clinical_evidence",
70
+ "learner": "L-7f3a",
71
+ "encounter": "RN-R4-01",
72
+ "turn": 4,
73
+ "construct": "medication_history",
74
+ "signal": "demonstrated",
75
+ "scaffold": 0,
76
+ "extractor": "llm_extractor_v2",
77
+ "confidence": 1e-7,
78
+ "prev_hash": "5adbe5bc6590aff68117e8630a137984a35c6d33a4aa952f8ec5e168d973ba12",
79
+ "hash": "865cb968acd85e753c78c2ff7c9f8dfe5290c3102cb0c99dacfa503f3868a344"
80
+ },
81
+ {
82
+ "type": "clinical_evidence",
83
+ "learner": "L-7f3a",
84
+ "encounter": "RN-R4-01",
85
+ "turn": 5,
86
+ "construct": "escalation",
87
+ "signal": "partial",
88
+ "scaffold": 1,
89
+ "extractor": "llm_extractor_v2",
90
+ "confidence": 0.123456789012345,
91
+ "prev_hash": "865cb968acd85e753c78c2ff7c9f8dfe5290c3102cb0c99dacfa503f3868a344",
92
+ "triage_class": "yellow",
93
+ "engine_version": "tpc-engine-1.4.2",
94
+ "hash": "dd454b15b37ee887323dc01fc3c487ec3b432fd6ff8f910f9b3cc832a7ea17bd"
95
+ }
96
+ ]
97
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "scheme": "tpc/clinical-v2",
3
+ "family": "tpc/clinical",
4
+ "source": "teachproof evidence-schema.ts computeEventHash (12 fields, 2026-09-10)",
5
+ "expect": {
6
+ "clean": true,
7
+ "hash_scheme": "tpc/clinical-v2"
8
+ },
9
+ "events": [
10
+ {
11
+ "type": "clinical_evidence",
12
+ "learner": "L-7f3a",
13
+ "encounter": "RN-R4-01",
14
+ "turn": 0,
15
+ "construct": "review_of_systems",
16
+ "signal": "demonstrated",
17
+ "scaffold": 0,
18
+ "extractor": "llm_extractor_v2",
19
+ "confidence": 0.85,
20
+ "prev_hash": "genesis",
21
+ "hash": "4a625c6caf11d91c585bb4e3b74cda6c0276a3aa21d8deaa74fa5df9e14be91a"
22
+ },
23
+ {
24
+ "type": "clinical_evidence",
25
+ "learner": "L-7f3a",
26
+ "encounter": "RN-R4-01",
27
+ "turn": 1,
28
+ "construct": "medication_history",
29
+ "signal": "partial",
30
+ "scaffold": 1,
31
+ "extractor": "llm_extractor_v2",
32
+ "confidence": 0.5,
33
+ "prev_hash": "4a625c6caf11d91c585bb4e3b74cda6c0276a3aa21d8deaa74fa5df9e14be91a",
34
+ "triage_class": "yellow",
35
+ "engine_version": "tpc-engine-1.4.2",
36
+ "hash": "b7f9580c66ed8b950d015be8f26b56d80e09fc2f51eb59ee0843869378315243"
37
+ },
38
+ {
39
+ "type": "clinical_evidence",
40
+ "learner": "L-7f3a",
41
+ "encounter": "RN-R4-01",
42
+ "turn": 2,
43
+ "construct": "escalation",
44
+ "signal": "missed_opportunity",
45
+ "scaffold": 2,
46
+ "extractor": "llm_extractor_v2",
47
+ "confidence": 1,
48
+ "prev_hash": "b7f9580c66ed8b950d015be8f26b56d80e09fc2f51eb59ee0843869378315243",
49
+ "hash": "8d20d9161a72028f06ea5f0aa757f0ae2caee04bd533456ac02de18c62adf29a"
50
+ },
51
+ {
52
+ "type": "clinical_evidence",
53
+ "learner": "L-7f3a",
54
+ "encounter": "RN-R4-01",
55
+ "turn": 3,
56
+ "construct": "review_of_systems",
57
+ "signal": "not_observable",
58
+ "scaffold": 3,
59
+ "extractor": "session_resume",
60
+ "confidence": 0.000001,
61
+ "prev_hash": "8d20d9161a72028f06ea5f0aa757f0ae2caee04bd533456ac02de18c62adf29a",
62
+ "triage_class": "yellow",
63
+ "engine_version": "tpc-engine-1.4.2",
64
+ "hash": "5adbe5bc6590aff68117e8630a137984a35c6d33a4aa952f8ec5e168d973ba12"
65
+ },
66
+ {
67
+ "type": "clinical_evidence",
68
+ "learner": "L-7f3a",
69
+ "encounter": "RN-R4-01",
70
+ "turn": 4,
71
+ "construct": "medication_history",
72
+ "signal": "demonstrated",
73
+ "scaffold": 0,
74
+ "extractor": "llm_extractor_v2",
75
+ "confidence": 1e-7,
76
+ "prev_hash": "5adbe5bc6590aff68117e8630a137984a35c6d33a4aa952f8ec5e168d973ba12",
77
+ "hash": "865cb968acd85e753c78c2ff7c9f8dfe5290c3102cb0c99dacfa503f3868a344"
78
+ },
79
+ {
80
+ "type": "clinical_evidence",
81
+ "learner": "L-7f3a",
82
+ "encounter": "RN-R4-01",
83
+ "turn": 5,
84
+ "construct": "escalation",
85
+ "signal": "partial",
86
+ "scaffold": 1,
87
+ "extractor": "llm_extractor_v2",
88
+ "confidence": 0.123456789012345,
89
+ "prev_hash": "865cb968acd85e753c78c2ff7c9f8dfe5290c3102cb0c99dacfa503f3868a344",
90
+ "triage_class": "yellow",
91
+ "engine_version": "tpc-engine-1.4.2",
92
+ "hash": "dd454b15b37ee887323dc01fc3c487ec3b432fd6ff8f910f9b3cc832a7ea17bd"
93
+ }
94
+ ]
95
+ }
@@ -0,0 +1,173 @@
1
+ {
2
+ "studentScopeId": "syn-8f2c-0042",
3
+ "schemaVersion": "0.2",
4
+ "entries": [
5
+ {
6
+ "version": 1,
7
+ "timestamp": "2026-08-15T14:20:00.000Z",
8
+ "event": {
9
+ "studentId": "syn-8f2c-0042",
10
+ "sessionId": "sess-2026-08-15-003",
11
+ "source": "qlm-measure-samples",
12
+ "timestamp": "2026-08-15T14:20:00.000Z",
13
+ "correct": false,
14
+ "responseTimeMs": 9200,
15
+ "domain": "math",
16
+ "skillId": "fractions.equivalence",
17
+ "scaffoldType": "none",
18
+ "ext": {
19
+ "itemId": "FR-EQ-01",
20
+ "synthetic": true
21
+ },
22
+ "misconceptionId": "sample:frac-add-across",
23
+ "epistemicMode": "inference"
24
+ },
25
+ "scaffoldType": "none",
26
+ "triageResult": "misconception",
27
+ "epistemicMode": "inference",
28
+ "evidentialWeight": 1.0,
29
+ "priorPosterior": 0.35,
30
+ "updatedPosterior": 0.0631,
31
+ "prevHash": "",
32
+ "entryHash": "9667a8bb6b2a4b6246f10d4f5d4e071a71037374b101cbbdea70ce368257e5c8"
33
+ },
34
+ {
35
+ "version": 2,
36
+ "timestamp": "2026-08-15T14:20:41.000Z",
37
+ "event": {
38
+ "studentId": "syn-8f2c-0042",
39
+ "sessionId": "sess-2026-08-15-003",
40
+ "source": "qlm-measure-samples",
41
+ "timestamp": "2026-08-15T14:20:41.000Z",
42
+ "correct": true,
43
+ "responseTimeMs": 6100,
44
+ "domain": "math",
45
+ "skillId": "fractions.equivalence",
46
+ "scaffoldType": "hint",
47
+ "ext": {
48
+ "itemId": "FR-EQ-02",
49
+ "synthetic": true
50
+ },
51
+ "epistemicMode": "inference"
52
+ },
53
+ "scaffoldType": "hint",
54
+ "triageResult": "correct",
55
+ "epistemicMode": "inference",
56
+ "evidentialWeight": 0.42,
57
+ "priorPosterior": 0.0631,
58
+ "updatedPosterior": 0.1124,
59
+ "prevHash": "9667a8bb6b2a4b6246f10d4f5d4e071a71037374b101cbbdea70ce368257e5c8",
60
+ "entryHash": "61c1501ed3c8a6011ddfd65012cc730833a504f3b8ac516f2ac12b10aa7d7c58"
61
+ },
62
+ {
63
+ "version": 3,
64
+ "timestamp": "2026-08-15T14:21:39.000Z",
65
+ "event": {
66
+ "studentId": "syn-8f2c-0042",
67
+ "sessionId": "sess-2026-08-15-003",
68
+ "source": "qlm-measure-samples",
69
+ "timestamp": "2026-08-15T14:21:39.000Z",
70
+ "correct": true,
71
+ "responseTimeMs": 4300,
72
+ "domain": "math",
73
+ "skillId": "fractions.equivalence",
74
+ "scaffoldType": "none",
75
+ "ext": {
76
+ "itemId": "FR-EQ-03",
77
+ "synthetic": true
78
+ }
79
+ },
80
+ "scaffoldType": "none",
81
+ "triageResult": "correct",
82
+ "evidentialWeight": 1.0,
83
+ "priorPosterior": 0.1124,
84
+ "updatedPosterior": 0.363,
85
+ "prevHash": "61c1501ed3c8a6011ddfd65012cc730833a504f3b8ac516f2ac12b10aa7d7c58",
86
+ "entryHash": "a373130a25db98f14c321787d34cb5ae3360d17693e1a21bca3d5a680b394c83"
87
+ },
88
+ {
89
+ "version": 4,
90
+ "timestamp": "2026-08-15T14:22:52.000Z",
91
+ "event": {
92
+ "studentId": "syn-8f2c-0042",
93
+ "sessionId": "sess-2026-08-15-003",
94
+ "source": "qlm-measure-samples",
95
+ "timestamp": "2026-08-15T14:22:52.000Z",
96
+ "correct": true,
97
+ "responseTimeMs": 3800,
98
+ "domain": "math",
99
+ "skillId": "fractions.equivalence",
100
+ "scaffoldType": "explain",
101
+ "ext": {
102
+ "itemId": "FR-EQ-04",
103
+ "synthetic": true
104
+ },
105
+ "epistemicMode": "testimony"
106
+ },
107
+ "scaffoldType": "explain",
108
+ "triageResult": "correct",
109
+ "epistemicMode": "testimony",
110
+ "evidentialWeight": 0.3,
111
+ "priorPosterior": 0.363,
112
+ "updatedPosterior": 0.4723,
113
+ "prevHash": "a373130a25db98f14c321787d34cb5ae3360d17693e1a21bca3d5a680b394c83",
114
+ "entryHash": "be6db1a0deb40833228bc5d5d65cab1e3c9a5ff06c44e91ee4922c5ad6ea6a27"
115
+ },
116
+ {
117
+ "version": 5,
118
+ "timestamp": "2026-08-15T14:23:58.000Z",
119
+ "event": {
120
+ "studentId": "syn-8f2c-0042",
121
+ "sessionId": "sess-2026-08-15-003",
122
+ "source": "qlm-measure-samples",
123
+ "timestamp": "2026-08-15T14:23:58.000Z",
124
+ "correct": true,
125
+ "responseTimeMs": 5200,
126
+ "domain": "math",
127
+ "skillId": "fractions.equivalence",
128
+ "scaffoldType": "probing",
129
+ "ext": {
130
+ "itemId": "FR-EQ-05",
131
+ "synthetic": true
132
+ },
133
+ "epistemicMode": "inference",
134
+ "explanationQuality": 0.7
135
+ },
136
+ "scaffoldType": "probing",
137
+ "triageResult": "correct",
138
+ "epistemicMode": "inference",
139
+ "evidentialWeight": 0.75,
140
+ "priorPosterior": 0.4723,
141
+ "updatedPosterior": 0.7344,
142
+ "prevHash": "be6db1a0deb40833228bc5d5d65cab1e3c9a5ff06c44e91ee4922c5ad6ea6a27",
143
+ "entryHash": "cde0c819370ca6bb0660907f8ff563644a0029983c7940db79aecf7cb569dc3e"
144
+ },
145
+ {
146
+ "version": 6,
147
+ "timestamp": "2026-08-15T14:24:47.000Z",
148
+ "event": {
149
+ "studentId": "syn-8f2c-0042",
150
+ "sessionId": "sess-2026-08-15-003",
151
+ "source": "qlm-measure-samples",
152
+ "timestamp": "2026-08-15T14:24:47.000Z",
153
+ "correct": true,
154
+ "responseTimeMs": 3100,
155
+ "domain": "math",
156
+ "skillId": "fractions.equivalence",
157
+ "scaffoldType": "none",
158
+ "ext": {
159
+ "itemId": "FR-EQ-06",
160
+ "synthetic": true
161
+ },
162
+ "isTransferProblem": true
163
+ },
164
+ "scaffoldType": "none",
165
+ "triageResult": "correct",
166
+ "evidentialWeight": 1.0,
167
+ "priorPosterior": 0.7344,
168
+ "updatedPosterior": 0.9256,
169
+ "prevHash": "cde0c819370ca6bb0660907f8ff563644a0029983c7940db79aecf7cb569dc3e",
170
+ "entryHash": "af100be1706e1c7b83706efb10be7d71c2d51ac09894fa4afb14a8360ba5090b"
171
+ }
172
+ ]
173
+ }
@@ -0,0 +1,173 @@
1
+ {
2
+ "studentScopeId": "syn-8f2c-0042",
3
+ "schemaVersion": "0.2",
4
+ "entries": [
5
+ {
6
+ "version": 1,
7
+ "timestamp": "2026-08-15T14:20:00.000Z",
8
+ "event": {
9
+ "studentId": "syn-8f2c-0042",
10
+ "sessionId": "sess-2026-08-15-003",
11
+ "source": "qlm-measure-samples",
12
+ "timestamp": "2026-08-15T14:20:00.000Z",
13
+ "correct": false,
14
+ "responseTimeMs": 9200,
15
+ "domain": "math",
16
+ "skillId": "fractions.equivalence",
17
+ "scaffoldType": "none",
18
+ "ext": {
19
+ "itemId": "FR-EQ-01",
20
+ "synthetic": true
21
+ },
22
+ "misconceptionId": "sample:frac-add-across",
23
+ "epistemicMode": "inference"
24
+ },
25
+ "scaffoldType": "none",
26
+ "triageResult": "misconception",
27
+ "epistemicMode": "inference",
28
+ "evidentialWeight": 1.0,
29
+ "priorPosterior": 0.35,
30
+ "updatedPosterior": 0.0631,
31
+ "prevHash": "",
32
+ "entryHash": "9667a8bb6b2a4b6246f10d4f5d4e071a71037374b101cbbdea70ce368257e5c8"
33
+ },
34
+ {
35
+ "version": 2,
36
+ "timestamp": "2026-08-15T14:20:41.000Z",
37
+ "event": {
38
+ "studentId": "syn-8f2c-0042",
39
+ "sessionId": "sess-2026-08-15-003",
40
+ "source": "qlm-measure-samples",
41
+ "timestamp": "2026-08-15T14:20:41.000Z",
42
+ "correct": true,
43
+ "responseTimeMs": 6100,
44
+ "domain": "math",
45
+ "skillId": "fractions.equivalence",
46
+ "scaffoldType": "hint",
47
+ "ext": {
48
+ "itemId": "FR-EQ-02",
49
+ "synthetic": true
50
+ },
51
+ "epistemicMode": "inference"
52
+ },
53
+ "scaffoldType": "hint",
54
+ "triageResult": "correct",
55
+ "epistemicMode": "inference",
56
+ "evidentialWeight": 0.42,
57
+ "priorPosterior": 0.0631,
58
+ "updatedPosterior": 0.1124,
59
+ "prevHash": "9667a8bb6b2a4b6246f10d4f5d4e071a71037374b101cbbdea70ce368257e5c8",
60
+ "entryHash": "61c1501ed3c8a6011ddfd65012cc730833a504f3b8ac516f2ac12b10aa7d7c58"
61
+ },
62
+ {
63
+ "version": 3,
64
+ "timestamp": "2026-08-15T14:21:39.000Z",
65
+ "event": {
66
+ "studentId": "syn-8f2c-0042",
67
+ "sessionId": "sess-2026-08-15-003",
68
+ "source": "qlm-measure-samples",
69
+ "timestamp": "2026-08-15T14:21:39.000Z",
70
+ "correct": true,
71
+ "responseTimeMs": 4300,
72
+ "domain": "math",
73
+ "skillId": "fractions.equivalence",
74
+ "scaffoldType": "none",
75
+ "ext": {
76
+ "itemId": "FR-EQ-03",
77
+ "synthetic": true
78
+ }
79
+ },
80
+ "scaffoldType": "none",
81
+ "triageResult": "correct",
82
+ "evidentialWeight": 1.0,
83
+ "priorPosterior": 0.1124,
84
+ "updatedPosterior": 0.463,
85
+ "prevHash": "61c1501ed3c8a6011ddfd65012cc730833a504f3b8ac516f2ac12b10aa7d7c58",
86
+ "entryHash": "a373130a25db98f14c321787d34cb5ae3360d17693e1a21bca3d5a680b394c83"
87
+ },
88
+ {
89
+ "version": 4,
90
+ "timestamp": "2026-08-15T14:22:52.000Z",
91
+ "event": {
92
+ "studentId": "syn-8f2c-0042",
93
+ "sessionId": "sess-2026-08-15-003",
94
+ "source": "qlm-measure-samples",
95
+ "timestamp": "2026-08-15T14:22:52.000Z",
96
+ "correct": true,
97
+ "responseTimeMs": 3800,
98
+ "domain": "math",
99
+ "skillId": "fractions.equivalence",
100
+ "scaffoldType": "explain",
101
+ "ext": {
102
+ "itemId": "FR-EQ-04",
103
+ "synthetic": true
104
+ },
105
+ "epistemicMode": "testimony"
106
+ },
107
+ "scaffoldType": "explain",
108
+ "triageResult": "correct",
109
+ "epistemicMode": "testimony",
110
+ "evidentialWeight": 0.3,
111
+ "priorPosterior": 0.363,
112
+ "updatedPosterior": 0.4723,
113
+ "prevHash": "a373130a25db98f14c321787d34cb5ae3360d17693e1a21bca3d5a680b394c83",
114
+ "entryHash": "be6db1a0deb40833228bc5d5d65cab1e3c9a5ff06c44e91ee4922c5ad6ea6a27"
115
+ },
116
+ {
117
+ "version": 5,
118
+ "timestamp": "2026-08-15T14:23:58.000Z",
119
+ "event": {
120
+ "studentId": "syn-8f2c-0042",
121
+ "sessionId": "sess-2026-08-15-003",
122
+ "source": "qlm-measure-samples",
123
+ "timestamp": "2026-08-15T14:23:58.000Z",
124
+ "correct": true,
125
+ "responseTimeMs": 5200,
126
+ "domain": "math",
127
+ "skillId": "fractions.equivalence",
128
+ "scaffoldType": "probing",
129
+ "ext": {
130
+ "itemId": "FR-EQ-05",
131
+ "synthetic": true
132
+ },
133
+ "epistemicMode": "inference",
134
+ "explanationQuality": 0.7
135
+ },
136
+ "scaffoldType": "probing",
137
+ "triageResult": "correct",
138
+ "epistemicMode": "inference",
139
+ "evidentialWeight": 0.75,
140
+ "priorPosterior": 0.4723,
141
+ "updatedPosterior": 0.7344,
142
+ "prevHash": "be6db1a0deb40833228bc5d5d65cab1e3c9a5ff06c44e91ee4922c5ad6ea6a27",
143
+ "entryHash": "cde0c819370ca6bb0660907f8ff563644a0029983c7940db79aecf7cb569dc3e"
144
+ },
145
+ {
146
+ "version": 6,
147
+ "timestamp": "2026-08-15T14:24:47.000Z",
148
+ "event": {
149
+ "studentId": "syn-8f2c-0042",
150
+ "sessionId": "sess-2026-08-15-003",
151
+ "source": "qlm-measure-samples",
152
+ "timestamp": "2026-08-15T14:24:47.000Z",
153
+ "correct": true,
154
+ "responseTimeMs": 3100,
155
+ "domain": "math",
156
+ "skillId": "fractions.equivalence",
157
+ "scaffoldType": "none",
158
+ "ext": {
159
+ "itemId": "FR-EQ-06",
160
+ "synthetic": true
161
+ },
162
+ "isTransferProblem": true
163
+ },
164
+ "scaffoldType": "none",
165
+ "triageResult": "correct",
166
+ "evidentialWeight": 1.0,
167
+ "priorPosterior": 0.7344,
168
+ "updatedPosterior": 0.9256,
169
+ "prevHash": "cde0c819370ca6bb0660907f8ff563644a0029983c7940db79aecf7cb569dc3e",
170
+ "entryHash": "af100be1706e1c7b83706efb10be7d71c2d51ac09894fa4afb14a8360ba5090b"
171
+ }
172
+ ]
173
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "source": "Each world's public page on play.quantumlearningmachines.com: the page's heading is the world's name. Built by scripts/refresh-worlds.mjs from every mode id in QLM's misconception, learning-graph and standards exports.",
3
+ "checked": "2026-10-24",
4
+ "url_pattern": "https://play.quantumlearningmachines.com/ecogenesis/worlds/{id}",
5
+ "worlds": {
6
+ "adaptationlab": "Adaptation Lab",
7
+ "aerospacelab": "Aerospace Lab",
8
+ "algebralab": "Algebra Lab",
9
+ "anglelab": "Angle Lab",
10
+ "artlab": "Art Lab",
11
+ "assistivedesign": "Assistive Design",
12
+ "bioforge": "Bio Forge",
13
+ "bizcase": "Business Case",
14
+ "bodyatlas": "Body Atlas",
15
+ "bodyintro": "Body Intro",
16
+ "buildlab": "Build Lab",
17
+ "celldivision": "Cell Division",
18
+ "cellworld": "Cell World",
19
+ "circuitmind": "Circuit Mind",
20
+ "climateengine": "Climate Engine",
21
+ "clinical-nurse": "Clinical Nurse Residency",
22
+ "clinicalsim": "Clinical Sim",
23
+ "codecraft": "Code Craft",
24
+ "codelab": "Code Lab",
25
+ "coordinategrid": "Coordinate Grid",
26
+ "cybersim": "Cyber Sim",
27
+ "datalab": "Data Lab",
28
+ "datalabelementary": "Data Lab Elementary",
29
+ "decimalbridge": "Decimal Bridge",
30
+ "dissectlab": "Dissect Lab",
31
+ "divisionlab": "Division Lab",
32
+ "earthhistory": "Earth History",
33
+ "ecosystem": "Ecosystem",
34
+ "energytransfer": "Energy Transfer",
35
+ "equationsolver": "Equation Solver",
36
+ "evolvesim": "Evolve Sim",
37
+ "exponentlab": "Exponent Lab",
38
+ "expressionlab": "Expression Lab",
39
+ "fluidlab": "Fluid Lab",
40
+ "foodweb": "Food Web",
41
+ "forcefield": "Force Field",
42
+ "fractionforge": "Fraction Forge",
43
+ "functionintro": "Function Intro",
44
+ "genelab": "Gene Lab",
45
+ "geoforge": "Geo Forge",
46
+ "geoproof": "Geo Proof",
47
+ "graphverse": "Graphverse",
48
+ "greenworks": "Green Works",
49
+ "heredityintro": "Heredity Intro",
50
+ "historysim": "History Sim",
51
+ "humanimpact": "Human Impact",
52
+ "inequalitylab": "Inequality Lab",
53
+ "k2bioshell": "Who lives where",
54
+ "lightlab": "Light Lab",
55
+ "linearlab": "Linear Lab",
56
+ "madeworld": "Made World",
57
+ "magnetlab": "Magnet Lab",
58
+ "makeshop": "Make Shop",
59
+ "measurelab": "Measure Lab",
60
+ "mechanismlab": "Mechanism Lab",
61
+ "microbelab": "Microbe Lab",
62
+ "moleculeforge": "Molecule Forge",
63
+ "multiplyforge": "Multiply Forge",
64
+ "musiclab": "Music Lab",
65
+ "neuralpath": "Neural Path",
66
+ "opticsbench": "Optics Bench",
67
+ "optometry-clinical": "Optometry Clinical Residency",
68
+ "orbitlab": "Orbit Lab",
69
+ "patternlab": "Pattern Lab",
70
+ "pelab": "PE Lab",
71
+ "placevaluelab": "Place Value Lab",
72
+ "plantlab": "Plant Lab",
73
+ "probabilitylab": "Probability Lab",
74
+ "proofbuilder": "Proof Builder",
75
+ "proportionlab": "Proportion Lab",
76
+ "pythagoraslab": "Pythagoras Lab",
77
+ "quantumlab": "Quantum Lab",
78
+ "ratiorate": "Ratio Rate",
79
+ "reactionlab": "Reaction Lab",
80
+ "reactorcore": "Reactor Core",
81
+ "roboticslab": "Robotics Lab",
82
+ "rocklab": "Rock Lab",
83
+ "scatterlab": "Scatter Lab",
84
+ "sellab": "SEL Lab",
85
+ "sensecontrol": "Sense & Control",
86
+ "shapebuilder": "Shape Builder",
87
+ "simpleforces": "Simple Forces",
88
+ "skywatch": "SkyWatch",
89
+ "solarsystemlab": "Solar System Lab",
90
+ "soundlab": "Sound Lab",
91
+ "spaceexplorer": "Space Explorer",
92
+ "statesofmatter": "States of Matter",
93
+ "statsphere": "Statsphere",
94
+ "stellarlab": "Stellar Lab",
95
+ "surfacevolumelab": "Surface & Volume Lab",
96
+ "synthlab": "Synth Lab",
97
+ "terramap": "Terra Map",
98
+ "timemoneyunits": "Time Money Units",
99
+ "waterlab": "Water Lab",
100
+ "waveworld": "Wave World",
101
+ "weatherlab": "Weather Lab",
102
+ "wordproblemengine": "Word Problem Engine",
103
+ "worldlang": "World Language",
104
+ "writecraft": "WriteCraft",
105
+ "writingsim": "Writing Reader"
106
+ }
107
+ }
@@ -0,0 +1,10 @@
1
+ # Learnlog assistance episodes across three released datasets
2
+
3
+ Scripts and aggregate outputs for the episode analysis in the Learnlog preprint (version 0.6). Counts only; no learner data.
4
+
5
+ - `cross_source.py` → `cross_source_episodes.json`: Zenodo 17551130 v1 (next-step hints) and IDETrace deployment 8, pinned by SHA-256 in the output.
6
+ - `assistments_episodes.py` → `assistments_episodes.json`: ASSISTments 2012-13 School Data with Affect. The data were provided by the ASSISTments TestBed (WPI) and are not redistributed here; obtain them from ASSISTments under its terms of use. This script is published because those terms ask that algorithms used with the data be made public.
7
+
8
+ Rules for every count are in each script's docstring and in Supplement S1 of the preprint. Written with Claude (Anthropic) and run by the author on his own machine.
9
+
10
+ Correction (October 21, 2026): the Zenodo activity file is not in time order within a research ID, so `cross_source.py` now compares copy and paste timestamps instead of file positions. Pastes with no copy or cut in the 600 seconds before: 291 of 1,826 (295 in the earlier file-order version). No other count changed.