@lssm/module.learning-journey 0.0.0-canary-20251217080011 → 0.0.0-canary-20251219202229

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 (215) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +2 -0
  3. package/dist/contracts/models.d.ts +120 -119
  4. package/dist/contracts/models.d.ts.map +1 -0
  5. package/dist/contracts/models.js +87 -88
  6. package/dist/contracts/models.js.map +1 -0
  7. package/dist/contracts/onboarding.d.ts +170 -169
  8. package/dist/contracts/onboarding.d.ts.map +1 -0
  9. package/dist/contracts/onboarding.js +71 -72
  10. package/dist/contracts/onboarding.js.map +1 -0
  11. package/dist/contracts/operations.d.ts +73 -72
  12. package/dist/contracts/operations.d.ts.map +1 -0
  13. package/dist/contracts/operations.js +2 -1
  14. package/dist/contracts/operations.js.map +1 -0
  15. package/dist/contracts/shared.d.ts +2 -1
  16. package/dist/contracts/shared.d.ts.map +1 -0
  17. package/dist/contracts/shared.js +2 -1
  18. package/dist/contracts/shared.js.map +1 -0
  19. package/dist/docs/learning-journey.docblock.js +2 -1
  20. package/dist/docs/learning-journey.docblock.js.map +1 -0
  21. package/dist/engines/srs.d.ts +2 -1
  22. package/dist/engines/srs.d.ts.map +1 -0
  23. package/dist/engines/srs.js +2 -1
  24. package/dist/engines/srs.js.map +1 -0
  25. package/dist/engines/streak.d.ts +2 -1
  26. package/dist/engines/streak.d.ts.map +1 -0
  27. package/dist/engines/streak.js +2 -1
  28. package/dist/engines/streak.js.map +1 -0
  29. package/dist/engines/xp.d.ts +2 -1
  30. package/dist/engines/xp.d.ts.map +1 -0
  31. package/dist/engines/xp.js +2 -1
  32. package/dist/engines/xp.js.map +1 -0
  33. package/dist/entities/ai.d.ts +202 -201
  34. package/dist/entities/ai.d.ts.map +1 -0
  35. package/dist/entities/ai.js +114 -114
  36. package/dist/entities/ai.js.map +1 -0
  37. package/dist/entities/course.d.ts +152 -151
  38. package/dist/entities/course.d.ts.map +1 -0
  39. package/dist/entities/course.js +86 -86
  40. package/dist/entities/course.js.map +1 -0
  41. package/dist/entities/flashcard.d.ts +147 -146
  42. package/dist/entities/flashcard.d.ts.map +1 -0
  43. package/dist/entities/flashcard.js +85 -85
  44. package/dist/entities/flashcard.js.map +1 -0
  45. package/dist/entities/gamification.d.ts +200 -199
  46. package/dist/entities/gamification.d.ts.map +1 -0
  47. package/dist/entities/gamification.js +120 -120
  48. package/dist/entities/gamification.js.map +1 -0
  49. package/dist/entities/index.d.ts +607 -606
  50. package/dist/entities/index.d.ts.map +1 -0
  51. package/dist/entities/index.js +2 -1
  52. package/dist/entities/index.js.map +1 -0
  53. package/dist/entities/learner.d.ts +194 -193
  54. package/dist/entities/learner.d.ts.map +1 -0
  55. package/dist/entities/learner.js +113 -113
  56. package/dist/entities/learner.js.map +1 -0
  57. package/dist/entities/onboarding.d.ts +167 -166
  58. package/dist/entities/onboarding.d.ts.map +1 -0
  59. package/dist/entities/onboarding.js +93 -93
  60. package/dist/entities/onboarding.js.map +1 -0
  61. package/dist/entities/quiz.d.ts +187 -186
  62. package/dist/entities/quiz.d.ts.map +1 -0
  63. package/dist/entities/quiz.js +109 -109
  64. package/dist/entities/quiz.js.map +1 -0
  65. package/dist/events.d.ts +216 -215
  66. package/dist/events.d.ts.map +1 -0
  67. package/dist/events.js +109 -110
  68. package/dist/events.js.map +1 -0
  69. package/dist/learning-journey.feature.d.ts +2 -1
  70. package/dist/learning-journey.feature.d.ts.map +1 -0
  71. package/dist/learning-journey.feature.js +2 -1
  72. package/dist/learning-journey.feature.js.map +1 -0
  73. package/dist/libs/contracts/dist/capabilities/openbanking.js +2 -1
  74. package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
  75. package/dist/libs/contracts/dist/contract-registry/schemas.js +2 -1
  76. package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
  77. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +2 -1
  78. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
  79. package/dist/libs/contracts/dist/docs/index.js +2 -6
  80. package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
  81. package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
  82. package/dist/libs/contracts/dist/docs/presentations.js +2 -1
  83. package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
  84. package/dist/libs/contracts/dist/docs/registry.js +2 -1
  85. package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
  86. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +2 -1
  87. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
  88. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +2 -1
  89. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
  90. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +2 -1
  91. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
  92. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +2 -1
  93. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
  94. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +2 -1
  95. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
  96. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +2 -1
  97. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
  98. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +2 -1
  99. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
  100. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +2 -1
  101. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
  102. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +2 -1
  103. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
  104. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +2 -1
  105. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
  106. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +2 -1
  107. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
  108. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +2 -1
  109. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
  110. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +2 -1
  111. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
  112. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +2 -1
  113. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
  114. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +2 -1
  115. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
  116. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +2 -1
  117. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
  118. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +2 -1
  119. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
  120. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +2 -1
  121. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
  122. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +2 -1
  123. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
  124. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +2 -1
  125. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js.map +1 -0
  126. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
  127. package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
  128. package/dist/libs/contracts/dist/events.js +2 -1
  129. package/dist/libs/contracts/dist/events.js.map +1 -0
  130. package/dist/libs/contracts/dist/index.js +2 -1
  131. package/dist/libs/contracts/dist/integrations/contracts.js +65 -66
  132. package/dist/libs/contracts/dist/integrations/contracts.js.map +1 -0
  133. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +31 -32
  134. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
  135. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +18 -19
  136. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
  137. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +32 -33
  138. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
  139. package/dist/libs/contracts/dist/integrations/openbanking/models.js +60 -61
  140. package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
  141. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +2 -1
  142. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
  143. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +2 -1
  144. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
  145. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +2 -1
  146. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
  147. package/dist/libs/contracts/dist/integrations/providers/gmail.js +2 -1
  148. package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
  149. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +2 -1
  150. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
  151. package/dist/libs/contracts/dist/integrations/providers/mistral.js +2 -1
  152. package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
  153. package/dist/libs/contracts/dist/integrations/providers/postmark.js +2 -1
  154. package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
  155. package/dist/libs/contracts/dist/integrations/providers/powens.js +2 -1
  156. package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
  157. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +2 -1
  158. package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
  159. package/dist/libs/contracts/dist/integrations/providers/stripe.js +2 -1
  160. package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
  161. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +2 -1
  162. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
  163. package/dist/libs/contracts/dist/knowledge/contracts.js +44 -45
  164. package/dist/libs/contracts/dist/knowledge/contracts.js.map +1 -0
  165. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +2 -1
  166. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
  167. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +2 -1
  168. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
  169. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +2 -1
  170. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
  171. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +2 -1
  172. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
  173. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +2 -1
  174. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
  175. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +2 -1
  176. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
  177. package/dist/libs/contracts/dist/llm/exporters.js +2 -1
  178. package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
  179. package/dist/libs/contracts/dist/onboarding-base.js +22 -23
  180. package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
  181. package/dist/libs/contracts/dist/ownership.js +4 -2
  182. package/dist/libs/contracts/dist/ownership.js.map +1 -0
  183. package/dist/libs/contracts/dist/presentations.v2.js +2 -1
  184. package/dist/libs/contracts/dist/presentations.v2.js.map +1 -0
  185. package/dist/libs/contracts/dist/regenerator/service.js +2 -1
  186. package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
  187. package/dist/libs/contracts/dist/schema/dist/index.js +3873 -6
  188. package/dist/libs/contracts/dist/schema/dist/index.js.map +1 -0
  189. package/dist/libs/contracts/dist/spec.js +2 -1
  190. package/dist/libs/contracts/dist/spec.js.map +1 -0
  191. package/dist/libs/schema/dist/index.js +4889 -6
  192. package/dist/libs/schema/dist/index.js.map +1 -0
  193. package/dist/track-spec.d.ts +2 -1
  194. package/dist/track-spec.d.ts.map +1 -0
  195. package/package.json +7 -6
  196. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  197. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  198. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  199. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  200. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  201. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  202. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  203. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  204. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  205. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  206. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  207. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  208. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  209. package/dist/libs/schema/dist/EnumType.js +0 -2
  210. package/dist/libs/schema/dist/FieldType.js +0 -49
  211. package/dist/libs/schema/dist/ScalarTypeEnum.js +0 -236
  212. package/dist/libs/schema/dist/SchemaModel.js +0 -39
  213. package/dist/libs/schema/dist/entity/defineEntity.js +0 -236
  214. package/dist/libs/schema/dist/entity/index.js +0 -2
  215. package/dist/libs/schema/dist/entity/types.js +0 -1
