@thanh01.pmt/domain-kit 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 (108) hide show
  1. package/README.md +1101 -0
  2. package/dist/assembly/index.cjs +213 -0
  3. package/dist/assembly/index.cjs.map +1 -0
  4. package/dist/assembly/index.d.cts +66 -0
  5. package/dist/assembly/index.d.ts +66 -0
  6. package/dist/assembly/index.mjs +4 -0
  7. package/dist/assembly/index.mjs.map +1 -0
  8. package/dist/chunk-3H2HX7PR.mjs +324 -0
  9. package/dist/chunk-3H2HX7PR.mjs.map +1 -0
  10. package/dist/chunk-3VVPSRAM.mjs +1297 -0
  11. package/dist/chunk-3VVPSRAM.mjs.map +1 -0
  12. package/dist/chunk-DRVOV5ZD.mjs +314 -0
  13. package/dist/chunk-DRVOV5ZD.mjs.map +1 -0
  14. package/dist/chunk-F4RZNBOE.mjs +3 -0
  15. package/dist/chunk-F4RZNBOE.mjs.map +1 -0
  16. package/dist/chunk-GEUDHZE7.mjs +446 -0
  17. package/dist/chunk-GEUDHZE7.mjs.map +1 -0
  18. package/dist/chunk-HH4UX65C.mjs +100 -0
  19. package/dist/chunk-HH4UX65C.mjs.map +1 -0
  20. package/dist/chunk-KMYENICQ.mjs +3 -0
  21. package/dist/chunk-KMYENICQ.mjs.map +1 -0
  22. package/dist/chunk-KNDBODUQ.mjs +153 -0
  23. package/dist/chunk-KNDBODUQ.mjs.map +1 -0
  24. package/dist/chunk-MM2RWYNW.mjs +3 -0
  25. package/dist/chunk-MM2RWYNW.mjs.map +1 -0
  26. package/dist/chunk-MOKNFLUD.mjs +851 -0
  27. package/dist/chunk-MOKNFLUD.mjs.map +1 -0
  28. package/dist/chunk-ONQHJ4OH.mjs +211 -0
  29. package/dist/chunk-ONQHJ4OH.mjs.map +1 -0
  30. package/dist/chunk-PM42MMDJ.mjs +516 -0
  31. package/dist/chunk-PM42MMDJ.mjs.map +1 -0
  32. package/dist/chunk-RKRNOVKO.mjs +166 -0
  33. package/dist/chunk-RKRNOVKO.mjs.map +1 -0
  34. package/dist/chunk-VFART56O.mjs +884 -0
  35. package/dist/chunk-VFART56O.mjs.map +1 -0
  36. package/dist/chunk-XMHKWHVK.mjs +218 -0
  37. package/dist/chunk-XMHKWHVK.mjs.map +1 -0
  38. package/dist/conceptEscalator-YfMKIKCZ.d.ts +40 -0
  39. package/dist/conceptEscalator-ltRLtPhf.d.cts +40 -0
  40. package/dist/concepts/index.cjs +155 -0
  41. package/dist/concepts/index.cjs.map +1 -0
  42. package/dist/concepts/index.d.cts +79 -0
  43. package/dist/concepts/index.d.ts +79 -0
  44. package/dist/concepts/index.mjs +4 -0
  45. package/dist/concepts/index.mjs.map +1 -0
  46. package/dist/curriculumFeedSchema-TEeQg2bY.d.cts +549 -0
  47. package/dist/curriculumFeedSchema-TEeQg2bY.d.ts +549 -0
  48. package/dist/detector/index.cjs +889 -0
  49. package/dist/detector/index.cjs.map +1 -0
  50. package/dist/detector/index.d.cts +112 -0
  51. package/dist/detector/index.d.ts +112 -0
  52. package/dist/detector/index.mjs +3 -0
  53. package/dist/detector/index.mjs.map +1 -0
  54. package/dist/domainProfileSchema-CwT3Ffsw.d.cts +105 -0
  55. package/dist/domainProfileSchema-CwT3Ffsw.d.ts +105 -0
  56. package/dist/extractors/index.cjs +387 -0
  57. package/dist/extractors/index.cjs.map +1 -0
  58. package/dist/extractors/index.d.cts +46 -0
  59. package/dist/extractors/index.d.ts +46 -0
  60. package/dist/extractors/index.mjs +4 -0
  61. package/dist/extractors/index.mjs.map +1 -0
  62. package/dist/feed/index.cjs +421 -0
  63. package/dist/feed/index.cjs.map +1 -0
  64. package/dist/feed/index.d.cts +23 -0
  65. package/dist/feed/index.d.ts +23 -0
  66. package/dist/feed/index.mjs +4 -0
  67. package/dist/feed/index.mjs.map +1 -0
  68. package/dist/graph/index.cjs +2167 -0
  69. package/dist/graph/index.cjs.map +1 -0
  70. package/dist/graph/index.d.cts +226 -0
  71. package/dist/graph/index.d.ts +226 -0
  72. package/dist/graph/index.mjs +4 -0
  73. package/dist/graph/index.mjs.map +1 -0
  74. package/dist/graphVerifier-DsTP9uAN.d.ts +37 -0
  75. package/dist/graphVerifier-QjgDAJce.d.cts +37 -0
  76. package/dist/hybridGraphSchema-BCgXicgA.d.cts +2840 -0
  77. package/dist/hybridGraphSchema-BCgXicgA.d.ts +2840 -0
  78. package/dist/index.cjs +5539 -0
  79. package/dist/index.cjs.map +1 -0
  80. package/dist/index.d.cts +18 -0
  81. package/dist/index.d.ts +18 -0
  82. package/dist/index.mjs +17 -0
  83. package/dist/index.mjs.map +1 -0
  84. package/dist/keywordExtractor-CKaXqSku.d.ts +34 -0
  85. package/dist/keywordExtractor-zPAz2isq.d.cts +34 -0
  86. package/dist/llmClient-ysPhLjcH.d.cts +16 -0
  87. package/dist/llmClient-ysPhLjcH.d.ts +16 -0
  88. package/dist/parsers/index.cjs +323 -0
  89. package/dist/parsers/index.cjs.map +1 -0
  90. package/dist/parsers/index.d.cts +98 -0
  91. package/dist/parsers/index.d.ts +98 -0
  92. package/dist/parsers/index.mjs +4 -0
  93. package/dist/parsers/index.mjs.map +1 -0
  94. package/dist/pipeline/index.cjs +2166 -0
  95. package/dist/pipeline/index.cjs.map +1 -0
  96. package/dist/pipeline/index.d.cts +45 -0
  97. package/dist/pipeline/index.d.ts +45 -0
  98. package/dist/pipeline/index.mjs +8 -0
  99. package/dist/pipeline/index.mjs.map +1 -0
  100. package/dist/projectGraphSchema-DnD7orZV.d.cts +2581 -0
  101. package/dist/projectGraphSchema-DnD7orZV.d.ts +2581 -0
  102. package/dist/schemas/index.cjs +675 -0
  103. package/dist/schemas/index.cjs.map +1 -0
  104. package/dist/schemas/index.d.cts +253 -0
  105. package/dist/schemas/index.d.ts +253 -0
  106. package/dist/schemas/index.mjs +4 -0
  107. package/dist/schemas/index.mjs.map +1 -0
  108. package/package.json +71 -0
