@almadar/std 8.5.1 → 10.0.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 (187) hide show
  1. package/behaviors/registry/agent/atoms/std-agent-activity-log.orb +97 -97
  2. package/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +129 -129
  3. package/behaviors/registry/agent/atoms/std-agent-classifier.orb +127 -127
  4. package/behaviors/registry/agent/atoms/std-agent-completion.orb +133 -133
  5. package/behaviors/registry/agent/atoms/std-agent-context-window.orb +419 -419
  6. package/behaviors/registry/agent/atoms/std-agent-conversation.orb +100 -100
  7. package/behaviors/registry/agent/atoms/std-agent-memory.orb +112 -112
  8. package/behaviors/registry/agent/atoms/std-agent-provider.orb +138 -138
  9. package/behaviors/registry/agent/atoms/std-agent-search.orb +78 -78
  10. package/behaviors/registry/agent/atoms/std-agent-session.orb +171 -171
  11. package/behaviors/registry/agent/atoms/std-agent-step-progress.orb +202 -202
  12. package/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +358 -358
  13. package/behaviors/registry/agent/atoms/std-agent-tool-call.orb +79 -79
  14. package/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +204 -204
  15. package/behaviors/registry/agent/molecules/std-agent-learner.orb +190 -190
  16. package/behaviors/registry/agent/molecules/std-agent-planner.orb +152 -152
  17. package/behaviors/registry/agent/molecules/std-agent-rag.orb +115 -115
  18. package/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  19. package/behaviors/registry/agent/organisms/std-agent-assistant.orb +1219 -1219
  20. package/behaviors/registry/agent/organisms/std-agent-builder.orb +2995 -2995
  21. package/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2285 -2285
  22. package/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1063 -1063
  23. package/behaviors/registry/agent/organisms/std-agent-tutor.orb +876 -876
  24. package/behaviors/registry/app/organisms/std-api-gateway.orb +840 -840
  25. package/behaviors/registry/app/organisms/std-booking-system.orb +1248 -1248
  26. package/behaviors/registry/app/organisms/std-cicd-pipeline.orb +816 -816
  27. package/behaviors/registry/app/organisms/std-cms.orb +587 -587
  28. package/behaviors/registry/app/organisms/std-coding-academy.orb +416 -416
  29. package/behaviors/registry/app/organisms/std-crm.orb +966 -966
  30. package/behaviors/registry/app/organisms/std-devops-dashboard.orb +1375 -1375
  31. package/behaviors/registry/app/organisms/std-ecommerce.orb +1109 -1109
  32. package/behaviors/registry/app/organisms/std-finance-tracker.orb +716 -716
  33. package/behaviors/registry/app/organisms/std-healthcare.orb +1473 -1473
  34. package/behaviors/registry/app/organisms/std-helpdesk.orb +693 -693
  35. package/behaviors/registry/app/organisms/std-hr-portal.orb +1252 -1252
  36. package/behaviors/registry/app/organisms/std-iot-dashboard.orb +895 -895
  37. package/behaviors/registry/app/organisms/std-lms.orb +876 -876
  38. package/behaviors/registry/app/organisms/std-project-manager.orb +790 -790
  39. package/behaviors/registry/app/organisms/std-realtime-chat.orb +740 -740
  40. package/behaviors/registry/app/organisms/std-social-feed.orb +266 -266
  41. package/behaviors/registry/app/organisms/std-trading-dashboard.orb +699 -699
  42. package/behaviors/registry/core/atoms/std-browse.orb +67 -67
  43. package/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  44. package/behaviors/registry/core/atoms/std-calendar.orb +62 -62
  45. package/behaviors/registry/core/atoms/std-circuit-breaker.orb +188 -188
  46. package/behaviors/registry/core/atoms/std-confirmation.orb +34 -34
  47. package/behaviors/registry/core/atoms/std-display.orb +370 -370
  48. package/behaviors/registry/core/atoms/std-drawer.orb +61 -61
  49. package/behaviors/registry/core/atoms/std-filter.orb +63 -63
  50. package/behaviors/registry/core/atoms/std-gallery.orb +55 -55
  51. package/behaviors/registry/core/atoms/std-modal.orb +19 -19
  52. package/behaviors/registry/core/atoms/std-pagination.orb +53 -53
  53. package/behaviors/registry/core/atoms/std-push.orb +49 -49
  54. package/behaviors/registry/core/atoms/std-rate-limiter.orb +185 -185
  55. package/behaviors/registry/core/atoms/std-related.orb +39 -39
  56. package/behaviors/registry/core/atoms/std-search.orb +73 -73
  57. package/behaviors/registry/core/atoms/std-selection.orb +110 -110
  58. package/behaviors/registry/core/atoms/std-tabs.orb +47 -47
  59. package/behaviors/registry/core/molecules/std-cart.orb +68 -72
  60. package/behaviors/registry/core/molecules/std-filtered-list.orb +11 -11
  61. package/behaviors/registry/core/molecules/std-form-advanced.orb +140 -140
  62. package/behaviors/registry/core/molecules/std-list.orb +68 -68
  63. package/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  64. package/behaviors/registry/game/atoms/std-collision.orb +140 -140
  65. package/behaviors/registry/game/atoms/std-combat.orb +76 -76
  66. package/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  67. package/behaviors/registry/game/atoms/std-game-canvas2d.orb +47 -47
  68. package/behaviors/registry/game/atoms/std-gameflow.orb +49 -49
  69. package/behaviors/registry/game/atoms/std-movement.orb +276 -276
  70. package/behaviors/registry/game/atoms/std-overworld.orb +64 -64
  71. package/behaviors/registry/game/atoms/std-physics2d.orb +88 -88
  72. package/behaviors/registry/game/atoms/std-quest.orb +129 -129
  73. package/behaviors/registry/game/atoms/std-timer.orb +285 -285
  74. package/behaviors/registry/game/organisms/std-arcade-game.orb +172 -172
  75. package/behaviors/registry/game/organisms/std-logic-training.orb +89 -89
  76. package/behaviors/registry/game/organisms/std-platformer-app.orb +281 -281
  77. package/behaviors/registry/game/organisms/std-puzzle-app.orb +110 -110
  78. package/behaviors/registry/game/organisms/std-rpg-game.orb +446 -446
  79. package/behaviors/registry/game/organisms/std-stem-lab.orb +349 -349
  80. package/behaviors/registry/game/organisms/std-strategy-game.orb +550 -550
  81. package/behaviors/registry/probes/molecules/std-source-scope-probe.orb +35 -35
  82. package/behaviors/registry/service/atoms/std-service-custom-bearer.orb +93 -93
  83. package/behaviors/registry/service/atoms/std-service-email.orb +92 -92
  84. package/behaviors/registry/service/atoms/std-service-github.orb +111 -111
  85. package/behaviors/registry/service/atoms/std-service-llm.orb +132 -132
  86. package/behaviors/registry/service/atoms/std-service-oauth.orb +133 -133
  87. package/behaviors/registry/service/atoms/std-service-redis.orb +114 -114
  88. package/behaviors/registry/service/atoms/std-service-storage.orb +140 -140
  89. package/behaviors/registry/service/atoms/std-service-stripe.orb +115 -115
  90. package/behaviors/registry/service/atoms/std-service-twilio.orb +131 -131
  91. package/behaviors/registry/service/atoms/std-service-youtube.orb +128 -128
  92. package/behaviors/registry/service/organisms/std-service-marketplace.orb +1092 -1092
  93. package/behaviors/registry/service/organisms/std-service-research-assistant.orb +978 -978
  94. package/dist/behaviors/registry/agent/atoms/std-agent-activity-log.orb +97 -97
  95. package/dist/behaviors/registry/agent/atoms/std-agent-chat-thread.orb +129 -129
  96. package/dist/behaviors/registry/agent/atoms/std-agent-classifier.orb +127 -127
  97. package/dist/behaviors/registry/agent/atoms/std-agent-completion.orb +133 -133
  98. package/dist/behaviors/registry/agent/atoms/std-agent-context-window.orb +419 -419
  99. package/dist/behaviors/registry/agent/atoms/std-agent-conversation.orb +100 -100
  100. package/dist/behaviors/registry/agent/atoms/std-agent-memory.orb +112 -112
  101. package/dist/behaviors/registry/agent/atoms/std-agent-provider.orb +138 -138
  102. package/dist/behaviors/registry/agent/atoms/std-agent-search.orb +78 -78
  103. package/dist/behaviors/registry/agent/atoms/std-agent-session.orb +171 -171
  104. package/dist/behaviors/registry/agent/atoms/std-agent-step-progress.orb +202 -202
  105. package/dist/behaviors/registry/agent/atoms/std-agent-token-gauge.orb +358 -358
  106. package/dist/behaviors/registry/agent/atoms/std-agent-tool-call.orb +79 -79
  107. package/dist/behaviors/registry/agent/molecules/std-agent-fix-loop.orb +204 -204
  108. package/dist/behaviors/registry/agent/molecules/std-agent-learner.orb +190 -190
  109. package/dist/behaviors/registry/agent/molecules/std-agent-planner.orb +152 -152
  110. package/dist/behaviors/registry/agent/molecules/std-agent-rag.orb +115 -115
  111. package/dist/behaviors/registry/agent/molecules/std-agent-tool-loop.orb +188 -188
  112. package/dist/behaviors/registry/agent/organisms/std-agent-assistant.orb +1219 -1219
  113. package/dist/behaviors/registry/agent/organisms/std-agent-builder.orb +2995 -2995
  114. package/dist/behaviors/registry/agent/organisms/std-agent-pipeline.orb +2285 -2285
  115. package/dist/behaviors/registry/agent/organisms/std-agent-reviewer.orb +1063 -1063
  116. package/dist/behaviors/registry/agent/organisms/std-agent-tutor.orb +876 -876
  117. package/dist/behaviors/registry/app/organisms/std-api-gateway.orb +840 -840
  118. package/dist/behaviors/registry/app/organisms/std-booking-system.orb +1248 -1248
  119. package/dist/behaviors/registry/app/organisms/std-cicd-pipeline.orb +816 -816
  120. package/dist/behaviors/registry/app/organisms/std-cms.orb +587 -587
  121. package/dist/behaviors/registry/app/organisms/std-coding-academy.orb +416 -416
  122. package/dist/behaviors/registry/app/organisms/std-crm.orb +966 -966
  123. package/dist/behaviors/registry/app/organisms/std-devops-dashboard.orb +1375 -1375
  124. package/dist/behaviors/registry/app/organisms/std-ecommerce.orb +1109 -1109
  125. package/dist/behaviors/registry/app/organisms/std-finance-tracker.orb +716 -716
  126. package/dist/behaviors/registry/app/organisms/std-healthcare.orb +1473 -1473
  127. package/dist/behaviors/registry/app/organisms/std-helpdesk.orb +693 -693
  128. package/dist/behaviors/registry/app/organisms/std-hr-portal.orb +1252 -1252
  129. package/dist/behaviors/registry/app/organisms/std-iot-dashboard.orb +895 -895
  130. package/dist/behaviors/registry/app/organisms/std-lms.orb +876 -876
  131. package/dist/behaviors/registry/app/organisms/std-project-manager.orb +790 -790
  132. package/dist/behaviors/registry/app/organisms/std-realtime-chat.orb +740 -740
  133. package/dist/behaviors/registry/app/organisms/std-social-feed.orb +266 -266
  134. package/dist/behaviors/registry/app/organisms/std-trading-dashboard.orb +699 -699
  135. package/dist/behaviors/registry/core/atoms/std-browse.orb +67 -67
  136. package/dist/behaviors/registry/core/atoms/std-cache-aside.orb +97 -97
  137. package/dist/behaviors/registry/core/atoms/std-calendar.orb +62 -62
  138. package/dist/behaviors/registry/core/atoms/std-circuit-breaker.orb +188 -188
  139. package/dist/behaviors/registry/core/atoms/std-confirmation.orb +34 -34
  140. package/dist/behaviors/registry/core/atoms/std-display.orb +370 -370
  141. package/dist/behaviors/registry/core/atoms/std-drawer.orb +61 -61
  142. package/dist/behaviors/registry/core/atoms/std-filter.orb +63 -63
  143. package/dist/behaviors/registry/core/atoms/std-gallery.orb +55 -55
  144. package/dist/behaviors/registry/core/atoms/std-modal.orb +19 -19
  145. package/dist/behaviors/registry/core/atoms/std-pagination.orb +53 -53
  146. package/dist/behaviors/registry/core/atoms/std-push.orb +49 -49
  147. package/dist/behaviors/registry/core/atoms/std-rate-limiter.orb +185 -185
  148. package/dist/behaviors/registry/core/atoms/std-related.orb +39 -39
  149. package/dist/behaviors/registry/core/atoms/std-search.orb +73 -73
  150. package/dist/behaviors/registry/core/atoms/std-selection.orb +110 -110
  151. package/dist/behaviors/registry/core/atoms/std-tabs.orb +47 -47
  152. package/dist/behaviors/registry/core/molecules/std-cart.orb +68 -72
  153. package/dist/behaviors/registry/core/molecules/std-filtered-list.orb +11 -11
  154. package/dist/behaviors/registry/core/molecules/std-form-advanced.orb +140 -140
  155. package/dist/behaviors/registry/core/molecules/std-list.orb +68 -68
  156. package/dist/behaviors/registry/core/molecules/std-wizard-form.orb +152 -152
  157. package/dist/behaviors/registry/game/atoms/std-collision.orb +140 -140
  158. package/dist/behaviors/registry/game/atoms/std-combat.orb +76 -76
  159. package/dist/behaviors/registry/game/atoms/std-dialogue-box.orb +27 -27
  160. package/dist/behaviors/registry/game/atoms/std-game-canvas2d.orb +47 -47
  161. package/dist/behaviors/registry/game/atoms/std-gameflow.orb +49 -49
  162. package/dist/behaviors/registry/game/atoms/std-movement.orb +276 -276
  163. package/dist/behaviors/registry/game/atoms/std-overworld.orb +64 -64
  164. package/dist/behaviors/registry/game/atoms/std-physics2d.orb +88 -88
  165. package/dist/behaviors/registry/game/atoms/std-quest.orb +129 -129
  166. package/dist/behaviors/registry/game/atoms/std-timer.orb +285 -285
  167. package/dist/behaviors/registry/game/organisms/std-arcade-game.orb +172 -172
  168. package/dist/behaviors/registry/game/organisms/std-logic-training.orb +89 -89
  169. package/dist/behaviors/registry/game/organisms/std-platformer-app.orb +281 -281
  170. package/dist/behaviors/registry/game/organisms/std-puzzle-app.orb +110 -110
  171. package/dist/behaviors/registry/game/organisms/std-rpg-game.orb +446 -446
  172. package/dist/behaviors/registry/game/organisms/std-stem-lab.orb +349 -349
  173. package/dist/behaviors/registry/game/organisms/std-strategy-game.orb +550 -550
  174. package/dist/behaviors/registry/probes/molecules/std-source-scope-probe.orb +35 -35
  175. package/dist/behaviors/registry/service/atoms/std-service-custom-bearer.orb +93 -93
  176. package/dist/behaviors/registry/service/atoms/std-service-email.orb +92 -92
  177. package/dist/behaviors/registry/service/atoms/std-service-github.orb +111 -111
  178. package/dist/behaviors/registry/service/atoms/std-service-llm.orb +132 -132
  179. package/dist/behaviors/registry/service/atoms/std-service-oauth.orb +133 -133
  180. package/dist/behaviors/registry/service/atoms/std-service-redis.orb +114 -114
  181. package/dist/behaviors/registry/service/atoms/std-service-storage.orb +140 -140
  182. package/dist/behaviors/registry/service/atoms/std-service-stripe.orb +115 -115
  183. package/dist/behaviors/registry/service/atoms/std-service-twilio.orb +131 -131
  184. package/dist/behaviors/registry/service/atoms/std-service-youtube.orb +128 -128
  185. package/dist/behaviors/registry/service/organisms/std-service-marketplace.orb +1092 -1092
  186. package/dist/behaviors/registry/service/organisms/std-service-research-assistant.orb +978 -978
  187. package/package.json +1 -1