@@ -1,11 +1,10 @@
1
- import { defineEntity, defineEntityEnum, field, index } from "../libs/schema/dist/entity/defineEntity.js";
2
- import "../libs/schema/dist/index.js";
1
+ import { L5, Z5, _5, b5 } from "../libs/schema/dist/index.js";
3
2
 
4
3
  //#region src/entities/ai.ts
5
4
  /**
6
5
  * Learning style enum.
7
6
  */
8
- const LearningStyleEnum = defineEntityEnum({
7
+ const LearningStyleEnum = Z5({
9
8
  name: "LearningStyle",
10
9
  values: [
11
10
  "VISUAL",
@@ -20,7 +19,7 @@ const LearningStyleEnum = defineEntityEnum({
20
19
  /**
21
20
  * Recommendation type enum.
22
21
  */
23
- const RecommendationTypeEnum = defineEntityEnum({
22
+ const RecommendationTypeEnum = Z5({
24
23
  name: "RecommendationType",
25
24
  values: [
26
25
  "COURSE",
@@ -36,331 +35,331 @@ const RecommendationTypeEnum = defineEntityEnum({
36
35
  /**
37
36
  * LearnerProfile entity - AI personalization profile.
38
37
  */
39
- const LearnerProfileEntity = defineEntity({
38
+ const LearnerProfileEntity = L5({
40
39
  name: "LearnerProfile",
41
40
  description: "AI personalization profile for a learner.",
42
41
  schema: "lssm_learning",
43
42
  map: "learner_profile",
44
43
  fields: {
45
- id: field.id({ description: "Unique profile identifier" }),
46
- learnerId: field.foreignKey({ description: "Learner" }),
47
- learningStyle: field.enum("LearningStyle", {
44
+ id: _5.id({ description: "Unique profile identifier" }),
45
+ learnerId: _5.foreignKey({ description: "Learner" }),
46
+ learningStyle: _5.enum("LearningStyle", {
48
47
  default: "MIXED",
49
48
  description: "Preferred learning style"
50
49
  }),
51
- preferredDifficulty: field.string({
50
+ preferredDifficulty: _5.string({
52
51
  default: "\"adaptive\"",
53
52
  description: "Difficulty preference"
54
53
  }),
55
- preferredSessionLength: field.int({
54
+ preferredSessionLength: _5.int({
56
55
  default: 30,
57
56
  description: "Preferred session length in minutes"
58
57
  }),
59
- interests: field.json({
58
+ interests: _5.json({
60
59
  isOptional: true,
61
60
  description: "Topic interests"
62
61
  }),
63
- goals: field.json({
62
+ goals: _5.json({
64
63
  isOptional: true,
65
64
  description: "Learning goals"
66
65
  }),
67
- pacePreference: field.string({
66
+ pacePreference: _5.string({
68
67
  default: "\"normal\"",
69
68
  description: "Learning pace: slow, normal, fast"
70
69
  }),
71
- bestTimeOfDay: field.string({
70
+ bestTimeOfDay: _5.string({
72
71
  isOptional: true,
73
72
  description: "Best time for learning"
74
73
  }),
75
- averageSessionLength: field.int({
74
+ averageSessionLength: _5.int({
76
75
  isOptional: true,
77
76
  description: "Average session length"
78
77
  }),
79
- daysActivePerWeek: field.int({
78
+ daysActivePerWeek: _5.int({
80
79
  isOptional: true,
81
80
  description: "Days active per week"
82
81
  }),
83
- avgQuizScore: field.int({
82
+ avgQuizScore: _5.int({
84
83
  isOptional: true,
85
84
  description: "Average quiz score"
86
85
  }),
87
- avgLessonCompletionTime: field.int({
86
+ avgLessonCompletionTime: _5.int({
88
87
  isOptional: true,
89
88
  description: "Avg lesson completion time"
90
89
  }),
91
- strengths: field.json({
90
+ strengths: _5.json({
92
91
  isOptional: true,
93
92
  description: "Identified strengths"
94
93
  }),
95
- weaknesses: field.json({
94
+ weaknesses: _5.json({
96
95
  isOptional: true,
97
96
  description: "Areas for improvement"
98
97
  }),
99
- lastAnalyzedAt: field.dateTime({
98
+ lastAnalyzedAt: _5.dateTime({
100
99
  isOptional: true,
101
100
  description: "Last AI analysis"
102
101
  }),
103
- metadata: field.json({
102
+ metadata: _5.json({
104
103
  isOptional: true,
105
104
  description: "Additional metadata"
106
105
  }),
107
- createdAt: field.createdAt(),
108
- updatedAt: field.updatedAt(),
109
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
106
+ createdAt: _5.createdAt(),
107
+ updatedAt: _5.updatedAt(),
108
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
110
109
  },
111
- indexes: [index.unique(["learnerId"], { name: "learner_profile_unique" }), index.on(["learningStyle"])],
110
+ indexes: [b5.unique(["learnerId"], { name: "learner_profile_unique" }), b5.on(["learningStyle"])],
112
111
  enums: [LearningStyleEnum]
113
112
  });
114
113
  /**
115
114
  * SkillMap entity - tracks skill proficiency.
116
115
  */
117
- const SkillMapEntity = defineEntity({
116
+ const SkillMapEntity = L5({
118
117
  name: "SkillMap",
119
118
  description: "Maps learner proficiency across skills.",
120
119
  schema: "lssm_learning",
121
120
  map: "skill_map",
122
121
  fields: {
123
- id: field.id({ description: "Unique skill map identifier" }),
124
- learnerId: field.foreignKey({ description: "Learner" }),
125
- skillId: field.string({ description: "Skill identifier" }),
126
- skillName: field.string({ description: "Skill name" }),
127
- skillCategory: field.string({
122
+ id: _5.id({ description: "Unique skill map identifier" }),
123
+ learnerId: _5.foreignKey({ description: "Learner" }),
124
+ skillId: _5.string({ description: "Skill identifier" }),
125
+ skillName: _5.string({ description: "Skill name" }),
126
+ skillCategory: _5.string({
128
127
  isOptional: true,
129
128
  description: "Skill category"
130
129
  }),
131
- level: field.int({
130
+ level: _5.int({
132
131
  default: 0,
133
132
  description: "Proficiency level (0-100)"
134
133
  }),
135
- confidence: field.decimal({
134
+ confidence: _5.decimal({
136
135
  default: .5,
137
136
  description: "Confidence in assessment"
138
137
  }),
139
- lessonsCompleted: field.int({
138
+ lessonsCompleted: _5.int({
140
139
  default: 0,
141
140
  description: "Related lessons completed"
142
141
  }),
143
- quizzesCompleted: field.int({
142
+ quizzesCompleted: _5.int({
144
143
  default: 0,
145
144
  description: "Related quizzes completed"
146
145
  }),
147
- practiceTime: field.int({
146
+ practiceTime: _5.int({
148
147
  default: 0,
149
148
  description: "Practice time in minutes"
150
149
  }),
151
- lastPracticedAt: field.dateTime({
150
+ lastPracticedAt: _5.dateTime({
152
151
  isOptional: true,
153
152
  description: "Last practice time"
154
153
  }),
155
- learningVelocity: field.decimal({
154
+ learningVelocity: _5.decimal({
156
155
  isOptional: true,
157
156
  description: "Learning speed for this skill"
158
157
  }),
159
- predictedTimeToMastery: field.int({
158
+ predictedTimeToMastery: _5.int({
160
159
  isOptional: true,
161
160
  description: "Predicted time to mastery (minutes)"
162
161
  }),
163
- createdAt: field.createdAt(),
164
- updatedAt: field.updatedAt(),
165
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
162
+ createdAt: _5.createdAt(),
163
+ updatedAt: _5.updatedAt(),
164
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
166
165
  },
167
166
  indexes: [
168
- index.unique(["learnerId", "skillId"], { name: "skill_map_unique" }),
169
- index.on(["skillId", "level"]),
170
- index.on(["learnerId", "level"])
167
+ b5.unique(["learnerId", "skillId"], { name: "skill_map_unique" }),
168
+ b5.on(["skillId", "level"]),
169
+ b5.on(["learnerId", "level"])
171
170
  ]
172
171
  });
173
172
  /**
174
173
  * LearningPath entity - AI-generated learning paths.
175
174
  */
176
- const LearningPathEntity = defineEntity({
175
+ const LearningPathEntity = L5({
177
176
  name: "LearningPath",
178
177
  description: "AI-generated personalized learning path.",
179
178
  schema: "lssm_learning",
180
179
  map: "learning_path",
181
180
  fields: {
182
- id: field.id({ description: "Unique path identifier" }),
183
- learnerId: field.foreignKey({ description: "Learner" }),
184
- name: field.string({ description: "Path name" }),
185
- description: field.string({
181
+ id: _5.id({ description: "Unique path identifier" }),
182
+ learnerId: _5.foreignKey({ description: "Learner" }),
183
+ name: _5.string({ description: "Path name" }),
184
+ description: _5.string({
186
185
  isOptional: true,
187
186
  description: "Path description"
188
187
  }),
189
- goal: field.string({
188
+ goal: _5.string({
190
189
  isOptional: true,
191
190
  description: "Path goal"
192
191
  }),
193
- steps: field.json({ description: "Ordered list of learning steps" }),
194
- currentStepIndex: field.int({
192
+ steps: _5.json({ description: "Ordered list of learning steps" }),
193
+ currentStepIndex: _5.int({
195
194
  default: 0,
196
195
  description: "Current step index"
197
196
  }),
198
- progress: field.int({
197
+ progress: _5.int({
199
198
  default: 0,
200
199
  description: "Completion percentage"
201
200
  }),
202
- completedSteps: field.int({
201
+ completedSteps: _5.int({
203
202
  default: 0,
204
203
  description: "Steps completed"
205
204
  }),
206
- totalSteps: field.int({
205
+ totalSteps: _5.int({
207
206
  default: 0,
208
207
  description: "Total steps"
209
208
  }),
210
- generatedAt: field.dateTime({ description: "When path was generated" }),
211
- adaptedFrom: field.string({
209
+ generatedAt: _5.dateTime({ description: "When path was generated" }),
210
+ adaptedFrom: _5.string({
212
211
  isOptional: true,
213
212
  description: "Original path ID if adapted"
214
213
  }),
215
- generationParams: field.json({
214
+ generationParams: _5.json({
216
215
  isOptional: true,
217
216
  description: "AI generation parameters"
218
217
  }),
219
- adaptationHistory: field.json({
218
+ adaptationHistory: _5.json({
220
219
  isOptional: true,
221
220
  description: "Path adaptation history"
222
221
  }),
223
- isActive: field.boolean({
222
+ isActive: _5.boolean({
224
223
  default: true,
225
224
  description: "Whether path is active"
226
225
  }),
227
- isCompleted: field.boolean({
226
+ isCompleted: _5.boolean({
228
227
  default: false,
229
228
  description: "Whether path is completed"
230
229
  }),
231
- startedAt: field.dateTime({
230
+ startedAt: _5.dateTime({
232
231
  isOptional: true,
233
232
  description: "When started"
234
233
  }),
235
- completedAt: field.dateTime({
234
+ completedAt: _5.dateTime({
236
235
  isOptional: true,
237
236
  description: "When completed"
238
237
  }),
239
- estimatedCompletionDate: field.dateTime({
238
+ estimatedCompletionDate: _5.dateTime({
240
239
  isOptional: true,
241
240
  description: "Estimated completion"
242
241
  }),
243
- createdAt: field.createdAt(),
244
- updatedAt: field.updatedAt(),
245
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
242
+ createdAt: _5.createdAt(),
243
+ updatedAt: _5.updatedAt(),
244
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
246
245
  },
247
- indexes: [index.on(["learnerId", "isActive"]), index.on(["generatedAt"])]
246
+ indexes: [b5.on(["learnerId", "isActive"]), b5.on(["generatedAt"])]
248
247
  });
249
248
  /**
250
249
  * Recommendation entity - AI-powered learning recommendations.
251
250
  */
252
- const RecommendationEntity = defineEntity({
251
+ const RecommendationEntity = L5({
253
252
  name: "Recommendation",
254
253
  description: "AI-powered learning recommendation.",
255
254
  schema: "lssm_learning",
256
255
  map: "recommendation",
257
256
  fields: {
258
- id: field.id({ description: "Unique recommendation identifier" }),
259
- learnerId: field.foreignKey({ description: "Learner" }),
260
- type: field.enum("RecommendationType", { description: "Recommendation type" }),
261
- itemId: field.string({ description: "Recommended item ID" }),
262
- itemType: field.string({ description: "Item type (course, lesson, deck, etc.)" }),
263
- score: field.decimal({ description: "Recommendation score (0-1)" }),
264
- confidence: field.decimal({ description: "Confidence in recommendation" }),
265
- reason: field.string({ description: "Human-readable reason" }),
266
- factors: field.json({
257
+ id: _5.id({ description: "Unique recommendation identifier" }),
258
+ learnerId: _5.foreignKey({ description: "Learner" }),
259
+ type: _5.enum("RecommendationType", { description: "Recommendation type" }),
260
+ itemId: _5.string({ description: "Recommended item ID" }),
261
+ itemType: _5.string({ description: "Item type (course, lesson, deck, etc.)" }),
262
+ score: _5.decimal({ description: "Recommendation score (0-1)" }),
263
+ confidence: _5.decimal({ description: "Confidence in recommendation" }),
264
+ reason: _5.string({ description: "Human-readable reason" }),
265
+ factors: _5.json({
267
266
  isOptional: true,
268
267
  description: "Factors that contributed to recommendation"
269
268
  }),
270
- status: field.string({
269
+ status: _5.string({
271
270
  default: "\"pending\"",
272
271
  description: "Status: pending, viewed, accepted, dismissed"
273
272
  }),
274
- viewedAt: field.dateTime({
273
+ viewedAt: _5.dateTime({
275
274
  isOptional: true,
276
275
  description: "When viewed"
277
276
  }),
278
- acceptedAt: field.dateTime({
277
+ acceptedAt: _5.dateTime({
279
278
  isOptional: true,
280
279
  description: "When accepted"
281
280
  }),
282
- dismissedAt: field.dateTime({
281
+ dismissedAt: _5.dateTime({
283
282
  isOptional: true,
284
283
  description: "When dismissed"
285
284
  }),
286
- feedback: field.string({
285
+ feedback: _5.string({
287
286
  isOptional: true,
288
287
  description: "User feedback"
289
288
  }),
290
- feedbackRating: field.int({
289
+ feedbackRating: _5.int({
291
290
  isOptional: true,
292
291
  description: "Feedback rating (1-5)"
293
292
  }),
294
- expiresAt: field.dateTime({
293
+ expiresAt: _5.dateTime({
295
294
  isOptional: true,
296
295
  description: "When recommendation expires"
297
296
  }),
298
- createdAt: field.createdAt(),
299
- updatedAt: field.updatedAt(),
300
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
297
+ createdAt: _5.createdAt(),
298
+ updatedAt: _5.updatedAt(),
299
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
301
300
  },
302
301
  indexes: [
303
- index.on([
302
+ b5.on([
304
303
  "learnerId",
305
304
  "status",
306
305
  "score"
307
306
  ]),
308
- index.on(["type", "status"]),
309
- index.on(["expiresAt"])
307
+ b5.on(["type", "status"]),
308
+ b5.on(["expiresAt"])
310
309
  ],
311
310
  enums: [RecommendationTypeEnum]
312
311
  });
313
312
  /**
314
313
  * LearningGap entity - identified knowledge gaps.
315
314
  */
316
- const LearningGapEntity = defineEntity({
315
+ const LearningGapEntity = L5({
317
316
  name: "LearningGap",
318
317
  description: "Identified learning gap.",
319
318
  schema: "lssm_learning",
320
319
  map: "learning_gap",
321
320
  fields: {
322
- id: field.id({ description: "Unique gap identifier" }),
323
- learnerId: field.foreignKey({ description: "Learner" }),
324
- skillId: field.string({ description: "Skill with gap" }),
325
- skillName: field.string({ description: "Skill name" }),
326
- severity: field.string({
321
+ id: _5.id({ description: "Unique gap identifier" }),
322
+ learnerId: _5.foreignKey({ description: "Learner" }),
323
+ skillId: _5.string({ description: "Skill with gap" }),
324
+ skillName: _5.string({ description: "Skill name" }),
325
+ severity: _5.string({
327
326
  default: "\"moderate\"",
328
327
  description: "Gap severity: minor, moderate, major"
329
328
  }),
330
- confidence: field.decimal({ description: "Confidence in gap detection" }),
331
- evidence: field.json({
329
+ confidence: _5.decimal({ description: "Confidence in gap detection" }),
330
+ evidence: _5.json({
332
331
  isOptional: true,
333
332
  description: "Evidence for gap"
334
333
  }),
335
- relatedQuestions: field.json({
334
+ relatedQuestions: _5.json({
336
335
  isOptional: true,
337
336
  description: "Questions that revealed gap"
338
337
  }),
339
- suggestedRemediation: field.json({
338
+ suggestedRemediation: _5.json({
340
339
  isOptional: true,
341
340
  description: "Suggested remediation"
342
341
  }),
343
- remediationProgress: field.int({
342
+ remediationProgress: _5.int({
344
343
  default: 0,
345
344
  description: "Remediation progress"
346
345
  }),
347
- status: field.string({
346
+ status: _5.string({
348
347
  default: "\"open\"",
349
348
  description: "Status: open, in_progress, resolved"
350
349
  }),
351
- resolvedAt: field.dateTime({
350
+ resolvedAt: _5.dateTime({
352
351
  isOptional: true,
353
352
  description: "When resolved"
354
353
  }),
355
- detectedAt: field.dateTime({ description: "When gap was detected" }),
356
- createdAt: field.createdAt(),
357
- updatedAt: field.updatedAt(),
358
- learner: field.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
354
+ detectedAt: _5.dateTime({ description: "When gap was detected" }),
355
+ createdAt: _5.createdAt(),
356
+ updatedAt: _5.updatedAt(),
357
+ learner: _5.belongsTo("Learner", ["learnerId"], ["id"], { onDelete: "Cascade" })
359
358
  },
360
359
  indexes: [
361
- index.on(["learnerId", "status"]),
362
- index.on(["skillId", "status"]),
363
- index.on(["severity", "status"])
360
+ b5.on(["learnerId", "status"]),
361
+ b5.on(["skillId", "status"]),
362
+ b5.on(["severity", "status"])
364
363
  ]
365
364
  });
366
365
  const aiEntities = [
@@ -373,4 +372,5 @@ const aiEntities = [
373
372
  const aiEnums = [LearningStyleEnum, RecommendationTypeEnum];
374
373
 
375
374
  //#endregion
376
- export { LearnerProfileEntity, LearningGapEntity, LearningPathEntity, LearningStyleEnum, RecommendationEntity, RecommendationTypeEnum, SkillMapEntity, aiEntities, aiEnums };
375
+ export { LearnerProfileEntity, LearningGapEntity, LearningPathEntity, LearningStyleEnum, RecommendationEntity, RecommendationTypeEnum, SkillMapEntity, aiEntities, aiEnums };
376
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","names":["defineEntityEnum","defineEntity","field","index"],"sources":["../../src/entities/ai.ts"],"sourcesContent":["import { defineEntity, defineEntityEnum, field, index } from '@lssm/lib.schema';\n\n/**\n * Learning style enum.\n */\nexport const LearningStyleEnum = defineEntityEnum({\n name: 'LearningStyle',\n values: ['VISUAL', 'AUDITORY', 'READING', 'KINESTHETIC', 'MIXED'] as const,\n schema: 'lssm_learning',\n description: 'Preferred learning style.',\n});\n\n/**\n * Recommendation type enum.\n */\nexport const RecommendationTypeEnum = defineEntityEnum({\n name: 'RecommendationType',\n values: [\n 'COURSE',\n 'LESSON',\n 'REVIEW',\n 'PRACTICE',\n 'ASSESSMENT',\n 'DECK',\n ] as const,\n schema: 'lssm_learning',\n description: 'Type of learning recommendation.',\n});\n\n/**\n * LearnerProfile entity - AI personalization profile.\n */\nexport const LearnerProfileEntity = defineEntity({\n name: 'LearnerProfile',\n description: 'AI personalization profile for a learner.',\n schema: 'lssm_learning',\n map: 'learner_profile',\n fields: {\n id: field.id({ description: 'Unique profile identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n\n // Learning preferences\n learningStyle: field.enum('LearningStyle', {\n default: 'MIXED',\n description: 'Preferred learning style',\n }),\n preferredDifficulty: field.string({\n default: '\"adaptive\"',\n description: 'Difficulty preference',\n }),\n preferredSessionLength: field.int({\n default: 30,\n description: 'Preferred session length in minutes',\n }),\n\n // Interests and goals\n interests: field.json({ isOptional: true, description: 'Topic interests' }),\n goals: field.json({ isOptional: true, description: 'Learning goals' }),\n\n // Pace\n pacePreference: field.string({\n default: '\"normal\"',\n description: 'Learning pace: slow, normal, fast',\n }),\n\n // Engagement patterns\n bestTimeOfDay: field.string({\n isOptional: true,\n description: 'Best time for learning',\n }),\n averageSessionLength: field.int({\n isOptional: true,\n description: 'Average session length',\n }),\n daysActivePerWeek: field.int({\n isOptional: true,\n description: 'Days active per week',\n }),\n\n // Performance\n avgQuizScore: field.int({\n isOptional: true,\n description: 'Average quiz score',\n }),\n avgLessonCompletionTime: field.int({\n isOptional: true,\n description: 'Avg lesson completion time',\n }),\n\n // AI analysis\n strengths: field.json({\n isOptional: true,\n description: 'Identified strengths',\n }),\n weaknesses: field.json({\n isOptional: true,\n description: 'Areas for improvement',\n }),\n\n // Metadata\n lastAnalyzedAt: field.dateTime({\n isOptional: true,\n description: 'Last AI analysis',\n }),\n metadata: field.json({\n isOptional: true,\n description: 'Additional metadata',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['learnerId'], { name: 'learner_profile_unique' }),\n index.on(['learningStyle']),\n ],\n enums: [LearningStyleEnum],\n});\n\n/**\n * SkillMap entity - tracks skill proficiency.\n */\nexport const SkillMapEntity = defineEntity({\n name: 'SkillMap',\n description: 'Maps learner proficiency across skills.',\n schema: 'lssm_learning',\n map: 'skill_map',\n fields: {\n id: field.id({ description: 'Unique skill map identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n\n // Skill\n skillId: field.string({ description: 'Skill identifier' }),\n skillName: field.string({ description: 'Skill name' }),\n skillCategory: field.string({\n isOptional: true,\n description: 'Skill category',\n }),\n\n // Proficiency\n level: field.int({ default: 0, description: 'Proficiency level (0-100)' }),\n confidence: field.decimal({\n default: 0.5,\n description: 'Confidence in assessment',\n }),\n\n // Progress\n lessonsCompleted: field.int({\n default: 0,\n description: 'Related lessons completed',\n }),\n quizzesCompleted: field.int({\n default: 0,\n description: 'Related quizzes completed',\n }),\n practiceTime: field.int({\n default: 0,\n description: 'Practice time in minutes',\n }),\n\n // Last activity\n lastPracticedAt: field.dateTime({\n isOptional: true,\n description: 'Last practice time',\n }),\n\n // AI analysis\n learningVelocity: field.decimal({\n isOptional: true,\n description: 'Learning speed for this skill',\n }),\n predictedTimeToMastery: field.int({\n isOptional: true,\n description: 'Predicted time to mastery (minutes)',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.unique(['learnerId', 'skillId'], { name: 'skill_map_unique' }),\n index.on(['skillId', 'level']),\n index.on(['learnerId', 'level']),\n ],\n});\n\n/**\n * LearningPath entity - AI-generated learning paths.\n */\nexport const LearningPathEntity = defineEntity({\n name: 'LearningPath',\n description: 'AI-generated personalized learning path.',\n schema: 'lssm_learning',\n map: 'learning_path',\n fields: {\n id: field.id({ description: 'Unique path identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n\n // Path info\n name: field.string({ description: 'Path name' }),\n description: field.string({\n isOptional: true,\n description: 'Path description',\n }),\n goal: field.string({ isOptional: true, description: 'Path goal' }),\n\n // Steps\n steps: field.json({ description: 'Ordered list of learning steps' }),\n currentStepIndex: field.int({\n default: 0,\n description: 'Current step index',\n }),\n\n // Progress\n progress: field.int({ default: 0, description: 'Completion percentage' }),\n completedSteps: field.int({ default: 0, description: 'Steps completed' }),\n totalSteps: field.int({ default: 0, description: 'Total steps' }),\n\n // Generation\n generatedAt: field.dateTime({ description: 'When path was generated' }),\n adaptedFrom: field.string({\n isOptional: true,\n description: 'Original path ID if adapted',\n }),\n\n // AI metadata\n generationParams: field.json({\n isOptional: true,\n description: 'AI generation parameters',\n }),\n adaptationHistory: field.json({\n isOptional: true,\n description: 'Path adaptation history',\n }),\n\n // Status\n isActive: field.boolean({\n default: true,\n description: 'Whether path is active',\n }),\n isCompleted: field.boolean({\n default: false,\n description: 'Whether path is completed',\n }),\n\n // Timeline\n startedAt: field.dateTime({\n isOptional: true,\n description: 'When started',\n }),\n completedAt: field.dateTime({\n isOptional: true,\n description: 'When completed',\n }),\n estimatedCompletionDate: field.dateTime({\n isOptional: true,\n description: 'Estimated completion',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [index.on(['learnerId', 'isActive']), index.on(['generatedAt'])],\n});\n\n/**\n * Recommendation entity - AI-powered learning recommendations.\n */\nexport const RecommendationEntity = defineEntity({\n name: 'Recommendation',\n description: 'AI-powered learning recommendation.',\n schema: 'lssm_learning',\n map: 'recommendation',\n fields: {\n id: field.id({ description: 'Unique recommendation identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n\n // Recommendation\n type: field.enum('RecommendationType', {\n description: 'Recommendation type',\n }),\n itemId: field.string({ description: 'Recommended item ID' }),\n itemType: field.string({\n description: 'Item type (course, lesson, deck, etc.)',\n }),\n\n // Scoring\n score: field.decimal({ description: 'Recommendation score (0-1)' }),\n confidence: field.decimal({ description: 'Confidence in recommendation' }),\n\n // Reasoning\n reason: field.string({ description: 'Human-readable reason' }),\n factors: field.json({\n isOptional: true,\n description: 'Factors that contributed to recommendation',\n }),\n\n // Status\n status: field.string({\n default: '\"pending\"',\n description: 'Status: pending, viewed, accepted, dismissed',\n }),\n viewedAt: field.dateTime({ isOptional: true, description: 'When viewed' }),\n acceptedAt: field.dateTime({\n isOptional: true,\n description: 'When accepted',\n }),\n dismissedAt: field.dateTime({\n isOptional: true,\n description: 'When dismissed',\n }),\n\n // Feedback\n feedback: field.string({ isOptional: true, description: 'User feedback' }),\n feedbackRating: field.int({\n isOptional: true,\n description: 'Feedback rating (1-5)',\n }),\n\n // Expiry\n expiresAt: field.dateTime({\n isOptional: true,\n description: 'When recommendation expires',\n }),\n\n // Timestamps\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.on(['learnerId', 'status', 'score']),\n index.on(['type', 'status']),\n index.on(['expiresAt']),\n ],\n enums: [RecommendationTypeEnum],\n});\n\n/**\n * LearningGap entity - identified knowledge gaps.\n */\nexport const LearningGapEntity = defineEntity({\n name: 'LearningGap',\n description: 'Identified learning gap.',\n schema: 'lssm_learning',\n map: 'learning_gap',\n fields: {\n id: field.id({ description: 'Unique gap identifier' }),\n learnerId: field.foreignKey({ description: 'Learner' }),\n\n // Gap info\n skillId: field.string({ description: 'Skill with gap' }),\n skillName: field.string({ description: 'Skill name' }),\n\n // Severity\n severity: field.string({\n default: '\"moderate\"',\n description: 'Gap severity: minor, moderate, major',\n }),\n confidence: field.decimal({ description: 'Confidence in gap detection' }),\n\n // Evidence\n evidence: field.json({ isOptional: true, description: 'Evidence for gap' }),\n relatedQuestions: field.json({\n isOptional: true,\n description: 'Questions that revealed gap',\n }),\n\n // Remediation\n suggestedRemediation: field.json({\n isOptional: true,\n description: 'Suggested remediation',\n }),\n remediationProgress: field.int({\n default: 0,\n description: 'Remediation progress',\n }),\n\n // Status\n status: field.string({\n default: '\"open\"',\n description: 'Status: open, in_progress, resolved',\n }),\n resolvedAt: field.dateTime({\n isOptional: true,\n description: 'When resolved',\n }),\n\n // Timestamps\n detectedAt: field.dateTime({ description: 'When gap was detected' }),\n createdAt: field.createdAt(),\n updatedAt: field.updatedAt(),\n\n // Relations\n learner: field.belongsTo('Learner', ['learnerId'], ['id'], {\n onDelete: 'Cascade',\n }),\n },\n indexes: [\n index.on(['learnerId', 'status']),\n index.on(['skillId', 'status']),\n index.on(['severity', 'status']),\n ],\n});\n\nexport const aiEntities = [\n LearnerProfileEntity,\n SkillMapEntity,\n LearningPathEntity,\n RecommendationEntity,\n LearningGapEntity,\n];\n\nexport const aiEnums = [LearningStyleEnum, RecommendationTypeEnum];\n"],"mappings":"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"}