@@ -0,0 +1,549 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * CurriculumFeed v2 — normalized, planner-ready projection of a domain graph.
5
+ * Consumers: curriculum-kit Curriculum Planner (see docs/ideas/2026-08-30-curriculum-feed-v2-output.md).
6
+ * Guarantees enforced here: cycle-free is the CALLER's verifier job; the feed
7
+ * itself guarantees resolution (edges/keywords reference emitted nodes) and
8
+ * non-emptiness.
9
+ */
10
+ declare const FeedKeywordsSchema: z.ZodObject<{
11
+ all: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
12
+ new: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
13
+ prerequisite: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ new: string[];
16
+ all: string[];
17
+ prerequisite: string[];
18
+ }, {
19
+ new?: string[] | undefined;
20
+ all?: string[] | undefined;
21
+ prerequisite?: string[] | undefined;
22
+ }>;
23
+ declare const FeedScaffoldCandidateSchema: z.ZodObject<{
24
+ item: z.ZodString;
25
+ reason: z.ZodDefault<z.ZodString>;
26
+ minutes_saved: z.ZodDefault<z.ZodNumber>;
27
+ suggest: z.ZodDefault<z.ZodEnum<["provide_full", "provide_partial", "provide_reference"]>>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ item: string;
30
+ reason: string;
31
+ minutes_saved: number;
32
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
33
+ }, {
34
+ item: string;
35
+ reason?: string | undefined;
36
+ minutes_saved?: number | undefined;
37
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
38
+ }>;
39
+ declare const FeedNodeSchema: z.ZodObject<{
40
+ id: z.ZodString;
41
+ kind: z.ZodEnum<["skill", "concept", "product_step"]>;
42
+ name: z.ZodString;
43
+ concept_codes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
44
+ keywords: z.ZodObject<{
45
+ all: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
46
+ new: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
47
+ prerequisite: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ new: string[];
50
+ all: string[];
51
+ prerequisite: string[];
52
+ }, {
53
+ new?: string[] | undefined;
54
+ all?: string[] | undefined;
55
+ prerequisite?: string[] | undefined;
56
+ }>;
57
+ estimated_minutes: z.ZodNumber;
58
+ bloom_hint: z.ZodDefault<z.ZodNullable<z.ZodEnum<["Remember", "Understand", "Apply", "Analyze", "Evaluate", "Create"]>>>;
59
+ depth_hint: z.ZodDefault<z.ZodNullable<z.ZodEnum<["ulo", "cio", "sio"]>>>;
60
+ completion_level: z.ZodDefault<z.ZodEnum<["mvp", "standard", "stretch"]>>;
61
+ scaffolding: z.ZodDefault<z.ZodObject<{
62
+ scaffold_candidates: z.ZodDefault<z.ZodArray<z.ZodObject<{
63
+ item: z.ZodString;
64
+ reason: z.ZodDefault<z.ZodString>;
65
+ minutes_saved: z.ZodDefault<z.ZodNumber>;
66
+ suggest: z.ZodDefault<z.ZodEnum<["provide_full", "provide_partial", "provide_reference"]>>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ item: string;
69
+ reason: string;
70
+ minutes_saved: number;
71
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
72
+ }, {
73
+ item: string;
74
+ reason?: string | undefined;
75
+ minutes_saved?: number | undefined;
76
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
77
+ }>, "many">>;
78
+ core_value_minutes: z.ZodDefault<z.ZodNumber>;
79
+ }, "strip", z.ZodTypeAny, {
80
+ scaffold_candidates: {
81
+ item: string;
82
+ reason: string;
83
+ minutes_saved: number;
84
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
85
+ }[];
86
+ core_value_minutes: number;
87
+ }, {
88
+ scaffold_candidates?: {
89
+ item: string;
90
+ reason?: string | undefined;
91
+ minutes_saved?: number | undefined;
92
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
93
+ }[] | undefined;
94
+ core_value_minutes?: number | undefined;
95
+ }>>;
96
+ references: z.ZodDefault<z.ZodArray<z.ZodObject<{
97
+ file: z.ZodString;
98
+ evidence: z.ZodDefault<z.ZodString>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ evidence: string;
101
+ file: string;
102
+ }, {
103
+ file: string;
104
+ evidence?: string | undefined;
105
+ }>, "many">>;
106
+ feature_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
107
+ concept_ref: z.ZodDefault<z.ZodNullable<z.ZodString>>;
108
+ phase_id: z.ZodDefault<z.ZodString>;
109
+ introduce_aspect: z.ZodDefault<z.ZodNullable<z.ZodEnum<["new", "advanced"]>>>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ estimated_minutes: number;
112
+ id: string;
113
+ name: string;
114
+ keywords: {
115
+ new: string[];
116
+ all: string[];
117
+ prerequisite: string[];
118
+ };
119
+ completion_level: "mvp" | "standard" | "stretch";
120
+ concept_codes: string[];
121
+ feature_id: string | null;
122
+ phase_id: string;
123
+ kind: "concept" | "skill" | "product_step";
124
+ bloom_hint: "Remember" | "Understand" | "Apply" | "Analyze" | "Evaluate" | "Create" | null;
125
+ depth_hint: "ulo" | "cio" | "sio" | null;
126
+ scaffolding: {
127
+ scaffold_candidates: {
128
+ item: string;
129
+ reason: string;
130
+ minutes_saved: number;
131
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
132
+ }[];
133
+ core_value_minutes: number;
134
+ };
135
+ references: {
136
+ evidence: string;
137
+ file: string;
138
+ }[];
139
+ concept_ref: string | null;
140
+ introduce_aspect: "new" | "advanced" | null;
141
+ }, {
142
+ estimated_minutes: number;
143
+ id: string;
144
+ name: string;
145
+ keywords: {
146
+ new?: string[] | undefined;
147
+ all?: string[] | undefined;
148
+ prerequisite?: string[] | undefined;
149
+ };
150
+ kind: "concept" | "skill" | "product_step";
151
+ completion_level?: "mvp" | "standard" | "stretch" | undefined;
152
+ concept_codes?: string[] | undefined;
153
+ feature_id?: string | null | undefined;
154
+ phase_id?: string | undefined;
155
+ bloom_hint?: "Remember" | "Understand" | "Apply" | "Analyze" | "Evaluate" | "Create" | null | undefined;
156
+ depth_hint?: "ulo" | "cio" | "sio" | null | undefined;
157
+ scaffolding?: {
158
+ scaffold_candidates?: {
159
+ item: string;
160
+ reason?: string | undefined;
161
+ minutes_saved?: number | undefined;
162
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
163
+ }[] | undefined;
164
+ core_value_minutes?: number | undefined;
165
+ } | undefined;
166
+ references?: {
167
+ file: string;
168
+ evidence?: string | undefined;
169
+ }[] | undefined;
170
+ concept_ref?: string | null | undefined;
171
+ introduce_aspect?: "new" | "advanced" | null | undefined;
172
+ }>;
173
+ declare const FeedEdgeSchema: z.ZodObject<{
174
+ from: z.ZodString;
175
+ to: z.ZodString;
176
+ kind: z.ZodEnum<["knowledge", "task"]>;
177
+ reason: z.ZodDefault<z.ZodString>;
178
+ }, "strip", z.ZodTypeAny, {
179
+ from: string;
180
+ to: string;
181
+ reason: string;
182
+ kind: "knowledge" | "task";
183
+ }, {
184
+ from: string;
185
+ to: string;
186
+ kind: "knowledge" | "task";
187
+ reason?: string | undefined;
188
+ }>;
189
+ declare const FeedGroupingSchema: z.ZodObject<{
190
+ id: z.ZodString;
191
+ name: z.ZodString;
192
+ node_ids: z.ZodArray<z.ZodString, "many">;
193
+ rationale: z.ZodDefault<z.ZodString>;
194
+ }, "strip", z.ZodTypeAny, {
195
+ id: string;
196
+ name: string;
197
+ node_ids: string[];
198
+ rationale: string;
199
+ }, {
200
+ id: string;
201
+ name: string;
202
+ node_ids: string[];
203
+ rationale?: string | undefined;
204
+ }>;
205
+ declare const FeedPhaseSchema: z.ZodObject<{
206
+ id: z.ZodString;
207
+ order: z.ZodNumber;
208
+ name: z.ZodString;
209
+ product_completion: z.ZodString;
210
+ node_ids: z.ZodArray<z.ZodString, "many">;
211
+ }, "strip", z.ZodTypeAny, {
212
+ id: string;
213
+ name: string;
214
+ order: number;
215
+ product_completion: string;
216
+ node_ids: string[];
217
+ }, {
218
+ id: string;
219
+ name: string;
220
+ order: number;
221
+ product_completion: string;
222
+ node_ids: string[];
223
+ }>;
224
+ type FeedPhase = z.infer<typeof FeedPhaseSchema>;
225
+ declare const CurriculumFeedSchema: z.ZodObject<{
226
+ schema_version: z.ZodLiteral<2>;
227
+ source: z.ZodObject<{
228
+ graph_type: z.ZodEnum<["project_graph", "knowledge_graph", "hybrid_graph"]>;
229
+ warnings: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
230
+ hallucination_count: z.ZodDefault<z.ZodNumber>;
231
+ }, "strip", z.ZodTypeAny, {
232
+ graph_type: "knowledge_graph" | "hybrid_graph" | "project_graph";
233
+ warnings: string[];
234
+ hallucination_count: number;
235
+ }, {
236
+ graph_type: "knowledge_graph" | "hybrid_graph" | "project_graph";
237
+ warnings?: string[] | undefined;
238
+ hallucination_count?: number | undefined;
239
+ }>;
240
+ learning_nodes: z.ZodArray<z.ZodObject<{
241
+ id: z.ZodString;
242
+ kind: z.ZodEnum<["skill", "concept", "product_step"]>;
243
+ name: z.ZodString;
244
+ concept_codes: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
245
+ keywords: z.ZodObject<{
246
+ all: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
247
+ new: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
248
+ prerequisite: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
249
+ }, "strip", z.ZodTypeAny, {
250
+ new: string[];
251
+ all: string[];
252
+ prerequisite: string[];
253
+ }, {
254
+ new?: string[] | undefined;
255
+ all?: string[] | undefined;
256
+ prerequisite?: string[] | undefined;
257
+ }>;
258
+ estimated_minutes: z.ZodNumber;
259
+ bloom_hint: z.ZodDefault<z.ZodNullable<z.ZodEnum<["Remember", "Understand", "Apply", "Analyze", "Evaluate", "Create"]>>>;
260
+ depth_hint: z.ZodDefault<z.ZodNullable<z.ZodEnum<["ulo", "cio", "sio"]>>>;
261
+ completion_level: z.ZodDefault<z.ZodEnum<["mvp", "standard", "stretch"]>>;
262
+ scaffolding: z.ZodDefault<z.ZodObject<{
263
+ scaffold_candidates: z.ZodDefault<z.ZodArray<z.ZodObject<{
264
+ item: z.ZodString;
265
+ reason: z.ZodDefault<z.ZodString>;
266
+ minutes_saved: z.ZodDefault<z.ZodNumber>;
267
+ suggest: z.ZodDefault<z.ZodEnum<["provide_full", "provide_partial", "provide_reference"]>>;
268
+ }, "strip", z.ZodTypeAny, {
269
+ item: string;
270
+ reason: string;
271
+ minutes_saved: number;
272
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
273
+ }, {
274
+ item: string;
275
+ reason?: string | undefined;
276
+ minutes_saved?: number | undefined;
277
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
278
+ }>, "many">>;
279
+ core_value_minutes: z.ZodDefault<z.ZodNumber>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ scaffold_candidates: {
282
+ item: string;
283
+ reason: string;
284
+ minutes_saved: number;
285
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
286
+ }[];
287
+ core_value_minutes: number;
288
+ }, {
289
+ scaffold_candidates?: {
290
+ item: string;
291
+ reason?: string | undefined;
292
+ minutes_saved?: number | undefined;
293
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
294
+ }[] | undefined;
295
+ core_value_minutes?: number | undefined;
296
+ }>>;
297
+ references: z.ZodDefault<z.ZodArray<z.ZodObject<{
298
+ file: z.ZodString;
299
+ evidence: z.ZodDefault<z.ZodString>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ evidence: string;
302
+ file: string;
303
+ }, {
304
+ file: string;
305
+ evidence?: string | undefined;
306
+ }>, "many">>;
307
+ feature_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
308
+ concept_ref: z.ZodDefault<z.ZodNullable<z.ZodString>>;
309
+ phase_id: z.ZodDefault<z.ZodString>;
310
+ introduce_aspect: z.ZodDefault<z.ZodNullable<z.ZodEnum<["new", "advanced"]>>>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ estimated_minutes: number;
313
+ id: string;
314
+ name: string;
315
+ keywords: {
316
+ new: string[];
317
+ all: string[];
318
+ prerequisite: string[];
319
+ };
320
+ completion_level: "mvp" | "standard" | "stretch";
321
+ concept_codes: string[];
322
+ feature_id: string | null;
323
+ phase_id: string;
324
+ kind: "concept" | "skill" | "product_step";
325
+ bloom_hint: "Remember" | "Understand" | "Apply" | "Analyze" | "Evaluate" | "Create" | null;
326
+ depth_hint: "ulo" | "cio" | "sio" | null;
327
+ scaffolding: {
328
+ scaffold_candidates: {
329
+ item: string;
330
+ reason: string;
331
+ minutes_saved: number;
332
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
333
+ }[];
334
+ core_value_minutes: number;
335
+ };
336
+ references: {
337
+ evidence: string;
338
+ file: string;
339
+ }[];
340
+ concept_ref: string | null;
341
+ introduce_aspect: "new" | "advanced" | null;
342
+ }, {
343
+ estimated_minutes: number;
344
+ id: string;
345
+ name: string;
346
+ keywords: {
347
+ new?: string[] | undefined;
348
+ all?: string[] | undefined;
349
+ prerequisite?: string[] | undefined;
350
+ };
351
+ kind: "concept" | "skill" | "product_step";
352
+ completion_level?: "mvp" | "standard" | "stretch" | undefined;
353
+ concept_codes?: string[] | undefined;
354
+ feature_id?: string | null | undefined;
355
+ phase_id?: string | undefined;
356
+ bloom_hint?: "Remember" | "Understand" | "Apply" | "Analyze" | "Evaluate" | "Create" | null | undefined;
357
+ depth_hint?: "ulo" | "cio" | "sio" | null | undefined;
358
+ scaffolding?: {
359
+ scaffold_candidates?: {
360
+ item: string;
361
+ reason?: string | undefined;
362
+ minutes_saved?: number | undefined;
363
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
364
+ }[] | undefined;
365
+ core_value_minutes?: number | undefined;
366
+ } | undefined;
367
+ references?: {
368
+ file: string;
369
+ evidence?: string | undefined;
370
+ }[] | undefined;
371
+ concept_ref?: string | null | undefined;
372
+ introduce_aspect?: "new" | "advanced" | null | undefined;
373
+ }>, "many">;
374
+ dependency_edges: z.ZodDefault<z.ZodArray<z.ZodObject<{
375
+ from: z.ZodString;
376
+ to: z.ZodString;
377
+ kind: z.ZodEnum<["knowledge", "task"]>;
378
+ reason: z.ZodDefault<z.ZodString>;
379
+ }, "strip", z.ZodTypeAny, {
380
+ from: string;
381
+ to: string;
382
+ reason: string;
383
+ kind: "knowledge" | "task";
384
+ }, {
385
+ from: string;
386
+ to: string;
387
+ kind: "knowledge" | "task";
388
+ reason?: string | undefined;
389
+ }>, "many">>;
390
+ suggested_groupings: z.ZodDefault<z.ZodArray<z.ZodObject<{
391
+ id: z.ZodString;
392
+ name: z.ZodString;
393
+ node_ids: z.ZodArray<z.ZodString, "many">;
394
+ rationale: z.ZodDefault<z.ZodString>;
395
+ }, "strip", z.ZodTypeAny, {
396
+ id: string;
397
+ name: string;
398
+ node_ids: string[];
399
+ rationale: string;
400
+ }, {
401
+ id: string;
402
+ name: string;
403
+ node_ids: string[];
404
+ rationale?: string | undefined;
405
+ }>, "many">>;
406
+ phases: z.ZodDefault<z.ZodArray<z.ZodObject<{
407
+ id: z.ZodString;
408
+ order: z.ZodNumber;
409
+ name: z.ZodString;
410
+ product_completion: z.ZodString;
411
+ node_ids: z.ZodArray<z.ZodString, "many">;
412
+ }, "strip", z.ZodTypeAny, {
413
+ id: string;
414
+ name: string;
415
+ order: number;
416
+ product_completion: string;
417
+ node_ids: string[];
418
+ }, {
419
+ id: string;
420
+ name: string;
421
+ order: number;
422
+ product_completion: string;
423
+ node_ids: string[];
424
+ }>, "many">>;
425
+ }, "strip", z.ZodTypeAny, {
426
+ source: {
427
+ graph_type: "knowledge_graph" | "hybrid_graph" | "project_graph";
428
+ warnings: string[];
429
+ hallucination_count: number;
430
+ };
431
+ schema_version: 2;
432
+ phases: {
433
+ id: string;
434
+ name: string;
435
+ order: number;
436
+ product_completion: string;
437
+ node_ids: string[];
438
+ }[];
439
+ learning_nodes: {
440
+ estimated_minutes: number;
441
+ id: string;
442
+ name: string;
443
+ keywords: {
444
+ new: string[];
445
+ all: string[];
446
+ prerequisite: string[];
447
+ };
448
+ completion_level: "mvp" | "standard" | "stretch";
449
+ concept_codes: string[];
450
+ feature_id: string | null;
451
+ phase_id: string;
452
+ kind: "concept" | "skill" | "product_step";
453
+ bloom_hint: "Remember" | "Understand" | "Apply" | "Analyze" | "Evaluate" | "Create" | null;
454
+ depth_hint: "ulo" | "cio" | "sio" | null;
455
+ scaffolding: {
456
+ scaffold_candidates: {
457
+ item: string;
458
+ reason: string;
459
+ minutes_saved: number;
460
+ suggest: "provide_full" | "provide_partial" | "provide_reference";
461
+ }[];
462
+ core_value_minutes: number;
463
+ };
464
+ references: {
465
+ evidence: string;
466
+ file: string;
467
+ }[];
468
+ concept_ref: string | null;
469
+ introduce_aspect: "new" | "advanced" | null;
470
+ }[];
471
+ dependency_edges: {
472
+ from: string;
473
+ to: string;
474
+ reason: string;
475
+ kind: "knowledge" | "task";
476
+ }[];
477
+ suggested_groupings: {
478
+ id: string;
479
+ name: string;
480
+ node_ids: string[];
481
+ rationale: string;
482
+ }[];
483
+ }, {
484
+ source: {
485
+ graph_type: "knowledge_graph" | "hybrid_graph" | "project_graph";
486
+ warnings?: string[] | undefined;
487
+ hallucination_count?: number | undefined;
488
+ };
489
+ schema_version: 2;
490
+ learning_nodes: {
491
+ estimated_minutes: number;
492
+ id: string;
493
+ name: string;
494
+ keywords: {
495
+ new?: string[] | undefined;
496
+ all?: string[] | undefined;
497
+ prerequisite?: string[] | undefined;
498
+ };
499
+ kind: "concept" | "skill" | "product_step";
500
+ completion_level?: "mvp" | "standard" | "stretch" | undefined;
501
+ concept_codes?: string[] | undefined;
502
+ feature_id?: string | null | undefined;
503
+ phase_id?: string | undefined;
504
+ bloom_hint?: "Remember" | "Understand" | "Apply" | "Analyze" | "Evaluate" | "Create" | null | undefined;
505
+ depth_hint?: "ulo" | "cio" | "sio" | null | undefined;
506
+ scaffolding?: {
507
+ scaffold_candidates?: {
508
+ item: string;
509
+ reason?: string | undefined;
510
+ minutes_saved?: number | undefined;
511
+ suggest?: "provide_full" | "provide_partial" | "provide_reference" | undefined;
512
+ }[] | undefined;
513
+ core_value_minutes?: number | undefined;
514
+ } | undefined;
515
+ references?: {
516
+ file: string;
517
+ evidence?: string | undefined;
518
+ }[] | undefined;
519
+ concept_ref?: string | null | undefined;
520
+ introduce_aspect?: "new" | "advanced" | null | undefined;
521
+ }[];
522
+ phases?: {
523
+ id: string;
524
+ name: string;
525
+ order: number;
526
+ product_completion: string;
527
+ node_ids: string[];
528
+ }[] | undefined;
529
+ dependency_edges?: {
530
+ from: string;
531
+ to: string;
532
+ kind: "knowledge" | "task";
533
+ reason?: string | undefined;
534
+ }[] | undefined;
535
+ suggested_groupings?: {
536
+ id: string;
537
+ name: string;
538
+ node_ids: string[];
539
+ rationale?: string | undefined;
540
+ }[] | undefined;
541
+ }>;
542
+ type CurriculumFeed = z.infer<typeof CurriculumFeedSchema>;
543
+ type FeedNode = z.infer<typeof FeedNodeSchema>;
544
+ type FeedEdge = z.infer<typeof FeedEdgeSchema>;
545
+ type FeedGrouping = z.infer<typeof FeedGroupingSchema>;
546
+ /** Strict pre-save resolution validation — fail-closed, no defaulted-empty graphs. */
547
+ declare function validateCurriculumFeed(feed: unknown): CurriculumFeed;
548
+
549
+ export { CurriculumFeedSchema as C, FeedKeywordsSchema as F, FeedScaffoldCandidateSchema as a, FeedNodeSchema as b, FeedEdgeSchema as c, FeedGroupingSchema as d, FeedPhaseSchema as e, type FeedPhase as f, type CurriculumFeed as g, type FeedNode as h, type FeedEdge as i, type FeedGrouping as j, validateCurriculumFeed as v };