@@ -70,7 +70,7 @@
70
70
  {
71
71
  "event": "ASSESSMENT_DONE",
72
72
  "scope": "internal",
73
- "payload": [
73
+ "payloadSchema": [
74
74
  {
75
75
  "name": "level",
76
76
  "type": "string"
@@ -80,7 +80,7 @@
80
80
  {
81
81
  "event": "ASSESSMENT_DONE",
82
82
  "scope": "external",
83
- "payload": [
83
+ "payloadSchema": [
84
84
  {
85
85
  "name": "level",
86
86
  "type": "string"
@@ -91,7 +91,7 @@
91
91
  "event": "TutorSessionLoaded",
92
92
  "description": "Fired when TutorSession finishes loading",
93
93
  "scope": "internal",
94
- "payload": [
94
+ "payloadSchema": [
95
95
  {
96
96
  "name": "data",
97
97
  "type": "[TutorSession]"
@@ -102,7 +102,7 @@
102
102
  "event": "TutorSessionLoadFailed",
103
103
  "description": "Fired when TutorSession fails to load",
104
104
  "scope": "internal",
105
- "payload": [
105
+ "payloadSchema": [
106
106
  {
107
107
  "name": "error",
108
108
  "type": "string"
@@ -116,7 +116,7 @@
116
116
  {
117
117
  "event": "TutorChatDeleted",
118
118
  "scope": "internal",
119
- "payload": [
119
+ "payloadSchema": [
120
120
  {
121
121
  "name": "id",
122
122
  "type": "string"
@@ -126,7 +126,7 @@
126
126
  {
127
127
  "event": "TutorChatDeleteFailed",
128
128
  "scope": "internal",
129
- "payload": [
129
+ "payloadSchema": [
130
130
  {
131
131
  "name": "error",
132
132
  "type": "string"
@@ -140,7 +140,7 @@
140
140
  {
141
141
  "event": "ConceptSaved",
142
142
  "scope": "internal",
143
- "payload": [
143
+ "payloadSchema": [
144
144
  {
145
145
  "name": "id",
146
146
  "type": "string"
@@ -150,7 +150,7 @@
150
150
  {
151
151
  "event": "ConceptSaveFailed",
152
152
  "scope": "internal",
153
- "payload": [
153
+ "payloadSchema": [
154
154
  {
155
155
  "name": "error",
156
156
  "type": "string"
@@ -164,7 +164,7 @@
164
164
  {
165
165
  "event": "StudentAssessmentSaved",
166
166
  "scope": "internal",
167
- "payload": [
167
+ "payloadSchema": [
168
168
  {
169
169
  "name": "id",
170
170
  "type": "string"
@@ -174,7 +174,7 @@
174
174
  {
175
175
  "event": "StudentAssessmentSaveFailed",
176
176
  "scope": "internal",
177
- "payload": [
177
+ "payloadSchema": [
178
178
  {
179
179
  "name": "error",
180
180
  "type": "string"
@@ -207,7 +207,7 @@
207
207
  {
208
208
  "key": "START_SESSION",
209
209
  "name": "Start Session",
210
- "payload": [
210
+ "payloadSchema": [
211
211
  {
212
212
  "name": "topic",
213
213
  "type": "string",
@@ -238,7 +238,7 @@
238
238
  {
239
239
  "key": "TutorSessionLoaded",
240
240
  "name": "TutorSession loaded",
241
- "payload": [
241
+ "payloadSchema": [
242
242
  {
243
243
  "name": "data",
244
244
  "type": "[TutorSession]"
@@ -248,7 +248,7 @@
248
248
  {
249
249
  "key": "TutorSessionLoadFailed",
250
250
  "name": "TutorSession load failed",
251
- "payload": [
251
+ "payloadSchema": [
252
252
  {
253
253
  "name": "error",
254
254
  "type": "string"
@@ -262,7 +262,7 @@
262
262
  {
263
263
  "key": "TutorChatDeleted",
264
264
  "name": "Tutor chat deleted",
265
- "payload": [
265
+ "payloadSchema": [
266
266
  {
267
267
  "name": "id",
268
268
  "type": "string"
@@ -272,7 +272,7 @@
272
272
  {
273
273
  "key": "TutorChatDeleteFailed",
274
274
  "name": "Tutor chat delete failed",
275
- "payload": [
275
+ "payloadSchema": [
276
276
  {
277
277
  "name": "error",
278
278
  "type": "string"
@@ -286,7 +286,7 @@
286
286
  {
287
287
  "key": "ConceptSaved",
288
288
  "name": "Concept saved",
289
- "payload": [
289
+ "payloadSchema": [
290
290
  {
291
291
  "name": "id",
292
292
  "type": "string"
@@ -296,7 +296,7 @@
296
296
  {
297
297
  "key": "ConceptSaveFailed",
298
298
  "name": "Concept save failed",
299
- "payload": [
299
+ "payloadSchema": [
300
300
  {
301
301
  "name": "error",
302
302
  "type": "string"
@@ -310,7 +310,7 @@
310
310
  {
311
311
  "key": "StudentAssessmentSaved",
312
312
  "name": "Student assessment saved",
313
- "payload": [
313
+ "payloadSchema": [
314
314
  {
315
315
  "name": "id",
316
316
  "type": "string"
@@ -320,7 +320,7 @@
320
320
  {
321
321
  "key": "StudentAssessmentSaveFailed",
322
322
  "name": "Student assessment save failed",
323
- "payload": [
323
+ "payloadSchema": [
324
324
  {
325
325
  "name": "error",
326
326
  "type": "string"
@@ -343,8 +343,8 @@
343
343
  "TutorSession",
344
344
  {
345
345
  "emit": {
346
- "success": "TutorSessionLoaded",
347
- "failure": "TutorSessionLoadFailed"
346
+ "failure": "TutorSessionLoadFailed",
347
+ "success": "TutorSessionLoaded"
348
348
  }
349
349
  }
350
350
  ],
@@ -352,46 +352,25 @@
352
352
  "render-ui",
353
353
  "main",
354
354
  {
355
- "navItems": [
356
- {
357
- "label": "Teach",
358
- "icon": "book-open",
359
- "href": "/teach"
360
- },
361
- {
362
- "label": "Quiz",
363
- "icon": "help-circle",
364
- "href": "/quiz"
365
- },
366
- {
367
- "label": "Concepts",
368
- "href": "/concepts",
369
- "icon": "brain"
370
- }
371
- ],
372
- "type": "dashboard-layout",
373
355
  "children": [
374
356
  {
375
- "type": "stack",
376
- "direction": "vertical",
377
- "gap": "lg",
378
357
  "children": [
379
358
  {
380
- "align": "center",
381
- "direction": "horizontal",
382
- "type": "stack",
383
359
  "gap": "sm",
360
+ "direction": "horizontal",
384
361
  "children": [
385
362
  {
386
- "type": "icon",
387
- "name": "graduation-cap"
363
+ "name": "graduation-cap",
364
+ "type": "icon"
388
365
  },
389
366
  {
390
- "variant": "h2",
391
367
  "type": "typography",
392
- "content": "Tutor"
368
+ "content": "Tutor",
369
+ "variant": "h2"
393
370
  }
394
- ]
371
+ ],
372
+ "align": "center",
373
+ "type": "stack"
395
374
  },
396
375
  {
397
376
  "type": "divider"
@@ -399,33 +378,54 @@
399
378
  {
400
379
  "children": [
401
380
  {
402
- "type": "stack",
403
381
  "gap": "md",
382
+ "direction": "vertical",
404
383
  "children": [
405
384
  {
385
+ "type": "typography",
406
386
  "content": "What topic would you like to learn about? The tutor will assess your level and guide you through it.",
407
- "variant": "body",
408
- "type": "typography"
387
+ "variant": "body"
409
388
  },
410
389
  {
411
- "type": "form-section",
390
+ "entity": "@entity",
391
+ "submitEvent": "START_SESSION",
412
392
  "fields": [
413
393
  "topic"
414
394
  ],
415
- "mode": "edit",
416
- "entity": "@entity",
417
- "submitEvent": "START_SESSION"
395
+ "type": "form-section",
396
+ "mode": "edit"
418
397
  }
419
398
  ],
420
- "direction": "vertical"
399
+ "type": "stack"
421
400
  }
422
401
  ],
423
402
  "type": "card"
424
403
  }
425
- ]
404
+ ],
405
+ "direction": "vertical",
406
+ "gap": "lg",
407
+ "type": "stack"
426
408
  }
427
409
  ],
428
- "appName": "AI Tutor"
410
+ "appName": "AI Tutor",
411
+ "type": "dashboard-layout",
412
+ "navItems": [
413
+ {
414
+ "href": "/teach",
415
+ "icon": "book-open",
416
+ "label": "Teach"
417
+ },
418
+ {
419
+ "icon": "help-circle",
420
+ "label": "Quiz",
421
+ "href": "/quiz"
422
+ },
423
+ {
424
+ "icon": "brain",
425
+ "label": "Concepts",
426
+ "href": "/concepts"
427
+ }
428
+ ]
429
429
  }
430
430
  ]
431
431
  ]
@@ -458,18 +458,19 @@
458
458
  "main",
459
459
  {
460
460
  "type": "dashboard-layout",
461
- "appName": "AI Tutor",
462
461
  "children": [
463
462
  {
463
+ "type": "stack",
464
+ "gap": "lg",
464
465
  "children": [
465
466
  {
466
467
  "type": "icon",
467
468
  "name": "search"
468
469
  },
469
470
  {
471
+ "variant": "h3",
470
472
  "type": "typography",
471
- "content": "Assessing your level...",
472
- "variant": "h3"
473
+ "content": "Assessing your level..."
473
474
  },
474
475
  {
475
476
  "type": "spinner"
@@ -480,12 +481,11 @@
480
481
  "content": "Recalling prior learning and classifying skill level"
481
482
  }
482
483
  ],
483
- "type": "stack",
484
484
  "align": "center",
485
- "gap": "lg",
486
485
  "direction": "vertical"
487
486
  }
488
487
  ],
488
+ "appName": "AI Tutor",
489
489
  "navItems": [
490
490
  {
491
491
  "icon": "book-open",
@@ -493,14 +493,14 @@
493
493
  "href": "/teach"
494
494
  },
495
495
  {
496
- "icon": "help-circle",
497
496
  "href": "/quiz",
497
+ "icon": "help-circle",
498
498
  "label": "Quiz"
499
499
  },
500
500
  {
501
+ "icon": "brain",
501
502
  "label": "Concepts",
502
- "href": "/concepts",
503
- "icon": "brain"
503
+ "href": "/concepts"
504
504
  }
505
505
  ]
506
506
  }
@@ -530,92 +530,110 @@
530
530
  "render-ui",
531
531
  "main",
532
532
  {
533
+ "type": "dashboard-layout",
533
534
  "appName": "AI Tutor",
535
+ "navItems": [
536
+ {
537
+ "href": "/teach",
538
+ "label": "Teach",
539
+ "icon": "book-open"
540
+ },
541
+ {
542
+ "label": "Quiz",
543
+ "icon": "help-circle",
544
+ "href": "/quiz"
545
+ },
546
+ {
547
+ "href": "/concepts",
548
+ "label": "Concepts",
549
+ "icon": "brain"
550
+ }
551
+ ],
534
552
  "children": [
535
553
  {
554
+ "direction": "vertical",
555
+ "gap": "lg",
536
556
  "children": [
537
557
  {
538
- "type": "stack",
539
- "direction": "horizontal",
540
- "align": "center",
541
- "justify": "between",
542
558
  "gap": "sm",
543
559
  "children": [
544
560
  {
545
561
  "type": "stack",
546
562
  "direction": "horizontal",
547
563
  "gap": "sm",
564
+ "align": "center",
548
565
  "children": [
549
566
  {
550
567
  "type": "icon",
551
568
  "name": "book-open"
552
569
  },
553
570
  {
554
- "content": "Lesson: @entity.topic",
571
+ "type": "typography",
555
572
  "variant": "h2",
556
- "type": "typography"
573
+ "content": "Lesson: @entity.topic"
557
574
  }
558
- ],
559
- "align": "center"
575
+ ]
560
576
  },
561
577
  {
562
- "label": "@entity.studentLevel",
563
- "type": "badge"
578
+ "type": "badge",
579
+ "label": "@entity.studentLevel"
564
580
  }
565
- ]
581
+ ],
582
+ "direction": "horizontal",
583
+ "type": "stack",
584
+ "align": "center",
585
+ "justify": "between"
566
586
  },
567
587
  {
568
588
  "type": "divider"
569
589
  },
570
590
  {
571
- "type": "card",
572
591
  "children": [
573
592
  {
574
- "gap": "md",
575
- "type": "stack",
576
593
  "direction": "vertical",
577
594
  "children": [
578
595
  {
579
596
  "variant": "body",
580
- "content": "@entity.explanation",
581
- "type": "typography"
597
+ "type": "typography",
598
+ "content": "@entity.explanation"
582
599
  }
583
- ]
600
+ ],
601
+ "type": "stack",
602
+ "gap": "md"
584
603
  }
585
- ]
604
+ ],
605
+ "type": "card"
586
606
  },
587
607
  {
588
608
  "type": "stack",
609
+ "gap": "sm",
589
610
  "direction": "horizontal",
590
611
  "children": [
591
612
  {
592
- "label": "Quiz Me",
593
- "action": "START_QUIZ",
594
613
  "type": "button",
595
- "variant": "primary",
596
- "icon": "help-circle"
614
+ "icon": "help-circle",
615
+ "action": "START_QUIZ",
616
+ "label": "Quiz Me",
617
+ "variant": "primary"
597
618
  },
598
619
  {
599
- "variant": "secondary",
600
620
  "type": "button",
601
- "icon": "book-open",
602
621
  "label": "Explain More",
603
- "action": "EXPLAIN_MORE"
622
+ "variant": "secondary",
623
+ "action": "EXPLAIN_MORE",
624
+ "icon": "book-open"
604
625
  },
605
626
  {
606
- "type": "button",
627
+ "label": "New Topic",
607
628
  "action": "RESET",
608
629
  "icon": "rotate-ccw",
609
630
  "variant": "ghost",
610
- "label": "New Topic"
631
+ "type": "button"
611
632
  }
612
- ],
613
- "gap": "sm"
633
+ ]
614
634
  },
615
635
  {
616
- "type": "stack",
617
636
  "direction": "horizontal",
618
- "gap": "xs",
619
637
  "children": [
620
638
  {
621
639
  "label": "@entity.questionsAsked",
@@ -625,30 +643,12 @@
625
643
  "type": "badge",
626
644
  "label": "@entity.correctAnswers"
627
645
  }
628
- ]
646
+ ],
647
+ "type": "stack",
648
+ "gap": "xs"
629
649
  }
630
650
  ],
631
- "type": "stack",
632
- "gap": "lg",
633
- "direction": "vertical"
634
- }
635
- ],
636
- "type": "dashboard-layout",
637
- "navItems": [
638
- {
639
- "label": "Teach",
640
- "href": "/teach",
641
- "icon": "book-open"
642
- },
643
- {
644
- "href": "/quiz",
645
- "label": "Quiz",
646
- "icon": "help-circle"
647
- },
648
- {
649
- "href": "/concepts",
650
- "label": "Concepts",
651
- "icon": "brain"
651
+ "type": "stack"
652
652
  }
653
653
  ]
654
654
  }
@@ -668,77 +668,62 @@
668
668
  "render-ui",
669
669
  "main",
670
670
  {
671
- "navItems": [
672
- {
673
- "href": "/teach",
674
- "label": "Teach",
675
- "icon": "book-open"
676
- },
677
- {
678
- "icon": "help-circle",
679
- "href": "/quiz",
680
- "label": "Quiz"
681
- },
682
- {
683
- "label": "Concepts",
684
- "href": "/concepts",
685
- "icon": "brain"
686
- }
687
- ],
688
- "appName": "AI Tutor",
671
+ "type": "dashboard-layout",
689
672
  "children": [
690
673
  {
674
+ "type": "stack",
675
+ "gap": "lg",
691
676
  "direction": "vertical",
692
677
  "children": [
693
678
  {
679
+ "gap": "sm",
680
+ "justify": "between",
681
+ "direction": "horizontal",
682
+ "align": "center",
694
683
  "children": [
695
684
  {
696
- "type": "stack",
697
- "align": "center",
698
- "direction": "horizontal",
699
685
  "children": [
700
686
  {
701
- "type": "icon",
702
- "name": "book-open"
687
+ "name": "book-open",
688
+ "type": "icon"
703
689
  },
704
690
  {
705
- "type": "typography",
706
691
  "content": "Lesson: @entity.topic",
692
+ "type": "typography",
707
693
  "variant": "h2"
708
694
  }
709
695
  ],
696
+ "align": "center",
697
+ "direction": "horizontal",
698
+ "type": "stack",
710
699
  "gap": "sm"
711
700
  },
712
701
  {
713
- "type": "badge",
714
- "label": "@entity.studentLevel"
702
+ "label": "@entity.studentLevel",
703
+ "type": "badge"
715
704
  }
716
705
  ],
717
- "type": "stack",
718
- "justify": "between",
719
- "direction": "horizontal",
720
- "align": "center",
721
- "gap": "sm"
706
+ "type": "stack"
722
707
  },
723
708
  {
724
709
  "type": "divider"
725
710
  },
726
711
  {
727
- "type": "card",
728
712
  "children": [
729
713
  {
714
+ "direction": "vertical",
730
715
  "gap": "md",
731
716
  "type": "stack",
732
- "direction": "vertical",
733
717
  "children": [
734
718
  {
735
- "content": "@entity.explanation",
719
+ "variant": "body",
736
720
  "type": "typography",
737
- "variant": "body"
721
+ "content": "@entity.explanation"
738
722
  }
739
723
  ]
740
724
  }
741
- ]
725
+ ],
726
+ "type": "card"
742
727
  },
743
728
  {
744
729
  "type": "stack",
@@ -746,34 +731,33 @@
746
731
  "gap": "sm",
747
732
  "children": [
748
733
  {
734
+ "action": "START_QUIZ",
749
735
  "type": "button",
750
- "label": "Quiz Me",
736
+ "variant": "primary",
751
737
  "icon": "help-circle",
752
- "action": "START_QUIZ",
753
- "variant": "primary"
738
+ "label": "Quiz Me"
754
739
  },
755
740
  {
756
- "action": "EXPLAIN_MORE",
757
741
  "type": "button",
758
742
  "label": "Explain More",
743
+ "icon": "book-open",
759
744
  "variant": "secondary",
760
- "icon": "book-open"
745
+ "action": "EXPLAIN_MORE"
761
746
  },
762
747
  {
748
+ "label": "New Topic",
763
749
  "action": "RESET",
764
750
  "variant": "ghost",
765
751
  "icon": "rotate-ccw",
766
- "type": "button",
767
- "label": "New Topic"
752
+ "type": "button"
768
753
  }
769
754
  ]
770
755
  },
771
756
  {
772
- "gap": "xs",
773
757
  "children": [
774
758
  {
775
- "type": "badge",
776
- "label": "@entity.questionsAsked"
759
+ "label": "@entity.questionsAsked",
760
+ "type": "badge"
777
761
  },
778
762
  {
779
763
  "label": "@entity.correctAnswers",
@@ -781,14 +765,30 @@
781
765
  }
782
766
  ],
783
767
  "type": "stack",
768
+ "gap": "xs",
784
769
  "direction": "horizontal"
785
770
  }
786
- ],
787
- "type": "stack",
788
- "gap": "lg"
771
+ ]
789
772
  }
790
773
  ],
791
- "type": "dashboard-layout"
774
+ "appName": "AI Tutor",
775
+ "navItems": [
776
+ {
777
+ "icon": "book-open",
778
+ "label": "Teach",
779
+ "href": "/teach"
780
+ },
781
+ {
782
+ "label": "Quiz",
783
+ "href": "/quiz",
784
+ "icon": "help-circle"
785
+ },
786
+ {
787
+ "href": "/concepts",
788
+ "label": "Concepts",
789
+ "icon": "brain"
790
+ }
791
+ ]
792
792
  }
793
793
  ]
794
794
  ]
@@ -806,58 +806,40 @@
806
806
  "render-ui",
807
807
  "main",
808
808
  {
809
- "appName": "AI Tutor",
810
809
  "type": "dashboard-layout",
811
- "navItems": [
812
- {
813
- "icon": "book-open",
814
- "href": "/teach",
815
- "label": "Teach"
816
- },
817
- {
818
- "label": "Quiz",
819
- "icon": "help-circle",
820
- "href": "/quiz"
821
- },
822
- {
823
- "icon": "brain",
824
- "label": "Concepts",
825
- "href": "/concepts"
826
- }
827
- ],
828
810
  "children": [
829
811
  {
830
812
  "gap": "lg",
831
- "direction": "vertical",
813
+ "type": "stack",
832
814
  "children": [
833
815
  {
834
- "type": "stack",
835
816
  "direction": "horizontal",
836
817
  "align": "center",
837
- "justify": "between",
838
818
  "children": [
839
819
  {
820
+ "align": "center",
821
+ "gap": "sm",
822
+ "direction": "horizontal",
840
823
  "children": [
841
824
  {
842
825
  "type": "icon",
843
826
  "name": "book-open"
844
827
  },
845
828
  {
829
+ "variant": "h2",
846
830
  "content": "Lesson: @entity.topic",
847
- "type": "typography",
848
- "variant": "h2"
831
+ "type": "typography"
849
832
  }
850
833
  ],
851
- "direction": "horizontal",
852
- "type": "stack",
853
- "gap": "sm",
854
- "align": "center"
834
+ "type": "stack"
855
835
  },
856
836
  {
857
837
  "type": "badge",
858
838
  "label": "@entity.studentLevel"
859
839
  }
860
840
  ],
841
+ "justify": "between",
842
+ "type": "stack",
861
843
  "gap": "sm"
862
844
  },
863
845
  {
@@ -867,46 +849,46 @@
867
849
  "type": "card",
868
850
  "children": [
869
851
  {
870
- "direction": "vertical",
871
852
  "gap": "md",
853
+ "direction": "vertical",
854
+ "type": "stack",
872
855
  "children": [
873
856
  {
857
+ "variant": "body",
874
858
  "type": "typography",
875
- "content": "@entity.explanation",
876
- "variant": "body"
859
+ "content": "@entity.explanation"
877
860
  }
878
- ],
879
- "type": "stack"
861
+ ]
880
862
  }
881
863
  ]
882
864
  },
883
865
  {
884
- "gap": "sm",
885
866
  "type": "stack",
867
+ "direction": "horizontal",
886
868
  "children": [
887
869
  {
888
- "action": "START_QUIZ",
870
+ "variant": "primary",
889
871
  "icon": "help-circle",
890
872
  "type": "button",
891
- "variant": "primary",
892
- "label": "Quiz Me"
873
+ "label": "Quiz Me",
874
+ "action": "START_QUIZ"
893
875
  },
894
876
  {
895
- "label": "Explain More",
896
- "type": "button",
897
877
  "icon": "book-open",
898
878
  "action": "EXPLAIN_MORE",
879
+ "label": "Explain More",
880
+ "type": "button",
899
881
  "variant": "secondary"
900
882
  },
901
883
  {
902
- "action": "RESET",
903
- "variant": "ghost",
904
884
  "type": "button",
905
- "icon": "rotate-ccw",
906
- "label": "New Topic"
885
+ "label": "New Topic",
886
+ "variant": "ghost",
887
+ "action": "RESET",
888
+ "icon": "rotate-ccw"
907
889
  }
908
890
  ],
909
- "direction": "horizontal"
891
+ "gap": "sm"
910
892
  },
911
893
  {
912
894
  "type": "stack",
@@ -916,17 +898,35 @@
916
898
  "label": "@entity.questionsAsked"
917
899
  },
918
900
  {
919
- "type": "badge",
920
- "label": "@entity.correctAnswers"
901
+ "label": "@entity.correctAnswers",
902
+ "type": "badge"
921
903
  }
922
904
  ],
923
- "direction": "horizontal",
924
- "gap": "xs"
905
+ "gap": "xs",
906
+ "direction": "horizontal"
925
907
  }
926
908
  ],
927
- "type": "stack"
909
+ "direction": "vertical"
910
+ }
911
+ ],
912
+ "navItems": [
913
+ {
914
+ "label": "Teach",
915
+ "href": "/teach",
916
+ "icon": "book-open"
917
+ },
918
+ {
919
+ "href": "/quiz",
920
+ "label": "Quiz",
921
+ "icon": "help-circle"
922
+ },
923
+ {
924
+ "label": "Concepts",
925
+ "href": "/concepts",
926
+ "icon": "brain"
928
927
  }
929
- ]
928
+ ],
929
+ "appName": "AI Tutor"
930
930
  }
931
931
  ]
932
932
  ]
@@ -967,24 +967,25 @@
967
967
  {
968
968
  "children": [
969
969
  {
970
- "gap": "lg",
970
+ "direction": "vertical",
971
+ "type": "stack",
971
972
  "children": [
972
973
  {
973
974
  "type": "stack",
974
- "gap": "sm",
975
+ "direction": "horizontal",
975
976
  "align": "center",
977
+ "gap": "sm",
976
978
  "children": [
977
979
  {
978
- "name": "graduation-cap",
979
- "type": "icon"
980
+ "type": "icon",
981
+ "name": "graduation-cap"
980
982
  },
981
983
  {
984
+ "type": "typography",
982
985
  "content": "Tutor",
983
- "variant": "h2",
984
- "type": "typography"
986
+ "variant": "h2"
985
987
  }
986
- ],
987
- "direction": "horizontal"
988
+ ]
988
989
  },
989
990
  {
990
991
  "type": "divider"
@@ -993,50 +994,49 @@
993
994
  "type": "card",
994
995
  "children": [
995
996
  {
997
+ "direction": "vertical",
998
+ "type": "stack",
996
999
  "gap": "md",
997
1000
  "children": [
998
1001
  {
999
1002
  "content": "What topic would you like to learn about? The tutor will assess your level and guide you through it.",
1000
- "type": "typography",
1001
- "variant": "body"
1003
+ "variant": "body",
1004
+ "type": "typography"
1002
1005
  },
1003
1006
  {
1007
+ "mode": "edit",
1008
+ "entity": "@entity",
1004
1009
  "type": "form-section",
1005
- "submitEvent": "START_SESSION",
1006
1010
  "fields": [
1007
1011
  "topic"
1008
1012
  ],
1009
- "entity": "@entity",
1010
- "mode": "edit"
1013
+ "submitEvent": "START_SESSION"
1011
1014
  }
1012
- ],
1013
- "direction": "vertical",
1014
- "type": "stack"
1015
+ ]
1015
1016
  }
1016
1017
  ]
1017
1018
  }
1018
1019
  ],
1019
- "type": "stack",
1020
- "direction": "vertical"
1020
+ "gap": "lg"
1021
1021
  }
1022
1022
  ],
1023
1023
  "appName": "AI Tutor",
1024
1024
  "type": "dashboard-layout",
1025
1025
  "navItems": [
1026
1026
  {
1027
- "label": "Teach",
1028
1027
  "href": "/teach",
1029
- "icon": "book-open"
1028
+ "icon": "book-open",
1029
+ "label": "Teach"
1030
1030
  },
1031
1031
  {
1032
- "label": "Quiz",
1033
1032
  "icon": "help-circle",
1033
+ "label": "Quiz",
1034
1034
  "href": "/quiz"
1035
1035
  },
1036
1036
  {
1037
+ "href": "/concepts",
1037
1038
  "icon": "brain",
1038
- "label": "Concepts",
1039
- "href": "/concepts"
1039
+ "label": "Concepts"
1040
1040
  }
1041
1041
  ]
1042
1042
  }
@@ -1110,7 +1110,7 @@
1110
1110
  {
1111
1111
  "event": "QUIZ_GRADED",
1112
1112
  "scope": "internal",
1113
- "payload": [
1113
+ "payloadSchema": [
1114
1114
  {
1115
1115
  "name": "correct",
1116
1116
  "type": "boolean"
@@ -1120,7 +1120,7 @@
1120
1120
  {
1121
1121
  "event": "QUIZ_GRADED",
1122
1122
  "scope": "external",
1123
- "payload": [
1123
+ "payloadSchema": [
1124
1124
  {
1125
1125
  "name": "correct",
1126
1126
  "type": "boolean"
@@ -1131,7 +1131,7 @@
1131
1131
  "event": "QuizQuestionLoaded",
1132
1132
  "description": "Fired when QuizQuestion finishes loading",
1133
1133
  "scope": "internal",
1134
- "payload": [
1134
+ "payloadSchema": [
1135
1135
  {
1136
1136
  "name": "data",
1137
1137
  "type": "[QuizQuestion]"
@@ -1142,7 +1142,7 @@
1142
1142
  "event": "QuizQuestionLoadFailed",
1143
1143
  "description": "Fired when QuizQuestion fails to load",
1144
1144
  "scope": "internal",
1145
- "payload": [
1145
+ "payloadSchema": [
1146
1146
  {
1147
1147
  "name": "error",
1148
1148
  "type": "string"
@@ -1192,7 +1192,7 @@
1192
1192
  {
1193
1193
  "key": "SUBMIT_ANSWER",
1194
1194
  "name": "Submit Answer",
1195
- "payload": [
1195
+ "payloadSchema": [
1196
1196
  {
1197
1197
  "name": "studentAnswer",
1198
1198
  "type": "string"
@@ -1214,7 +1214,7 @@
1214
1214
  {
1215
1215
  "key": "QuizQuestionLoaded",
1216
1216
  "name": "QuizQuestion loaded",
1217
- "payload": [
1217
+ "payloadSchema": [
1218
1218
  {
1219
1219
  "name": "data",
1220
1220
  "type": "[QuizQuestion]"
@@ -1224,7 +1224,7 @@
1224
1224
  {
1225
1225
  "key": "QuizQuestionLoadFailed",
1226
1226
  "name": "QuizQuestion load failed",
1227
- "payload": [
1227
+ "payloadSchema": [
1228
1228
  {
1229
1229
  "name": "error",
1230
1230
  "type": "string"
@@ -1257,56 +1257,56 @@
1257
1257
  "main",
1258
1258
  {
1259
1259
  "type": "dashboard-layout",
1260
- "appName": "AI Tutor",
1261
- "navItems": [
1262
- {
1263
- "href": "/teach",
1264
- "icon": "book-open",
1265
- "label": "Teach"
1266
- },
1267
- {
1268
- "href": "/quiz",
1269
- "label": "Quiz",
1270
- "icon": "help-circle"
1271
- },
1272
- {
1273
- "label": "Concepts",
1274
- "icon": "brain",
1275
- "href": "/concepts"
1276
- }
1277
- ],
1278
1260
  "children": [
1279
1261
  {
1262
+ "gap": "lg",
1280
1263
  "children": [
1281
1264
  {
1265
+ "align": "center",
1282
1266
  "type": "stack",
1283
1267
  "direction": "horizontal",
1284
- "align": "center",
1268
+ "gap": "sm",
1285
1269
  "children": [
1286
1270
  {
1287
- "type": "icon",
1288
- "name": "help-circle"
1271
+ "name": "help-circle",
1272
+ "type": "icon"
1289
1273
  },
1290
1274
  {
1291
- "variant": "h2",
1292
1275
  "content": "Quiz",
1276
+ "variant": "h2",
1293
1277
  "type": "typography"
1294
1278
  }
1295
- ],
1296
- "gap": "sm"
1279
+ ]
1297
1280
  },
1298
1281
  {
1299
1282
  "type": "divider"
1300
1283
  },
1301
1284
  {
1302
- "content": "Waiting for a quiz to start...",
1303
1285
  "type": "typography",
1304
- "variant": "body"
1286
+ "variant": "body",
1287
+ "content": "Waiting for a quiz to start..."
1305
1288
  }
1306
1289
  ],
1307
1290
  "type": "stack",
1308
- "direction": "vertical",
1309
- "gap": "lg"
1291
+ "direction": "vertical"
1292
+ }
1293
+ ],
1294
+ "appName": "AI Tutor",
1295
+ "navItems": [
1296
+ {
1297
+ "label": "Teach",
1298
+ "href": "/teach",
1299
+ "icon": "book-open"
1300
+ },
1301
+ {
1302
+ "icon": "help-circle",
1303
+ "label": "Quiz",
1304
+ "href": "/quiz"
1305
+ },
1306
+ {
1307
+ "href": "/concepts",
1308
+ "icon": "brain",
1309
+ "label": "Concepts"
1310
1310
  }
1311
1311
  ]
1312
1312
  }
@@ -1331,33 +1331,31 @@
1331
1331
  "render-ui",
1332
1332
  "main",
1333
1333
  {
1334
- "appName": "AI Tutor",
1335
- "type": "dashboard-layout",
1336
1334
  "navItems": [
1337
1335
  {
1336
+ "href": "/teach",
1338
1337
  "icon": "book-open",
1339
- "label": "Teach",
1340
- "href": "/teach"
1338
+ "label": "Teach"
1341
1339
  },
1342
1340
  {
1343
- "href": "/quiz",
1341
+ "label": "Quiz",
1344
1342
  "icon": "help-circle",
1345
- "label": "Quiz"
1343
+ "href": "/quiz"
1346
1344
  },
1347
1345
  {
1348
1346
  "icon": "brain",
1349
- "href": "/concepts",
1350
- "label": "Concepts"
1347
+ "label": "Concepts",
1348
+ "href": "/concepts"
1351
1349
  }
1352
1350
  ],
1353
1351
  "children": [
1354
1352
  {
1355
- "gap": "lg",
1356
1353
  "children": [
1357
1354
  {
1358
1355
  "gap": "sm",
1359
1356
  "type": "stack",
1360
1357
  "direction": "horizontal",
1358
+ "align": "center",
1361
1359
  "children": [
1362
1360
  {
1363
1361
  "type": "icon",
@@ -1365,16 +1363,16 @@
1365
1363
  },
1366
1364
  {
1367
1365
  "type": "typography",
1368
- "variant": "h2",
1369
- "content": "Quiz Question"
1366
+ "content": "Quiz Question",
1367
+ "variant": "h2"
1370
1368
  }
1371
- ],
1372
- "align": "center"
1369
+ ]
1373
1370
  },
1374
1371
  {
1375
1372
  "type": "divider"
1376
1373
  },
1377
1374
  {
1375
+ "type": "card",
1378
1376
  "children": [
1379
1377
  {
1380
1378
  "type": "stack",
@@ -1391,25 +1389,27 @@
1391
1389
  "variant": "body"
1392
1390
  },
1393
1391
  {
1394
- "submitEvent": "SUBMIT_ANSWER",
1395
- "type": "form-section",
1396
1392
  "fields": [
1397
1393
  "studentAnswer"
1398
1394
  ],
1399
1395
  "entity": "@entity",
1396
+ "submitEvent": "SUBMIT_ANSWER",
1397
+ "type": "form-section",
1400
1398
  "mode": "edit"
1401
1399
  }
1402
1400
  ],
1403
1401
  "direction": "vertical"
1404
1402
  }
1405
- ],
1406
- "type": "card"
1403
+ ]
1407
1404
  }
1408
1405
  ],
1409
- "type": "stack",
1410
- "direction": "vertical"
1406
+ "gap": "lg",
1407
+ "direction": "vertical",
1408
+ "type": "stack"
1411
1409
  }
1412
- ]
1410
+ ],
1411
+ "type": "dashboard-layout",
1412
+ "appName": "AI Tutor"
1413
1413
  }
1414
1414
  ]
1415
1415
  ]
@@ -1428,45 +1428,45 @@
1428
1428
  "render-ui",
1429
1429
  "main",
1430
1430
  {
1431
- "type": "dashboard-layout",
1432
1431
  "navItems": [
1433
1432
  {
1433
+ "href": "/teach",
1434
1434
  "icon": "book-open",
1435
- "label": "Teach",
1436
- "href": "/teach"
1435
+ "label": "Teach"
1437
1436
  },
1438
1437
  {
1439
- "label": "Quiz",
1438
+ "href": "/quiz",
1440
1439
  "icon": "help-circle",
1441
- "href": "/quiz"
1440
+ "label": "Quiz"
1442
1441
  },
1443
1442
  {
1444
- "href": "/concepts",
1445
1443
  "icon": "brain",
1446
- "label": "Concepts"
1444
+ "label": "Concepts",
1445
+ "href": "/concepts"
1447
1446
  }
1448
1447
  ],
1448
+ "type": "dashboard-layout",
1449
1449
  "appName": "AI Tutor",
1450
1450
  "children": [
1451
1451
  {
1452
+ "type": "stack",
1452
1453
  "direction": "vertical",
1453
1454
  "gap": "lg",
1454
- "type": "stack",
1455
1455
  "children": [
1456
1456
  {
1457
1457
  "direction": "horizontal",
1458
- "type": "stack",
1459
1458
  "gap": "sm",
1460
1459
  "align": "center",
1460
+ "type": "stack",
1461
1461
  "children": [
1462
1462
  {
1463
- "name": "help-circle",
1464
- "type": "icon"
1463
+ "type": "icon",
1464
+ "name": "help-circle"
1465
1465
  },
1466
1466
  {
1467
- "variant": "h2",
1467
+ "content": "Quiz Question",
1468
1468
  "type": "typography",
1469
- "content": "Quiz Question"
1469
+ "variant": "h2"
1470
1470
  }
1471
1471
  ]
1472
1472
  },
@@ -1477,9 +1477,7 @@
1477
1477
  "type": "card",
1478
1478
  "children": [
1479
1479
  {
1480
- "direction": "vertical",
1481
1480
  "type": "stack",
1482
- "gap": "md",
1483
1481
  "children": [
1484
1482
  {
1485
1483
  "type": "typography",
@@ -1487,20 +1485,22 @@
1487
1485
  "variant": "h3"
1488
1486
  },
1489
1487
  {
1490
- "variant": "body",
1491
1488
  "type": "typography",
1492
- "content": "@entity.options"
1489
+ "content": "@entity.options",
1490
+ "variant": "body"
1493
1491
  },
1494
1492
  {
1495
- "type": "form-section",
1493
+ "submitEvent": "SUBMIT_ANSWER",
1496
1494
  "fields": [
1497
1495
  "studentAnswer"
1498
1496
  ],
1499
- "submitEvent": "SUBMIT_ANSWER",
1500
1497
  "mode": "edit",
1501
- "entity": "@entity"
1498
+ "entity": "@entity",
1499
+ "type": "form-section"
1502
1500
  }
1503
- ]
1501
+ ],
1502
+ "direction": "vertical",
1503
+ "gap": "md"
1504
1504
  }
1505
1505
  ]
1506
1506
  }
@@ -1538,44 +1538,45 @@
1538
1538
  "render-ui",
1539
1539
  "main",
1540
1540
  {
1541
- "type": "dashboard-layout",
1542
1541
  "navItems": [
1543
1542
  {
1544
1543
  "label": "Teach",
1545
- "href": "/teach",
1546
- "icon": "book-open"
1544
+ "icon": "book-open",
1545
+ "href": "/teach"
1547
1546
  },
1548
1547
  {
1549
- "href": "/quiz",
1550
1548
  "icon": "help-circle",
1549
+ "href": "/quiz",
1551
1550
  "label": "Quiz"
1552
1551
  },
1553
1552
  {
1554
- "label": "Concepts",
1555
1553
  "href": "/concepts",
1556
- "icon": "brain"
1554
+ "icon": "brain",
1555
+ "label": "Concepts"
1557
1556
  }
1558
1557
  ],
1559
- "appName": "AI Tutor",
1558
+ "type": "dashboard-layout",
1560
1559
  "children": [
1561
1560
  {
1561
+ "type": "stack",
1562
+ "direction": "vertical",
1562
1563
  "children": [
1563
1564
  {
1564
- "direction": "horizontal",
1565
+ "align": "center",
1565
1566
  "gap": "sm",
1566
1567
  "type": "stack",
1567
- "align": "center",
1568
1568
  "children": [
1569
1569
  {
1570
- "name": "check-circle",
1571
- "type": "icon"
1570
+ "type": "icon",
1571
+ "name": "check-circle"
1572
1572
  },
1573
1573
  {
1574
+ "content": "Answer Review",
1574
1575
  "variant": "h2",
1575
- "type": "typography",
1576
- "content": "Answer Review"
1576
+ "type": "typography"
1577
1577
  }
1578
- ]
1578
+ ],
1579
+ "direction": "horizontal"
1579
1580
  },
1580
1581
  {
1581
1582
  "type": "divider"
@@ -1584,67 +1585,66 @@
1584
1585
  "type": "card",
1585
1586
  "children": [
1586
1587
  {
1587
- "gap": "md",
1588
1588
  "direction": "vertical",
1589
- "type": "stack",
1590
1589
  "children": [
1591
1590
  {
1592
1591
  "type": "stack",
1593
- "direction": "horizontal",
1594
1592
  "gap": "sm",
1593
+ "direction": "horizontal",
1595
1594
  "children": [
1596
1595
  {
1597
- "label": "@entity.isCorrect",
1598
- "type": "badge"
1596
+ "type": "badge",
1597
+ "label": "@entity.isCorrect"
1599
1598
  }
1600
1599
  ]
1601
1600
  },
1602
1601
  {
1603
- "type": "typography",
1602
+ "content": "@entity.feedback",
1604
1603
  "variant": "body",
1605
- "content": "@entity.feedback"
1604
+ "type": "typography"
1606
1605
  },
1607
1606
  {
1608
1607
  "variant": "caption",
1609
- "content": "Correct answer",
1610
- "type": "typography"
1608
+ "type": "typography",
1609
+ "content": "Correct answer"
1611
1610
  },
1612
1611
  {
1613
- "content": "@entity.correctAnswer",
1612
+ "type": "typography",
1614
1613
  "variant": "body",
1615
- "type": "typography"
1614
+ "content": "@entity.correctAnswer"
1616
1615
  }
1617
- ]
1616
+ ],
1617
+ "type": "stack",
1618
+ "gap": "md"
1618
1619
  }
1619
1620
  ]
1620
1621
  },
1621
1622
  {
1622
1623
  "type": "stack",
1623
- "gap": "sm",
1624
- "direction": "horizontal",
1625
1624
  "children": [
1626
1625
  {
1626
+ "icon": "arrow-right",
1627
1627
  "type": "button",
1628
1628
  "label": "Next Question",
1629
- "icon": "arrow-right",
1630
1629
  "variant": "primary",
1631
1630
  "action": "NEXT_QUESTION"
1632
1631
  },
1633
1632
  {
1633
+ "action": "BACK_TO_LESSON",
1634
+ "icon": "book-open",
1634
1635
  "label": "Back to Lesson",
1635
1636
  "variant": "ghost",
1636
- "action": "BACK_TO_LESSON",
1637
- "type": "button",
1638
- "icon": "book-open"
1637
+ "type": "button"
1639
1638
  }
1640
- ]
1639
+ ],
1640
+ "direction": "horizontal",
1641
+ "gap": "sm"
1641
1642
  }
1642
1643
  ],
1643
- "type": "stack",
1644
- "gap": "lg",
1645
- "direction": "vertical"
1644
+ "gap": "lg"
1646
1645
  }
1647
- ]
1646
+ ],
1647
+ "appName": "AI Tutor"
1648
1648
  }
1649
1649
  ]
1650
1650
  ]
@@ -1677,83 +1677,83 @@
1677
1677
  "render-ui",
1678
1678
  "main",
1679
1679
  {
1680
+ "navItems": [
1681
+ {
1682
+ "href": "/teach",
1683
+ "icon": "book-open",
1684
+ "label": "Teach"
1685
+ },
1686
+ {
1687
+ "icon": "help-circle",
1688
+ "href": "/quiz",
1689
+ "label": "Quiz"
1690
+ },
1691
+ {
1692
+ "href": "/concepts",
1693
+ "icon": "brain",
1694
+ "label": "Concepts"
1695
+ }
1696
+ ],
1697
+ "type": "dashboard-layout",
1698
+ "appName": "AI Tutor",
1680
1699
  "children": [
1681
1700
  {
1682
- "gap": "lg",
1683
- "type": "stack",
1684
1701
  "direction": "vertical",
1685
1702
  "children": [
1686
1703
  {
1704
+ "gap": "sm",
1705
+ "align": "center",
1687
1706
  "type": "stack",
1707
+ "direction": "horizontal",
1688
1708
  "children": [
1689
1709
  {
1690
- "name": "help-circle",
1691
- "type": "icon"
1710
+ "type": "icon",
1711
+ "name": "help-circle"
1692
1712
  },
1693
1713
  {
1694
- "variant": "h2",
1714
+ "content": "Quiz Question",
1695
1715
  "type": "typography",
1696
- "content": "Quiz Question"
1716
+ "variant": "h2"
1697
1717
  }
1698
- ],
1699
- "gap": "sm",
1700
- "direction": "horizontal",
1701
- "align": "center"
1718
+ ]
1702
1719
  },
1703
1720
  {
1704
1721
  "type": "divider"
1705
1722
  },
1706
1723
  {
1724
+ "type": "card",
1707
1725
  "children": [
1708
1726
  {
1727
+ "direction": "vertical",
1709
1728
  "children": [
1710
1729
  {
1711
- "content": "@entity.question",
1712
1730
  "type": "typography",
1713
- "variant": "h3"
1731
+ "variant": "h3",
1732
+ "content": "@entity.question"
1714
1733
  },
1715
1734
  {
1735
+ "content": "@entity.options",
1716
1736
  "variant": "body",
1717
- "type": "typography",
1718
- "content": "@entity.options"
1737
+ "type": "typography"
1719
1738
  },
1720
1739
  {
1721
- "submitEvent": "SUBMIT_ANSWER",
1722
- "mode": "edit",
1723
- "type": "form-section",
1724
1740
  "entity": "@entity",
1741
+ "submitEvent": "SUBMIT_ANSWER",
1725
1742
  "fields": [
1726
1743
  "studentAnswer"
1727
- ]
1744
+ ],
1745
+ "mode": "edit",
1746
+ "type": "form-section"
1728
1747
  }
1729
1748
  ],
1730
- "gap": "md",
1731
- "direction": "vertical",
1732
- "type": "stack"
1749
+ "type": "stack",
1750
+ "gap": "md"
1733
1751
  }
1734
- ],
1735
- "type": "card"
1752
+ ]
1736
1753
  }
1737
- ]
1738
- }
1739
- ],
1740
- "type": "dashboard-layout",
1741
- "appName": "AI Tutor",
1742
- "navItems": [
1743
- {
1744
- "label": "Teach",
1745
- "href": "/teach",
1746
- "icon": "book-open"
1747
- },
1748
- {
1749
- "href": "/quiz",
1750
- "icon": "help-circle",
1751
- "label": "Quiz"
1752
- },
1753
- {
1754
- "icon": "brain",
1755
- "href": "/concepts",
1756
- "label": "Concepts"
1754
+ ],
1755
+ "type": "stack",
1756
+ "gap": "lg"
1757
1757
  }
1758
1758
  ]
1759
1759
  }
@@ -1774,59 +1774,59 @@
1774
1774
  "render-ui",
1775
1775
  "main",
1776
1776
  {
1777
+ "navItems": [
1778
+ {
1779
+ "href": "/teach",
1780
+ "icon": "book-open",
1781
+ "label": "Teach"
1782
+ },
1783
+ {
1784
+ "label": "Quiz",
1785
+ "href": "/quiz",
1786
+ "icon": "help-circle"
1787
+ },
1788
+ {
1789
+ "label": "Concepts",
1790
+ "href": "/concepts",
1791
+ "icon": "brain"
1792
+ }
1793
+ ],
1794
+ "type": "dashboard-layout",
1795
+ "appName": "AI Tutor",
1777
1796
  "children": [
1778
1797
  {
1779
1798
  "direction": "vertical",
1799
+ "gap": "lg",
1800
+ "type": "stack",
1780
1801
  "children": [
1781
1802
  {
1782
- "direction": "horizontal",
1783
- "type": "stack",
1784
1803
  "align": "center",
1804
+ "gap": "sm",
1805
+ "direction": "horizontal",
1785
1806
  "children": [
1786
1807
  {
1787
- "type": "icon",
1788
- "name": "help-circle"
1808
+ "name": "help-circle",
1809
+ "type": "icon"
1789
1810
  },
1790
1811
  {
1791
- "type": "typography",
1812
+ "variant": "h2",
1792
1813
  "content": "Quiz",
1793
- "variant": "h2"
1814
+ "type": "typography"
1794
1815
  }
1795
1816
  ],
1796
- "gap": "sm"
1817
+ "type": "stack"
1797
1818
  },
1798
1819
  {
1799
1820
  "type": "divider"
1800
1821
  },
1801
1822
  {
1802
1823
  "type": "typography",
1803
- "content": "Waiting for a quiz to start...",
1804
- "variant": "body"
1824
+ "variant": "body",
1825
+ "content": "Waiting for a quiz to start..."
1805
1826
  }
1806
- ],
1807
- "type": "stack",
1808
- "gap": "lg"
1809
- }
1810
- ],
1811
- "navItems": [
1812
- {
1813
- "label": "Teach",
1814
- "href": "/teach",
1815
- "icon": "book-open"
1816
- },
1817
- {
1818
- "icon": "help-circle",
1819
- "label": "Quiz",
1820
- "href": "/quiz"
1821
- },
1822
- {
1823
- "label": "Concepts",
1824
- "href": "/concepts",
1825
- "icon": "brain"
1827
+ ]
1826
1828
  }
1827
- ],
1828
- "type": "dashboard-layout",
1829
- "appName": "AI Tutor"
1829
+ ]
1830
1830
  }
1831
1831
  ]
1832
1832
  ]
@@ -1909,7 +1909,7 @@
1909
1909
  {
1910
1910
  "event": "SEND_MESSAGE",
1911
1911
  "scope": "internal",
1912
- "payload": [
1912
+ "payloadSchema": [
1913
1913
  {
1914
1914
  "name": "content",
1915
1915
  "type": "string"
@@ -1919,7 +1919,7 @@
1919
1919
  {
1920
1920
  "event": "TutorChatDeleteFailed",
1921
1921
  "scope": "internal",
1922
- "payload": [
1922
+ "payloadSchema": [
1923
1923
  {
1924
1924
  "name": "error",
1925
1925
  "type": "string"
@@ -1933,7 +1933,7 @@
1933
1933
  {
1934
1934
  "event": "TutorChatDeleted",
1935
1935
  "scope": "internal",
1936
- "payload": [
1936
+ "payloadSchema": [
1937
1937
  {
1938
1938
  "name": "id",
1939
1939
  "type": "string"
@@ -1944,7 +1944,7 @@
1944
1944
  "event": "TutorChatLoadFailed",
1945
1945
  "description": "Fired when TutorChat fails to load",
1946
1946
  "scope": "internal",
1947
- "payload": [
1947
+ "payloadSchema": [
1948
1948
  {
1949
1949
  "name": "error",
1950
1950
  "type": "string"
@@ -1959,7 +1959,7 @@
1959
1959
  "event": "TutorChatLoaded",
1960
1960
  "description": "Fired when TutorChat finishes loading",
1961
1961
  "scope": "internal",
1962
- "payload": [
1962
+ "payloadSchema": [
1963
1963
  {
1964
1964
  "name": "data",
1965
1965
  "type": "[TutorChat]"
@@ -1985,7 +1985,7 @@
1985
1985
  {
1986
1986
  "key": "TutorChatLoaded",
1987
1987
  "name": "TutorChat loaded",
1988
- "payload": [
1988
+ "payloadSchema": [
1989
1989
  {
1990
1990
  "name": "data",
1991
1991
  "type": "[TutorChat]"
@@ -1995,7 +1995,7 @@
1995
1995
  {
1996
1996
  "key": "TutorChatLoadFailed",
1997
1997
  "name": "TutorChat load failed",
1998
- "payload": [
1998
+ "payloadSchema": [
1999
1999
  {
2000
2000
  "name": "error",
2001
2001
  "type": "string"
@@ -2017,7 +2017,7 @@
2017
2017
  {
2018
2018
  "key": "SEND",
2019
2019
  "name": "Send",
2020
- "payload": [
2020
+ "payloadSchema": [
2021
2021
  {
2022
2022
  "name": "content",
2023
2023
  "type": "string"
@@ -2035,7 +2035,7 @@
2035
2035
  {
2036
2036
  "key": "TutorChatDeleteFailed",
2037
2037
  "name": "TutorChat delete failed",
2038
- "payload": [
2038
+ "payloadSchema": [
2039
2039
  {
2040
2040
  "name": "error",
2041
2041
  "type": "string"
@@ -2049,7 +2049,7 @@
2049
2049
  {
2050
2050
  "key": "TutorChatDeleted",
2051
2051
  "name": "TutorChat deleted",
2052
- "payload": [
2052
+ "payloadSchema": [
2053
2053
  {
2054
2054
  "name": "id",
2055
2055
  "type": "string"
@@ -2068,8 +2068,8 @@
2068
2068
  "TutorChat",
2069
2069
  {
2070
2070
  "emit": {
2071
- "failure": "TutorChatLoadFailed",
2072
- "success": "TutorChatLoaded"
2071
+ "success": "TutorChatLoaded",
2072
+ "failure": "TutorChatLoadFailed"
2073
2073
  }
2074
2074
  }
2075
2075
  ],
@@ -2077,22 +2077,22 @@
2077
2077
  "render-ui",
2078
2078
  "main",
2079
2079
  {
2080
- "align": "center",
2080
+ "direction": "vertical",
2081
+ "gap": "md",
2081
2082
  "className": "py-12",
2082
2083
  "children": [
2083
2084
  {
2084
2085
  "type": "spinner"
2085
2086
  },
2086
2087
  {
2087
- "type": "typography",
2088
- "content": "Loading…",
2088
+ "color": "muted",
2089
2089
  "variant": "caption",
2090
- "color": "muted"
2090
+ "type": "typography",
2091
+ "content": "Loading…"
2091
2092
  }
2092
2093
  ],
2093
2094
  "type": "stack",
2094
- "gap": "md",
2095
- "direction": "vertical"
2095
+ "align": "center"
2096
2096
  }
2097
2097
  ]
2098
2098
  ]
@@ -2106,114 +2106,114 @@
2106
2106
  "render-ui",
2107
2107
  "main",
2108
2108
  {
2109
- "type": "dashboard-layout",
2109
+ "appName": "AI Tutor",
2110
+ "navItems": [
2111
+ {
2112
+ "label": "Teach",
2113
+ "href": "/teach",
2114
+ "icon": "book-open"
2115
+ },
2116
+ {
2117
+ "icon": "help-circle",
2118
+ "label": "Quiz",
2119
+ "href": "/quiz"
2120
+ },
2121
+ {
2122
+ "icon": "brain",
2123
+ "label": "Concepts",
2124
+ "href": "/concepts"
2125
+ }
2126
+ ],
2110
2127
  "children": [
2111
2128
  {
2129
+ "type": "stack",
2130
+ "direction": "vertical",
2112
2131
  "children": [
2113
2132
  {
2114
- "justify": "between",
2115
- "align": "center",
2116
- "direction": "horizontal",
2117
- "gap": "sm",
2118
2133
  "type": "stack",
2119
2134
  "children": [
2120
2135
  {
2121
- "gap": "sm",
2136
+ "type": "stack",
2137
+ "direction": "horizontal",
2122
2138
  "children": [
2123
2139
  {
2124
- "name": "message-circle",
2125
- "type": "icon"
2140
+ "type": "icon",
2141
+ "name": "message-circle"
2126
2142
  },
2127
2143
  {
2128
2144
  "type": "typography",
2129
- "content": "TutorChat Thread",
2130
- "variant": "h2"
2145
+ "variant": "h2",
2146
+ "content": "TutorChat Thread"
2131
2147
  }
2132
2148
  ],
2133
- "direction": "horizontal",
2134
- "align": "center",
2135
- "type": "stack"
2149
+ "gap": "sm",
2150
+ "align": "center"
2136
2151
  },
2137
2152
  {
2138
- "variant": "primary",
2139
2153
  "type": "button",
2154
+ "label": "New Message",
2155
+ "variant": "primary",
2140
2156
  "icon": "plus",
2141
- "action": "COMPOSE",
2142
- "label": "New Message"
2157
+ "action": "COMPOSE"
2143
2158
  }
2144
- ]
2159
+ ],
2160
+ "justify": "between",
2161
+ "direction": "horizontal",
2162
+ "align": "center",
2163
+ "gap": "sm"
2145
2164
  },
2146
2165
  {
2147
2166
  "type": "divider"
2148
2167
  },
2149
2168
  {
2169
+ "entity": "@payload.data",
2150
2170
  "fields": [],
2151
- "type": "data-list",
2152
2171
  "renderItem": [
2153
2172
  "fn",
2154
2173
  "item",
2155
2174
  {
2156
- "direction": "vertical",
2157
2175
  "type": "stack",
2158
2176
  "gap": "xs",
2159
2177
  "children": [
2160
2178
  {
2161
- "direction": "horizontal",
2162
- "align": "center",
2163
- "gap": "sm",
2164
2179
  "type": "stack",
2165
2180
  "children": [
2166
2181
  {
2167
- "label": "@item.role",
2168
- "type": "badge"
2182
+ "type": "badge",
2183
+ "label": "@item.role"
2169
2184
  },
2170
2185
  {
2171
- "variant": "outline",
2186
+ "label": "@item.status",
2172
2187
  "type": "badge",
2173
- "label": "@item.status"
2188
+ "variant": "outline"
2174
2189
  },
2175
2190
  {
2176
- "variant": "caption",
2177
2191
  "type": "typography",
2178
2192
  "color": "muted",
2179
- "content": "@item.timestamp"
2193
+ "content": "@item.timestamp",
2194
+ "variant": "caption"
2180
2195
  }
2181
- ]
2196
+ ],
2197
+ "direction": "horizontal",
2198
+ "align": "center",
2199
+ "gap": "sm"
2182
2200
  },
2183
2201
  {
2184
2202
  "content": "@item.content",
2185
2203
  "variant": "body",
2186
2204
  "type": "typography"
2187
2205
  }
2188
- ]
2206
+ ],
2207
+ "direction": "vertical"
2189
2208
  }
2190
2209
  ],
2191
- "entity": "@payload.data"
2210
+ "type": "data-list"
2192
2211
  }
2193
2212
  ],
2194
- "direction": "vertical",
2195
- "gap": "lg",
2196
- "type": "stack"
2213
+ "gap": "lg"
2197
2214
  }
2198
2215
  ],
2199
- "appName": "AI Tutor",
2200
- "navItems": [
2201
- {
2202
- "label": "Teach",
2203
- "href": "/teach",
2204
- "icon": "book-open"
2205
- },
2206
- {
2207
- "label": "Quiz",
2208
- "icon": "help-circle",
2209
- "href": "/quiz"
2210
- },
2211
- {
2212
- "icon": "brain",
2213
- "label": "Concepts",
2214
- "href": "/concepts"
2215
- }
2216
- ]
2216
+ "type": "dashboard-layout"
2217
2217
  }
2218
2218
  ]
2219
2219
  ]
@@ -2227,36 +2227,36 @@
2227
2227
  "render-ui",
2228
2228
  "main",
2229
2229
  {
2230
- "type": "stack",
2230
+ "direction": "vertical",
2231
2231
  "gap": "md",
2232
+ "align": "center",
2233
+ "className": "py-12",
2232
2234
  "children": [
2233
2235
  {
2234
- "type": "icon",
2235
2236
  "name": "alert-triangle",
2236
- "color": "destructive"
2237
+ "color": "destructive",
2238
+ "type": "icon"
2237
2239
  },
2238
2240
  {
2239
- "type": "typography",
2241
+ "variant": "h3",
2240
2242
  "content": "Failed to load tutorchat",
2241
- "variant": "h3"
2243
+ "type": "typography"
2242
2244
  },
2243
2245
  {
2244
- "variant": "body",
2245
- "type": "typography",
2246
+ "content": "@payload.error",
2246
2247
  "color": "muted",
2247
- "content": "@payload.error"
2248
+ "type": "typography",
2249
+ "variant": "body"
2248
2250
  },
2249
2251
  {
2250
2252
  "variant": "primary",
2253
+ "action": "INIT",
2251
2254
  "type": "button",
2252
2255
  "label": "Retry",
2253
- "action": "INIT",
2254
2256
  "icon": "rotate-ccw"
2255
2257
  }
2256
2258
  ],
2257
- "direction": "vertical",
2258
- "align": "center",
2259
- "className": "py-12"
2259
+ "type": "stack"
2260
2260
  }
2261
2261
  ]
2262
2262
  ]
@@ -2270,24 +2270,22 @@
2270
2270
  "render-ui",
2271
2271
  "main",
2272
2272
  {
2273
- "type": "stack",
2274
- "direction": "vertical",
2275
2273
  "gap": "lg",
2276
2274
  "children": [
2277
2275
  {
2278
- "type": "stack",
2279
2276
  "gap": "sm",
2280
- "align": "center",
2277
+ "type": "stack",
2281
2278
  "direction": "horizontal",
2279
+ "align": "center",
2282
2280
  "children": [
2283
2281
  {
2284
2282
  "type": "icon",
2285
2283
  "name": "message-circle"
2286
2284
  },
2287
2285
  {
2286
+ "content": "TutorChat Thread",
2288
2287
  "variant": "h2",
2289
- "type": "typography",
2290
- "content": "TutorChat Thread"
2288
+ "type": "typography"
2291
2289
  }
2292
2290
  ]
2293
2291
  },
@@ -2295,15 +2293,17 @@
2295
2293
  "type": "divider"
2296
2294
  },
2297
2295
  {
2298
- "mode": "create",
2299
2296
  "submitEvent": "SEND",
2297
+ "mode": "create",
2300
2298
  "type": "form-section",
2301
2299
  "cancelEvent": "CANCEL_COMPOSE",
2302
2300
  "fields": [
2303
2301
  "content"
2304
2302
  ]
2305
2303
  }
2306
- ]
2304
+ ],
2305
+ "type": "stack",
2306
+ "direction": "vertical"
2307
2307
  }
2308
2308
  ]
2309
2309
  ]
@@ -2329,8 +2329,8 @@
2329
2329
  "TutorChat",
2330
2330
  {
2331
2331
  "emit": {
2332
- "success": "TutorChatLoaded",
2333
- "failure": "TutorChatLoadFailed"
2332
+ "failure": "TutorChatLoadFailed",
2333
+ "success": "TutorChatLoaded"
2334
2334
  }
2335
2335
  }
2336
2336
  ],
@@ -2354,9 +2354,9 @@
2354
2354
  "TutorChat",
2355
2355
  {
2356
2356
  "timestamp": "@now",
2357
- "role": "user",
2358
2357
  "content": "@payload.content",
2359
- "status": "sent"
2358
+ "status": "sent",
2359
+ "role": "user"
2360
2360
  }
2361
2361
  ],
2362
2362
  [
@@ -2453,7 +2453,7 @@
2453
2453
  {
2454
2454
  "event": "TOKEN_UPDATE",
2455
2455
  "scope": "internal",
2456
- "payload": [
2456
+ "payloadSchema": [
2457
2457
  {
2458
2458
  "name": "tokenCount",
2459
2459
  "type": "number"
@@ -2464,7 +2464,7 @@
2464
2464
  "event": "TutorChatLoaded",
2465
2465
  "description": "Fired when TutorChat finishes loading",
2466
2466
  "scope": "internal",
2467
- "payload": [
2467
+ "payloadSchema": [
2468
2468
  {
2469
2469
  "name": "data",
2470
2470
  "type": "[TutorChat]"
@@ -2475,7 +2475,7 @@
2475
2475
  "event": "TutorChatLoadFailed",
2476
2476
  "description": "Fired when TutorChat fails to load",
2477
2477
  "scope": "internal",
2478
- "payload": [
2478
+ "payloadSchema": [
2479
2479
  {
2480
2480
  "name": "error",
2481
2481
  "type": "string"
@@ -2508,7 +2508,7 @@
2508
2508
  {
2509
2509
  "key": "SEND_MESSAGE",
2510
2510
  "name": "Send Message",
2511
- "payload": [
2511
+ "payloadSchema": [
2512
2512
  {
2513
2513
  "name": "content",
2514
2514
  "type": "string"
@@ -2534,7 +2534,7 @@
2534
2534
  {
2535
2535
  "key": "TutorChatLoaded",
2536
2536
  "name": "TutorChat loaded",
2537
- "payload": [
2537
+ "payloadSchema": [
2538
2538
  {
2539
2539
  "name": "data",
2540
2540
  "type": "[TutorChat]"
@@ -2544,7 +2544,7 @@
2544
2544
  {
2545
2545
  "key": "TutorChatLoadFailed",
2546
2546
  "name": "TutorChat load failed",
2547
- "payload": [
2547
+ "payloadSchema": [
2548
2548
  {
2549
2549
  "name": "error",
2550
2550
  "type": "string"
@@ -2567,8 +2567,8 @@
2567
2567
  "TutorChat",
2568
2568
  {
2569
2569
  "emit": {
2570
- "success": "TutorChatLoaded",
2571
- "failure": "TutorChatLoadFailed"
2570
+ "failure": "TutorChatLoadFailed",
2571
+ "success": "TutorChatLoaded"
2572
2572
  }
2573
2573
  }
2574
2574
  ],
@@ -2577,15 +2577,6 @@
2577
2577
  "main",
2578
2578
  {
2579
2579
  "type": "dashboard-layout",
2580
- "appName": "AI Tutor",
2581
- "children": [
2582
- {
2583
- "description": "Conversation is ready",
2584
- "title": "Conversation",
2585
- "icon": "message-circle",
2586
- "type": "empty-state"
2587
- }
2588
- ],
2589
2580
  "navItems": [
2590
2581
  {
2591
2582
  "href": "/teach",
@@ -2593,15 +2584,24 @@
2593
2584
  "icon": "book-open"
2594
2585
  },
2595
2586
  {
2596
- "label": "Quiz",
2587
+ "href": "/quiz",
2597
2588
  "icon": "help-circle",
2598
- "href": "/quiz"
2589
+ "label": "Quiz"
2599
2590
  },
2600
2591
  {
2601
2592
  "icon": "brain",
2602
2593
  "href": "/concepts",
2603
2594
  "label": "Concepts"
2604
2595
  }
2596
+ ],
2597
+ "appName": "AI Tutor",
2598
+ "children": [
2599
+ {
2600
+ "icon": "message-circle",
2601
+ "description": "Conversation is ready",
2602
+ "type": "empty-state",
2603
+ "title": "Conversation"
2604
+ }
2605
2605
  ]
2606
2606
  }
2607
2607
  ]
@@ -2798,7 +2798,7 @@
2798
2798
  "event": "ConceptLoaded",
2799
2799
  "description": "Fired when Concept finishes loading",
2800
2800
  "scope": "internal",
2801
- "payload": [
2801
+ "payloadSchema": [
2802
2802
  {
2803
2803
  "name": "data",
2804
2804
  "type": "[Concept]"
@@ -2809,7 +2809,7 @@
2809
2809
  "event": "ConceptLoadFailed",
2810
2810
  "description": "Fired when Concept fails to load",
2811
2811
  "scope": "internal",
2812
- "payload": [
2812
+ "payloadSchema": [
2813
2813
  {
2814
2814
  "name": "error",
2815
2815
  "type": "string"
@@ -2878,7 +2878,7 @@
2878
2878
  {
2879
2879
  "key": "ConceptLoaded",
2880
2880
  "name": "Concept loaded",
2881
- "payload": [
2881
+ "payloadSchema": [
2882
2882
  {
2883
2883
  "name": "data",
2884
2884
  "type": "[Concept]"
@@ -2888,7 +2888,7 @@
2888
2888
  {
2889
2889
  "key": "ConceptLoadFailed",
2890
2890
  "name": "Concept load failed",
2891
- "payload": [
2891
+ "payloadSchema": [
2892
2892
  {
2893
2893
  "name": "error",
2894
2894
  "type": "string"
@@ -2921,21 +2921,21 @@
2921
2921
  "main",
2922
2922
  {
2923
2923
  "direction": "vertical",
2924
- "type": "stack",
2925
- "align": "center",
2926
- "className": "py-12",
2924
+ "gap": "md",
2927
2925
  "children": [
2928
2926
  {
2929
2927
  "type": "spinner"
2930
2928
  },
2931
2929
  {
2930
+ "content": "Loading…",
2932
2931
  "variant": "caption",
2933
2932
  "color": "muted",
2934
- "type": "typography",
2935
- "content": "Loading…"
2933
+ "type": "typography"
2936
2934
  }
2937
2935
  ],
2938
- "gap": "md"
2936
+ "type": "stack",
2937
+ "className": "py-12",
2938
+ "align": "center"
2939
2939
  }
2940
2940
  ]
2941
2941
  ]
@@ -2949,67 +2949,73 @@
2949
2949
  "render-ui",
2950
2950
  "main",
2951
2951
  {
2952
+ "type": "dashboard-layout",
2953
+ "appName": "AI Tutor",
2952
2954
  "children": [
2953
2955
  {
2956
+ "type": "stack",
2954
2957
  "children": [
2955
2958
  {
2956
- "justify": "between",
2957
- "align": "center",
2959
+ "gap": "md",
2958
2960
  "children": [
2959
2961
  {
2960
- "direction": "horizontal",
2961
- "type": "stack",
2962
2962
  "gap": "sm",
2963
2963
  "align": "center",
2964
+ "type": "stack",
2964
2965
  "children": [
2965
2966
  {
2966
2967
  "name": "brain",
2967
2968
  "type": "icon"
2968
2969
  },
2969
2970
  {
2970
- "variant": "h2",
2971
+ "type": "typography",
2971
2972
  "content": "Concept Manager",
2972
- "type": "typography"
2973
+ "variant": "h2"
2973
2974
  }
2974
- ]
2975
+ ],
2976
+ "direction": "horizontal"
2975
2977
  },
2976
2978
  {
2977
- "gap": "sm",
2978
2979
  "type": "stack",
2979
2980
  "direction": "horizontal",
2980
2981
  "children": [
2981
2982
  {
2983
+ "variant": "primary",
2982
2984
  "type": "button",
2983
- "icon": "plus",
2984
- "action": "MEMORIZE",
2985
2985
  "label": "Memorize",
2986
- "variant": "primary"
2986
+ "action": "MEMORIZE",
2987
+ "icon": "plus"
2987
2988
  },
2988
2989
  {
2989
- "type": "button",
2990
- "action": "RECALL",
2991
- "icon": "search",
2992
2990
  "variant": "secondary",
2993
- "label": "Recall"
2991
+ "icon": "search",
2992
+ "label": "Recall",
2993
+ "action": "RECALL",
2994
+ "type": "button"
2994
2995
  },
2995
2996
  {
2996
- "label": "Decay All",
2997
2997
  "type": "button",
2998
+ "icon": "clock",
2998
2999
  "action": "DECAY",
2999
- "variant": "ghost",
3000
- "icon": "clock"
3000
+ "label": "Decay All",
3001
+ "variant": "ghost"
3001
3002
  }
3002
- ]
3003
+ ],
3004
+ "gap": "sm"
3003
3005
  }
3004
3006
  ],
3007
+ "justify": "between",
3005
3008
  "type": "stack",
3006
- "gap": "md",
3007
- "direction": "horizontal"
3009
+ "direction": "horizontal",
3010
+ "align": "center"
3008
3011
  },
3009
3012
  {
3010
3013
  "type": "divider"
3011
3014
  },
3012
3015
  {
3016
+ "type": "data-grid",
3017
+ "entity": "@payload.data",
3018
+ "fields": [],
3013
3019
  "itemActions": [
3014
3020
  {
3015
3021
  "label": "Pin",
@@ -3017,60 +3023,54 @@
3017
3023
  "variant": "ghost"
3018
3024
  },
3019
3025
  {
3020
- "label": "Reinforce",
3026
+ "variant": "ghost",
3021
3027
  "event": "REINFORCE",
3022
- "variant": "ghost"
3028
+ "label": "Reinforce"
3023
3029
  },
3024
3030
  {
3031
+ "label": "Forget",
3025
3032
  "event": "FORGET",
3026
- "variant": "danger",
3027
- "label": "Forget"
3033
+ "variant": "danger"
3028
3034
  }
3029
3035
  ],
3030
3036
  "columns": [
3031
3037
  {
3032
- "name": "content",
3033
- "icon": "brain",
3034
3038
  "variant": "h4",
3035
- "label": "Content"
3039
+ "name": "content",
3040
+ "label": "Content",
3041
+ "icon": "brain"
3036
3042
  },
3037
3043
  {
3038
3044
  "name": "category",
3045
+ "variant": "badge",
3039
3046
  "label": "Category",
3040
3047
  "colorMap": {
3041
- "scheduled": "warning",
3048
+ "failed": "destructive",
3042
3049
  "active": "success",
3043
- "inactive": "neutral",
3050
+ "pending": "warning",
3051
+ "error": "destructive",
3044
3052
  "done": "success",
3045
3053
  "cancelled": "destructive",
3054
+ "scheduled": "warning",
3046
3055
  "completed": "success",
3047
- "pending": "warning",
3048
3056
  "archived": "neutral",
3049
- "failed": "destructive",
3050
- "error": "destructive",
3057
+ "inactive": "neutral",
3051
3058
  "draft": "warning"
3052
- },
3053
- "variant": "badge"
3059
+ }
3054
3060
  },
3055
3061
  {
3056
3062
  "name": "strength",
3057
3063
  "label": "Strength",
3058
3064
  "variant": "caption"
3059
3065
  }
3060
- ],
3061
- "entity": "@payload.data",
3062
- "fields": [],
3063
- "type": "data-grid"
3066
+ ]
3064
3067
  }
3065
3068
  ],
3066
- "type": "stack",
3067
3069
  "className": "max-w-5xl mx-auto w-full",
3068
3070
  "direction": "vertical",
3069
3071
  "gap": "lg"
3070
3072
  }
3071
3073
  ],
3072
- "appName": "AI Tutor",
3073
- "type": "dashboard-layout",
3074
3074
  "navItems": [
3075
3075
  {
3076
3076
  "label": "Teach",
@@ -3078,9 +3078,9 @@
3078
3078
  "icon": "book-open"
3079
3079
  },
3080
3080
  {
3081
- "href": "/quiz",
3081
+ "label": "Quiz",
3082
3082
  "icon": "help-circle",
3083
- "label": "Quiz"
3083
+ "href": "/quiz"
3084
3084
  },
3085
3085
  {
3086
3086
  "label": "Concepts",
@@ -3101,36 +3101,36 @@
3101
3101
  "render-ui",
3102
3102
  "main",
3103
3103
  {
3104
- "className": "py-12",
3105
3104
  "children": [
3106
3105
  {
3106
+ "color": "destructive",
3107
3107
  "type": "icon",
3108
- "name": "alert-triangle",
3109
- "color": "destructive"
3108
+ "name": "alert-triangle"
3110
3109
  },
3111
3110
  {
3112
- "variant": "h3",
3113
3111
  "content": "Failed to load concept",
3114
- "type": "typography"
3112
+ "type": "typography",
3113
+ "variant": "h3"
3115
3114
  },
3116
3115
  {
3117
- "content": "@payload.error",
3116
+ "type": "typography",
3118
3117
  "variant": "body",
3119
3118
  "color": "muted",
3120
- "type": "typography"
3119
+ "content": "@payload.error"
3121
3120
  },
3122
3121
  {
3122
+ "icon": "rotate-ccw",
3123
3123
  "type": "button",
3124
3124
  "label": "Retry",
3125
- "icon": "rotate-ccw",
3126
3125
  "action": "INIT",
3127
3126
  "variant": "primary"
3128
3127
  }
3129
3128
  ],
3130
3129
  "gap": "md",
3131
- "type": "stack",
3130
+ "direction": "vertical",
3132
3131
  "align": "center",
3133
- "direction": "vertical"
3132
+ "className": "py-12",
3133
+ "type": "stack"
3134
3134
  }
3135
3135
  ]
3136
3136
  ]
@@ -3151,7 +3151,7 @@
3151
3151
  "event": "ConceptLoadFailed",
3152
3152
  "description": "Fired when Concept fails to load",
3153
3153
  "scope": "internal",
3154
- "payload": [
3154
+ "payloadSchema": [
3155
3155
  {
3156
3156
  "name": "error",
3157
3157
  "type": "string"
@@ -3166,7 +3166,7 @@
3166
3166
  "event": "ConceptLoaded",
3167
3167
  "description": "Fired when Concept finishes loading",
3168
3168
  "scope": "internal",
3169
- "payload": [
3169
+ "payloadSchema": [
3170
3170
  {
3171
3171
  "name": "data",
3172
3172
  "type": "[Concept]"
@@ -3176,7 +3176,7 @@
3176
3176
  {
3177
3177
  "event": "ConceptSaveFailed",
3178
3178
  "scope": "internal",
3179
- "payload": [
3179
+ "payloadSchema": [
3180
3180
  {
3181
3181
  "name": "error",
3182
3182
  "type": "string"
@@ -3190,7 +3190,7 @@
3190
3190
  {
3191
3191
  "event": "ConceptSaved",
3192
3192
  "scope": "internal",
3193
- "payload": [
3193
+ "payloadSchema": [
3194
3194
  {
3195
3195
  "name": "id",
3196
3196
  "type": "string"
@@ -3224,7 +3224,7 @@
3224
3224
  {
3225
3225
  "key": "SAVE",
3226
3226
  "name": "Save",
3227
- "payload": [
3227
+ "payloadSchema": [
3228
3228
  {
3229
3229
  "name": "data",
3230
3230
  "type": "string"
@@ -3238,7 +3238,7 @@
3238
3238
  {
3239
3239
  "key": "ConceptLoadFailed",
3240
3240
  "name": "Concept load failed",
3241
- "payload": [
3241
+ "payloadSchema": [
3242
3242
  {
3243
3243
  "name": "error",
3244
3244
  "type": "string"
@@ -3252,7 +3252,7 @@
3252
3252
  {
3253
3253
  "key": "ConceptLoaded",
3254
3254
  "name": "Concept loaded",
3255
- "payload": [
3255
+ "payloadSchema": [
3256
3256
  {
3257
3257
  "name": "data",
3258
3258
  "type": "[Concept]"
@@ -3262,7 +3262,7 @@
3262
3262
  {
3263
3263
  "key": "ConceptSaveFailed",
3264
3264
  "name": "Concept save failed",
3265
- "payload": [
3265
+ "payloadSchema": [
3266
3266
  {
3267
3267
  "name": "error",
3268
3268
  "type": "string"
@@ -3276,7 +3276,7 @@
3276
3276
  {
3277
3277
  "key": "ConceptSaved",
3278
3278
  "name": "Concept saved",
3279
- "payload": [
3279
+ "payloadSchema": [
3280
3280
  {
3281
3281
  "name": "id",
3282
3282
  "type": "string"
@@ -3305,22 +3305,23 @@
3305
3305
  "render-ui",
3306
3306
  "modal",
3307
3307
  {
3308
+ "type": "stack",
3308
3309
  "children": [
3309
3310
  {
3311
+ "direction": "horizontal",
3310
3312
  "type": "stack",
3313
+ "gap": "sm",
3311
3314
  "children": [
3312
3315
  {
3313
3316
  "type": "icon",
3314
3317
  "name": "plus-circle"
3315
3318
  },
3316
3319
  {
3317
- "variant": "h3",
3318
3320
  "type": "typography",
3319
- "content": "Memorize"
3321
+ "content": "Memorize",
3322
+ "variant": "h3"
3320
3323
  }
3321
- ],
3322
- "gap": "sm",
3323
- "direction": "horizontal"
3324
+ ]
3324
3325
  },
3325
3326
  {
3326
3327
  "type": "divider"
@@ -3337,9 +3338,8 @@
3337
3338
  "type": "form-section"
3338
3339
  }
3339
3340
  ],
3340
- "type": "stack",
3341
- "direction": "vertical",
3342
- "gap": "md"
3341
+ "gap": "md",
3342
+ "direction": "vertical"
3343
3343
  }
3344
3344
  ]
3345
3345
  ]
@@ -3415,7 +3415,7 @@
3415
3415
  {
3416
3416
  "event": "FORGOT",
3417
3417
  "scope": "external",
3418
- "payload": [
3418
+ "payloadSchema": [
3419
3419
  {
3420
3420
  "name": "id",
3421
3421
  "type": "string"
@@ -3425,7 +3425,7 @@
3425
3425
  {
3426
3426
  "event": "REINFORCED",
3427
3427
  "scope": "external",
3428
- "payload": [
3428
+ "payloadSchema": [
3429
3429
  {
3430
3430
  "name": "id",
3431
3431
  "type": "string"
@@ -3435,7 +3435,7 @@
3435
3435
  {
3436
3436
  "event": "DECAYED",
3437
3437
  "scope": "external",
3438
- "payload": [
3438
+ "payloadSchema": [
3439
3439
  {
3440
3440
  "name": "id",
3441
3441
  "type": "string"
@@ -3445,7 +3445,7 @@
3445
3445
  {
3446
3446
  "event": "PINNED",
3447
3447
  "scope": "external",
3448
- "payload": [
3448
+ "payloadSchema": [
3449
3449
  {
3450
3450
  "name": "id",
3451
3451
  "type": "string"
@@ -3456,7 +3456,7 @@
3456
3456
  "event": "ConceptLoadFailed",
3457
3457
  "description": "Fired when Concept fails to load",
3458
3458
  "scope": "internal",
3459
- "payload": [
3459
+ "payloadSchema": [
3460
3460
  {
3461
3461
  "name": "error",
3462
3462
  "type": "string"
@@ -3471,7 +3471,7 @@
3471
3471
  "event": "ConceptLoaded",
3472
3472
  "description": "Fired when Concept finishes loading",
3473
3473
  "scope": "internal",
3474
- "payload": [
3474
+ "payloadSchema": [
3475
3475
  {
3476
3476
  "name": "data",
3477
3477
  "type": "[Concept]"
@@ -3481,7 +3481,7 @@
3481
3481
  {
3482
3482
  "event": "ConceptSaveFailed",
3483
3483
  "scope": "internal",
3484
- "payload": [
3484
+ "payloadSchema": [
3485
3485
  {
3486
3486
  "name": "error",
3487
3487
  "type": "string"
@@ -3495,7 +3495,7 @@
3495
3495
  {
3496
3496
  "event": "ConceptSaved",
3497
3497
  "scope": "internal",
3498
- "payload": [
3498
+ "payloadSchema": [
3499
3499
  {
3500
3500
  "name": "id",
3501
3501
  "type": "string"
@@ -3530,7 +3530,7 @@
3530
3530
  {
3531
3531
  "key": "DO_MEMORIZE",
3532
3532
  "name": "Do Memorize",
3533
- "payload": [
3533
+ "payloadSchema": [
3534
3534
  {
3535
3535
  "name": "data",
3536
3536
  "type": "string"
@@ -3548,7 +3548,7 @@
3548
3548
  {
3549
3549
  "key": "RECALL",
3550
3550
  "name": "Recall",
3551
- "payload": [
3551
+ "payloadSchema": [
3552
3552
  {
3553
3553
  "name": "query",
3554
3554
  "type": "string"
@@ -3558,7 +3558,7 @@
3558
3558
  {
3559
3559
  "key": "PIN",
3560
3560
  "name": "Pin",
3561
- "payload": [
3561
+ "payloadSchema": [
3562
3562
  {
3563
3563
  "name": "id",
3564
3564
  "type": "string"
@@ -3568,7 +3568,7 @@
3568
3568
  {
3569
3569
  "key": "FORGET",
3570
3570
  "name": "Forget",
3571
- "payload": [
3571
+ "payloadSchema": [
3572
3572
  {
3573
3573
  "name": "id",
3574
3574
  "type": "string"
@@ -3578,7 +3578,7 @@
3578
3578
  {
3579
3579
  "key": "REINFORCE",
3580
3580
  "name": "Reinforce",
3581
- "payload": [
3581
+ "payloadSchema": [
3582
3582
  {
3583
3583
  "name": "id",
3584
3584
  "type": "string"
@@ -3604,7 +3604,7 @@
3604
3604
  {
3605
3605
  "key": "ConceptLoadFailed",
3606
3606
  "name": "Concept load failed",
3607
- "payload": [
3607
+ "payloadSchema": [
3608
3608
  {
3609
3609
  "name": "error",
3610
3610
  "type": "string"
@@ -3618,7 +3618,7 @@
3618
3618
  {
3619
3619
  "key": "ConceptLoaded",
3620
3620
  "name": "Concept loaded",
3621
- "payload": [
3621
+ "payloadSchema": [
3622
3622
  {
3623
3623
  "name": "data",
3624
3624
  "type": "[Concept]"
@@ -3628,7 +3628,7 @@
3628
3628
  {
3629
3629
  "key": "ConceptSaveFailed",
3630
3630
  "name": "Concept save failed",
3631
- "payload": [
3631
+ "payloadSchema": [
3632
3632
  {
3633
3633
  "name": "error",
3634
3634
  "type": "string"
@@ -3642,7 +3642,7 @@
3642
3642
  {
3643
3643
  "key": "ConceptSaved",
3644
3644
  "name": "Concept saved",
3645
- "payload": [
3645
+ "payloadSchema": [
3646
3646
  {
3647
3647
  "name": "id",
3648
3648
  "type": "string"
@@ -3670,19 +3670,21 @@
3670
3670
  "render-ui",
3671
3671
  "main",
3672
3672
  {
3673
+ "appName": "AI Tutor",
3673
3674
  "children": [
3674
3675
  {
3675
- "icon": "brain",
3676
+ "type": "empty-state",
3676
3677
  "description": "Memory is ready",
3677
3678
  "title": "Memory",
3678
- "type": "empty-state"
3679
+ "icon": "brain"
3679
3680
  }
3680
3681
  ],
3682
+ "type": "dashboard-layout",
3681
3683
  "navItems": [
3682
3684
  {
3685
+ "icon": "book-open",
3683
3686
  "label": "Teach",
3684
- "href": "/teach",
3685
- "icon": "book-open"
3687
+ "href": "/teach"
3686
3688
  },
3687
3689
  {
3688
3690
  "label": "Quiz",
@@ -3694,9 +3696,7 @@
3694
3696
  "href": "/concepts",
3695
3697
  "label": "Concepts"
3696
3698
  }
3697
- ],
3698
- "appName": "AI Tutor",
3699
- "type": "dashboard-layout"
3699
+ ]
3700
3700
  }
3701
3701
  ]
3702
3702
  ]
@@ -3749,8 +3749,8 @@
3749
3749
  "Concept",
3750
3750
  {
3751
3751
  "emit": {
3752
- "success": "ConceptLoaded",
3753
- "failure": "ConceptLoadFailed"
3752
+ "failure": "ConceptLoadFailed",
3753
+ "success": "ConceptLoaded"
3754
3754
  }
3755
3755
  }
3756
3756
  ]
@@ -3911,7 +3911,7 @@
3911
3911
  "event": "StudentAssessmentLoadFailed",
3912
3912
  "description": "Fired when StudentAssessment fails to load",
3913
3913
  "scope": "internal",
3914
- "payload": [
3914
+ "payloadSchema": [
3915
3915
  {
3916
3916
  "name": "error",
3917
3917
  "type": "string"
@@ -3926,7 +3926,7 @@
3926
3926
  "event": "StudentAssessmentLoaded",
3927
3927
  "description": "Fired when StudentAssessment finishes loading",
3928
3928
  "scope": "internal",
3929
- "payload": [
3929
+ "payloadSchema": [
3930
3930
  {
3931
3931
  "name": "data",
3932
3932
  "type": "[StudentAssessment]"
@@ -3936,7 +3936,7 @@
3936
3936
  {
3937
3937
  "event": "StudentAssessmentSaveFailed",
3938
3938
  "scope": "internal",
3939
- "payload": [
3939
+ "payloadSchema": [
3940
3940
  {
3941
3941
  "name": "error",
3942
3942
  "type": "string"
@@ -3950,7 +3950,7 @@
3950
3950
  {
3951
3951
  "event": "StudentAssessmentSaved",
3952
3952
  "scope": "internal",
3953
- "payload": [
3953
+ "payloadSchema": [
3954
3954
  {
3955
3955
  "name": "id",
3956
3956
  "type": "string"
@@ -3984,7 +3984,7 @@
3984
3984
  {
3985
3985
  "key": "SAVE",
3986
3986
  "name": "Save",
3987
- "payload": [
3987
+ "payloadSchema": [
3988
3988
  {
3989
3989
  "name": "data",
3990
3990
  "type": "string"
@@ -3998,7 +3998,7 @@
3998
3998
  {
3999
3999
  "key": "StudentAssessmentLoadFailed",
4000
4000
  "name": "StudentAssessment load failed",
4001
- "payload": [
4001
+ "payloadSchema": [
4002
4002
  {
4003
4003
  "name": "error",
4004
4004
  "type": "string"
@@ -4012,7 +4012,7 @@
4012
4012
  {
4013
4013
  "key": "StudentAssessmentLoaded",
4014
4014
  "name": "StudentAssessment loaded",
4015
- "payload": [
4015
+ "payloadSchema": [
4016
4016
  {
4017
4017
  "name": "data",
4018
4018
  "type": "[StudentAssessment]"
@@ -4022,7 +4022,7 @@
4022
4022
  {
4023
4023
  "key": "StudentAssessmentSaveFailed",
4024
4024
  "name": "StudentAssessment save failed",
4025
- "payload": [
4025
+ "payloadSchema": [
4026
4026
  {
4027
4027
  "name": "error",
4028
4028
  "type": "string"
@@ -4036,7 +4036,7 @@
4036
4036
  {
4037
4037
  "key": "StudentAssessmentSaved",
4038
4038
  "name": "StudentAssessment saved",
4039
- "payload": [
4039
+ "payloadSchema": [
4040
4040
  {
4041
4041
  "name": "id",
4042
4042
  "type": "string"
@@ -4060,72 +4060,72 @@
4060
4060
  {
4061
4061
  "children": [
4062
4062
  {
4063
- "type": "stack",
4064
- "gap": "lg",
4065
4063
  "direction": "vertical",
4066
4064
  "children": [
4067
4065
  {
4068
- "gap": "md",
4069
4066
  "children": [
4070
4067
  {
4071
- "gap": "md",
4072
4068
  "type": "stack",
4073
- "direction": "horizontal",
4074
4069
  "children": [
4075
4070
  {
4076
- "name": "tag",
4077
- "type": "icon"
4071
+ "type": "icon",
4072
+ "name": "tag"
4078
4073
  },
4079
4074
  {
4080
- "content": "StudentAssessment",
4081
4075
  "variant": "h2",
4076
+ "content": "StudentAssessment",
4082
4077
  "type": "typography"
4083
4078
  }
4084
- ]
4079
+ ],
4080
+ "gap": "md",
4081
+ "direction": "horizontal"
4085
4082
  },
4086
4083
  {
4087
- "variant": "primary",
4088
4084
  "type": "button",
4085
+ "variant": "primary",
4089
4086
  "icon": "tag",
4090
4087
  "action": "CLASSIFY",
4091
4088
  "label": "Open"
4092
4089
  }
4093
4090
  ],
4094
- "direction": "horizontal",
4095
4091
  "type": "stack",
4092
+ "gap": "md",
4093
+ "direction": "horizontal",
4096
4094
  "justify": "between"
4097
4095
  },
4098
4096
  {
4099
4097
  "type": "divider"
4100
4098
  },
4101
4099
  {
4100
+ "type": "empty-state",
4102
4101
  "title": "Nothing open",
4103
4102
  "icon": "tag",
4104
- "type": "empty-state",
4105
4103
  "description": "Click Open to view details in a modal overlay."
4106
4104
  }
4107
- ]
4105
+ ],
4106
+ "gap": "lg",
4107
+ "type": "stack"
4108
4108
  }
4109
4109
  ],
4110
- "type": "dashboard-layout",
4111
- "appName": "AI Tutor",
4112
4110
  "navItems": [
4113
4111
  {
4112
+ "label": "Teach",
4114
4113
  "href": "/teach",
4115
- "icon": "book-open",
4116
- "label": "Teach"
4114
+ "icon": "book-open"
4117
4115
  },
4118
4116
  {
4119
- "icon": "help-circle",
4117
+ "label": "Quiz",
4120
4118
  "href": "/quiz",
4121
- "label": "Quiz"
4119
+ "icon": "help-circle"
4122
4120
  },
4123
4121
  {
4122
+ "label": "Concepts",
4124
4123
  "href": "/concepts",
4125
- "icon": "brain",
4126
- "label": "Concepts"
4124
+ "icon": "brain"
4127
4125
  }
4128
- ]
4126
+ ],
4127
+ "appName": "AI Tutor",
4128
+ "type": "dashboard-layout"
4129
4129
  }
4130
4130
  ]
4131
4131
  ]
@@ -4139,36 +4139,36 @@
4139
4139
  "render-ui",
4140
4140
  "modal",
4141
4141
  {
4142
+ "type": "stack",
4143
+ "direction": "vertical",
4142
4144
  "gap": "md",
4143
4145
  "children": [
4144
4146
  {
4145
4147
  "gap": "sm",
4148
+ "type": "stack",
4149
+ "direction": "horizontal",
4146
4150
  "children": [
4147
4151
  {
4148
- "name": "tag",
4149
- "type": "icon"
4152
+ "type": "icon",
4153
+ "name": "tag"
4150
4154
  },
4151
4155
  {
4152
4156
  "variant": "h3",
4153
4157
  "type": "typography",
4154
4158
  "content": "StudentAssessment"
4155
4159
  }
4156
- ],
4157
- "type": "stack",
4158
- "direction": "horizontal"
4160
+ ]
4159
4161
  },
4160
4162
  {
4161
4163
  "type": "divider"
4162
4164
  },
4163
4165
  {
4164
- "type": "stack",
4165
4166
  "gap": "sm",
4166
- "direction": "horizontal",
4167
4167
  "children": [
4168
4168
  {
4169
4169
  "variant": "caption",
4170
- "content": "Categories:",
4171
- "type": "typography"
4170
+ "type": "typography",
4171
+ "content": "Categories:"
4172
4172
  },
4173
4173
  {
4174
4174
  "variant": "secondary",
@@ -4181,29 +4181,29 @@
4181
4181
  "variant": "secondary"
4182
4182
  },
4183
4183
  {
4184
- "type": "badge",
4185
4184
  "label": "advanced",
4186
- "variant": "secondary"
4185
+ "variant": "secondary",
4186
+ "type": "badge"
4187
4187
  },
4188
4188
  {
4189
+ "label": "expert",
4189
4190
  "variant": "secondary",
4190
- "type": "badge",
4191
- "label": "expert"
4191
+ "type": "badge"
4192
4192
  }
4193
- ]
4193
+ ],
4194
+ "type": "stack",
4195
+ "direction": "horizontal"
4194
4196
  },
4195
4197
  {
4196
- "mode": "create",
4197
4198
  "type": "form-section",
4199
+ "cancelEvent": "CLOSE",
4200
+ "mode": "create",
4201
+ "submitEvent": "SAVE",
4198
4202
  "fields": [
4199
4203
  "input"
4200
- ],
4201
- "cancelEvent": "CLOSE",
4202
- "submitEvent": "SAVE"
4204
+ ]
4203
4205
  }
4204
- ],
4205
- "type": "stack",
4206
- "direction": "vertical"
4206
+ ]
4207
4207
  }
4208
4208
  ]
4209
4209
  ]
@@ -4231,74 +4231,74 @@
4231
4231
  "render-ui",
4232
4232
  "main",
4233
4233
  {
4234
+ "navItems": [
4235
+ {
4236
+ "label": "Teach",
4237
+ "href": "/teach",
4238
+ "icon": "book-open"
4239
+ },
4240
+ {
4241
+ "icon": "help-circle",
4242
+ "label": "Quiz",
4243
+ "href": "/quiz"
4244
+ },
4245
+ {
4246
+ "icon": "brain",
4247
+ "href": "/concepts",
4248
+ "label": "Concepts"
4249
+ }
4250
+ ],
4251
+ "type": "dashboard-layout",
4234
4252
  "children": [
4235
4253
  {
4236
- "direction": "vertical",
4237
- "type": "stack",
4238
- "gap": "lg",
4239
4254
  "children": [
4240
4255
  {
4256
+ "justify": "between",
4241
4257
  "type": "stack",
4258
+ "gap": "md",
4242
4259
  "children": [
4243
4260
  {
4244
4261
  "gap": "md",
4245
4262
  "direction": "horizontal",
4263
+ "type": "stack",
4246
4264
  "children": [
4247
4265
  {
4248
- "type": "icon",
4249
- "name": "tag"
4266
+ "name": "tag",
4267
+ "type": "icon"
4250
4268
  },
4251
4269
  {
4252
4270
  "variant": "h2",
4253
4271
  "type": "typography",
4254
4272
  "content": "StudentAssessment"
4255
4273
  }
4256
- ],
4257
- "type": "stack"
4274
+ ]
4258
4275
  },
4259
4276
  {
4260
- "variant": "primary",
4277
+ "label": "Open",
4261
4278
  "icon": "tag",
4262
4279
  "type": "button",
4263
- "label": "Open",
4264
- "action": "CLASSIFY"
4280
+ "action": "CLASSIFY",
4281
+ "variant": "primary"
4265
4282
  }
4266
4283
  ],
4267
- "direction": "horizontal",
4268
- "justify": "between",
4269
- "gap": "md"
4284
+ "direction": "horizontal"
4270
4285
  },
4271
4286
  {
4272
4287
  "type": "divider"
4273
4288
  },
4274
4289
  {
4275
- "title": "Nothing open",
4276
4290
  "type": "empty-state",
4277
4291
  "icon": "tag",
4278
- "description": "Click Open to view details in a modal overlay."
4292
+ "description": "Click Open to view details in a modal overlay.",
4293
+ "title": "Nothing open"
4279
4294
  }
4280
- ]
4295
+ ],
4296
+ "type": "stack",
4297
+ "direction": "vertical",
4298
+ "gap": "lg"
4281
4299
  }
4282
4300
  ],
4283
- "type": "dashboard-layout",
4284
- "appName": "AI Tutor",
4285
- "navItems": [
4286
- {
4287
- "href": "/teach",
4288
- "label": "Teach",
4289
- "icon": "book-open"
4290
- },
4291
- {
4292
- "label": "Quiz",
4293
- "href": "/quiz",
4294
- "icon": "help-circle"
4295
- },
4296
- {
4297
- "label": "Concepts",
4298
- "href": "/concepts",
4299
- "icon": "brain"
4300
- }
4301
- ]
4301
+ "appName": "AI Tutor"
4302
4302
  }
4303
4303
  ]
4304
4304
  ]
@@ -4337,74 +4337,74 @@
4337
4337
  "render-ui",
4338
4338
  "main",
4339
4339
  {
4340
- "navItems": [
4341
- {
4342
- "label": "Teach",
4343
- "icon": "book-open",
4344
- "href": "/teach"
4345
- },
4346
- {
4347
- "href": "/quiz",
4348
- "icon": "help-circle",
4349
- "label": "Quiz"
4350
- },
4351
- {
4352
- "icon": "brain",
4353
- "href": "/concepts",
4354
- "label": "Concepts"
4355
- }
4356
- ],
4357
4340
  "type": "dashboard-layout",
4358
4341
  "children": [
4359
4342
  {
4343
+ "direction": "vertical",
4344
+ "type": "stack",
4345
+ "gap": "lg",
4360
4346
  "children": [
4361
4347
  {
4348
+ "type": "stack",
4349
+ "gap": "md",
4350
+ "justify": "between",
4351
+ "direction": "horizontal",
4362
4352
  "children": [
4363
4353
  {
4364
- "type": "stack",
4365
- "direction": "horizontal",
4366
- "gap": "md",
4367
4354
  "children": [
4368
4355
  {
4369
- "type": "icon",
4370
- "name": "tag"
4356
+ "name": "tag",
4357
+ "type": "icon"
4371
4358
  },
4372
4359
  {
4360
+ "type": "typography",
4373
4361
  "variant": "h2",
4374
- "content": "StudentAssessment",
4375
- "type": "typography"
4362
+ "content": "StudentAssessment"
4376
4363
  }
4377
- ]
4364
+ ],
4365
+ "gap": "md",
4366
+ "type": "stack",
4367
+ "direction": "horizontal"
4378
4368
  },
4379
4369
  {
4380
- "action": "CLASSIFY",
4381
- "icon": "tag",
4382
4370
  "type": "button",
4371
+ "action": "CLASSIFY",
4372
+ "variant": "primary",
4383
4373
  "label": "Open",
4384
- "variant": "primary"
4374
+ "icon": "tag"
4385
4375
  }
4386
- ],
4387
- "direction": "horizontal",
4388
- "justify": "between",
4389
- "gap": "md",
4390
- "type": "stack"
4376
+ ]
4391
4377
  },
4392
4378
  {
4393
4379
  "type": "divider"
4394
4380
  },
4395
4381
  {
4396
- "title": "Nothing open",
4397
4382
  "type": "empty-state",
4398
- "icon": "tag",
4399
- "description": "Click Open to view details in a modal overlay."
4383
+ "title": "Nothing open",
4384
+ "description": "Click Open to view details in a modal overlay.",
4385
+ "icon": "tag"
4400
4386
  }
4401
- ],
4402
- "gap": "lg",
4403
- "direction": "vertical",
4404
- "type": "stack"
4387
+ ]
4405
4388
  }
4406
4389
  ],
4407
- "appName": "AI Tutor"
4390
+ "appName": "AI Tutor",
4391
+ "navItems": [
4392
+ {
4393
+ "icon": "book-open",
4394
+ "label": "Teach",
4395
+ "href": "/teach"
4396
+ },
4397
+ {
4398
+ "label": "Quiz",
4399
+ "href": "/quiz",
4400
+ "icon": "help-circle"
4401
+ },
4402
+ {
4403
+ "href": "/concepts",
4404
+ "icon": "brain",
4405
+ "label": "Concepts"
4406
+ }
4407
+ ]
4408
4408
  }
4409
4409
  ]
4410
4410
  ]
@@ -4422,7 +4422,7 @@
4422
4422
  "event": "StudentAssessmentLoaded",
4423
4423
  "description": "Fired when StudentAssessment finishes loading",
4424
4424
  "scope": "internal",
4425
- "payload": [
4425
+ "payloadSchema": [
4426
4426
  {
4427
4427
  "name": "data",
4428
4428
  "type": "[StudentAssessment]"
@@ -4433,7 +4433,7 @@
4433
4433
  "event": "StudentAssessmentLoadFailed",
4434
4434
  "description": "Fired when StudentAssessment fails to load",
4435
4435
  "scope": "internal",
4436
- "payload": [
4436
+ "payloadSchema": [
4437
4437
  {
4438
4438
  "name": "error",
4439
4439
  "type": "string"
@@ -4463,7 +4463,7 @@
4463
4463
  {
4464
4464
  "key": "SHOW",
4465
4465
  "name": "Show",
4466
- "payload": [
4466
+ "payloadSchema": [
4467
4467
  {
4468
4468
  "name": "message",
4469
4469
  "type": "string"
@@ -4481,7 +4481,7 @@
4481
4481
  {
4482
4482
  "key": "StudentAssessmentLoaded",
4483
4483
  "name": "StudentAssessment loaded",
4484
- "payload": [
4484
+ "payloadSchema": [
4485
4485
  {
4486
4486
  "name": "data",
4487
4487
  "type": "[StudentAssessment]"
@@ -4491,7 +4491,7 @@
4491
4491
  {
4492
4492
  "key": "StudentAssessmentLoadFailed",
4493
4493
  "name": "StudentAssessment load failed",
4494
- "payload": [
4494
+ "payloadSchema": [
4495
4495
  {
4496
4496
  "name": "error",
4497
4497
  "type": "string"
@@ -4514,8 +4514,8 @@
4514
4514
  "StudentAssessment",
4515
4515
  {
4516
4516
  "emit": {
4517
- "success": "StudentAssessmentLoaded",
4518
- "failure": "StudentAssessmentLoadFailed"
4517
+ "failure": "StudentAssessmentLoadFailed",
4518
+ "success": "StudentAssessmentLoaded"
4519
4519
  }
4520
4520
  }
4521
4521
  ]
@@ -4540,81 +4540,81 @@
4540
4540
  "render-ui",
4541
4541
  "main",
4542
4542
  {
4543
- "type": "dashboard-layout",
4544
- "navItems": [
4545
- {
4546
- "href": "/teach",
4547
- "icon": "book-open",
4548
- "label": "Teach"
4549
- },
4550
- {
4551
- "href": "/quiz",
4552
- "icon": "help-circle",
4553
- "label": "Quiz"
4554
- },
4555
- {
4556
- "href": "/concepts",
4557
- "icon": "brain",
4558
- "label": "Concepts"
4559
- }
4560
- ],
4561
- "appName": "AI Tutor",
4562
4543
  "children": [
4563
4544
  {
4564
- "type": "stack",
4565
4545
  "direction": "vertical",
4566
- "gap": "lg",
4546
+ "type": "stack",
4567
4547
  "children": [
4568
4548
  {
4569
- "align": "center",
4570
- "direction": "horizontal",
4549
+ "type": "stack",
4571
4550
  "justify": "between",
4572
- "gap": "md",
4573
4551
  "children": [
4574
4552
  {
4575
- "direction": "horizontal",
4576
4553
  "children": [
4577
4554
  {
4578
- "type": "icon",
4579
- "name": "tag"
4555
+ "name": "tag",
4556
+ "type": "icon"
4580
4557
  },
4581
4558
  {
4582
4559
  "type": "typography",
4583
- "variant": "h2",
4584
- "content": "StudentAssessment Result"
4560
+ "content": "StudentAssessment Result",
4561
+ "variant": "h2"
4585
4562
  }
4586
4563
  ],
4587
- "gap": "md",
4588
4564
  "align": "center",
4589
- "type": "stack"
4565
+ "direction": "horizontal",
4566
+ "type": "stack",
4567
+ "gap": "md"
4590
4568
  },
4591
4569
  {
4592
4570
  "type": "button",
4593
- "variant": "ghost",
4571
+ "label": "Dismiss",
4594
4572
  "action": "HIDE",
4595
- "icon": "x",
4596
- "label": "Dismiss"
4573
+ "variant": "ghost",
4574
+ "icon": "x"
4597
4575
  }
4598
4576
  ],
4599
- "type": "stack"
4577
+ "gap": "md",
4578
+ "align": "center",
4579
+ "direction": "horizontal"
4600
4580
  },
4601
4581
  {
4602
4582
  "type": "divider"
4603
4583
  },
4604
4584
  {
4585
+ "variant": "@entity.notificationType",
4605
4586
  "message": "@entity.message",
4606
- "type": "alert",
4607
- "variant": "@entity.notificationType"
4587
+ "type": "alert"
4608
4588
  },
4609
4589
  {
4610
4590
  "type": "toast-slot"
4611
4591
  },
4612
4592
  {
4613
4593
  "message": "@entity.message",
4614
- "type": "alert",
4615
- "variant": "warning"
4594
+ "variant": "warning",
4595
+ "type": "alert"
4616
4596
  }
4617
- ]
4597
+ ],
4598
+ "gap": "lg"
4599
+ }
4600
+ ],
4601
+ "appName": "AI Tutor",
4602
+ "type": "dashboard-layout",
4603
+ "navItems": [
4604
+ {
4605
+ "icon": "book-open",
4606
+ "href": "/teach",
4607
+ "label": "Teach"
4608
+ },
4609
+ {
4610
+ "label": "Quiz",
4611
+ "href": "/quiz",
4612
+ "icon": "help-circle"
4613
+ },
4614
+ {
4615
+ "label": "Concepts",
4616
+ "href": "/concepts",
4617
+ "icon": "brain"
4618
4618
  }
4619
4619
  ]
4620
4620
  }
@@ -4640,68 +4640,68 @@
4640
4640
  "render-ui",
4641
4641
  "main",
4642
4642
  {
4643
+ "appName": "AI Tutor",
4643
4644
  "navItems": [
4644
4645
  {
4645
4646
  "icon": "book-open",
4646
- "label": "Teach",
4647
- "href": "/teach"
4647
+ "href": "/teach",
4648
+ "label": "Teach"
4648
4649
  },
4649
4650
  {
4650
- "href": "/quiz",
4651
+ "label": "Quiz",
4651
4652
  "icon": "help-circle",
4652
- "label": "Quiz"
4653
+ "href": "/quiz"
4653
4654
  },
4654
4655
  {
4655
- "label": "Concepts",
4656
4656
  "href": "/concepts",
4657
- "icon": "brain"
4657
+ "icon": "brain",
4658
+ "label": "Concepts"
4658
4659
  }
4659
4660
  ],
4660
- "appName": "AI Tutor",
4661
- "type": "dashboard-layout",
4662
4661
  "children": [
4663
4662
  {
4664
- "direction": "vertical",
4663
+ "type": "stack",
4664
+ "gap": "lg",
4665
4665
  "children": [
4666
4666
  {
4667
- "type": "stack",
4668
4667
  "justify": "between",
4669
- "align": "center",
4668
+ "type": "stack",
4670
4669
  "children": [
4671
4670
  {
4672
- "align": "center",
4673
- "type": "stack",
4674
- "direction": "horizontal",
4675
4671
  "children": [
4676
4672
  {
4677
4673
  "name": "tag",
4678
4674
  "type": "icon"
4679
4675
  },
4680
4676
  {
4681
- "variant": "h2",
4682
4677
  "type": "typography",
4683
- "content": "StudentAssessment Result"
4678
+ "content": "StudentAssessment Result",
4679
+ "variant": "h2"
4684
4680
  }
4685
4681
  ],
4686
- "gap": "md"
4682
+ "gap": "md",
4683
+ "type": "stack",
4684
+ "align": "center",
4685
+ "direction": "horizontal"
4687
4686
  },
4688
4687
  {
4689
- "variant": "ghost",
4690
4688
  "type": "button",
4691
- "label": "Dismiss",
4692
4689
  "action": "HIDE",
4690
+ "label": "Dismiss",
4691
+ "variant": "ghost",
4693
4692
  "icon": "x"
4694
4693
  }
4695
4694
  ],
4696
4695
  "gap": "md",
4697
- "direction": "horizontal"
4696
+ "direction": "horizontal",
4697
+ "align": "center"
4698
4698
  },
4699
4699
  {
4700
4700
  "type": "divider"
4701
4701
  },
4702
4702
  {
4703
- "type": "alert",
4704
4703
  "variant": "@entity.notificationType",
4704
+ "type": "alert",
4705
4705
  "message": "@entity.message"
4706
4706
  },
4707
4707
  {
@@ -4709,14 +4709,14 @@
4709
4709
  },
4710
4710
  {
4711
4711
  "message": "@entity.message",
4712
- "type": "alert",
4713
- "variant": "warning"
4712
+ "variant": "warning",
4713
+ "type": "alert"
4714
4714
  }
4715
4715
  ],
4716
- "type": "stack",
4717
- "gap": "lg"
4716
+ "direction": "vertical"
4718
4717
  }
4719
- ]
4718
+ ],
4719
+ "type": "dashboard-layout"
4720
4720
  }
4721
4721
  ]
4722
4722
  ]
@@ -4745,7 +4745,7 @@
4745
4745
  {
4746
4746
  "event": "SHOW",
4747
4747
  "scope": "internal",
4748
- "payload": [
4748
+ "payloadSchema": [
4749
4749
  {
4750
4750
  "name": "category",
4751
4751
  "type": "string"
@@ -4760,7 +4760,7 @@
4760
4760
  "event": "StudentAssessmentLoaded",
4761
4761
  "description": "Fired when StudentAssessment finishes loading",
4762
4762
  "scope": "internal",
4763
- "payload": [
4763
+ "payloadSchema": [
4764
4764
  {
4765
4765
  "name": "data",
4766
4766
  "type": "[StudentAssessment]"
@@ -4771,7 +4771,7 @@
4771
4771
  "event": "StudentAssessmentLoadFailed",
4772
4772
  "description": "Fired when StudentAssessment fails to load",
4773
4773
  "scope": "internal",
4774
- "payload": [
4774
+ "payloadSchema": [
4775
4775
  {
4776
4776
  "name": "error",
4777
4777
  "type": "string"
@@ -4814,7 +4814,7 @@
4814
4814
  {
4815
4815
  "key": "DO_CLASSIFY",
4816
4816
  "name": "Do Classify",
4817
- "payload": [
4817
+ "payloadSchema": [
4818
4818
  {
4819
4819
  "name": "data",
4820
4820
  "type": "string"
@@ -4836,7 +4836,7 @@
4836
4836
  {
4837
4837
  "key": "StudentAssessmentLoaded",
4838
4838
  "name": "StudentAssessment loaded",
4839
- "payload": [
4839
+ "payloadSchema": [
4840
4840
  {
4841
4841
  "name": "data",
4842
4842
  "type": "[StudentAssessment]"
@@ -4846,7 +4846,7 @@
4846
4846
  {
4847
4847
  "key": "StudentAssessmentLoadFailed",
4848
4848
  "name": "StudentAssessment load failed",
4849
- "payload": [
4849
+ "payloadSchema": [
4850
4850
  {
4851
4851
  "name": "error",
4852
4852
  "type": "string"
@@ -4869,8 +4869,8 @@
4869
4869
  "StudentAssessment",
4870
4870
  {
4871
4871
  "emit": {
4872
- "failure": "StudentAssessmentLoadFailed",
4873
- "success": "StudentAssessmentLoaded"
4872
+ "success": "StudentAssessmentLoaded",
4873
+ "failure": "StudentAssessmentLoadFailed"
4874
4874
  }
4875
4875
  }
4876
4876
  ],
@@ -4879,30 +4879,30 @@
4879
4879
  "main",
4880
4880
  {
4881
4881
  "appName": "AI Tutor",
4882
+ "children": [
4883
+ {
4884
+ "description": "Classifier is ready",
4885
+ "type": "empty-state",
4886
+ "icon": "tag",
4887
+ "title": "Classifier"
4888
+ }
4889
+ ],
4890
+ "type": "dashboard-layout",
4882
4891
  "navItems": [
4883
4892
  {
4884
- "href": "/teach",
4893
+ "icon": "book-open",
4885
4894
  "label": "Teach",
4886
- "icon": "book-open"
4895
+ "href": "/teach"
4887
4896
  },
4888
4897
  {
4889
- "href": "/quiz",
4890
4898
  "label": "Quiz",
4891
- "icon": "help-circle"
4899
+ "icon": "help-circle",
4900
+ "href": "/quiz"
4892
4901
  },
4893
4902
  {
4894
4903
  "label": "Concepts",
4895
- "href": "/concepts",
4896
- "icon": "brain"
4897
- }
4898
- ],
4899
- "type": "dashboard-layout",
4900
- "children": [
4901
- {
4902
- "icon": "tag",
4903
- "title": "Classifier",
4904
- "description": "Classifier is ready",
4905
- "type": "empty-state"
4904
+ "icon": "brain",
4905
+ "href": "/concepts"
4906
4906
  }
4907
4907
  ]
4908
4908
  }
@@ -5125,4 +5125,4 @@
5125
5125
  ]
5126
5126
  }
5127
5127
  ]
5128
- }
5128
+ }